:root{
  --ink:#12211A; --ink-2:#3E5147; --ink-3:#6B7D73;
  --g900:#0C2318; --g800:#12331F; --g700:#1B5E3F; --g300:#9CC4AC;
  --gold:#B98B2E; --gold-2:#E4C77A;
  --cream:#FAF7F0; --paper:#FFFFFF; --line:#E3DDD0;
  --r:16px; --maxw:1180px;
  --shadow:0 1px 2px rgba(12,35,24,.05), 0 10px 30px rgba(12,35,24,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);
  font:16px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3,.serif{font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;font-weight:600;letter-spacing:-.015em;line-height:1.12;margin:0}
h1{font-size:clamp(2.3rem,5vw,3.9rem)}
h2{font-size:clamp(1.75rem,3.2vw,2.6rem)}
h3{font-size:1.16rem;line-height:1.3}
p{margin:0 0 1rem}
a{color:inherit}
img{max-width:100%}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.eyebrow{font-size:.95rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--gold)}
.lede{font-size:1.14rem;color:var(--ink-2);max-width:62ch}
.note{font-size:.82rem;color:var(--ink-3)}
.center{margin-left:auto;margin-right:auto;text-align:center}
.center .lede{margin-left:auto;margin-right:auto}

/* ---------- logo ---------- */
.ggg-logo{height:84px;width:auto;display:block}
.logo .ggg-logo{height:38px}
.ggg-mark{height:22px;width:auto;display:block}
.logo-word{font-family:Montserrat,"Segoe UI",Helvetica,Arial,sans-serif;font-weight:700;font-size:.92rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--g800)}
@media(max-width:420px){.ggg-mark{height:18px}.logo-word{font-size:.8rem}}
.mark{width:32px;height:32px;border-radius:9px;background:linear-gradient(150deg,var(--g700),var(--g900));display:grid;place-items:center;color:var(--gold-2);font-size:.95rem}
.wordmark{font-family:Georgia,serif;font-weight:600;font-size:.95rem;color:var(--g700);text-align:center;line-height:1.25;letter-spacing:-.01em;padding:6px}

/* ---------- nav ---------- */
header{position:sticky;top:0;z-index:60;background:rgba(250,247,240,.82);backdrop-filter:blur(16px);border-bottom:1px solid transparent;transition:.25s}
body.scrolled header{border-bottom-color:var(--line);background:rgba(250,247,240,.95)}
.nav{display:flex;align-items:center;gap:14px;height:78px}
.logo{display:flex;align-items:center;gap:9px;font-family:Georgia,serif;font-weight:600;font-size:.98rem;text-decoration:none;white-space:nowrap}
nav.links{display:flex;gap:2px;margin-left:auto;align-items:center;flex-wrap:wrap}
nav.links button{background:none;border:0;font:inherit;font-size:.865rem;color:var(--ink-2);padding:8px 10px;border-radius:9px;cursor:pointer;transition:.15s;white-space:nowrap}
nav.links button:hover{background:rgba(27,94,63,.08);color:var(--ink)}
nav.links button[aria-current="true"]{background:var(--g900);color:#fff}
.nav-cta{margin-left:6px;padding:10px 16px!important;font-size:.85rem!important;white-space:nowrap}
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;border-radius:999px;border:1px solid transparent;
  font-weight:600;font-size:.95rem;text-decoration:none;cursor:pointer;transition:.18s}
.btn-primary{background:var(--gold);color:#1b1405}
.btn-primary:hover{background:#a97d24;transform:translateY(-1px)}
.btn-ghost{border-color:rgba(255,255,255,.36);color:#fff;backdrop-filter:blur(6px)}
.btn-ghost:hover{background:rgba(255,255,255,.12)}
.btn-dark{background:var(--g900);color:#fff}
.btn-dark:hover{background:var(--g700);transform:translateY(-1px)}
.menu-toggle{display:none}

/* ---------- hero / page hero / bands ---------- */
.hero,.page-hero,.band{position:relative;color:#fff;overflow:hidden;isolation:isolate}
.hero:before,.page-hero:before,.band:before{content:"";position:absolute;inset:0;z-index:-2;
  background-image:var(--bg);background-size:cover;background-position:center;transform:scale(1.06)}
.hero:after,.page-hero:after,.band:after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(120deg,rgba(9,28,18,.94) 0%,rgba(12,35,24,.86) 45%,rgba(18,51,31,.7) 100%)}
.hero{padding:96px 0 104px}
/* faded bottle-glass background on the home hero: photo kept faint under a deep green wash */
.hero-glass:before{background-size:cover;background-repeat:no-repeat;background-position:center;opacity:.34;filter:saturate(.9) blur(1px)}
.hero-glass{background:linear-gradient(160deg,#0C2318 0%,#12331F 55%,#1B4A32 100%)}
.hero-glass:after{background:linear-gradient(100deg,rgba(12,35,24,.92) 0%,rgba(12,35,24,.72) 45%,rgba(12,35,24,.35) 100%)}
.hero h1{max-width:17ch}
.hero .accent{color:var(--gold-2)}
.hero .lede{color:#D9E7DE;margin-top:24px;font-size:1.2rem}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:36px}
.page-hero{padding:74px 0 78px}
.page-hero .lede{color:#D0E2D7}
.band{padding:82px 0}
.band .lede{color:#C6D9CD}

/* ---------- sections ---------- */
section{padding:78px 0}
.sec-head{max-width:66ch;margin-bottom:38px}
.sec-head h2{margin:10px 0 14px}
.grid{display:grid;gap:22px}
.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:26px;box-shadow:var(--shadow)}
.card h3{margin-bottom:9px}
.card p{color:var(--ink-2);font-size:.95rem;margin:0}
.ico{width:40px;height:40px;border-radius:11px;background:#EFF4F0;display:grid;place-items:center;margin-bottom:16px;color:var(--g700)}
.alt{background:var(--paper);border-block:1px solid var(--line)}
.dark{background:linear-gradient(170deg,#0C2318,#123522);color:#fff}
.dark p,.dark .lede{color:#C3D6C9}
.dark .eyebrow{color:var(--gold-2)}
.dark .ggg-logo{margin:0 auto;height:76px}

.photo-card{padding:0;overflow:hidden;display:flex;flex-direction:column;transition:.22s}
.photo-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(12,35,24,.14)}
.photo-card .ph{height:150px;background-size:cover;background-position:center;transition:.4s;
  background-color:#12331F;
  background-image:linear-gradient(140deg,rgba(27,94,63,.9),rgba(12,35,24,.95)),var(--ph,none);
  background-blend-mode:normal}
.photo-card:hover .ph{transform:scale(1.05)}
.photo-card.wide .ph{height:190px}
.pc-body{padding:24px}

.split{padding:0}
.split .wrap{padding-block:78px}
.split-img{min-height:340px;border-radius:var(--r);background-size:cover;background-position:center;box-shadow:var(--shadow);
  background-color:#12331F}
.split-img.tall{min-height:440px}
.figure{height:250px;border-radius:var(--r);background-size:cover;background-position:center;box-shadow:var(--shadow);
  background-color:#12331F}

/* ---------- counters ---------- */
.counter-band{background:var(--cream)}
.counters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.counter{background:var(--paper);padding:30px 24px;text-align:center}
.cv{font-family:Georgia,serif;font-size:clamp(2rem,3.4vw,2.7rem);line-height:1;color:var(--g700);font-variant-numeric:tabular-nums}
.cl{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-top:12px;font-weight:600}

/* ---------- marquee ---------- */
.marquee{overflow:hidden;padding:14px 0;mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.mq-track{display:flex;gap:26px;width:max-content;animation:mq 62s linear infinite}
.marquee:hover .mq-track{animation-play-state:paused}
@keyframes mq{to{transform:translateX(-50%)}}
.mq-item{width:130px;height:96px;background:var(--paper);border:1px solid var(--line);border-radius:14px;
  display:grid;place-items:center;padding:14px;flex:0 0 auto;filter:grayscale(1);opacity:.72;transition:.25s}
.mq-item:hover{filter:none;opacity:1;transform:translateY(-3px);box-shadow:var(--shadow)}
.mq-item img{max-height:66px;max-width:100%;object-fit:contain}

/* ---------- logo wall ---------- */
.logo-wall{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
@media(max-width:1000px){.logo-wall{grid-template-columns:repeat(4,1fr)}}
@media(max-width:680px){.logo-wall{grid-template-columns:repeat(3,1fr)}}
@media(max-width:420px){.logo-wall{grid-template-columns:repeat(2,1fr)}}
.lw-cell{background:var(--paper);height:142px;display:grid;place-items:center;padding:18px;transition:.2s}
.lw-cell:hover{background:#F5F9F6}
.lw-cell img{max-height:66px;max-width:88%;object-fit:contain;filter:grayscale(1);opacity:.75;transition:.25s}
.lw-cell img.lw-big{max-height:100px;max-width:96%}
.wm-big{font-size:1.15rem}
.lw-cell:hover img{filter:none;opacity:1}

/* ---------- chips ---------- */
.chips{display:flex;flex-wrap:wrap;gap:9px}
.chip{border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:8px 15px;font-size:.87rem;color:var(--ink-2);text-decoration:none}
.dark .chip{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.18);color:#DCE9E0}
.filters{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-bottom:18px}
.filters button{border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:9px 16px;font:inherit;font-size:.88rem;color:var(--ink-2);cursor:pointer;transition:.14s}
.filters button:hover{border-color:var(--g300)}
.filters button[aria-pressed="true"]{background:var(--g900);color:#fff;border-color:var(--g900)}
.search{flex:1;min-width:220px;border:1px solid var(--line);border-radius:999px;padding:10px 18px;font:inherit;font-size:.9rem;background:var(--paper)}
.search:focus{outline:2px solid var(--g300);outline-offset:1px}

/* ---------- brand cards ---------- */
.brand{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow);transition:.22s}
.brand:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(12,35,24,.14)}
.brand-logo{height:132px;display:grid;place-items:center;padding:20px;background:linear-gradient(160deg,#F3F7F4,#EAF1EC);border-bottom:1px solid var(--line)}
.brand-logo img{max-height:88px;max-width:80%;object-fit:contain}
.brand-body{padding:22px;display:flex;flex-direction:column;flex:1}
.brand .top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.brand .cat{font-size:.67rem;letter-spacing:.13em;text-transform:uppercase;color:var(--gold);font-weight:700}
.brand .st{font-size:.74rem;color:var(--ink-3);white-space:nowrap}
.brand h3{margin:10px 0 0;font-size:1.2rem}
.brand .meta{margin-top:5px;font-size:.82rem;color:var(--ink-3)}
.brand p{margin:13px 0 0;font-size:.92rem;color:var(--ink-2);flex:1}
.brand .foot{margin-top:18px;display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.tag{font-size:.72rem;background:#EFF4F0;color:var(--g700);border-radius:999px;padding:4px 10px;font-weight:600}
.tag.gold{background:#FBF3E0;color:#8A6417}
.brand .link{margin-left:auto;font-size:.85rem;color:var(--g700);font-weight:600;text-decoration:none}
.brand .link:hover{text-decoration:underline}
.status-dot{width:7px;height:7px;border-radius:50%;background:#2FA36B;display:inline-block;margin-right:6px}
.status-soon{background:var(--gold)}
.empty{padding:50px;text-align:center;color:var(--ink-3);border:1px dashed var(--line);border-radius:var(--r)}

/* ---------- quotes ---------- */
.quote{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:26px;margin:0;box-shadow:var(--shadow);display:flex;flex-direction:column}
.q-brand{height:54px;display:flex;align-items:center;margin-bottom:16px}
.q-brand img{max-height:52px;max-width:130px;object-fit:contain}
.quote p{font-family:Georgia,serif;font-size:1.04rem;line-height:1.55;color:var(--ink);font-style:italic;flex:1}
.quote-empty{background:transparent;border:1.5px dashed var(--line);box-shadow:none;justify-content:center;min-height:230px}
.quote-empty p{color:var(--ink-3);font-style:normal;font-family:inherit;font-size:.95rem;flex:0}
.quote-empty .who{color:var(--ink-3)}
.quote-empty .who b{color:var(--ink-3)}
.who{margin-top:18px;display:flex;align-items:center;gap:12px;font-size:.85rem;color:var(--ink-3)}
.who b{display:block;color:var(--ink);font-style:normal;font-size:.93rem}
.q-face{width:46px;height:46px;border-radius:50%;overflow:hidden;flex-shrink:0;display:grid;place-items:center;background:#EFF4F0}
.q-face img{width:100%;height:100%;object-fit:cover}
.face-fb{font-family:Georgia,serif;color:var(--g700);font-size:.95rem}

/* ---------- team flip cards ---------- */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(206px,1fr));gap:20px}
.team-lead{grid-template-columns:repeat(4,minmax(0,1fr))}
.team-cons{grid-template-columns:repeat(5,minmax(0,1fr));gap:34px 30px}
.team-cons .flip{height:270px}
@media(max-width:1100px){.team-cons{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:860px){.team-cons{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 20px}}
@media(max-width:600px){.team-cons{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px}.team-cons .flip{height:240px}}
.team-lead .flip{height:360px}
@media(max-width:900px){.team-lead{grid-template-columns:repeat(2,minmax(0,1fr))}.team-lead .flip{height:320px}}
@media(max-width:460px){.team-lead{grid-template-columns:1fr}.team-lead .flip{height:380px}}
.team-join{display:flex;align-items:center;justify-content:flex-start;gap:28px 56px;flex-wrap:wrap}
.team-join > div{max-width:60ch}

.flip{perspective:1000px;height:290px}
.flip-in{position:relative;width:100%;height:100%;transition:transform .6s cubic-bezier(.4,.2,.2,1);transform-style:preserve-3d}
@media (hover:hover) and (pointer:fine){.flip.has-then:hover .flip-in{transform:rotateY(180deg)}}
.flip.has-then.flipped .flip-in{transform:rotateY(180deg)}
.flip.has-then{cursor:pointer}
.flip.has-then:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:var(--r)}
.flip-hint{position:absolute;right:10px;top:10px;z-index:2;width:26px;height:26px;border-radius:50%;
  background:rgba(8,24,15,.55);color:#fff;display:grid;place-items:center;font-size:.8rem;pointer-events:none}
@media (hover:hover) and (pointer:fine){.flip-hint{display:none}}
.face{position:absolute;inset:0;backface-visibility:hidden;border-radius:var(--r);overflow:hidden;
  background:linear-gradient(160deg,#1B5E3F,#0C2318);display:grid;place-items:center;box-shadow:var(--shadow)}
.face img{width:100%;height:100%;object-fit:cover}
.face .face-fb{font-size:1.7rem;color:var(--gold-2)}
.face.back{transform:rotateY(180deg)}
.face-cap{position:absolute;left:0;right:0;bottom:0;padding:34px 16px 14px;color:#fff;
  background:linear-gradient(transparent,rgba(8,24,15,.92))}
.face-cap .n{font-weight:600;font-size:.96rem;line-height:1.25}
.face-cap .t{font-size:.79rem;color:var(--gold-2);margin-top:2px}
.face-cap .l{font-size:.75rem;color:#B4C9BC;margin-top:2px}

/* ---------- lists / forms ---------- */
.ticks{list-style:none;padding:0;margin:0;color:var(--ink-2)}
.ticks li{padding:9px 0 9px 30px;position:relative;border-bottom:1px solid var(--line)}
.ticks li:before{content:"";position:absolute;left:4px;top:16px;width:13px;height:7px;border-left:2px solid var(--g700);border-bottom:2px solid var(--g700);transform:rotate(-45deg)}
.form{display:grid;gap:14px;max-width:580px}
.field label{display:block;font-size:.85rem;font-weight:600;margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;padding:12px 15px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:.94rem;background:var(--paper)}
.field textarea{min-height:120px;resize:vertical}
.field .hint{display:block;font-size:.78rem;color:var(--ink-3);margin-top:5px}
.field input[type=file]{padding:9px 12px;cursor:pointer}
.ww-apply{padding-block:52px}
.ww-apply .sec-head{margin-bottom:22px}
.ww-apply h2{font-size:clamp(1.5rem,2.4vw,1.9rem)}
.form-compact{max-width:480px;gap:10px}
.form-compact .two{gap:10px}
.form-compact .field label{font-size:.8rem;margin-bottom:4px}
.form-compact .field input,.form-compact .field select,.form-compact .field textarea{padding:8px 12px;font-size:.9rem;line-height:1.35}
.form-compact .field textarea{min-height:76px}
@media(max-width:480px){.form-compact .two{grid-template-columns:1fr}}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.callout{background:#FBF3E0;border:1px solid #EBD9A9;border-radius:var(--r);padding:22px 26px;font-size:.92rem;color:#6B5314}
.callout b{color:#4A390C}

/* ---------- footer ---------- */
footer{background:var(--g900);color:#B7CCBF;padding:58px 0 30px;font-size:.9rem;border-top:1px solid rgba(255,255,255,.28)}
footer h4{color:#fff;font-size:.76rem;letter-spacing:.13em;text-transform:uppercase;margin:0 0 14px}
footer a{color:#B7CCBF;text-decoration:none;display:block;padding:4px 0}
footer a.soc{display:flex;align-items:center;gap:10px}
.soc-ico{width:18px;height:18px;flex-shrink:0;color:var(--gold);fill:currentColor}
.soc-ico[fill="none"]{fill:none;stroke:currentColor}
footer a.soc:hover .soc-ico{color:var(--gold-2)}
footer a:hover{color:#fff}
.foot-grid{display:grid;grid-template-columns:1.7fr repeat(3,1fr);gap:34px}
#foot-logo{margin-bottom:16px}
#foot-logo .foot-mark{height:30px;width:auto;display:block}
#foot-logo .foot-word{margin-top:14px;font-family:Montserrat,"Segoe UI",Helvetica,Arial,sans-serif;font-weight:700;
  font-size:1rem;letter-spacing:.06em;text-transform:uppercase;color:#F3EEDF}
.foot-bot{margin-top:38px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.82rem}


/* ---------- symmetrical service grids ---------- */
.g4x{grid-template-columns:repeat(4,1fr)}
.g2x2{grid-template-columns:repeat(2,1fr)}
@media(max-width:1080px){.g4x{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.g4x,.g2x2{grid-template-columns:1fr}}

/* ---------- logo wall names ---------- */
.lw-cell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;height:142px}
.lw-name{font-size:.7rem;letter-spacing:.04em;color:var(--ink-3);text-align:center;line-height:1.2}
.lw-cell:has(.wordmark) .lw-name{display:none}

/* ---------- founder spotlight ---------- */
.founder-grid{grid-template-columns:minmax(0,360px) 1fr;gap:64px;align-items:center}
.bob-left{max-width:360px}
.bob-badge .bb-pre{margin:0 0 2px!important;font-size:.62rem!important}
.bob-portrait{position:relative;padding-bottom:26px}
.bob-main{aspect-ratio:1/1;max-width:300px;border-radius:var(--r);overflow:hidden;background:linear-gradient(160deg,#1B5E3F,#0C2318);
  display:grid;place-items:center;box-shadow:0 22px 50px rgba(12,35,24,.20)}
.bob-main img{width:100%;height:100%;object-fit:cover;object-position:center top}
.bob-main .face-fb{font-size:3rem;color:var(--gold-2);font-family:Georgia,serif}
.bob-then{position:absolute;left:-14px;bottom:8px;width:104px;height:104px;border-radius:50%;overflow:hidden;
  border:5px solid var(--paper);background:linear-gradient(160deg,#1B5E3F,#0C2318);display:grid;place-items:center;
  box-shadow:0 10px 26px rgba(12,35,24,.22)}
.bob-then img{width:100%;height:100%;object-fit:cover}
.bob-then .face-fb{font-size:1.1rem;color:var(--gold-2);font-family:Georgia,serif}
.bob-badge{position:absolute;right:-14px;top:22px;background:var(--gold);color:#221803;border-radius:14px;
  padding:14px 16px;text-align:center;box-shadow:0 12px 28px rgba(12,35,24,.24);line-height:1.1}
.bob-badge b{display:block;font-family:Georgia,serif;font-size:2rem}
.bob-badge span{font-size:.64rem;letter-spacing:.11em;text-transform:uppercase;font-weight:700;display:block;margin-top:4px}

.bob-pull{margin:26px 0 0;padding:20px 24px;border-left:3px solid var(--gold);background:#F6F2E8;border-radius:0 12px 12px 0;
  font-family:Georgia,serif;font-size:1.18rem;line-height:1.5;color:var(--ink)}
.bob-facts{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0 0}
.bf{flex:1;min-width:120px;border:1px solid var(--line);border-radius:12px;padding:15px 16px;background:var(--cream)}
.bf-v{display:block;font-family:Georgia,serif;font-size:1.7rem;line-height:1;color:var(--g700)}
.bf-l{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-top:8px;font-weight:600}
.bob-mission{margin:30px 0 0;font-size:.97rem;color:var(--ink-2);font-style:italic}
.bob-mission span{display:block;font-style:normal;font-size:.78rem;color:var(--ink-3);margin-top:6px;letter-spacing:.04em}
.bob-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.btn-outline{border-color:var(--g700);color:var(--g700)}
.btn-outline:hover{background:rgba(27,94,63,.08);transform:translateY(-1px)}

.bob-more{margin:44px 0 0;border:1px solid var(--line);border-radius:12px;background:var(--cream)}
.bob-more summary{cursor:pointer;padding:16px 20px;font-weight:600;font-size:.92rem;color:var(--g700);list-style:none}
.bob-more summary::-webkit-details-marker{display:none}
.bob-more summary:before{content:"+ ";font-family:Georgia,serif}
.bob-more[open] summary:before{content:"– "}
.bob-statement{padding:0 22px 20px;max-width:72ch}
.bob-statement p{color:var(--ink-2);font-size:.96rem}

.press-head{margin:52px 0 22px}
.press-card{background:var(--cream);border:1px solid var(--line);border-radius:var(--r);padding:24px;display:flex;flex-direction:column}
.pc-brand{font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:12px}
.press-card p{font-family:Georgia,serif;font-size:.98rem;line-height:1.55;color:var(--ink);flex:1;margin:0}
.pc-src{margin-top:16px;font-size:.82rem;color:var(--g700);font-weight:600;text-decoration:none}
.pc-src:hover{text-decoration:underline}

@media(max-width:900px){
  .founder-grid{grid-template-columns:1fr;gap:36px}
  .bob-left{max-width:340px;margin:0 auto}
  .bob-badge{right:0}
  .bob-then{left:0}
}


/* ---------- FAQ accordion ---------- */
.faq{display:grid;gap:10px;max-width:820px}
.fq{border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.fq summary{cursor:pointer;padding:17px 20px;font-weight:600;font-size:.98rem;list-style:none;display:flex;gap:12px;align-items:flex-start}
.fq summary::-webkit-details-marker{display:none}
.fq summary:before{content:"+";color:var(--gold);font-family:Georgia,serif;font-size:1.1rem;line-height:1.2}
.fq[open] summary:before{content:"\2013"}
.fq summary:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:12px}
.fq p{margin:0;padding:0 20px 18px 52px;color:var(--ink-2);font-size:.95rem}

/* ---------- numbered "ways into a market" list ---------- */
.ways{list-style:none;counter-reset:w;padding:0;margin:18px 0 18px;display:grid;gap:10px;max-width:62ch}
.ways li{counter-increment:w;display:flex;align-items:center;gap:14px;font-size:1.08rem;color:var(--ink-2)}
.ways li:before{content:counter(w);flex:0 0 32px;height:32px;border-radius:50%;display:grid;place-items:center;
  background:#EFF4F0;color:var(--g700);font-family:Georgia,serif;font-weight:600;font-size:1rem}
.ways li:last-child{color:var(--ink);font-weight:600}
.ways li:last-child:before{background:var(--g700);color:#fff}

/* ---------- back-of-house systems ---------- */
.sys{margin-top:64px;padding-top:56px;border-top:1px solid var(--line)}
.sys-grid{display:grid;grid-template-columns:repeat(3,minmax(0,170px));gap:16px}
.sys-tile{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:14px}
.sys-logo{width:100%;height:92px;border-radius:14px;background:var(--paper);border:1px solid var(--line);
  display:grid;place-items:center;overflow:hidden;padding:18px;box-shadow:var(--shadow)}
@media(max-width:520px){.sys-grid{gap:10px}.sys-logo{height:70px;padding:12px}}
.sys-logo img{max-width:100%;max-height:100%;object-fit:contain}
.sys-logo .wordmark{font-size:.9rem;padding:2px;line-height:1.2}
.sys-tile b{display:block;font-size:.98rem}
.sys-tile span{display:block;font-size:.86rem;color:var(--ink-2);margin-top:4px;line-height:1.5}

.sys-solo{margin-top:0;padding-top:0;border-top:0;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:56px;align-items:center}
.sys-solo .sys-grid{grid-template-columns:repeat(3,minmax(0,1fr));justify-self:end;width:100%;max-width:560px}
.sys-band{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:inset 0 6px 0 var(--g700)}
@media(max-width:980px){.sys-solo{grid-template-columns:1fr;gap:28px}.sys-solo .sys-grid{justify-self:stretch;max-width:none}}
.card-head{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.card-head .ico{margin-bottom:0;flex-shrink:0}
.card-head h3{margin:0}

/* ---------- hero bottle ---------- */
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:56px;align-items:center}
.hero-bottle{position:relative;width:380px;height:640px;margin:0;justify-self:end;filter:drop-shadow(0 30px 40px rgba(0,0,0,.25))}
.hb-glass{position:absolute;inset:0;
  background:linear-gradient(170deg,rgba(255,255,255,.2),rgba(255,255,255,.06) 55%,rgba(156,196,172,.12));
  -webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2)}
.hb-line{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hb-body{position:absolute;left:82px;right:82px;top:392px;bottom:72px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#fff}
.hb-label{font-family:Montserrat,"Segoe UI",Helvetica,Arial,sans-serif;font-size:8.5px;letter-spacing:.24em;font-weight:600;fill:#E4C77A}
.hb-q{color:var(--gold);font-size:1.9em;font-weight:700;line-height:0;vertical-align:-.32em;font-family:Georgia,serif;font-style:normal;margin:0 .08em 0 0}
.hb-q+.hb-q,.hb-body blockquote .hb-q:last-child{margin:0 0 0 .06em}
.hb-mark{font-family:Georgia,serif;font-size:3.6rem;line-height:.6;color:var(--gold-2);display:block;margin-bottom:6px}
.hb-body blockquote{margin:0;font-family:Lora,Georgia,"Times New Roman",serif;font-size:.84rem;font-weight:400;line-height:1.6;font-style:italic;letter-spacing:.005em;text-align:center;text-wrap:balance;width:100%;color:#F6F2E6}
.hb-body figcaption{margin-top:12px;font-size:.8rem;color:#D0E2D7;line-height:1.4}
.hb-body figcaption b{color:#fff;font-size:.84rem;font-weight:600}
.hb-sep{color:var(--gold);margin:0 .5em}
.hb-body figcaption{white-space:nowrap}
@media(max-width:1060px){
  .hero-grid{grid-template-columns:1fr;gap:36px}
  .hero-bottle{width:auto;height:auto;justify-self:stretch;max-width:520px}
  .hero-bottle{filter:none}
  .hb-glass{clip-path:none!important;border-radius:var(--r);border:1px solid rgba(199,154,62,.6)}
  .hb-body{text-align:left;align-items:flex-start}
  .hb-line{display:none}
  .hb-body{position:relative;inset:auto;padding:26px 28px}
}

/* ---------- services split layout ---------- */
.svc-split{display:grid;grid-template-columns:minmax(0,0.9fr) minmax(0,1.6fr);gap:48px;align-items:start}
.svc-intro{position:sticky;top:110px}
.svc-intro h2{margin:0 0 14px}
.svc-kicker{color:var(--ink-3);font-size:.9rem;margin:0}
.svc-intro .ways{margin:12px 0 16px}
.svc-intro .lede{margin:0 0 22px}
.svc-cards{gap:18px}
.svc-cards .card{padding:24px;border:1px solid var(--gold)}
@media(max-width:980px){.svc-split{grid-template-columns:1fr;gap:28px}.svc-intro{position:static}}

.pf-join-img{width:82%;justify-self:center;min-height:0;aspect-ratio:4/3}
@media(max-width:860px){.pf-join-img{width:100%}}
/* ---------- partners statement ---------- */
.pf-statement{margin:0 0 40px;text-align:center}
.pf-statement span{display:inline-block;background:var(--gold);color:#fff;text-shadow:0 1px 1px rgba(80,55,10,.35);border-radius:999px;
  padding:14px 30px;font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;font-weight:600;
  font-size:clamp(1rem,1.7vw,1.28rem);line-height:1.35;letter-spacing:.005em;white-space:nowrap;
  box-shadow:0 10px 24px rgba(185,139,46,.28);cursor:default;user-select:text}
@media(max-width:720px){.pf-statement span{white-space:normal;padding:12px 22px;border-radius:22px}}

/* ---------- work with us ---------- */
.ww-split-sec{padding-block:64px}
.ww-split{display:grid;grid-template-columns:minmax(0,1fr) 3px minmax(0,1fr);gap:0 48px;align-items:start}
.ww-divider{align-self:stretch;background:var(--g700);border-radius:3px}
.ww-col{min-width:0}
.ww-col-sup{position:sticky;top:104px}
@media(max-width:900px){.ww-col-sup{position:static}}
.ww-col-head{background:#E8F1EA;border:1px solid #CFE2D4;border-radius:var(--r);padding:28px 30px;margin-bottom:6px}
.ww-col-head .lede{margin:0 0 12px}
.ww-col-head .lede:last-of-type{margin-bottom:0}
.ww-col-head .hero-cta{margin-top:22px!important}
.ww-col-head h2{margin:12px 0 14px;font-size:clamp(1.5rem,2.3vw,2rem)}
.ww-sub{font-size:1.2rem;margin:30px 0 14px}
.ww-col-cta{margin-top:20px}
.ww-col .faq{display:grid;gap:10px}
.contact-grid{align-items:stretch}
.contact-left{display:flex;flex-direction:column}
.contact-photo{flex:1;min-height:200px;width:86%;margin:28px 0 0;aspect-ratio:auto;background-position:center 55%}
@media(max-width:860px){.contact-photo{width:100%;height:auto;aspect-ratio:4/3;margin-top:24px}}
.contact-form{max-width:none;padding:24px}
.contact-form textarea{min-height:96px}
dialog.intro{border:0;padding:0;border-radius:var(--r);width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 32px);
  overflow:auto;background:var(--paper);color:var(--ink);box-shadow:0 30px 80px rgba(12,35,24,.35)}
dialog.intro::backdrop{background:rgba(12,35,24,.55);backdrop-filter:blur(3px)}
dialog.intro[open]{animation:introIn .22s ease}
@keyframes introIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){dialog.intro[open]{animation:none}}
.intro-form{max-width:none;padding:30px 32px 26px;position:relative}
.intro-form h2{margin:8px 0 6px;font-size:1.8rem}
.intro-lede{margin:0 0 8px;color:var(--ink-2)}
.intro-x{position:absolute;top:14px;right:16px;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);
  background:var(--cream);font-size:1.4rem;line-height:1;cursor:pointer;color:var(--ink-2)}
.intro-x:hover{background:#E8F1EA}
.intro-x:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.intro-mail{user-select:all;font-weight:600;color:var(--g700)}
@media(max-width:520px){.intro-form{padding:24px 20px}}
.captcha-ph{display:flex;align-items:center;gap:12px;width:300px;max-width:100%;height:74px;padding:0 14px;
  border:1px dashed #B9BDB8;border-radius:6px;background:#F1F2F0;color:#555;font-size:.9rem;justify-self:start}
.captcha-ph .cb{width:24px;height:24px;border:2px solid #B9BDB8;border-radius:3px;background:#fff;flex-shrink:0}
.captcha-ph .cap-tag{margin-left:auto;text-align:center;font-size:.66rem;color:#888;line-height:1.3}
.captcha-ph .cap-tag small{font-size:.6rem;text-transform:uppercase;letter-spacing:.08em}
.contact-note{margin:0 0 4px;padding:12px 16px;border-radius:12px;background:#E8F1EA;color:var(--g800);font-size:.92rem;line-height:1.5}
.field .opt{font-weight:400;color:var(--ink-3)}
.ww-submit{justify-self:start;width:auto;font-family:inherit;line-height:inherit}
.ww-get{margin-top:24px;border:1px solid var(--gold)}
.ww-apply-box{margin-top:28px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:24px}
.ww-col-rep .ticks li:before{color:var(--gold)}
@media(max-width:900px){
  .ww-split{grid-template-columns:1fr;gap:40px}
  .ww-divider{height:3px}
}

/* Two clearly separate halves: suppliers (cream + green accents) and consultants (warm sand + gold accents) */
:root{--sand:#F3ECDC;--sand-2:#FBF7EE}
.ww-step{display:inline-flex;align-items:center;gap:12px;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--gold-2)}
.ww-step span{letter-spacing:.06em;text-transform:none;font-weight:600;font-size:.78rem;padding:5px 11px;border-radius:999px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);color:#fff}
.ww-open{padding:96px 0}
.ww-zone-sup{border-left:6px solid var(--g700)}
.ww-zone-sup > section:not(.alt){background:var(--cream)}
.ww-zone-rep{background:var(--sand);border-left:6px solid var(--gold)}
.ww-zone-rep > section{background:var(--sand)}
.ww-zone-rep .card{background:var(--sand-2)}
.ww-zone-rep .ww-apply{background:var(--sand-2);border-color:#E4D7B8}
.ww-zone-rep .ticks li:before{color:var(--gold)}
.ww-open-rep{border-top:10px solid var(--gold)}
@media(max-width:600px){.ww-zone-sup,.ww-zone-rep{border-left-width:4px}.ww-open{padding:72px 0}}

.ww-anchor{scroll-margin-top:78px}
.ww-paths{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:34px;max-width:820px}
.ww-path{display:flex;flex-direction:column;gap:8px;padding:22px 24px;border-radius:var(--r);text-decoration:none;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(6px);color:#fff;transition:.18s}
.ww-path:hover{background:rgba(255,255,255,.14);border-color:var(--gold-2);transform:translateY(-2px)}
.ww-path:focus-visible{outline:2px solid var(--gold-2);outline-offset:3px}
.ww-k{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--gold-2)}
.ww-path b{font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;font-size:1.25rem;font-weight:600;line-height:1.25}
.ww-go{font-size:.88rem;color:#D0E2D7;margin-top:4px}

/* ---------- cookie consent ---------- */
.cc{position:fixed;left:20px;bottom:20px;z-index:100;width:min(440px,calc(100vw - 40px));
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:0 18px 50px rgba(12,35,24,.22);padding:24px;color:var(--ink);font-size:.92rem;
  animation:ccIn .35s ease}
@keyframes ccIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.cc h3{font-size:1.08rem;margin:0 0 8px}
.cc p{color:var(--ink-2);margin:0 0 16px;line-height:1.55}
.cc a{color:var(--g700);font-weight:600}
.cc-actions{display:flex;flex-wrap:wrap;gap:10px}
.cc-actions .btn{padding:10px 18px;font-size:.88rem;flex:1;justify-content:center;min-width:130px}
.cc-link{background:none;border:0;padding:6px 0;margin-top:12px;font:inherit;font-size:.85rem;color:var(--g700);
  font-weight:600;cursor:pointer;text-decoration:underline}
.cc-prefs{display:grid;gap:10px;margin:4px 0 18px}
.cc-row{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;border:1px solid var(--line);
  border-radius:12px;padding:13px 15px;background:var(--cream)}
.cc-row b{display:block;font-size:.9rem}
.cc-row span{display:block;font-size:.8rem;color:var(--ink-3);line-height:1.45;margin-top:2px}
.cc-row input{width:20px;height:20px;flex-shrink:0;margin-top:2px;accent-color:var(--g700);cursor:pointer}
.cc-row input:disabled{cursor:not-allowed;opacity:.6}
.cc .btn:focus-visible,.cc-link:focus-visible,.cc-row input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media(max-width:520px){.cc{left:12px;right:12px;bottom:12px;width:auto;padding:20px}}
@media(prefers-reduced-motion:reduce){.cc{animation:none}}

/* ---------- motion ---------- */
.view{animation:fade .3s ease}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.rv{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.3,1)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
  .mq-track{animation:none}
  .view{animation:none}
}

@media(max-width:900px){
  .foot-grid{grid-template-columns:1fr 1fr}
  nav.links{display:none;position:absolute;top:78px;left:0;right:0;background:var(--cream);border-bottom:1px solid var(--line);padding:14px 24px;flex-direction:column;align-items:stretch}
  nav.links.open{display:flex}
  nav.links button{text-align:left;padding:11px 12px}
  .menu-toggle{display:inline-flex;margin-left:auto;background:none;border:1px solid var(--line);border-radius:10px;padding:9px 13px;font:inherit;cursor:pointer}
  .two{grid-template-columns:1fr}
  .split-img{min-height:250px}
  .flip{height:250px}
}

/* ===========================================================================
   WordPress adjustments — appended to the approved stylesheet.
   Nothing above this line has been altered, so the file can be re-synced from
   a later design draft by replacing everything before this block.

   The design drives navigation with <button> elements and a JavaScript router.
   On WordPress the navigation is real <a> links, so it is crawlable, opens in
   a new tab on middle-click, and can be reordered from Appearance > Menus.
   These rules give those links the appearance the buttons have.
   ========================================================================= */

/* Large displays.
   Her --maxw of 1180px is the right measure for laptops, which is where most
   visitors are, so it is left exactly as she set it up to 1499px. Above that
   the content was sitting in a narrow column with very wide empty margins:
   at 2560px it filled under half the screen. The container grows in three
   steps instead of one so the type scale and card sizes she chose never have
   to stretch far from what they were designed for. Nothing here changes her
   base value - it is only raised at widths her draft never anticipated. */
@media(min-width:1500px){ :root{ --maxw:1340px } }
@media(min-width:1900px){ :root{ --maxw:1460px } }
@media(min-width:2400px){ :root{ --maxw:1600px } }

nav.links a{background:none;border:0;font:inherit;font-size:.865rem;color:var(--ink-2);
  padding:8px 10px;border-radius:9px;cursor:pointer;transition:.15s;white-space:nowrap;
  text-decoration:none;display:inline-block}
nav.links a:hover{background:rgba(27,94,63,.08);color:var(--ink)}
nav.links a[aria-current="page"]{background:var(--g900);color:#fff}
@media(max-width:900px){nav.links a{text-align:left;padding:11px 12px;display:block}}

/* Skip link: visible only when focused by keyboard. */
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link:focus{position:fixed;top:10px;left:10px;z-index:200;width:auto;height:auto;margin:0;
  clip:auto;white-space:normal;background:var(--g900);color:#fff;padding:12px 18px;border-radius:10px}

/* The WordPress admin bar is fixed; keep the sticky header clear of it. */
body.admin-bar header{top:32px}
@media(max-width:782px){body.admin-bar header{top:46px}}
/* Below 600px WordPress switches #wpadminbar to position:absolute, so the
   admin bar scrolls away with the page instead of staying put. Holding the
   sticky header 46px down to clear a bar that is no longer there leaves a
   46px gap with page content showing through it - which is exactly what
   Griffin saw on 11 Nov. Reproduced locally with WordPress's own admin-bar
   rules before fixing. Logged-out visitors never had this; it only ever
   affected anyone reviewing while signed in. */
@media(max-width:600px){body.admin-bar header{top:0}}

/* Pages still rendered by Elementor sit inside the new shell. */
.ggg-elementor-page{padding-block:56px}
.ggg-elementor-page .entry-content > *:first-child{margin-top:0}

/* ---------------------------------------------------------------------------
   Posts, archives, search and 404
   Chrisy's draft designs none of these, so they are assembled from her own
   vocabulary. Everything below uses her tokens only - no new colours, no new
   radius, no new shadow - so the pages read as the same site. The prose block
   is the one genuinely new thing: WordPress post bodies contain headings,
   lists, quotes, tables and images that her design never had to style.
   ------------------------------------------------------------------------- */

/* --- listing cards --- */
.post-card{display:flex;flex-direction:column}
.post-card .post-thumb{display:block;height:170px;margin:-26px -26px 20px;border-radius:var(--r) var(--r) 0 0;
  background-size:cover;background-position:center;border-bottom:1px solid var(--line)}
.post-card .post-meta{font-size:.67rem;letter-spacing:.13em;text-transform:uppercase;color:var(--gold);font-weight:700}
.post-card h3{margin:10px 0 0}
.post-card h3 a{text-decoration:none}
.post-card h3 a:hover{color:var(--g700)}
.post-card p{margin:12px 0 0;flex:1}
.post-card .post-more{margin-top:18px;font-size:.85rem;color:var(--g700);font-weight:600;text-decoration:none;align-self:flex-start}
.post-card .post-more:hover{text-decoration:underline}

/* --- pagination --- */
.ggg-pagination{margin-top:40px}
.ggg-pagination ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:0;margin:0}
.ggg-pagination a,.ggg-pagination span{display:inline-block;min-width:42px;text-align:center;padding:9px 14px;
  border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink-2);
  font-size:.88rem;text-decoration:none;transition:.15s}
.ggg-pagination a:hover{border-color:var(--g700);color:var(--g700)}
.ggg-pagination .current{background:var(--g900);border-color:var(--g900);color:#fff;font-weight:600}
.ggg-pagination .dots{border-color:transparent;background:none}

/* --- search form --- */
.ggg-searchform{display:flex;gap:10px;margin:0 0 40px;max-width:520px}
.ggg-searchform input{flex:1;min-width:0;padding:13px 16px;border:1px solid var(--line);border-radius:999px;
  background:var(--paper);font:inherit;font-size:.95rem;color:var(--ink)}
.ggg-searchform input:focus{outline:2px solid var(--g300);outline-offset:1px;border-color:var(--g700)}

/* --- post body --- */
.entry{color:var(--ink-2);font-size:1.03rem;line-height:1.75}
.entry > *:first-child{margin-top:0}
.entry h2,.entry h3,.entry h4{color:var(--ink);margin:2.2rem 0 .7rem}
.entry h2{font-size:clamp(1.5rem,2.4vw,1.95rem)}
.entry h3{font-size:1.24rem}
.entry h4{font-size:1.05rem;font-family:inherit;font-weight:700;letter-spacing:0}
.entry p{margin:0 0 1.15rem}
.entry a{color:var(--g700);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.entry a:hover{color:var(--g900)}
.entry ul,.entry ol{margin:0 0 1.15rem;padding-left:1.35rem}
.entry li{margin:.4rem 0}
.entry img,.entry iframe,.entry video{border-radius:var(--r);height:auto}
.entry figure{margin:1.8rem 0}
.entry figcaption{font-size:.82rem;color:var(--ink-3);margin-top:.6rem;text-align:center}
.entry blockquote{margin:1.8rem 0;padding:4px 0 4px 22px;border-left:3px solid var(--gold);
  font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;font-size:1.12rem;
  font-style:italic;color:var(--ink)}
.entry blockquote p:last-child{margin-bottom:0}
.entry hr{border:0;border-top:1px solid var(--line);margin:2.4rem 0}
.entry code{background:#EFF4F0;border-radius:5px;padding:2px 6px;font-size:.9em}
.entry pre{background:var(--g900);color:#E8EFE9;border-radius:var(--r);padding:20px;overflow:auto;font-size:.88rem}
.entry pre code{background:none;padding:0;color:inherit}
.entry table{width:100%;border-collapse:collapse;margin:1.8rem 0;font-size:.95rem}
.entry th,.entry td{border:1px solid var(--line);padding:10px 12px;text-align:left}
.entry th{background:#EFF4F0;color:var(--ink);font-weight:600}

/* --- tags and prev/next under a post --- */
.entry-tags{margin-top:34px;display:flex;flex-wrap:wrap;gap:7px}
.entry-tags a{font-size:.72rem;background:#EFF4F0;color:var(--g700);border-radius:999px;
  padding:4px 10px;font-weight:600;text-decoration:none}
.entry-tags a:hover{background:#E2EBE5}
.entry-nav{margin-top:34px;padding-top:22px;border-top:1px solid var(--line);
  display:flex;gap:18px;justify-content:space-between;font-size:.9rem}
.entry-nav a{color:var(--g700);font-weight:600;text-decoration:none}
.entry-nav a:hover{text-decoration:underline}
.entry-nav-next{margin-left:auto;text-align:right}

/* The 404 list reuses .ticks, whose links need to look like links. */
.ticks a{color:var(--g700);font-weight:600;text-decoration:none}
.ticks a:hover{text-decoration:underline}

/* --- testimonials as stacked horizontal rows ----------------------------
   Her design puts the three quotes in a `.grid.g3` of equal columns, which
   works while the quotes are a similar length. Tim Nemeckay's is 557
   characters against Iconika's 128, and in a grid row every card stretches
   to the tallest - so the long one set the height and the short ones gained
   a large gap between quote and attribution.

   Laying each quote out as its own full-width row fixes that at the root:
   a row sizes to its own content, so length no longer has to match. The
   logo sits in a fixed left column with the quote and attribution beside
   it. Griffin asked for this on 6 Nov.

   Her `.quote` card styling - paper, border, radius, shadow - is reused
   untouched; only the internal arrangement changes.
   --------------------------------------------------------------------- */
.q-rows{display:grid;gap:22px}
.q-rows .quote{display:grid;grid-template-columns:190px minmax(0,1fr);
  column-gap:30px;row-gap:14px;align-items:start;padding:30px}
.q-rows .q-brand{grid-column:1;grid-row:1 / span 2;height:auto;min-height:54px;
  margin-bottom:0;justify-content:flex-start}
/* The base .q-brand img rule caps height at 52px, which left most of the
   190px logo column empty. In a row the logo is the only thing in that
   column, so let it fill the width and cap the height instead. width:100%
   scales a small logo UP; max-height keeps a tall or square one sane, and
   object-position pins it flush left with the text above the fold. */
.q-rows .q-brand img{width:100%;max-width:190px;max-height:120px;height:auto;object-fit:contain;object-position:left center}
.q-rows .quote p{grid-column:2;grid-row:1;flex:none;margin:0}
.q-rows .who{grid-column:2;grid-row:2;margin-top:0}

/* The wordmark fallback is centred for a grid cell; left-align it in a row. */
.q-rows .q-brand .wordmark{text-align:left;padding:0}

/* --- Contact Form 7 output ----------------------------------------------
   Written 8 Nov against the markup CF7 6.2.4.1 actually renders on the
   contact page, not from documentation.

   Her design styles `.field label` + `.field input|select|textarea` as
   siblings. CF7 inserts two wrappers between them: every control sits in
   <span class="wpcf7-form-control-wrap">, and wpautop puts a <p> around
   each label/control pair. `wpcf7_autop: false` was set in the form's
   Additional Settings and had NO effect in this version, so the <p> is
   neutralised here instead.

   `display:contents` on both wrappers is deliberate: it makes the label
   and the control direct children of `.field` again, so her rules apply
   whether she wrote them as descendant or child selectors. Do not swap
   this for width:100% on the span without checking which she used.

   This block is placed here only because it needed a stable anchor to
   edit against; it belongs at the end of the WordPress-adjustments
   section and can be moved there at any time.
   --------------------------------------------------------------------- */
.wpcf7-form .field > p,
.wpcf7-form .wpcf7-form-control-wrap{display:contents}
.wpcf7-form .field > p > br{display:none}
.wpcf7-form .field .wpcf7-form-control{width:100%}
.wpcf7-form p.contact-note{margin:0 0 18px}

/* The reCAPTCHA widget is a sibling of the fields, not inside one. */
.wpcf7-form .cf7sr-g-recaptcha{margin:18px 0 8px}

/* The submit button already carries her btn classes, so it inherits her
   styling; this only handles CF7's own spinner and the <p> around it. */
.wpcf7-form > p:has(> .wpcf7-submit){margin:0}
.wpcf7-spinner{margin-left:10px}

/* CF7's validation and response messages have no design in her file. */
.wpcf7-form .wpcf7-not-valid-tip{display:block;margin-top:6px;font-size:.84rem;color:#b3261e}
.wpcf7-form .wpcf7-response-output{margin:16px 0 0;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);font-size:.92rem;color:var(--ink-2)}
.wpcf7-form.sent .wpcf7-response-output{border-color:var(--g300);color:var(--g900)}
.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.failed .wpcf7-response-output{border-color:#b3261e;color:#b3261e}

/* CleanTalk injects a visible honeypot text input into CF7 forms. */
.wpcf7-form .apbct_special_field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}

@media(max-width:700px){
  /* One column: logo, then quote, then attribution. */
  .q-rows .quote{grid-template-columns:minmax(0,1fr);row-gap:16px;padding:26px}
  .q-rows .q-brand{grid-column:1;grid-row:1;min-height:0}
  /* Stacked, the column is the full page width, so stop width:100% from
     blowing the logo up to phone width. */
  .q-rows .q-brand img{width:auto;max-width:170px;max-height:70px}
  .q-rows .quote p{grid-column:1;grid-row:2}
  .q-rows .who{grid-column:1;grid-row:3}
}

/* --- mobile for the blocks above ---------------------------------------
   Chrisy's design carries about thirty breakpoints and handles narrow
   screens properly. The post, search and 404 CSS above is mine and had
   none at all until 4 Nov. These are the three places that actually break
   rather than merely look tight:
   ---------------------------------------------------------------------- */
@media(max-width:720px){
  /* A post body can contain a wide table - the "Importing Wine" post has
     one - and a table at its natural width pushes the whole page sideways.
     Gutenberg wraps tables in a figure, so the figure scrolls instead. */
  .entry .wp-block-table{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .entry > table{display:block;overflow-x:auto}

  /* Previous and next post titles cannot sit side by side at this width. */
  .entry-nav{flex-direction:column;gap:10px}
  .entry-nav-next{margin-left:0;text-align:left}
}
@media(max-width:420px){
  /* The search field and its button do not share a 320px row comfortably. */
  .ggg-searchform{flex-wrap:wrap}
  .ggg-searchform input{flex:1 1 100%}
  .ggg-searchform .btn{flex:1 1 100%;justify-content:center}
}

/* --- mobile pass, 11 Nov ------------------------------------------------
   Found by rendering the real pages locally at 360/390/414 with the real
   Montserrat and Lora, not by reading the CSS. Three fixes.
   ---------------------------------------------------------------------- */

/* 1. THE COOKIE PREFERENCES PANEL WAS ALWAYS OPEN.
   `inc/ggg-consent.php` hides it with the `hidden` attribute, which works by
   the UA stylesheet's `[hidden]{display:none}` - but an AUTHOR rule always
   beats a UA rule, and her `.cc-prefs{display:grid}` is exactly that. So the
   three preference rows were showing permanently, "Manage preferences" did
   nothing visible, and the banner stood 640-700px tall. On a 640px-tall
   phone its heading sat 59px ABOVE the top of the screen, unreachable.
   This is the same trap for any element hidden with `hidden` whose class
   also sets `display`. */
.cc-prefs[hidden]{display:none}

/* 2. And a hard stop so the banner can never exceed the screen again,
   whatever is added to it later. The modal already does this via
   `dialog.intro{max-height:calc(100vh - 32px)}`; the banner had no
   equivalent. */
.cc{max-height:calc(100vh - 40px);overflow-y:auto}
@media(max-width:520px){.cc{max-height:calc(100vh - 24px)}}

/* 3. Google renders the reCAPTCHA v2 checkbox as a FIXED 304px-wide iframe.
   It fits the screen, so it causes no sideways scroll - but it is wider than
   the form card's inner width on a phone (272px at 360px, 294px at 390px),
   so the grey widget overhangs the white card. Measured, not guessed.
   Scaling is the standard remedy; .86 brings it to 261px, inside the card at
   every width down to 320. Applies to all three forms, including the one in
   the modal, where the dialog's inner width is tighter still. */
@media(max-width:440px){
  .wpcf7-form .cf7sr-g-recaptcha{transform:scale(.86);transform-origin:left top;height:68px}
}
