/* Last in cascade: readable type, visible controls, stable native dialogs. */
:root { --muted: #505c53; }
[hidden] { display: none !important; }
:root :is(a,button,input,summary,[tabindex]):focus-visible {
  outline: 3px solid #102e23; outline-offset: 4px; box-shadow: 0 0 0 4px #fff;
}
:where(a,button,input,summary) { scroll-margin-block: 140px 120px; }
.site-header { background: rgba(18,30,22,.9); }
.hero-shade { background: linear-gradient(90deg,rgba(9,26,18,.85),rgba(9,26,18,.68)) !important; }
.ceremony::before { background: linear-gradient(90deg,rgba(10,23,15,.88),rgba(10,23,15,.75)); }
.video-play > span { background: #183a2e; color:#fff; padding: 8px 12px; border-radius: 3px; }
.video-controls { background: rgba(9,26,18,.94); color: #fff; }
.legal-footer { padding-block: 32px; color: #f8f4ee; font-size: 13px; line-height: 1.8; }
.legal-footer nav { display:flex; flex-wrap:wrap; gap:12px 24px; margin-bottom:22px; }
.legal-footer a, .legal-footer button { color:inherit; text-decoration:underline; text-underline-offset:4px; }
.legal-footer button { background:none; border:0; padding:0; font:inherit; cursor:pointer; }
.legal-footer p { max-width:900px; margin-block:10px; }
.legal-footer .privacy-context { color:#e1e5dd; }
.legal-page { max-width:900px; padding-block:40px 80px; }
.legal-page h1 { font-size:clamp(34px,6vw,64px); margin-bottom:20px; }
.legal-page h2 { font-size:clamp(25px,4vw,34px); margin-top:40px; margin-bottom:16px; }
.legal-page p,.legal-page dl { font-size:16px; line-height:1.8; margin-block:16px; }
.legal-page a:not(.button),.cookie-banner a,.privacy-dialog p a { text-decoration:underline; text-underline-offset:3px; }
.transcript-link { text-decoration:underline; text-underline-offset:3px; }
.comment-transcript { margin:16px 0; padding:20px 26px; background:#efe9df; }
.comment-transcript p { font:400 16px/1.8 var(--sans); color:#263b32; }
.legal-date { color:var(--muted); }
.legal-draft { background:#eee3d2; color:#393829; padding:22px; border-radius:8px; }
.business-details { display:grid; grid-template-columns: minmax(150px,1fr) 2fr; gap:12px 24px; }
.business-details dt { font-weight:600; }
.business-details dd { margin:0; overflow-wrap:anywhere; }
.table-scroll { overflow:auto; }
.legal-page table { border-collapse:collapse; width:100%; font-size:14px; text-align:left; }
.legal-page caption { text-align:left; font-weight:600; padding-block:12px; }
.legal-page th,.legal-page td { padding:14px 10px; border-bottom:1px solid #a8afa5; vertical-align:top; }
.cookie-banner { position:fixed; z-index:80; bottom:16px; left:16px; width:min(470px,calc(100% - 32px)); background:#f8f4ee; color:#263b32; border:1px solid #a8afa5; border-radius:12px; padding:20px; box-shadow:0 8px 30px #102e231a; max-height:40dvh; overflow:auto; }
.cookie-banner h2 { font-size:23px; margin:0 0 10px; }
.cookie-banner p { font-size:13px; line-height:1.6; margin:0 0 14px; }
.consent-actions { display:flex; flex-wrap:wrap; gap:10px; }
.consent-actions button { font:600 12px var(--sans); padding:11px 16px; min-height:44px; border:1px solid #596259; background:#f8f4ee; color:#183a2e; border-radius:999px; cursor:pointer; }
.consent-actions button:hover { background:#e5e9df; }
.privacy-dialog { position:fixed; inset:0; margin:auto; width:min(580px,calc(100% - 32px)); max-height:calc(100dvh - 48px); padding:40px 28px 28px; overflow:auto; border:1px solid #a8afa5; border-radius:12px; background:#f8f4ee; color:#263b32; }
.privacy-dialog::backdrop { background:rgba(8,25,17,.65); }
.privacy-dialog h2 { font-size:32px; margin-block:12px 20px; }
.privacy-dialog p { font-size:14px; line-height:1.7; margin-block:16px; }
.privacy-dialog .dialog-close { position:absolute; right:8px; top:8px; min-width:44px; min-height:44px; font:28px var(--sans); color:#183a2e; border:0; background:transparent; cursor:pointer; }
.privacy-dialog .text-link { display:block; margin-top:20px; }
.privacy-dialog .button { text-align:center; white-space:normal; }
.consent-option { display:flex; align-items:start; gap:12px; font-size:14px; line-height:1.6; padding-block:12px; }
.consent-option input { width:20px; height:20px; flex-shrink:0; accent-color:#183a2e; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.has-consent-banner { padding-bottom:300px; }
html:has(.has-consent-banner) { scroll-padding-bottom:330px; }
.nojs-privacy { padding:28px; font-size:14px; }
@media(max-width:800px) {
 .cookie-banner { bottom:80px; }
 .business-details { grid-template-columns:1fr; gap:4px; }
 .business-details dd { margin-bottom:14px; }
 .privacy-dialog { padding-inline:20px; }
}
@media(forced-colors:active) {
 :root :is(a,button,input,summary,[tabindex]):focus-visible { outline:3px solid Highlight; }
 .cookie-banner,.privacy-dialog,.button { border:1px solid CanvasText; }
}
