/* La même identité, des rôles distincts : titre de page, section, lecture, navigation. */
.secondary-page:not(.faq-page) main>:not([data-feature-static]):not([data-venue-static]){display:none}
:is(.visitor-page main,.about-page main,.secondary-page main,.venue-page,.feature-page,.faq-dialog) h1{
 font-size:var(--page-h1);line-height:1.08;letter-spacing:-.025em;color:var(--heading-accent);
}
:is(.visitor-page main,.about-page main,.secondary-page main,.venue-page,.feature-page,.faq-dialog) h2{
 font-size:var(--page-h2);line-height:1.16;letter-spacing:-.015em;color:var(--text);
}
:is(.visitor-page main,.about-page main,.secondary-page main,.venue-page,.feature-page,.faq-dialog) h3{
 font-size:var(--page-h3);line-height:1.3;letter-spacing:0;color:var(--text);
}
:is(.visitor-page main,.about-page main,.secondary-page main,.venue-page,.feature-page,.faq-dialog) .eyebrow{
 font-family:var(--font-body);font-size:var(--text-xs);line-height:1.5;letter-spacing:var(--tracking-label);color:var(--text-secondary);margin-bottom:var(--space-4);
}
.visitor-header>p:not(.eyebrow),.about-page .seo-facts .section-description{font-size:var(--text-lg);max-width:var(--reading-width)}
.visitor-header h1{margin-bottom:var(--space-5)}
.visitor-section h2,.visitor-split h2{margin-bottom:var(--space-5)}
.visitor-section h3,.visitor-split h3{margin:var(--space-6) 0 var(--space-3)}
.visitor-content p{max-width:var(--reading-width)}
.visitor-section p,.visitor-split p{margin-bottom:var(--space-4)}
.visitor-section+.visitor-section{padding-top:var(--space-7);border-top:1px solid var(--border-subtle)}
.visitor-section .eyebrow::before,.visitor-section .eyebrow::after,.visitor-split .eyebrow::before,.visitor-split .eyebrow::after{display:none}

/* Changer de carte : un niveau stable et plus visible que les catégories. */
.card-selector{gap:var(--space-6);margin-top:var(--space-6)}
.card-selector a{font-size:var(--text-base);min-height:48px;border-bottom-width:2px}
.card-selector a[aria-current=page]{font-weight:700}

/* Navigation tertiaire partagée : ancres réelles, trait discret, commandes de défilement. */
.local-navigation{display:flex;align-items:center;gap:8px;padding:0 var(--page-gutter);background:var(--surface);border-block:1px solid var(--border-subtle);z-index:20}
.local-navigation.is-sticky{position:sticky;top:var(--overlay-header-height,var(--header-height))}
.local-navigation .category-navigation{position:static;display:flex;flex:1;min-width:0;gap:var(--space-5);padding:0 2px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none;border:0;background:transparent}
.category-navigation::-webkit-scrollbar{display:none}
.local-navigation .category-navigation a{display:flex;align-items:center;justify-content:center;position:relative;flex:none;min-height:52px;padding:12px 2px;border-radius:0;background:transparent;color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;white-space:nowrap;text-decoration:none}
.local-navigation .category-navigation a::after{content:'';position:absolute;inset:auto 2px 6px;height:2px;background:transparent}
.local-navigation .category-navigation a:hover{color:var(--navigation-active)}
.local-navigation .category-navigation a:hover::after{background:var(--border)}
.local-navigation .category-navigation a[aria-current=location]{background:transparent;color:var(--navigation-active);font-weight:650}
.local-navigation .category-navigation a[aria-current=location]::after{background:currentColor}
.local-navigation a:focus-visible{outline-offset:-3px}
.local-nav-control{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;background:transparent;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text)}
.local-nav-control[hidden]{display:none}.local-nav-control:disabled{opacity:.35}
.local-nav-control:hover:not(:disabled){background:var(--surface-soft)}
.local-nav-control svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}

/* Les deux cartes partagent aussi leurs titres de catégories et leurs séparateurs. */
.menu-category{margin-top:var(--space-8)}
.menu-category-heading{gap:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--border)}
.menu-category-heading>span{font:600 var(--text-sm)/1.5 var(--font-body);color:var(--text-secondary)}
.visitor-page .menu-category h2,.visitor-page .wine-sheet h2{font-size:var(--page-h2);color:var(--text);margin-bottom:0}
.visitor-page .dish h3{font-family:var(--font-body);font-size:var(--text-lg);line-height:1.5;font-weight:600}
.dish{padding:var(--space-5) 0}.dish p{max-width:var(--reading-width)}
.dish-price,.venue-menu-item>strong{font-family:var(--font-body);font-size:var(--text-base);font-weight:600;font-variant-numeric:tabular-nums}
.wine-document{padding-top:var(--space-6)}
.wine-sheet{margin:0 auto var(--space-8)}
.visitor-page .wine-sheet h2{border-bottom:1px solid var(--border);padding-bottom:var(--space-4);margin-bottom:var(--space-5)}
.wine-sheet button{padding:0}
.wine-sheet button>span{background:var(--surface-raised);color:var(--text);border:1px solid var(--text-secondary);font-weight:600;min-height:44px}
.group-formula-columns article{border-top:1px solid var(--border);padding-top:var(--space-5)}
.visitor-page .group-formula-columns h3{font-family:var(--font-body);font-size:1.75rem;line-height:1.3;font-weight:600;font-variant-numeric:tabular-nums;margin:0 0 var(--space-1)}
.group-formula-columns h4{color:var(--text-secondary);font-size:var(--text-xs);margin-top:var(--space-6)}
.group-formula-columns ul{margin-block:0}.group-formula-columns li{font-size:var(--text-base)}
.visitor-page .group-proposal h2,.visitor-page .group-proposal p{color:var(--text-inverse)}
.visitor-page .group-proposal .eyebrow{color:var(--text-inverse-muted)}
.group-proposal :focus-visible{outline-color:var(--accent)}

/* Infos pratiques : deux établissements, horaires et saisons regroupés. */
.practical-schedule{display:grid;grid-template-columns:1fr 1fr;gap:var(--photo-gap)}
.practical-schedule>div+div{border-left:1px solid var(--border-subtle);padding-left:var(--space-6)}
.practical-lead{font-size:var(--page-lead);line-height:1.5;color:var(--text)!important;font-weight:600}
.season-dates{gap:var(--space-6);padding-top:var(--space-5);margin-top:var(--space-5);border-top:1px solid var(--border-subtle)}
.season-dates p{font-size:var(--text-sm);line-height:1.75}
.season-dates a{display:inline-block;padding-block:4px;color:var(--text);font-weight:600}
.practical-columns h3{margin-top:var(--space-5)}
#services #bons-cadeaux{padding-top:var(--space-4)}

/* Découverte et récits : le display reste dans les titres, le lead devient du texte. */
.venue-page .venue-hero-copy h1,.feature-page .venue-hero-copy h1{color:var(--text-inverse);max-width:900px}
.venue-page .venue-hero-copy .eyebrow,.feature-page .venue-hero-copy .eyebrow{color:var(--text-inverse)}
.venue-page .venue-hero-copy>p:last-child,.feature-page .venue-hero-copy>p:last-child{margin-top:var(--space-5)}
.venue-page .venue-lead,.feature-page .venue-story>.venue-lead{font-family:var(--font-body);font-weight:500;font-size:var(--page-lead);line-height:1.65;letter-spacing:0;max-width:var(--reading-width)}
.venue-editorial-intro{max-width:var(--reading-width);margin-bottom:var(--space-7)}
.venue-chapter h2,.venue-editorial-foot>h2{margin-bottom:var(--space-5)}
.feature-story{max-width:1120px;padding-block:var(--space-8)}
.feature-page-media .feature-story{max-width:none;padding-inline:var(--page-gutter)}
.feature-page .feature-story>p:not(.eyebrow),.venue-page .venue-story>p:not(.eyebrow){font-size:var(--text-base);line-height:var(--leading-body);max-width:var(--reading-width)}
.feature-page .feature-story>p.venue-lead{font-size:var(--page-lead)}
.venue-page .venue-menu h2,.venue-page .venue-menu h3{color:var(--text-inverse)}
.venue-page .venue-menu h3{font-size:var(--page-h3)}
.venue-menu-item>strong{color:var(--text-inverse);line-height:1.5}
.feature-page .feature-job-lists h2{font-size:var(--page-h3);margin-bottom:var(--space-4)}
.feature-job-lists article{border-top:1px solid var(--border);padding:var(--space-5)}
.feature-job-lists li{font-size:var(--text-base)}
.about-page .fact-card h2{font-size:var(--page-h3);margin-bottom:var(--space-3)}
.about-page .section-heading{align-items:flex-start}
.about-page .seo-facts{padding-bottom:0}
.about-page .seo-facts>.section-heading{display:grid;grid-template-columns:1.1fr 1fr;align-items:center}
.about-page .activities-columns h3{font-size:var(--page-h3)}

/* Les filtres sélectionnés restent des filtres, avec un repère qui ne dépend pas de la couleur. */
.media-filters,.faq-dialog .faq-filters{background:transparent;gap:8px;padding:0 0 var(--space-5);border-bottom:1px solid var(--border-subtle)}
.media-filters button,.faq-dialog .faq-filters button{background:transparent;border:1px solid transparent;border-bottom:2px solid transparent;border-radius:0;font-weight:500;padding:10px 12px}
.media-filters button[aria-pressed=true],.faq-dialog .faq-filters button[aria-pressed=true]{background:var(--surface-soft);color:var(--text);border-color:transparent;border-bottom-color:var(--navigation-active);font-weight:700}
.media-filters button:hover,.faq-dialog .faq-filters button:hover{background:var(--surface-soft)}
.media-more.button{background:transparent;color:var(--text-accent);border-color:currentColor}
.faq-dialog .faq-section>.section-heading{align-items:flex-start;margin-bottom:var(--space-7)}
.faq-dialog .faq-group>h2{font-size:var(--page-h3);margin-bottom:var(--space-4)}
.faq-dialog .faq-group{margin:0 0 var(--space-7)}
.faq-dialog .faq-item summary{font-size:var(--text-base)}
.faq-dialog .faq-answer h3{font:600 var(--text-base)/1.45 var(--font-body);margin-bottom:var(--space-3)}
.faq-dialog .faq-layout{align-items:start}
.faq-answer[hidden]{display:none}

/* Feedback lisible, formulaires au clavier et champs tactiles. */
#booking-form input{min-height:var(--control-height);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text);font-size:var(--text-base)}
.application-grid :user-invalid{border-color:var(--error);outline:1px solid var(--error)}
.form-feedback:not(:empty){margin-top:var(--space-5);padding:var(--space-4);border:1px solid var(--border);border-left:3px solid var(--success);background:var(--surface-raised);font-size:var(--text-base)}
.form-feedback[data-state=error]{border-left-color:var(--error);color:var(--error)}
.form-feedback[data-state=loading]{border-left-color:var(--text-secondary)}
.application-required{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-5)}
.application-section :is(input,textarea,select){scroll-margin-block:80px 24px}
.faq-dialog,.feature-dialog,.venue-dialog{scroll-padding-block:72px 24px}
.desktop-nav .nav-row>a[aria-current=page]::after{right:0}
.mobile-nav .nav-row>a[aria-current=page]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:8px}

@media(max-width:700px){
 .about-page .seo-facts>.section-heading{grid-template-columns:1fr}
 .visitor-header{padding-top:var(--space-7)}
 .local-navigation .category-navigation{gap:var(--space-5)}
 .local-navigation.is-overflowing{padding-inline:12px;gap:4px}
 .practical-schedule{grid-template-columns:1fr;gap:var(--space-5)}
 .practical-schedule>div+div{padding-left:0;padding-top:var(--space-5);border-left:0;border-top:1px solid var(--border-subtle)}
 .visitor-page .dish h3{font-size:var(--text-base)}
 .menu-category{margin-top:var(--space-7)}
 .menu-category-heading{gap:var(--space-3)}
 .wine-sheet{margin-bottom:var(--space-7)}
 .visitor-section+.visitor-section{padding-top:var(--space-6)}
 .feature-story{padding-block:var(--space-7)}
 .faq-dialog .faq-filters{display:flex;flex-wrap:wrap}.faq-dialog .faq-filters button{width:auto;flex:1 1 auto;text-align:left}
 .faq-dialog .faq-section{padding-top:80px}
 .venue-page .venue-menu-heading{gap:var(--space-5)}
 .job-hero-controls button{min-width:44px;min-height:44px}
 .venue-hero-copy h1{overflow-wrap:break-word}
}
@media(prefers-reduced-motion:reduce){.category-navigation{scroll-behavior:auto}}
.wine-sheet[id]{scroll-margin-top:84px}
.skip:focus{position:fixed;top:8px;z-index:2147483647;outline:3px solid var(--focus)}

/* Mentions : même hiérarchie éditoriale, longueur de lecture maîtrisée. */
.legal-content .visitor-section{max-width:74ch}
