/*
Theme Name: Love Local Lake County
Theme URI: https://love-local.local
Description: Custom theme for Love Local Lake County, a buy-local movement for the Mission Valley. Hand-built, no page builder. Design system uses CSS custom properties for one-file rebranding.
Author: Kyle Wright / Celtic Winter
Version: 0.1.0
Requires at least: 6.0
Requires PHP: 8.1
Text Domain: love-local
*/
/* ============================================================
   Love Local Lake County — shared design system (Direction A)
   ============================================================ */
:root{
  --brick:#b44e3f; --blue:#1b516b; --green:#3e5e4a;
  --cream:#f7f1e3; --cream2:#efe6d2; --paper:#fbf6ec; --ink:#3a352e;
  --gold:#e0a23e; --gold-lt:#e8c98a; --forest:#2c4536; --teal:#6f9ea3;
  --serif:'Merriweather',Georgia,serif; --sans:'Lato',system-ui,sans-serif;
  --script:'Playlist','Yellowtail',cursive; --mono:'Space Mono',monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--cream);color:var(--ink);line-height:1.65;-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.wrap{max-width:1140px;margin:0 auto;padding:0 32px}
.ey{font-family:var(--script);font-size:clamp(27px,2.5vw,33px);color:var(--brick);line-height:1}
.h{font-family:var(--serif);font-weight:900;color:var(--blue);line-height:1.08;letter-spacing:-.01em}

/* TYPE: editorial emphasis + light statement voice */
.h em,.center .t em,.phero h1 em{font-style:italic;font-weight:700;color:var(--green)}
.stmt{font-family:var(--serif);font-weight:300;font-size:clamp(23px,3vw,37px);line-height:1.3;letter-spacing:-.005em;color:var(--blue)}
.stmt em{font-style:italic;font-weight:400;color:var(--green)}
section{padding:78px 0}
.center{text-align:center;max-width:680px;margin:0 auto 46px}
.center .t{font-family:var(--serif);font-weight:900;color:var(--blue);font-size:clamp(28px,4vw,38px);margin-top:4px;line-height:1.1}
.center p{color:#5a5448;margin-top:10px;font-size:17px}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:5px}

.btn{display:inline-block;border-radius:9px;padding:13px 24px;font-weight:900;font-size:14px;cursor:pointer;border:none;font-family:var(--sans);transition:transform .12s ease,filter .12s ease;text-align:center}
.btn:hover{transform:translateY(-1px);filter:brightness(1.04)}
.btn-brick{background:var(--brick);color:var(--cream)}.btn-green{background:var(--green);color:#fff}
.btn-gold{background:var(--gold);color:#3a2a12}
.btn-out{background:transparent;box-shadow:inset 0 0 0 2px rgba(27,81,107,.35);color:var(--blue)}
.btn[disabled]{opacity:.5;cursor:not-allowed}

.rv{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* signature: the brand mark stamps onto the page on arrival */
@keyframes stampPress{
  0%{opacity:0;transform:rotate(-28deg) scale(1.7)}
  55%{opacity:1;transform:rotate(-6deg) scale(.9)}
  100%{opacity:1;transform:rotate(-10deg) scale(1)}
}
.hero .stamp,.phero .stamp{animation:stampPress .62s cubic-bezier(.2,.75,.3,1) both .2s}
@media(prefers-reduced-motion:reduce){.hero .stamp,.phero .stamp{animation:none}}

/* postmark stamp — recurring signature */
.stamp{border:1.5px dashed rgba(27,81,107,.5);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--blue);text-align:center;background:rgba(251,246,236,.55)}
.stamp b{font-family:var(--serif);font-weight:900;letter-spacing:.1em;font-size:9px}
.stamp span{font-family:var(--sans);letter-spacing:.14em;margin-top:3px;font-size:7px}

/* ---- NAV ---- */
header.nav{position:sticky;top:0;z-index:40;background:rgba(251,246,236,.92);backdrop-filter:blur(8px);border-bottom:1px solid rgba(27,81,107,.1)}
.nav .row{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.bm{display:flex;flex-direction:column;line-height:.8}
.bm .ll{font-family:var(--script);font-size:27px;color:var(--brick)}
.bm .lc{font-family:var(--serif);font-weight:900;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--green);margin-top:3px}
.navl{display:flex;gap:28px;align-items:center}
.navl a{font-weight:700;color:var(--blue);font-size:14px;opacity:.82}
.navl a:hover,.navl a.active{opacity:1}
.navl a.active{color:var(--brick)}
.navl a.btn-brick{color:var(--cream);opacity:1}
.menu-btn{display:none;background:none;border:none;cursor:pointer;color:var(--blue)}

/* ---- HOME HERO ---- */
/* ---- HOME HERO: "The Movement" (full-bleed watercolor + manifesto) ---- */
.hero{position:relative;min-height:560px;padding:118px 0;display:flex;align-items:center;
  background:url('img/polson-watercolor.png');background-size:cover;background-position:center 58%}
.hero::before{content:"";position:absolute;inset:0;
  background:none}
.hero .wrap{position:relative;z-index:2;width:100%;text-align:left}
.hero .ey{font-family:var(--script);font-size:clamp(28px,3.2vw,40px);color:var(--brick)}
.hero h1{font-family:var(--serif);font-weight:900;font-size:clamp(44px,6.6vw,88px);line-height:1.02;color:var(--blue);letter-spacing:-.015em;margin:8px 0 0;max-width:15ch}
.hero h1 em{font-style:italic;color:var(--green)}
.hero .rule{width:96px;height:4px;background:var(--gold);margin:30px 0 24px}
.hero p.lede{font-size:clamp(18px,1.5vw,21px);color:#544e45;max-width:46ch;margin-bottom:30px}
.hero .cta{display:flex;gap:16px;flex-wrap:wrap}
.ctanote{font-family:var(--sans);font-size:12px;letter-spacing:.03em;color:#6f685d;margin-top:14px}
.ctanote b{color:var(--brick);font-weight:700}
.hero .cta .btn{padding:16px 30px;font-size:15px}
.hero .stamp{position:absolute;top:50px;right:60px;width:128px;height:128px;transform:rotate(-10deg);z-index:2}
.hero .stamp b{font-size:10px}.hero .stamp span{font-size:8px}
.herostats{background:var(--cream);border-bottom:1px solid rgba(27,81,107,.12)}
.herostats .wrap{display:flex;gap:38px;flex-wrap:wrap;padding:20px 32px;font-family:var(--sans);font-size:13px;color:#6f685d;letter-spacing:.04em;align-items:baseline}
.herostats b{font-family:var(--serif);color:var(--blue);font-size:17px}

/* ---- INTERIOR PAGE HERO — editorial, left-aligned, sibling of the home hero ---- */
.phero{position:relative;padding:90px 0 70px;background:var(--paper);border-bottom:1px solid rgba(27,81,107,.12);text-align:left;overflow:hidden}
.phero .wrap{position:relative;z-index:2}
.phero:not(.img)::after{content:"";position:absolute;right:-70px;top:50%;transform:translateY(-50%);width:360px;height:360px;
  border:2px dashed rgba(27,81,107,.07);border-radius:50%;pointer-events:none}
.phero.img{background:url('img/polson-watercolor.png');background-size:cover;background-position:center 56%}
.phero.img::before{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(247,241,227,.97) 0%,rgba(247,241,227,.84) 40%,rgba(247,241,227,.46) 70%,rgba(247,241,227,.1) 100%)}
.phero h1{font-family:var(--serif);font-weight:900;color:var(--blue);font-size:clamp(36px,5.2vw,58px);line-height:1.04;
  letter-spacing:-.015em;margin:6px 0 0;max-width:17ch}
.phero h1 em{font-style:italic;color:var(--green)}
.phero h1::after{content:"";display:block;width:84px;height:4px;background:var(--gold);margin:22px 0 0;border-radius:2px}
.phero p{color:#544e45;font-size:18px;max-width:52ch;margin:20px 0 0}
.phero .stamp{position:absolute;top:36px;right:50px;width:108px;height:108px;transform:rotate(-9deg);z-index:3}
.phero .herodate{font-family:var(--sans);font-weight:700;font-size:14px;letter-spacing:.05em;color:var(--brick);margin-top:18px}

/* ---- HOW IT WORKS / STEPS ---- */
.flow{display:flex;align-items:flex-start;justify-content:center;gap:8px;max-width:980px;margin:0 auto}
.step{text-align:center;flex:1;max-width:210px}
.step .ic{width:66px;height:66px;border-radius:50%;background:var(--cream2);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;color:var(--brick)}
.step h3{font-family:var(--serif);font-weight:900;color:var(--blue);font-size:19px;margin-bottom:4px}
.step p{font-size:14px;color:#5b554c}
.arrow{color:var(--gold);font-size:26px;flex:none;margin-top:22px}

/* ---- CAMPAIGN CARD ---- */
.campcard{position:relative;background:var(--paper);border:1px solid rgba(27,81,107,.12);border-radius:18px;padding:50px;text-align:center;box-shadow:0 22px 50px -30px rgba(0,0,0,.28)}
.campcard .stamp{position:absolute;top:-26px;right:42px;width:108px;height:108px;transform:rotate(8deg);background:var(--paper)}
.campcard .kick{font-family:var(--script);font-size:26px;color:var(--brick)}
.campcard h2{font-family:var(--serif);font-weight:900;color:var(--blue);font-size:clamp(34px,5vw,50px);line-height:1;margin:2px 0 6px}
.campcard .dt{font-family:var(--serif);font-weight:900;color:var(--brick);font-size:19px;border-top:2px solid var(--gold);border-bottom:2px solid var(--gold);display:inline-block;padding:7px 22px;margin:6px 0}
.campcard .sub{font-family:var(--script);font-size:24px;color:var(--green);margin:8px 0 14px}
.campcard p{max-width:540px;margin:0 auto;color:#5a5448}
.campcard .cta{margin-top:24px}

/* ---- IMPACT STAMPS ---- */
.impstamps{display:flex;gap:28px;justify-content:center;flex-wrap:wrap}
.impstamp{width:170px;height:170px;border:2px dashed rgba(27,81,107,.45);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:rgba(255,255,255,.35);transform:rotate(-4deg)}
.impstamp:nth-child(even){transform:rotate(4deg);border-color:rgba(180,78,63,.45)}
.impstamp .n{font-family:var(--serif);font-weight:900;font-size:40px;color:var(--blue);line-height:.9}
.impstamp:nth-child(even) .n{color:var(--brick)}
.impstamp .l{font-size:12px;color:#6a645a;text-transform:uppercase;letter-spacing:.06em;margin-top:8px;max-width:120px}
.journey{text-align:center;margin-top:40px;font-family:var(--serif);font-style:italic;color:#54504a;font-size:18px;max-width:680px;margin:40px auto 0}
.journey b{font-style:normal;color:var(--brick)}

/* ---- VALUES GRID ---- */
.mvals{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.mval{text-align:center;padding:8px}
.mval .ic{width:60px;height:60px;border-radius:50%;background:var(--cream2);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;color:var(--brick)}
.mval h3{font-family:var(--serif);font-weight:900;color:var(--blue);font-size:20px;margin-bottom:5px}
.mval p{color:#5a5448;font-size:15px}

/* ---- BUSINESSES ---- */
.bizgrid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.bizgrid ul{list-style:none;margin:18px 0 0}
.bizgrid li{display:flex;gap:11px;align-items:flex-start;margin-bottom:12px;font-size:16px;color:#4a453d}
.bizgrid li svg{flex:none;margin-top:4px;color:var(--green)}
.pricecard{position:relative;background:var(--paper);border:2px solid var(--gold);border-radius:18px;padding:36px;text-align:center}
.pricecard .amt{font-family:var(--serif);font-weight:900;font-size:62px;color:var(--blue);line-height:1}
.pricecard .amt span{font-size:24px;color:var(--brick)}
.pricecard p{color:#5a5448;font-size:14px;margin:8px 0 20px}

/* ---- FORMS / MULTI-STEP ---- */
.formcard{max-width:680px;margin:0 auto;background:var(--paper);border:1px solid rgba(27,81,107,.14);border-radius:18px;padding:38px;box-shadow:0 22px 50px -30px rgba(0,0,0,.28)}
.steps-bar{display:flex;gap:8px;margin-bottom:26px}
.steps-bar .sb{flex:1;text-align:center;font-size:12px;font-weight:700;color:#9a9384;text-transform:uppercase;letter-spacing:.06em}
.steps-bar .sb .dot{height:6px;border-radius:99px;background:var(--cream2);margin-bottom:8px}
.steps-bar .sb.active{color:var(--brick)}
.steps-bar .sb.active .dot,.steps-bar .sb.done .dot{background:var(--gold)}
.fstep{display:none}.fstep.show{display:block}
.field{margin-bottom:16px}
.field label{display:block;font-family:var(--serif);font-weight:700;font-size:13px;color:var(--blue);margin-bottom:5px}
.field input,.field select,.field textarea{width:100%;border:1px solid rgba(27,81,107,.25);border-radius:9px;padding:11px 13px;font-size:15px;font-family:var(--sans);background:#fff;color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:transparent}
.field textarea{min-height:84px;resize:vertical}
.field.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field.row2 .field{margin:0}
.form-actions{display:flex;justify-content:space-between;margin-top:22px;gap:12px}
.err{color:var(--brick);font-size:13px;margin-top:6px;display:none}
.err.show{display:block}
.paybox{background:#fff;border:1px solid rgba(27,81,107,.2);border-radius:12px;padding:18px;margin-bottom:16px}
.paybox .ph{display:flex;justify-content:space-between;font-family:var(--serif);font-weight:900;color:var(--blue);margin-bottom:12px}
.paynext{display:flex;gap:9px;align-items:flex-start;font-size:13px;color:#3e5e4a;background:#e4ece5;border-radius:9px;padding:11px 13px;margin-bottom:16px}
.paynext svg{flex:none;margin-top:2px;color:var(--green)}
.success{text-align:center;padding:20px}
.success .ico{width:72px;height:72px;border-radius:50%;background:var(--cream2);color:var(--green);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.success h3{font-family:var(--serif);font-weight:900;color:var(--blue);font-size:24px;margin-bottom:8px}

/* ---- FAQ ---- */
.faq{max-width:760px;margin:0 auto}
.faq details{border-bottom:1px solid rgba(27,81,107,.16);padding:18px 0}
.faq summary{font-family:var(--serif);font-weight:700;color:var(--blue);font-size:17px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--gold);font-size:24px;font-weight:400}
.faq details[open] summary::after{content:"–"}
.faq p{color:#5a5448;margin-top:10px}

/* ---- DIRECTORY / MAP ---- */
.mapwrap{position:relative;border-radius:20px;overflow:hidden;border:1px solid rgba(27,81,107,.14);background:linear-gradient(180deg,#eaf0ec,#f3ece0);height:420px}
.mapwrap svg{position:absolute;inset:0;width:100%;height:100%}
.mappins text{font-family:var(--serif);font-weight:900;font-size:13px;fill:var(--blue)}
.towns{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:24px}
.town{background:var(--cream);border:1px solid rgba(27,81,107,.18);border-radius:99px;padding:7px 18px;font-weight:700;color:var(--blue);font-size:14px}
.filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:0 auto 30px}
.filt{background:var(--paper);border:1px solid rgba(27,81,107,.22);border-radius:99px;padding:8px 18px;font-weight:700;color:var(--blue);font-size:14px;cursor:pointer}
.filt.on{background:var(--brick);color:#fff;border-color:var(--brick)}
.shopgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.shopcard{background:var(--paper);border:1px solid rgba(27,81,107,.12);border-radius:14px;padding:20px;display:flex;gap:14px}
.shopcard .mono{width:52px;height:52px;border-radius:10px;background:var(--cream2);flex:none;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:900;color:var(--brick);font-size:18px}
.shopcard h3{font-family:var(--serif);font-weight:900;color:var(--blue);font-size:17px}
.shopcard .meta{font-size:13px;color:#8a8276;margin:2px 0 6px;text-transform:uppercase;letter-spacing:.04em}
.shopcard p{font-size:14px;color:#5b554c}

/* ---- ABOUT ---- */
.aboutgrid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center}
.aboutgrid .card{background:url('img/polson-watercolor.png');background-size:cover;background-position:center;border-radius:18px;min-height:320px;position:relative}
.aboutgrid .card .stamp{position:absolute;bottom:-22px;right:-18px;width:104px;height:104px;transform:rotate(8deg);background:var(--cream)}
.aboutgrid p{color:#4a453d;font-size:17px;margin-top:12px}
.aboutgrid .sig{font-family:var(--script);font-size:28px;color:var(--brick);margin-top:14px}

/* ---- JOIN ---- */
.join{background:var(--brick);color:#fff;text-align:center}
.join .t{font-family:var(--serif);font-weight:900;color:#fff;font-size:clamp(28px,4vw,38px)}
.join .ey{color:var(--gold-lt)}
.join p{color:#f6ddd5;max-width:520px;margin:10px auto 24px;font-size:17px}
.joinform{display:flex;gap:10px;max-width:480px;margin:0 auto;justify-content:center;flex-wrap:wrap}
.joinform input{flex:1;min-width:220px;border:none;border-radius:9px;padding:14px 16px;font-size:16px;font-family:var(--sans)}
.joinform .ok{color:#fff;font-family:var(--serif);font-weight:700;width:100%;margin-top:6px;display:none}

/* ---- FOOTER ---- */
footer{background:var(--forest);color:#cdd8cc;padding:56px 0 30px}
footer .ftop{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:30px}
footer .ll{font-family:var(--script);font-size:30px;color:var(--gold)}
footer .lc{font-family:var(--serif);font-weight:900;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#dfe7d8}
footer .tag{color:#aebfac;font-size:14px;margin-top:10px;max-width:300px}
footer h4{font-family:var(--serif);color:#fbf6ea;font-size:13px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px}
footer a{color:#cdd8cc;font-size:14px;display:block;margin-bottom:8px;opacity:.85}
footer a:hover{opacity:1;color:#fff}
footer .social{display:flex;gap:12px;margin-top:14px}
footer .social a{width:36px;height:36px;border-radius:50%;border:1px solid rgba(232,201,138,.35);display:flex;align-items:center;justify-content:center;color:var(--gold-lt);margin:0}
footer .legal{border-top:1px solid rgba(232,201,138,.18);margin-top:38px;padding-top:20px;font-size:12px;color:#8fa691;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

.bg-paper{background:var(--paper)}.bg-cream{background:var(--cream)}
.bg-sage{background:#e4ebe1}

/* deep band — inverts text so it stays readable on blue */
.bg-blue{background:var(--blue);color:#dfeaef}
.bg-blue .ey{color:var(--gold-lt)}
.bg-blue .h,.bg-blue .center .t,.bg-blue .stmt,.bg-blue h2,.bg-blue h3{color:#fff}
.bg-blue .h em,.bg-blue .center .t em,.bg-blue .stmt em{color:var(--gold-lt)}
.bg-blue p,.bg-blue .center p,.bg-blue li{color:#cfdde4}
.bg-blue .btn-out{box-shadow:inset 0 0 0 2px rgba(255,255,255,.55);color:#fff}
.bg-blue .step .ic,.bg-blue .mval .ic{background:rgba(255,255,255,.1);color:var(--gold-lt)}
.bg-blue .impstamp{border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.06)}
.bg-blue .impstamp .n,.bg-blue .impstamp:nth-child(even) .n{color:#fff}
.bg-blue .impstamp:nth-child(even){border-color:rgba(224,162,62,.55)}
.bg-blue .impstamp .l{color:#bcd0da}
.bg-blue .stamp{border-color:rgba(255,255,255,.5);color:#dfeaef;background:rgba(255,255,255,.06)}

@media(max-width:860px){
  .navl{position:fixed;inset:62px 0 auto 0;flex-direction:column;background:var(--paper);padding:18px 32px 26px;gap:16px;border-bottom:1px solid rgba(27,81,107,.12);transform:translateY(-130%);transition:transform .3s ease;align-items:flex-start}
  .navl.open{transform:none}.menu-btn{display:block}
  .hero .stamp,.hero .plane,.phero .stamp,.aboutgrid .card .stamp{display:none}
  .wrap{padding:0 22px}
  .hero{padding:80px 0;min-height:0}
  .phero{padding:58px 0 46px}
  .phero h1{font-size:clamp(32px,8.5vw,44px)}
  section{padding:56px 0}
  .flow{flex-direction:column;align-items:center}.arrow{display:none}.step{max-width:320px}
  .mvals,.bizgrid,.aboutgrid,.shopgrid{grid-template-columns:1fr}
  footer .ftop{grid-template-columns:1fr 1fr}
  .field.row2{grid-template-columns:1fr}
}
@media(max-width:620px){.shopgrid{grid-template-columns:1fr}footer .ftop{grid-template-columns:1fr}}

/* ---- prose (legal + blog posts) ---- */
.prose{max-width:760px;margin:0 auto;color:#4a453d;font-size:17px}
.prose h2{font-family:var(--serif);font-weight:900;color:var(--blue);font-size:24px;margin:30px 0 10px}
.prose p{margin-bottom:16px}
.prose ul{margin:0 0 16px 22px}.prose li{margin-bottom:8px}
.prose .updated{font-size:13px;color:#9a9384;margin-bottom:24px}
.prose a{color:var(--brick);font-weight:700}

/* ---- blog index ---- */
.postgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.postcard{background:var(--paper);border:1px solid rgba(27,81,107,.12);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:transform .12s ease}
.postcard:hover{transform:translateY(-3px)}
.postcard .pic{height:160px;background:linear-gradient(160deg,var(--teal),#9fc0a6)}
.postcard .pic.w{background:url('img/polson-watercolor.png');background-size:cover;background-position:center}
.postcard .body{padding:20px}
.postcard .ptag{font-family:var(--script);color:var(--brick);font-size:20px}
.postcard h3{font-family:var(--serif);font-weight:900;color:var(--blue);font-size:19px;margin:2px 0 6px}
.postcard p{font-size:14px;color:#5b554c}
.postcard .date{font-size:12px;color:#9a9384;text-transform:uppercase;letter-spacing:.05em;margin-top:10px}

/* ---- contact ---- */
.contactgrid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
.contactinfo .crow{display:flex;gap:12px;align-items:flex-start;margin-bottom:18px;color:#4a453d}
.contactinfo .crow svg{flex:none;color:var(--brick);margin-top:3px}
.contactinfo b{font-family:var(--serif);color:var(--blue);display:block}

/* ---- shop detail ---- */
.sd-top{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center}
.sd-pic{height:300px;border-radius:16px;background:linear-gradient(160deg,var(--teal),#9fc0a6)}
.sd-info{background:var(--paper);border:1px solid rgba(27,81,107,.12);border-radius:14px;overflow:hidden;margin-top:8px}
.sd-info .r{display:flex;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid rgba(27,81,107,.1);font-size:15px;color:#4a453d}
.sd-info .r:last-child{border:none}
.sd-info .r .k{font-family:var(--serif);font-weight:700;color:var(--blue);font-size:13px;text-transform:uppercase;letter-spacing:.06em}
.badge{display:inline-flex;align-items:center;gap:7px;background:var(--cream2);border-radius:99px;padding:6px 14px;font-weight:700;color:var(--green);font-size:13px;margin-bottom:10px}

@media(max-width:860px){.postgrid,.contactgrid,.sd-top{grid-template-columns:1fr}}
@media(max-width:620px){.postgrid{grid-template-columns:1fr}}

/* ---- 404 ---- */
.lost{position:relative;min-height:62vh;display:flex;align-items:center;text-align:center;overflow:hidden;
  background:url('img/polson-watercolor.png');background-size:cover;background-position:center 56%}
.lost::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(247,241,227,.82),rgba(247,241,227,.92))}
.lost .wrap{position:relative;z-index:2}
.lost .code{font-family:var(--sans);font-size:14px;letter-spacing:.3em;text-transform:uppercase;color:var(--brick)}
.lost h1{font-family:var(--serif);font-weight:900;color:var(--blue);font-size:clamp(40px,6vw,72px);line-height:1.04;letter-spacing:-.015em;margin:10px 0 0}
.lost h1 em{font-style:italic;color:var(--green)}
.lost p{color:#544e45;font-size:19px;max-width:46ch;margin:18px auto 28px}
.lost .cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ---- Leaflet watercolor map (Directory) ---- */
.leafmap{height:560px;border-radius:20px;overflow:hidden;border:1px solid rgba(27,81,107,.16);position:relative;z-index:1;background:#eef0e9}
.leaflet-container{font-family:var(--sans)}
.llpin-wrap{background:none;border:none}
.llpin{display:block;width:18px;height:18px;border-radius:50%;background:var(--brick);border:3px solid #fff;box-shadow:0 2px 7px rgba(0,0,0,.4)}
.leaflet-popup-content-wrapper{border-radius:12px;box-shadow:0 14px 34px -16px rgba(0,0,0,.45)}
.leaflet-popup-content{margin:13px 16px}
.llpop a{font-family:var(--serif);font-weight:900;color:var(--blue);font-size:15px;line-height:1.2;display:block}
.llpop a:hover{color:var(--brick)}
.llpop span{display:block;margin-top:3px;font-family:var(--sans);font-weight:700;font-size:11px;color:#8a8276;text-transform:uppercase;letter-spacing:.06em}
@media(max-width:620px){.leafmap{height:440px}}

/* About-card badge sits in the blue band: keep its text brick so it reads on the cream circle */
.aboutgrid .card .stamp{color:var(--brick);border-color:rgba(180,78,63,.55)}

/* watercolor map: valley town labels */
.lltown-wrap{background:none;border:none}
.lltown{font-family:var(--serif),Georgia,serif;font-style:italic;font-weight:700;font-size:13px;color:rgba(27,81,107,.72);white-space:nowrap;text-shadow:0 1px 3px rgba(247,241,227,.9),0 0 2px rgba(247,241,227,.9)}

/* hero text legibility insurance on the now-unwashed watercolor (invisible halo) */
.hero h1{text-shadow:0 1px 18px rgba(247,241,227,.65),0 0 2px rgba(247,241,227,.5)}
.hero p.lede{text-shadow:0 1px 12px rgba(247,241,227,.85)}
.hero .ey{text-shadow:0 1px 10px rgba(247,241,227,.7)}

/* hero secondary button: cream fill so it reads on the watercolor */
.hero .cta .btn-out{background:var(--cream);box-shadow:inset 0 0 0 2px rgba(27,81,107,.3),0 8px 22px -14px rgba(0,0,0,.45)}

/* ---- Shop Hop page hero: the event poster, framed ---- */
.hophero{background:var(--paper);border-bottom:1px solid rgba(27,81,107,.12);padding:54px 0 60px;text-align:center}
.hophero .wrap{max-width:1180px}
.hopart{max-width:1100px;margin:0 auto}
.hopart img{width:100%;height:auto;display:block}
.hoplede{max-width:58ch;margin:30px auto 0;color:#544e45;font-size:18px}
.hophero .cta{display:flex;justify-content:center;gap:14px;margin-top:24px}
.hophero .ctanote{margin-top:14px}
@media(max-width:620px){.hophero{padding:36px 0 44px}.hopart img{border-radius:12px}}
