/* ============================================================
   Functions.sg — Main CSS (loaded async, non-critical)
   Sections, cards, footer, forms, editorial content.
   Design tokens live in the inlined critical.css.
   ============================================================ */

/* ---- Section scaffolding ---------------------------------- */
.section{padding-block:var(--section-y)}
.section--tall{padding-block:clamp(4.5rem,3rem + 6vw,8rem)}
.section--booths{background:var(--sand)}
.section--why{background:var(--paper)}
.section--gallery{background:var(--sand)}
.section--reviews{background:var(--paper)}
.section--guides{background:var(--sand)}
.section--faq{background:var(--sand)}

.section__head{max-width:60ch;margin:0 auto clamp(2rem,1rem + 3vw,3.2rem);text-align:center}
.section__head--left{margin-inline:0;text-align:left}
.section__title{font-size:var(--step-3)}
.section__lead{font-size:var(--step-1);color:var(--muted);margin:0}
.section__foot{margin-top:clamp(2rem,1rem + 3vw,3rem);text-align:center}
.muted{color:var(--muted)}

/* ---- Trust stats ------------------------------------------ */
.stats{border-bottom:1px solid var(--line);background:var(--paper)}
.stats__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding-block:clamp(1.6rem,1rem + 2vw,2.6rem)}
.stat{text-align:center;padding:.5rem}
.stat__num{display:block;font-size:var(--step-4);font-weight:800;color:var(--ink);letter-spacing:-.03em;line-height:1}
.stat__label{display:block;margin-top:.4rem;font-size:var(--step--1);color:var(--muted);font-weight:600}
@media (max-width:620px){.stats__grid{grid-template-columns:repeat(2,1fr);gap:1.4rem}}

/* ---- Card grids ------------------------------------------- */
.cards{display:grid;gap:clamp(1.1rem,.8rem + 1.5vw,1.8rem)}
.cards--4{grid-template-columns:repeat(4,1fr)}
.cards--3{grid-template-columns:repeat(3,1fr)}
.cards--2{grid-template-columns:repeat(2,1fr)}
@media (max-width:1000px){.cards--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:940px){.cards--3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.cards--4,.cards--3,.cards--2{grid-template-columns:1fr}}

.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:transparent}
.card__media{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--sand-2)}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.card:hover .card__media img{transform:scale(1.05)}
.card__placeholder{display:grid;place-items:center;height:100%;color:var(--gold)}
.card__placeholder .icon{width:44px;height:44px}
.card__body{padding:1.3rem 1.35rem 1.5rem;display:flex;flex-direction:column;gap:.5rem;flex:1;position:relative}
.card__badge{align-self:flex-start;font-size:var(--step--1);font-weight:700;color:var(--ink);background:var(--gold-200);padding:.25em .7em;border-radius:999px}
.card__badge--soft{background:var(--sand-2);color:var(--gold-600)}
.card__title{font-size:var(--step-1);margin:0}
.card__title a{transition:color .2s ease}
.card__title a:hover{color:var(--gold-600)}
.card__excerpt{color:var(--muted);font-size:var(--step-0);margin:0;flex:1}
.card__link{display:inline-flex;align-items:center;gap:.4em;font-weight:700;color:var(--gold-600);font-size:var(--step-0);margin-top:.3rem}
.card:hover .card__link{color:var(--ink)}

/* Category card — vertical, equal-height (image on top) */
.card--category{flex-direction:column}
.card--category .card__media{aspect-ratio:16/10}
.card--category .card__body{padding:1.4rem 1.5rem 1.6rem;gap:.6rem}
.card--category .card__title{font-size:var(--step-2);min-height:2.2em}
.card__excerpt--clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* ---- Why / steps ------------------------------------------ */
.why__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,1rem + 4vw,5rem);align-items:start}
.why__intro{position:sticky;top:calc(var(--header-h) + 1.5rem)}
.steps{display:grid;gap:1rem}
.step{display:flex;gap:1.1rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem}
.step__icon{flex:0 0 auto;width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:var(--sand);color:var(--gold-600)}
.step__icon .icon{width:26px;height:26px}
.step__title{font-size:var(--step-1);margin:0 0 .25em}
.step__text{color:var(--muted);margin:0}
@media (max-width:820px){.why__grid{grid-template-columns:1fr}.why__intro{position:static}}

/* ---- Gallery ---------------------------------------------- */
.gallery-filter{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-bottom:clamp(1.5rem,1rem + 2vw,2.5rem)}
.chip{font-weight:600;font-size:var(--step--1);padding:.5em 1.1em;border-radius:999px;border:1.5px solid var(--line);background:var(--paper);color:var(--ink-700);cursor:pointer;transition:all .18s ease}
.chip:hover{border-color:var(--ink)}
.chip.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}
.gallery-grid{columns:4 220px;column-gap:clamp(.8rem,.5rem + 1vw,1.2rem)}
.gallery-grid__item{break-inside:avoid;margin-bottom:clamp(.8rem,.5rem + 1vw,1.2rem);border-radius:var(--radius);overflow:hidden;position:relative;background:var(--sand-2)}
.gallery-grid__item img{width:100%;transition:transform .4s ease}
.gallery-grid__item:hover img{transform:scale(1.04)}
.gallery-grid__item figcaption{position:absolute;inset:auto 0 0 0;padding:1.4rem .9rem .8rem;color:#fff;font-size:var(--step--1);font-weight:600;background:linear-gradient(0deg,rgba(0,0,0,.65),transparent)}
.gallery-grid__link{position:absolute;inset:0;z-index:2}
.gallery-grid__link:focus-visible{outline:2px solid var(--gold);outline-offset:-2px;border-radius:var(--radius)}
.gallery-grid__item.is-hidden{display:none}
@media (max-width:520px){.gallery-grid{columns:2 140px}}

/* ---- Testimonials ----------------------------------------- */
.testimonial{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:1.8rem;display:flex;flex-direction:column;gap:1rem}
.testimonial__stars{display:flex;gap:.15rem;color:var(--gold)}
.icon--star{width:1.05em;height:1.05em}
.testimonial__quote{font-size:var(--step-1);line-height:1.5;color:var(--ink);margin:0;font-weight:500}
.testimonial__quote p{margin:0}
.testimonial__cite{font-weight:700;color:var(--muted);font-size:var(--step-0)}
.testimonial__cite::before{content:"— "}

/* ---- CTA band --------------------------------------------- */
.cta-band{background:radial-gradient(120% 140% at 100% 0,#1e1e1e,var(--ink));color:#fff;position:relative;overflow:hidden}
.cta-band::after{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--gold-600),var(--gold),var(--gold-200))}
.cta-band__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2rem;padding-block:clamp(2.6rem,1.5rem + 4vw,4.5rem)}
.cta-band__heading{color:#fff;font-size:var(--step-3);margin:0 0 .3em}
.cta-band__text{color:rgba(255,255,255,.72);font-size:var(--step-1);margin:0;max-width:46ch}
.cta-band__actions{display:flex;flex-wrap:wrap;gap:.8rem}

/* ---- Page hero -------------------------------------------- */
.page-hero{background:linear-gradient(180deg,var(--sand),var(--paper));border-bottom:1px solid var(--line);padding-block:clamp(2.2rem,1.5rem + 3vw,3.6rem)}
.page-hero--center{text-align:center}
.page-hero--center .page-hero__subtitle{margin-inline:auto}
.page-hero__title{font-size:var(--step-4);margin:.3em 0 .3em}
.page-hero__subtitle{font-size:var(--step-1);color:var(--muted);max-width:52ch;margin:0 0 1.2rem}
.page-hero__actions{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;margin-top:.4rem}
.page-hero__actions--center{justify-content:center}
.page-hero__search{max-width:480px;margin:1.4rem auto 0}
.page-hero--service .page-hero__inner{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.5rem,1rem + 3vw,3.5rem);align-items:center}
.page-hero__img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}
.price-flag{font-weight:700;color:var(--gold-600)}
@media (max-width:820px){.page-hero--service .page-hero__inner{grid-template-columns:1fr}.page-hero--service .page-hero__media{order:-1}}

/* ---- Breadcrumb ------------------------------------------- */
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:inherit;font-size:var(--step--1);color:var(--muted)}
.page-hero--center .breadcrumb ol{justify-content:center}
.breadcrumb li{display:flex;align-items:center;gap:.4rem}
.breadcrumb li:not(:last-child)::after{content:"/";color:var(--line)}
.breadcrumb a:hover{color:var(--gold-600)}
.breadcrumb [aria-current="page"]{color:var(--ink-700);font-weight:600}

/* ---- Content grid (service singles) ----------------------- */
.content-grid{display:grid;grid-template-columns:1.6fr .9fr;gap:clamp(2rem,1rem + 3vw,3.5rem);align-items:start}
.content-grid__aside{position:sticky;top:calc(var(--header-h) + 1.5rem)}
.feature-card{background:var(--sand);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.8rem}
.feature-card__title{font-size:var(--step-1)}
.feature-list{display:grid;gap:.7rem;margin:1rem 0 1.5rem}
.feature-list li{display:flex;gap:.6rem;align-items:flex-start;color:var(--ink-700)}
.feature-list .icon{color:var(--gold-600);margin-top:.15em}
@media (max-width:860px){.content-grid{grid-template-columns:1fr}.content-grid__aside{position:static}}

/* ---- FAQ -------------------------------------------------- */
.faq{display:grid;gap:.7rem}
.faq__item{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.faq__q{display:flex;justify-content:space-between;align-items:center;gap:1rem;cursor:pointer;font-weight:700;font-size:var(--step-1);padding:1.1rem 1.3rem;list-style:none;color:var(--ink)}
.faq__q::-webkit-details-marker{display:none}
.faq__chevron{transition:transform .2s ease;color:var(--gold-600)}
.faq__item[open] .faq__chevron{transform:rotate(180deg)}
.faq__a{padding:0 1.3rem 1.2rem;color:var(--muted)}
.faq__a p{margin:0}

/* ---- Editorial content ------------------------------------ */
.entry-content{font-size:var(--step-0);color:var(--text)}
.entry-content>*+*{margin-top:1.1em}
.entry-content h2{font-size:var(--step-2);margin-top:1.6em}
.entry-content h3{font-size:var(--step-1);margin-top:1.4em}
.entry-content a{color:var(--gold-600);text-decoration:underline;text-underline-offset:3px}
.entry-content a:hover{color:var(--ink)}
.entry-content ul,.entry-content ol{margin-left:1.2em;display:grid;gap:.4em}
.entry-content ul{list-style:disc}
.entry-content ol{list-style:decimal}
.entry-content img,.entry-content__hero{border-radius:var(--radius);margin-block:1.4em}
.entry-content blockquote{border-left:4px solid var(--gold);padding:.4em 0 .4em 1.2em;font-size:var(--step-1);color:var(--ink);font-style:italic}
/* Content tables (comparison / reference tables in articles & service pages) */
.entry-content .table-wrap{overflow-x:auto;margin:1.7em 0;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-overflow-scrolling:touch}
.entry-content table{width:100%;border-collapse:collapse;margin:0;background:var(--paper);font-size:var(--step-0);min-width:480px}
.entry-content thead th,.entry-content table>tr:first-child th{background:var(--ink);color:#fff;text-align:left;font-weight:700;font-size:var(--step--1);letter-spacing:.02em;padding:.85em 1.05em;white-space:nowrap;vertical-align:bottom}
.entry-content tbody td,.entry-content td,.entry-content tbody th{padding:.78em 1.05em;border-top:1px solid var(--line);vertical-align:top;color:var(--text);font-variant-numeric:tabular-nums;text-align:left}
.entry-content tbody tr:nth-child(even){background:var(--sand)}
.entry-content tbody tr:hover{background:var(--sand-2)}
.entry-content tbody td:first-child,.entry-content tbody th:first-child{font-weight:700;color:var(--ink);white-space:nowrap}
.entry-content table strong{color:var(--ink)}
.entry-content .table-wrap table{border:0}
@media (max-width:560px){.entry-content table{font-size:var(--step--1)}.entry-content thead th,.entry-content tbody td{padding:.65em .8em}}
.single-post__hero{margin:1.6rem 0;border-radius:var(--radius-lg);overflow:hidden}
.single-post__hero img{width:100%;aspect-ratio:16/9;object-fit:cover}
.post-meta{color:var(--muted);font-size:var(--step--1);font-weight:600}

/* ---- Contact / forms -------------------------------------- */
.contact-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:clamp(2rem,1rem + 3vw,3.5rem);align-items:start}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}
.contact-intro{margin-bottom:1.6rem}
.quote-form{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(1.4rem,1rem + 2vw,2.2rem);box-shadow:var(--shadow)}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:560px){.field-grid{grid-template-columns:1fr}}
.field{margin:0 0 1rem;display:flex;flex-direction:column;gap:.4rem}
.field label{font-weight:600;font-size:var(--step--1);color:var(--ink)}
.field .req{color:var(--gold-600)}
.quote-form input,.quote-form select,.quote-form textarea{width:100%;font-family:inherit;font-size:var(--step-0);padding:.8em .9em;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--sand);color:var(--text);transition:border-color .2s ease,box-shadow .2s ease}
.quote-form input:focus,.quote-form select:focus,.quote-form textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(184,144,72,.18);background:var(--paper)}
.quote-form textarea{resize:vertical;min-height:120px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.quote-form__submit{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:.5rem}
.quote-form__note{margin:0;color:var(--muted);font-size:var(--step--1)}
.quote-form__status:empty{display:none}
.alert{padding:.9em 1.1em;border-radius:var(--radius-sm);font-weight:600;margin-bottom:1rem}
.alert--ok{background:#eaf6ee;color:#1c6b3a;border:1px solid #bfe2cb}
.alert--err{background:#fbecec;color:#a02222;border:1px solid #f0c6c6}
.is-loading{opacity:.6;pointer-events:none}

.contact-card{background:var(--ink);color:#fff;border-radius:var(--radius-lg);padding:1.8rem}
.contact-card__title{color:#fff;font-size:var(--step-1)}
.contact-card__list{display:grid;gap:1.1rem;margin-top:1.2rem}
.contact-card__list li{display:flex;gap:.8rem;align-items:flex-start}
.contact-card__list .icon{color:var(--gold);flex:0 0 auto;margin-top:.15em;width:1.3em;height:1.3em}
.contact-card__list a,.contact-card__list span{color:rgba(255,255,255,.86)}
.contact-card__list a:hover{color:#fff}
.contact-card__list small{display:block;color:rgba(255,255,255,.5);font-weight:500}

/* ---- Footer ----------------------------------------------- */
.site-footer{background:var(--ink);color:rgba(255,255,255,.72)}
.site-footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:clamp(1.5rem,1rem + 2vw,3rem);padding-block:clamp(3rem,2rem + 3vw,4.5rem)}
.site-footer__brand .brand img{height:64px;width:auto;filter:brightness(0) invert(1)}
.site-footer__tagline{color:var(--gold);font-weight:700;letter-spacing:.06em;margin:.9rem 0 .5rem;font-size:var(--step--1);text-transform:uppercase}
.site-footer__blurb{color:rgba(255,255,255,.55);font-size:var(--step-0);max-width:34ch}
.site-footer__socials{display:flex;gap:1rem;margin-top:1rem}
.site-footer__socials a{color:rgba(255,255,255,.7);font-weight:600;font-size:var(--step--1)}
.site-footer__socials a:hover{color:var(--gold)}
.site-footer__heading{color:#fff;font-size:var(--step-0);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1.1rem;font-weight:700}
.site-footer__col ul{display:grid;gap:.7rem}
.site-footer__col a{color:rgba(255,255,255,.72)}
.site-footer__col a:hover{color:var(--gold)}
.site-footer__contact li{display:flex;gap:.7rem;align-items:flex-start;margin-bottom:.9rem}
.site-footer__contact .icon{color:var(--gold);flex:0 0 auto;margin-top:.15em}
.site-footer__contact a,.site-footer__contact span{color:rgba(255,255,255,.72)}
.site-footer__contact a:hover{color:#fff}
.site-footer__bar{border-top:1px solid rgba(255,255,255,.1)}
.site-footer__bar-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-block:1.4rem;font-size:var(--step--1);color:rgba(255,255,255,.5)}
.site-footer__bar-inner p{margin:0}
.site-footer__legal{display:flex;gap:1.2rem}
.site-footer__legal a:hover{color:var(--gold)}
@media (max-width:860px){.site-footer__grid{grid-template-columns:1fr 1fr}.site-footer__brand{grid-column:1/-1}}
@media (max-width:520px){.site-footer__grid{grid-template-columns:1fr}}

/* ---- WhatsApp FAB ----------------------------------------- */
.whatsapp-fab{position:fixed;right:clamp(1rem,3vw,1.6rem);bottom:clamp(1rem,3vw,1.6rem);z-index:90;display:inline-flex;align-items:center;gap:.55rem;background:#25d366;color:#fff;font-weight:700;padding:.8rem 1.1rem;border-radius:999px;box-shadow:0 12px 30px -8px rgba(37,211,102,.6);transition:transform .2s ease,box-shadow .2s ease}
.whatsapp-fab:hover{transform:translateY(-2px) scale(1.02)}
.whatsapp-fab__icon{width:24px;height:24px}
.whatsapp-fab__label{font-size:var(--step--1)}
@media (max-width:560px){.whatsapp-fab__label{display:none}.whatsapp-fab{padding:.9rem}}

/* ---- Venue directory -------------------------------------- */
.venue-filter{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.1rem;box-shadow:var(--shadow);display:grid;gap:1rem;margin-bottom:1.5rem;position:sticky;top:calc(var(--header-h) + .5rem);z-index:20}
.venue-filter__search{display:flex;align-items:center;gap:.6rem;padding:.2rem .9rem;border:1.5px solid var(--line);border-radius:999px;background:var(--sand)}
.venue-filter__search .icon{color:var(--muted);flex:0 0 auto}
.venue-filter__search input{flex:1;border:0;background:transparent;font:inherit;padding:.6em 0;outline:none}
.venue-filter__facets{display:flex;flex-wrap:wrap;gap:.7rem;align-items:end}
.venue-filter__field{display:flex;flex-direction:column;gap:.25rem;flex:1 1 140px;min-width:120px}
.venue-filter__field span{font-size:var(--step--1);font-weight:600;color:var(--muted)}
.venue-filter__field select{font:inherit;padding:.6em .8em;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);cursor:pointer}
.venue-filter__field select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(184,144,72,.18)}
.btn--sm{padding:.6em 1em;font-size:var(--step--1)}
.venue-dir__count{font-weight:700;color:var(--ink);margin:0 0 1rem}
.venue-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.1rem,.8rem + 1.5vw,1.8rem)}
@media (max-width:940px){.venue-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.venue-grid{grid-template-columns:1fr}}
.venue-dir__empty{text-align:center;padding:clamp(2rem,1rem + 3vw,3.5rem);display:grid;gap:1.2rem;justify-items:center;color:var(--muted)}

.vcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.vcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:transparent}
.vcard[hidden]{display:none}
.vcard__media{position:relative;display:block;aspect-ratio:3/2;overflow:hidden;background:var(--sand-2)}
.vcard__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.vcard:hover .vcard__media img{transform:scale(1.05)}
.vcard__flag{position:absolute;top:.7rem;left:.7rem;background:var(--gold);color:var(--ink);font-size:var(--step--1);font-weight:700;padding:.25em .7em;border-radius:999px}
.vcard__body{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.vcard__loc{display:inline-flex;align-items:center;gap:.35em;font-size:var(--step--1);font-weight:600;color:var(--gold-600)}
.vcard__title{font-size:var(--step-1);margin:0}
.vcard__title a:hover{color:var(--gold-600)}
.vcard__excerpt{color:var(--muted);font-size:var(--step-0);margin:0;flex:1}
.vcard__meta{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin:.2rem 0}
.vcard__meta li{display:inline-flex;align-items:center;gap:.4em;font-size:var(--step--1);font-weight:600;color:var(--ink-700)}
.vcard__meta .icon{color:var(--gold-600)}
.vcard__tier{font-weight:800;color:var(--gold-600);letter-spacing:.05em}

.venue-hero__facts{display:flex;flex-wrap:wrap;gap:.6rem 1.3rem;margin:.4rem 0 1.3rem;color:var(--ink-700)}
.venue-hero__facts span{display:inline-flex;align-items:center;gap:.45em;font-weight:600}
.venue-hero__facts .icon{color:var(--gold-600)}
.venue-hl__title{font-size:var(--step-2);margin-bottom:1rem}
.venue-hl{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}
@media(max-width:820px){.venue-hl{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.venue-hl{grid-template-columns:1fr}}
.venue-hl__item{display:flex;flex-direction:column;gap:.15rem;background:var(--card,var(--paper));border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem}
.venue-hl__ico{color:var(--gold-600);margin-bottom:.2rem}
.venue-hl__ico .icon{width:1.3em;height:1.3em}
.venue-hl__lbl{font-size:var(--step--1);color:var(--muted);font-weight:600}
.venue-hl__val{font-size:var(--step-0);color:var(--ink);font-weight:700}
.venue-specs{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin:.2rem 0 1.3rem;list-style:none;padding:0}
.venue-specs li{font-size:var(--step--1);color:var(--muted)}
.venue-specs strong{color:var(--ink);font-weight:700}
.pill-list{display:flex!important;flex-wrap:wrap;gap:.5rem;margin-left:0!important;list-style:none!important}
.pill-list li{background:var(--sand);border:1px solid var(--line);border-radius:999px;padding:.35em .9em;font-size:var(--step--1);font-weight:600;color:var(--ink-700)}
.venue-disclaimer{font-size:var(--step--1);color:var(--muted);border-top:1px solid var(--line);padding-top:1rem;margin-top:1.5rem}

.browse-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,1rem + 2vw,3rem)}
.browse-cols--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:820px){.browse-cols--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:700px){.browse-cols{grid-template-columns:1fr}}
@media (max-width:480px){.browse-cols--4{grid-template-columns:1fr}}
.browse-col__title{font-size:var(--step-0);text-transform:uppercase;letter-spacing:.08em;color:var(--gold-600);margin-bottom:.9rem}
.browse-col ul{display:grid;gap:.5rem}
.browse-col a{color:var(--ink-700);font-weight:600}
.browse-col a:hover{color:var(--gold-600)}

/* ---- Misc ------------------------------------------------- */
.pagination{display:flex;justify-content:center;gap:.4rem;margin-top:clamp(2rem,1rem + 3vw,3.5rem)}
.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 .6rem;border-radius:var(--radius-sm);border:1.5px solid var(--line);font-weight:600;color:var(--ink-700)}
.pagination .page-numbers:hover{border-color:var(--ink)}
.pagination .page-numbers.current{background:var(--ink);color:#fff;border-color:var(--ink)}
.empty-state{text-align:center;padding:clamp(2rem,1rem + 3vw,4rem);display:grid;gap:1.2rem;justify-items:center;color:var(--muted)}
.search-form{display:flex;gap:.5rem}
.search-form__field{flex:1;padding:.8em 1em;border:1.5px solid var(--line);border-radius:999px;font-family:inherit;font-size:var(--step-0);background:var(--paper)}
.search-form__field:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(184,144,72,.18)}
.search-form__submit{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;flex:0 0 auto;border:0;border-radius:999px;background:var(--gold);color:var(--ink);cursor:pointer}
.search-form__submit:hover{background:var(--gold-600);color:#fff}
.search-results{display:grid;gap:1.2rem;max-width:760px;margin-inline:auto}
.search-result{border-bottom:1px solid var(--line);padding-bottom:1.2rem}
.search-result__type{font-size:var(--step--1);color:var(--gold-600);font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.search-result__title{font-size:var(--step-1);margin:.2em 0}
.search-result__excerpt{color:var(--muted);margin:0}
