/* ===========================================================================
   Davis Chamber of Commerce — shared stylesheet
   Design system: Fraunces (serif display) / Newsreader (serif body) / Inter (sans)
   Navy + ink, BLUE as the single primary action, amber + teal sparing accents.
   =========================================================================== */
:root{
  --white:#ffffff; --tint:#f4f8fb; --tint2:#eaf2f8;
  --navy:#054C70; --ink:#08294a; --blue:#0a72bc; --blue-dk:#085c97;
  --amber:#d4853a; --amber-dk:#b86a23; --amber-text:#9c5a1c;
  --teal:#1f9d92; --teal-lt:#3ecdc4;
  --text:#13314a; --muted:#4a6173; --line:#dde8f0;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --news:"Newsreader",Georgia,serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --wrap:1180px; --wide:1340px; --gut:clamp(1.2rem,5vw,3rem);
  --shadow:0 34px 70px -42px rgba(8,41,74,.55);
  --shadow-sm:0 18px 40px -28px rgba(8,41,74,.4);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{font-family:var(--sans);color:var(--text);background:var(--white);line-height:1.62;font-size:17px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
img{display:block;max-width:100%;height:auto}
a{color:var(--blue);text-decoration:none}
.wrap{width:min(100% - var(--gut)*2,var(--wrap));margin-inline:auto}
.wrap-wide{width:min(100% - var(--gut)*2,var(--wide));margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-999px;top:0;background:var(--navy);color:#fff;padding:.7rem 1rem;z-index:300;border-radius:0 0 8px 0}
.skip:focus{left:0}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:4px}

/* ---------- Buttons: BLUE is the one primary action everywhere ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--sans);font-weight:600;font-size:.96rem;letter-spacing:.01em;padding:.82rem 1.5rem;border-radius:8px;border:2px solid transparent;cursor:pointer;transition:background .2s,color .2s,transform .2s,border-color .2s,box-shadow .2s;text-align:center;white-space:nowrap}
.btn-lg{padding:1.05rem 2.1rem;font-size:1.05rem}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 16px 32px -16px rgba(10,114,188,.75)}
.btn-primary:hover{background:var(--blue-dk);transform:translateY(-2px);box-shadow:0 20px 38px -16px rgba(8,92,151,.85)}
.btn-ghost{background:transparent;color:var(--blue);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--blue);background:var(--tint);transform:translateY(-2px)}
.btn-ghost.on-dark{color:#fff;border-color:rgba(255,255,255,.55)}
.btn-ghost.on-dark:hover{background:rgba(255,255,255,.14);border-color:#fff}
.textlink{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;font-size:1rem;color:#fff;padding:.4rem .1rem;border-bottom:2px solid rgba(255,255,255,.4)}
.textlink:hover{border-color:#fff}
.textlink .ar{transition:transform .2s}
.textlink:hover .ar{transform:translateX(4px)}
.textlink.dark{color:var(--navy);border-color:var(--line)}
.textlink.dark:hover{border-color:var(--navy)}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:100;transition:background .3s,box-shadow .3s}
.header-inner{display:flex;align-items:center;gap:1.4rem;padding:1rem 0;transition:padding .3s}
.site-header.scrolled{background:rgba(255,255,255,.97);box-shadow:0 1px 0 var(--line),0 12px 30px -24px rgba(8,41,74,.5);backdrop-filter:saturate(1.4) blur(8px)}
.site-header.scrolled .header-inner{padding:.55rem 0}
.brand{display:flex;align-items:center;gap:.7rem;color:#fff}
.brand-mark{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;background:#fff;color:var(--navy);border-radius:9px;font-family:var(--serif);font-weight:900;font-size:1.15rem;letter-spacing:-.02em;box-shadow:0 2px 10px rgba(8,41,74,.18)}
.brand-logo{display:grid;place-items:center;background:#fff;border-radius:10px;padding:7px 12px;box-shadow:0 2px 12px rgba(8,41,74,.18)}
.brand-logo img{display:block;height:42px;width:auto}
.site-header.scrolled .brand-logo{box-shadow:0 2px 10px rgba(8,41,74,.12);border:1px solid var(--line)}
@media (max-width:600px){.brand-logo img{height:34px}.brand-logo{padding:6px 10px}}
.brand-text{display:flex;flex-direction:column;line-height:1.05}
.brand-text strong{font-family:var(--serif);font-weight:700;font-size:1.18rem;letter-spacing:-.01em}
.brand-text span{font-family:var(--sans);font-weight:600;font-size:.63rem;letter-spacing:.22em;text-transform:uppercase;opacity:.85}
.nav{margin-left:auto;display:flex;align-items:center;gap:1.7rem}
.navlink{color:#fff;font-weight:600;font-size:.96rem;position:relative;padding:.2rem 0}
.navlink::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:#fff;transition:width .25s}
.navlink:hover::after,.navlink[aria-current="page"]::after{width:100%}
.header-cta{display:flex;align-items:center;gap:.7rem}
.header-cta .btn-ghost{color:#fff;border-color:rgba(255,255,255,.5)}
.header-cta .btn-ghost:hover{background:rgba(255,255,255,.14);border-color:#fff}
.site-header.scrolled .brand{color:var(--ink)}
.site-header.scrolled .brand-mark{background:var(--navy);color:#fff}
.site-header.scrolled .navlink{color:var(--ink)}
.site-header.scrolled .navlink::after{background:var(--blue)}
.site-header.scrolled .brand-text span{opacity:.7}
.site-header.scrolled .header-cta .btn-ghost{color:var(--blue);border-color:var(--line)}
.site-header.scrolled .header-cta .btn-ghost:hover{background:var(--tint);border-color:var(--blue)}
.menu-toggle{display:none;margin-left:auto;background:none;border:0;width:46px;height:46px;flex-direction:column;justify-content:center;gap:5px;cursor:pointer}
.menu-toggle span{display:block;height:2.5px;width:26px;background:#fff;border-radius:2px;transition:.25s}
.site-header.scrolled .menu-toggle span{background:var(--ink)}
/* solid header variant for interior pages (no hero behind it) */
.site-header.solid{background:var(--navy)}
.site-header.solid.scrolled{background:rgba(255,255,255,.97)}
/* ---------- Nav dropdown (About) ---------- */
.navitem{position:relative;display:inline-flex;align-items:center}
.navitem .caret{font-size:.62em;margin-left:.3rem;transition:transform .2s;line-height:1}
.subnav{position:absolute;top:100%;left:-.6rem;min-width:236px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 20px 44px -18px rgba(8,41,74,.5);padding:.45rem;display:none;flex-direction:column;gap:.1rem;z-index:130}
.subnav a{display:block;padding:.62rem .8rem;border-radius:8px;color:var(--ink);font-weight:600;font-size:.92rem;white-space:nowrap}
.subnav a:hover,.subnav a:focus-visible{background:var(--tint);color:var(--blue)}
.navitem.has-sub:hover .subnav,.navitem.has-sub:focus-within .subnav{display:flex}
.navitem.has-sub:hover .caret,.navitem.has-sub:focus-within .caret{transform:rotate(180deg)}

/* ---------- HERO (homepage) ---------- */
.hero{position:relative;min-height:min(92vh,860px);display:flex;align-items:flex-end;margin-top:calc(-1*(1rem*2 + 44px));padding-top:calc(1rem*2 + 44px);isolation:isolate}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%;z-index:-2}
.hero-scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(6,32,56,.92) 0%,rgba(6,32,56,.82) 16%,rgba(6,32,56,.55) 38%,rgba(6,32,56,.18) 60%,rgba(6,32,56,0) 78%),linear-gradient(to bottom,rgba(6,32,56,.42) 0%,rgba(6,32,56,.1) 14%,rgba(6,32,56,0) 24%)}
.hero-content{padding-bottom:clamp(2.6rem,6vw,5rem)}
.hero-flag{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.2em;font-size:.7rem;color:#fff;margin-bottom:1.4rem}
.hero-flag::before{content:"";width:34px;height:2px;background:var(--amber)}
.hero-flag b{color:#f2c79a;font-weight:800}
.hero h1{font-family:var(--serif);font-weight:600;color:#fff;font-size:clamp(3.5rem,2rem + 7.4vw,6.5rem);line-height:.94;letter-spacing:-.028em;margin-bottom:1.3rem;text-wrap:balance;text-shadow:0 2px 40px rgba(6,32,56,.4)}
.hero h1 em{font-style:italic;font-weight:500;color:#f2c79a}
.hero-lede{font-family:var(--news);font-size:clamp(1.15rem,1rem + .7vw,1.5rem);color:#eef5fb;max-width:46ch;line-height:1.45;margin-bottom:2rem;text-shadow:0 1px 16px rgba(6,32,56,.5)}
.hero-actions{display:flex;flex-wrap:wrap;gap:1.1rem 1.6rem;align-items:center}
.hero-meta{display:flex;flex-wrap:wrap;gap:1.4rem;margin-top:1.7rem;color:#dce9f4;font-size:.9rem;font-weight:500}
.hero-meta span{display:inline-flex;align-items:center;gap:.5rem}
.hero-meta b{color:#fff;font-weight:700}
.hero-meta .dot{width:5px;height:5px;border-radius:50%;background:var(--teal-lt);flex:0 0 5px}
.hero-byline{position:absolute;right:var(--gut);bottom:1.3rem;color:rgba(255,255,255,.7);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;writing-mode:vertical-rl}
/* faint firework shimmer + drifting embers over the night sky */
.hero-fx{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.hero-fx .fx-glow{position:absolute;top:13%;left:64%;width:min(30vw,340px);height:min(30vw,340px);transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,214,150,.62),rgba(255,198,122,.18) 40%,transparent 66%);opacity:.14;filter:blur(2px);animation:fxGlow 4.6s ease-in-out infinite}
.hero-fx .ember{position:absolute;width:3px;height:3px;border-radius:50%;background:#ffdca6;box-shadow:0 0 7px 1.5px rgba(255,205,130,.95);opacity:0;animation:fxTwinkle 3.2s ease-in-out infinite}
.hero-fx .ember.fall{animation:fxFall 6s linear infinite}
@keyframes fxGlow{0%,100%{opacity:.12}50%{opacity:.36}}
@keyframes fxTwinkle{0%,100%{opacity:0;transform:scale(.5)}45%{opacity:.95;transform:scale(1)}72%{opacity:.22;transform:scale(.8)}}
@keyframes fxFall{0%{opacity:0;transform:translateY(0)}12%{opacity:.82}100%{opacity:0;transform:translateY(38px)}}
.reduce-motion .hero-fx{display:none}
@media (max-width:620px){.hero-fx .fx-glow{left:58%;top:12%}}
@media (max-width:760px){.hero-byline{display:none}}

/* ---------- Impact stats ---------- */
.impact{background:var(--ink);padding:clamp(3rem,6vw,4.6rem) 0;color:#fff;position:relative}
.impact::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--teal),var(--teal-lt))}
.impact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem}
.stat{padding:.4rem .2rem;position:relative}
.stat+.stat{border-left:1px solid rgba(62,205,196,.22)}
.stat .num{font-family:var(--serif);font-weight:900;letter-spacing:-.02em;font-size:clamp(2.3rem,1.3rem + 3vw,3.8rem);color:var(--teal-lt);line-height:1}
.stat .lbl{display:block;font-size:.9rem;color:#cfe0ec;margin-top:.7rem;line-height:1.4;max-width:22ch}
@media (max-width:1000px){.stat:nth-child(3){border-left:0}}
@media (max-width:700px){.impact-grid{grid-template-columns:repeat(2,1fr);gap:1.4rem 1rem}.stat .num{font-size:clamp(1.8rem,7vw,2.6rem)}.stat:nth-child(3){border-left:0}}

/* ---------- Section scaffolding ---------- */
.sec{padding:clamp(4rem,8vw,7.2rem) 0}
.sec.alt{background:var(--tint)}
.sec.tint2{background:var(--tint2)}
.eyebrow{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;color:var(--amber-text);display:inline-flex;align-items:center;gap:.6rem;margin-bottom:1.1rem}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--amber)}
.eyebrow.center{justify-content:center}
.h2{font-family:var(--serif);font-weight:600;color:var(--ink);font-size:clamp(2rem,1.3rem + 2.9vw,3.4rem);line-height:1.05;letter-spacing:-.022em;text-wrap:balance}
.lede{font-family:var(--news);font-size:1.22rem;color:var(--muted);line-height:1.55}
.sec-head{max-width:62ch;margin-bottom:2.6rem}
.sec-head.center{margin-inline:auto;text-align:center}

/* ---------- Interior page hero (compact, over photo) ---------- */
.page-hero{position:relative;isolation:isolate;color:#fff;display:flex;align-items:flex-end;min-height:clamp(300px,40vw,440px);margin-top:calc(-1*(1rem*2 + 44px));padding-top:calc(1rem*2 + 44px)}
.page-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;z-index:-2}
.page-hero-scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(6,32,56,.93) 0%,rgba(6,32,56,.7) 40%,rgba(6,32,56,.4) 70%,rgba(6,32,56,.45) 100%)}
.page-hero .wrap-wide{padding-bottom:clamp(2.2rem,5vw,3.6rem)}
.crumb{font-family:var(--sans);font-weight:600;font-size:.78rem;letter-spacing:.06em;color:#dcebf6;margin-bottom:1rem;display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;text-shadow:0 1px 4px rgba(3,20,34,.6)}
.crumb a{color:#bcd5e6}.crumb a:hover{color:#fff}
.crumb .sep{opacity:.5}
.page-hero .pe{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;color:#f2c79a;display:inline-flex;align-items:center;gap:.6rem;margin-bottom:1rem}
.page-hero .pe::before{content:"";width:26px;height:2px;background:var(--amber)}
.page-hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(2.4rem,1.6rem + 3.4vw,4.2rem);line-height:1;letter-spacing:-.025em;margin-bottom:1rem;text-wrap:balance;text-shadow:0 2px 30px rgba(6,32,56,.4)}
.page-hero .lede{font-family:var(--news);color:#eef5fb;font-size:clamp(1.1rem,1rem + .6vw,1.4rem);max-width:54ch;line-height:1.5}
.page-hero .pe-sub{font-family:var(--news);font-style:italic;color:#f2c79a;font-size:clamp(1rem,.95rem + .3vw,1.15rem);line-height:1.45;max-width:50ch;margin:-.3rem 0 1rem}

/* ---------- Article / prose ---------- */
.prose{max-width:68ch}
.prose.center{margin-inline:auto}
.prose>p{font-family:var(--news);font-size:1.16rem;line-height:1.7;color:var(--text);margin-bottom:1.2rem}
.prose>p.lead{font-size:1.32rem;color:var(--ink);line-height:1.55}
.prose h3{font-family:var(--serif);font-weight:700;font-size:1.5rem;color:var(--navy);margin:2rem 0 .7rem;letter-spacing:-.01em}
.prose ul{list-style:none;margin:1rem 0 1.4rem;display:grid;gap:.7rem}
.prose ul li{position:relative;padding-left:1.8rem;font-size:1.06rem;color:var(--text)}
.prose ul li::before{content:"";position:absolute;left:0;top:.55em;width:9px;height:9px;border-radius:50%;background:var(--amber)}
.prose b,.prose strong{color:var(--amber-text);font-weight:700}
.prose a{font-weight:600;border-bottom:1px solid var(--line)}
.prose a:hover{border-color:var(--blue)}
.pull{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(1.3rem,1rem + 1vw,1.7rem);color:var(--navy);line-height:1.32;border-left:3px solid var(--amber);padding-left:1.2rem;margin:1.8rem 0}

/* ---------- Split (text + media) ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.split.media-first .split-media{order:-1}
.split.top{align-items:start}
.split-media img{width:100%;border-radius:14px;box-shadow:var(--shadow);object-fit:cover}
.split-media.tall img{aspect-ratio:4/4.6}
.split-media.wide img{aspect-ratio:4/3.2}
@media (max-width:900px){.split{grid-template-columns:1fr;gap:2.4rem}.split-media{order:-1}}

/* ---------- Feature cards ---------- */
.fcards{display:grid;gap:1.3rem;margin-top:.5rem}
.fcards.c2{grid-template-columns:repeat(2,1fr)}
.fcards.c3{grid-template-columns:repeat(3,1fr)}
.fcards.c4{grid-template-columns:repeat(4,1fr)}
.fcard{padding:1.9rem 1.7rem;border:1px solid var(--line);border-radius:16px;background:var(--white);transition:transform .25s,box-shadow .25s,border-color .25s}
.fcard:hover{transform:translateY(-5px);box-shadow:var(--shadow-sm);border-color:#c9def0}
.fcard .ic{width:46px;height:46px;border-radius:12px;background:var(--tint2);color:var(--blue);display:grid;place-items:center;margin-bottom:1.1rem}
.fcard .ic svg{width:24px;height:24px}
.fcard h3{font-family:var(--serif);font-weight:700;font-size:1.32rem;color:var(--navy);margin-bottom:.5rem;line-height:1.14}
.fcard p{font-size:.99rem;color:var(--text)}
@media (max-width:900px){.fcards.c3,.fcards.c4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.fcards.c2,.fcards.c3,.fcards.c4{grid-template-columns:1fr}}

/* ---------- Checklist ---------- */
.checklist{list-style:none;display:grid;gap:.85rem}
.checklist li{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start;font-size:1.04rem;color:var(--text);line-height:1.45}
.checklist svg{flex:0 0 20px;color:var(--teal);margin-top:.2rem}

/* ---------- Price / membership card ---------- */
.price-card{position:relative;background:linear-gradient(165deg,var(--navy),var(--ink));color:#fff;border-radius:20px;padding:clamp(2rem,4vw,3rem);box-shadow:var(--shadow);overflow:hidden}
.price-card::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 90% 0%,rgba(62,205,196,.22),transparent 55%);pointer-events:none}
.price-card .pc-ey{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;color:var(--teal-lt);margin-bottom:1rem;position:relative}
.price-card .pc-amt{font-family:var(--serif);font-weight:900;font-size:clamp(3rem,2rem + 3vw,4.4rem);line-height:1;letter-spacing:-.02em;position:relative}
.price-card .pc-amt small{font-family:var(--sans);font-weight:600;font-size:1rem;color:#bcd5e6;letter-spacing:0;margin-left:.4rem}
.price-card ul{list-style:none;margin:1.6rem 0 0;position:relative;display:grid;gap:.85rem}
.price-card li{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start;color:#e4eff7;font-size:1rem;line-height:1.4}
.price-card li svg{flex:0 0 20px;color:var(--teal-lt);margin-top:.15rem}

/* ---------- Membership tiers ---------- */
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:.5rem}
.tier{border:1px solid var(--line);border-radius:16px;padding:1.8rem 1.6rem;background:var(--white);display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s,border-color .25s}
.tier:hover{transform:translateY(-5px);box-shadow:var(--shadow-sm);border-color:#c9def0}
.tier.feature{border-color:var(--blue);box-shadow:0 24px 50px -30px rgba(10,114,188,.6)}
.tier .badge{align-self:flex-start;font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.64rem;color:#fff;background:var(--blue);padding:.3rem .7rem;border-radius:999px;margin-bottom:.9rem}
.tier h3{font-family:var(--serif);font-weight:700;font-size:1.3rem;color:var(--navy);line-height:1.12;margin-bottom:.4rem}
.tier .who{font-size:.92rem;color:var(--muted);margin-bottom:1rem;min-height:2.6em}
.tier .amt{font-family:var(--serif);font-weight:900;font-size:2.4rem;color:var(--ink);line-height:1;letter-spacing:-.02em}
.tier .amt small{font-family:var(--sans);font-weight:600;font-size:.86rem;color:var(--muted)}
.tier .tier-cta{margin-top:auto;padding-top:1.4rem}
/* selectable membership levels (pick your level) */
.tier.selectable{position:relative;cursor:pointer}
.tier .tier-radio{position:absolute;opacity:0;width:0;height:0}
.tier .tier-check{position:absolute;top:1.1rem;right:1.1rem;width:22px;height:22px;border:2px solid var(--line);border-radius:50%;transition:border-color .2s,background .2s}
.tier.selectable:hover{border-color:#c9def0;box-shadow:var(--shadow-sm)}
.tier.selectable:focus-within{border-color:var(--blue)}
.tier.selectable:has(.tier-radio:checked){border-color:var(--blue);box-shadow:0 0 0 2px var(--blue) inset,var(--shadow-sm);background:#f2f8fd}
.tier.selectable:has(.tier-radio:checked) .tier-check{border-color:var(--blue);background:var(--blue)}
.tier.selectable:has(.tier-radio:checked) .tier-check::after{content:"";position:absolute;left:6px;top:2px;width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.mem-select-bar{position:sticky;bottom:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:linear-gradient(165deg,var(--navy),var(--ink));color:#fff;border-radius:14px;padding:1rem 1.4rem;margin-top:2rem;box-shadow:0 16px 40px -18px rgba(8,41,74,.6)}
.mem-select-label{font-size:1rem;color:#eef5fb}
.mem-select-label strong{color:#fff}
@media (max-width:560px){.mem-select-bar{flex-direction:column;align-items:stretch;text-align:center}}
@media (max-width:900px){.tiers{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.tiers{grid-template-columns:1fr}}

/* ---------- Team ---------- */
.team-group{margin-bottom:clamp(2.6rem,5vw,4rem)}
.team-group-title{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;color:var(--amber-text);margin-bottom:1.4rem;padding-bottom:.7rem;border-bottom:1px solid var(--line)}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem}
.team-grid.lead{grid-template-columns:repeat(3,1fr)}
.member{position:relative;text-align:center}
.member .ph{position:relative;width:min(178px,82%);aspect-ratio:1/1;margin:0 auto;border-radius:50%;overflow:hidden;background:var(--tint);border:5px solid #fff;box-shadow:0 12px 30px -14px rgba(8,41,74,.55),0 0 0 1px var(--line)}
.member .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.member:hover .ph img{transform:scale(1.06)}
.member .mb{padding:1.05rem .5rem 0}
.member .mn{font-family:var(--serif);font-weight:700;font-size:1.12rem;color:var(--navy);line-height:1.14}
.member .mr{font-size:.86rem;color:var(--amber-text);font-weight:600;margin-top:.25rem}
.member .mo{font-size:.88rem;color:var(--muted);margin-top:.15rem}
.member .mo a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.member .mo a:hover,.member .mo a:focus-visible{color:var(--blue);border-bottom-color:var(--blue)}
.team-hint{text-align:center;color:var(--muted);font-size:.92rem;margin:-.4rem auto 2.4rem;max-width:46ch}
.team-hint strong{color:var(--navy)}
/* "Why Chamber?" affordance pill (shown on members with a quote) */
.mq-toggle{margin-top:.7rem;display:inline-flex;align-items:center;gap:.35rem;font-family:var(--sans);font-weight:700;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--blue);background:transparent;border:1.5px solid #cfe0ee;border-radius:999px;padding:.34rem .8rem;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.mq-toggle:hover,.mq-toggle:focus-visible{background:var(--tint);border-color:var(--blue)}
.mq-toggle .mq-ar{font-size:.8em;transition:transform .2s}
.member.is-open .mq-toggle .mq-ar{transform:rotate(180deg)}
/* base (mobile/touch): quote expands inline below the card on tap */
.m-quote{display:none;flex-direction:column;gap:.5rem;text-align:left;margin-top:.85rem;background:var(--tint);border:1px solid var(--line);border-left:3px solid var(--amber);border-radius:12px;padding:1rem 1.1rem}
.m-quote .mq-text{font-family:var(--news);font-style:italic;font-size:.92rem;line-height:1.55;color:var(--ink)}
.m-quote .mq-by{font-family:var(--sans);font-weight:700;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--amber-text)}
.member.is-open .m-quote{display:flex}
/* desktop: quote becomes a frosted-glass popover over the circle, on hover/focus/click */
@media (min-width:701px){
  .m-quote{position:absolute;left:50%;top:6px;transform:translate(-50%,-8px) scale(.97);transform-origin:top center;width:max(252px,116%);max-width:330px;margin-top:0;display:flex;
    background:rgba(255,255,255,.86);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);
    border:1px solid rgba(255,255,255,.85);border-left:3px solid var(--amber);border-radius:14px;padding:1.05rem 1.2rem;
    box-shadow:0 28px 60px -22px rgba(8,41,74,.6);opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .22s ease,transform .26s cubic-bezier(.2,.8,.2,1);z-index:5}
  .m-quote::after{content:"";position:absolute;left:50%;bottom:-7px;transform:translateX(-50%) rotate(45deg);width:14px;height:14px;background:rgba(255,255,255,.86);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-right:1px solid rgba(255,255,255,.85);border-bottom:1px solid rgba(255,255,255,.85);border-radius:0 0 3px 0}
  .member.has-q:hover,.member.has-q:focus-within,.member.has-q.is-open{z-index:50}
  .member.has-q:hover .m-quote,.member.has-q:focus-within .m-quote,.member.has-q.is-open .m-quote{opacity:1;visibility:visible;transform:translate(-50%,0) scale(1)}
}
.member .me{display:inline-block;margin-top:.5rem;font-size:.84rem;font-weight:600}
@media (max-width:900px){.team-grid,.team-grid.lead{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.team-grid,.team-grid.lead{grid-template-columns:1fr 1fr;gap:1rem}.member .mb{padding:.8rem .8rem 1rem}}

/* ---------- Directory ---------- */
.dir-tools{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:1.6rem}
.dir-search{flex:1 1 280px;position:relative}
.dir-search input{width:100%;font-family:var(--sans);font-size:1rem;padding:.85rem 1rem .85rem 2.7rem;border:1px solid var(--line);border-radius:10px;background:var(--white);color:var(--text)}
.dir-search input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(10,114,188,.14)}
.dir-search svg{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);color:var(--muted)}
.dir-count{font-size:.92rem;color:var(--muted);font-weight:500}
.dir-cats{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}
.cat-chip{font-family:var(--sans);font-weight:600;font-size:.84rem;color:var(--ink);background:var(--white);border:1px solid var(--line);padding:.45rem .9rem;border-radius:999px;cursor:pointer;transition:all .2s}
.cat-chip:hover{border-color:var(--blue);color:var(--blue)}
.cat-chip.on{background:var(--navy);border-color:var(--navy);color:#fff}
.dir-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.dir-card{border:1px solid var(--line);border-radius:14px;padding:1.4rem 1.5rem;background:var(--white);transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;flex-direction:column;gap:.5rem}
.dir-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm);border-color:#c9def0}
.dir-card h3{font-family:var(--serif);font-weight:700;font-size:1.2rem;color:var(--navy);line-height:1.16}
.dir-card .dc-cat{font-size:.78rem;font-weight:600;color:var(--amber-text);text-transform:uppercase;letter-spacing:.06em}
.dir-card p{font-size:.93rem;color:var(--muted)}
.dir-card .dc-link{margin-top:auto;font-weight:600;font-size:.9rem;display:inline-flex;gap:.3rem;align-items:center}
.dir-empty{padding:2.5rem;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:14px}
@media (max-width:900px){.dir-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.dir-grid{grid-template-columns:1fr}}

/* ---------- Events (full calendar list) ---------- */
.event-feature{display:grid;grid-template-columns:1.15fr 1fr;background:var(--white);border-radius:20px;overflow:hidden;box-shadow:var(--shadow);margin-bottom:2.2rem;border:1px solid var(--line)}
.ef-media{position:relative;min-height:340px}
.ef-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ef-media .ef-flag{position:absolute;top:1.2rem;left:1.2rem;font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;color:#fff;background:var(--blue);padding:.45rem .85rem;border-radius:7px}
.ef-body{padding:clamp(2rem,3.4vw,3rem);display:flex;flex-direction:column;justify-content:center}
.ef-body .date{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.78rem;color:var(--amber-text);margin-bottom:.9rem}
.ef-body h3{font-family:var(--serif);font-weight:700;font-size:clamp(1.8rem,1.2rem + 2vw,2.6rem);color:var(--navy);line-height:1.04;margin-bottom:1rem;letter-spacing:-.015em}
.ef-body .desc{font-family:var(--news);font-size:1.1rem;color:var(--text);margin-bottom:1.6rem;max-width:46ch}
.ef-meta{list-style:none;display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:1.8rem}
.ef-meta li{font-size:.82rem;font-weight:600;color:var(--ink);background:var(--tint);border:1px solid var(--line);padding:.42rem .85rem;border-radius:999px}
.event-feature>*{min-width:0}
@media (max-width:860px){.home-fdn-grid{grid-template-columns:1fr !important}.home-fdn-grid>*{min-width:0}}
@media (max-width:900px){.event-feature{grid-template-columns:1fr}.ef-media{min-height:0;aspect-ratio:16/9}}
.cal-month{font-family:var(--serif);font-weight:700;font-size:1.4rem;color:var(--ink);margin:2.2rem 0 1rem;padding-bottom:.6rem;border-bottom:1px solid var(--line)}
.cal-list{display:grid;gap:1rem}
.cal-row{display:grid;grid-template-columns:auto auto 1fr auto;gap:1.4rem;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:1.2rem 1.4rem;transition:transform .2s,box-shadow .2s,border-color .2s}
.cal-flyer{width:62px;height:62px;border-radius:9px;object-fit:cover;background:var(--tint2);border:1px solid var(--line)}
.cal-row:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm);border-color:#c9def0}
.cal-date{text-align:center;background:var(--tint2);border-radius:10px;padding:.7rem .9rem;min-width:74px}
.cal-date .mo{display:block;font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--amber-text)}
.cal-date .dy{display:block;font-family:var(--serif);font-weight:900;font-size:1.7rem;color:var(--navy);line-height:1}
.cal-info h4{font-family:var(--serif);font-weight:700;font-size:1.25rem;color:var(--navy);line-height:1.12;margin-bottom:.3rem}
.cal-info .cal-meta{font-size:.9rem;color:var(--muted)}
.cal-info .cal-meta b{color:var(--ink);font-weight:600}
.cal-cta{white-space:nowrap}
@media (max-width:700px){.cal-row{grid-template-columns:auto 1fr}.cal-cta{display:none}}

/* event card grid (reused on home + events) */
.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.event-card{background:var(--white);border:1px solid var(--line);border-radius:16px;overflow:hidden;transition:transform .25s,box-shadow .25s}
.event-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-sm)}
.event-card .ec-media{aspect-ratio:7/5;overflow:hidden}
.event-card .ec-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.event-card:hover .ec-media img{transform:scale(1.06)}
.ec-body{padding:1.3rem 1.5rem 1.7rem}
.ec-body .when{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;color:var(--amber-text);margin-bottom:.5rem}
.ec-body h4{font-family:var(--serif);font-weight:700;font-size:1.3rem;color:var(--navy);line-height:1.1;margin-bottom:.5rem}
.ec-body p{font-size:.95rem;color:var(--text)}
@media (max-width:900px){.event-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.event-grid{grid-template-columns:1fr}}

/* ---------- Doc / positions list ---------- */
.doclist{display:grid;gap:.7rem}
.docrow{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;justify-content:space-between;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:1.1rem 1.4rem;transition:border-color .2s,transform .2s,box-shadow .2s}
.docrow:hover{border-color:#c9def0;transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.docrow .dl-name{font-family:var(--serif);font-weight:700;color:var(--navy);font-size:1.15rem;display:flex;align-items:center;gap:.7rem}
.docrow .dl-name svg{color:var(--blue);flex:0 0 18px}
.docrow .dl-date{font-size:.88rem;color:var(--muted);font-weight:500}

/* ---------- Steps ---------- */
.steps{display:grid;gap:1.2rem;margin-top:.5rem}
.steps.c3{grid-template-columns:repeat(3,1fr)}
.steps.c5{grid-template-columns:repeat(5,1fr)}
.step{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:1.5rem 1.4rem}
.step .step-n{width:36px;height:36px;border-radius:50%;background:var(--navy);color:#fff;font-family:var(--serif);font-weight:900;display:grid;place-items:center;margin-bottom:.9rem}
.step h3{font-family:var(--serif);font-weight:700;font-size:1.18rem;color:var(--navy);margin-bottom:.4rem}
.step p{font-size:.95rem;color:var(--text)}
@media (max-width:1000px){.steps.c5{grid-template-columns:repeat(2,1fr)}.steps.c3{grid-template-columns:1fr}}
@media (max-width:560px){.steps.c5{grid-template-columns:1fr}}

/* ---------- Partners ---------- */
.partners{display:flex;flex-wrap:wrap;gap:.7rem}
.partner-chip{font-family:var(--sans);font-weight:600;font-size:.95rem;color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:10px;padding:.7rem 1.1rem;text-decoration:none;transition:border-color .2s,color .2s}
.partner-chip:hover{border-color:var(--navy);color:var(--navy)}
.deal-card{position:relative}
.deal-tag{display:inline-block;font-size:.64rem;text-transform:uppercase;letter-spacing:.05em;font-weight:800;color:var(--amber);border:1px solid var(--amber);border-radius:999px;padding:.1rem .5rem;margin-bottom:.6rem}

/* ---------- Full-bleed band ---------- */
.band{position:relative;isolation:isolate;min-height:clamp(360px,50vw,560px);display:flex;align-items:flex-end}
.band-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 46%;z-index:-2}
.band-overlay{position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(6,32,56,.88) 0%,rgba(6,32,56,.5) 35%,rgba(6,32,56,.12) 65%,rgba(6,32,56,.18) 100%)}
.band .wrap,.band .wrap-wide{padding-block:clamp(2.4rem,5vw,4rem)}
.band-tag{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.22em;font-size:.74rem;color:var(--teal-lt);margin-bottom:1rem}
.dir-tagline{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.22em;font-size:.74rem;color:var(--teal);text-align:center;margin:0 0 1.2rem}
.spotlights{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-top:.5rem}
@media (max-width:900px){.spotlights{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.spotlights{grid-template-columns:1fr}}
.spotlight{position:relative;padding:0;overflow:hidden;display:flex;flex-direction:column}
.spotlight.is-new{border-color:var(--blue)}
.spot-new{position:absolute;top:.7rem;left:.7rem;z-index:2;background:var(--blue);color:#fff;font-family:var(--sans);font-weight:800;font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;padding:.24rem .55rem;border-radius:999px}
.spot-media{display:grid;place-items:center;height:132px;background:var(--white);border-bottom:1px solid var(--line)}
.spot-media.logo img{max-width:82%;max-height:66px;width:auto;height:auto;object-fit:contain}
.spot-media.photo{background:#0a1722}
.spot-media.photo img{width:100%;height:100%;object-fit:cover}
.spot-body{padding:1.2rem 1.3rem 1.4rem}
.spotlight h3{margin:0 0 .35rem;font-size:1.18rem}
.spotlight p{margin:0;font-size:.95rem}
.faq-list{max-width:760px;margin:0 auto}
.faq-item{padding:1.4rem 0;border-bottom:1px solid var(--line)}
.faq-item:first-child{border-top:1px solid var(--line)}
.faq-q{font-family:var(--serif);font-weight:700;font-size:1.25rem;color:var(--navy);margin-bottom:.5rem;line-height:1.2}
.faq-a{font-family:var(--news);font-size:1.05rem;line-height:1.62;color:var(--text);max-width:68ch}
.m-email{display:inline-block;margin-top:.55rem;font-family:var(--sans);font-weight:600;font-size:.8rem;color:var(--blue);text-decoration:none;border:1px solid var(--line);border-radius:8px;padding:.32rem .8rem;transition:border-color .2s,color .2s,background .2s}
.m-email:hover{border-color:var(--blue);color:#fff;background:var(--blue)}
.band-line{font-family:var(--serif);font-weight:500;font-size:clamp(1.7rem,1.1rem + 2.4vw,3.1rem);line-height:1.14;color:#fff;max-width:20ch;text-wrap:balance;text-shadow:0 2px 24px rgba(6,32,56,.4)}

/* ---------- Proof ---------- */
.proof{position:relative;background:var(--ink);color:#fff;overflow:hidden}
.proof-grid{display:grid;grid-template-columns:1fr 1.05fr;align-items:stretch;min-height:clamp(440px,52vw,600px)}
.proof-media{position:relative}
.proof-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.proof-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,41,74,0) 55%,var(--ink) 100%),linear-gradient(0deg,rgba(8,41,74,.35),rgba(8,41,74,.05))}
.proof-body{padding:clamp(2.4rem,5vw,4.6rem) clamp(1.4rem,4vw,3.6rem) clamp(2.4rem,5vw,4.6rem) 0;display:flex;flex-direction:column;justify-content:center}
.proof-body .pq{font-family:var(--serif);font-weight:500;font-style:italic;font-size:clamp(1.6rem,1.1rem + 1.6vw,2.5rem);line-height:1.22;letter-spacing:-.01em;text-wrap:balance;margin-bottom:.4rem}
.proof-body .pq b{color:var(--teal-lt);font-style:normal;font-weight:700}
.proof-sub{color:#bcd5e6;font-family:var(--news);font-size:1.12rem;margin-bottom:2rem;max-width:46ch}
.proof-stats{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem 1.8rem;border-top:1px solid rgba(62,205,196,.25);padding-top:1.8rem}
.ps .v{font-family:var(--serif);font-weight:900;font-size:clamp(2rem,1.2rem + 2.2vw,3rem);color:var(--teal-lt);line-height:1}
.ps .k{font-size:.92rem;color:#cfe0ec;margin-top:.4rem;line-height:1.35}
.proof cite{display:block;font-size:.76rem;color:#8fb2cb;font-style:italic;margin-top:1.6rem}
@media (max-width:1000px){.proof-grid{grid-template-columns:1fr}.proof-media{min-height:300px}.proof-media::after{background:linear-gradient(0deg,var(--ink) 4%,rgba(8,41,74,.15) 60%)}.proof-body{padding:clamp(2rem,6vw,3rem) var(--gut)}}

/* ---------- Story (magazine feature) ---------- */
.story-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(2rem,5vw,4.8rem);align-items:center}
.story-fig{position:relative}
.story-fig img{border-radius:14px;width:100%;aspect-ratio:4/3.2;object-fit:cover;box-shadow:var(--shadow)}
.story-badge{position:absolute;right:-14px;top:26px;background:var(--amber);color:#241204;border-radius:12px;padding:.9rem 1.15rem;box-shadow:0 18px 36px -18px rgba(184,106,35,.85);text-align:center}
.story-badge .y{display:block;font-family:var(--serif);font-weight:900;font-size:1.8rem;line-height:1}
.story-badge .t{display:block;font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.6rem;margin-top:.2rem}
.story-fig figcaption{font-family:var(--sans);font-size:.82rem;color:var(--muted);margin-top:.9rem;padding-left:.2rem}
.story-body h2{font-family:var(--serif);font-weight:600;color:var(--ink);font-size:clamp(2rem,1.3rem + 3vw,3.5rem);line-height:1.04;letter-spacing:-.02em;max-width:16ch;margin-bottom:1.6rem;text-wrap:balance}
.story-body p{font-family:var(--news);font-size:1.16rem;line-height:1.66;color:var(--text);margin-bottom:1.2rem}
.dropcap::first-letter{font-family:var(--serif);font-weight:900;float:left;font-size:4.4rem;line-height:.76;padding:.32rem .5rem 0 0;color:var(--navy)}
.story-body b{color:var(--amber-text);font-weight:700}
.story-pull{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(1.3rem,1rem + 1vw,1.7rem)!important;color:var(--navy);line-height:1.32;border-left:3px solid var(--amber);padding-left:1.2rem;margin:1.8rem 0!important}
@media (max-width:1000px){.story-grid{grid-template-columns:1fr;gap:2.6rem}.story-fig{order:-1}}

/* ---------- Why cards (home) ---------- */
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem;margin-top:2.8rem}
.why-card{padding:1.9rem 1.6rem;border:1px solid var(--line);border-radius:16px;background:var(--white);transition:transform .25s,box-shadow .25s,border-color .25s}
.why-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-sm);border-color:#c9def0}
.why-card .ic{width:46px;height:46px;border-radius:12px;background:var(--tint2);color:var(--blue);display:grid;place-items:center;margin-bottom:1.1rem}
.why-card .ic svg{width:24px;height:24px}
.why-card h3{font-family:var(--serif);font-weight:700;font-size:1.4rem;color:var(--navy);margin-bottom:.5rem;line-height:1.12}
.why-card p{font-size:.98rem;color:var(--text)}
.why-card strong{color:var(--ink);font-weight:700}
@media (max-width:1000px){.why-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.why-grid{grid-template-columns:1fr}}

/* ---------- Offer (home) ---------- */
.offer-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.offer h2{font-family:var(--serif);font-weight:600;color:var(--ink);font-size:clamp(2rem,1.3rem + 2.7vw,3.1rem);line-height:1.06;letter-spacing:-.02em;margin-bottom:1.2rem;text-wrap:balance}
.offer h2 em{font-style:italic;color:var(--blue);font-weight:600}
.offer-lead{font-family:var(--news);font-size:1.2rem;color:var(--text);line-height:1.6;margin-bottom:1.8rem;max-width:46ch}
.offer-actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:1.5rem}
.offer-friction{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;color:var(--muted);font-size:.95rem;font-weight:500}
.offer-friction span{display:inline-flex;align-items:center;gap:.5rem}
.offer-friction svg{flex:0 0 18px;color:var(--teal)}
.offer-friction a{font-weight:600}
@media (max-width:1000px){.offer-grid{grid-template-columns:1fr;gap:2.6rem}}

/* ---------- Mosaic ---------- */
.mosaic-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.8rem}
.mosaic-head h2{font-family:var(--serif);font-weight:600;color:var(--ink);font-size:clamp(1.7rem,1.2rem + 1.8vw,2.4rem);letter-spacing:-.02em}
.mosaic-head .cap{font-family:var(--sans);font-size:.86rem;color:var(--muted);letter-spacing:.04em}
.mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(140px,16vw,210px);gap:14px}
.mosaic figure{position:relative;overflow:hidden;border-radius:12px;margin:0}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;filter:saturate(1.04)}
.mosaic figure:hover img{transform:scale(1.05)}
.mosaic figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.4rem .9rem .7rem;color:#fff;font-size:.78rem;font-weight:600;letter-spacing:.02em;background:linear-gradient(to top,rgba(6,32,56,.78),rgba(6,32,56,0));opacity:0;transition:opacity .3s}
.mosaic figure:hover figcaption,.mosaic figure:focus-within figcaption{opacity:1}
.m-tall{grid-row:span 2}.m-wide{grid-column:span 2}.m-big{grid-column:span 2;grid-row:span 2}
@media (max-width:1000px){.mosaic{grid-template-columns:repeat(3,1fr)}.m-big{grid-column:span 2}}
@media (max-width:620px){.mosaic{grid-template-columns:repeat(2,1fr);grid-auto-rows:clamp(120px,34vw,170px)}.m-big,.m-wide{grid-column:span 2}.m-tall{grid-row:span 1}}

/* ---------- Voices ---------- */
.voices-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,3rem)}
.voice{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:clamp(1.8rem,3vw,2.6rem);box-shadow:var(--shadow-sm)}
.voice blockquote{font-family:var(--news);font-style:italic;font-size:1.24rem;line-height:1.5;color:var(--ink);position:relative;margin-bottom:1.4rem}
.voice blockquote::before{content:"\201C";font-family:var(--serif);font-weight:900;font-size:3.4rem;color:var(--amber);position:absolute;top:-1.5rem;left:-.5rem;opacity:.32;z-index:0}
.voice blockquote span{position:relative;z-index:1}
.voice .who{display:flex;align-items:center;gap:1rem;border-top:1px solid var(--line);padding-top:1.3rem}
.voice .who img{width:62px;height:62px;flex:0 0 62px;border-radius:50%;object-fit:cover}
.voice .who strong{display:block;font-family:var(--serif);font-weight:700;color:var(--navy);font-size:1.08rem}
.voice .who em{display:block;font-style:normal;font-size:.88rem;color:var(--muted);font-weight:500}
@media (max-width:900px){.voices-grid{grid-template-columns:1fr}}

/* ---------- Sponsors ---------- */
.sponsors{background:var(--white);padding:clamp(2.6rem,5vw,3.6rem) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sponsors .lab{text-align:center;font-family:var(--sans);font-weight:600;text-transform:uppercase;letter-spacing:.18em;font-size:.74rem;color:var(--muted)}
/* Equal-footprint logo wall: every sponsor gets the same size box, logo scales to fit (no distortion, no favouritism) */
.sponsor-row{display:grid;grid-template-columns:repeat(8,1fr);gap:1rem 1.4rem;margin:1.6rem auto 0;max-width:1160px;align-items:center}
@media (max-width:900px){.sponsor-row{grid-template-columns:repeat(4,1fr)}}
@media (max-width:480px){.sponsor-row{grid-template-columns:repeat(2,1fr)}}
/* FULL COLOUR (Bobbi #271, 25 Aug: "lets colorize these, they look off being in grey").
   They were greyed to 62% opacity and desaturated, colour appearing only on hover, which is a
   common device for a logo wall but reads as washed out and, on the people paying to be up there,
   reads as an afterthought. The hover now lifts them slightly instead, so there is still something
   to tell you the logo is a link. */
.sponsor-row img{display:block;width:100%;height:58px;object-fit:contain;transition:transform .3s,opacity .3s}
.sponsor-row a:hover img{transform:translateY(-2px);opacity:.85}
.sponsor-row a{display:block;width:100%}
/* The note under the wall (Bobbi #271: "something somewhat unobtrusive"). */
.sponsor-note{text-align:center;margin:1.5rem 0 0;font-size:.8rem;color:var(--muted)}

/* ---------- CTA / Final ---------- */
.final{position:relative;isolation:isolate;color:#fff;text-align:center;padding:clamp(4.6rem,9vw,7.8rem) 0;display:flex;align-items:center;min-height:clamp(460px,54vw,620px)}
.final-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;z-index:-2}
.final-scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(120deg,rgba(6,32,56,.93) 0%,rgba(5,76,112,.86) 55%,rgba(6,32,56,.92) 100%)}
.final .since{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;color:#f2c79a;margin-bottom:1.2rem}
.final .since::before,.final .since::after{content:"";width:24px;height:1px;background:rgba(242,199,154,.6)}
.final h2{font-family:var(--serif);font-weight:600;font-size:clamp(2.2rem,1.4rem + 3.4vw,4rem);line-height:1.02;letter-spacing:-.022em;margin-bottom:1rem;text-wrap:balance}
.final p.lead{font-family:var(--news);font-size:1.24rem;color:#e2eef7;max-width:48ch;margin:0 auto 2rem}
.final .actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}
.final .note{font-size:.95rem;color:#bcd5e6;margin-top:1.5rem}
.final .note a{color:var(--teal-lt);font-weight:600}
/* compact CTA band (interior) */
.cta-band{background:var(--tint);border-top:1px solid var(--line)}
.cta-band .inner{text-align:center;max-width:60ch;margin-inline:auto}
.cta-band h2{font-family:var(--serif);font-weight:600;color:var(--ink);font-size:clamp(1.8rem,1.3rem + 2vw,2.8rem);line-height:1.06;letter-spacing:-.02em;margin-bottom:.8rem;text-wrap:balance}
.cta-band p{font-family:var(--news);font-size:1.18rem;color:var(--muted);margin-bottom:1.6rem}
.cta-band .actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}

/* ---------- Contact ---------- */
.info-card{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:1.8rem}
.info-card h3{font-family:var(--serif);font-weight:700;font-size:1.4rem;color:var(--navy);margin-bottom:1.2rem}
.info-row{display:grid;grid-template-columns:90px 1fr;gap:1rem;padding:.7rem 0;border-top:1px solid var(--line)}
.info-row>span:last-child{min-width:0;overflow-wrap:anywhere}
.info-row .ir-label{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--amber-text);padding-top:.15rem}

/* Member links: website, then Facebook, then Instagram, then the rest (Bobbi #174).
   The brand glyphs sit on the baseline with the text rather than floating above it. */
.mlink{display:inline-flex;align-items:center;gap:.4em}
.mlink-i{flex:0 0 auto;vertical-align:-.15em}
.map-embed{width:100%;border:0;border-radius:14px;aspect-ratio:16/10;box-shadow:var(--shadow-sm)}
.form-field{margin-bottom:1rem}
.form-field label{display:block;font-family:var(--sans);font-weight:600;font-size:.86rem;color:var(--ink);margin-bottom:.4rem}
.form-field input,.form-field textarea{width:100%;font-family:var(--sans);font-size:1rem;padding:.75rem .9rem;border:1px solid var(--line);border-radius:9px;background:var(--white);color:var(--text)}
.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(10,114,188,.14)}
.form-note{font-size:.82rem;color:var(--muted);margin-top:.7rem}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);color:#cfe0ec;padding:clamp(3rem,6vw,4.6rem) 0 2rem}
.footer-top{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.1fr;gap:2.4rem}
.footer-brand .brand{color:#fff;margin-bottom:1rem}
.footer-brand p{font-size:.95rem;color:#9ec0d6;max-width:34ch;line-height:1.6}
.footer-col h4{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.74rem;color:var(--teal-lt);margin-bottom:1.1rem}
.footer-col a{display:block;color:#cfe0ec;margin-bottom:.6rem}
.footer-col a:hover{color:#fff}
.footer-col p{font-size:.95rem;line-height:1.7;margin-bottom:.6rem}
.footer-col .btn{margin-top:.5rem}
.footer-bottom{margin-top:2.6rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem}
.footer-bottom span{font-size:.82rem;color:#86a8c0}
@media (max-width:900px){.footer-top{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media (max-width:560px){.footer-top{grid-template-columns:1fr}}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
.reduce-motion .reveal{opacity:1;transform:none;transition:none}

/* ---------- Header responsive ---------- */
@media (max-width:860px){
  .nav,.header-cta{display:none}
  .menu-toggle{display:flex}
  .nav.open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--navy);padding:.6rem var(--gut) 1.4rem;box-shadow:0 20px 40px -20px rgba(8,41,74,.6)}
  .nav.open .navlink{color:#fff;padding:.9rem 0;border-bottom:1px solid rgba(255,255,255,.12)}
  .nav.open .navlink::after{display:none}
  .site-header.scrolled .nav.open .navlink{color:#fff}
  .nav.open .navitem{display:block;width:100%}
  .nav.open .navitem .navlink{display:block}
  .nav.open .navitem .caret{display:none}
  .nav.open .subnav{position:static;display:flex;background:transparent;border:0;box-shadow:none;border-radius:0;padding:.3rem 0 .7rem .9rem;min-width:0}
  .nav.open .subnav a{color:#cfe2f0;padding:.55rem 0;border-radius:0}
  .nav.open .subnav a:hover,.nav.open .subnav a:focus-visible{background:transparent;color:#fff}
}
@media (max-width:620px){
  body{font-size:16px}
  .hero{min-height:88vh}
  .hero-content{padding-bottom:2.2rem}
  .hero-actions{flex-direction:column;align-items:stretch}
  .hero-actions .btn{width:100%}
  .hero-actions .textlink{justify-content:center}
}

/* ---------- Judge-pass refinements ---------- */
/* events calendar: alternate row tint to break monotony */
.cal-list .cal-row:nth-child(even){background:var(--tint)}
/* board: featured chair as a wide horizontal card */
.chair-feature{display:grid;grid-template-columns:auto 1fr;gap:2rem;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:18px;padding:1.6rem;box-shadow:var(--shadow-sm);max-width:680px}
.chair-feature img{width:180px;height:180px;flex:0 0 180px;border-radius:50%;object-fit:cover;border:5px solid #fff;box-shadow:0 12px 30px -14px rgba(8,41,74,.55),0 0 0 1px var(--line)}
.chair-feature .cf-role{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;color:var(--amber-text);margin-bottom:.5rem}
.chair-feature .cf-name{font-family:var(--serif);font-weight:700;font-size:1.9rem;color:var(--navy);line-height:1.05}
.chair-feature .cf-org{color:var(--muted);margin-top:.3rem}
.chair-feature .cf-quote{font-family:var(--news);font-style:italic;color:var(--text);margin-top:.9rem;line-height:1.5;max-width:46ch}
@media (max-width:560px){.chair-feature{grid-template-columns:1fr;text-align:center}.chair-feature img{margin-inline:auto}}
/* tier descriptor line */
.tier .note{font-size:.86rem;color:var(--muted);margin:.2rem 0 .9rem}
/* mobile nav CTA links (only shown in the open mobile panel) */
.nav .nav-cta{display:none}
@media (max-width:860px){
  .nav.open .nav-cta{display:block;margin-top:.6rem;border-bottom:0!important}
  .nav.open .nav-cta .btn{width:100%}
}
/* hamburger -> X when open */
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* ---------- Business Resources ---------- */
.res-card{text-decoration:none;display:block}
.res-card .ar{color:var(--blue);font-weight:700}
.res-card:hover h3{color:var(--blue)}
.facts-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem}
.fact{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:1.6rem 1.5rem}
.fact-n{font-family:var(--serif);font-weight:900;font-size:2rem;color:var(--navy);line-height:1;margin-bottom:.6rem}
.fact p{font-size:.95rem;color:var(--text);line-height:1.5}
.fact cite{display:block;margin-top:.6rem;font-style:normal;font-size:.78rem;color:var(--muted)}
@media (max-width:900px){.facts-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.facts-grid{grid-template-columns:1fr}}

/* ---------- Annual Sponsorship picker ---------- */
.spon-picker{max-width:900px;margin:0 auto}
.spon-event{margin-bottom:2.6rem}
.spon-event-head{display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap;padding-bottom:.6rem;border-bottom:2px solid var(--navy);margin-bottom:.5rem}
.spon-event-head h3{font-family:var(--serif);font-weight:700;color:var(--navy);font-size:1.45rem;margin:0}
.spon-event-date{font-family:var(--sans);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--amber-text)}
.spon-event-intro{color:var(--muted);font-size:.96rem;margin:.4rem 0 1rem}
.spon-items{display:flex;flex-direction:column}
.spon-item{display:flex;align-items:center;gap:.9rem;padding:.75rem .6rem;border-bottom:1px solid var(--line)}
.spon-item.selectable{cursor:pointer;border-radius:8px;transition:background .15s}
.spon-item.selectable:hover{background:var(--tint)}
.spon-item.info{background:var(--tint);border-bottom:1px dashed var(--line)}
.spon-check{width:20px;height:20px;flex:0 0 auto;accent-color:var(--blue);cursor:pointer}
.spon-text{flex:1 1 auto;display:flex;flex-direction:column;gap:.15rem;min-width:0}
.spon-label{font-family:var(--sans);font-weight:600;color:var(--ink)}
.spon-note{font-size:.82rem;color:var(--muted);line-height:1.45}
.spon-price{font-family:var(--serif);font-weight:700;color:var(--navy);white-space:nowrap}
.spon-item.info .spon-price{font-weight:600;color:var(--muted);font-size:.9rem}
.spon-item.selectable:has(.spon-check:checked){background:#e8f3f1}
.spon-item.selectable:has(.spon-check:checked) .spon-label{color:var(--navy)}
.spon-contact-note{margin-top:1.5rem;font-size:.95rem;color:var(--muted)}
.spon-commit{display:flex;align-items:center;justify-content:space-between;gap:1.4rem;flex-wrap:wrap;margin-top:1.9rem;background:linear-gradient(165deg,var(--navy),var(--ink));color:#fff;border-radius:16px;padding:1.5rem 1.7rem;box-shadow:var(--shadow-sm)}
.spon-commit-text{flex:1 1 320px}
.spon-commit h3{font-family:var(--serif);font-weight:700;font-size:1.25rem;margin:0 0 .35rem;color:#fff}
.spon-commit p{color:#dbe9f3;font-size:.95rem;line-height:1.5;max-width:62ch;margin:0}
.spon-total-bar{position:sticky;bottom:0;z-index:60;background:linear-gradient(165deg,var(--navy),var(--ink));color:#fff;box-shadow:0 -10px 30px -16px rgba(8,41,74,.7);padding:.85rem 0}
.spon-total-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.spon-total-info{display:flex;align-items:baseline;gap:1.2rem}
.spon-count{font-size:.9rem;color:rgba(255,255,255,.78)}
.spon-sum{font-family:var(--serif);font-weight:800;font-size:1.7rem}
.spon-next{white-space:nowrap}
.spon-next:disabled{opacity:.45;cursor:not-allowed}
.spon-modal-overlay{position:fixed;inset:0;background:rgba(8,41,74,.55);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.5rem}
.spon-modal{background:#fff;border-radius:14px;padding:1.7rem;max-width:500px;width:100%;box-shadow:var(--shadow);max-height:88vh;overflow:auto}
.spon-modal h3{font-family:var(--serif);font-weight:700;color:var(--navy);margin:0 0 1rem;font-size:1.3rem}
.spon-modal ul{list-style:none;padding:0;margin:0 0 .8rem}
.spon-modal li{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--line);font-size:.95rem}
.spon-modal-total{display:flex;justify-content:space-between;font-family:var(--serif);font-weight:800;color:var(--navy);font-size:1.2rem;padding:.6rem 0;border-top:2px solid var(--navy)}
.spon-modal-hint{font-size:.85rem;color:var(--muted);margin:.6rem 0 1.1rem}
.spon-modal-actions{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:flex-end}
/* form submission states + sponsorship modal contact fields */
.hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;overflow:hidden}
.form-status{color:#b3261e;font-size:.9rem;margin:.6rem 0 0}
.form-ok{background:#e7f6ec;color:#1a7f37;border:1px solid #bfe6cb;border-radius:12px;padding:1.1rem 1.3rem;font-size:1.02rem;line-height:1.5}
.spon-fields{display:grid;grid-template-columns:1fr 1fr;gap:.7rem 1rem;margin:0 0 1.2rem}
.spon-fields label{display:flex;flex-direction:column;font-family:var(--sans);font-size:.74rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);gap:.3rem}
.spon-fields input{font:inherit;font-weight:400;text-transform:none;letter-spacing:normal;color:var(--ink);padding:.55rem .65rem;border:1px solid var(--line);border-radius:8px}
.spon-modal-err{color:#b3261e;font-size:.88rem;margin:.2rem 0 .6rem}
@media (max-width:520px){.spon-fields{grid-template-columns:1fr}}
@media print{.site-header,.site-footer,.spon-total-bar,.spon-modal-actions,.page-hero,.cta-band{display:none !important}}

/* ===== Latest from Davis Business (news cards) ===== */
a.news-card{display:block;color:inherit;text-decoration:none}
/* A paid member spotlight shows the artwork the member supplied, whole. Members upload flyers
   and banners with their name, phone and offer set right at the edges, and the cover crop the
   other news cards use sliced those off (GreenPath, 2026-08-03). They are paying for this space,
   so it fits their image to the box rather than filling the box with part of their image. */
.ec-media.ec-spot{background:#fff;display:grid;place-items:center;border-bottom:1px solid var(--line)}
.ec-media.ec-spot img{width:100%;height:100%;object-fit:contain}
.ec-media.ec-logo{background:#fff;display:grid;place-items:center;padding:20px;border-bottom:1px solid var(--line)}
.ec-media.ec-logo img{width:auto;height:auto;max-width:78%;max-height:78%;object-fit:contain}
.event-card:hover .ec-media.ec-logo img{transform:scale(1.04)}
.news-card .ec-body{display:flex;flex-direction:column;height:100%}
.news-card .ec-body h4{font-size:1.18rem}
.news-card .ec-body p{margin-bottom:1rem}
.news-card .news-date{margin-top:auto;font-family:var(--sans);font-weight:600;font-size:.8rem;letter-spacing:.02em;color:var(--muted)}

/* ===== Directory: HQ-data cards + detail modal (July 2026) ===== */
.dir-card{cursor:pointer}
.dir-card:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.dir-mono{flex:0 0 48px;width:48px;height:48px;border-radius:10px;color:#fff;display:grid;place-items:center;font-family:var(--serif);font-weight:900;font-size:1.25rem}
.dir-logo{flex:0 0 48px;width:48px;height:48px;border-radius:10px;background:#fff;border:1px solid #dde6ee;display:grid;place-items:center;overflow:hidden}
.dir-logo img{max-width:42px;max-height:42px;object-fit:contain;display:block}
.dir-new{display:inline-block;background:#0b63b6;color:#fff;font:700 10px/1 Inter,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px;vertical-align:2px;margin-left:.35rem}
.dir-modal{position:fixed;inset:0;z-index:9998;background:rgba(5,18,32,.55);backdrop-filter:blur(3px);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:6vh 16px}
.dir-modal-card{max-width:560px;margin:0 auto 6vh;background:#fff;border-radius:16px;padding:28px 28px 24px;box-shadow:0 30px 80px rgba(0,0,0,.4);position:relative}
.dir-modal-x{position:absolute;top:10px;right:14px;border:0;background:none;font-size:26px;cursor:pointer;color:#666;line-height:1}
.dir-modal-card h3{font-family:var(--serif);font-size:1.5rem;color:#08294a;margin:0 0 2px}
.dir-modal-cats{color:#b06428;font:600 12px Inter,Arial,sans-serif;letter-spacing:.05em;text-transform:uppercase;margin-bottom:10px}
.dir-modal-desc{color:#44586c;font-size:.95rem;line-height:1.62;margin:0 0 14px}
.dir-modal-desc p{margin:0 0 .85em}
.dir-modal-desc p:last-child{margin-bottom:0}
.dir-modal-meta{display:flex;flex-direction:column;gap:7px;font-size:14.5px;color:#33475b;border-top:1px solid #e8eef4;padding-top:14px}
.dir-modal-meta a{color:#0b63b6}
.dir-modal-tenure{color:#b06428;font-weight:600}
@media (max-width:700px){.dir-modal-card{margin:6vh 14px 0}}

/* ===== MembershipWorks widget shells ===== */
.mw-shell{background:#fff;border:1px solid #e3eaf1;border-radius:14px;padding:18px;min-height:420px}
.mw-note{max-width:640px;margin:0 auto 22px;text-align:center;color:#5a6b7c;font-size:14.5px}

/* ===== Member profile pages (July 2026) ===== */
.mp-hero{background:linear-gradient(165deg,var(--navy),var(--ink));padding:clamp(7.5rem,11vw,9rem) 0 2.8rem;color:#fff}
.mp-hero .crumbs{font-size:.85rem;color:#bcd5e6}
.mp-hero .crumbs a{color:#bcd5e6;text-decoration:none}
.mp-hero .crumbs a:hover{color:#fff}
.mp-hero .crumbs span{opacity:.5;margin:0 .3rem}
.mp-head{display:flex;align-items:center;gap:1.4rem}
.mp-logo{flex:0 0 96px;width:96px;height:96px;border-radius:18px;background:#fff;border:1px solid rgba(255,255,255,.4);display:grid;place-items:center;overflow:hidden;box-shadow:0 14px 40px rgba(0,0,0,.3)}
.mp-logo img{max-width:82px;max-height:82px;object-fit:contain}
.mp-logo.mp-mono{color:#fff;font-family:var(--serif);font-weight:900;font-size:2.6rem;border:0}
.mp-name{font-family:var(--serif);font-weight:700;font-size:clamp(1.9rem,4vw,2.8rem);line-height:1.05;letter-spacing:-.015em;color:#fff;margin:0}
.mp-cats{color:#f2c79a;font:600 12px Inter,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;margin-top:.5rem}
.mp-tenure{color:#f2c79a;font-weight:600;font-size:.9rem}
.mp-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(1.4rem,3.5vw,3rem);align-items:start}
.mp-contact{position:sticky;top:96px}
.mp-body{padding-top:2.2rem}
.mp-desc{max-width:72ch}
.mp-desc p{color:var(--text);line-height:1.7;margin-bottom:1rem;font-family:var(--news);font-size:1.05rem}
.mp-desc-empty{color:var(--muted);font-style:italic}
@media (max-width:820px){
  .mp-grid{grid-template-columns:1fr;gap:1.3rem}
  .mp-contact{position:static;order:-1}
  .mp-hero{padding-bottom:1.8rem}
  .mp-body{padding-top:1.5rem}
  .mp-head{gap:1rem}
  .mp-logo{flex-basis:76px;width:76px;height:76px}
  .mp-logo img{max-width:64px;max-height:64px}
}

/* member page polish */
.mp-name{position:relative}
.mp-name:after{content:"";display:block;width:64px;height:3px;margin-top:.35em;background:linear-gradient(90deg,#e6b45e,#c98f3a);border-radius:2px}
.mp-desc p:first-of-type{font-size:1.16rem;color:var(--ink);line-height:1.65}
.mp-rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.mp-rel-card{text-decoration:none;color:inherit}
@media (max-width:820px){.mp-rel-grid{grid-template-columns:1fr}}

/* category chips: counts + show-all toggle */
.cat-chip[hidden]{display:none}
.cat-chip .cat-n{opacity:.55;font-size:.78em;margin-left:.25em}
.cat-more-toggle{background:var(--navy);color:#fff;border-color:var(--navy)}
.cat-more-toggle:hover{background:var(--ink)}

/* ---------- Signature event landing pages ---------- */
.sig-next{display:flex;gap:1.8rem;align-items:center;background:var(--ink);color:#fff;border-radius:20px;padding:1.7rem 2rem;flex-wrap:wrap;position:relative;overflow:hidden}
.sig-next::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--teal),var(--teal-lt))}
.sn-date{text-align:center;background:rgba(62,205,196,.12);border:1px solid rgba(62,205,196,.35);border-radius:16px;padding:.9rem 1.3rem;min-width:118px;flex:none}
.sn-date .sn-top{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--teal-lt);font-weight:700;margin-bottom:.3rem}
.sn-date .sn-main{display:block;font-family:var(--serif);font-weight:900;font-size:1.7rem;line-height:1.05;letter-spacing:-.01em}
.sn-body{flex:1 1 320px;min-width:0}
.sn-body h2{font-family:var(--serif);font-weight:800;font-size:clamp(1.25rem,2.4vw,1.6rem);line-height:1.25;letter-spacing:-.01em;margin-bottom:.45rem}
.sn-body p{color:#cfe0ec;font-size:1rem;line-height:1.55;max-width:60ch}
.sn-actions{display:flex;flex-direction:column;gap:.7rem;flex:none}
.sn-actions .btn-ghost{border-color:rgba(255,255,255,.4);color:#fff}
.sn-actions .btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}
@media (max-width:700px){.sig-next{padding:1.4rem 1.3rem}.sn-actions{flex-direction:row;flex-wrap:wrap;width:100%}}
.sig-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.sg-item{margin:0;position:relative;border-radius:14px;overflow:hidden;background:var(--ink);box-shadow:var(--shadow-sm)}
.sg-item img{width:100%;height:100%;aspect-ratio:3/2;object-fit:cover;display:block;transition:transform .4s}
.sg-item:hover img{transform:scale(1.04)}
.sg-year{position:absolute;top:10px;left:10px;background:rgba(5,24,38,.78);color:#fff;font-size:.76rem;font-weight:700;padding:.28rem .65rem;border-radius:999px;letter-spacing:.05em}
.sg-cap{position:absolute;left:0;right:0;bottom:0;padding:1.8rem .95rem .75rem;background:linear-gradient(transparent,rgba(5,24,38,.88));color:#fff;font-size:.84rem;line-height:1.4;opacity:0;transition:opacity .25s}
.sg-item:hover .sg-cap,.sg-item:focus-within .sg-cap{opacity:1}
@media (max-width:820px){.sig-gallery{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.sig-gallery{grid-template-columns:1fr}.sg-cap{opacity:1}}
.sig-part-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.4rem;align-items:start}
@media (max-width:860px){.sig-part-grid{grid-template-columns:1fr}}
.sig-h3{font-family:var(--serif);font-weight:700;font-size:1.3rem;color:var(--navy);margin-bottom:.9rem}
.sig-p{font-size:1.02rem;line-height:1.65;color:var(--text)}
.sig-fine{font-size:.88rem;line-height:1.55;color:var(--muted);margin-top:.9rem}
.price-list{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--white)}
.price-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.95rem 1.2rem}
.price-row+.price-row{border-top:1px solid var(--line)}
.pr-name b{font-size:1.02rem;color:var(--ink)}
.pr-note{display:block;font-size:.84rem;color:var(--muted);margin-top:.15rem}
.price-row .amt{font-weight:800;font-size:1.06rem;color:var(--navy);white-space:nowrap}
.gala-list{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--white)}
.gala-row{display:grid;grid-template-columns:64px 66px 1fr auto;gap:.9rem;align-items:baseline;padding:.85rem 1.2rem}
.gala-row+.gala-row{border-top:1px solid var(--line)}
.gr-year{font-family:var(--serif);font-weight:900;font-size:1.12rem;color:var(--navy)}
.gr-num{font-size:.82rem;font-weight:700;color:var(--amber-text);letter-spacing:.03em}
.gr-name{font-size:1rem;color:var(--text)}
.gr-note{font-size:.84rem;color:var(--muted);font-style:italic}
@media (max-width:620px){.gala-row{grid-template-columns:56px 1fr;grid-template-rows:auto auto}.gr-num{grid-column:2}.gr-name{grid-column:1/-1}.gr-note{grid-column:1/-1}}

/* Booth -> membership incentive box on event pages */
.sig-incentive{background:linear-gradient(180deg,#fbf3e7,#fdf8f0);border:1px solid #ecd6b3;border-left:4px solid var(--amber);border-radius:14px;padding:1.5rem 1.7rem;margin:0 0 2rem;box-shadow:var(--shadow-sm)}
.sig-incentive .si-tag{display:inline-block;font-size:.74rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#fff;background:var(--amber);padding:.28rem .7rem;border-radius:999px;margin-bottom:.7rem}
.sig-incentive .si-h{font-family:var(--serif);font-weight:800;font-size:clamp(1.25rem,2.4vw,1.6rem);color:var(--navy);line-height:1.15;margin-bottom:.6rem}
.sig-incentive .si-lead{font-size:1.02rem;line-height:1.55;color:var(--text);margin-bottom:.9rem}
.sig-incentive .si-list{list-style:none;display:grid;gap:.6rem;margin:0 0 1rem}
.sig-incentive .si-list li{position:relative;padding-left:1.5rem;font-size:1.02rem;line-height:1.5;color:var(--text)}
.sig-incentive .si-list li::before{content:"";position:absolute;left:0;top:.5em;width:9px;height:9px;border-radius:50%;background:var(--amber)}
.sig-incentive .si-list b{color:var(--amber-text)}
.sig-incentive .si-was{display:inline-block;font-size:.85rem;color:var(--muted);margin-left:.3rem}
.sig-incentive .si-fine{font-size:.9rem;line-height:1.55;color:var(--muted)}
.sig-incentive a{font-weight:600;color:var(--blue);border-bottom:1px solid var(--line)}
.sig-incentive a:hover{border-color:var(--blue)}

/* ---------- Footer newsletter (Constant Contact widget on dark footer) ---------- */
.footer-news{display:grid;grid-template-columns:1fr 1.1fr;gap:2rem;align-items:center;padding:0 0 2.2rem;margin-bottom:2.2rem;border-bottom:1px solid rgba(255,255,255,.12)}
.footer-news .fn-intro h4{font-family:var(--serif);font-weight:700;font-size:1.3rem;color:#fff;margin-bottom:.4rem}
.footer-news .fn-intro p{color:#cfe0ec;font-size:.98rem;line-height:1.5;max-width:34ch}
.footer-news .ctct-inline-form{max-width:540px}
.footer-news .ctct-form-header,.footer-news .ctct-form-text{display:none !important}
.footer-news .ctct-form-defaults{background:transparent !important;border:0 !important;padding:0 !important}
.footer-news .ctct-form-label,.footer-news .ctct-form-required:before{color:#cfe0ec !important}
.footer-news .ctct-form-element{border-radius:8px !important;border:1px solid rgba(255,255,255,.25) !important}
.footer-news .ctct-form-button{background:var(--blue) !important;border:0 !important;border-radius:8px !important;font-weight:700 !important;color:#fff !important}
.footer-news .ctct-form-button:hover{background:var(--blue-dk) !important}
.footer-news .ctct-gdpr-text,.footer-news .ctct-form-footer,.footer-news .ctct-gdpr-text a,.footer-news .ctct-form-footer a{color:#9fb4c4 !important}
@media (max-width:760px){.footer-news{grid-template-columns:1fr;gap:1.1rem}}

/* Mobile-only Member Login button beside the hamburger (header collapses at 860px) */
.mobile-login{display:none}
@media (max-width:860px){
  .mobile-login{display:inline-flex;align-items:center;margin-left:auto;font-family:var(--sans);font-weight:700;font-size:.88rem;line-height:1;color:#fff;border:1.6px solid rgba(255,255,255,.6);border-radius:999px;padding:.46rem .95rem;white-space:nowrap;transition:background .2s,border-color .2s,color .2s}
  .mobile-login:hover{background:rgba(255,255,255,.14);border-color:#fff}
  /* header is dark (navy or transparent-over-hero) at top -> white; turns white only on scroll -> dark */
  .site-header.scrolled .mobile-login{color:var(--navy);border-color:var(--line)}
  .site-header.scrolled .mobile-login:hover{background:var(--tint);border-color:var(--blue)}
  .menu-toggle{margin-left:.5rem !important}
}
/* The sponsor logos used to be greyed with colour on hover, so phones (no hover) needed this
   override to see them properly. They are full colour everywhere now (Bobbi #271), so the rule
   that used to live here would have nothing left to undo. */

/* ---------------------------------------------------------------------------
   Native events calendar + event landing pages (replaced the MembershipWorks
   !calendar widget, 2026-07-30). Chamber events are distinguished from member
   events, and each row is a real link to a real indexable page.
   --------------------------------------------------------------------------- */
.cal-row{color:inherit;text-decoration:none}
/* .cal-row sets display:grid, which outranks the browser's own [hidden]{display:none}, so
   without this the filter set the attribute and nothing visibly changed. */
.cal-row[hidden]{display:none}
.cal-row:hover .cal-info h4{color:var(--blue)}
/* The old zebra striping counted hidden rows once filtering arrived, so a filtered
   list striped unevenly. The chamber/member accent now carries the visual rhythm. */
.cal-list .cal-row:nth-child(even){background:var(--white)}
.cal-row.cal-chamber{border-left:4px solid var(--amber);background:#fffdfa}
.cal-row.cal-member{border-left:4px solid var(--line)}
.cal-flyer-none{width:62px;height:62px;border-radius:9px;background:var(--tint2);border:1px solid var(--line);display:block}
.cal-tag{display:inline-block;vertical-align:middle;margin-left:.5rem;font-family:var(--sans);font-size:.63rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;padding:.2rem .5rem;border-radius:999px;white-space:nowrap}
.cal-tag.chamber{background:var(--amber);color:#fff}
.cal-tag.member{background:var(--tint2);color:var(--muted)}
.cal-reg{font-size:.83rem;color:var(--muted);margin-top:.35rem}
.cal-filter{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin:0 0 1.6rem}
.cal-chip{font-family:var(--sans);font-size:.88rem;font-weight:600;color:var(--navy);background:var(--white);border:1px solid var(--line);border-radius:999px;padding:.55rem 1.1rem;cursor:pointer;transition:background .18s,color .18s,border-color .18s}
.cal-chip:hover{border-color:var(--blue);color:var(--blue)}
.cal-chip .n{opacity:.6;font-weight:500;margin-left:.3rem}
.cal-chip.is-on{background:var(--navy);border-color:var(--navy);color:#fff}
.cal-chip.is-on .n{opacity:.75}
.cal-empty{text-align:center;color:var(--muted);padding:2rem 0}
.cal-group[hidden]{display:none}

/* Event landing pages.
   .textlink defaults to white because it was built for dark hero sections; the light-background
   variant is .textlink.dark. Every panel below sits on a LIGHT background, so force the dark
   variant here rather than relying on each template remembering the modifier. Getting it wrong
   renders white text on near-white and the link vanishes entirely. */
.ev-reg .textlink, .ev-page-foot .textlink{color:var(--navy);border-color:var(--line)}
.ev-reg .textlink:hover, .ev-page-foot .textlink:hover{border-color:var(--navy)}
.ev-head{background:var(--tint);padding:clamp(2rem,5vw,3.4rem) 0 clamp(1.4rem,3vw,2rem);border-bottom:1px solid var(--line)}
.ev-head .h1{font-family:var(--serif);font-weight:900;color:var(--navy);font-size:clamp(2rem,4.4vw,3.1rem);line-height:1.06;margin-top:.3rem}
.ev-when{font-family:var(--sans);font-weight:600;color:var(--amber-text);margin-top:.8rem;font-size:1.05rem}
.ev-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:clamp(1.8rem,4vw,3.2rem);align-items:start}
.ev-flyer{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--tint2);margin-bottom:1.8rem}
.ev-flyer img{width:100%;height:auto}
.ev-body p{margin-bottom:1.1rem;font-size:1.06rem}
.ev-side{position:sticky;top:96px}
.ev-facts{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:1.4rem 1.5rem;margin-bottom:1.4rem}
.ev-fact{display:grid;grid-template-columns:92px 1fr;gap:.6rem;padding:.55rem 0;border-bottom:1px solid var(--line)}
.ev-fact:last-child{border-bottom:0}
.ev-fact dt{font-family:var(--sans);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding-top:.18rem}
.ev-fact dd{color:var(--ink);font-weight:500}
.ev-reg{background:var(--tint);border:1px solid var(--line);border-radius:14px;padding:1.5rem}
.ev-reg .h3{font-family:var(--serif);font-weight:700;color:var(--navy);font-size:1.3rem;margin-bottom:.6rem}
.ev-reg-note{font-size:.95rem;color:var(--muted);margin-bottom:1.1rem}
.ev-form{display:grid;gap:.9rem}
.ev-lbl{display:grid;gap:.35rem;font-family:var(--sans);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.ev-lbl input{font-family:var(--sans);font-size:1rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--text);padding:.7rem .85rem;border:1px solid var(--line);border-radius:9px;background:var(--white);width:100%}
.ev-lbl input:focus-visible{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue)}
.ev-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.ev-form-msg{font-size:.9rem;min-height:1.2em}
.ev-form-msg.ok{color:var(--teal)}
.ev-form-msg.err{color:#b4342a}
@media (max-width:900px){.ev-grid{grid-template-columns:1fr}.ev-side{position:static}}
@media (max-width:700px){
  .cal-row{grid-template-columns:auto 1fr;gap:1rem;padding:1rem}
  .cal-flyer,.cal-flyer-none{width:52px;height:52px}
  .cal-tag{display:block;margin:.35rem 0 0;width:max-content}
}

/* A member's own events, listed on their profile page. */
.mp-ev-list{display:grid;gap:.7rem}
.mp-ev-row{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center;background:var(--white);border:1px solid var(--line);border-left:4px solid var(--amber);border-radius:12px;padding:.9rem 1.1rem;color:inherit;text-decoration:none;transition:transform .18s,box-shadow .18s}
.mp-ev-row:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.mp-ev-row:hover .mp-ev-body strong{color:var(--blue)}
.mp-ev-row.is-past{border-left-color:var(--line);opacity:.72}
.mp-ev-date{text-align:center;background:var(--tint2);border-radius:9px;padding:.5rem .7rem;min-width:62px}
.mp-ev-date .mo{display:block;font-weight:700;text-transform:uppercase;letter-spacing:.07em;font-size:.66rem;color:var(--amber-text)}
.mp-ev-date .dy{display:block;font-family:var(--serif);font-weight:900;font-size:1.35rem;color:var(--navy);line-height:1}
.mp-ev-body{display:block}
.mp-ev-body strong{display:block;font-family:var(--serif);font-size:1.08rem;color:var(--navy);line-height:1.2}
.mp-ev-when{display:block;font-size:.86rem;color:var(--muted);margin-top:.2rem}

/* Past event pages stay published (their links and ranking are worth keeping) but must not
   look like they are still open. */
.ev-head .eyebrow{color:var(--amber-text)}
.cal-sub{text-align:center;margin-top:2rem;font-size:.95rem;color:var(--muted)}
.cal-sub a{font-weight:600}
.cal-sub-hint{display:block;font-size:.83rem;margin-top:.2rem;color:var(--muted)}

/* Poster wall: every upcoming flyer on one screen. */
.poster-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.6rem}
.poster{display:block;color:inherit;text-decoration:none;transition:transform .2s}
.poster:hover{transform:translateY(-4px)}
.poster-img{display:block;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--tint2);box-shadow:var(--shadow-sm)}
.poster-img img{width:100%;height:auto;display:block}
.poster-meta{display:block;margin-top:.7rem}
.poster-meta strong{display:block;font-family:var(--serif);font-size:1.02rem;color:var(--navy);line-height:1.2}
.poster:hover .poster-meta strong{color:var(--blue)}
.poster-meta span{display:block;font-size:.85rem;color:var(--muted);margin-top:.15rem}
.cal-posters-link{font-weight:600}

/* Flyer: open full size, and save it. The text on a flyer is usually too small to read at
   column width on a phone, and people share and print these. */
.ev-flyer{border:0;background:none;margin-bottom:1.8rem}
.ev-flyer-btn{display:block;width:100%;padding:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--tint2);cursor:zoom-in;position:relative}
.ev-flyer-btn img{width:100%;height:auto;display:block}
.ev-flyer-zoom{position:absolute;right:.7rem;bottom:.7rem;background:rgba(8,41,74,.82);color:#fff;font-family:var(--sans);font-size:.75rem;font-weight:600;padding:.35rem .7rem;border-radius:999px;opacity:0;transition:opacity .2s}
.ev-flyer-btn:hover .ev-flyer-zoom,.ev-flyer-btn:focus-visible .ev-flyer-zoom{opacity:1}
.ev-flyer-cap{margin-top:.6rem;font-size:.88rem}
.ev-flyer-cap a{font-weight:600}
@media (hover:none){.ev-flyer-zoom{opacity:1}}

/* Lightbox */
.fx-lb{position:fixed;inset:0;z-index:400;background:rgba(6,22,38,.92);display:flex;align-items:center;justify-content:center;padding:2rem 1rem}
.fx-lb img{max-width:min(100%,900px);max-height:90vh;width:auto;height:auto;border-radius:8px;box-shadow:0 30px 90px rgba(0,0,0,.6)}
.fx-lb-close{position:absolute;top:1rem;right:1rem;background:rgba(255,255,255,.14);color:#fff;border:0;border-radius:999px;width:44px;height:44px;font-size:1.5rem;line-height:1;cursor:pointer}
.fx-lb-close:hover{background:rgba(255,255,255,.26)}
.cal-tag.members-only{background:var(--navy);color:#fff}

/* Member sign in (replaced the MembershipWorks myaccount widget, 2026-07-30) */
.signin-card{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:2rem 2rem 1.6rem;box-shadow:var(--shadow-sm)}
.signin-lede{color:var(--muted);margin-bottom:1.4rem}
.signin-form{display:grid;gap:1rem}
.signin-lbl{display:grid;gap:.4rem;font-family:var(--sans);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.signin-lbl input{font-family:var(--sans);font-size:1.02rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--text);padding:.8rem .9rem;border:1px solid var(--line);border-radius:10px;background:var(--white);width:100%}
.signin-lbl input:focus-visible{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue)}
.signin-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.signin-msg{font-size:.95rem;min-height:1.2em;margin:0}
.signin-msg.ok{color:var(--teal)}
.signin-msg.err{color:#b4342a}
.signin-help{margin-top:1.1rem;font-size:.86rem;color:var(--muted);text-align:center}
.signin-foot{margin-top:1.6rem;font-size:.9rem;color:var(--muted);text-align:center;line-height:1.6}

.signin-or{display:flex;align-items:center;gap:.8rem;margin:1.2rem 0;color:var(--muted);font-size:.82rem}
.signin-or::before,.signin-or::after{content:"";flex:1;height:1px;background:var(--line)}
.signin-or span{white-space:nowrap}
.signin-alt{width:100%;justify-content:center;text-align:center}

/* Sold out (Bobbi #176). A red flash laid over the flyer rather than text burned into the image,
   so it clears the instant a place frees up. Also appears as a row tag on the calendar, because
   somebody scanning the list should not have to look at the picture to find out. */
.cal-flyer-wrap{position:relative;display:block;flex:0 0 auto}
.soldout-flash{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-12deg);
  background:#c8102e;color:#fff;font-family:var(--sans);font-weight:800;letter-spacing:.04em;
  text-transform:uppercase;font-size:.52rem;line-height:1;padding:3px 5px;border-radius:3px;
  box-shadow:0 1px 4px rgba(0,0,0,.35);white-space:nowrap;pointer-events:none}
.soldout-flash.big{font-size:1.5rem;padding:10px 20px;border-radius:6px;letter-spacing:.06em;
  box-shadow:0 4px 18px rgba(0,0,0,.4)}
.cal-tag.soldout{background:#fdeaed;color:#c8102e;border-color:#f3c2ca}
.ev-flyer-btn{position:relative}
@media (max-width:700px){.soldout-flash.big{font-size:1.1rem;padding:8px 14px}}

/* Annual sponsors in the directory (Bobbi #181). A heavier navy edge on the card and a badge, so
   the businesses funding the chamber are visibly doing so. The flag is scoped to the current year
   in HQ, so this comes off by itself if a sponsor does not renew. */
.dir-card.is-sponsor{border:2px solid var(--navy,#054C70);box-shadow:0 1px 0 rgba(5,76,112,.08)}
.dir-sponsor{display:inline-block;background:var(--navy,#054C70);color:#fff;font:700 10px/1 Inter,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px;vertical-align:2px;margin-left:.35rem;white-space:nowrap}
.mp-sponsor{display:inline-block;background:var(--navy,#054C70);color:#fff;font:700 11px/1.35 Inter,Arial,sans-serif;letter-spacing:.04em;padding:6px 12px;border-radius:999px;vertical-align:middle}
.dirpop-sponsor{display:inline-block;background:var(--navy,#054C70);color:#fff;font:700 10px/1 Inter,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px;margin-left:.35rem}

/* Member deals (Bobbi #269). Amber, so it reads as a different KIND of thing from the navy
   Annual Sponsor badge and the blue New badge and cannot be mistaken for either. The bubble is
   on the directory card; the words behind it are in the card popup and on the member's page. */
.dir-deal{display:inline-block;background:var(--amber-dk,#b86a23);color:#fff;font:700 10px/1 Inter,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px;vertical-align:2px;margin-left:.35rem;white-space:nowrap}
.dirpop-deal{display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap;margin-top:14px;padding:.75rem .9rem;border-radius:10px;background:#fdf4ea;border:1px solid #f0dcc4;color:var(--amber-text,#9c5a1c);font-size:.95rem;line-height:1.5}
.dirpop-deal-tag{flex:0 0 auto;background:var(--amber-dk,#b86a23);color:#fff;font:700 10px/1 Inter,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:999px}
.mp-deal{display:flex;gap:.7rem;align-items:baseline;flex-wrap:wrap;margin:0 0 1.4rem;padding:1rem 1.1rem;border-radius:12px;background:#fdf4ea;border:1px solid #f0dcc4}
.mp-deal-tag{flex:0 0 auto;background:var(--amber-dk,#b86a23);color:#fff;font:700 10px/1 Inter,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border-radius:999px}
.mp-deal p{margin:0;color:var(--amber-text,#9c5a1c);font-weight:600}

/* Event sponsor wall (Bobbi #181). Largest sponsor first, order set in HQ. A sponsor without a
   logo on file shows their name rather than being left off. */
.ev-sponsors{margin-top:2.2rem;padding-top:1.6rem;border-top:1px solid var(--line,#dde8f0)}
.evsp-head{font:600 .82rem/1.2 Inter,Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase;color:var(--muted,#4a6173);margin:0 0 1rem}
.evsp-row{display:flex;flex-wrap:wrap;align-items:center;gap:1.1rem 1.7rem}
.evsp-tile{display:flex;align-items:center;justify-content:center;min-height:52px;padding:.35rem .6rem;border-radius:8px;text-decoration:none}
.evsp-tile img{max-height:52px;max-width:170px;width:auto;height:auto;object-fit:contain;display:block}
.evsp-name{font:600 .95rem/1.3 Fraunces,Georgia,serif;color:var(--navy,#054C70)}
a.evsp-tile:hover{background:var(--tint,#f4f8fb)}
@media(max-width:640px){.evsp-row{gap:.9rem 1.2rem}.evsp-tile img{max-height:42px;max-width:130px}}
