@font-face{font-family:Archivo;src:url('/fonts/archivo-latin-800-normal.woff2?v=a4c5c5515f') format('woff2');font-weight:800;font-display:swap}@font-face{font-family:Inter;src:url('/fonts/inter-latin-400-normal.woff2?v=68f645c6b6') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:Zilla;src:url('/fonts/zilla-slab-latin-500-normal.woff2?v=09aa13cb76') format('woff2');font-weight:500;font-display:swap}
:root{--teal:#003235;--cream:#F0EDE0;--olive:#716A56;--dark:#2C332F;--amber:#FFC866}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:120px;background:linear-gradient(var(--cream) 50%,var(--dark) 50%) no-repeat;background-color:var(--dark)}body{margin:0;background:var(--cream);color:var(--teal);font:400 16px/1.65 Inter,sans-serif;min-height:100vh;min-height:100svh;display:flex;flex-direction:column}body>main{flex:1 0 auto}body>footer{flex-shrink:0}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}img{max-width:100%;display:block;object-fit:cover}picture{display:contents}picture>source{display:none}h1,h2,h3{font-family:Archivo,sans-serif;font-weight:800;line-height:1.03;letter-spacing:-.045em;text-wrap:balance;margin:0;max-width:22ch}h1{font-size:clamp(46px,7.6vw,112px);max-width:17ch}h2{font-size:clamp(34px,4.1vw,58px);max-width:21ch}h3{font-size:clamp(27px,2.5vw,37px);max-width:23ch}p{text-wrap:pretty;margin:0 0 24px}p:last-child{margin-bottom:0}.wrap{width:calc(100% - 96px);max-width:1344px;margin-inline:auto}.section{padding:110px 0}.eyebrow{font:500 15px/1.3 Zilla,serif;letter-spacing:.09em;text-transform:uppercase;margin-bottom:20px}.site-header{position:fixed;z-index:100;top:0;left:0;width:100%;padding:25px 48px;display:flex;align-items:center;gap:36px;color:var(--cream);transition:background .25s,padding .25s,color .25s}.logo-link{display:inline-flex;align-items:center;min-width:44px;min-height:44px;flex-shrink:0}.logo{height:46px;width:auto;max-width:240px;object-fit:contain;flex-shrink:0;filter:brightness(0) invert(1)}.desktop-nav{margin-left:auto;display:flex;gap:26px}.desktop-nav a{position:relative;display:inline-flex;align-items:center;min-height:44px;font-size:14px}.desktop-nav a:after{content:'';position:absolute;bottom:6px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .2s}.desktop-nav a:hover:after,.desktop-nav a.active:after{transform:scaleX(1)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;padding:15px 24px;background:var(--teal);color:var(--cream);min-height:52px;font-size:14px;font-weight:500;transition:transform .2s,background .2s,color .2s;border:1px solid transparent}.button:hover{transform:translateY(-3px);background:var(--olive)}.header-cta{background:var(--amber);color:var(--teal);min-height:48px}.buttons{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.outline{border-color:var(--cream);background:transparent}.text-link{display:inline-flex;align-items:center;gap:30px;min-height:44px;border-bottom:1px solid currentColor;font-size:14px;font-weight:500}.button span,.text-link span{font-size:20px}.site-header.scrolled,.solid-header .site-header,body.menu-open .site-header{background:var(--cream);color:var(--teal);padding-block:16px}.site-header.scrolled .logo,.solid-header .logo,body.menu-open .site-header .logo{filter:none}.menu-toggle{display:none;width:44px;height:44px;flex-shrink:0;border:0;color:inherit;background:none;position:relative}.menu-toggle span{display:block;width:25px;height:2px;background:currentColor;margin:6px auto;transition:transform .2s}.menu-open .menu-toggle span:first-child{transform:translateY(4px) rotate(45deg)}.menu-open .menu-toggle span:last-child{transform:translateY(-4px) rotate(-45deg)}.mobile-menu{position:fixed;inset:0;z-index:90;background:var(--cream);padding:120px 28px 35px;overflow-y:auto}.mobile-menu[hidden]{display:none}.mobile-menu nav{display:grid;margin-bottom:30px}.mobile-menu nav a{font-family:Archivo;font-size:36px;min-height:60px}.mobile-menu p{margin-top:30px;max-width:28ch}.mobile-menu>a:last-child{display:inline-flex;min-height:44px;align-items:center}.hero{min-height:760px;height: min(920px, 94svh);position:relative;isolation:isolate;color:var(--cream);overflow:hidden;background:var(--teal)}.hero:after{content:'';position:absolute;inset:0;background:rgba(0,42,45,.35);z-index:-1}.hero-image{position:absolute;inset:0;width:100%;height:100%;z-index:-2;object-fit:cover;animation:hero-zoom 1.4s ease-out both}.hero-content{padding-top:225px;position:relative}.hero h1 span{display:block;animation:hero-rise .8s both}.hero h1 span:nth-child(2){animation-delay:.12s}.hero .eyebrow{margin-bottom:28px}.hero-sub{max-width:40ch;font-size:18px;line-height:1.6;margin-top:25px}.hero .button:not(.outline){background:var(--amber);color:var(--teal)}.hero-bottom{position:absolute;bottom:28px;left:0;right:0;display:flex;justify-content:space-between;align-items:center;border-top:1px solid #f0ede055;padding-top:20px;font:500 15px Zilla}.down-mark{font-size:30px}.split{display:grid;grid-template-columns:1fr 1fr;gap:96px;align-items:center}.intro-copy h2{margin-bottom:28px}.intro-copy p:not(.eyebrow){max-width:49ch}.intro-photo{height:560px;overflow:hidden}.intro-photo img{width:100%;height:100%}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:45px}.section-heading p{margin-top:20px;max-width:47ch}.beans{background:#e7e4d6}.bean-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.bean-card{transition:transform .3s;min-width:0}.bean-card:hover{transform:translateY(-7px)}.bean-photo{position:relative;display:block;overflow:hidden;aspect-ratio:1/1.1}.bean-photo img{width:100%;height:100%;transition:transform .6s}.bean-card:hover img{transform:scale(1.035)}.bean-price{position:absolute;right:16px;top:16px;background:var(--cream);padding:8px 13px;font:500 17px Zilla}.bean-copy{position:relative;padding:28px 22px 24px;border-top:7px solid var(--bean);background:var(--cream)}.bean-copy .eyebrow{font-size:13px;margin-bottom:12px}.bean-copy h3{margin-bottom:20px}.bean-copy>p:not(.eyebrow){font-size:14px}.bean-copy .notes{font-family:Zilla;font-size:18px!important;border-top:1px solid #00323522;padding-top:18px;margin-top:24px}.bean-copy .text-link{width:100%;justify-content:space-between}.bean-extra,.sizes{font-family:Zilla}.location{background:var(--teal);color:var(--cream)}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.address{font:500 25px/1.4 Zilla;max-width:27ch}.hours{width:100%;border-collapse:collapse;margin:30px 0}.hours th,.hours td{padding:16px 0;border-bottom:1px solid #f0ede044;font-size:15px;font-weight:400;text-align:left}.hours td{text-align:right;font-family:Zilla;font-size:18px}.hours .today th:before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--amber);margin-right:8px}.location .button{background:var(--amber);color:var(--teal)}.map{display:block}.map img{width:100%;height:auto;object-fit:contain}.location-photo{width:660px;max-width:100%;height:330px;margin:65px auto 0;overflow:hidden}.location-photo img{width:100%;height:100%;object-position:center 45%}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.gallery-item{display:block;border:0;padding:0;background:none;overflow:hidden;aspect-ratio:1}.gallery-item img{height:100%;width:100%;transition:transform .7s}.gallery-item:hover img{transform:scale(1.05)}.gallery-grid.four{grid-template-columns:repeat(4,1fr)}.cta-band{background:var(--olive);color:var(--cream);padding:88px 0;position:relative;overflow:hidden}.cta-band .wrap{position:relative}.cta-band h2{max-width:22ch}.cta-band p{margin-top:25px;max-width:55ch}.cta-band .button{background:var(--cream);color:var(--teal)}.contours{position:absolute;right:-100px;top:-100px;width:650px;height:500px;stroke:var(--cream);stroke-width:1;opacity:.15;pointer-events:none}footer{background:var(--dark);color:var(--cream);padding:70px 0 0}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr .6fr;gap:50px}.footer-logo{height:50px;max-width:240px;filter:brightness(0) invert(1)!important}.footer-tag{font:500 20px Zilla;margin-top:20px}.footer-grid p,.footer-grid a{font-size:13px}.footer-grid h3{font:500 19px Zilla;margin-bottom:18px;max-width:20ch}.footer-grid nav{display:grid;align-content:start}.footer-grid nav a{min-height:35px}.footer-bottom{padding:26px 0;margin-top:54px;border-top:1px solid #f0ede033;font-size:11px}.lightbox{border:0;padding:40px;background:var(--dark);max-width:95vw;width:900px;max-height:95svh;color:var(--cream)}.lightbox::backdrop{background:#001b1def}.lightbox img{margin:auto;height:75svh;max-width:100%;object-fit:contain}.lightbox button{position:absolute;background:var(--cream);color:var(--teal);border:0;width:44px;height:44px;font-size:28px}.lightbox-close{top:5px;right:5px}.lightbox-prev{left:4px;top:50%}.lightbox-next{right:4px;top:50%}.js .reveal{opacity:0;transform:translateY(20px);transition:opacity .6s,transform .6s cubic-bezier(.2,.7,.2,1);transition-delay:calc(min(var(--i,0),6)*80ms)}.js .reveal.is-visible{opacity:1;transform:none}:focus-visible{outline:3px solid var(--amber);outline-offset:5px}:focus:not(:focus-visible){outline:none}html[data-kendry-input="pointer"] :focus-visible{outline:none}
@keyframes hero-zoom{from{transform:scale(1.06)}to{transform:scale(1)}}@keyframes hero-rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@media(min-width:1024px){.menu-toggle,.mobile-menu{display:none!important}.desktop-nav a{min-width:0}}
@media(max-width:1100px){.site-header{padding-inline:30px;gap:24px}.desktop-nav{gap:18px}.wrap{width:calc(100% - 64px)}.split{gap:55px}.footer-grid{gap:30px}.hero{min-height:730px}}
@media(max-width:1023px){.desktop-nav{display:none}.menu-toggle{display:block}.header-cta{margin-left:auto}.site-header{padding:18px 28px;gap:20px}.logo{height:38px;max-width:180px}.hero-content{padding-top:210px}.section{padding:80px 0}.footer-grid{grid-template-columns:1fr 1fr}.location-grid{gap:35px}.intro-photo{height:450px}}
@media(max-width:767px){.wrap{width:calc(100% - 40px)}.site-header{padding:16px 20px;gap:12px}.logo{height:37px;max-width:156px}.header-cta{display:none}.menu-toggle{margin-left:auto}.hero{height:87svh;min-height:650px;max-height:850px}.hero-content{padding-top:190px}.hero h1{font-size:clamp(46px,10.8vw,76px)}.hero-image{object-position:55% center}.hero-sub{font-size:16px;max-width:31ch}.hero .eyebrow{font-size:13px}.hero .button{padding:14px 18px;gap:20px}.hero-bottom{bottom:23px;font-size:13px}.section{padding:65px 0}.split,.location-grid{grid-template-columns:1fr;gap:35px}.intro-photo{height:390px}.section-heading{display:block;margin-bottom:30px}.section-heading>.text-link{margin-top:20px}.bean-grid{grid-template-columns:1fr;gap:32px}.bean-photo{aspect-ratio:1.1}.bean-copy{padding:24px}.bean-copy h3{font-size:34px}.location-photo{height:280px;margin-top:40px}.gallery-grid{grid-template-columns:1fr;gap:18px}.gallery-grid.four{grid-template-columns:1fr 1fr;gap:12px}.cta-band{padding:65px 0}.footer-grid{grid-template-columns:1fr;gap:32px}.footer-grid nav{grid-template-columns:1fr 1fr}.footer-grid nav a{min-height:44px}.footer-logo{height:48px}.footer-bottom{margin-top:35px}.address{font-size:23px}.lightbox{padding:12px}.lightbox img{height:70svh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none!important}.hero-image{transform:none!important}}
.coffee-hero{height:710px;min-height:710px}.coffee-hero:after{display:none}.coffee-hero .hero-content{padding-top:225px}.coffee-hero .hero-image{inset:135px 9% auto auto;width:340px;height:475px;object-fit:contain;z-index:0}.coffee-hero h1{font-size:clamp(46px,6.5vw,94px);max-width:13ch}.coffee-hero .hero-bottom{z-index:1}.comparison{background:var(--cream)}.table-scroll{overflow-x:auto;max-width:100%}.comparison table{width:100%;border-collapse:collapse;font-size:14px;min-width:680px}.comparison th,.comparison td{padding:20px;text-align:left;border-bottom:1px solid #00323533;vertical-align:top}.comparison thead th:not(:first-child){background:var(--bean);font-family:Archivo;font-size:22px}.comparison thead th:last-child,.comparison thead th:nth-child(3){color:var(--cream)}.comparison tbody th{width:16%;font-family:Zilla;font-size:17px;font-weight:500}.comparison td{width:28%}.comparison td:hover{background:#00323508}.grind-section{background:#e7e4d6}.grind-section .split{grid-template-columns:1fr 1fr}.grind-section h2{margin-bottom:24px}.grind-photo{height:350px;width:500px;max-width:100%;margin-left:auto;overflow:hidden}.grind-photo img{width:100%;height:100%}.grind-list{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:20px;padding:0;margin:55px 0 30px}.grind-list li{border-top:1px solid var(--teal);padding-top:18px;font:500 20px/1.4 Zilla}.grind-list span{display:block;color:var(--olive);font:400 12px Inter;margin-bottom:15px}.grind-foot{font-family:Zilla}.feature{margin-top:35px;padding-top:28px;border-top:1px solid #00323533}.feature h3{font-size:clamp(25px,2.6vw,35px);margin-bottom:14px}.feature-photo{height:480px;overflow:hidden}.feature-photo img{height:100%;width:100%}.story p{font-size:20px;line-height:1.8}.contact-page{padding-top:105px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}.contact-page h1{font-size:clamp(48px,6vw,84px)}.contact-intro{margin-top:30px;max-width:41ch}.contact-page .address{margin:45px 0 25px}.contact-page h3{font:500 20px Zilla;margin-bottom:12px}.form-panel{padding:40px;background:#e5e2d5}.form-panel h2{font-size:clamp(32px,3.4vw,45px);margin-bottom:30px}.field{margin-bottom:22px}.field label{display:block;font-size:14px;margin-bottom:8px}.field input,.field textarea{width:100%;border:1px solid #00323566;border-radius:0;background:transparent;color:var(--teal);padding:12px;min-height:48px}.field textarea{resize:vertical}.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.success{padding:18px;background:var(--amber)}.field-error{font-size:13px;color:#a22b1c}.not-found{padding:210px 0 110px}.not-found h1{font-size:clamp(44px,6vw,80px)}.not-found p{margin-top:25px}
@media(max-width:1023px){.contact-grid{gap:45px}.coffee-hero .hero-image{right:5%;width:280px;height:400px}.coffee-hero h1{font-size:clamp(46px,6.3vw,80px)}.grind-list{grid-template-columns:repeat(6,1fr)}.grind-list li{grid-column:span 2}.grind-list li:nth-child(4){grid-column:2/span 2}}
@media(max-width:767px){.coffee-hero{height:900px;min-height:900px}.coffee-hero .hero-content{padding-top:155px}.coffee-hero h1{font-size:46px}.coffee-hero .hero-image{top:430px;right:calc(50% - 130px);width:260px;height:365px}.coffee-hero .hero-sub{max-width:28ch}.grind-section .split,.contact-grid{grid-template-columns:1fr}.grind-list{grid-template-columns:1fr;margin-top:35px;gap:20px}.grind-list li,.grind-list li:nth-child(4){grid-column:auto;display:flex;gap:20px}.grind-list span{margin:5px 0 0}.feature-photo{height:340px}.contact-page{padding-top:80px}.form-panel{padding:25px 20px}.contact-grid{gap:45px}.story p{font-size:18px}.comparison th,.comparison td{padding:15px}.contact-page h1{max-width:15ch}}
@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:.22s}
.link-arrow{width:20px;height:20px;flex-shrink:0;stroke:currentColor;stroke-width:1.5}.grind-tick{width:10px;height:10px;border:1px solid currentColor;border-radius:50%;margin-top:7px!important}.map{max-width:560px}.hero-image{will-change:transform}.coffee-hero .hero-image{will-change:auto}
.split>*{min-width:0}.grind-photo{width:100%;max-width:500px}
.site-header .logo{filter:none}.site-header .logo-dark{display:none}.site-header.scrolled .logo-dark,.solid-header .site-header .logo-dark,.menu-open .site-header .logo-dark{display:block}.site-header.scrolled .logo-light,.solid-header .site-header .logo-light,.menu-open .site-header .logo-light{display:none}.footer-logo{filter:none!important}.lightbox button{display:flex;align-items:center;justify-content:center}.lightbox button svg{fill:none}

/* logo-light.png is already the light artwork: no silhouette filter (keeps the mark's inner detail). */
.site-header .logo-light{filter:none}
/* Keep white header artwork readable even over the brightest hero sky. */
.home-hero:after{background:linear-gradient(to bottom,rgba(0,42,45,.7) 0,rgba(0,42,45,.7) 100px,rgba(0,42,45,.35) 220px)}
/* Show every comparison value within the phone viewport. */
@media(max-width:767px){
.comparison .table-scroll{overflow:visible}
.comparison table{display:block;min-width:0}
.comparison thead{display:none}
.comparison tbody{display:block}
.comparison tbody tr{display:block;margin-bottom:28px}
.comparison tbody th{display:block;width:100%;padding:12px 0;font-weight:500}
.comparison tbody td{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;width:100%;padding:12px 0;overflow-wrap:anywhere}
.comparison tbody td::before{content:attr(data-coffee);font-weight:600}
}

/* Give the mobile home header a consistent backdrop for its light logo. */
@media(max-width:1023px){.home-page:not(.menu-open) .site-header:not(.scrolled){background:var(--teal)}}

/* Visit section: shop photo sits with the map as one balanced media column. */
.location-media{display:grid;gap:20px;align-self:stretch}
.location-media .map{max-width:none}
.location-media.has-photo{grid-template-columns:1fr 1fr;align-items:stretch}
.location-media.has-photo .map,.location-media.has-photo .location-photo{width:auto;height:100%;min-height:420px;margin:0;overflow:hidden}
.location-media.has-photo .map img,.location-media.has-photo .location-photo img{width:100%;height:100%;object-fit:cover}
@media(max-width:767px){.location-media.has-photo{grid-template-columns:1fr}.location-media.has-photo .map,.location-media.has-photo .location-photo{min-height:0;height:auto}.location-media.has-photo .map img{height:auto;object-fit:contain}.location-media.has-photo .location-photo{height:300px}}
/* Reveal motion inside a scroll container must not create a transient scrollbar: fade only, and no vertical scrolling on the wrapper. */
.table-scroll{overflow-y:hidden}.js .table-scroll .reveal{transform:none}
@media(min-width:768px){.comparison .table-scroll{overflow:visible}}
.location-media.has-photo .map img{object-position:right bottom}
/* Map crop keeps the pin (image centre) centred at every width; OSM credit re-drawn so cropping never hides it. */
.location-media.has-photo .map{position:relative}.location-media.has-photo .map img{object-position:50% 50%}
.location-media.has-photo .map:after{content:'\00a9 OpenStreetMap contributors';position:absolute;right:0;bottom:0;background:#ffffffd9;color:#333;font:400 10px/1.4 Inter,sans-serif;padding:2px 6px}
.today-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
