:root{
  --sea:#96c2c5; --sea-d:#5d999d; --sea-dd:#3f7b80; --sea-l:#eaf4f4; --wash:#f4f9f9;
  --ink:#333; --text:#636669; --mute:#808285; --taupe:#e5e1dc; --line:#e6e9ea;
  --cond:'Barlow Condensed','Franklin Gothic Medium','Arial Narrow',sans-serif;
  --caps:'Montserrat','Proxima Nova',Arial,sans-serif;
  --sans:'Source Sans 3','Source Sans Pro',Arial,sans-serif;
  --script:'Mrs Saint Delafield','Snell Roundhand',cursive;
  --max:1240px; --pad:clamp(18px,4.5vw,60px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:96px}
body{background:#fff;color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.65;letter-spacing:.4px;overflow-x:hidden}
a{color:inherit}
img{max-width:100%;height:auto;display:block}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;letter-spacing:inherit}
:focus-visible{outline:3px solid var(--sea-dd);outline-offset:3px}
::selection{background:var(--sea);color:#fff}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
h2{font-family:var(--cond);font-weight:300;font-size:clamp(32px,3.6vw,44px);line-height:1.15;letter-spacing:2px;color:var(--sea-d)}
.caps{font-family:var(--caps);font-weight:500;text-transform:uppercase;letter-spacing:4px;color:var(--ink)}
.lede{margin-top:14px;max-width:66ch}
section{padding:clamp(56px,7vw,96px) 0}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:11px 20px;font-family:var(--sans);font-weight:700;font-size:16px;letter-spacing:1px;text-decoration:none;background:var(--sea);color:#fff;transition:background .2s,color .2s,box-shadow .2s}
.btn:hover{background:var(--sea-d)}
.btn-ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 2px #fff}
.btn-ghost:hover{background:#fff;color:var(--sea-d)}
.btn-white{background:#fff;color:var(--sea-d)}
.btn-white:hover{background:var(--sea-l);color:var(--sea-dd)}
.btn-line{background:#fff;color:var(--sea-d);box-shadow:inset 0 0 0 2px var(--sea)}
.btn-line:hover{background:var(--sea-l)}

/* DIY customizer hooks (set from the back office) */
.btn,.team-btn,.tile div,.cat i,.vlogo{border-radius:var(--radius,0)}
.noscript .hero h1,.noscript .banner h1,.noscript .banner h2{font-family:var(--cond);font-weight:300;font-size:clamp(40px,6vw,84px);letter-spacing:3px;text-transform:uppercase;line-height:1.05}

/* header — centered logo, split nav, like the current site */
.head{position:sticky;top:0;z-index:40;background:#fff;transition:box-shadow .3s}
.head.stuck{box-shadow:0 1px 0 var(--line),0 8px 24px rgba(0,0,0,.05)}
.head-in{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:clamp(14px,2vw,24px);height:104px;transition:height .3s}
.head.stuck .head-in{height:72px}
.head nav{display:flex;gap:clamp(14px,2vw,30px);font-family:var(--caps);font-size:14px;letter-spacing:1px;color:var(--mute);min-width:0}
.head nav.r{justify-content:flex-end}
.head nav.l,.head nav.r{align-items:center}
.head nav.l{padding-left:clamp(0px,2vw,30px)}
.head nav a{text-decoration:none;padding:6px 0;border-bottom:1px solid transparent;white-space:nowrap;line-height:1.4}
.head nav .dd>a{display:inline-block}
.head nav a:hover{color:var(--sea-dd);border-color:var(--sea)}
/* logo is a rigid square: never let the grid or the global img{max-width:100%} squeeze it (Sarah, Oct 20) */
.logo{display:block;flex:none;justify-self:center}
.logo img{width:96px;height:96px;max-width:none;min-width:96px;aspect-ratio:1/1;object-fit:contain;flex:none;transition:width .3s,height .3s,min-width .3s}
.head.stuck .logo img{width:64px;height:64px;min-width:64px}
/* 981-1180px: full nav still shown but the side columns size to their text so nothing overlaps the logo */
@media(min-width:981px) and (max-width:1180px){
  .head-in{grid-template-columns:auto minmax(96px,1fr) auto;gap:12px}
  .head nav{gap:12px;font-size:13px;letter-spacing:.8px}.head nav.l{padding-left:0}
  .head .team-btn{padding:8px 11px;font-size:14px}
}
.team-btn{display:inline-flex;align-items:center;gap:9px;padding:9px 14px;background:var(--sea);color:#fff;font-family:var(--sans);font-weight:700;font-size:15px;letter-spacing:1px;white-space:nowrap}
.team-btn:hover{background:var(--sea-d)}
.team-btn b{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 5px;background:#fff;color:var(--sea-dd);font-size:13px;border-radius:11px}
.team-btn.bump b{animation:bump .4s}
@keyframes bump{40%{transform:scale(1.4)}}
@media(max-width:980px){
  .head-in{grid-template-columns:auto 1fr;height:84px}.head.stuck .head-in{height:70px}
  .head nav.l{display:none}.head nav.r a{display:none}
  .logo{order:-1;justify-self:start}.logo img{width:76px;height:76px;min-width:76px}.head.stuck .logo img{width:60px;height:60px;min-width:60px}
}

/* hero slider */
.hero{position:relative;height:min(72vh,700px);min-height:440px;padding:0;background:#22312f;overflow:hidden}
.slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.4s ease}
.slide.on{opacity:1}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.1) 25%,rgba(0,0,0,.62))}
.hero-copy{position:absolute;z-index:2;left:0;right:0;bottom:clamp(40px,7vh,72px);color:#fff}
.hero h1{font-family:var(--script);font-weight:400;font-size:clamp(64px,9.5vw,138px);line-height:.9;letter-spacing:0;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.hero p{font-weight:700;font-size:clamp(17px,1.7vw,21px);max-width:52ch;margin-top:18px;text-shadow:0 1px 12px rgba(0,0,0,.5)}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.dots{position:absolute;z-index:3;right:var(--pad);bottom:22px;display:flex;gap:4px}
.dots button{width:28px;height:28px;display:grid;place-items:center}
.dots button::before{content:"";width:10px;height:10px;border-radius:50%;box-shadow:inset 0 0 0 2px #fff;transition:background .3s}
.dots button[aria-current="true"]::before{background:#fff}

/* three tiles */
.tiles{padding-bottom:0}
.tiles-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,2.4vw,30px)}
.tile{text-decoration:none;text-align:center}
.tile div{overflow:hidden;aspect-ratio:1}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.tile:hover img{transform:scale(1.04)}
.tile span{display:block;margin-top:16px;font-size:clamp(13px,1.5vw,19px)}
.tile:hover span{color:var(--sea-d)}
@media(max-width:560px){.tile span{letter-spacing:2px}}

/* intro */
.intro-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(28px,5vw,70px);align-items:center}
.intro p{margin-top:16px}
.intro p b{color:var(--ink);font-weight:700}
.intro .guide{justify-self:center;max-width:360px;transition:transform .4s}
.intro .guide:hover{transform:scale(1.03) rotate(-1deg)}
@media(max-width:820px){.intro-grid{grid-template-columns:1fr}.intro .guide{max-width:260px}}

/* page-style banner */
.banner{position:relative;padding:clamp(48px,7vw,84px) 0;background:#333 center/cover;color:#fff}
.banner::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.28)}
.banner .wrap{position:relative}
.banner h1,.banner h2{font-family:var(--script);font-weight:400;font-size:clamp(60px,8vw,104px);line-height:.95;letter-spacing:0;color:#fff}
.banner p{font-weight:700;font-size:clamp(17px,1.6vw,20px);margin-top:12px;max-width:60ch}

/* directory */
.dir{padding-top:clamp(36px,5vw,60px)}
.cat-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:22px 14px}
.cat{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;font-family:var(--caps);font-weight:600;font-size:11.5px;letter-spacing:2px;text-transform:uppercase;color:var(--sea-d);line-height:1.35}
.cat i{display:block;width:100%;max-width:104px;aspect-ratio:1;background:var(--sea-l) center/cover;box-shadow:0 0 0 0 var(--sea);transition:box-shadow .2s,transform .2s}
.cat:hover i{transform:translateY(-3px)}
.cat[aria-pressed="true"] i{box-shadow:0 0 0 3px #fff,0 0 0 6px var(--sea)}
.cat[aria-pressed="true"]{color:var(--ink)}
.cat small{display:block;font-weight:400;letter-spacing:1px;color:var(--mute);text-transform:none;font-size:12px}
@media(max-width:1100px){.cat-grid{grid-template-columns:repeat(6,1fr)}}
@media(max-width:700px){.cat-grid{display:flex;overflow-x:auto;gap:14px;margin:0 calc(var(--pad)*-1);padding:8px var(--pad) 12px;scrollbar-width:none}.cat-grid::-webkit-scrollbar{display:none}.cat{flex:0 0 84px}}
.tools{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:38px;padding-bottom:16px;border-bottom:3px solid var(--line)}
.tools h3{font-size:clamp(17px,2vw,22px);margin-right:auto}
.tools h3 small{font-family:var(--sans);font-size:15px;letter-spacing:.5px;text-transform:none;color:var(--mute);margin-left:10px;font-weight:400}
.search{display:flex;align-items:center;gap:10px;width:min(360px,100%);padding:0 14px;height:46px;background:#fff;box-shadow:inset 0 0 0 1.5px #cfd6d7}
.search:focus-within{box-shadow:inset 0 0 0 2px var(--sea-d)}
.search input{flex:1;border:0;background:none;font:inherit;color:var(--ink);outline:none;min-width:0}
.search svg{width:18px;height:18px;flex:none;color:var(--mute)}
.roll{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(28px,4vw,64px)}
.roll li{display:grid;grid-template-columns:132px 1fr;gap:22px;padding:28px 0;border-bottom:3px solid var(--line)}
.vlogo{width:132px;height:132px;display:grid;place-items:center;background:#fff;box-shadow:inset 0 0 0 1px var(--line);padding:10px;text-decoration:none}
.vlogo img{max-width:100%;max-height:100%;object-fit:contain}
.vlogo span{font-family:var(--cond);font-weight:300;font-size:44px;color:var(--sea)}
.roll h4{font-family:var(--caps);font-weight:600;font-size:17px;letter-spacing:3.5px;text-transform:uppercase;color:var(--sea-d);line-height:1.35}
.roll .kind{font-size:13.5px;color:var(--mute);margin-top:2px}
.roll blockquote{margin-top:8px;font-size:16px}
.roll blockquote cite{display:block;font-style:normal;font-size:13.5px;color:var(--mute);margin-top:2px}
.roll p{margin-top:8px;font-size:16px}
.roll .acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.roll .btn,.venue-list .btn{padding:8px 14px;font-size:14.5px}
.add[aria-pressed="true"]{background:var(--sea-dd);color:#fff;box-shadow:none}
.add svg{width:12px;height:12px;transition:transform .2s}
.add[aria-pressed="true"] svg{transform:rotate(45deg)}
.empty{padding:44px 0;font-size:18px}
.empty button{text-decoration:underline;color:var(--sea-dd);font-weight:700}
@media(max-width:900px){.roll{grid-template-columns:1fr}}
@media(max-width:480px){.roll li{grid-template-columns:84px 1fr;gap:14px}.vlogo{width:84px;height:84px;padding:6px}.roll h4{font-size:15px;letter-spacing:2.5px}}

/* map */
.where{background:var(--wash)}
.where .map-box{max-width:560px;margin:0 auto}
.map-box svg{width:100%;height:auto;display:block}
.map-note{font-size:13.5px;color:var(--mute);margin-top:6px}
.pin{cursor:pointer}
.pin circle.hit{fill:transparent}
.pin circle.ring{fill:rgba(63,123,128,.14);stroke:var(--sea-dd);stroke-width:1.5;transition:fill .2s}
.pin circle.dot{fill:var(--sea-dd)}
.pin text.count{fill:#fff;font:700 15px var(--sans);text-anchor:middle;dominant-baseline:central;pointer-events:none}
.pin text.lbl{fill:var(--ink);font:600 12.5px var(--caps);letter-spacing:1.5px;text-transform:uppercase;paint-order:stroke;stroke:var(--wash);stroke-width:5px;stroke-linejoin:round}
.pin:hover circle.ring,.pin.on circle.ring{fill:rgba(63,123,128,.38)}
.pin.on circle.dot{fill:var(--ink)}
.pin:focus{outline:none}.pin:focus-visible circle.ring{stroke:var(--ink);stroke-width:3}
@media(max-width:600px){.pin text.lbl{font-size:17px}.pin text.count{font-size:19px}}
.place-tabs{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:8px 13px;font-family:var(--caps);font-weight:600;font-size:12px;letter-spacing:2px;text-transform:uppercase;white-space:nowrap;color:var(--sea-dd);background:#fff;box-shadow:inset 0 0 0 1.5px var(--sea)}
.chip small{font-weight:500;opacity:.7;margin-left:6px}
.chip[aria-pressed="true"]{background:var(--sea-dd);color:#fff;box-shadow:none}
.venue-list{list-style:none;margin-top:18px;border-top:3px solid #dfe9e9}
.venue-list li{display:grid;grid-template-columns:84px 1fr;gap:18px;padding:20px 0;border-bottom:3px solid #dfe9e9}
.venue-list .vlogo{width:84px;height:84px;padding:6px}
.venue-list h4{font-family:var(--caps);font-weight:600;font-size:16px;letter-spacing:3px;text-transform:uppercase;color:var(--sea-dd);line-height:1.35}
.venue-list p{font-size:15.5px;margin-top:4px}
.venue-list .acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
@media(max-width:900px){.where .map-box{max-width:520px}}

/* vetting */
.vet-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(18px,3vw,40px);margin-top:38px}
.vet-grid div{border-top:3px solid var(--sea);padding-top:14px}
.vet-grid strong{display:block;font-family:var(--cond);font-weight:300;font-size:clamp(64px,7vw,96px);line-height:1;color:var(--sea)}
.vet-grid span{display:block;margin-top:6px;font-size:13px;letter-spacing:3px}
.vet-grid p{font-size:15.5px;margin-top:8px}
.vet-foot{margin-top:30px;max-width:72ch}
@media(max-width:820px){.vet-grid{grid-template-columns:1fr 1fr}}

/* licenses */
.lic{padding-top:0}
.lic-box{background:var(--taupe);padding:clamp(26px,4vw,52px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(24px,5vw,64px);align-items:start}
.lic h2{color:var(--ink)}
.seg{display:inline-flex;margin-top:22px;background:#fff}
.seg button{padding:10px 18px;font-family:var(--caps);font-weight:600;font-size:12.5px;letter-spacing:2px;text-transform:uppercase;color:var(--sea-dd)}
.seg button[aria-pressed="true"]{background:var(--sea-dd);color:#fff}
.lic-out h3{font-size:16px;letter-spacing:3px;line-height:1.4}
.lic-out ul{list-style:none;margin-top:14px;border-top:1px solid #cfc9c2}
.lic-out li{padding:13px 0;border-bottom:1px solid #cfc9c2;font-size:16px}
.lic-out li b{display:block;color:var(--ink)}
.lic-out .fine{font-size:14px;margin-top:12px}
@media(max-width:820px){.lic-box{grid-template-columns:1fr}}

/* recent posts */
.journal{padding-top:0}
.posts-h{display:flex;align-items:center;gap:10px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:18px}
.posts-h::before{content:"";width:13px;height:13px;box-shadow:inset 0 0 0 3px var(--sea)}
.posts{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px clamp(18px,2.4vw,30px);margin-top:26px}
.posts .ph{display:block;aspect-ratio:3/2;overflow:hidden;border-radius:4px;background:var(--sea-l)}
.posts .ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.posts li:hover .ph img{transform:scale(1.04)}
.posts li{display:flex;flex-direction:column}
.posts .in{padding:16px 12px 0;display:flex;flex-direction:column;flex:1}
.posts .in p{flex:1}
.posts .in .btn{align-self:flex-start;margin-top:auto}
.posts time{font-size:13.5px;color:var(--mute)}
.posts h3{font-family:var(--caps);font-weight:500;font-size:19px;letter-spacing:3px;text-transform:uppercase;line-height:1.3;color:var(--sea-d);margin-top:4px}
.posts h3 a{text-decoration:none}
.posts p{font-size:15.5px;margin:10px 0 14px}
@media(max-width:900px){.posts{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.posts{grid-template-columns:1fr}}

/* TWIG band */
.twig{padding:0 clamp(10px,1.4vw,20px) clamp(40px,5vw,60px)}
.twig-in{background:var(--sea);padding:clamp(10px,1.4vw,20px)}
.twig-box{box-shadow:inset 0 0 0 2px #fff;padding:clamp(40px,6vw,72px) var(--pad);text-align:center;color:#fff}
.twig h2{color:#fff}
.twig p{max-width:66ch;margin:12px auto 0}
.twig .hero-cta{justify-content:center;margin-top:26px}
.gather{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 26px;margin-top:12px;font-size:15px}
.gather b{font-weight:700;margin-right:6px}
.twig p.gather-h{font-size:12.5px;letter-spacing:3px;color:#fff;margin-top:36px}

footer{border-top:1px solid var(--line);padding:44px 0 50px;font-size:14.5px}
.foot{display:grid;grid-template-columns:150px 1.6fr 1fr;gap:clamp(24px,5vw,60px)}
.foot img{width:130px}
.foot h4{font-size:12.5px;letter-spacing:3px;margin-bottom:10px}
.foot ul{list-style:none;columns:2;column-gap:24px}
.foot ul.one{columns:1}
.foot li{margin-bottom:3px}
.foot li button,.foot li a{text-decoration:underline;text-underline-offset:3px;font-size:13.5px;letter-spacing:1px;text-align:left}
.foot li button:hover,.foot li a:hover{color:var(--sea-dd)}
.fine-foot{margin-top:34px;padding-top:20px;border-top:1px solid var(--line);font-size:13.5px}
.fine-foot a{color:var(--sea-dd)}
.fine-foot.legal-links{margin-top:8px;padding-top:0;border-top:0}
@media(max-width:820px){.foot{grid-template-columns:1fr}}

/* team drawer */
.scrim{position:fixed;inset:0;z-index:50;background:rgba(40,60,62,.5);opacity:0;pointer-events:none;transition:opacity .25s}
.scrim.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;z-index:51;top:0;right:0;bottom:0;width:min(470px,100%);background:#fff;box-shadow:-20px 0 60px rgba(40,60,62,.25);transform:translateX(102%);transition:transform .3s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;visibility:hidden}
.drawer.on{transform:none;visibility:visible}
.drawer header{display:flex;justify-content:space-between;align-items:center;padding:14px 26px 6px}
.drawer header h2{font-family:var(--script);font-size:64px;letter-spacing:0;color:var(--sea-d);line-height:1.1}
.x{width:42px;height:42px;display:grid;place-items:center;box-shadow:inset 0 0 0 1.5px var(--sea);color:var(--sea-dd)}
.x:hover{background:var(--sea-l)}
.drawer-body{flex:1;overflow-y:auto;padding:4px 26px 26px}
.team-list{list-style:none;border-top:3px solid var(--line)}
.team-list li{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.team-list .vlogo{width:46px;height:46px;padding:3px}.team-list .vlogo span{font-size:22px}
.team-list b{display:block;font-family:var(--caps);font-weight:600;font-size:13.5px;letter-spacing:2px;text-transform:uppercase;color:var(--sea-dd);line-height:1.35}
.team-list small{font-size:13.5px;color:var(--mute)}
.team-list button{font-size:14px;text-decoration:underline}
.missing{margin-top:14px;font-size:15px}
.missing button{text-decoration:underline;font-weight:700;color:var(--sea-dd)}
.team-empty{padding:22px 0}
form.ask{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:26px}
form.ask h3{grid-column:1/-1;font-size:15px;letter-spacing:3px}
form.ask label{display:flex;flex-direction:column;gap:4px;font-size:14px;font-weight:600;color:var(--ink)}
form.ask .full{grid-column:1/-1}
form.ask input,form.ask textarea{font:inherit;font-weight:400;color:var(--ink);padding:10px 12px;border:1.5px solid #cfd6d7;background:#fff;width:100%;border-radius:0}
form.ask input:focus,form.ask textarea:focus{outline:none;border-color:var(--sea-d)}
form.ask button{grid-column:1/-1}
.sent{margin-top:26px;padding:22px;background:var(--sea-l);border-left:4px solid var(--sea)}
.sent h3{font-size:15px;letter-spacing:3px;margin-bottom:8px;line-height:1.4}
.sent p{font-size:15.5px}.sent p+p{margin-top:8px}

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

/* ===== live-site additions: navigation menus, inner pages, forms, blog, vendor profile ===== */
.head-in{position:relative}
.dd{position:relative}
.dd-m{position:absolute;top:100%;left:50%;transform:translateX(-50%);background:#fff;min-width:230px;padding:10px 0;box-shadow:0 10px 30px rgba(0,0,0,.12);border-top:2px solid var(--sea);display:none;flex-direction:column;z-index:50}
.dd:hover .dd-m,.dd.open .dd-m,.dd:focus-within .dd-m{display:flex}
.dd-m a{padding:9px 18px!important;border:0!important;font-size:13px;text-transform:none;letter-spacing:.3px;color:var(--text)}
.dd-m a:hover{background:var(--wash);color:var(--sea-dd)}
.burger{display:none;width:44px;height:44px;flex-direction:column;justify-content:center;gap:5px;align-items:center;position:absolute;right:0;top:50%;transform:translateY(-50%)}
.burger span{display:block;width:24px;height:2px;background:var(--ink);transition:.2s}
.nav-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-open .burger span:nth-child(2){opacity:0}.nav-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.head nav.mobile{display:none;flex-direction:column;gap:0;background:#fff;border-top:1px solid var(--line);padding:8px var(--pad) 18px;max-height:calc(100vh - 80px);overflow:auto}
.mobile a{padding:11px 0;border-bottom:1px solid var(--line);text-decoration:none;font-family:var(--caps);font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink)}
.nav-open .head nav.mobile{display:flex}
@media(max-width:980px){.head nav.l,.head nav.r a,.head nav.r .dd{display:none}.head nav.r{position:absolute;right:52px;top:50%;transform:translateY(-50%)}.burger{display:flex}.head-in{height:84px}.head.stuck .head-in{height:72px}}
.team-btn.bump{animation:bump .4s}
@keyframes bump{40%{transform:scale(1.12)}}
.crumbs{font-size:13px;color:var(--mute);padding:18px 0 0}
.crumbs a{color:var(--mute);text-decoration:none}.crumbs a:hover{color:var(--sea-dd)}
.narrow{max-width:860px}
.center{text-align:center;margin-top:30px}
.roll-h{margin:34px 0 4px;font-size:15px}.roll-h small{display:block;font-weight:400;letter-spacing:1px;text-transform:none;color:var(--mute);font-size:14px;margin-top:2px}
.roll h4 a{text-decoration:none}.roll h4 a:hover{text-decoration:underline}
.cat-grid.static .cat{text-decoration:none}
.cat-grid.small{grid-template-columns:repeat(10,1fr);gap:14px 10px;margin-bottom:10px}.cat-grid.small .cat i{max-width:70px}.cat-grid.small .cat{font-size:10px;letter-spacing:1.2px}
.cat.on i{box-shadow:0 0 0 3px #fff,0 0 0 6px var(--sea)}.cat.on{color:var(--ink)}
@media(max-width:1100px){.cat-grid.small{grid-template-columns:repeat(5,1fr)}}
.venue-list .none{color:var(--mute);padding:20px 0}
.dir .empty{margin-top:26px;color:var(--mute)}
.search input{min-width:0}

/* prose (migrated page + story content) */
.prose{font-size:17.5px;line-height:1.7;color:var(--text)}
.prose h2,.prose h3,.prose h4{color:var(--sea-dd);margin:30px 0 10px;line-height:1.2}
.prose h2{font-family:var(--cond);font-weight:300;font-size:clamp(28px,3vw,36px);letter-spacing:1.5px}
.prose h3{font-family:var(--caps);font-weight:600;font-size:14px;letter-spacing:2.5px;text-transform:uppercase;color:var(--ink)}
.prose h1{font-family:var(--cond);font-weight:300;font-size:clamp(30px,3.4vw,40px);letter-spacing:2px;color:var(--sea-d);margin:30px 0 10px}
.prose p{margin:0 0 16px}.prose ul,.prose ol{margin:0 0 16px;padding-left:24px}.prose li{margin-bottom:6px}
.prose a{color:var(--sea-dd)}
.prose img{margin:18px auto;border-radius:var(--radius,0)}
.prose figure{margin:18px 0}.prose figcaption{font-size:13.5px;color:var(--mute);text-align:center;margin-top:6px}
.prose blockquote{margin:20px 0;padding:10px 22px;border-left:3px solid var(--sea);font-style:italic;color:var(--ink)}
.prose hr{border:0;border-top:1px solid var(--line);margin:30px 0}
.prose iframe{max-width:100%}
.prose del{color:var(--mute)}
.prose table{border-collapse:collapse;width:100%;margin:16px 0;font-size:15px}.prose td,.prose th{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.wp-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin:20px 0}.wp-gallery img{aspect-ratio:1;object-fit:cover;width:100%;margin:0}
.wp-img{text-align:center}.wp-img img{display:inline-block}
.page main,.page{padding-bottom:40px}
.page-grid{display:grid;gap:40px;padding:20px 0 40px}
.has-sub .page-grid{grid-template-columns:240px 1fr}
.subnav{position:sticky;top:120px;align-self:start;display:flex;flex-direction:column;gap:2px}
.subnav h3{font-size:12px;margin-bottom:10px}
.subnav a{text-decoration:none;padding:9px 12px;border-left:3px solid var(--line);font-size:15px;color:var(--text)}
.subnav a[aria-current=page],.subnav a:hover{border-color:var(--sea);color:var(--sea-dd);background:var(--wash)}
@media(max-width:860px){.has-sub .page-grid{grid-template-columns:1fr}.subnav{position:static;flex-direction:row;flex-wrap:wrap}.subnav h3{width:100%}.subnav a{border-left:0;border-bottom:3px solid var(--line)}}
.banner h1,.banner h2{text-transform:none}
.page .banner,.post .banner,.journal + footer{margin-top:0}

/* forms */
.ask{display:grid;grid-template-columns:1fr 1fr;gap:14px;background:var(--wash);padding:22px;margin-top:18px}
.ask h3,.ask .full,.ask fieldset.full,.ask button,.ask .fine{grid-column:1/-1}
.ask label{display:flex;flex-direction:column;gap:5px;font-family:var(--caps);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--mute)}
.ask label span{display:block}
.ask input,.ask textarea,.ask select{font:inherit;font-family:var(--sans);font-size:16px;letter-spacing:.3px;padding:10px 12px;border:1px solid var(--line);background:#fff;color:var(--ink);width:100%;border-radius:var(--radius,0)}
.ask input:focus,.ask textarea:focus{outline:0;border-color:var(--sea-d);box-shadow:0 0 0 3px rgba(150,194,197,.35)}
.ask fieldset{border:0;padding:0;margin:0;min-width:0}
.ask legend{font-family:var(--caps);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--mute);margin-bottom:8px;padding:0}
.checks{display:flex;flex-wrap:wrap;gap:8px 16px}
.chk{flex-direction:row!important;align-items:center;gap:8px!important;text-transform:none!important;letter-spacing:.3px!important;font-family:var(--sans)!important;font-size:15px!important;color:var(--text)!important}
.chk input{width:auto!important}
.ask .btn{justify-self:start}
.ask .fine{font-size:13.5px;color:var(--mute);margin:0}
.ask .fine.err{color:#b3261e;font-weight:600}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.sent{background:#fff;border:1px solid var(--line);padding:18px;grid-column:1/-1}.sent h3{color:var(--sea-dd)}.sent p{margin-top:8px;font-size:15.5px}
.ok{background:var(--sea-l);padding:12px 16px;color:var(--sea-dd);font-weight:600}
.page-form{margin:10px 0 30px}
@media(max-width:560px){.ask{grid-template-columns:1fr}}

/* footer newsletter */
.sub{grid-column:1/-1}
.sub-row{display:flex;gap:8px;max-width:380px}.sub-row input{flex:1;min-width:0;padding:10px 12px;border:1px solid var(--line);font:inherit;font-size:15px}
.sub .fine{font-size:13px;color:var(--mute);margin-top:6px;min-height:1em}
footer .foot ul li a{text-decoration:none}footer .foot ul li a:hover{text-decoration:underline}
@media(min-width:900px){.foot{grid-template-columns:130px 1fr 1fr 1fr}.sub{grid-column:auto}}

/* vendor profile */
.vendor .v-head{display:grid;grid-template-columns:auto 1fr;gap:30px;align-items:center;padding:30px 0 10px}
.vendor .v-logo{width:180px;height:180px;object-fit:contain;background:#fff;border:1px solid var(--line);padding:12px;border-radius:var(--radius,0)}
.vendor h1{font-family:var(--cond);font-weight:300;font-size:clamp(40px,5vw,64px);letter-spacing:2px;line-height:1.05;color:var(--sea-d);margin:6px 0 10px}
.vendor .v-head .caps{font-size:12px;letter-spacing:3px;color:var(--mute)}.vendor .v-head .caps a{text-decoration:none;color:var(--sea-dd)}
.v-quote{font-size:19px;font-style:italic;color:var(--ink);margin:6px 0 14px;max-width:60ch}.v-quote cite{display:block;font-style:normal;font-size:13.5px;color:var(--mute);margin-top:4px}
.vendor .acts{display:flex;flex-wrap:wrap;gap:10px}
.v-grid{display:grid;grid-template-columns:1fr 360px;gap:50px;padding:20px 0 50px;align-items:start}
.v-h{margin-top:36px!important}.v-h:first-child{margin-top:10px!important}
.v-side{display:grid;gap:18px;position:sticky;top:130px}
.v-card{background:var(--wash);padding:22px 24px;border-top:3px solid var(--sea)}
.v-card h3{font-size:12px;letter-spacing:2.5px;margin-bottom:10px}
.v-card p{margin:6px 0;font-size:15.5px;overflow-wrap:anywhere}.v-card a{color:var(--sea-dd)}
.v-card .ask{padding:0;margin-top:10px;background:none;grid-template-columns:1fr}
.socials a{display:inline-block;margin:6px 10px 0 0;font-family:var(--caps);font-size:11.5px;letter-spacing:1.5px;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--sea)}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin:12px 0}
.gallery a{display:block;aspect-ratio:1;overflow:hidden;background:var(--sea-l)}.gallery img{width:100%;height:100%;object-fit:cover;margin:0;transition:transform .3s}.gallery a:hover img{transform:scale(1.04)}
.v-videos{display:grid;gap:18px;margin:12px 0}.v-video{margin:0}.v-video iframe,.v-video video{display:block;width:100%;aspect-ratio:16/9;height:auto;border:0;background:#000;border-radius:var(--radius,0)}.v-video figcaption{font-size:14px;color:var(--mute);margin-top:6px}
/* self-hosted clips keep their own shape (portrait reels stay portrait, centred) instead of a 16:9 letterbox */
.v-video.file video{aspect-ratio:auto;width:auto;max-width:100%;max-height:560px;margin:0 auto}
/* member gallery: large stage + filmstrip, like the old site's slideshow galleries. Arrows / swipe / keyboard move one photo at a time; the stage opens the full-screen lightbox (Sarah, Oct 21) */
.v-grid>*{min-width:0}   /* the filmstrip must scroll inside the column, never widen it */
.gshow{margin:12px 0 6px;max-width:100%}
.gs-stage{position:relative;aspect-ratio:3/2;background:var(--sea-l);overflow:hidden;border-radius:var(--radius,0)}
.gs-stage .gs-main{display:block;width:100%;height:100%;cursor:zoom-in}
.gs-stage .gs-main img{width:100%;height:100%;object-fit:contain;margin:0;transition:opacity .3s}
.gs-stage.fade .gs-main img{opacity:0}
.gs-stage.loading::after{content:'';position:absolute;left:50%;top:50%;width:34px;height:34px;margin:-17px 0 0 -17px;border:3px solid rgba(255,255,255,.7);border-top-color:var(--sea-d);border-radius:50%;animation:gs-spin .8s linear infinite;pointer-events:none}
@keyframes gs-spin{to{transform:rotate(360deg)}}
.gs-prev,.gs-next{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.85);color:var(--sea-d);font-size:28px;line-height:1;display:grid;place-items:center;box-shadow:0 2px 10px rgba(0,0,0,.18);cursor:pointer;padding:0}
.gs-prev{left:12px}.gs-next{right:12px}.gs-prev:hover,.gs-next:hover{background:#fff}
.gs-count{position:absolute;right:12px;bottom:10px;font-size:12px;letter-spacing:1px;background:rgba(10,20,20,.55);color:#fff;padding:3px 9px;border-radius:12px}
.gs-strip{display:flex;gap:6px;overflow-x:auto;scroll-snap-type:x proximity;padding:8px 0 4px;scrollbar-width:thin}
.gs-strip a{flex:0 0 96px;aspect-ratio:4/3;overflow:hidden;background:var(--sea-l);scroll-snap-align:center;opacity:.6;transition:opacity .2s;border:2px solid transparent}
.gs-strip a img{width:100%;height:100%;object-fit:cover;margin:0}
.gs-strip a.on,.gs-strip a:hover{opacity:1}.gs-strip a.on{border-color:var(--sea)}
@media(max-width:600px){.gs-strip a{flex-basis:72px}.gs-prev,.gs-next{width:38px;height:38px;font-size:24px}}
.v-related{padding:0 0 50px}.v-related h2{font-size:14px;letter-spacing:3px;margin-bottom:0}
.posts.mini{grid-template-columns:repeat(2,1fr);gap:20px}
@media(max-width:980px){.v-grid{grid-template-columns:1fr}.v-side{position:static}}
@media(max-width:600px){.vendor .v-head{grid-template-columns:1fr;gap:16px}.vendor .v-logo{width:120px;height:120px}.posts.mini{grid-template-columns:1fr}}
.lightbox{border:0;background:rgba(10,20,20,.94);max-width:100vw;max-height:100vh;width:100vw;height:100vh;padding:0;margin:0;display:none;place-items:center}
.lightbox[open]{display:grid}
.lightbox::backdrop{background:transparent}
.lightbox img{max-width:94vw;max-height:92vh;object-fit:contain;box-shadow:0 10px 60px rgba(0,0,0,.5)}
.lightbox button{position:absolute;color:#fff;font-size:34px;width:56px;height:56px;display:grid;place-items:center;background:rgba(255,255,255,.08)}
.lightbox .x{top:14px;right:14px}.lightbox .prev{left:10px;top:50%;transform:translateY(-50%)}.lightbox .next{right:10px;top:50%;transform:translateY(-50%)}

/* blog */
.blog-nav{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 30px}
.blog-nav .chip{font-family:var(--caps);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;padding:7px 13px;border:1px solid var(--line);text-decoration:none;color:var(--text);border-radius:var(--radius,0)}
.blog-nav .chip.on,.blog-nav .chip:hover{background:var(--sea);border-color:var(--sea);color:#fff}
.blog-nav .chip-cta{background:var(--sea-dd);border-color:var(--sea-dd);color:#fff;font-weight:700}.blog-nav .chip-cta:hover{background:var(--sea);border-color:var(--sea)}
.posts .in time{display:block}
.pager{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:40px;color:var(--mute)}
.post article{padding-bottom:30px}
.post h1{font-family:var(--cond);font-weight:300;font-size:clamp(34px,4.6vw,58px);letter-spacing:2px;line-height:1.08;color:var(--sea-d);margin:8px 0 22px}
.post-meta{font-size:12px;letter-spacing:2.5px;color:var(--mute);margin-top:26px}.post-meta a{text-decoration:none;color:var(--sea-dd)}
.post .cover{margin:0 0 30px}.post .cover img{width:100%;max-height:620px;object-fit:cover}
.featured{margin-top:40px;border-top:1px solid var(--line);padding-top:10px}.featured h2{font-size:13px;letter-spacing:3px;margin-top:20px}
.prevnext{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:50px 0 20px;border-top:1px solid var(--line);padding-top:24px}
.prevnext a{text-decoration:none;color:var(--ink);font-family:var(--cond);font-size:22px;letter-spacing:.5px;line-height:1.2}.prevnext a.r{text-align:right}
.prevnext small{display:block;font-family:var(--caps);font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--mute);margin-bottom:4px}
.journal.related{background:var(--wash)}
.team-list li .small{font-size:13px;color:var(--sea-dd);margin-right:8px}
.team-empty+.btn{margin-top:14px}

/* ---------- Twiggy, the concierge ---------- */
.tw{position:fixed;right:18px;bottom:18px;z-index:900;font-family:var(--sans);letter-spacing:0}
.tw[hidden]{display:block}
.tw-fab{display:flex;align-items:center;gap:8px;padding:6px 16px 6px 6px;border:0;border-radius:99px;background:#fff;color:var(--sea-dd);font:700 15px var(--sans);box-shadow:0 6px 24px rgba(31,60,62,.22),0 0 0 2px var(--sea-l);cursor:pointer;transition:transform .2s,box-shadow .2s}
.tw-fab:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(31,60,62,.28),0 0 0 2px var(--sea)}
.tw-fab img{width:40px;height:40px;border-radius:50%;background:var(--wash)}
.tw-panel{display:none;position:absolute;right:0;bottom:64px;width:min(390px,calc(100vw - 36px));height:min(600px,calc(100vh - 110px));background:#fff;border-radius:18px;box-shadow:0 18px 60px rgba(31,60,62,.28);overflow:hidden;flex-direction:column;animation:twin .25s ease}
.tw.open .tw-panel{display:flex}.tw.open .tw-fab span{display:none}
@keyframes twin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.tw-head{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--sea-l);border-bottom:1px solid var(--line)}
.tw-head img{width:36px;height:36px;border-radius:50%;background:#fff}
.tw-head b{display:block;font:700 16px var(--caps);color:var(--ink);letter-spacing:.5px}.tw-head small{display:block;color:var(--mute);font-size:12.5px;margin-top:1px}
.tw-x{margin-left:auto;border:0;background:transparent;color:var(--mute);font-size:26px;line-height:1;cursor:pointer;padding:0 4px}.tw-x:hover{color:var(--ink)}
.tw-log{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth}
.tw-m{max-width:88%;padding:10px 13px;border-radius:14px;font-size:15px;line-height:1.5;color:var(--ink);word-wrap:break-word}
.tw-m p{margin:0 0 8px}.tw-m p:last-child{margin:0}.tw-m ul{margin:4px 0 6px 18px;padding:0}.tw-m li{margin:3px 0}.tw-m a{color:var(--sea-dd);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.tw-bot{align-self:flex-start;background:var(--wash);border-bottom-left-radius:4px}
.tw-you{align-self:flex-end;background:var(--sea);color:#fff;border-bottom-right-radius:4px}
.tw-m.tw-err{background:#fdf0ee;color:#8a3b2f}
.tw-chips{display:flex;flex-wrap:wrap;gap:6px}.tw-chips button{border:1px solid var(--sea);background:#fff;color:var(--sea-dd);border-radius:99px;padding:6px 12px;font:600 13px var(--sans);cursor:pointer}.tw-chips button:hover{background:var(--sea-l)}
.tw-typing{align-self:flex-start;display:flex;gap:4px;padding:12px 14px}.tw-typing i{width:7px;height:7px;border-radius:50%;background:var(--sea-d);animation:twb 1s infinite}.tw-typing i:nth-child(2){animation-delay:.15s}.tw-typing i:nth-child(3){animation-delay:.3s}
@keyframes twb{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.tw-form{display:flex;gap:8px;align-items:flex-end;padding:10px 12px;border-top:1px solid var(--line)}
.tw-form textarea{flex:1;resize:none;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:15px/1.4 var(--sans);color:var(--ink);max-height:120px;outline:none}.tw-form textarea:focus{border-color:var(--sea)}
.tw-send{width:42px;height:42px;border:0;border-radius:50%;background:var(--sea);color:#fff;display:grid;place-items:center;cursor:pointer;flex:none}.tw-send svg{width:20px;height:20px}.tw-send:disabled{opacity:.5;cursor:default}.tw-send:hover:not(:disabled){background:var(--sea-d)}
.tw-fine{margin:0;padding:0 14px 10px;font-size:11.5px;color:var(--mute);text-align:center}
@media (max-width:480px){.tw{right:12px;bottom:12px}.tw-panel{bottom:60px;height:calc(100vh - 90px);height:calc(100dvh - 90px)}.tw-fab span{font-size:14px}}
@media print{.tw{display:none}}
/* ---------- vendor directory: big category tiles (as on the previous site) ---------- */
.cat-grid.tiles{grid-template-columns:repeat(3,1fr);gap:44px 30px;max-width:900px;margin:10px auto 0}
.cat-grid.tiles .cat{text-decoration:none;gap:16px;font-size:14px;letter-spacing:3px;color:var(--sea-d)}
.cat-grid.tiles .cat i{max-width:200px;width:100%;box-shadow:none}
.cat-grid.tiles .cat:hover{color:var(--sea-dd)}
.cat-grid.tiles .cat small{font-size:12.5px;letter-spacing:.5px}
.dir-intro{max-width:900px;margin:54px auto 10px;padding-top:34px;border-top:1px solid var(--line);font-size:16.5px;color:var(--text)}
.twig-band{margin-top:50px}
@media(max-width:700px){.cat-grid.tiles{grid-template-columns:repeat(2,1fr);gap:30px 18px}.cat-grid.tiles .cat{font-size:12px;letter-spacing:2px}}
/* ---------- category page: one column of members + directory sidebar ---------- */
.cat-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:clamp(28px,5vw,70px);align-items:start;margin-top:10px}
.roll.one{grid-template-columns:1fr}
.roll.one li{grid-template-columns:230px 1fr;gap:34px;padding:34px 0;border-bottom:1px solid var(--line)}
.roll.one .vlogo{width:230px;height:230px}
.roll.one h4{font-size:18px}
.roll.one blockquote{margin-top:12px;font-size:16.5px;line-height:1.65;color:var(--text)}
.roll.one blockquote p{margin:0 0 10px}.roll.one blockquote p:last-of-type{margin:0}
.roll.one blockquote cite{margin-top:8px}
.roll blockquote p{margin:0}
.cat-side{position:sticky;top:110px}
.cat-side .script{font-family:var(--script);font-weight:400;font-size:34px;color:var(--mute);margin:6px 0 14px;letter-spacing:0;text-transform:none}
.cat-side-list{list-style:none;background:var(--taupe);padding:18px 22px}
.cat-side-list li{border-bottom:1px solid rgba(0,0,0,.08)}.cat-side-list li:last-child{border:0}
.cat-side-list a{display:block;padding:9px 0;font-family:var(--caps);font-weight:600;font-size:11px;letter-spacing:2px;text-transform:uppercase;text-decoration:underline;text-underline-offset:3px;color:var(--ink)}
.cat-side-list a:hover,.cat-side-list a.on{color:var(--sea-dd)}
.cat-side-list a.on{text-decoration:none}
@media(max-width:900px){.cat-layout{grid-template-columns:1fr}.cat-side{position:static}.cat-side-list{columns:2;column-gap:30px}.cat-side-list li{break-inside:avoid}}
@media(max-width:640px){.roll.one li{grid-template-columns:1fr;gap:16px}.roll.one .vlogo{width:170px;height:170px}}
/* the directory tiles never become a horizontal strip on phones (overrides the home-page category rail) */
@media(max-width:700px){section.dir .cat-grid.tiles{display:grid;grid-auto-flow:row;grid-template-columns:repeat(2,1fr);overflow:visible;padding:0;margin-left:0;margin-right:0;scroll-snap-type:none}section.dir .cat-grid.tiles .cat{width:auto;min-width:0;flex:none;scroll-snap-align:none}section.dir .cat-grid.tiles .cat i{max-width:160px}}
/* ---------- story blocks (newsletter-style): figures, GIFs, buttons, photo+text, member cards, callouts ---------- */
.prose figure.img{margin:26px 0;text-align:center}.prose figure.img img{display:block;max-width:100%;height:auto;margin:0 auto}.prose figure.img figcaption:empty{display:none}
.prose p.cta{text-align:center;margin:26px 0}.prose p.cta .btn{text-decoration:none}
.prose .cols2{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:center;margin:26px 0}.prose .cols2 figure.img{margin:0}.prose .cols2 h3{margin-top:0}
.prose .mcard{display:flex;gap:18px;align-items:center;padding:18px 20px;margin:26px 0;background:var(--wash);border:1px solid var(--line)}.prose .mcard img{width:84px;height:84px;object-fit:contain;background:#fff;border:1px solid var(--line);padding:6px;margin:0;flex:none}.prose .mcard b{display:block;font-family:var(--caps);font-weight:600;font-size:13.5px;letter-spacing:2px;text-transform:uppercase;color:var(--sea-dd)}.prose .mcard p{margin:4px 0 6px;font-size:15.5px}.prose .mcard a{font-weight:700;color:var(--sea-dd)}
.prose .callout{padding:16px 20px;margin:26px 0;background:var(--sea-l);border-left:4px solid var(--sea)}.prose .callout p{margin:0}
.prose blockquote cite{display:block;font-style:normal;font-size:14px;color:var(--mute);margin-top:6px}
.prose hr{border:0;border-top:1px solid var(--line);margin:34px auto;width:60%}
.prose p.credit{font-size:14px;color:var(--mute);margin:-6px 0 22px}.prose p.credit a{color:var(--sea-dd)}
@media(max-width:640px){.prose .cols2{grid-template-columns:1fr;gap:14px}.prose .mcard{flex-direction:column;align-items:flex-start}}

/* home: members map (left) → who's-there panel (right) */
.where-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);gap:clamp(24px,4vw,56px);align-items:start}
.where .place-tabs{justify-content:center;margin-top:18px}
.chip:hover{background:var(--sea-l)}.chip[aria-pressed="true"]:hover{background:var(--sea-dd)}
.area-box{position:sticky;top:96px;max-height:calc(100vh - 120px);overflow:auto;background:#fff;border:1px solid var(--line);box-shadow:0 24px 60px rgba(46,95,99,.12);padding:0 0 18px;scrollbar-width:thin}
.area-box::before{content:"";display:block;height:6px;background:linear-gradient(90deg,var(--sea-dd),var(--sea),var(--sea-l))}
.area-head{padding:20px 24px 14px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--wash),#fff)}
.area-kicker{display:block;font-size:11px;letter-spacing:3px;color:var(--sea-d)}
.area-head h3{font-family:var(--script);font-weight:400;font-size:clamp(34px,3.4vw,46px);line-height:1.05;color:var(--sea-dd);margin-top:2px}
.area-head p{color:var(--mute);font-size:14px;margin:6px 0 0}
.area-box.idle{display:grid;align-content:center;min-height:360px;text-align:center;background:radial-gradient(circle at 50% 30%,#fff 0,var(--wash) 70%)}
.area-box.idle .area-head{border:0;background:none;padding:30px 24px}
.area-box.idle .area-head h3{font-size:clamp(30px,3vw,40px)}
@keyframes spin{to{transform:rotate(360deg)}}
.agroup{padding:12px 24px 0}
.agroup h4{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:3px;color:var(--sea-d);margin:8px 0 2px}
.agroup h4::after{content:"";flex:1;height:1px;background:var(--line)}
.alist{list-style:none}
.arow{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:7px 0;border-bottom:1px dashed #e3ebeb;animation:arow .35s both;animation-delay:calc(var(--i,0)*22ms)}
.arow:last-child{border-bottom:0}
@keyframes arow{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}
.arow .vlogo{width:42px;height:42px;padding:3px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.arow .vlogo img{border-radius:50%}
.arow .vlogo span{font-family:var(--cond);font-size:20px;color:var(--sea-dd)}
.ainfo{min-width:0}
.aname{display:block;font-family:var(--caps);font-weight:600;font-size:12.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aname:hover{color:var(--sea-dd)}
.ameta{display:block;font-size:12px;color:var(--mute);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aacts{display:flex;gap:6px}
.ico{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1.5px var(--sea);color:var(--sea-dd);text-decoration:none;font:600 15px var(--sans);cursor:pointer;transition:background .15s,color .15s}
.ico:hover{background:var(--sea-l)}
.ico i{font-style:normal;line-height:1}
.ico.add span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ico.add i::before{content:"+"}
.ico.add[aria-pressed="true"]{background:var(--sea-dd);color:#fff;box-shadow:none}
.ico.add[aria-pressed="true"] i::before{content:"✓"}
@media(prefers-reduced-motion:reduce){.arow{animation:none}}
@media(max-width:900px){.where-grid{grid-template-columns:1fr}.area-box{position:static;max-height:none}.area-box.idle{min-height:200px}}


/* events (gatherings) */
.events{padding-top:clamp(30px,4vw,50px)}
.ev-intro{margin-bottom:30px}
.ev-list{list-style:none;margin-top:14px}
.ev{display:grid;grid-template-columns:84px 1fr;gap:22px;padding:24px 0;border-bottom:1px solid var(--line)}
.ev.past{opacity:.75}
.ev-date{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--sea-l);color:var(--sea-dd);text-decoration:none;padding:10px 6px;line-height:1}
.ev-date b{font-family:var(--cond);font-weight:400;font-size:40px}.ev-date span{font-family:var(--caps);font-size:12px;letter-spacing:2px;text-transform:uppercase;margin-top:4px}.ev-date small{font-size:11px;color:var(--mute);margin-top:4px}
.ev h3{font-family:var(--cond);font-weight:400;font-size:clamp(22px,2.4vw,28px);letter-spacing:.5px;line-height:1.15}.ev h3 a{text-decoration:none;color:var(--sea-dd)}.ev h3 a:hover{text-decoration:underline}
.ev-meta{margin-top:4px;color:var(--mute);font-size:15px}.ev-speaker{margin-top:4px;font-size:15.5px}
.ev .acts{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:12px}.ev .acts .fine{margin:0}
.ev-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:clamp(24px,5vw,70px);align-items:start}
.ev-facts{display:grid;gap:14px;margin:18px 0 26px;padding:20px 22px;background:var(--wash);border-left:3px solid var(--sea)}
.ev-facts div{display:grid;grid-template-columns:90px 1fr;gap:10px}.ev-facts dt{font-family:var(--caps);font-size:11.5px;letter-spacing:2px;text-transform:uppercase;color:var(--sea-d);padding-top:3px}.ev-facts dd{font-size:15.5px}
.ev-side{position:sticky;top:90px}
.ev-form,.ev-closed{background:#fff;border:1px solid var(--line);padding:22px}
.ev-form h3,.ev-closed h3{margin-bottom:12px;font-size:14px;letter-spacing:3px;color:var(--sea-dd)}
.ev-count{text-align:center;margin-top:10px;color:var(--mute)}
.gather a{color:inherit;text-decoration:none}.gather a:hover{text-decoration:underline}
@media(max-width:900px){.ev-grid{grid-template-columns:1fr}.ev-side{position:static}}
@media(max-width:520px){.ev{grid-template-columns:64px 1fr;gap:14px}.ev-date b{font-size:30px}.ev-facts div{grid-template-columns:1fr}}

/* repeating rows (references) in forms */
form.ask fieldset.rows{display:grid;gap:6px}
form.ask fieldset.rows legend small{font-weight:400;color:var(--mute);margin-left:6px}
.rows-head,.rows-row{display:grid;grid-template-columns:repeat(var(--cols,3),1fr);gap:6px}
.rows-head span{font-size:11.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--sea-d);font-family:var(--caps)}
.rows-row input{padding:8px 10px!important;font-size:14.5px}
.rows-row:nth-child(n+3) input[data-req]{background:#fff}
@media(max-width:640px){.rows-head{display:none}.rows-row{grid-template-columns:1fr 1fr;padding:8px 0;border-bottom:1px dashed var(--line)}}

/* banner without a photo (editor: "show photo" off) */
.banner-plain{padding:clamp(34px,5vw,56px) 0 0;text-align:center}
.banner-plain h1,.banner-plain h2{font-size:clamp(20px,2.6vw,28px);letter-spacing:5px;color:var(--sea-dd)}
.banner-plain p{max-width:720px;margin:10px auto 0;color:var(--mute);font-size:16px}

/* gathering page: speaker photo beside the write-up */
.speaker-pic{float:right;width:min(220px,40%);margin:0 0 14px 22px;border-radius:8px;overflow:hidden;box-shadow:0 10px 30px rgba(46,95,99,.15)}
.speaker-pic img{display:block;width:100%;height:auto}
@media(max-width:520px){.speaker-pic{float:none;width:70%;margin:0 auto 16px}}

/* "what it takes" block inside a page */
.vet-inline{margin:18px 0 10px}
.vet-inline .vet{padding:clamp(28px,4vw,48px) 0;background:var(--wash)}
.vet-inline .vet .wrap{padding:0 clamp(18px,3vw,40px)}
.vet-inline .vet h2{margin-top:0}
.prose .speaker-pic{float:right;width:min(220px,40%);margin:0 0 14px 22px}
.prose .speaker-pic img{margin:0;border-radius:8px}

/* form errors spelled out (apply form) */
.ask .bad input,.ask .bad textarea,.ask .bad select,.ask label.bad input{outline:2px solid #b3261e;outline-offset:1px}.ask fieldset.bad{outline:2px solid #b3261e;outline-offset:6px;border-radius:4px}
/* story photo gallery */
.post-gallery{margin-top:38px}.post-gallery .gallery{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
/* events archive: one dedicated space per past gathering */
.ev-archive-lede{color:var(--mute);margin:6px 0 10px;max-width:60ch}
.ev-archive{margin-top:0}
.ev-recap{display:block;padding:34px 0 30px;border-bottom:1px solid var(--line)}
.ev-recap-head{display:grid;grid-template-columns:150px 1fr;gap:22px;align-items:center}
.ev-recap-head:has(> div:only-child){grid-template-columns:1fr}
.ev-recap-pic{display:block;width:150px;height:150px;border-radius:50%;overflow:hidden;background:var(--sea-l);box-shadow:0 10px 30px rgba(46,95,99,.15)}.ev-recap-pic img{width:100%;height:100%;object-fit:cover;display:block;margin:0}
.ev-recap-k{color:var(--mute);font-size:12px}
.ev-recap h3{font-family:var(--cond);font-weight:400;font-size:clamp(24px,2.6vw,30px);letter-spacing:.5px;line-height:1.15;margin-top:4px}.ev-recap h3 a{text-decoration:none;color:var(--sea-dd)}.ev-recap h3 a:hover{text-decoration:underline}
.ev-recap-body{margin-top:18px;font-size:16px}.ev-recap-body h3,.ev-recap-body h2{font-size:17px;margin-top:18px}.ev-recap-body .speaker-pic{display:none}
.ev-recap-gal{grid-template-columns:repeat(4,1fr);margin-top:18px}
.ev-recap-more{margin-top:14px}
@media(max-width:560px){.ev-recap-head{grid-template-columns:96px 1fr;gap:14px}.ev-recap-pic{width:96px;height:96px}.ev-recap-gal{grid-template-columns:repeat(3,1fr)}}
.anote{font-size:13.5px;color:var(--mute);margin:-2px 0 8px}
.ask .why{display:block;color:#b3261e;font-size:13.5px;font-style:normal;font-weight:600;margin-top:6px}
/* About section pages (Oct 21 2026): partner cards on /community-partners/, press entries on /press/, onward buttons on /about/ */
.prose .partner{display:grid;grid-template-columns:200px 1fr;gap:26px;align-items:start;padding:24px 26px;margin:26px 0;background:var(--wash);border:1px solid var(--line)}
.prose .partner-logo{display:flex;align-items:center;justify-content:center;min-height:110px;padding:14px;background:#fff;border:1px solid var(--line)}
.prose .partner-logo img{margin:0;max-width:100%;max-height:120px;width:auto;height:auto;object-fit:contain;border-radius:0}
.prose .partner-logo span{font-family:var(--cond);font-weight:300;font-size:34px;letter-spacing:3px;color:var(--sea-dd)}
.prose .partner h3,.prose .press h3{font-family:var(--cond);font-weight:300;font-size:26px;letter-spacing:.5px;text-transform:none;color:var(--sea-dd);margin:0 0 8px}
.prose .partner p{font-size:16px;margin:0 0 12px}.prose .partner p:last-child{margin-bottom:0}
.prose .partner-link a,.prose .press-link a{font-weight:700;color:var(--sea-dd)}
.prose .press{display:grid;grid-template-columns:1fr;gap:6px;padding:22px 0;margin:0;border-top:1px solid var(--line)}
.prose .press.lead{grid-template-columns:220px 1fr;gap:28px;align-items:center;padding:28px 26px;margin:10px 0 26px;background:var(--wash);border:1px solid var(--line)}
.prose .press-logo{display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);padding:14px}
.prose .press-logo img{margin:0;max-width:100%;max-height:150px;width:auto;height:auto;border-radius:0}
.prose .press-pub{display:block;font-family:var(--caps);font-weight:600;font-size:12.5px;letter-spacing:2.5px;text-transform:uppercase;color:var(--ink);margin-bottom:6px}
.prose .press-meta{font-size:14px;color:var(--mute);margin:0 0 10px}
.prose .press p{margin:0 0 10px}.prose .press-link{margin-top:4px}
.prose p.cta .btn{margin:4px 6px}
@media(max-width:700px){.prose .partner,.prose .press.lead{grid-template-columns:1fr;gap:16px}.prose .partner-logo{min-height:0}}
/* TWIG logo at the top of the Membership pages (Code of Ethics, Mission & Values…): trimmed PNG, no extra space above or below (Sarah, Oct 21) */
.prose .page-logo{text-align:center;margin:0 0 18px;line-height:0}.prose .page-logo img{display:inline-block;margin:0;width:220px;max-width:60%;height:auto;border-radius:0}

/* photo sizes chosen in the back-office editor (Small / Medium / Large), centered; phones widen the small ones */
.prose img.sz-s,.prose img.sz-m,.prose img.sz-l{display:block;height:auto;margin-left:auto;margin-right:auto}
.prose img.sz-s{width:33%;max-width:33%}.prose img.sz-m{width:60%;max-width:60%}.prose img.sz-l{width:100%;max-width:100%}
@media(max-width:700px){.prose img.sz-s{width:60%;max-width:60%}.prose img.sz-m{width:85%;max-width:85%}}
