/* Hawthorne public site: the small layer on top of the venue stylesheet that
   replaces inline styles in server-rendered components. */
.hw-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.hw-skip { position:absolute; left:.75rem; top:-4rem; z-index:2000; padding:.6rem 1rem; background:var(--gold); color:var(--black); font-family:'Josefin Sans',sans-serif; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; }
.hw-skip:focus { top:.75rem; }
.hw-center { text-align:center; }
.hw-muted-note { color:var(--muted); font-style:italic; font-size:.85rem; }
.hw-center.hw-muted-note { padding:2rem; font-size:1rem; }

/* Hero: film fades over the poster without a layout shift. */
.hero-c img.hero-bg-video { z-index:0; }
.hero-c video.hero-bg-video { z-index:0; }
.hw-hero-quiet { display:inline-block; margin-top:1rem; color:var(--gold); text-decoration:none; font-family:'Josefin Sans',sans-serif; font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; opacity:.85; transition:opacity .15s; }
.hw-hero-quiet:hover, .hw-hero-quiet:focus-visible { opacity:1; }
.hw-cta-row { display:flex; gap:2rem; justify-content:center; flex-wrap:wrap; }
.hw-cta-left { justify-content:flex-start; gap:.75rem; }
.hw-cta-band { padding-top:2rem; }
.story-section[data-hw-section="ahead"] { padding-top:3rem; }
.hw-pb-heading { font-family:'Playfair Display',serif; font-style:italic; font-weight:400; color:var(--cream); font-size:clamp(1.6rem,3vw,2.4rem); margin-bottom:.8rem; }

/* Menu: all panels are in the HTML. Without JS, a guest simply sees them all. */
a.menu-tab { text-decoration:none; }
.hw-tabpanel + .hw-tabpanel { margin-top:3rem; }
.hw-js .hw-tabpanel { margin-top:0; }
.hw-js .hw-tabpanel:not(.is-active) { display:none; }
.hw-note-mark { color:var(--gold-dim); font-size:.75rem; }
.hw-menu-lead { text-align:center; margin-bottom:2.2rem; }
.hw-menu-lead p { color:var(--cream-dim); font-style:italic; font-size:1rem; }
.hw-menu-glyph { font-size:1.4rem; margin-bottom:.4rem; color:var(--gold); }
.hw-menu-note { font-size:.76rem; color:var(--muted); font-style:italic; margin-top:1.2rem; }
.hw-tabpanel[data-hw-tabpanel="bites"] .hw-menu-note { text-align:center; margin-top:1.4rem; }
.hw-menu-footer { text-align:center; margin-top:2.6rem; font-family:'Cormorant Garamond',serif; font-style:italic; color:var(--cream-dim); }
.hw-menu-text { max-width:560px; margin:1rem auto 0; text-align:center; }
.hw-menu-intro { color:var(--cream-dim); font-style:italic; font-size:1.05rem; margin-bottom:1.6rem; }
.hw-menu-text h3 { font-family:'Playfair Display',serif; font-size:1.7rem; font-style:italic; color:var(--cream); line-height:1.3; margin-bottom:1rem; font-weight:400; }
.hw-menu-text > p:last-child { color:var(--cream-dim); font-size:1rem; line-height:1.7; }
.hw-menu-extra { margin-top:3rem; }
.hw-menu-extra-label { font-family:'Josefin Sans',sans-serif; font-size:.58rem; letter-spacing:.32em; text-transform:uppercase; color:var(--gold); text-align:center; padding-bottom:.7rem; border-bottom:1px solid var(--border); margin-bottom:1rem; }

/* Private events */
.hw-intro { max-width:560px; margin:0 auto 1.4rem; text-align:center; color:var(--cream-dim); font-size:1rem; }
.hw-notice { display:flex; flex-direction:column; align-items:center; gap:.35rem; text-align:center; background:rgba(201,168,76,.08); border:1px solid var(--gold-dim); padding:1.1rem 1.4rem; max-width:560px; margin:0 auto 2.2rem; }
.hw-notice-dot { font-size:1.2rem; color:var(--gold); line-height:1; }
.hw-notice-label { font-family:'Josefin Sans',sans-serif; font-size:.55rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); }
.hw-notice-body { color:var(--cream); font-size:.95rem; max-width:440px; }
.hw-card-glyph { font-size:1.2rem; margin-bottom:.65rem; color:var(--gold); }
.hw-image-pair { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; padding-top:0; padding-bottom:2.5rem; }
.hw-image-pair img { width:100%; height:300px; object-fit:cover; filter:brightness(.8); }
@media (max-width:640px) { .hw-image-pair img { height:180px; } }
.hw-form-card { background:var(--card); border:1px solid var(--border); padding:2.2rem; max-width:600px; margin:0 auto; }
.hw-form-heading { font-family:'Playfair Display',serif; font-size:1.25rem; color:var(--cream); margin-bottom:.35rem; text-align:center; font-weight:400; }
.hw-form-intro { color:var(--muted); font-size:.87rem; margin-bottom:1.6rem; text-align:center; }
.hw-field-note { color:var(--gold-dim); font-size:.75rem; font-style:italic; text-transform:none; letter-spacing:0; }
.hw-form-error { margin-top:1rem; color:var(--accent-danger); font-size:.9rem; text-align:center; }

.hw-feature-title { font-family:'Playfair Display',serif; font-size:clamp(2rem,4vw,3.2rem); font-style:italic; color:var(--cream); font-weight:400; max-width:680px; margin:0 auto; }
.section[data-hw-type="offer_cards"] { padding-bottom:2.5rem; }

/* Visit */
.hw-address { font-style:normal; }
.hw-hours { font-size:.92rem; line-height:1.9; }
.hw-hour-row { display:flex; justify-content:space-between; gap:1rem; }
.hw-closed { color:var(--muted); }
.hw-hh-line { margin-top:.6rem; font-size:.78rem; color:var(--gold); }
.hw-plain-link { color:var(--cream); }
.hw-gold-link { color:var(--gold); }
.hw-map { width:100%; height:100%; background:var(--rich); display:flex; align-items:center; justify-content:center; }
.hw-map-fallback { color:var(--gold); font-family:'Josefin Sans',sans-serif; font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; }
.hw-map-popup { display:flex; flex-direction:column; gap:.2rem; align-items:center; text-align:center; font-family:'Cormorant Garamond',serif; color:#1a1510; }
.hw-map-popup strong { font-family:'Playfair Display',serif; font-weight:500; font-size:1.05rem; color:#0a0806; }
.hw-map-popup a { margin-top:.35rem; font-family:'Josefin Sans',sans-serif; font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color:#8a6f32; }
.hw-concierge { margin-top:1.5rem; background:var(--card); border:1px solid var(--border); padding:1.5rem 1.7rem; }
.hw-concierge p { color:var(--muted); font-size:.92rem; margin:.5rem 0 1.1rem; }
.hw-chat-button { background:var(--gold); color:#1a1510; }

/* Questions: open in the HTML to every crawler, tidy for guests. */
.hw-faq { padding-top:2rem; }
.hw-faq-list { max-width:720px; margin:2rem auto 0; border-top:1px solid var(--border); }
.hw-faq-item { border-bottom:1px solid var(--border); }
.hw-faq-item summary { list-style:none; cursor:pointer; padding:1.05rem 2rem 1.05rem 0; position:relative; font-family:'Playfair Display',serif; color:var(--cream); font-size:1.05rem; }
.hw-faq-item summary::-webkit-details-marker { display:none; }
.hw-faq-item summary::after { content:'+'; position:absolute; right:.25rem; top:1rem; color:var(--gold); font-family:'Josefin Sans',sans-serif; font-size:1.1rem; }
.hw-faq-item[open] summary::after { content:'–'; }
.hw-faq-item summary:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.hw-faq-item p { padding:0 2rem 1.2rem 0; color:var(--cream-dim); font-size:1rem; line-height:1.7; }

.hw-rich-body { max-width:720px; margin:1.4rem auto 0; color:var(--cream-dim); font-size:1.02rem; line-height:1.8; }
.hw-rich-body > * + * { margin-top:1rem; }
.hw-rich-body h2, .hw-rich-body h3 { font-family:'Playfair Display',serif; font-weight:400; color:var(--cream); }
.hw-rich-body a { color:var(--gold); }

.hw-back-link { font-family:'Josefin Sans',sans-serif; font-size:.55rem; letter-spacing:.25em; text-transform:uppercase; color:var(--muted); }
.f-links-legal { margin-top:.6rem; font-size:.82rem; opacity:.75; }
.hw-credit { margin-top:2rem; }
.hw-notfound { padding-top:7rem; padding-bottom:7rem; }

/* Studio canvas only. */
.hw-app-placeholder { text-align:center; padding:6rem 1.5rem; border:1px dashed var(--border-hi); margin:2rem; }
.hw-app-placeholder .story-title { margin:.6rem auto 1rem; }
.hw-empty-image { display:flex; align-items:center; justify-content:center; min-height:200px; color:var(--muted); background:var(--rich); border:1px dashed var(--border-hi); font-family:'Josefin Sans',sans-serif; font-size:.65rem; letter-spacing:.2em; text-transform:uppercase; }
.hw-hidden-section { opacity:.35; position:relative; }
.hw-hidden-section::before { content:'Hidden from guests'; position:absolute; top:.5rem; left:.5rem; z-index:5; background:#000; color:#fff; font:600 11px Manrope,sans-serif; padding:.2rem .5rem; border-radius:3px; }
.hw-editing [data-hw-section] { position:relative; cursor:pointer; outline:1px dashed transparent; outline-offset:-1px; transition:outline-color .12s; }
.hw-editing [data-hw-section]:hover { outline-color:rgba(232,201,122,.55); }
.hw-editing [data-hw-section].hw-selected { outline:2px solid #e8c97a; outline-offset:-2px; }
.hw-editing [data-edit] { cursor:text; }
.hw-editing [data-edit]:focus { outline:1px solid #e8c97a; outline-offset:3px; }
.hw-editing a, .hw-editing button { cursor:pointer; }
.hw-editing .hero-c { min-height:560px; height:560px; }

/* Ticket tiers on an event card stack on their own line. */
.ev-ticket-types { display:grid; gap:.4rem; flex-basis:100%; min-width:0; overflow-wrap:anywhere; }

/* Rich text. The studios write these classes; the venue's theme decides how they look. */
.hw-prose > * + * { margin-top:1rem; }
.hw-prose h2 { font-family:'Playfair Display',serif; font-weight:400; font-size:1.7em; line-height:1.2; color:var(--cream); }
.hw-prose h3 { font-family:'Playfair Display',serif; font-style:italic; font-weight:400; font-size:1.3em; line-height:1.3; color:var(--cream); }
.hw-prose h4 { font-family:'Josefin Sans',sans-serif; font-weight:400; font-size:.78em; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); }
.hw-prose ul, .hw-prose ol { padding-left:1.4em; }
.hw-prose ul { list-style:disc; }
.hw-prose ol { list-style:decimal; }
.hw-prose li + li { margin-top:.35em; }
.hw-prose li > p { margin:0; }
.hw-prose li::marker { color:var(--gold); }
.hw-prose blockquote { margin-left:0; padding:.2em 0 .2em 1.2em; border-left:2px solid var(--gold); font-family:'Playfair Display',serif; font-style:italic; font-size:1.18em; line-height:1.5; color:var(--cream); }
.hw-prose blockquote p { margin:0; }
.hw-prose hr { border:0; border-top:1px solid var(--border-hi,var(--border)); margin:1.6em auto; width:40%; }
.hw-prose a { color:var(--gold-light,var(--gold)); text-decoration:underline; text-underline-offset:.18em; text-decoration-thickness:1px; }
.hw-prose s { opacity:.7; }
.hw-tone-accent { color:var(--gold-light,var(--gold)); }
.hw-tone-light { color:var(--cream); }
.hw-tone-muted { color:var(--muted); }
.hw-tone-rose { color:#d98f87; }
mark.hw-mark-accent, mark.hw-mark-soft { color:inherit; padding:.04em .22em; border-radius:2px; -webkit-box-decoration-break:clone; box-decoration-break:clone; }
mark.hw-mark-accent { background:color-mix(in srgb,var(--gold) 32%,transparent); }
mark.hw-mark-soft { background:color-mix(in srgb,var(--cream) 13%,transparent); }
.hw-align-center { text-align:center; }
.hw-align-right { text-align:right; }
.hw-look-lead { font-family:'Cormorant Garamond',serif; font-size:1.34em; line-height:1.5; color:var(--cream); }
.hw-look-small { font-size:.84em; line-height:1.55; color:var(--cream-dim); }
.hw-look-eyebrow { font-family:'Josefin Sans',sans-serif; font-size:.62rem; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); }
img.hw-img-25 { width:25%; }
img.hw-img-50 { width:50%; }
img.hw-img-75 { width:75%; }
img.hw-img-center { display:block; margin-left:auto; margin-right:auto; }
img.hw-img-right { display:block; margin-left:auto; margin-right:0; }
