/* Shared visual system — lot 2. Loaded after legacy page styles. */
:root {
  --lvg-paper: #faf8f3; --lvg-white: #fffefa; --lvg-forest: #244b40;
  --lvg-ink: #223c34; --lvg-muted: #626a62; --lvg-line: #dddcd2;
  --lvg-clay: #a44e30; --lvg-sage: #edf0e6; --lvg-radius: 10px;
  --accent: #244b40; --accent-strong: #173b30; --text-main: #223c34;
  --text-soft: #626a62; --surface: #fffefa; --line: #dddcd2;
  --shadow-soft: none; --shadow-card: none;
}
.lvg-site, .lvg-site * { box-sizing: border-box; }
body.lvg-site { margin: 0; color: var(--lvg-ink); background: var(--lvg-paper); font-family: 'Avenir Next', 'Segoe UI', Arial, sans-serif; font-size: 16px; line-height: 1.6; }
body.lvg-site::before { content: none; }
.lvg-site a { color: var(--lvg-forest); text-underline-offset: 4px; }
.lvg-site a:hover { color: #173b30; }
.lvg-site button, .lvg-site input, .lvg-site textarea, .lvg-site select { font: inherit; }
.lvg-site img { max-width: 100%; }
.lvg-site :focus-visible { outline: 3px solid #a44e30; outline-offset: 4px; }
.lvg-site h1, .lvg-site h2 { color: var(--lvg-forest); font-family: Georgia, 'Times New Roman', serif; font-weight: 500; letter-spacing: -.035em; line-height: 1.17; }
.lvg-site h3 { color: var(--lvg-ink); line-height: 1.35; }
.lvg-site .lvg-skip { position: fixed; left: 16px; top: -100px; padding: 12px 20px; background: var(--lvg-forest); color: white; z-index: 9999; border-radius: 6px; }
.lvg-site .lvg-skip:focus { top: 12px; }
.lvg-site .lvg-masthead { background: var(--lvg-paper); color: var(--lvg-forest); padding: 0 24px; border: 0; border-bottom: 1px solid var(--lvg-line); box-shadow: none; overflow: visible; z-index: 10; }
.lvg-site .lvg-masthead::after, .lvg-site .lvg-masthead::before { content: none; }
.lvg-masthead-inner { max-width: 1180px; min-height: 88px; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.lvg-site .lvg-brand { display: inline-flex; align-items: center; gap: 10px; font-family: Georgia, serif; font-size: 23px; font-weight: bold; letter-spacing: -.8px; text-decoration: none; white-space: nowrap; }
.lvg-brand-symbol { flex-shrink: 0; color: var(--lvg-clay); }
.lvg-site .lvg-desktop-nav { margin: 0; display: flex; align-items: center; gap: 28px; }
.lvg-site .lvg-desktop-nav a { font-size: 14px; font-weight: 600; text-decoration: none; padding-block: 12px; }
.lvg-site .lvg-desktop-nav [aria-current="page"] { text-decoration: underline; }
.lvg-site .lvg-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 11px 20px; border: 1px solid var(--lvg-forest); border-radius: 6px; background: var(--lvg-forest); color: white; font-weight: 600; text-decoration: none; cursor: pointer; box-shadow: none; line-height: 1.4; }
.lvg-site .lvg-button:hover { background: #173b30; color: white; }
.lvg-site .lvg-button-outline { background: transparent; color: var(--lvg-forest); }
.lvg-site .lvg-button-outline:hover { background: var(--lvg-sage); color: var(--lvg-forest); }
.lvg-mobile-menu { display: none; }
.lvg-site .lvg-page-hero { background: none; padding: 42px 24px 22px; border: 0; box-shadow: none; text-align: left; overflow: visible; color: var(--lvg-ink); }
.lvg-site .lvg-page-hero::after, .lvg-site .lvg-page-hero::before { content: none; }
.lvg-site .lvg-page-hero h1 { max-width: 1180px; margin: 0 auto 16px; padding: 0; font-size: clamp(30px, 3.8vw, 48px); line-height: 1.12; color: var(--lvg-forest); }
.lvg-site .lvg-page-hero p { max-width: 1180px; margin: 8px auto; color: var(--lvg-muted); font-size: 16px; }
.lvg-site .lvg-page-hero nav { max-width: 1180px; margin: 18px auto 0; justify-content: flex-start; }
.lvg-site .lvg-page-hero nav a { padding: 6px 0; min-height: 36px; background: none; color: var(--lvg-forest); border-radius: 0; box-shadow: none; font-size: 14px; text-decoration: underline; transform: none; }
.lvg-site main { width: min(calc(100% - 48px), 1180px); max-width: 1180px; margin: 12px auto 64px; padding: 0; background: none; border-radius: 0; box-shadow: none; }
.lvg-site main > section { border: 0; border-radius: 0; background: none; box-shadow: none; backdrop-filter: none; padding: 28px 0; margin: 0; }
.lvg-site main > #evenements, .lvg-site main > #recherche-evenements, .lvg-site main > #regions, .lvg-site main > #blog-actualites, .lvg-site main > #faq-accueil, .lvg-site main > #app-presentation, .lvg-site main > #intro-seo { border: 0; border-radius: 0; background: none; box-shadow: none; backdrop-filter: none; padding: 28px 0; margin: 0; }
.lvg-site main h2 { font-size: clamp(25px, 2.5vw, 32px); margin: 0 0 18px; }
.lvg-site .recherche-form { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(180px, 1fr) auto; width: 100%; max-width: none; gap: 16px; padding: 20px; margin: 8px 0 24px; align-items: end; background: #f0eee6; border: 1px solid var(--lvg-line); border-radius: var(--lvg-radius); box-shadow: none; }
.lvg-site .recherche-form-home { grid-template-columns: minmax(0, 1fr) 200px; }
.lvg-site .recherche-form .form-group { margin: 0; }
.lvg-site input[type="text"], .lvg-site input[type="email"], .lvg-site input[type="date"], .lvg-site input[type="time"], .lvg-site select, .lvg-site textarea { width: 100%; max-width: 100%; min-height: 50px; padding: 12px 14px; background: var(--lvg-white); color: var(--lvg-ink); border: 1px solid #b7bdb2; border-radius: 6px; box-shadow: none; font-size: 16px; }
.lvg-site textarea { min-height: 130px; }
.lvg-site label { display: block; margin: 0 0 6px; font-size: 14px; color: var(--lvg-ink); font-weight: 600; }
.lvg-site .recherche-form button, .lvg-site .btn-cta, .lvg-site .btn-submit, .lvg-site .btn-itineraire, .lvg-site .btn-modification, .lvg-site .btn-article, .lvg-site .btn-blog, .lvg-site .btnjaune, .lvg-site .btn-ajout-header, .lvg-site .btn-back { width: auto; min-height: 48px; padding: 12px 22px; background: var(--lvg-forest); color: white; border: 1px solid var(--lvg-forest); border-radius: 6px; box-shadow: none; font-weight: 600; text-decoration: none; transform: none; }
.lvg-site .recherche-form button:hover, .lvg-site .btn-cta:hover, .lvg-site .btn-itineraire:hover, .lvg-site .btnjaune:hover { background: #173b30; }
.lvg-site .cards-container, .lvg-site .evenements-par-date { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; overflow: visible; padding: 0; margin: 0 0 24px; }
.lvg-site .recherche-cards-container { display: block; padding: 0; }
.lvg-site .lvg-event-card { display: flex; flex-direction: column; width: auto; min-width: 0; padding: 22px; border: 1px solid var(--lvg-line); border-radius: var(--lvg-radius); background: var(--lvg-white); color: var(--lvg-ink); text-align: left; text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.lvg-site .lvg-event-card:hover { border-color: var(--lvg-forest); box-shadow: 0 5px 16px #244b4010; }
.lvg-event-card-top { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.lvg-site .lvg-date-badge { display: flex; flex-direction: column; align-items: center; justify-content: center; flex-shrink: 0; min-width: 58px; min-height: 68px; padding: 8px; border-radius: 6px; background: #f3e7df; color: #914124; line-height: 1.15; }
.lvg-date-badge strong { font-size: 27px; font-weight: 600; }
.lvg-date-badge span { margin-top: 4px; font-size: 10px; font-weight: 700; letter-spacing: 1px; }
.lvg-card-town { font-size: 14px; font-weight: 600; overflow-wrap: anywhere; }
.lvg-site .lvg-event-card h3 { margin: 0 0 12px; font-family: inherit; font-size: 19px; font-weight: 600; letter-spacing: -.3px; }
.lvg-site .lvg-event-card p { margin: 2px 0; font-size: 14px; color: var(--lvg-muted); }
.lvg-site .lvg-card-link { display: flex; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 22px; color: var(--lvg-forest); font-size: 13px; font-weight: 600; }
.lvg-site .date-header { display: block; margin: 28px 0 18px; padding: 12px 0; background: none; color: var(--lvg-forest); border: 0; border-bottom: 1px solid var(--lvg-line); border-radius: 0; box-shadow: none; font-family: inherit; font-weight: 600; font-size: 18px; }
.lvg-site #cta-organiser { background: var(--lvg-sage); padding: 30px; border-radius: var(--lvg-radius); text-align: left; margin-block: 24px; }
.lvg-site #cta-organiser h2 { color: var(--lvg-forest); }
.lvg-site #cta-organiser p { color: var(--lvg-muted); }
.lvg-site .seo-hub-card, .lvg-site .seo-site-map-callout, .lvg-site .site-map-section, .lvg-site .detail-seo-section, .lvg-site .faq-locale, .lvg-site .liens-internes-ville { padding: 24px; background: var(--lvg-white); border: 1px solid var(--lvg-line); border-radius: var(--lvg-radius); box-shadow: none; margin-block: 20px; }
.lvg-site .seo-hub-card h2, .lvg-site .detail-seo-section h2 { font-size: 25px; }
.lvg-site .region, .lvg-site .article-item, .lvg-site .blog-card { background: var(--lvg-white); color: var(--lvg-ink); border: 1px solid var(--lvg-line); border-radius: var(--lvg-radius); box-shadow: none; }
.lvg-site .region h3, .lvg-site .article-item h3 a { color: var(--lvg-forest); }
.lvg-site .site-map-links a, .lvg-site .liens-internes-ville a, .lvg-site .breadcrumb-nav a { color: var(--lvg-forest); }
.lvg-site .article-image { border-radius: 8px; }
.lvg-site #details-vg, .lvg-site #details-article { background: var(--lvg-white); border: 1px solid var(--lvg-line); border-radius: var(--lvg-radius); padding: 32px; }
.lvg-site .lvg-footer { padding: 40px 24px 28px; margin-top: 48px; background: #edf0e7; color: var(--lvg-ink); border-top: 1px solid var(--lvg-line); text-align: left; box-shadow: none; }
.lvg-footer-inner { max-width: 1180px; margin: auto; }
.lvg-footer-top { display: flex; justify-content: space-between; gap: 48px; }
.lvg-site .lvg-footer p { color: var(--lvg-muted); font-size: 14px; }
.lvg-site .lvg-footer nav { display: grid; grid-template-columns: repeat(2, auto); gap: 10px 32px; margin: 0; text-align: left; }
.lvg-site .lvg-footer a { color: var(--lvg-forest); font-size: 14px; }
.lvg-site .lvg-footer .lvg-brand { font-size: 23px; }
.lvg-footer-bottom { display: flex; flex-wrap: wrap; gap: 16px 28px; align-items: center; padding: 24px 0 12px; margin-top: 24px; border-top: 1px solid #d3d8cc; font-size: 13px; }
.lvg-no-ads { margin-left: auto; color: var(--lvg-forest); }
.lvg-privacy summary { cursor: pointer; font-size: 14px; width: fit-content; padding: 12px 0; min-height: 44px; text-decoration: underline; text-underline-offset: 4px; }
.lvg-privacy-content { max-width: 740px; padding: 24px; margin-top: 12px; background: var(--lvg-white); border: 1px solid var(--lvg-line); border-radius: 8px; }
.lvg-site .lvg-privacy h2 { font-size: 26px; margin: 0 0 10px; }
.lvg-privacy-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 20px 0; }
.lvg-site #lvg-consent-status { font-weight: 600; color: var(--lvg-forest); }
.lvg-site .proposer-layout { width: min(calc(100% - 48px), 1180px); margin: 24px auto; }
.lvg-site .proposer-layout .container { width: 100%; padding: 0; }
.lvg-site .proposer-card, .lvg-site .proposer-layout .panel-body { background: var(--lvg-white); border-radius: 10px; box-shadow: none; color: var(--lvg-ink); }
.lvg-site .proposer-card h3 { color: var(--lvg-forest); }
.lvg-site .breadcrumb-sec { background: var(--lvg-sage); padding: 20px 24px; }
.lvg-site .breadcrumb-sec { box-shadow: none; border-radius: 10px; }
.lvg-site .proposer-card-highlight p, .lvg-site .proposer-card-highlight li { color: var(--lvg-ink); }
.lvg-site .proposer-sidebar .proposer-card-highlight { box-shadow: none; }
.lvg-site .proposer-confirmation { background: var(--lvg-sage); border-radius: 10px; box-shadow: none; }
.lvg-site .lvg-footer { border-radius: 0; }
.lvg-site input:focus-visible, .lvg-site textarea:focus-visible, .lvg-site select:focus-visible, .lvg-site #datepicker:focus-visible { outline: 3px solid var(--lvg-clay); outline-offset: 3px; box-shadow: none; }
.lvg-site #datepicker { border-radius: 6px; }
.lvg-site .breadcrumb-sec h2, .lvg-site .breadcrumb-sec span { color: var(--lvg-ink); }
.lvg-site .article-content .intro, .lvg-site .sommaire { background: var(--lvg-sage); border-color: var(--lvg-line); border-radius: 8px; box-shadow: none; }
.lvg-site .sommaire h2, .lvg-site .sommaire a { color: var(--lvg-forest); }
@media (max-width: 960px) {
  .lvg-site .lvg-desktop-nav { gap: 16px; }
  .lvg-site .lvg-brand { font-size: 21px; }
  .lvg-site .cards-container, .lvg-site .evenements-par-date { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .lvg-site .lvg-masthead { padding: 0 18px; }
  .lvg-masthead-inner { min-height: 72px; gap: 12px; }
  .lvg-site .lvg-brand { font-size: 20px; gap: 7px; }
  .lvg-brand-symbol { width: 25px; height: 25px; }
  .lvg-site .lvg-desktop-nav { display: none; }
  .lvg-mobile-menu { display: block; position: relative; }
  .lvg-mobile-menu summary { display: flex; gap: 6px; align-items: center; cursor: pointer; min-height: 44px; padding: 6px; font-size: 13px; list-style: none; }
  .lvg-mobile-menu summary::-webkit-details-marker { display: none; }
  .lvg-site .lvg-mobile-menu nav { position: absolute; top: 48px; right: 0; width: 270px; margin: 0; padding: 12px; display: grid; gap: 4px; background: var(--lvg-white); border: 1px solid var(--lvg-line); border-radius: 8px; box-shadow: 0 12px 26px #244b401a; text-align: left; }
  .lvg-site .lvg-mobile-menu nav a { display: block; padding: 12px; text-decoration: none; font-size: 15px; }
  .lvg-site .lvg-page-hero { padding: 28px 20px 12px; }
  .lvg-site .lvg-page-hero h1 { font-size: 33px; }
  .lvg-site .lvg-page-hero p { font-size: 15px; }
  .lvg-site main { width: calc(100% - 36px); margin-top: 8px; }
  .lvg-site main > section { padding: 24px 0; }
  .lvg-site .recherche-form, .lvg-site .recherche-form-home { display: grid; grid-template-columns: 1fr; padding: 16px; gap: 12px; }
  .lvg-site .recherche-form button { width: 100%; }
  .lvg-site .cards-container, .lvg-site .evenements-par-date { grid-template-columns: 1fr; gap: 14px; }
  .lvg-site .lvg-event-card { padding: 18px; }
  .lvg-event-card-top { margin-bottom: 14px; }
  .lvg-site .lvg-card-link { padding-top: 14px; }
  .lvg-site .seo-hub-grid, .lvg-site .site-map-links-columns, .lvg-site .site-map-links-featured { grid-template-columns: 1fr; gap: 12px; }
  .lvg-site #details-vg, .lvg-site #details-article, .lvg-site #cta-organiser { padding: 22px 18px; }
  .lvg-site .detail-seo-section, .lvg-site .seo-hub-card { padding: 20px 16px; }
  .lvg-site .lvg-footer { padding: 30px 20px; }
  .lvg-footer-top { display: block; }
  .lvg-site .lvg-footer nav { margin-top: 24px; grid-template-columns: 1fr; gap: 0; }
  .lvg-site .lvg-footer nav a { padding-block: 10px; }
  .lvg-footer-bottom { gap: 12px 20px; }
  .lvg-no-ads { margin-left: 0; }
  .lvg-privacy-content { padding: 18px; }
  .lvg-privacy-actions { display: grid; }
  .lvg-site .proposer-layout { width: calc(100% - 36px); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .lvg-site *, .lvg-site *::before, .lvg-site *::after { animation: none !important; transition: none !important; }
}

/* Agenda and guide links: override the legacy global orange list borders. */
.lvg-site .site-map-links li { background: transparent; border: 0; border-bottom: 1px solid var(--lvg-line); border-radius: 0; box-shadow: none; padding: 10px 0; }
.lvg-site .site-map-links a { display: inline-block; padding: 6px 0; }
.lvg-site .site-map-links a:hover { text-decoration: underline; }
