:root{--ink:#f8f1df;--espresso:#21150c;--espresso-soft:#2d1d11;--forest:#174b2c;--forest-deep:#0d321d;--gold:#d7a928;--gold-bright:#efbf3e;--paper:#fffdf8;--muted:#d9cdb8;--line:rgba(239,191,62,.32);--shadow:0 18px 48px rgba(0,0,0,.28)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:1rem}
body{margin:0;color:var(--ink);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.6;background:#171008}
a{color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--gold-bright);outline-offset:3px}
.skip-link{position:absolute;left:-9999px;top:8px;background:var(--paper);color:#15301f;padding:.75rem 1rem;z-index:20}
.skip-link:focus{left:8px}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1rem clamp(1rem,4vw,4rem);background:rgba(24,16,8,.96);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:.7rem;color:#fff;text-decoration:none}.brand-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--gold);color:#1b1209;font-weight:800}
.brand strong,.brand small{display:block}.brand small{font-size:.78rem;color:var(--muted)}
.site-header nav{display:flex;align-items:center;justify-content:flex-end;gap:.4rem;flex-wrap:wrap}.site-header nav a{padding:.55rem .7rem;border-radius:999px;text-decoration:none;font-weight:700}.site-header nav a:hover,.site-header nav a.active{background:var(--gold);color:#1b1209}
main{width:min(1120px,calc(100% - 2rem));margin:2rem auto 3rem}
.travel-guide-hero,.guide-controls,.guide-intake,.guide-disclosure{background:rgba(33,21,12,.95);border:1px solid var(--line);box-shadow:var(--shadow)}
.travel-guide-hero{padding:clamp(1.75rem,5vw,4.5rem);border-radius:24px;text-align:center}.eyebrow{margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:800;color:var(--gold-bright)}
h1,h2,h3{font-family:"Libre Caslon Display",serif;line-height:1.15}h1{font-size:clamp(2.35rem,6vw,4.9rem);margin:.25rem auto 1rem;max-width:900px}.travel-guide-hero p:last-child{max-width:760px;margin:0 auto;font-size:1.08rem;color:#f4ead7}
.guide-controls{position:sticky;top:.5rem;z-index:5;margin-top:1rem;padding:1.25rem;border-radius:18px;backdrop-filter:blur(12px)}
.guide-control-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(210px,1fr);gap:1rem}.guide-controls label{display:block;font-weight:800;margin-bottom:.35rem}.guide-controls input,.guide-controls select{width:100%;min-height:50px;border:1px solid rgba(255,255,255,.42);border-radius:12px;background:#fff;color:#1b1209;padding:.75rem 1rem;font:inherit;font-weight:600}
.guide-filters{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.guide-filters button,.guide-error button,.button,.guide-show-more{min-height:46px;border:1px solid var(--gold);border-radius:999px;padding:.65rem 1.1rem;background:transparent;color:#fff;font:inherit;font-weight:800;cursor:pointer;text-decoration:none}.guide-filters button[aria-pressed="true"],.guide-error button,.button,.guide-show-more{background:var(--gold);color:#1b1209}.guide-filters button:hover,.guide-show-more:hover{background:var(--gold-bright);color:#1b1209}
.guide-status{margin:1rem .25rem .5rem;color:#fff;font-weight:700}.guide-loading,.guide-error{padding:1.5rem;text-align:center;background:var(--espresso);border:1px solid var(--line);border-radius:16px}
.state-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;align-items:start}.state-card{scroll-margin-top:14rem;background:rgba(33,21,12,.97);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.2)}.state-card.is-open{grid-column:1/-1;border-color:var(--gold);box-shadow:var(--shadow)}
#state-grid .state-toggle{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:.75rem;width:100%;min-height:68px;padding:1rem 1.15rem;border:0;background:var(--espresso);color:#fff!important;font:inherit;font-weight:700!important;text-align:left;cursor:pointer}.state-toggle:hover{background:var(--espresso-soft)!important}.state-toggle>span:first-child{font-family:"Libre Caslon Display",serif;font-size:1.28rem;font-weight:700}#state-grid .state-toggle small{color:#f6e9d1!important;font-weight:700}.state-toggle>span:last-child{font-size:1.2rem;transition:transform .18s ease}.state-toggle[aria-expanded="true"]>span:last-child{transform:rotate(180deg)}
#state-grid .state-panel{border-top:1px solid var(--line);padding:1rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;background:#1a110a;color:#fff!important}#state-grid .state-panel.is-single-category{grid-template-columns:1fr}.listing-section{min-width:0}.listing-section>h3{margin:.1rem 0 .8rem;font-size:1.35rem;color:var(--gold-bright)}.listing-stack{display:grid;gap:.6rem}
.guide-listing{min-width:0;background:#2a1b10;border:1px solid rgba(255,255,255,.13);border-left:4px solid var(--gold);border-radius:11px;overflow:hidden}.guide-listing summary{display:flex;align-items:center;justify-content:space-between;gap:.8rem;min-height:64px;padding:.75rem .85rem;cursor:pointer;list-style:none}.guide-listing summary::-webkit-details-marker{display:none}.guide-listing summary>span:first-child{min-width:0}.guide-listing summary strong,.guide-listing summary small{display:block}.guide-listing summary strong{line-height:1.25}.guide-listing summary small{margin-top:.18rem;color:var(--muted);font-size:.78rem}.details-label{flex:0 0 auto;color:var(--gold-bright);font-size:.78rem;font-weight:800}.guide-listing[open] .details-label{visibility:hidden}.listing-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:.45rem;padding:0 .75rem .75rem}.listing-action{display:flex;align-items:center;justify-content:center;gap:.3rem;min-height:42px;padding:.45rem .55rem;border:1px solid var(--gold);border-radius:9px;color:#fff!important;font-weight:800;text-decoration:none;white-space:nowrap}.listing-action:hover{background:var(--gold);color:#1b1209!important}
.region-group{margin-bottom:1rem}.region-group>h4{margin:.1rem 0 .55rem;color:#fff}#state-grid .category-empty{color:#fff!important;font-weight:600}.guide-empty{grid-column:1/-1;padding:clamp(2rem,6vw,4rem);border:1px solid var(--line);border-radius:16px;background:rgba(33,21,12,.97);text-align:center;box-shadow:var(--shadow)}.guide-empty h2{margin:0 0 .5rem;color:var(--gold-bright)}.guide-empty p{margin:0;color:#f4ead7}.guide-more-wrap{display:flex;justify-content:center;margin:1.25rem 0}.guide-show-more{min-width:min(100%,240px)}
.guide-intake{margin-top:1.25rem;padding:clamp(1.25rem,3vw,2rem);border-radius:18px;text-align:center}.guide-intake h2{margin:.2rem 0 .7rem}.guide-intake p:not(.eyebrow){max-width:760px;margin:.5rem auto 1.25rem}.guide-disclosure{margin-top:1rem;padding:1rem 1.25rem;border-radius:14px;color:#eee1cc}
footer{padding:2rem clamp(1rem,4vw,4rem);background:#0e0905;color:#fff;text-align:center}footer .brand{justify-content:center;color:#fff}footer .brand small,footer a{color:#fff}.fine-print{font-size:.88rem}[hidden]{display:none!important}
@media(max-width:900px){.site-header{align-items:flex-start;flex-direction:column}.site-header nav{justify-content:flex-start}.state-panel{grid-template-columns:1fr 1fr}.listing-section:last-child{grid-column:1/-1}}
@media(max-width:620px){main{width:min(100% - 1rem,1120px);margin-top:.75rem}.site-header{padding:.8rem}.site-header nav{gap:.15rem}.site-header nav a{padding:.45rem .52rem;font-size:.9rem}.travel-guide-hero{padding:1.5rem 1rem;border-radius:16px}.guide-controls{position:static;padding:1rem}.guide-control-grid{grid-template-columns:1fr}.guide-filters{display:grid;grid-template-columns:1fr 1fr}.guide-filters button{width:100%;padding:.55rem .45rem}.state-grid{grid-template-columns:1fr}.state-card{scroll-margin-top:1rem}.state-card.is-open{grid-column:auto}#state-grid .state-panel{grid-template-columns:1fr;padding:.75rem}.listing-section:last-child{grid-column:auto}#state-grid .state-toggle{grid-template-columns:1fr auto;padding:.85rem 1rem}#state-grid .state-toggle small{grid-column:1/-1}.listing-actions{grid-template-columns:repeat(auto-fit,minmax(92px,1fr))}.listing-action{font-size:.9rem}}
@media(max-width:390px){.guide-filters{grid-template-columns:1fr}.listing-actions{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.state-toggle>span:last-child{transition:none}}
