@charset "UTF-8";
/* Gofer Coffee - hand-written styles.
   Kept out of css/site.*.css and css/blog-index.*.css: those are
   generated by Sitely with a content hash in the filename and are
   replaced on every re-export. This file must be linked AFTER the
   generated stylesheet so these rules win on equal specificity. */

/* ==========================================================
   1. HOME - hero (index.html)
   ========================================================== */
/* header height trim: shrink the reserved green bar so the logo/nav sit centred */
.s316{min-height:94px}
.s317{min-height:82px}
.ps363{margin-top:-82px}
.ps365{margin-top:-80px}
.s319,.s320,.s321{min-height:66px}
.s322{min-height:52px;height:52px}
.i62{min-width:161px;max-width:161px;min-height:52px;max-height:52px}
.ps368{margin-top:-38px}
.ps369{margin-top:27px}
.s328{min-height:82px}
.s329{min-height:82px;height:82px}
body{--ghh:clamp(500px, calc(96vh / var(--z,1) - 129px), 880px)}
.s331{min-height:var(--ghh)}
.s330{min-height:var(--ghh)}
/* full-bleed hero: break out of the 1200px column and sit flush under the header */
.gh-hero{position:absolute;left:calc(-39px - max(0px, (var(--ghvw,100vw) / var(--z,1) - var(--s,1200) * 1px) / 2));top:-129px;width:calc(var(--ghvw,100vw) / var(--z,1));height:calc(100% + 129px);display:flex;overflow:visible;box-sizing:border-box;background-color:#1b312b;font-family:"Jost 2",system-ui,-apple-system,sans-serif}
.gh-hero__copy{position:relative;z-index:2;width:53%;box-sizing:border-box;padding:0 56px 0 87px;display:flex;flex-direction:column;justify-content:center}
.gh-hero__kicker{margin:0 0 20px;font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;font-size:12px;line-height:1.2;letter-spacing:.2em;text-transform:uppercase;color:#dbf8b8}
.gh-hero__title{margin:0;font-family:"Jost 6","Jost 2",sans-serif;font-weight:700;font-size:clamp(42px,3.7vw,58px);line-height:1.09;letter-spacing:-.012em;color:#fff}
.gh-hero__title em{font-style:normal;color:#dbf8b8}
.gh-hero__tagline{margin:14px 0 0;font-family:"Jost 6","Jost 2",sans-serif;font-weight:700;font-size:18px;line-height:1.4;color:#fff}
.gh-hero__text{margin:16px 0 0;max-width:440px;font-size:15px;line-height:1.8;font-weight:300;color:rgba(255,255,255,.7)}
.gh-hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:38px}
.gh-hero__btn{display:inline-flex;align-items:center;gap:10px;padding:16px 30px;border:0;-webkit-border-radius:999px;border-radius:999px;background-color:#dbf8b8;color:#1b312b;font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;font-size:15px;line-height:1;white-space:nowrap;text-decoration:none;cursor:pointer;transition:background-color .25s,color .25s,transform .25s,box-shadow .25s}
.gh-hero__btn:hover{background-color:#21886b;color:#fff;-webkit-transform:translateY(-2px);transform:translateY(-2px);-webkit-box-shadow:0 14px 30px -12px rgba(0,0,0,.65);box-shadow:0 14px 30px -12px rgba(0,0,0,.65)}
.gh-hero__btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
.gh-hero__btn:hover svg{-webkit-transform:translateX(4px);transform:translateX(4px)}
.gh-hero__btn--ghost{background-color:transparent;color:#dbf8b8;-webkit-box-shadow:inset 0 0 0 1px rgba(219,248,184,.45);box-shadow:inset 0 0 0 1px rgba(219,248,184,.45)}
.gh-hero__btn--ghost:hover{background-color:#dbf8b8;color:#1b312b;-webkit-box-shadow:none;box-shadow:none}
.gh-hero__media{position:relative;width:47%;overflow:hidden}
.gh-hero__media picture{display:block;width:100%;height:100%}
/* header: no background over the hero, green once the page scrolls */
.s316.c100{background-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.ps363 .c102{display:none}
.ps363{background-color:transparent;-webkit-transition:background-color .35s ease;transition:background-color .35s ease}
.gh-scrolled .ps363{background-color:#21886b}
/* keeps the logo and nav legible over the video */
.gh-hero__scrim{position:absolute;left:0;top:0;width:100%;height:240px;z-index:2;pointer-events:none;background:-webkit-linear-gradient(top, rgba(8,18,15,.62), rgba(8,18,15,.26) 45%, rgba(8,18,15,0));background:linear-gradient(to bottom, rgba(8,18,15,.62), rgba(8,18,15,.26) 45%, rgba(8,18,15,0))}
.gh-hero__media video.gh-hero__img{background-color:#1b312b}
.gh-hero__img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center}
.gh-hero__mark{position:absolute;right:26px;bottom:24px;width:88px;height:114px;pointer-events:none;opacity:.95}
.gh-hero__mark svg{display:block;width:100%;height:100%}
.gh-hero__notch{position:absolute;left:50%;bottom:0;width:0;height:0;z-index:2;pointer-events:none}
.gh-hero__notch::before,.gh-hero__notch::after{content:"";position:absolute;bottom:0}
.gh-hero__notch::before,.gh-hero__notch::after{width:55.97px;height:43.99px}
.gh-hero__notch::before{left:-102.61px;background:radial-gradient(circle 57.6px at 0 -13.61px, rgba(255,255,255,0) 57.1px, #fff 57.6px)}
.gh-hero__notch::after{left:46.64px;background:radial-gradient(circle 57.6px at 100% -13.61px, rgba(255,255,255,0) 57.1px, #fff 57.6px)}
.gh-hero__scroll{position:absolute;left:50%;bottom:-15.36px;z-index:3;width:96px;height:96px;margin:0;padding:0;border:0;-webkit-border-radius:50%;border-radius:50%;background-color:#fff;color:#1b312b;cursor:pointer;-webkit-transform:translateX(-50%);transform:translateX(-50%);transition:background-color .25s,color .25s}
.gh-hero__scroll::before{content:"";position:absolute;left:0;top:50%;width:100%;height:32.64px;background-color:#fff}
.gh-hero__scroll:hover .gh-hero__arrow{background-color:#21886b}
.gh-hero__scroll svg{position:absolute;left:0;top:0;width:100%;height:100%;fill:currentColor;-webkit-animation:gh-spin 18s linear infinite;animation:gh-spin 18s linear infinite}
.gh-hero__scroll text{font-family:"Jost 4","Jost 2",sans-serif;font-size:8.4px;font-weight:500;letter-spacing:1.1px;text-transform:uppercase}
.gh-hero__arrow{transition:background-color .25s;position:absolute;left:50%;top:50%;width:34px;height:34px;margin:-17px 0 0 -17px;-webkit-border-radius:50%;border-radius:50%;background-color:#1b312b}
.gh-hero__arrow:before{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;margin:-6px 0 0 -4px;border-right:1.6px solid #dbf8b8;border-bottom:1.6px solid #dbf8b8;-webkit-transform:rotate(45deg);transform:rotate(45deg)}
.gh-hero__arrow:after{content:"";position:absolute;left:50%;top:50%;width:1.6px;height:13px;margin:-8px 0 0 -.8px;background-color:#dbf8b8}
@-webkit-keyframes gh-spin{to{-webkit-transform:rotate(360deg)}}
@keyframes gh-spin{to{transform:rotate(360deg)}}
@media (min-width:960px) and (max-width:1199px){
.s316{min-height:73px}
.s317{min-height:65px}
.ps363{margin-top:-65px}
.ps365{margin-top:-63px}
.s319,.s320,.s321{min-height:53px}
.s322{min-height:42px;height:42px}
.i62{min-width:128px;max-width:128px;min-height:42px;max-height:42px}
.ps368{margin-top:-31px}
.ps369{margin-top:22px}
.s328{min-height:65px}
.s329{min-height:65px;height:65px}
body{--ghh:clamp(430px, calc(96vh / var(--z,1) - 101px), 706px)}
.s331{min-height:var(--ghh)}
.s330{min-height:var(--ghh)}
.gh-hero{left:calc(-31px - max(0px, (var(--ghvw,100vw) / var(--z,1) - var(--s,1200) * 1px) / 2));top:-101px;height:calc(100% + 101px)}
.gh-hero__copy{padding:0 44px 0 70px}
.gh-hero__kicker{margin-bottom:16px;font-size:10px}
.gh-hero__title{font-size:clamp(34px,3.6vw,44px)}
.gh-hero__tagline{margin-top:12px;font-size:15px}
.gh-hero__text{margin-top:13px;max-width:352px;font-size:12px}
.gh-hero__actions{gap:12px;margin-top:30px}
.gh-hero__btn{padding:14px 25px;font-size:14px}
.gh-hero__mark{right:21px;bottom:19px;width:70px;height:91px}
.gh-hero__scroll{bottom:-12.32px;width:77px;height:77px}
.gh-hero__scroll::before{content:"";position:absolute;left:0;top:50%;width:100%;height:26.18px;background-color:#fff}
.gh-hero__notch::before,.gh-hero__notch::after{width:44.89px;height:35.28px}
.gh-hero__notch::before{left:-82.3px;background:radial-gradient(circle 46.2px at 0 -10.92px, rgba(255,255,255,0) 45.7px, #fff 46.2px)}
.gh-hero__notch::after{left:37.41px;background:radial-gradient(circle 46.2px at 100% -10.92px, rgba(255,255,255,0) 45.7px, #fff 46.2px)}
.gh-hero__scroll text{font-size:8.6px;letter-spacing:1px}
.gh-hero__arrow{width:28px;height:28px;margin:-14px 0 0 -14px}
}
@media (min-width:768px) and (max-width:959px){
.s316{min-height:58px}
.s317{min-height:52px}
.ps363{margin-top:-52px}
.ps365{margin-top:-50px}
.s319,.s320,.s321{min-height:42px}
.s322{min-height:33px;height:33px}
.i62{min-width:103px;max-width:103px;min-height:33px;max-height:33px}
.ps368{margin-top:-25px}
.ps369{margin-top:17px}
.s328{min-height:52px}
.s329{min-height:52px;height:52px}
body{--ghh:clamp(352px, calc(96vh / var(--z,1) - 81px), 578px)}
.s331{min-height:var(--ghh)}
.s330{min-height:var(--ghh)}
.gh-hero{left:calc(-25px - max(0px, (var(--ghvw,100vw) / var(--z,1) - var(--s,1200) * 1px) / 2));top:-81px;height:calc(100% + 81px)}
.gh-hero__copy{padding:0 34px 0 56px}
.gh-hero__kicker{margin-bottom:12px;font-size:9px;letter-spacing:.16em}
.gh-hero__title{font-size:clamp(28px,3.6vw,35px)}
.gh-hero__tagline{margin-top:10px;font-size:12px}
.gh-hero__text{margin-top:10px;max-width:282px;font-size:10px;line-height:1.7}
.gh-hero__actions{gap:10px;margin-top:24px}
.gh-hero__btn{padding:12px 21px;font-size:13px}
.gh-hero__mark{right:17px;bottom:15px;width:56px;height:73px}
.gh-hero__scroll{bottom:-9.92px;width:62px;height:62px}
.gh-hero__scroll::before{content:"";position:absolute;left:0;top:50%;width:100%;height:21.08px;background-color:#fff}
.gh-hero__notch::before,.gh-hero__notch::after{width:36.15px;height:28.41px}
.gh-hero__notch::before{left:-66.27px;background:radial-gradient(circle 37.2px at 0 -8.79px, rgba(255,255,255,0) 36.7px, #fff 37.2px)}
.gh-hero__notch::after{left:30.12px;background:radial-gradient(circle 37.2px at 100% -8.79px, rgba(255,255,255,0) 36.7px, #fff 37.2px)}
.gh-hero__scroll text{font-size:8.8px;letter-spacing:.9px}
.gh-hero__arrow{width:22px;height:22px;margin:-11px 0 0 -11px}
.gh-hero__arrow:before{width:6px;height:6px;margin:-5px 0 0 -3.5px}
.gh-hero__arrow:after{height:11px;margin:-7px 0 0 -.8px}
}
@media (max-width:767px){
.gh-hero{display:block}
.gh-hero__media{width:100%;height:42%}
.gh-hero__copy{width:100%;height:58%;padding:0 30px;text-align:center;align-items:center}
.gh-hero__text{max-width:none}
.gh-hero__actions{justify-content:center}
}
@media (min-width:480px) and (max-width:767px){
.s316{min-height:71px}
.s317{min-height:71px}
.ps363{margin-top:-71px}
.ps365{margin-top:-61px}
.s319,.s320,.s321{min-height:51px}
.s322{min-height:45px;height:45px}
.i62{left:16px;min-width:139px;max-width:139px;min-height:45px;max-height:45px}
.ps368{margin-top:-39px}
.ps369{margin-top:19px}
.s328{min-height:36px}
.s329{min-height:36px;height:36px}
.ps376{margin-top:-36px}
body{--ghh:clamp(556px, calc(96vh / var(--z,1) - 93px), 834px)}
.s331{min-height:var(--ghh)}
.s330{min-height:var(--ghh)}
.gh-hero{left:calc(-15px - max(0px, (var(--ghvw,100vw) / var(--z,1) - var(--s,1200) * 1px) / 2));top:-93px;height:calc(100% + 93px)}
.gh-hero__copy{padding:0 24px}
.gh-hero__kicker{margin-bottom:14px;font-size:11px;letter-spacing:.18em}
.gh-hero__title{font-size:clamp(28px,6vw,36px)}
.gh-hero__tagline{margin-top:10px;font-size:14px}
.gh-hero__text{margin-top:10px;max-width:none;font-size:13px;line-height:1.7}
.gh-hero__actions{gap:12px;margin-top:26px}
.gh-hero__btn{padding:14px 26px;font-size:14px}
.gh-hero__mark{right:18px;bottom:auto;top:16px;width:46px;height:60px}
.gh-hero__notch{left:50%;bottom:0}
.gh-hero__notch::before,.gh-hero__notch::after{width:34.98px;height:27.49px}
.gh-hero__notch::before{left:-64.13px;background:radial-gradient(circle 36px at 0 -8.51px, rgba(255,255,255,0) 35.5px, #fff 36px)}
.gh-hero__notch::after{left:29.15px;background:radial-gradient(circle 36px at 100% -8.51px, rgba(255,255,255,0) 35.5px, #fff 36px)}
.gh-hero__scroll{left:50%;bottom:-9.6px;width:60px;height:60px}
.gh-hero__scroll::before{content:"";position:absolute;left:0;top:50%;width:100%;height:20.4px;background-color:#fff}
.gh-hero__scroll text{font-size:8.8px;letter-spacing:.8px}
.gh-hero__arrow{width:22px;height:22px;margin:-11px 0 0 -11px}
.gh-hero__arrow:before{width:6px;height:6px;margin:-5px 0 0 -3.5px}
.gh-hero__arrow:after{height:11px;margin:-7px 0 0 -.8px}
}
@media (max-width:479px){
.s316{min-height:48px}
.s317{min-height:47px}
.ps363{margin-top:-47px}
.ps365{margin-top:-41px}
.s319,.s320,.s321{min-height:34px}
.s322{min-height:30px;height:30px}
.i62{left:11px;min-width:92px;max-width:92px;min-height:30px;max-height:30px}
.ps368{margin-top:-26px}
.ps369{margin-top:13px}
.s328{min-height:24px}
.s329{min-height:24px;height:24px}
.ps376{margin-top:-24px}
body{--ghh:clamp(406px, calc(96vh / var(--z,1) - 63px), 600px)}
.s331{min-height:var(--ghh)}
.s330{min-height:var(--ghh)}
.gh-hero{left:calc(-10px - max(0px, (var(--ghvw,100vw) / var(--z,1) - var(--s,1200) * 1px) / 2));top:-63px;height:calc(100% + 63px)}
.gh-hero__media{height:38%}
.gh-hero__copy{height:62%;padding:0 16px}
.gh-hero__kicker{margin-bottom:10px;font-size:8px;letter-spacing:.16em}
.gh-hero__title{font-size:clamp(24px,7.4vw,30px)}
.gh-hero__tagline{margin-top:7px;font-size:11px}
.gh-hero__text{display:none}
.gh-hero__actions{gap:10px;margin-top:20px}
.gh-hero__btn{padding:13px 22px;font-size:13px}
.gh-hero__mark{right:12px;bottom:auto;top:11px;width:31px;height:40px}
.gh-hero__notch{left:50%;bottom:0}
.gh-hero__notch::before,.gh-hero__notch::after{width:26.82px;height:21.08px}
.gh-hero__notch::before{left:-49.17px;background:radial-gradient(circle 27.6px at 0 -6.52px, rgba(255,255,255,0) 27.1px, #fff 27.6px)}
.gh-hero__notch::after{left:22.35px;background:radial-gradient(circle 27.6px at 100% -6.52px, rgba(255,255,255,0) 27.1px, #fff 27.6px)}
.gh-hero__scroll{left:50%;bottom:-7.36px;width:46px;height:46px}
.gh-hero__scroll::before{content:"";position:absolute;left:0;top:50%;width:100%;height:15.64px;background-color:#fff}
.gh-hero__scroll text{font-size:9px;letter-spacing:.5px}
.gh-hero__arrow{width:17px;height:17px;margin:-8.5px 0 0 -8.5px}
.gh-hero__arrow:before{width:5px;height:5px;margin:-4px 0 0 -3px}
.gh-hero__arrow:after{height:9px;margin:-5.5px 0 0 -.8px}
}

/* ==========================================================
   2. HOME - page sections (index.html)
   ========================================================== */
/* ===== Gofer Coffee - home page sections ===== */
.gc{display:block;position:relative;width:100%;box-sizing:border-box;
font-family:"Jost 2",system-ui,-apple-system,sans-serif;color:#1b312b;
-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.gc *,.gc *::before,.gc *::after{box-sizing:border-box}
.gc-wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 clamp(20px,4.5vw,60px)}

/* shared type */
.gc-eyebrow{display:flex;align-items:center;gap:12px;margin:0 0 20px;font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;font-size:11px;line-height:1.2;letter-spacing:.24em;text-transform:uppercase;color:#21886b}
.gc-eyebrow::before{content:"";flex:none;width:32px;height:1px;background-color:currentColor;opacity:.55}
.gc-h2{margin:0;font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;font-size:clamp(26px,2.9vw,40px);line-height:1.16;color:#1b312b}
.gc-h2 em{font-style:normal;color:#21886b}
.gc-p{margin:18px 0 0;font-family:"Jost 2",sans-serif;font-weight:300;font-size:16px;line-height:1.95;color:rgba(27,49,43,.7)}
.gc-img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}
.gc-frame{position:relative;overflow:hidden;-webkit-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 26px 60px -32px rgba(27,49,43,.55);box-shadow:0 26px 60px -32px rgba(27,49,43,.55)}
.gc-frame picture{display:block;width:100%;height:100%}

/* dark sections */
.gc--dark{color:#f1f7ea}
.gc--dark .gc-eyebrow{color:#dbf8b8}
.gc--dark .gc-h2{color:#f6faf9}
.gc--dark .gc-h2 em{color:#dbf8b8}
.gc--dark .gc-p{color:rgba(241,247,234,.72)}

/* buttons */
.gc-btn{display:inline-flex;align-items:center;gap:12px;margin-top:34px;padding:16px 32px;border:0;-webkit-border-radius:999px;border-radius:999px;background-color:#dbf8b8;color:#1b312b;font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;font-size:15px;line-height:1;text-decoration:none;cursor:pointer;transition:background-color .25s,color .25s,transform .25s,box-shadow .25s}
.gc-btn:hover{background-color:#21886b;color:#fff;-webkit-transform:translateY(-2px);transform:translateY(-2px);-webkit-box-shadow:0 14px 30px -12px rgba(27,49,43,.6);box-shadow:0 14px 30px -12px rgba(27,49,43,.6)}
.gc-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
.gc-btn:hover svg{-webkit-transform:translateX(4px);transform:translateX(4px)}
.gc-btn--ink{background-color:#1b312b;color:#dbf8b8}
.gc-btn--ink:hover{background-color:#21886b;color:#fff}

/* 1. story */
.gc-story{background-color:#fff;padding:clamp(72px,9vw,130px) 0}
.gc-story__grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1fr);gap:clamp(40px,6vw,86px);align-items:center}
.gc-story__media{position:relative}
.gc-story__media .gc-frame{aspect-ratio:1/1}
.gc-story__outline{position:absolute;left:-18px;top:-18px;right:32px;bottom:32px;border:1px solid rgba(33,136,107,.38);border-radius:6px;pointer-events:none}
.gc-story__badge{position:absolute;right:-14px;bottom:-14px;display:flex;align-items:center;gap:14px;padding:18px 24px;border-radius:4px;background-color:#1b312b;-webkit-box-shadow:0 18px 40px -20px rgba(27,49,43,.8);box-shadow:0 18px 40px -20px rgba(27,49,43,.8)}
.gc-story__badge b{font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;font-size:26px;line-height:1;color:#dbf8b8}
.gc-story__badge span{font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;font-size:10px;line-height:1.5;letter-spacing:.14em;text-transform:uppercase;color:rgba(241,247,234,.78)}
.gc-marks{display:flex;flex-wrap:wrap;gap:10px;margin:34px 0 0;padding:0;list-style:none}
.gc-marks li{padding:9px 18px;border:1px solid rgba(27,49,43,.16);border-radius:999px;font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;font-size:11px;line-height:1;letter-spacing:.12em;text-transform:uppercase;color:rgba(27,49,43,.68)}

/* 2. philosophy */
.gc-phil{background-color:#f7f5ef;padding:clamp(72px,9vw,130px) 0}
.gc-phil__head{max-width:760px;margin:0 0 clamp(40px,5vw,64px)}
.gc-phil__lead{margin:20px 0 0;font-family:"Jost 2",sans-serif;font-weight:300;font-size:16px;line-height:1.95;color:rgba(27,49,43,.72)}
.gc-phil__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.84fr);gap:clamp(40px,6vw,80px);align-items:start}
.gc-pillar{position:relative;padding:30px 0 30px 76px;border-top:1px solid rgba(27,49,43,.12)}
.gc-pillar:last-child{border-bottom:1px solid rgba(27,49,43,.12)}
.gc-pillar__n{position:absolute;left:0;top:32px;font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;font-size:14px;line-height:1;letter-spacing:.1em;color:rgba(33,136,107,.6)}
.gc-pillar__t{margin:0;font-family:"Jost 15","Jost 12",sans-serif;font-weight:700;font-style:italic;font-size:19px;line-height:1.45;color:#21886b}
.gc-pillar__p{margin:12px 0 0;font-family:"Jost 2",sans-serif;font-weight:300;font-size:15px;line-height:1.95;color:rgba(27,49,43,.7)}
.gc-phil__media{align-self:stretch;min-height:480px}

/* 3. origins */
.gc-origins{padding:clamp(76px,9vw,132px) 0;background-image:-webkit-linear-gradient(top,#1b312b 0%,#21886b 100%);background-image:linear-gradient(180deg,#1b312b 0%,#21886b 100%)}
.gc-origins__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.84fr);gap:clamp(40px,6vw,80px);align-items:center}
.gc-origins__note{margin-top:34px;padding:26px 30px;border-left:2px solid #dbf8b8;border-radius:0 6px 6px 0;background-color:rgba(255,255,255,.06)}
.gc-origins__note h3{margin:0;font-family:"Jost 6","Jost 2",sans-serif;font-weight:700;font-size:17px;line-height:1.5;color:#dbf8b8}
.gc-origins__note p{margin:10px 0 0;font-family:"Jost 2",sans-serif;font-weight:300;font-size:15px;line-height:1.9;color:rgba(241,247,234,.72)}
.gc-origins__media{aspect-ratio:4/3;-webkit-box-shadow:0 30px 70px -34px rgba(0,0,0,.65);box-shadow:0 30px 70px -34px rgba(0,0,0,.65)}

/* 4. pull quote */
.gc-quote{background-color:#fff;padding:clamp(72px,9vw,130px) 0}
.gc-quote__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:clamp(40px,6vw,80px);align-items:center}
.gc-quote__media{aspect-ratio:16/10}
.gc-quote__body{margin:0}
.gc-quote__mark{display:block;font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;font-size:78px;line-height:.62;color:rgba(33,136,107,.3)}
.gc-quote__text{margin:20px 0 0;font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;font-size:clamp(22px,2.4vw,32px);line-height:1.32;color:#1b312b}
.gc-quote__text em{font-style:normal;color:#21886b}




/* responsive */
@media (max-width:959px){
.gc-story__grid,.gc-phil__grid,.gc-origins__grid,.gc-quote__grid{grid-template-columns:minmax(0,1fr)}
.gc-story__media,.gc-phil__media,.gc-origins__media,.gc-quote__media{max-width:560px}
.gc-phil__media{min-height:0}
.gc-story__media .gc-frame,.gc-phil__media,.gc-origins__media,.gc-quote__media{aspect-ratio:4/3}
}
@media (max-width:767px){
.gc-story__outline{display:none}
.gc-story__badge{right:14px;bottom:14px;padding:14px 18px}
.gc-story__badge b{font-size:21px}
.gc-pillar{padding:26px 0 26px 60px}
.gc-quote__mark{font-size:62px}
}
@media (max-width:479px){
.gc-pillar{padding:48px 0 26px 0}
.gc-pillar__n{top:24px}
}

/* ==========================================================
   3. JOURNAL - blog index (blog-index.php)
   ========================================================== */
/* ===== Gofer Journal - blog index ===== */
.gj{display:block;position:relative;width:100%;box-sizing:border-box;
font-family:"Jost 2",system-ui,-apple-system,sans-serif;color:#1b312b;
-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.gj *,.gj *::before,.gj *::after{box-sizing:border-box}
.gj-wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 clamp(20px,4.5vw,60px)}
.gj-img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.gj a{text-decoration:none}
.gj-hero,.gj-card,.gj-side__item,.gj-feature{color:inherit}

.gj-eyebrow{display:flex;align-items:center;gap:12px;margin:0 0 20px;font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;font-size:11px;line-height:1.2;letter-spacing:.24em;text-transform:uppercase;color:#21886b}
.gj-eyebrow::before{content:"";flex:none;width:32px;height:1px;background-color:currentColor;opacity:.55}
.gj-pill{display:inline-flex;align-items:center;padding:7px 15px;-webkit-border-radius:999px;border-radius:999px;background-color:#dbf8b8;color:#1b312b;font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;font-size:10px;line-height:1;letter-spacing:.14em;text-transform:uppercase}
.gj-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;font-size:11px;line-height:1.4;letter-spacing:.13em;text-transform:uppercase;color:rgba(27,49,43,.5)}
.gj-meta span::after{content:"·";margin-left:8px;opacity:.6}
.gj-meta span:last-child::after{content:"";margin:0}

/* masthead */
.gj-masthead{background-color:#fff;padding:clamp(56px,6.5vw,96px) 0 clamp(34px,4vw,54px)}
.gj-h1{margin:0;max-width:16ch;font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;font-size:clamp(30px,3.4vw,46px);line-height:1.12;color:#1b312b}
.gj-h1 em{font-style:normal;color:#21886b}
.gj-masthead__lead{margin:20px 0 0;max-width:56ch;font-family:"Jost 2",sans-serif;font-weight:300;font-size:16px;line-height:1.95;color:rgba(27,49,43,.7)}
.gj-masthead__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-top:clamp(28px,3.4vw,44px);padding-top:22px;border-top:1px solid rgba(27,49,43,.12)}

/* featured + latest */
.gj-lead{background-color:#fff;padding:0 0 clamp(60px,7vw,100px)}
.gj-lead__grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(28px,3.4vw,44px);align-items:start}
.gj-hero{position:relative;display:block;overflow:hidden;-webkit-border-radius:6px;border-radius:6px;aspect-ratio:16/11;background-color:#1b312b;-webkit-box-shadow:0 26px 60px -32px rgba(27,49,43,.55);box-shadow:0 26px 60px -32px rgba(27,49,43,.55)}
.gj-hero picture{display:block;width:100%;height:100%}
.gj-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:78%;background-image:-webkit-linear-gradient(top,rgba(27,49,43,0) 0%,rgba(27,49,43,.92) 100%);background-image:linear-gradient(180deg,rgba(27,49,43,0) 0%,rgba(27,49,43,.92) 100%)}
.gj-hero:hover .gj-img{-webkit-transform:scale(1.04);transform:scale(1.04)}
.gj-hero__body{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:clamp(22px,2.8vw,38px)}
.gj-hero__title{margin:16px 0 0;max-width:22ch;font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;font-size:clamp(19px,1.9vw,28px);line-height:1.24;color:#fff}
.gj-hero__meta{margin-top:12px;color:rgba(241,247,234,.72)}
.gj-hero__meta span::after{color:rgba(241,247,234,.5)}

.gj-feature{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(26px,3.2vw,44px);align-items:center}
.gj-feature__media{position:relative;overflow:hidden;-webkit-border-radius:6px;border-radius:6px;aspect-ratio:4/3;background-color:#1b312b;-webkit-box-shadow:0 26px 60px -32px rgba(27,49,43,.55);box-shadow:0 26px 60px -32px rgba(27,49,43,.55)}
.gj-feature__media picture{display:block;width:100%;height:100%}
.gj-feature:hover .gj-img{-webkit-transform:scale(1.04);transform:scale(1.04)}
.gj-feature__title{margin:18px 0 0;font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;font-size:clamp(23px,2.5vw,34px);line-height:1.2;color:#1b312b;transition:color .2s}
.gj-feature:hover .gj-feature__title{color:#21886b}
.gj-feature__excerpt{margin:16px 0 0;max-width:52ch;font-family:"Jost 2",sans-serif;font-weight:300;font-size:15px;line-height:1.95;color:rgba(27,49,43,.7)}
.gj-feature__foot{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:26px;padding-top:20px;border-top:1px solid rgba(27,49,43,.12)}
.gj-side__t{margin:0 0 6px;font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;font-size:13px;line-height:1;letter-spacing:.18em;text-transform:uppercase;color:#1b312b}
.gj-side__list{margin:0;padding:0;list-style:none}
.gj-side__item{display:grid;grid-template-columns:104px minmax(0,1fr);gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid rgba(27,49,43,.12)}
.gj-side__thumb{overflow:hidden;-webkit-border-radius:6px;border-radius:6px;aspect-ratio:4/3;background-color:#f7f5ef}
.gj-side__thumb picture{display:block;width:100%;height:100%}
.gj-side__item:hover .gj-img{-webkit-transform:scale(1.05);transform:scale(1.05)}
.gj-side__title{margin:0;font-family:"Jost 6","Jost 2",sans-serif;font-weight:700;font-size:15px;line-height:1.45;color:#1b312b;transition:color .2s}
.gj-side__item:hover .gj-side__title{color:#21886b}
.gj-side__meta{margin-top:8px;font-size:10px;letter-spacing:.12em}
.gj-empty{max-width:640px;padding:clamp(34px,4vw,54px);border:1px dashed rgba(27,49,43,.2);-webkit-border-radius:6px;border-radius:6px;background-color:#f7f5ef}
.gj-empty h2{margin:0;font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;font-size:clamp(20px,2.1vw,26px);line-height:1.25;color:#1b312b}
.gj-empty p{margin:14px 0 0;font-family:"Jost 2",sans-serif;font-weight:300;font-size:15px;line-height:1.9;color:rgba(27,49,43,.7)}
.gj-empty .gj-btn{margin-top:26px;background-color:#1b312b;color:#dbf8b8}
.gj-empty .gj-btn:hover{background-color:#21886b;color:#fff}
.gj-side__empty{margin:14px 0 0;padding:26px;border:1px dashed rgba(27,49,43,.18);-webkit-border-radius:6px;border-radius:6px;font-family:"Jost 2",sans-serif;font-weight:300;font-size:14px;line-height:1.8;color:rgba(27,49,43,.6)}

/* more stories */
.gj-more{background-color:#f7f5ef;padding:clamp(60px,7vw,100px) 0}
.gj-more__head{margin:0 0 clamp(28px,3.4vw,44px)}
.gj-h2{margin:0;font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;font-size:clamp(24px,2.6vw,34px);line-height:1.18;color:#1b312b}
.gj-h2 em{font-style:normal;color:#21886b}
.gj-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.4vw,30px)}
.gj-card{display:flex;flex-direction:column;overflow:hidden;-webkit-border-radius:6px;border-radius:6px;border:1px solid rgba(27,49,43,.09);background-color:#fff;transition:transform .3s,box-shadow .3s,border-color .3s}
.gj-card:hover{-webkit-transform:translateY(-4px);transform:translateY(-4px);border-color:rgba(33,136,107,.3);-webkit-box-shadow:0 22px 44px -26px rgba(27,49,43,.5);box-shadow:0 22px 44px -26px rgba(27,49,43,.5)}
.gj-card__media{position:relative;overflow:hidden;aspect-ratio:3/2;background-color:#f7f5ef}
.gj-card__media picture{display:block;width:100%;height:100%}
.gj-card:hover .gj-img{-webkit-transform:scale(1.05);transform:scale(1.05)}
.gj-card__pill{position:absolute;left:16px;top:16px;z-index:2}
.gj-card__body{display:flex;flex-direction:column;flex:1 1 auto;padding:22px 24px 26px}
.gj-card__title{margin:0;font-family:"Jost 6","Jost 2",sans-serif;font-weight:700;font-size:18px;line-height:1.4;color:#1b312b;transition:color .2s}
.gj-card:hover .gj-card__title{color:#21886b}
.gj-card__excerpt{margin:12px 0 0;font-family:"Jost 2",sans-serif;font-weight:300;font-size:14px;line-height:1.85;color:rgba(27,49,43,.68)}
.gj-card__foot{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:auto;padding-top:20px}
.gj-card__more{display:inline-flex;align-items:center;gap:8px;font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;font-size:12px;line-height:1;letter-spacing:.1em;text-transform:uppercase;color:#21886b}
.gj-card__more svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
.gj-card:hover .gj-card__more svg{-webkit-transform:translateX(4px);transform:translateX(4px)}

/* search + category filters */
.gj-filters{margin-top:clamp(24px,3vw,34px);padding-top:22px;border-top:1px solid rgba(27,49,43,.12)}
.gj-filters__field{display:flex;gap:10px;max-width:520px}
.gj-filters__field input{flex:1 1 auto;min-width:0;height:46px;padding:0 20px;border:1px solid rgba(27,49,43,.18);-webkit-border-radius:999px;border-radius:999px;background-color:#fff;font-family:"Jost 3","Jost 2",sans-serif;font-weight:400;font-size:14px;color:#1b312b;outline:0;transition:border-color .2s}
.gj-filters__field input:focus{border-color:#21886b}
.gj-filters__field button{flex:none;height:46px;padding:0 26px;border:0;-webkit-border-radius:999px;border-radius:999px;background-color:#1b312b;color:#dbf8b8;font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;font-size:14px;line-height:1;cursor:pointer;transition:background-color .25s,color .25s}
.gj-filters__field button:hover{background-color:#21886b;color:#fff}
.gj-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.gj-chip{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;-webkit-border-radius:999px;border-radius:999px;border:1px solid rgba(27,49,43,.16);font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;font-size:11px;line-height:1;letter-spacing:.1em;text-transform:uppercase;color:rgba(27,49,43,.7);transition:background-color .2s,border-color .2s,color .2s}
.gj-chip span{font-size:10px;opacity:.6}
.gj-chip:hover{border-color:#21886b;color:#21886b}
.gj-chip--on{background-color:#1b312b;border-color:#1b312b;color:#dbf8b8}
.gj-chip--on span{opacity:.75}
@media (max-width:479px){
.gj-filters__field{flex-direction:column}
.gj-filters__field button{width:100%}
}

/* pager */
.gj-pager{background-color:#f7f5ef;padding:0 0 clamp(60px,7vw,100px)}
.gj-pager--solo{background-color:#fff}
.gj-pager__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px}
.gj-pg{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 12px;-webkit-border-radius:999px;border-radius:999px;border:1px solid rgba(27,49,43,.16);background-color:#fff;font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;font-size:14px;line-height:1;color:#1b312b;transition:background-color .2s,color .2s,border-color .2s}
.gj-pg:hover{background-color:#1b312b;border-color:#1b312b;color:#dbf8b8}
.gj-pg--on{background-color:#1b312b;border-color:#1b312b;color:#dbf8b8;pointer-events:none}
.gj-pg--arrow{width:42px;min-width:42px;padding:0}
.gj-pg--arrow svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.gj-pg--off{opacity:.35;pointer-events:none}

/* ==========================================================
   4. MENU - full menu page (menu.php)
   Production split layout: the list sits on the left over the fixed
   photo, the rotating cup and title on the dark panel to the right.
   .fx4 (the photo, responsive) comes from the generated stylesheet.
   ========================================================== */
.gm{position:relative;display:block;width:100%;box-sizing:border-box;
font-family:"Jost 2",system-ui,-apple-system,sans-serif;color:#f6faf9;
-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.gm *,.gm *::before,.gm *::after{box-sizing:border-box}

/* the dark panel on the right - same colour the generated page used */
.gm::before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;background-image:-webkit-linear-gradient(left,rgba(15,29,25,.78) 0%,rgba(15,29,25,.66) 34%,rgba(15,29,25,.3) 52%,rgba(15,29,25,0) 62%);background-image:linear-gradient(90deg,rgba(15,29,25,.78) 0%,rgba(15,29,25,.66) 34%,rgba(15,29,25,.3) 52%,rgba(15,29,25,0) 62%)}
/* The sticky header must float over the menu, not sit in its own band -
   otherwise the white page background shows through while its green panel
   is still faded out at the top of the page. Pull the stage up under it
   and give the list back the clearance as padding. Numbers are the header
   height (.s210) at each breakpoint. */
.gm-page .ps230{margin-top:0}
.gm{margin-top:-96px}
.gm-main{padding-top:136px}
.gm-page .ps190{margin-top:0}
.gm-panel{position:absolute;top:0;bottom:0;left:calc(50% + 71px);right:0;background-color:#0f1d19;pointer-events:none}

.gm-inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 530px;width:100%;max-width:1200px;margin:0 auto;padding:0 0 clamp(72px,8vw,120px)}

/* ---- left: the menu itself ---- */
.gm-main{padding-right:clamp(24px,3vw,56px)}
.gm-section+.gm-section{margin-top:clamp(26px,3vw,38px)}
.gm-section__title{margin:0 0 10px;font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;
font-size:clamp(20px,2vw,24px);line-height:1.459;color:#dbf8b8}
.gm-list{margin:0;padding:0;list-style:none;max-width:420px}
.gm-row{display:flex;align-items:baseline;gap:8px;padding:2px 0}
.gm-row__name{font-family:"Jost 3","Jost 2",sans-serif;font-weight:400;font-size:14px;line-height:1.86;color:#f6faf9}
.gm-row__dots{flex:1 1 auto;min-width:16px;border-bottom:1px dashed rgba(246,250,249,.45);transform:translateY(-.3em)}
.gm-row__price{flex:none;font-family:"Jost 3","Jost 2",sans-serif;font-weight:400;font-size:14px;line-height:1.86;white-space:nowrap;color:#f6faf9}
.gm-note{margin:clamp(26px,3vw,38px) 0 0;max-width:420px;font-family:"Jost 3","Jost 2",sans-serif;
font-size:12px;line-height:1.7;letter-spacing:.03em;color:rgba(246,250,249,.5)}
.gm-empty{max-width:420px;padding:28px;border:1px dashed rgba(219,248,184,.35);-webkit-border-radius:6px;border-radius:6px;background-color:rgba(0,0,0,.25)}
.gm-empty h2{margin:0;font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;font-size:22px;line-height:1.3;color:#dbf8b8}
.gm-empty p{margin:12px 0 0;font-weight:300;font-size:15px;line-height:1.8;color:rgba(246,250,249,.78)}
.gm-empty a{color:#dbf8b8}

/* ---- right: rotating cup + title ---- */
.gm-aside{position:-webkit-sticky;position:sticky;top:96px;align-self:start;height:calc(100vh - 96px);min-height:420px;display:flex;align-items:center}
/* the cup sits astride the seam: half over the photo, half over the panel,
   with the title beside it. The offset is half the cup width (.s205). */
.gm-aside__row{display:flex;align-items:center;gap:clamp(16px,2vw,30px);width:100%}
.gm-aside__text{min-width:0}
.gm-cup{position:relative;flex:none;margin-left:-165px}
.gm-cup__spin{display:block;width:100%;height:100%;will-change:transform}
.gm-cup img,.gm-cup picture{display:block;width:100%;height:auto}
.gm-title{margin:0;padding-left:0;font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;font-size:clamp(34px,4.4vw,62px);line-height:1.12;color:#dbf8b8}
.gm-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(16px,2vw,24px);padding-left:0}
.gm-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border:0;-webkit-border-radius:999px;border-radius:999px;
background-color:#dbf8b8;color:#1b312b;font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;font-size:14px;line-height:1;
text-decoration:none;cursor:pointer;transition:background-color .25s,color .25s,transform .25s}
.gm-btn:hover{background-color:#21886b;color:#fff;-webkit-transform:translateY(-2px);transform:translateY(-2px)}
.gm-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
.gm-btn:hover svg{-webkit-transform:translateX(4px);transform:translateX(4px)}
.gm-btn--ghost{background-color:transparent;color:#dbf8b8;-webkit-box-shadow:inset 0 0 0 1px rgba(219,248,184,.45);box-shadow:inset 0 0 0 1px rgba(219,248,184,.45)}
.gm-btn--ghost:hover{background-color:#dbf8b8;color:#1b312b;-webkit-box-shadow:none;box-shadow:none}

@media (min-width:960px) and (max-width:1199px){
.gm-inner{grid-template-columns:minmax(0,1fr) 420px;padding-left:24px;padding-right:24px}
.gm-aside{top:77px;height:calc(100vh - 77px)}
.gm{margin-top:-77px}
.gm-main{padding-top:112px}
.gm-panel{left:calc(50% + 56px)}
.gm-cup{margin-left:-132px}
.gm-title,.gm-cta{padding-left:0}
}
@media (min-width:768px) and (max-width:959px){
.gm-inner{grid-template-columns:minmax(0,1fr) 330px;padding-left:22px;padding-right:22px}
.gm-aside{top:61px;height:calc(100vh - 61px)}
.gm{margin-top:-61px}
.gm-main{padding-top:92px}
.gm-panel{left:calc(50% + 40px)}
.gm-cup{margin-left:-106px}
.gm-title,.gm-cta{padding-left:0}
.gm-list{max-width:360px}
}

/* ---- stacked on phones: the two columns no longer fit side by side ---- */
@media (max-width:767px){
.gm{background-color:#12241f}
.gm::before{background-image:none;background-color:rgba(15,29,25,.82)}
.gm-panel{display:none}
.gm-inner{grid-template-columns:minmax(0,1fr);padding:0 clamp(20px,5vw,32px) clamp(52px,8vw,72px)}
.gm{margin-top:-83px}
.gm-main{padding-top:0}
.gm-aside{padding-top:123px}
.gm-aside{position:static;order:-1;height:auto;min-height:0;display:block;margin-bottom:clamp(28px,5vw,40px);text-align:center}
.gm-aside__row{display:block}
.gm-cup{margin:0 auto}
.gm-title{margin-top:14px}
.gm-cta{justify-content:center}
.gm-title{padding-left:0;margin-top:14px}
.gm-cta{padding-left:0;justify-content:center}
.gm-main{padding-right:0}
.gm-list,.gm-note,.gm-empty{max-width:none}
}
@media (max-width:479px){
.gm-btn{width:100%;justify-content:center}
.gm{margin-top:-55px}
.gm-aside{padding-top:95px}
}

/* single post */
.gj-article{background-color:#fff;padding:clamp(40px,5vw,64px) 0 clamp(48px,6vw,80px)}
.gj-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 clamp(24px,3vw,34px);font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;font-size:11px;line-height:1;letter-spacing:.16em;text-transform:uppercase;color:rgba(27,49,43,.45)}
.gj-crumbs a{color:#21886b}
.gj-crumbs a:hover{text-decoration:underline}
.gj-article__head{max-width:780px}
.gj-article__title{margin:16px 0 0;font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;font-size:clamp(28px,3.6vw,46px);line-height:1.14;letter-spacing:-.01em;color:#1b312b}
.gj-article__lead{margin:18px 0 0;font-family:"Jost 2",sans-serif;font-weight:300;font-size:clamp(16px,1.5vw,19px);line-height:1.8;color:rgba(27,49,43,.7)}
.gj-article__meta{margin-top:22px;padding-top:18px;border-top:1px solid rgba(27,49,43,.12)}
.gj-article__cover{margin:clamp(28px,3.5vw,44px) 0 0;overflow:hidden;-webkit-border-radius:6px;border-radius:6px;background-color:#f7f5ef;-webkit-box-shadow:0 26px 60px -32px rgba(27,49,43,.5);box-shadow:0 26px 60px -32px rgba(27,49,43,.5)}
.gj-article__cover img{display:block;width:100%;height:auto}
.gj-tags{display:flex;flex-wrap:wrap;gap:8px;margin:clamp(30px,4vw,42px) auto 0;padding:0;max-width:760px;list-style:none}
.gj-tags a{display:inline-block;padding:8px 16px;-webkit-border-radius:999px;border-radius:999px;border:1px solid rgba(27,49,43,.16);font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;font-size:11px;line-height:1;letter-spacing:.08em;color:rgba(27,49,43,.7);transition:border-color .2s,color .2s}
.gj-tags a:hover{border-color:#21886b;color:#21886b}
.gj-article__foot{max-width:760px;margin:clamp(34px,4vw,48px) auto 0;padding-top:clamp(26px,3vw,34px);border-top:1px solid rgba(27,49,43,.12)}
.gj-btn--ghost-ink{background-color:transparent;color:#1b312b;-webkit-box-shadow:inset 0 0 0 1px rgba(27,49,43,.25);box-shadow:inset 0 0 0 1px rgba(27,49,43,.25)}
.gj-btn--ghost-ink:hover{background-color:#1b312b;color:#dbf8b8;-webkit-box-shadow:none;box-shadow:none}

/* article body - only the tags the API can emit */
.gj-content{max-width:760px;margin:clamp(32px,4vw,48px) auto 0;font-family:"Jost 2",sans-serif;font-weight:300;font-size:17px;line-height:1.85;color:rgba(27,49,43,.82)}
.gj-content>:first-child{margin-top:0}
.gj-content h1,.gj-content h2,.gj-content h3,.gj-content h4,.gj-content h5,.gj-content h6{font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;line-height:1.22;color:#1b312b}
.gj-content h1{margin:2.2em 0 .6em;font-size:clamp(25px,2.6vw,32px)}
.gj-content h2{margin:2em 0 .55em;font-size:clamp(22px,2.2vw,27px)}
.gj-content h3{margin:1.8em 0 .5em;font-size:clamp(19px,1.8vw,22px)}
.gj-content h4,.gj-content h5,.gj-content h6{margin:1.6em 0 .45em;font-size:18px}
.gj-content p{margin:0 0 1.25em}
.gj-content strong{font-family:"Jost 6","Jost 2",sans-serif;font-weight:700;color:#1b312b}
.gj-content em{font-family:"Jost 11","Jost 2",sans-serif;font-style:italic}
.gj-content a{color:#21886b;text-decoration:underline;text-underline-offset:2px}
.gj-content a:hover{color:#1b312b}
.gj-content ul,.gj-content ol{margin:0 0 1.25em;padding-left:1.4em}
.gj-content ul{list-style:disc}
.gj-content ol{list-style:decimal}
.gj-content li{margin:0 0 .5em}
.gj-content blockquote{margin:1.6em 0;padding:4px 0 4px 22px;border-left:2px solid #dbf8b8;font-family:"Jost 15","Jost 11",sans-serif;font-style:italic;font-weight:700;font-size:19px;line-height:1.6;color:#21886b}
.gj-content blockquote p:last-child{margin-bottom:0}
.gj-content img{display:block;width:100%;height:auto;margin:1.6em 0;-webkit-border-radius:6px;border-radius:6px}
.gj-content code{padding:2px 7px;-webkit-border-radius:4px;border-radius:4px;background-color:#f1f5ef;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;color:#1b312b}
.gj-content pre{margin:1.6em 0;padding:18px 20px;overflow-x:auto;-webkit-border-radius:6px;border-radius:6px;background-color:#1b312b;color:#f1f7ea;font-size:14px;line-height:1.7}
.gj-content pre code{padding:0;background:none;color:inherit;font-size:inherit}
.gj-content hr{margin:2.2em 0;border:0;border-top:1px solid rgba(27,49,43,.14)}
@media (max-width:479px){
.gj-content{font-size:16px}
.gj-content blockquote{font-size:17px;padding-left:16px}
}

/* closing cta */
.gj-cta{background-color:#1b312b;padding:clamp(64px,8vw,110px) 0 clamp(20px,2.5vw,34px)}
/* the shared contact/footer block below is the same dark green: drop the white gap between them */
.ps40{margin-top:0}
.gj-cta__inner{max-width:720px;margin:0 auto;text-align:center}
.gj-cta .gj-eyebrow{justify-content:center;color:#dbf8b8}
.gj-cta__t{margin:0;font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;font-size:clamp(24px,2.7vw,36px);line-height:1.2;color:#f6faf9}
.gj-cta__t em{font-style:normal;color:#dbf8b8}
.gj-cta__p{margin:18px auto 0;max-width:52ch;font-family:"Jost 2",sans-serif;font-weight:300;font-size:16px;line-height:1.95;color:rgba(241,247,234,.72)}
.gj-cta__row{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:34px}
.gj-btn{display:inline-flex;align-items:center;gap:12px;padding:16px 32px;border:0;-webkit-border-radius:999px;border-radius:999px;background-color:#dbf8b8;color:#1b312b;font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;font-size:15px;line-height:1;cursor:pointer;transition:background-color .25s,color .25s,transform .25s,box-shadow .25s}
.gj-btn:hover{background-color:#21886b;color:#fff;-webkit-transform:translateY(-2px);transform:translateY(-2px);-webkit-box-shadow:0 14px 30px -12px rgba(0,0,0,.6);box-shadow:0 14px 30px -12px rgba(0,0,0,.6)}
.gj-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
.gj-btn:hover svg{-webkit-transform:translateX(4px);transform:translateX(4px)}
.gj-btn--ghost{background-color:transparent;color:#dbf8b8;-webkit-box-shadow:inset 0 0 0 1px rgba(219,248,184,.4);box-shadow:inset 0 0 0 1px rgba(219,248,184,.4)}
.gj-btn--ghost:hover{background-color:#dbf8b8;color:#1b312b;-webkit-box-shadow:none;box-shadow:none}

/* responsive */
@media (max-width:959px){
.gj-lead__grid{grid-template-columns:minmax(0,1fr);gap:clamp(30px,5vw,44px)}
.gj-feature{grid-template-columns:minmax(0,1fr);gap:clamp(24px,4vw,34px)}
.gj-feature__media{aspect-ratio:16/10}
.gj-hero{aspect-ratio:16/10}
.gj-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:767px){
.gj-hero{aspect-ratio:4/3}
.gj-cards{grid-template-columns:minmax(0,1fr)}
.gj-card{max-width:520px}
}
@media (max-width:479px){
.gj-side__item{grid-template-columns:84px minmax(0,1fr);gap:13px;padding:15px 0}
.gj-hero__body{padding:18px}
.gj-masthead__bar{gap:10px}
.gj-btn{width:100%;justify-content:center}
}

/* ==========================================================
   5. OUR CAFE - menu card (gofer-coffee-the-cozy-coffee-...html)
   Replaces the four stacked Sitely popups that held a hand-typed
   menu. One card, four tabs, one live category per tab. Tabs are
   plain radio inputs so the card works with no JavaScript; the
   refresher script only rewrites the rows it can match by id.
   The pale rounded panel behind the card is still the generated
   .s14/.c5 block, so the card keeps to that 300px footprint.
   ========================================================== */
/* The pale rounded panel behind the card is a positioned .z8/.z9 block, and
   the wrapper this card sits in is .v2 (pointer-events:none). The generated
   popups answered both with .z13/.v3, so the card has to as well or it paints
   underneath the panel and the tabs cannot be clicked. */
.gq-slot{position:relative;z-index:160;pointer-events:auto;line-height:normal}
.gq{position:relative;box-sizing:border-box;display:flex;flex-direction:column;
width:100%;min-height:701px;padding:26px 26px 28px;color:#1b312b;
-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.gq *,.gq *::before,.gq *::after{box-sizing:border-box}

/* the radios drive the tabs; kept in the layer but out of sight */
.gq-r{position:absolute;top:0;left:0;width:1px;height:1px;opacity:0;margin:0;pointer-events:none}

.gq-tabs{display:flex;gap:10px;margin:0 0 20px}
.gq-tab{position:relative;display:flex;align-items:center;justify-content:center;
width:50px;height:50px;-webkit-border-radius:12px;border-radius:12px;cursor:pointer;
color:#1b312b;background-color:rgba(219,248,184,.3);
-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);
-webkit-transition:background-color .22s,color .22s;transition:background-color .22s,color .22s}
.gq-tab:hover{background-color:rgba(219,248,184,.55)}
.gq-tab svg{display:block;width:27px;height:27px}

/* active tab + matching panel */
.gq-r:nth-of-type(1):checked~.gq-tabs .gq-tab:nth-child(1),
.gq-r:nth-of-type(2):checked~.gq-tabs .gq-tab:nth-child(2),
.gq-r:nth-of-type(3):checked~.gq-tabs .gq-tab:nth-child(3),
.gq-r:nth-of-type(4):checked~.gq-tabs .gq-tab:nth-child(4){background-color:#21886b;color:#dbf8b8}
.gq-r:nth-of-type(1):focus-visible~.gq-tabs .gq-tab:nth-child(1),
.gq-r:nth-of-type(2):focus-visible~.gq-tabs .gq-tab:nth-child(2),
.gq-r:nth-of-type(3):focus-visible~.gq-tabs .gq-tab:nth-child(3),
.gq-r:nth-of-type(4):focus-visible~.gq-tabs .gq-tab:nth-child(4){outline:2px solid #1b312b;outline-offset:2px}
.gq-panel{display:none}
.gq-r:nth-of-type(1):checked~.gq-panels .gq-panel:nth-child(1),
.gq-r:nth-of-type(2):checked~.gq-panels .gq-panel:nth-child(2),
.gq-r:nth-of-type(3):checked~.gq-panels .gq-panel:nth-child(3),
.gq-r:nth-of-type(4):checked~.gq-panels .gq-panel:nth-child(4){display:block}

.gq-h{margin:0 0 7px;font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;
font-size:24px;font-size:calc(24px * var(--f,1));line-height:1.459;color:#1b312b}
.gq-list{margin:0;padding:0;list-style:none}
.gq-row{display:flex;align-items:flex-end;
font-family:"Jost 3","Jost 2",sans-serif;font-weight:400;
font-size:14px;font-size:calc(14px * var(--f,1));line-height:1.86}
.gq-row__n{flex:0 1 auto}
.gq-row__d{flex:1 1 auto;min-width:14px;margin:0 7px;
border-bottom:1px dashed rgba(27,49,43,.45);-webkit-transform:translateY(-.3em);transform:translateY(-.3em)}
.gq-row__p{flex:none;white-space:nowrap}

.gq-foot{margin-top:auto;padding-top:22px}
.gq-btn{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;
-webkit-box-pack:center;justify-content:center;min-width:146px;height:42px;padding:0 24px;
-webkit-border-radius:21px;border-radius:21px;background-color:#21886b;color:#dbf8b8;
text-decoration:none;font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;
font-size:16px;font-size:calc(16px * var(--f,1));line-height:1;
-webkit-transition:background-color .22s;transition:background-color .22s}
.gq-btn:hover{background-color:#1b312b;color:#dbf8b8}
.gq-note{margin:15px 0 0;font-family:"Jost 12","Jost 2",sans-serif;font-style:italic;font-weight:400;
font-size:14px;font-size:calc(14px * var(--f,1));line-height:1.35;color:#1b312b}

/* ---- breakpoints follow the generated card: 292 / 234 / 187 / 375 / 250 ---- */
@media (min-width:960px) and (max-width:1199px){
.gq{min-height:561px;padding:21px 16px 22px}
.gq-row__d{margin:0 5px}
.gq-tabs{gap:8px;margin-bottom:16px}
.gq-tab{width:40px;height:40px}
.gq-tab svg{width:22px;height:22px}
.gq-h{font-size:19px;font-size:calc(19px * var(--f,1));line-height:1.422}
.gq-row{font-size:11px;font-size:calc(11px * var(--f,1));line-height:1.82}
.gq-foot{padding-top:18px}
.gq-btn{min-width:117px;height:34px;padding:0 19px;-webkit-border-radius:17px;border-radius:17px;
font-size:12px;font-size:calc(12px * var(--f,1))}
.gq-note{margin-top:12px;font-size:11px;font-size:calc(11px * var(--f,1))}
}
@media (min-width:768px) and (max-width:959px){
.gq{min-height:449px;padding:17px 12px 18px}
.gq-tabs{gap:6px;margin-bottom:13px}
.gq-tab{width:32px;height:32px;-webkit-border-radius:10px;border-radius:10px}
.gq-tab svg{width:18px;height:18px}
.gq-h{font-size:15px;font-size:calc(15px * var(--f,1));line-height:1.4}
.gq-row{font-size:9px;font-size:calc(9px * var(--f,1));line-height:1.8}
.gq-row__d{margin:0 5px}
.gq-foot{padding-top:14px}
.gq-btn{min-width:94px;height:28px;padding:0 15px;-webkit-border-radius:14px;border-radius:14px;
font-size:10px;font-size:calc(10px * var(--f,1))}
.gq-note{margin-top:10px;font-size:8px;font-size:calc(8px * var(--f,1))}
}
@media (min-width:480px) and (max-width:767px){
.gq{min-height:773px;padding:30px 30px 32px}
.gq-tab{width:54px;height:54px}
.gq-tab svg{width:29px;height:29px}
.gq-h{font-size:26px;font-size:calc(26px * var(--f,1))}
.gq-row{font-size:15px;font-size:calc(15px * var(--f,1));line-height:1.95}
}
@media (max-width:479px){
.gq{min-height:515px;padding:20px 20px 22px}
.gq-tabs{gap:7px;margin-bottom:15px}
.gq-tab{width:38px;height:38px}
.gq-tab svg{width:21px;height:21px}
.gq-h{font-size:18px;font-size:calc(18px * var(--f,1))}
.gq-row{font-size:11px;font-size:calc(11px * var(--f,1));line-height:1.86}
.gq-foot{padding-top:16px}
.gq-btn{min-width:110px;height:32px;padding:0 18px;-webkit-border-radius:16px;border-radius:16px;
font-size:12px;font-size:calc(12px * var(--f,1))}
.gq-note{margin-top:11px;font-size:10px;font-size:calc(10px * var(--f,1))}
}

/* ==========================================================
   6. OUR CAFE - guest testimonials (.gt-*)
   Reviews left in the order mini app that the cafe has chosen to
   feature in the admin panel. Fetched in the browser, because an
   un-featured review has to disappear from the site straight away -
   so nothing is baked into the page and the whole band stays hidden
   until the API answers with something.
   ========================================================== */
/* The hero's fixed backdrop is z-index:-1000, but it sits inside a sticky
   wrapper with z-index:1, so that -1000 only applies inside that wrapper and
   the whole subtree paints at layer 1 - over anything left at layer 0. The
   generated blocks each carry their own z-index (the map is 21, the contact
   section 27); this band needs one too, or the backdrop covers it. */
.gt{position:relative;z-index:24;background-color:#f7f5ef;padding:clamp(66px,8vw,112px) 0}
.gt[hidden]{display:none}
.gt-head{max-width:760px;margin:0 0 clamp(34px,4.5vw,56px)}
.gt-badge{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;
gap:9px;margin:22px 0 0;padding:9px 18px;-webkit-border-radius:999px;border-radius:999px;
background-color:#fff;-webkit-box-shadow:0 10px 26px -18px rgba(27,49,43,.5);box-shadow:0 10px 26px -18px rgba(27,49,43,.5);
font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;font-size:13px;line-height:1;color:rgba(27,49,43,.72)}
.gt-badge[hidden]{display:none}
.gt-badge b{font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;font-size:17px;color:#1b312b}
.gt-badge .gt-star{color:#f5b301;font-size:15px}

/* Reviews vary a lot in length and only some carry a photo, so the cards flow
   down columns rather than sitting in a grid - a grid row is as tall as its
   tallest card and leaves a hole beside every short one. */
.gt-grid{-webkit-columns:3;-moz-columns:3;columns:3;
-webkit-column-gap:clamp(18px,2vw,26px);-moz-column-gap:clamp(18px,2vw,26px);column-gap:clamp(18px,2vw,26px)}

.gt-card{display:block;-webkit-column-break-inside:avoid;page-break-inside:avoid;break-inside:avoid;
margin:0 0 clamp(18px,2vw,26px);padding:clamp(22px,2.2vw,30px);
-webkit-border-radius:20px;border-radius:20px;background-color:#fff;
-webkit-box-shadow:0 22px 50px -32px rgba(27,49,43,.5);box-shadow:0 22px 50px -32px rgba(27,49,43,.5)}
.gt-photo{display:block;width:100%;aspect-ratio:4/3;-o-object-fit:cover;object-fit:cover;
margin:0 0 20px;-webkit-border-radius:12px;border-radius:12px;background-color:#f1f5ef}
.gt-stars{margin:0 0 14px;font-size:16px;line-height:1;letter-spacing:3px;color:#f5b301}
.gt-stars i{font-style:normal;color:rgba(27,49,43,.16)}
.gt-quote{margin:0;font-family:"Jost 2",sans-serif;font-weight:300;font-size:16px;line-height:1.85;
color:#1b312b;white-space:pre-line;overflow-wrap:break-word}
.gt-quote::before{content:"\201C"}
.gt-quote::after{content:"\201D"}
.gt-by{margin:20px 0 0;padding-top:16px;border-top:1px solid rgba(27,49,43,.1);
font-family:"Jost 6","Jost 2",sans-serif;font-weight:700;font-size:14px;line-height:1.4;color:#21886b}
.gt-when{display:block;margin-top:5px;font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;
font-size:10px;line-height:1.4;letter-spacing:.14em;text-transform:uppercase;color:rgba(27,49,43,.45)}

@media (max-width:959px){
.gt-grid{-webkit-columns:2;-moz-columns:2;columns:2}
}
@media (max-width:767px){
.gt-grid{-webkit-columns:1;-moz-columns:1;columns:1;max-width:520px}
.gt-quote{font-size:15px}
}

/* Shown in place of the cards when the API answers but nothing has been
   featured yet. Never a stand-in for real reviews - it says plainly that
   there are none and points people at the app where they can leave one. */
.gt-invite{max-width:620px;margin:0;padding:clamp(26px,3vw,40px);
-webkit-border-radius:20px;border-radius:20px;background-color:#fff;
-webkit-box-shadow:0 22px 50px -32px rgba(27,49,43,.5);box-shadow:0 22px 50px -32px rgba(27,49,43,.5)}
.gt-invite[hidden]{display:none}
.gt-invite__t{margin:0;font-family:"Jost 7","Jost 6",sans-serif;font-weight:800;
font-size:clamp(18px,1.9vw,22px);line-height:1.3;color:#1b312b}
.gt-invite__p{margin:12px 0 0;font-family:"Jost 2",sans-serif;font-weight:300;
font-size:16px;line-height:1.85;color:rgba(27,49,43,.7)}
.gt-invite__btn{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;
-webkit-box-pack:center;justify-content:center;margin-top:22px;height:44px;padding:0 26px;
-webkit-border-radius:22px;border-radius:22px;background-color:#21886b;color:#dbf8b8;
text-decoration:none;font-family:"Jost 4","Jost 2",sans-serif;font-weight:500;font-size:15px;line-height:1;
-webkit-transition:background-color .22s;transition:background-color .22s}
.gt-invite__btn:hover{background-color:#1b312b;color:#dbf8b8}
