/* Visitor paths share the public brand, without extra widgets or fonts. */
.hildes-modern .hv-hero-menu { display:inline-flex; align-items:center; min-height:44px; margin-top:12px; color:#faf8f3; font-size:14px; text-decoration:underline; text-underline-offset:5px; }
.hildes-modern .hv-visit-bar { display:grid; grid-template-columns:.85fr 1fr 1.25fr; padding:0 max(28px, calc((100vw - 1320px) / 2)); background:#f1ece2; color:#14231d; }
.hv-visit-bar > a { display:flex; flex-direction:column; justify-content:center; gap:3px; padding:23px 26px; color:inherit; min-width:0; border-right:1px solid #14231d22; }
.hv-visit-bar > a:first-child { padding-left:0; }
.hv-visit-bar > a:last-child { border:0; }
.hv-visit-bar > a > span { color:#586456; font-size:12px; }
.hv-visit-bar strong { font-size:15px; font-weight:550; line-height:1.4; }
.hv-visit-bar a:hover strong { text-decoration:underline; text-underline-offset:4px; }
.hildes-modern :where(.hv-visit-bar,.hv-faq-section) :where(a,summary):focus-visible { outline:3px solid #855b20; outline-offset:4px; }
.hildes-modern :where(.hv-faq-section,.hv-reviews,.hv-home-program) { padding:80px max(28px, calc((100vw - 1320px) / 2)); }
.hildes-modern :where(.hv-faq-section,.hv-reviews,.hv-home-program) h2 { margin:0 0 22px; font-size:clamp(32px,4vw,52px); line-height:1.12; }
.hildes-modern .hv-faq-section { display:grid; grid-template-columns: .8fr 1.2fr; gap:70px; background:#f5f1e8; color:#14231d; }
.hv-faq-intro p:not(.kicker) { max-width:34ch; color:#586456; font-size:16px; }
.hildes-modern .hv-faq-section .kicker { color:#586456; }
.hildes-modern .hv-faq-section .gold-link { color:#14231d; }
.hv-faq-list { min-width:0; }
.hv-faq-list details { border-bottom:1px solid #14231d29; }
.hv-faq-list summary { display:flex; gap:18px; justify-content:space-between; align-items:center; list-style:none; padding:21px 0; font-size:17px; font-weight:550; line-height:1.4; cursor:pointer; }
.hv-faq-list summary::-webkit-details-marker { display:none; }
.hv-faq-list summary span { flex-shrink:0; display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:#14231d0a; font-size:22px; font-weight:400; }
.hv-faq-list details[open] summary span { transform:rotate(45deg); }
.hv-faq-list details p { margin:0; padding:0 36px 22px 0; color:#475447; font-size:15px; line-height:1.7; }
.hv-faq-list details a { color:#14231d; text-decoration:underline; text-underline-offset:4px; }
.hv-faq-list summary:focus-visible { outline:3px solid #8a6227; outline-offset:3px; border-radius:5px; }
.hildes-modern .hv-reviews { background:#1a2c24; }
.hv-reviews-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:32px; }
.hv-reviews-heading h2 { max-width:750px; }
.hv-reviews-heading > a { display:inline-flex; align-items:center; gap:8px; min-height:44px; flex-shrink:0; padding-bottom:4px; color:#e9bd65; font-size:14px; }
.hv-review-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.hv-review-grid figure { display:flex; flex-direction:column; margin:0; padding:30px; border:1px solid #faf8f329; border-radius:22px; }
.hv-review-grid blockquote { display:block; min-height:0; margin:0 0 28px; padding:0; border:0; background:none; }
.hildes-modern .hv-review-grid blockquote p { margin:0; color:#faf8f3; font-size:clamp(22px,2.3vw,30px); font-weight:500; line-height:1.4; }
.hv-review-grid figcaption { margin-top:auto; color:#c2c8c2; font-size:13px; }
.hv-review-grid figcaption a { display:block; padding-top:10px; color:#e9bd65; line-height:1.8; }
.hildes-modern .hv-home-program { background:#14231d; }
.hv-home-program .event-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); }
.hv-program-empty { max-width:65ch; color:#c2c8c2; font-size:17px; }
.hildes-modern .hv-event-note { margin-top:20px; padding-top:18px; border-top:1px solid #faf8f329; color:#c2c8c2; font-size:14px; }
.hildes-modern .hv-event-card .event-card-body { padding:28px; }
.hildes-modern .hv-event-card img { aspect-ratio:4/3; object-fit:cover; height:auto; }
.hv-catering-link { display:flex; gap:20px; justify-content:space-between; align-items:center; padding-top:28px; margin-top:32px; border-top:1px solid #faf8f329; color:#faf8f3; }
.hv-catering-link > span { color:#c2c8c2; }
.hv-catering-link strong { font-weight:500; }
.hildes-modern .hv-event-empty { max-width:760px; padding:32px; border:1px solid #faf8f329; border-radius:24px; background:#1a2c24; }
.hv-event-empty p { color:#c2c8c2; }
.hildes-modern .hv-visit-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:24px; }
.hildes-modern .hv-visit-actions a { min-height:48px; }
.hv-visit-highlights { display:flex; gap:8px 20px; flex-wrap:wrap; margin-top:22px; color:#c2c8c2; font-size:13px; }
.hildes-modern .contact-card .hv-route-link { display:inline-flex; align-items:center; min-height:44px; color:#e9bd65; text-decoration:underline; text-underline-offset:4px; }
@media(max-width:900px) {
 .hildes-modern .hv-faq-section { grid-template-columns:1fr; gap:24px; }
 .hv-faq-intro p:not(.kicker) { max-width:58ch; }
 .hv-reviews-heading { align-items:flex-start; flex-direction:column; gap:0; }
 .hv-catering-link { align-items:flex-start; flex-direction:column; gap:10px; }
}
@media(max-width:680px) {
 .hildes-modern .hv-visit-bar { grid-template-columns:1fr 1fr; padding:0 22px; }
 .hv-visit-bar > a { padding:18px 0; }
 .hv-visit-bar > a:nth-child(2) { padding-left:18px; border:0; }
 .hv-visit-bar > a:last-child { grid-column:1/-1; border-top:1px solid #14231d22; padding:14px 0 18px; }
 .hv-visit-bar strong { font-size:14px; }
 .hildes-modern :where(.hv-faq-section,.hv-reviews,.hv-home-program) { padding:56px 22px; }
 .hv-review-grid { grid-template-columns:1fr; }
 .hv-review-grid figure { padding:24px; }
 .hv-faq-list summary { font-size:16px; }
 .hildes-modern .hv-hero-menu { margin-top:6px; }
}

/* Keep the existing Guestplan launcher and Hilde independently reachable. */
.hildes-modern:has(.guestplan-box:not([data-hildes-reservation-channel])) #hilde-help .hw-launch { bottom:calc(88px + env(safe-area-inset-bottom,0px)); }
