@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,500&family=Inter:wght@400;600;700;800&display=swap');

/* ============================================================
   Little Sahara Utah, high-desert sibling of the Oregon Dunes
   Guide framework. Same structural class vocabulary and type
   pairing, retuned palette, original SVG dune art (no photos).
   ============================================================ */

:root{
  --ink:#2f2418;          /* deep desert shadow   */
  --deep:#211809;         /* darkest umber        */
  --juniper:#4d6152;      /* juniper green accent */
  --sand:#e6d2a8;         /* quartz dune sand     */
  --sand-deep:#cdb383;
  --cream:#f7f1e4;        /* page background      */
  --orange:#c2562c;       /* desert sunset accent */
  --ember:#e08a4a;
  --sky:#d5e2ea;          /* high desert sky      */
  --white:#fffdf7;
  --rule:rgba(47,36,24,.14);
  --shadow:0 18px 46px rgba(33,24,9,.13);

  /* Layered dune silhouettes, generated, no image files required. */
  --dune-far:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 420' preserveAspectRatio='none'%3E%3Cpath d='M0,286 C170,232 322,318 486,286 C650,254 786,178 968,214 C1132,246 1292,322 1440,278 L1440,420 L0,420 Z' fill='%23000' fill-opacity='.20'/%3E%3C/svg%3E");
  --dune-mid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 420' preserveAspectRatio='none'%3E%3Cpath d='M0,338 C150,300 268,356 430,332 C614,304 742,244 918,272 C1094,300 1268,360 1440,330 L1440,420 L0,420 Z' fill='%23000' fill-opacity='.28'/%3E%3C/svg%3E");
  --dune-near:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 420' preserveAspectRatio='none'%3E%3Cpath d='M0,380 C190,352 340,392 520,374 C700,356 856,318 1040,344 C1204,366 1320,394 1440,378 L1440,420 L0,420 Z' fill='%23000' fill-opacity='.42'/%3E%3C/svg%3E");
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,Arial,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit}
img{max-width:100%;height:auto}
.shell{width:min(1180px,calc(100% - 48px));margin:auto}

/* ---------- typography ---------- */
.kicker,.section-label{font-size:10px;font-weight:800;letter-spacing:.22em;color:var(--ember);margin:0}
.section-label.dark{color:var(--orange)}
.section-label.pale{color:var(--sand)}
h1,h2,h3{margin:0}
.display,.hero h1,.sub-hero h1,.intro h2,.directory h2,.conditions-band h2,.guide-hero h1,.guide-content h2,.official-band h2,.trip-strip h2,.zone-hero h1{font-family:"Cormorant Garamond",serif;font-weight:600;line-height:.92;letter-spacing:-.04em}
.hero h1{font-size:clamp(58px,8.4vw,120px);margin:22px 0 26px;line-height:.88}
.hero h1 em{font-style:italic;color:var(--sand)}
.intro h2,.directory h2,.conditions-band h2{font-size:clamp(38px,4.6vw,62px)}
.intro h2 i,.directory h2 i,.conditions-band h2 i{font-style:italic;color:var(--orange)}
.lead{font-size:19px;line-height:1.55}

/* ---------- header ---------- */
.site-header{height:76px;padding:0 max(24px,calc((100vw - 1180px)/2));display:flex;align-items:center;gap:34px;background:rgba(247,241,228,.97);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:40;backdrop-filter:saturate(1.2) blur(6px)}
.brand{display:block;width:218px;flex:none}
.brand img{display:block;width:100%;height:auto}
.site-header nav{display:flex;gap:22px;margin-left:auto;font-size:12px;font-weight:700}
.site-header nav a{padding:4px 0;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}
.site-header nav a:hover,.site-header nav a[aria-current=page]{color:var(--orange);border-bottom-color:var(--orange)}
.header-cta{background:var(--ink);color:var(--white);padding:13px 18px;font-size:11px;font-weight:800;letter-spacing:.06em;white-space:nowrap;transition:background .15s}
.header-cta:hover{background:var(--orange)}
.menu-button{display:none;background:none;border:0;color:var(--ink);font-weight:800;font-size:12px;letter-spacing:.12em;margin-left:auto}

/* ---------- hero ---------- */
.hero{min-height:660px;position:relative;color:var(--white);display:flex;flex-direction:column;justify-content:center;
  background:
    linear-gradient(180deg,rgba(28,20,10,.08),rgba(28,20,10,.3)),
    url("../public/images/hero-home-little-sahara-v1.webp") center 48%/cover no-repeat,
    linear-gradient(178deg,#3d2f1d 0%,#8a6236 100%);
}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(92deg,rgba(20,14,8,.82),rgba(20,14,8,.46) 48%,rgba(20,14,8,.08) 76%,transparent);pointer-events:none}
.hero-content{position:relative;z-index:2;padding:96px 0 64px}
.hero-copy{max-width:560px;font-size:18px;color:rgba(255,253,247,.9)}
.actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:34px}

.region-ribbon{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(255,253,247,.2);border-top:1px solid rgba(255,253,247,.2);margin-top:auto}
.region-ribbon>div{background:rgba(28,20,10,.62);padding:24px clamp(28px,4vw,72px);display:flex;flex-direction:column;gap:2px;backdrop-filter:blur(3px)}
.region-ribbon span{font-size:10px;font-weight:800;letter-spacing:.2em;color:var(--ember)}
.region-ribbon b{font-family:"Cormorant Garamond",serif;font-size:26px;font-weight:600;letter-spacing:-.02em}
.region-ribbon small{font-size:12px;color:rgba(255,253,247,.72)}

/* ---------- buttons ---------- */
.button{display:inline-block;padding:15px 24px;font-size:11.5px;font-weight:800;letter-spacing:.08em;transition:transform .15s,background .15s,color .15s}
.button:hover{transform:translateY(-2px)}
.button.light{background:var(--white);color:var(--ink)}
.button.light:hover{background:var(--sand)}
.button.sand{background:var(--sand);color:var(--ink)}
.button.sand:hover{background:var(--sand-deep)}
.button.ink{background:var(--ink);color:var(--white)}
.button.ink:hover{background:var(--orange)}
.button.rust{background:var(--orange);color:var(--white)}
.button.rust:hover{background:var(--ink)}
.text-link{font-size:12.5px;font-weight:700;border-bottom:1px solid currentColor;padding-bottom:3px}
.text-link:hover{color:var(--ember)}

/* ---------- intro ---------- */
.intro{padding:96px 0 78px}
.intro-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:56px;margin-top:26px;align-items:start}
.intro-grid p{margin:0 0 16px}

/* ---------- feature grid ---------- */
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding-bottom:96px}
.feature{position:relative;padding:34px 30px 30px;min-height:340px;display:flex;flex-direction:column;color:var(--white);overflow:hidden;transition:transform .2s;background-color:var(--ink);background-image:var(--feature-image);background-position:var(--feature-position,center);background-size:cover;background-repeat:no-repeat}
.feature:hover{transform:translateY(-4px)}
.feature::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,18,10,.12),rgba(24,18,10,.72) 60%,rgba(18,13,8,.92));pointer-events:none;transition:background .2s}
.feature:hover::before{background:linear-gradient(180deg,rgba(24,18,10,.04),rgba(24,18,10,.62) 58%,rgba(18,13,8,.88))}
.feature>*{position:relative;z-index:1}
.feature span{font-size:10px;font-weight:800;letter-spacing:.2em;color:rgba(255,253,247,.78)}
.feature h3{font-family:"Cormorant Garamond",serif;font-size:31px;font-weight:600;line-height:1;margin:14px 0 12px;letter-spacing:-.02em}
.feature p{font-size:14px;color:rgba(255,253,247,.84);margin:0}
.feature b{margin-top:auto;padding-top:22px;font-size:11px;font-weight:800;letter-spacing:.08em}
.feature-camp{--feature-image:url("../public/images/tile-home-camping-v1.webp");--feature-position:center}
.feature-ride{--feature-image:url("../public/images/tile-home-riding-zones-v1.webp");--feature-position:center}
.feature-map{--feature-image:url("../public/images/tile-home-map-v1.webp");--feature-position:center}
.feature-plan{--feature-image:url("../public/images/tile-home-planner-v1.webp");--feature-position:center}
.feature-explore{--feature-image:url("../public/images/tile-home-day-use-v1.webp");--feature-position:center}
.feature-prepare{--feature-image:url("../public/images/tile-home-prepare-v1.webp");--feature-position:center}

/* ---------- directory ---------- */
.directory{padding-bottom:96px}
.directory-heading{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:end;margin-bottom:34px}
.directory-heading p:last-child{margin:0;color:rgba(47,36,24,.76)}
.directory-featured{display:grid;grid-template-columns:auto 1fr auto;gap:34px;align-items:center;padding:34px 36px;background:var(--ink);color:var(--white);margin-bottom:20px;transition:background .18s}
.directory-featured:hover{background:var(--deep)}
.directory-featured>span{font-size:10px;font-weight:800;letter-spacing:.2em;color:var(--ember);writing-mode:vertical-rl;transform:rotate(180deg)}
.directory-featured h3{font-family:"Cormorant Garamond",serif;font-size:34px;font-weight:600;margin:0 0 8px;letter-spacing:-.02em}
.directory-featured p{margin:0;font-size:14.5px;color:rgba(255,253,247,.82);max-width:64ch}
.directory-featured b{font-size:11px;font-weight:800;letter-spacing:.08em;white-space:nowrap;color:var(--sand)}
.directory-category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.directory-category{background:var(--white);padding:28px 24px;border:1px solid var(--rule)}
.directory-category>p{font-size:9.5px;font-weight:800;letter-spacing:.2em;color:var(--orange);margin:0}
.directory-category h3{font-family:"Cormorant Garamond",serif;font-size:26px;font-weight:600;margin:8px 0 18px;letter-spacing:-.02em}
.directory-category a{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 0;border-top:1px solid var(--rule);transition:color .15s}
.directory-category a:hover{color:var(--orange)}
.directory-category b{display:block;font-size:13.5px;font-weight:700}
.directory-category small{display:block;font-size:11.5px;color:rgba(47,36,24,.6);line-height:1.4;margin-top:2px}
.directory-category i{font-style:normal;font-size:15px}

/* ---------- conditions band ---------- */
.conditions-band{background:var(--ink);color:var(--white);padding:82px 0}
.conditions-band .split{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:start}
.conditions-band h2 i{color:var(--sand)}
.conditions-band p{color:rgba(255,253,247,.8);max-width:52ch}
.conditions-band .button{margin-top:12px}
.quick-list{display:flex;flex-direction:column;gap:1px;background:rgba(255,253,247,.18)}
.quick-list article{background:var(--ink);padding:22px 26px}
.quick-list span{font-size:9.5px;font-weight:800;letter-spacing:.2em;color:var(--ember)}
.quick-list h3{font-size:17px;font-weight:700;margin:7px 0 5px}
.quick-list p{font-size:13.5px;margin:0;color:rgba(255,253,247,.72)}

/* ---------- trip strip ---------- */
.trip-strip{background:var(--sand);padding:56px 0}
.trip-strip .shell{display:flex;justify-content:space-between;align-items:center;gap:36px;flex-wrap:wrap}
.trip-strip small{font-size:10px;font-weight:800;letter-spacing:.2em;color:var(--orange)}
.trip-strip h2{font-size:clamp(30px,3.4vw,44px);margin-top:8px}

/* ---------- footer ---------- */
footer{background:var(--deep);color:rgba(255,253,247,.72);padding:64px 0 52px;font-size:13.5px}
footer .shell{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.footer-brand{display:block;width:min(360px,100%)}
.footer-brand img{display:block;width:100%;height:auto}
footer p{margin:0;max-width:74ch}
footer a{border-bottom:1px solid rgba(255,253,247,.4)}
footer a:hover{color:var(--ember)}
.footer-sister-link{color:rgba(255,253,247,.86)}
.footer-feedback-card{margin-top:14px;background:rgba(255,253,247,.07);border:1px solid rgba(255,253,247,.18);color:var(--white);text-align:left;padding:20px 24px;cursor:pointer;display:flex;flex-direction:column;gap:5px;transition:background .15s}
.footer-feedback-card:hover{background:rgba(255,253,247,.13)}
.footer-feedback-card small{font-size:9.5px;font-weight:800;letter-spacing:.2em;color:var(--ember)}
.footer-feedback-card strong{font-size:16px}
.footer-feedback-card span{font-size:12.5px;color:rgba(255,253,247,.66)}
.dgusa-network-mark{box-sizing:border-box;background:#f3ede1;border-top:1px solid rgba(9,48,52,.18);overflow:hidden;padding:26px 20px;text-align:center;width:100%}
.dgusa-network-mark *{box-sizing:border-box}
.dgusa-network-mark a{align-items:center;color:#07343a;display:flex;flex-direction:column;gap:6px;justify-content:center;margin:0 auto;max-width:460px;min-width:0;padding:0 12px;position:static;text-align:center;text-decoration:none;transition:transform .2s ease;width:100%}
.dgusa-network-mark a:hover{transform:translateY(-2px)}
.dgusa-network-mark span,.dgusa-network-mark strong,.dgusa-network-mark small{display:block;margin:0;max-width:100%;position:static;text-align:center;white-space:normal}
.dgusa-network-mark span{color:#d85836;font-size:.68rem;font-weight:800;letter-spacing:.16em}
.dgusa-network-mark img{display:block;height:auto;margin:2px auto;max-width:220px;object-fit:contain;position:static;width:60%}
.dgusa-network-mark strong{font-family:var(--font-display,Georgia,serif);font-size:1rem;letter-spacing:.06em;line-height:1.25}
.dgusa-network-mark small{color:#456469;font-size:.82rem;line-height:1.4}
@media(max-width:560px){.dgusa-network-mark{padding:22px 14px}.dgusa-network-mark a{padding:0 8px}.dgusa-network-mark img{max-width:200px;width:68%}}
.dgusa-network-actions{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center;margin:16px auto 0;max-width:560px}
.dgusa-network-actions a{color:#07343a;font-size:.76rem;font-weight:800;text-decoration:underline;text-decoration-color:#d85836;text-underline-offset:4px}
@media(max-width:560px){.dgusa-network-actions{align-items:center;flex-direction:column}}

/* ---------- feedback dialog ---------- */
.site-feedback-dialog{border:0;padding:0;background:transparent;max-width:640px;width:calc(100% - 32px)}
.site-feedback-dialog::backdrop{background:rgba(33,24,9,.62)}
.site-feedback-window{background:var(--cream);padding:38px 36px;position:relative;max-height:88vh;overflow:auto}
.site-feedback-close{position:absolute;top:14px;right:16px;background:none;border:0;font-size:26px;line-height:1;cursor:pointer;color:var(--ink)}
.site-feedback-window h2{font-family:"Cormorant Garamond",serif;font-size:32px;font-weight:600;margin:8px 0 12px;letter-spacing:-.02em}
.site-feedback-form{display:flex;flex-direction:column;gap:16px;margin-top:22px}
.site-feedback-form label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:700}
.site-feedback-form label span{font-weight:400;color:rgba(47,36,24,.55);font-size:11.5px}
.site-feedback-form input,.site-feedback-form select,.site-feedback-form textarea{font:inherit;font-size:14px;padding:11px 13px;border:1px solid var(--rule);background:var(--white);color:var(--ink)}
.site-feedback-form textarea{resize:vertical}
.site-feedback-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.site-feedback-form button{background:var(--ink);color:var(--white);border:0;padding:15px 22px;font-size:11.5px;font-weight:800;letter-spacing:.08em;cursor:pointer}
.site-feedback-form button:hover{background:var(--orange)}
.site-feedback-honeypot{position:absolute;left:-9999px}
.site-feedback-status{font-size:13px;margin:0}

/* ---------- guide pages ---------- */
.guide-hero{position:relative;color:var(--white);padding:88px 0 76px;background-color:var(--ink);background-position:center;background-size:cover;background-repeat:no-repeat}
.guide-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,14,8,.88),rgba(20,14,8,.54) 48%,rgba(20,14,8,.08) 82%);pointer-events:none}
.guide-hero .shell{position:relative;z-index:1}
.guide-hero h1{font-size:clamp(42px,5.6vw,74px);margin:16px 0 18px}
.guide-hero p{max-width:64ch;color:rgba(255,253,247,.86)}
.guide-hero .hero-actions{margin-top:24px;display:flex;gap:14px;flex-wrap:wrap}
.guide-hero-camping{background-image:url("../public/images/hero-camping-v1.webp")}
.guide-hero-riding{background-image:url("../public/images/hero-ohv-riding-v1.webp")}
.guide-hero-safety{background-image:url("../public/images/hero-safety-v1.webp")}
.guide-hero-wildlife{background-image:url("../public/images/hero-wildlife-v1.webp")}
.guide-hero-towns{background-image:url("../public/images/hero-nearby-towns-v1.webp")}
.guide-hero-conditions{background-image:url("../public/images/hero-conditions-v1.webp")}
.guide-hero-history{background-image:url("../public/images/hero-history-v1.webp")}
.guide-hero-fees{background-image:url("../public/images/hero-fees-v1.webp")}
.guide-hero-permits{background-image:url("../public/images/hero-permits-v1.webp")}
.guide-hero-dayuse{background-image:url("../public/images/hero-day-use-v1.webp")}
.guide-hero-gas{background-image:url("../public/images/hero-gas-v1.webp")}
.guide-hero-maps{background-image:url("../public/images/hero-maps-v1.webp")}
.guide-hero-planner{background-image:url("../public/images/hero-planner-v1.webp")}
.guide-hero-rules{background-image:url("../public/images/hero-rules-v1.webp")}
.guide-hero-weather{background-image:url("../public/images/hero-weather-v1.webp")}

.guide-content{padding:76px 0 92px}
.guide-content section{scroll-margin-top:96px}
.guide-content h2{font-size:clamp(28px,3.2vw,40px);margin-bottom:14px}
.guide-content h3{font-size:19px;font-weight:700;margin:22px 0 8px}
.guide-content p{max-width:74ch;margin:0 0 14px}
.guide-content ul,.guide-content ol{max-width:74ch;padding-left:20px;margin:0 0 14px}
.guide-content li{margin-bottom:7px}
.guide-toc{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 52px;padding:0;list-style:none}
.guide-toc a{display:inline-block;padding:9px 15px;background:var(--white);border:1px solid var(--rule);font-size:12px;font-weight:700;transition:background .15s,color .15s}
.guide-toc a:hover{background:var(--ink);color:var(--white)}
.guide-story{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);min-height:390px;margin:0 0 34px;background:var(--white);border:1px solid var(--rule);box-shadow:0 18px 50px rgba(47,36,24,.08);overflow:hidden}
.guide-story-reverse{grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr)}
.guide-story-media{min-height:100%;background-color:var(--sand);background-repeat:no-repeat;background-size:cover}
.guide-story-reverse .guide-story-media{order:2}
.guide-story-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(30px,4.3vw,58px)}
.guide-story-copy h2{margin-top:10px}
.guide-story-copy p,.guide-story-copy ul{font-size:16px;line-height:1.72}
.guide-story-copy ul{margin-bottom:0}
.guide-story-number{font-size:10px;font-weight:800;letter-spacing:.2em;color:var(--orange)}

/* generic content cards reused across guides */
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:20px;margin:0 0 26px}
.card-grid.two{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.card{background:var(--white);border:1px solid var(--rule);padding:26px 24px}
.card>span{font-size:9.5px;font-weight:800;letter-spacing:.2em;color:var(--orange)}
.card h3{font-family:"Cormorant Garamond",serif;font-size:25px;font-weight:600;margin:8px 0 10px;letter-spacing:-.02em}
.card p{font-size:14px;margin:0 0 10px}
.card ul{padding-left:18px;margin:0;font-size:13.5px}
.card li{margin-bottom:6px}
.card dl{margin:12px 0 0;display:grid;grid-template-columns:auto 1fr;gap:5px 14px;font-size:13px}
.card dt{font-weight:700;color:rgba(47,36,24,.6)}
.card dd{margin:0}
.card.accent{background:var(--ink);color:var(--white);border-color:transparent}
.card.accent p,.card.accent li{color:rgba(255,253,247,.84)}
.card.accent dt{color:var(--sand)}
.card.accent h3{color:var(--white)}
.guide-index-grid{gap:22px}
.guide-index-card{position:relative;min-height:230px;display:flex;flex-direction:column;justify-content:flex-end;color:var(--white);border:0;padding:30px;background:linear-gradient(180deg,rgba(20,14,8,.04) 12%,rgba(20,14,8,.9) 100%),var(--card-image) center/cover no-repeat,var(--ink);box-shadow:0 14px 34px rgba(47,36,24,.12);overflow:hidden}
.guide-index-card>span{color:var(--ember)}
.guide-index-card h3{font-size:29px;margin-top:10px}
.guide-index-card h3,.guide-index-card a{color:var(--white)}
.guide-index-card p{font-size:15px;line-height:1.55;color:rgba(255,253,247,.86)}
.guide-index-card a::after{content:" →"}
.guide-index-card.accent{background:linear-gradient(180deg,rgba(20,14,8,.04) 12%,rgba(20,14,8,.9) 100%),var(--card-image) center/cover no-repeat,var(--ink)}

.callout{border-left:4px solid var(--orange);background:var(--white);padding:22px 26px;margin:0 0 26px;max-width:78ch}
.callout strong{display:block;font-size:15px;margin-bottom:6px}
.callout p{margin:0 0 8px;font-size:14px}
.callout p:last-child{margin-bottom:0}
.callout.warn{border-left-color:#b3341f;background:#fdf1ee}
.callout.official{border-left-color:var(--juniper)}

table.data{width:100%;border-collapse:collapse;background:var(--white);font-size:13.5px;margin:0 0 26px;border:1px solid var(--rule)}
table.data caption{text-align:left;font-size:9.5px;font-weight:800;letter-spacing:.2em;color:var(--orange);padding:0 0 10px}
table.data th,table.data td{padding:12px 15px;text-align:left;border-bottom:1px solid var(--rule);vertical-align:top}
table.data th{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;background:var(--sand);color:var(--ink)}
table.data tr:last-child td{border-bottom:0}
.table-scroll{overflow-x:auto;margin:0 0 26px}
.table-scroll table.data{margin:0;min-width:620px}

.official-band{background:var(--sand);padding:64px 0}
.official-band h2{font-size:clamp(28px,3.2vw,42px);margin-bottom:12px}
.official-band p{max-width:70ch}
.official-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:22px}
.official-links a{background:var(--white);border:1px solid var(--rule);padding:16px 18px;font-size:13px;font-weight:700;display:flex;justify-content:space-between;gap:12px;transition:background .15s,color .15s}
.official-links a:hover{background:var(--ink);color:var(--white)}

/* ---------- riding zone pages ---------- */
.zone-hero{position:relative;color:var(--white);padding:84px 0 72px;background:url("../public/images/hero-zone-sand-mountain-v1.webp") center/cover no-repeat}
.zone-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,14,8,.88),rgba(20,14,8,.52) 48%,rgba(20,14,8,.08));pointer-events:none}
.zone-hero .shell{position:relative;z-index:1}
.zone-hero h1{font-size:clamp(40px,5.4vw,70px);margin:14px 0 16px}
.zone-hero p{max-width:62ch;color:rgba(255,253,247,.88)}
.zone-hero-white{background-image:url("../public/images/hero-zone-white-sands-v1.webp")}
.zone-hero-black{background-image:url("../public/images/hero-zone-black-mountain-v1.webp")}
.zone-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);margin:0 0 34px}
.zone-stats div{background:var(--white);padding:20px 22px}
.zone-stats dt{font-size:9.5px;font-weight:800;letter-spacing:.18em;color:var(--orange);margin-bottom:5px}
.zone-stats dd{margin:0;font-family:"Cormorant Garamond",serif;font-size:27px;font-weight:600;line-height:1;letter-spacing:-.02em}
.zone-stats small{display:block;font-family:Inter,sans-serif;font-size:11.5px;font-weight:400;color:rgba(47,36,24,.6);margin-top:5px;letter-spacing:0}
.difficulty{display:inline-flex;align-items:center;gap:7px;font-size:10.5px;font-weight:800;letter-spacing:.12em;padding:6px 12px;background:var(--sand);color:var(--ink)}
.difficulty.beginner{background:#d8e8d5;color:#24502a}
.difficulty.intermediate{background:#f2e0b8;color:#6b4c12}
.difficulty.advanced{background:#f0cdbe;color:#8a2f16}
.difficulty.expert{background:#b3341f;color:#fff}

/* ---------- maps ---------- */
.map-layout{display:grid;grid-template-columns:1.45fr 1fr;gap:26px;padding:52px 0 92px;align-items:start}
.map-filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:18px}
.map-filters button{background:var(--white);border:1px solid var(--rule);padding:9px 15px;font-size:11.5px;font-weight:700;cursor:pointer;transition:background .15s,color .15s}
.map-filters button:hover{background:var(--sand)}
.map-filters button[aria-pressed=true]{background:var(--ink);color:var(--white);border-color:var(--ink)}
.map-canvas{position:relative;width:100%;aspect-ratio:4/3.35;background:linear-gradient(170deg,#efe4cc,#e0cfa9);border:1px solid var(--rule);overflow:hidden}
.map-canvas>svg{position:absolute;inset:0;width:100%;height:100%}
.map-pin{position:absolute;transform:translate(-50%,-50%);width:19px;height:19px;border-radius:50%;border:2.5px solid var(--white);cursor:pointer;box-shadow:0 2px 7px rgba(33,24,9,.4);transition:transform .15s;padding:0}
.map-pin:hover,.map-pin[aria-pressed=true]{transform:translate(-50%,-50%) scale(1.42);z-index:5}
.map-pin[data-type=riding]{background:var(--orange)}
.map-pin[data-type=campground]{background:var(--juniper)}
.map-pin[data-type=staging]{background:#8a6236}
.map-pin[data-type=town]{background:#4a5f6d}
.map-pin[data-type=service]{background:#7a5c86}
.map-pin[data-type=natural]{background:#3f7a5e}
.map-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:16px;font-size:11.5px;font-weight:600}
.map-legend span{display:inline-flex;align-items:center;gap:7px}
.map-legend i{width:11px;height:11px;border-radius:50%;display:inline-block}
.map-detail{background:var(--white);border:1px solid var(--rule);padding:28px 26px;position:sticky;top:96px}
.map-detail .section-label{margin-bottom:8px}
.map-detail h3{font-family:"Cormorant Garamond",serif;font-size:30px;font-weight:600;margin:0 0 10px;letter-spacing:-.02em}
.map-detail p{font-size:14px}
.map-detail dl{display:grid;grid-template-columns:auto 1fr;gap:7px 16px;font-size:13px;margin:16px 0}
.map-detail dt{font-weight:700;color:rgba(47,36,24,.6)}
.map-detail dd{margin:0}
.map-detail-actions{display:flex;flex-direction:column;gap:9px;margin-top:18px}

/* ---------- planner ---------- */
.planner-layout{padding:52px 0 92px}
.planner-form{background:var(--white);border:1px solid var(--rule);padding:34px 32px;margin-bottom:30px}
.planner-step{border-top:1px solid var(--rule);padding:26px 0}
.planner-step:first-of-type{border-top:0;padding-top:0}
.planner-step>p:first-child{font-size:9.5px;font-weight:800;letter-spacing:.2em;color:var(--orange);margin:0 0 4px}
.planner-step h2{font-family:"Cormorant Garamond",serif;font-size:27px;font-weight:600;margin:0 0 16px;letter-spacing:-.02em}
.planner-field{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:700;margin-bottom:16px;min-width:0}
.planner-field input,.planner-field select{width:100%;min-width:0;font:inherit;font-size:14px;padding:11px 13px;border:1px solid var(--rule);background:var(--cream);color:var(--ink)}
.planner-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}
.planner-group-check{display:flex;gap:12px;align-items:flex-start;margin-top:12px;padding:14px 16px;border:1px solid var(--rule);background:var(--sand)}
.planner-group-check input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--orange)}
.planner-group-check span{display:flex;flex-direction:column;gap:3px}
.planner-group-check small{font-size:12px;font-weight:400;color:var(--muted)}
.planner-interest-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:11px}
.planner-interest-grid label{display:flex;gap:10px;align-items:center;padding:14px 16px;border:1px solid var(--rule);background:var(--white);font-weight:700;cursor:pointer}
.planner-interest-grid input{width:19px;height:19px;accent-color:var(--orange)}
.option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:11px}
.option{position:relative;display:block;cursor:pointer}
.option input{position:absolute;opacity:0;pointer-events:none}
.option span{display:block;border:1px solid var(--rule);background:var(--cream);padding:15px 17px;font-size:13.5px;font-weight:700;transition:border-color .15s,background .15s}
.option small{display:block;font-weight:400;font-size:11.5px;color:rgba(47,36,24,.62);margin-top:3px;line-height:1.4}
.option input:checked+span{border-color:var(--ink);background:var(--sand);box-shadow:inset 0 0 0 1px var(--ink)}
.option input:focus-visible+span{outline:2px solid var(--orange);outline-offset:2px}
.planner-submit{display:flex;gap:14px;flex-wrap:wrap;align-items:center;padding-top:22px;border-top:1px solid var(--rule)}
.planner-submit button{background:var(--ink);color:var(--white);border:0;padding:16px 26px;font-size:11.5px;font-weight:800;letter-spacing:.08em;cursor:pointer}
.planner-submit button:hover{background:var(--orange)}

.plan-output{background:var(--white);border:1px solid var(--rule);padding:38px 34px}
.plan-header{border-bottom:1px solid var(--rule);padding-bottom:22px;margin-bottom:26px}
.plan-header h2{font-family:"Cormorant Garamond",serif;font-size:38px;font-weight:600;margin:8px 0 10px;letter-spacing:-.03em}
.plan-header p{margin:0;max-width:70ch}
.plan-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.plan-meta span{background:var(--sand);padding:7px 13px;font-size:11.5px;font-weight:700}
.plan-selections{background:var(--sand);padding:22px;border-top:3px solid var(--orange)}
.plan-selection-chips{display:flex;flex-wrap:wrap;gap:9px}
.plan-selection-chips span{padding:8px 12px;background:var(--ink);color:var(--white);font-size:11px;font-weight:800;letter-spacing:.04em}
.plan-day{border-left:3px solid var(--sand-deep);padding:0 0 4px 22px;margin-bottom:26px}
.plan-day h3{font-family:"Cormorant Garamond",serif;font-size:26px;font-weight:600;margin:0 0 4px;letter-spacing:-.02em}
.plan-day>span{font-size:9.5px;font-weight:800;letter-spacing:.2em;color:var(--orange)}
.plan-day ul{padding-left:18px;margin:10px 0 0;font-size:14px}
.plan-day li{margin-bottom:7px}
.plan-section{margin-bottom:30px}
.plan-section h3{font-size:19px;font-weight:700;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--rule)}
.plan-section ul{padding-left:18px;margin:0;font-size:14px}
.plan-section li{margin-bottom:7px}
.plan-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px;padding-top:24px;border-top:1px solid var(--rule)}
.plan-actions button,.plan-actions a{background:var(--sand);color:var(--ink);border:0;padding:14px 20px;font-size:11.5px;font-weight:800;letter-spacing:.08em;cursor:pointer}
.plan-actions button:hover,.plan-actions a:hover{background:var(--ink);color:var(--white)}
.planner-choice-section{background:var(--cream);padding:28px;margin:36px -4px}
.planner-choice-section>h3{font-family:"Cormorant Garamond",serif;font-size:30px;letter-spacing:-.02em}
.planner-choice-section>p{max-width:78ch;font-size:14px}
.planner-dog-filter{display:flex;gap:10px;align-items:flex-start;background:var(--white);border-left:4px solid var(--sand-deep);padding:14px 16px;margin:18px 0}
.planner-dog-filter b{white-space:nowrap}.planner-dog-filter span{font-size:12px;line-height:1.55}
.planner-choice-groups{display:grid;gap:18px;margin-top:22px}
.planner-choice-group{border-top:3px solid var(--orange);background:rgba(205,179,131,.3);padding:18px}
.planner-choice-group>p{font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--orange);margin:0 0 12px}
.planner-choice-group>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.planner-choice-card{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--rule);padding:18px;min-width:0}
.planner-choice-card>a{display:grid;gap:6px;border:0}.planner-choice-card>a>b{font-family:"Cormorant Garamond",serif;font-size:23px;line-height:1.05}.planner-choice-card>a>span{font-size:12.5px;line-height:1.55}.planner-choice-card>a>i{font-size:10px;font-style:normal;font-weight:800;color:var(--orange);margin-top:5px}
.planner-pick-toggle{display:flex;align-items:center;gap:9px;margin-top:auto;padding-top:16px;font-size:12px;font-weight:800;cursor:pointer}.planner-pick-toggle input{width:18px;height:18px;accent-color:var(--orange)}
.planner-pick-fields{border-top:1px solid var(--rule);margin-top:14px;padding-top:14px}.planner-pick-fields>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.planner-pick-fields label{display:grid;gap:5px;font-size:10px;font-weight:800}.planner-pick-fields input,.planner-pick-fields select{width:100%;min-width:0;border:1px solid var(--rule);background:var(--cream);padding:10px;font:inherit;font-size:12px}.planner-pick-fields small{display:block;font-size:9.5px;line-height:1.45;color:#6c604f;margin-top:10px}
.planner-pick-status{background:var(--ink);color:var(--white);padding:12px 15px;margin-top:16px;font-size:11px;font-weight:800}
.planner-day-schedule{display:grid;gap:7px;margin-top:15px}.planner-day-schedule>div{display:grid;grid-template-columns:minmax(110px,.45fr) 1fr auto;gap:6px 14px;align-items:center;background:rgba(205,179,131,.3);padding:10px 12px}.planner-day-schedule span{font-size:8.5px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--orange)}.planner-day-schedule b{font-size:12px}.planner-day-schedule small{font-size:11px;font-weight:800}.planner-day-schedule em{grid-column:2/4;font-size:10px;color:#6c604f}
.planner-share-panel{background:var(--ink);color:var(--white);padding:25px;margin-top:16px}.planner-share-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.planner-share-head p{font-size:9px;letter-spacing:.15em;font-weight:800;color:var(--sand);margin:0}.planner-share-head h3{font-family:"Cormorant Garamond",serif;font-size:27px;margin:4px 0 0}.planner-share-head button{border:1px solid rgba(255,255,255,.35);background:transparent;color:var(--white);padding:8px 11px;cursor:pointer}.planner-share-prefs{display:grid;gap:8px;margin:18px 0}.planner-share-prefs label{display:grid;grid-template-columns:auto 1fr;gap:2px 9px;align-items:center;background:rgba(255,255,255,.08);padding:10px 12px;font-size:11.5px}.planner-share-prefs input{width:17px;height:17px;accent-color:var(--sand)}.planner-share-prefs small{grid-column:2;font-size:9px;color:rgba(255,255,255,.72)}
.planner-share-actions{display:flex;flex-wrap:wrap;gap:9px}.planner-share-actions button,.planner-share-actions a{border:0;background:var(--sand);color:var(--ink);padding:11px 14px;font-size:10px;font-weight:800;cursor:pointer}.planner-share-panel>p{font-size:10px;margin:12px 0 0;color:var(--white)}

@media(max-width:720px){.planner-choice-section{padding:22px 16px;margin:30px -8px}.planner-choice-group>div{grid-template-columns:1fr}.planner-pick-fields>div{grid-template-columns:1fr}.planner-dog-filter{display:grid}.planner-day-schedule>div{grid-template-columns:1fr auto}.planner-day-schedule span{grid-column:1/3}.planner-day-schedule b{grid-column:1}.planner-day-schedule em{grid-column:1/3}}

/* ---------- live data widgets ---------- */
.data-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);margin:0 0 26px}
.data-cell{background:var(--white);padding:22px 24px}
.data-cell dt{font-size:9.5px;font-weight:800;letter-spacing:.18em;color:var(--orange);margin-bottom:6px}
.data-cell dd{margin:0;font-family:"Cormorant Garamond",serif;font-size:38px;font-weight:600;line-height:1;letter-spacing:-.03em}
.data-cell small{display:block;font-family:Inter,sans-serif;font-size:11.5px;font-weight:400;color:rgba(47,36,24,.6);margin-top:6px;line-height:1.4}
.forecast-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);margin:0 0 26px}
.forecast-day{background:var(--white);padding:18px 16px;text-align:center}
.forecast-day b{display:block;font-size:11.5px;font-weight:800;letter-spacing:.06em;margin-bottom:8px}
.forecast-day .temps{font-family:"Cormorant Garamond",serif;font-size:23px;font-weight:600;letter-spacing:-.02em}
.forecast-day .temps i{font-style:normal;color:rgba(47,36,24,.5)}
.forecast-day small{display:block;font-size:11px;color:rgba(47,36,24,.62);margin-top:6px;line-height:1.35}
.status-line{font-size:12.5px;color:rgba(47,36,24,.6);margin:0 0 22px}
.risk{display:inline-block;padding:5px 11px;font-size:10.5px;font-weight:800;letter-spacing:.1em}
.risk.low{background:#d8e8d5;color:#24502a}
.risk.moderate{background:#f2e0b8;color:#6b4c12}
.risk.high{background:#f0cdbe;color:#8a2f16}
.risk.extreme{background:#b3341f;color:#fff}

/* ---------- misc ---------- */
.sub-hero{position:relative;background:linear-gradient(90deg,rgba(20,14,8,.88),rgba(20,14,8,.46),rgba(20,14,8,.08)),url("../public/images/hero-guide-v1.webp") center/cover no-repeat;color:var(--white);padding:76px 0 68px}
.sub-hero h1{font-size:clamp(38px,4.8vw,62px);margin:14px 0 14px}
.sub-hero p{max-width:64ch;color:rgba(255,253,247,.84);margin:0}
.back-link{display:inline-block;margin-bottom:12px;font-size:12px;font-weight:700}
.print-only{display:none}
[hidden]{display:none !important}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--orange);outline-offset:2px}

/* ---------- responsive ---------- */
@media(max-width:1080px){
  .directory-category-grid{grid-template-columns:repeat(2,1fr)}
  .feature-grid{grid-template-columns:repeat(2,1fr)}
  .map-layout{grid-template-columns:1fr}
  .map-detail{position:static}
}
@media(max-width:860px){
  .site-header{gap:16px}
  .site-header nav{display:none;position:absolute;top:76px;left:0;right:0;background:var(--cream);flex-direction:column;gap:0;padding:8px 24px 20px;border-bottom:1px solid var(--rule);box-shadow:var(--shadow)}
  .site-header.open nav{display:flex}
  .site-header nav a{padding:13px 0;border-bottom:1px solid var(--rule);font-size:14px}
  .header-cta{display:none}
  .menu-button{display:block}
  .hero{min-height:560px}
  .hero-content{padding:64px 0 48px}
  .region-ribbon{grid-template-columns:1fr}
  .intro-grid,.directory-heading,.conditions-band .split{grid-template-columns:1fr;gap:26px}
  .directory-featured{grid-template-columns:1fr;gap:18px}
  .directory-featured>span{writing-mode:horizontal-tb;transform:none}
  .feature-grid{grid-template-columns:1fr}
  .directory-category-grid{grid-template-columns:1fr}
  .site-feedback-row,.planner-row{grid-template-columns:minmax(0,1fr)}
  .feature-grid,.directory{padding-bottom:64px}
  .intro{padding:64px 0 48px}
  .guide-story,.guide-story-reverse{grid-template-columns:1fr;min-height:0}
  .guide-story-reverse .guide-story-media{order:0}
  .guide-story-media{min-height:260px}
  .guide-story-copy{padding:34px 30px}
}
@media(max-width:520px){
  .shell{width:calc(100% - 32px)}
  .plan-output,.planner-form{padding:24px 20px}
  .guide-content{padding:52px 0 64px}
  .guide-story{margin-bottom:24px}
  .guide-story-media{min-height:220px}
  .guide-story-copy{padding:28px 24px 30px}
  .guide-index-card{min-height:210px;padding:26px 24px}
  .site-feedback-window{padding:30px 22px}
}

/* ---------- print (trip plans) ---------- */
@media print{
  .site-header,footer,.plan-actions,.planner-form,.map-filters,.footer-feedback-card,.planner-choice-section,.planner-share-panel{display:none !important}
  body{background:#fff}
  .plan-output{border:0;padding:0}
  .guide-story{display:block;min-height:0;box-shadow:none;break-inside:avoid}
  .guide-story-media{display:none}
  .print-only{display:block}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:10px;color:#666}
}

@media(prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
  html{scroll-behavior:auto}
}

/* ============================================================
   LIVE CONDITIONS STRIP
   Widget pattern borrowed from CCWheelers, retuned to the
   Little Sahara palette.
   ============================================================ */
.status-strip{background:var(--ink);color:var(--white);padding:34px 0 0}
.conditions-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;padding-bottom:22px}
.conditions-head h2{font-family:"Cormorant Garamond",serif;font-size:clamp(30px,3.4vw,44px);font-weight:600;letter-spacing:-.03em;line-height:1}
.conditions-head p{margin:0;font-size:13.5px;color:rgba(255,253,247,.7)}
.live-dot{display:inline-block;width:8px;height:8px;background:#7fd88f;border-radius:50%;margin-left:10px;vertical-align:middle;animation:lsu-pulse 2s infinite}
@keyframes lsu-pulse{0%{box-shadow:0 0 0 0 rgba(127,216,143,.6)}70%{box-shadow:0 0 0 9px rgba(127,216,143,0)}100%{box-shadow:0 0 0 0 rgba(127,216,143,0)}}
.status-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,253,247,.12)}
.status-cell{display:block;color:var(--white);padding:22px 20px;border-left:1px solid rgba(255,253,247,.12);border-bottom:1px solid rgba(255,253,247,.12);transition:background .18s}
.status-cell:first-child{border-left:0}
.status-cell:hover{background:rgba(255,253,247,.06)}
.status-cell .k{display:flex;align-items:center;gap:8px;font-size:9.5px;font-weight:800;letter-spacing:.18em;color:var(--ember);margin-bottom:10px}
.status-cell .k svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.status-cell .v{font-family:"Cormorant Garamond",serif;font-size:27px;font-weight:600;line-height:1.05;letter-spacing:-.02em;margin-bottom:6px}
.status-cell small{display:block;font-size:11.5px;color:rgba(255,253,247,.62);line-height:1.4}
.status-open{color:#8fdb9d}
.status-caution{color:#f0c073}
.status-closed{color:#f09a86}
.status-neutral{color:rgba(255,253,247,.8)}

/* ---------- seasonal band ---------- */
.seasonal-band{background:var(--sand);padding:34px 0 38px}
.sb-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:18px;flex-wrap:wrap}
.sb-head .section-label{color:var(--orange)}
.sb-head a{font-size:12.5px;font-weight:700;border-bottom:1px solid currentColor;padding-bottom:2px}
.sb-head a:hover{color:var(--orange)}
.sb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:16px}
.sb-item{display:block;background:var(--white);border:1px solid var(--rule);padding:20px 22px;transition:transform .15s,box-shadow .15s}
.sb-item:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.sb-meta{display:flex;justify-content:space-between;font-size:9.5px;font-weight:800;letter-spacing:.18em;color:var(--orange);margin-bottom:9px}
.sb-meta span{color:rgba(47,36,24,.45)}
.sb-item h3{font-family:"Cormorant Garamond",serif;font-size:23px;font-weight:600;letter-spacing:-.02em;margin:0 0 7px}
.sb-item p{font-size:13.5px;margin:0;color:rgba(47,36,24,.78);line-height:1.5}

/* ============================================================
   INTERACTIVE MAP (Leaflet)
   ============================================================ */
.map-shell{display:grid;grid-template-columns:1fr 330px;gap:0;border:1px solid var(--rule);background:var(--white);margin-bottom:26px}
#map{height:620px;width:100%;background:#d9cba9;z-index:1}
.map-sidebar{border-left:1px solid var(--rule);display:flex;flex-direction:column;max-height:620px}
.map-sidebar-head{padding:20px 22px 14px;border-bottom:1px solid var(--rule)}
.map-sidebar-head p{margin:0 0 4px}
.map-sidebar-head h2{font-family:"Cormorant Garamond",serif;font-size:24px;font-weight:600;letter-spacing:-.02em;margin:0 0 10px}
.map-sidebar-head button{background:var(--sand);border:0;color:var(--ink);padding:9px 14px;font-size:10.5px;font-weight:800;letter-spacing:.08em;cursor:pointer}
.map-sidebar-head button:hover{background:var(--ink);color:var(--white)}
.poi-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}
.poi-list .poi-head{padding:14px 22px 7px;font-size:9.5px;font-weight:800;letter-spacing:.18em;color:var(--orange);background:var(--cream);position:sticky;top:0;z-index:2}
.poi-list li button{width:100%;display:flex;align-items:flex-start;gap:11px;background:none;border:0;border-bottom:1px solid var(--rule);padding:12px 22px;text-align:left;cursor:pointer;font-size:13.5px;font-weight:700;color:var(--ink);transition:background .14s}
.poi-list li button:hover{background:var(--cream)}
.poi-list .dot{width:11px;height:11px;border-radius:50%;flex:none;margin-top:4px;border:2px solid var(--white);box-shadow:0 0 0 1px rgba(47,36,24,.2)}
.poi-list small{display:block;font-weight:400;font-size:11px;color:rgba(47,36,24,.55);margin-top:2px}

/* Leaflet popup, restyled to match the guide */
.leaflet-popup-content-wrapper{border-radius:0;background:var(--white);box-shadow:0 14px 40px rgba(33,24,9,.28)}
.leaflet-popup-content{margin:0;padding:18px 20px;font-family:Inter,Arial,sans-serif;line-height:1.5}
.leaflet-popup-tip{background:var(--white)}
.pop-title{font-family:"Cormorant Garamond",serif;font-size:23px;font-weight:600;letter-spacing:-.02em;line-height:1.05;color:var(--ink)}
.pop-cat{font-size:9.5px;font-weight:800;letter-spacing:.16em;color:var(--orange);margin:5px 0 10px;text-transform:uppercase}
.pop-body{font-size:13px;color:var(--ink);margin-bottom:9px}
.pop-note{font-size:12px;color:rgba(47,36,24,.72);background:var(--cream);border-left:3px solid var(--sand-deep);padding:9px 11px;margin-bottom:9px}
.pop-dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:12px;margin:0 0 10px}
.pop-dl dt{font-weight:700;color:rgba(47,36,24,.55)}
.pop-dl dd{margin:0}
.pop-gps{font-size:11px;color:rgba(47,36,24,.6);border-top:1px solid var(--rule);padding-top:9px;line-height:1.5}
.pop-src{display:block;font-weight:700;color:var(--juniper);margin-top:3px}
.pop-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:11px}
.pop-actions a{font-size:11.5px;font-weight:800;letter-spacing:.05em;color:var(--orange);border-bottom:1px solid currentColor;padding-bottom:2px}
.pop-actions a:hover{color:var(--ink)}
.leaflet-control-layers,.leaflet-bar{border-radius:0 !important;border:1px solid var(--rule) !important;box-shadow:0 6px 18px rgba(33,24,9,.18) !important}
.leaflet-control-layers-expanded{padding:12px 14px;font-family:Inter,Arial,sans-serif;font-size:12.5px;background:var(--white)}
.leaflet-control-layers-list label{margin-bottom:3px}
.leaflet-container{font-family:Inter,Arial,sans-serif}

@media(max-width:960px){
  .map-shell{grid-template-columns:1fr}
  .map-sidebar{border-left:0;border-top:1px solid var(--rule);max-height:400px}
  #map{height:460px}
}
@media(max-width:860px){
  .status-grid{grid-template-columns:repeat(2,1fr)}
  .status-cell:nth-child(odd){border-left:0}
}
@media(max-width:520px){
  .status-grid{grid-template-columns:1fr}
  .status-cell{border-left:0}
  #map{height:380px}
}

/* ==================================================================
   PARTNERS
   Paid placements rendered by static/partners.js. Nothing paid appears
   until a partner exists in the PARTNERS object; unsold slots run a
   sister-guide advert with a for-sale sign on it.
================================================================== */
.pt-sponsor{display:flex;align-items:center;gap:14px;margin-top:22px;padding:14px 18px;background:var(--white);border:1px solid rgba(47,36,24,.18)}
.pt-sponsor-label{font-size:10px;letter-spacing:.15em;text-transform:uppercase;font-weight:800;color:#7a6a55;white-space:nowrap}
.pt-sponsor-body b{display:block;font-family:"Cormorant Garamond",serif;font-size:22px;font-weight:600;color:var(--ink);line-height:1.1}
.pt-sponsor-body span{display:block;font-size:12.5px;color:#6d5f4c;margin-top:2px}
a.pt-sponsor-link{display:block;text-decoration:none;border:0}
a.pt-sponsor-link:hover .pt-sponsor{border-color:var(--orange)}
.pt-mark{flex:0 0 48px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-family:"Cormorant Garamond",serif;font-weight:700;font-size:19px;background:var(--ink);color:var(--sand)}
.pt-mark-b{background:var(--sand);color:var(--ink)}
.pt-mark-c{background:var(--orange);color:var(--white)}
.pt-logo{flex:0 0 48px;width:48px;height:48px;object-fit:contain;background:var(--white)}
.pt-heading{font-family:"Cormorant Garamond",serif;font-size:26px;font-weight:600;color:var(--ink);margin:0 0 12px}
.pt-card{display:flex;gap:15px;align-items:flex-start;background:var(--white);border:1px solid rgba(47,36,24,.16);padding:15px 17px;margin-bottom:10px}
.pt-featured{border:2px solid var(--orange);box-shadow:0 8px 22px rgba(194,86,44,.13)}
.pt-photo{flex:0 0 120px;height:82px;object-fit:cover}
.pt-photo-slot{display:flex;align-items:center;justify-content:center;text-align:center;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:rgba(255,253,247,.9);background:linear-gradient(150deg,var(--ink),var(--sand));line-height:1.5}
.pt-body{flex:1;min-width:0}
.pt-body h4{margin:0;font-family:"Cormorant Garamond",serif;font-size:22px;font-weight:600;color:var(--ink);line-height:1.15}
.pt-body p{margin:5px 0 0;font-size:13.5px;line-height:1.6;color:#5c5040}
.pt-meta{margin-top:7px;font-size:12.5px;color:#6d5f4c}
.pt-meta a{color:var(--orange);font-weight:700}
.pt-badge{display:inline-block;background:var(--orange);color:var(--white);font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;padding:4px 9px;margin-bottom:6px}
.pt-badge-sand{background:var(--ink);color:var(--sand)}
.pt-house.pt-sponsor,.pt-house.pt-card{background:var(--cream)}
.pt-planner{margin-top:26px;padding-top:22px;border-top:1px solid rgba(47,36,24,.16)}
.pt-planner-note{font-size:12.5px;color:#6d5f4c;margin:0 0 14px}
.pt-free-head{margin:22px 0 8px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:#7a6a55}

/* For-sale treatment on unsold inventory. An empty slot sells nothing;
   a slot showing a real advert with a price on it sells the space. */
.pt-avail{position:relative;padding-top:34px!important;border-style:dashed!important;border-color:var(--sand-deep)!important}
.pt-ribbon{position:absolute;top:0;left:0;right:0;padding:7px 16px;background:var(--ink);color:var(--sand);font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;font-weight:800}
.pt-ribbon b{color:var(--white);font-weight:800}
.pt-forsale{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  margin:-4px 0 12px;padding:16px 20px;text-decoration:none;border:0;
  background:linear-gradient(135deg,var(--orange),#8f3f20);color:var(--white);
  box-shadow:0 10px 26px rgba(194,86,44,.22);transition:transform .15s ease,box-shadow .15s ease}
.pt-forsale:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(194,86,44,.3)}
.pt-forsale-left b{display:block;font-family:"Cormorant Garamond",serif;font-size:26px;font-weight:600;line-height:1.05;color:var(--white)}
.pt-forsale-left span{display:block;font-size:12.5px;color:rgba(255,253,247,.85);margin-top:3px}
.pt-forsale-right{display:flex;align-items:center;gap:16px}
.pt-price{font-family:"Cormorant Garamond",serif;font-size:34px;line-height:1;color:var(--white)}
.pt-price s{opacity:.6;font-weight:600;margin-right:6px}
.pt-price small{font-size:13px;color:rgba(255,253,247,.75)}
.pt-sale-note{display:block;margin-top:6px;font-size:11.5px;font-weight:700;color:var(--white);background:rgba(255,253,247,.2);padding:5px 10px}
.pt-forsale-cta{background:var(--white);color:var(--orange);font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;padding:11px 16px;white-space:nowrap}

/* Premium slot, directly under the live conditions console. */
.live-sponsor-band{background:var(--ink);padding:0 0 26px}
.lsp{display:flex;align-items:center;gap:15px;padding:15px 18px;text-decoration:none;border:1px solid rgba(255,253,247,.16);background:rgba(255,253,247,.07);transition:background .15s ease}
.lsp:hover{background:rgba(255,253,247,.12)}
.lsp-label{font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;font-weight:800;color:var(--sand);white-space:nowrap}
.lsp-body b{display:block;font-family:"Cormorant Garamond",serif;font-size:23px;font-weight:600;color:var(--white);line-height:1.1}
.lsp-body span{display:block;font-size:12.5px;color:rgba(255,253,247,.7);margin-top:2px}
.lsp-avail{border-style:dashed;border-color:var(--sand)}
.lsp-forsale{margin-top:10px}

/* The three riding areas in the hero ribbon are links to their pages. */
.region-ribbon>a{background:rgba(33,24,9,.68);padding:24px clamp(28px,4vw,72px);display:flex;flex-direction:column;gap:2px;backdrop-filter:blur(3px);text-decoration:none;color:inherit;transition:background .15s ease}
.region-ribbon>a:hover,.region-ribbon>a:focus-visible{background:rgba(194,86,44,.85)}
.region-ribbon>a:focus-visible{outline:2px solid var(--white);outline-offset:-4px}

@media(max-width:640px){
  .pt-card,.pt-sponsor,.lsp{flex-wrap:wrap}
  .pt-photo{flex:1 1 100%;height:110px}
  .pt-forsale{flex-direction:column;align-items:flex-start}
  .pt-forsale-right{width:100%;justify-content:space-between}
  .lsp-label{width:100%}
}
@media print{ .pt-sponsor,.pt-planner,.pt-forsale,.pt-ribbon,.lsp,.live-sponsor-band{display:none!important} }
/* Visual sister-guide house ads use the same 1600x500 contract network-wide. */
.lsp.lsp-visual-ad{display:block!important;padding:0!important;overflow:hidden;background:#073d3a;border:1px solid rgba(255,255,255,.18)}
/* Never crop advertising artwork. A 16/7 mobile override used to trim 1143px
   out of the middle, cutting headlines and site URLs off on phones. Taller
   mobile creative belongs in separate art via <picture>, not a forced crop. */
.lsp-art{display:block;width:100%;height:auto;aspect-ratio:16/5;object-fit:contain}

/* Regional news from the Dune Guide USA network. */
.region-news{padding:90px 0}
.region-news-head{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:end;margin-bottom:34px}
.region-news-head h2{font-size:clamp(44px,5vw,66px);line-height:.92}
.region-news-head>p{font-size:16px;line-height:1.8;color:var(--ink-soft);margin:0}
.region-news-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.region-news-card{padding:28px;background:var(--white);border-top:4px solid var(--juniper)}
.region-news-card.priority{border-top-color:var(--orange)}
.region-news-card>div{display:flex;justify-content:space-between;gap:18px;font-size:10px;font-weight:800;letter-spacing:.12em;color:var(--orange)}
.region-news-card small{color:var(--ink-soft);letter-spacing:0}
.region-news-card h2{font-size:30px;line-height:1.02;margin:32px 0 13px}
.region-news-card p{font-size:14px;line-height:1.7;color:var(--ink-soft)}
.region-news-card a{font-size:12px;font-weight:800;color:var(--juniper)}
.official-news-links{padding:86px 0;background:var(--deep);color:var(--white)}
.official-news-links h2{font-size:clamp(42px,5vw,62px);margin:8px 0 30px}
.official-news-links .shell>div{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid rgba(255,255,255,.18)}
.official-news-links a{padding:25px;color:var(--white);border-left:1px solid rgba(255,255,255,.18)}
.official-news-links a:first-child{border-left:0}
.official-news-links b{display:block;font:600 25px "Cormorant Garamond",serif}
.official-news-links span{display:block;margin-top:8px;color:var(--sand);font-size:12px;line-height:1.5}
@media(max-width:860px){.region-news-head{grid-template-columns:1fr;gap:24px}.region-news-grid{grid-template-columns:1fr}.official-news-links .shell>div{grid-template-columns:1fr}.official-news-links a{border-left:0;border-top:1px solid rgba(255,255,255,.18)}.official-news-links a:first-child{border-top:0}}
@media(max-width:520px){.region-news,.official-news-links{padding:64px 0}}
/* Official source links: useful live resources without pretending a local
   webcam or destination calendar exists when neither can be verified. */
.official-resource-row{padding:82px 0 20px}
.official-resource-heading{display:grid;grid-template-columns:1.15fr .85fr;gap:8vw;align-items:end;margin-bottom:30px}
.official-resource-heading h2{font-size:clamp(42px,5vw,64px);line-height:.94;margin:8px 0 0}
.official-resource-heading>p{margin:0;color:var(--ink-soft);font-size:15px;line-height:1.75}
.official-resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.official-resource-grid>a{display:flex;min-width:0;min-height:255px;padding:26px;flex-direction:column;background:var(--white);border-top:4px solid var(--orange);color:var(--ink);text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}
.official-resource-grid>a:hover{transform:translateY(-3px);box-shadow:0 15px 30px rgba(30,25,17,.1)}
.official-resource-grid span{font-size:10px;font-weight:800;letter-spacing:.15em;color:var(--orange)}
.official-resource-grid b{margin-top:30px;font:600 29px/1 "Cormorant Garamond",serif}
.official-resource-grid small{margin-top:12px;color:var(--ink-soft);font-size:13px;line-height:1.65}
.official-resource-grid i{margin-top:auto;padding-top:22px;font-style:normal;font-size:12px;font-weight:800;color:var(--juniper)}
@media(max-width:820px){.official-resource-heading,.official-resource-grid{grid-template-columns:1fr}.official-resource-heading{gap:20px}.official-resource-grid>a{min-height:0}.official-resource-grid i{margin-top:20px}}
@media(max-width:520px){.official-resource-row{padding-top:62px}}
/* Network advertising: let the artwork be the ad. Availability is a quiet link below it. */
.pt-forsale{margin:8px 0 18px;padding:10px 2px;border:0;border-top:1px solid rgba(18,56,54,.22);background:transparent;color:var(--ink);box-shadow:none;transform:none}
.pt-forsale:hover{box-shadow:none;transform:none;border-top-color:var(--orange)}
.pt-forsale-left b{font-family:inherit;font-size:14px;font-weight:800;color:var(--ink)}
.pt-forsale-left span{font-size:11.5px;color:inherit;opacity:.72}
.pt-forsale-right{margin-left:auto;gap:10px}
.pt-price{font-family:inherit;font-size:13px;color:var(--ink)}
.pt-price small,.pt-sale-note{font-size:10.5px;color:inherit;background:transparent;padding:0}
.pt-forsale-cta{padding:4px 0;background:transparent;color:var(--orange);border-bottom:1px solid currentColor;font-size:11px}
/* Native share sheet first; familiar direct-share choices when the browser has no share sheet. */
.page-share{margin-top:70px;background:var(--sand);border-top:1px solid rgba(20,54,52,.16);border-bottom:4px solid var(--orange)}
.page-share-inner{display:flex;align-items:center;justify-content:space-between;gap:26px;padding:28px 0}
.page-share-inner span{display:block;font-size:9px;font-weight:800;letter-spacing:.17em;color:var(--orange)}
.page-share-inner b{display:block;margin-top:5px;font-family:"Cormorant Garamond",serif;font-size:26px;color:var(--ink)}
.page-share-inner button{padding:14px 26px;border:0;background:var(--ink);color:white;font-weight:800;cursor:pointer}
.share-dialog{width:min(92vw,590px);border:0;padding:0;background:transparent}
.share-dialog::backdrop{background:rgba(4,35,42,.72);backdrop-filter:blur(4px)}
.share-dialog-card{position:relative;padding:36px;background:var(--white);border-top:5px solid var(--orange);box-shadow:0 24px 70px rgba(0,0,0,.3)}
.share-close{position:absolute;right:15px;top:12px;border:0;background:transparent;font-size:28px;cursor:pointer}
.share-dialog-card>p:first-of-type{font-size:9px;font-weight:800;letter-spacing:.17em;color:var(--orange)}
.share-dialog h2{font-family:"Cormorant Garamond",serif;font-size:40px;margin:6px 0 24px}
.share-options{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
.share-options a,.share-options button{display:flex;align-items:center;justify-content:center;min-height:52px;border:1px solid rgba(20,54,52,.2);background:var(--cream);color:var(--ink);font-weight:800;cursor:pointer}
/* [hidden] applies display:none from the UA stylesheet and the rule above beats it.
   Without this, Share with an app renders on desktops with no Web Share API and
   does nothing when clicked. Add as a separate rule: the selector above is
   combined across a and button, and splitting it breaks every anchor. */
.share-options [hidden]{display:none}
.share-status{min-height:18px;font-size:12px;color:var(--orange)}
@media(max-width:640px){.page-share-inner{align-items:flex-start;flex-direction:column}.page-share-inner button{width:100%}.share-options{grid-template-columns:1fr}.share-dialog-card{padding:30px 22px}}

/* ---- Gas prices page: live AAA grade and trend breakdown ---- */
.gas-live{padding:56px 0 12px}
.gas-headline{font-family:'Barlow Condensed',sans-serif;font-size:clamp(38px,7vw,64px);line-height:1;text-transform:uppercase;color:var(--deep);margin:6px 0 4px}
.gas-sub{font-size:17px;color:var(--ink);opacity:.85;margin-bottom:6px}
.gas-trend{font-size:15px;color:var(--orange);font-weight:600;margin-bottom:22px;min-height:1em}
.gas-table{width:100%;border-collapse:collapse;margin:0 0 14px;font-size:15.5px;background:var(--white);box-shadow:var(--shadow);border-radius:10px;overflow:hidden}
.gas-table th,.gas-table td{padding:11px 14px;text-align:right;border-bottom:1px solid var(--rule)}
.gas-table thead th{background:var(--ink);color:var(--white);font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.6px;font-size:14px}
.gas-table tbody th{text-align:left;font-weight:600;color:var(--deep)}
.gas-table tbody tr:last-child th,.gas-table tbody tr:last-child td{border-bottom:0}
.gas-updated{font-size:13.5px;opacity:.65;margin-bottom:10px}
.gas-source{font-size:14px;opacity:.8;max-width:66ch}
.gas-advice{padding:24px 0 64px}
.gas-advice h2{font-family:'Barlow Condensed',sans-serif;font-size:clamp(26px,4vw,38px);text-transform:uppercase;color:var(--deep);margin-bottom:12px}
.gas-advice p{max-width:66ch;margin-bottom:12px}
@media(max-width:640px){
  .gas-table{display:block;overflow-x:auto;white-space:nowrap}
  .gas-live{padding-top:36px}
}

/* Trip fuel calculator. Form is real HTML so the tool reads without JS; only
   the result block is hidden, because it is output. */
.fuel-calc{max-width:1200px;margin:0 auto;padding:60px 24px 0}
.fuel-calc h2{margin:8px 0 12px}
.fuel-calc>p{max-width:68ch;margin:0 0 22px}
.fuel-calc form{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(47,36,24,.18);border:1px solid rgba(47,36,24,.18)}
.fuel-calc label{background:#fffdf8;padding:18px 20px;display:grid;gap:8px;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--orange)}
.fuel-calc input{font-size:1.2rem;padding:10px 12px;border:1px solid rgba(47,36,24,.18);background:#fffdf8;width:100%}
.fuel-calc button{grid-column:1/-1;background:var(--orange);color:#fff;border:0;padding:18px 20px;font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;text-align:left;cursor:pointer}
.fuel-calc button:hover{filter:brightness(1.06)}
.fuel-hint{font-size:.76rem;margin:12px 0 0;opacity:.75}
.fuel-result{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(47,36,24,.18);border:1px solid rgba(47,36,24,.18);border-top:0}
.fuel-result>div{background:#fffdf8;padding:18px 20px}
.fuel-result span{display:block;font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--orange)}
.fuel-result b{font-size:1.5rem;font-weight:400}
.fuel-result .fuel-total{background:var(--ember)}
.fuel-result .fuel-total span,.fuel-result .fuel-total b{color:#fff}
@media(max-width:900px){.fuel-calc form,.fuel-result{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.fuel-calc{padding:45px 18px 0}.fuel-calc form,.fuel-result{grid-template-columns:1fr}}
 [hidden]{display:none!important}
