/* Happy Roastery — field journal, 2026-10-05. Shared across the entire site. */
:root{--green:#243c2d;--brown:#243c2d;--cream:#f5f2e8;--offwhite:#fbf9f2;--yellow:#daca9e;--muted:#606b5e;--line:#d8d9c9;--maxw:1320px;--ink:#203428}
body{background:var(--cream);color:var(--ink);font-family:'IBM Plex Sans Thai',sans-serif;line-height:1.8;font-size:16px;padding-bottom:0}
*{box-sizing:border-box}img{max-width:100%;height:auto}button,input,select{font:inherit}a,button,input,summary{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #a25331;outline-offset:5px}html{scroll-padding-top:110px}main{min-height:45vh}h1,h2,.field-serif{font-family:'Noto Serif Thai',Georgia,serif;font-weight:500;letter-spacing:-.045em;line-height:1.4;color:var(--ink)}h1{font-size:clamp(36px,4.3vw,64px)}h2{font-size:clamp(29px,3.1vw,46px)}h3{font-family:'IBM Plex Sans Thai',sans-serif;line-height:1.45;color:var(--ink)}p{max-width:100%}.wrap{width:100%;max-width:1384px;padding-left:48px;padding-right:48px}.sec{padding:94px 0}.eyebrow{font:600 11px/1.6 'IBM Plex Sans Thai',sans-serif;letter-spacing:.18em;color:#63725b;margin-bottom:18px}.lead{font-size:18px;line-height:1.9}.skip-link{position:fixed;top:-100px;left:20px;z-index:1000;background:#fff;color:#14271d;padding:12px}.skip-link:focus{top:12px}.field-topline{background:#243c2d;color:#f6f2e4;text-align:center;font-size:10px;letter-spacing:.16em;padding:8px 20px}.field-topline span{margin-left:30px;letter-spacing:.02em}.field-header{background:#f5f2e8f5;border-bottom:1px solid var(--line);backdrop-filter:blur(16px);position:sticky;top:0;z-index:80}.nav{height:88px;gap:36px}.field-logo{display:flex;flex-direction:column;text-decoration:none;color:var(--green);line-height:.9;min-width:126px}.field-logo>span{font:bold 44px/.85 Georgia,serif;letter-spacing:-3px}.field-logo .logo-dot{color:#965136}.field-logo small{font-size:9px;letter-spacing:.32em;margin:10px 0 0 5px}.nav nav{display:flex;gap:26px;margin:auto}.nav nav a{font-size:14px;font-weight:500;color:var(--green);border-bottom:1px solid transparent}.nav nav a:hover,.nav nav a[aria-current=page]{border-bottom-color:var(--green)}.nav .nav-buy{margin:0;font-size:13px;padding:11px 19px}.btn{border-radius:3px;box-shadow:none;font-size:14px;font-weight:500;padding:14px 24px;border:1px solid transparent;transition:background .2s,color .2s;line-height:1.65}.btn--primary{background:var(--green);color:#fff;box-shadow:none}.btn--primary:hover{background:#3c573e;box-shadow:none;transform:none}.btn--ghost{border-color:#94a08d;color:var(--green);background:transparent}.btn--ghost:hover{background:var(--green);color:#fff}.btn--light{background:#f5f2e8;color:#243c2d}.btn--light:hover{background:#e2dbc5}.btn--sm{font-size:13px;padding:10px 15px}.menu-toggle{display:none}.text-link{text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:7px;font-size:14px;font-weight:600;display:inline-block}.text-link:hover{opacity:.75}
/* Hero: one photograph, one message. */
.field-hero{position:relative;min-height:650px;height:calc(100svh - 121px);max-height:850px;background:#243c2d;color:#fff;display:flex;align-items:center;isolation:isolate}.field-hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:65% center;z-index:-2}.field-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,27,16,.68),rgba(9,27,16,.3) 47%,rgba(9,27,16,.02) 76%),linear-gradient(0deg,rgba(9,27,16,.56),transparent 28%);z-index:-1}.field-hero-content{padding-top:25px;padding-bottom:100px}.field-hero .eyebrow{color:#e6e5cf;letter-spacing:.22em}.field-hero h1{color:#fff;font-size:clamp(44px,4.9vw,76px);line-height:1.43;max-width:720px;margin:0 0 22px;letter-spacing:-.045em;text-shadow:0 2px 25px #172b2040}.field-hero h1 span{color:#f0dfae}.field-hero-content>p:not(.eyebrow){color:#f1f0e6;font-size:17px;line-height:1.9}.hero-cta{gap:26px;align-items:center;margin-top:32px}.hero-story{font-size:14px;text-decoration:none;color:#fff;border-bottom:1px solid #ffffff70;padding:9px 0}.hero-story span{margin-left:14px}.hero-foot{position:absolute;bottom:27px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:32px;font-size:11px;letter-spacing:.12em;color:#f0f1e6}.hero-foot a{margin-left:auto;text-decoration:none}.hero-foot small{font-size:10px;letter-spacing:0;color:#e3e5d5}
.coffee-path{display:grid;grid-template-columns:1.05fr 1fr 1fr 1fr;padding-top:45px;padding-bottom:45px;border-bottom:1px solid var(--line);gap:30px}.coffee-path h2{font-size:25px;margin:0}.coffee-path .eyebrow{font-size:9px}.coffee-path>a{border-left:1px solid var(--line);padding:10px 20px 0 32px;position:relative;text-decoration:none;display:flex;flex-direction:column;justify-content:center}.coffee-path>a:hover{background:#eaeade}.coffee-path b{font-size:18px;font-weight:500}.coffee-path small{font-size:13px;color:var(--muted)}.cup-line{font:32px Georgia;margin-bottom:7px;color:#536b46}.path-arrow{position:absolute;right:0;top:48%}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:38px}.section-heading h2{margin:0}.section-heading>p,.section-heading>div>p:not(.eyebrow){font-size:15px;color:var(--muted);line-height:1.9}.harvest-shelf{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}.harvest-product{min-width:0}.harvest-product-photo{display:grid;place-items:center;background:#e9e7da;aspect-ratio:4/5;overflow:hidden}.harvest-product-photo img{width:88%;height:88%;object-fit:contain;transition:transform .35s}.harvest-product-photo:hover img{transform:translateY(-6px) rotate(-2deg)}.product-roast{font-size:11px;color:var(--muted);margin:18px 0 6px}.harvest-product h3{font-size:18px;font-weight:600;margin:0 0 5px}.harvest-product h3 a{text-decoration:none}.product-use{font-size:12px;color:var(--muted);margin:0}.product-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:12px;margin-top:17px;font-size:17px}.product-bottom small{font-size:11px;color:var(--muted)}.product-bottom>a{text-decoration:none;display:grid;place-items:center;width:36px;height:36px;border:1px solid #bfc5b5;border-radius:50%}.price-source{font-size:11px;color:var(--muted);margin:24px 0 0}.field-story{display:grid;grid-template-columns:1fr 1fr;background:#243c2d;color:#f5f2e8;min-height:650px}.story-portrait{position:relative;min-height:100%}.story-portrait img{position:absolute;width:100%;height:100%;object-fit:cover}.story-portrait>span{position:absolute;left:28px;bottom:20px;color:#fff;background:#182b20bb;padding:4px 9px;font-size:10px}.story-copy{padding:80px max(48px,calc((100vw - 1288px)/2)) 80px 70px;align-self:center}.story-copy .eyebrow{color:#b4c0a4}.story-copy h2{color:#f5f2e8;font-size:clamp(32px,3.3vw,48px);line-height:1.5}.story-copy p:not(.eyebrow){color:#d2dac8;font-size:15px;max-width:45ch}.story-copy .text-link{color:#efe4c3;margin-top:17px}.brew-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}.brew-grid>a{text-decoration:none;position:relative;background:#e9e7dc}.brew-grid img{height:320px;width:100%;object-fit:cover;filter:saturate(.7)}.brew-grid>a>div{padding:25px 28px;position:relative}.brew-grid small{letter-spacing:.13em;font-size:10px;color:#66755b}.brew-grid h3{font-size:23px;margin:9px 0}.brew-grid span{font-size:13px}.field-faq{background:#e9ecdf}.field-faq>.wrap{display:grid;grid-template-columns:1fr 1.3fr;gap:80px}.field-faq .qa{background:transparent;border:0;border-bottom:1px solid #bdc7b4;border-radius:0;padding:22px 0}.qa summary{font-weight:500;font-size:17px}.qa p{line-height:1.9}.field-footer{background:#15291e;color:#d9dfce}.field-footer>.wrap{padding-top:65px;padding-bottom:30px}.footer-opening{display:flex;justify-content:space-between;align-items:center;gap:30px;border-bottom:1px solid #536248;padding-bottom:44px;margin-bottom:50px}.footer-opening p{color:#f0eddd;font-size:42px;margin:0}.field-footer .field-logo{color:#f0eddd;margin-bottom:23px}.fgrid{grid-template-columns:1.3fr 1fr 1fr 1.4fr;gap:45px}.field-footer h4{color:#f0eddd;font-size:14px;font-weight:500;margin-bottom:20px}.field-footer p,.field-footer li{font-size:13px;line-height:2}.field-footer a{color:inherit}.field-footer .btn--light{color:#243c2d}.footer-bottom{border-top:1px solid #43563e;margin-top:50px;padding-top:23px;display:flex;justify-content:space-between;font-size:11px;color:#b0bda4}.image-credits{margin-top:22px;font-size:11px;color:#bdc7b6}.image-credits summary{cursor:pointer}.image-credits p{font-size:11px;max-width:100ch}.image-credits a{text-decoration:underline}
/* Inner pages, shop and product detail */
.field-inner .crumb{padding:22px 48px 0;max-width:1384px}.field-inner main>.sec:first-of-type{padding-top:45px!important}.field-inner .sec>.wrap>h1{font-family:'Noto Serif Thai',serif!important;font-weight:500!important;font-size:clamp(33px,4vw,55px)!important}.field-inner .pdp{padding:35px 48px 80px;gap:65px}.gallery{position:sticky;top:115px}.gallery .main{border:0;border-radius:5px;background:#e9e7da;padding:30px;aspect-ratio:1}.gallery .main img{width:100%;height:100%;object-fit:contain;filter:none;max-height:540px}.thumbs button{border-radius:3px;background:#eeeade;min-height:55px}.thumbs button[aria-pressed=true]{border-color:var(--green)}.thumbs img{width:100%;height:100%;object-fit:contain}.pdp h1{font-family:Georgia,'Noto Serif Thai',serif;font-size:clamp(35px,4vw,55px);font-weight:400}.flavor b,.badge,.tag{border-radius:3px;font-weight:400;background:#e9ecdf;border-color:transparent;color:#44543c}.pricebox .p{font-family:'IBM Plex Sans Thai',sans-serif;font-weight:500;font-size:33px}.grind label{border-radius:3px;border-width:1px;padding:12px}.grind label:has(input:checked){border-color:#344c32;background:#e7ecdf}.grind span b{font-size:14px}.grind span i{font-size:12px}.rowline{font-size:14px}.qty .box{border-radius:3px;border-width:1px}.pick-note{background:#eaeadd;border-color:#9aa983;border-radius:0;font-size:12px}.trustbar{font-size:12px}.card{border-radius:4px;box-shadow:none;background:#f9f8ef;border-color:#d8d9c9;padding:27px}.card:hover{box-shadow:none;transform:none}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.prod{border:0;border-radius:4px;background:transparent;overflow:visible}.prod .ph{background:#e9e7da;aspect-ratio:1;min-height:0;border-radius:4px;padding:20px;overflow:hidden}.prod .ph img{width:90%;height:100%;max-height:340px;object-fit:contain;filter:none}.prod .ph--duo img{width:55%;height:auto}.prod .body{padding:22px 0 30px}.prod .body h3{font-size:24px;font-weight:500}.prod .spec{font-size:13px}.prod .btns{margin-top:12px}.prod .price{font-weight:500;font-family:inherit}.prod .btns .btn{flex:1;text-align:center}.filters{padding:24px;background:#e9ecdf;border-radius:4px}.chip{font-size:13px;border-radius:3px;background:#f9faf3;padding:8px 15px}.chip.on{background:var(--green);border-color:var(--green);color:#fff}.flab{font-size:13px;min-width:100px}.opt{border-radius:3px;border-width:1px;min-width:100px;font-size:15px}.opt.on{background:var(--green);color:#fff;border-color:var(--green)}.quiz{gap:30px}.q{padding-bottom:25px;border-bottom:1px solid var(--line)}.q h3{font-weight:500}.rcard{border-radius:4px;border-color:#b3bfa7;background:#e9ecdf}.rcard img{max-height:250px;object-fit:contain;filter:none}.proof-box{border-radius:4px;background:#e9ecdf;border:1px solid var(--line);padding:38px}.qa{border-radius:4px}.field-inner .farmtable{border-radius:4px}.sticky{background:var(--green)}.sticky .btn{background:#f5f2e8;color:var(--green)}.empty{color:#68725e}.origin-intro{position:relative;min-height:430px;display:flex;align-items:end;isolation:isolate;padding:55px;color:#fff;background:#243c2d;margin-bottom:55px}.origin-intro img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.origin-intro:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#102719dd,transparent);z-index:-1}.origin-intro h1,.origin-intro p{color:#fff}.origin-intro h1{font-size:48px}.origin-note{padding:28px;border-left:2px solid #62784f;background:#e9ecdf;margin:30px 0}.shop-empty{padding:35px;background:#e9ecdf;grid-column:1/-1}.shop-empty button{margin-top:10px}.note{font-size:14px;line-height:1.9}.field-inner .g2{align-items:start}.field-blog{background:var(--cream)!important;font-family:'IBM Plex Sans Thai',sans-serif!important}.field-blog .hr-content{font-family:inherit;color:var(--ink)}.field-blog .hr-content h2,.field-blog .hr-content h3{font-family:'Noto Serif Thai',serif;font-weight:500;line-height:1.5}.field-blog .hr-content p{line-height:1.95}.field-blog section[style*="gradient"]{background:#243c2d!important}.field-blog section[style*="gradient"] h1{font-family:'Noto Serif Thai',serif!important;line-height:1.5!important}.field-blog main{min-height:0}
@media(min-width:1600px){.field-hero-content{padding-bottom:80px}.field-hero h1{font-size:78px}}
@media(max-width:1150px){.nav{gap:20px}.nav nav{gap:16px}.nav nav a{font-size:13px}.wrap{padding-left:32px;padding-right:32px}.field-inner .pdp,.field-inner .crumb{padding-left:32px;padding-right:32px}.harvest-shelf{gap:15px}.harvest-product h3{font-size:16px}.story-copy{padding:55px 38px}.field-hero h1{font-size:60px}.field-hero{min-height:600px}.section-heading{gap:30px}.fgrid{gap:25px}.coffee-path{gap:20px}.coffee-path>a{padding-left:20px}.nav .nav-buy{padding:10px 12px}}
@media(max-width:950px){.nav{height:76px;justify-content:space-between}.nav .nav-buy{margin-left:auto}.menu-toggle{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:transparent;padding:9px 14px;color:var(--green);order:3;font-size:13px}.nav nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--cream);padding:20px 32px 30px;border-bottom:1px solid var(--line);box-shadow:0 15px 25px #14271d12}.nav nav.is-open{display:flex;flex-direction:column;gap:0}.nav nav a{font-size:16px;padding:14px 0}.field-hero{height:690px;min-height:0}.field-hero h1{font-size:54px}.field-hero-photo{object-position:64% center}.harvest-shelf{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 20px}.field-story{min-height:540px}.story-copy h2{font-size:35px}.story-copy{padding:45px 30px}.section-heading h2{font-size:35px}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}.field-inner .pdp{grid-template-columns:1fr 1fr;gap:30px}.pdp .gallery{position:static}.grind .opts{grid-template-columns:1fr}.pdp .buyrow .btn{width:100%;text-align:center}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.coffee-path{grid-template-columns:1fr 1fr;gap:25px}.coffee-path>div{align-self:center}.coffee-path>a{min-height:130px}.field-faq>.wrap{gap:35px}.brew-grid img{height:260px}.fgrid{grid-template-columns:1fr 1fr}.hero-foot small{display:none}.field-inner .wrap[style*="grid-template-columns:1.1fr"]{grid-template-columns:1fr!important}.field-inner .wrap[style*="grid-template-columns:1.1fr"]>img{max-height:450px;width:100%}.sticky{padding-bottom:calc(10px + env(safe-area-inset-bottom))}body:has(.sticky){padding-bottom:80px}}
@media(max-width:600px){.wrap{padding-left:22px;padding-right:22px}.field-topline{font-size:8px;padding:8px 10px}.field-topline span{display:none}.field-logo{min-width:90px}.field-logo>span{font-size:36px}.field-logo small{font-size:7px;margin-top:8px}.nav{height:72px;gap:12px}.nav .nav-buy{font-size:11px;padding:10px 12px}.menu-toggle{padding:8px 10px;font-size:12px;gap:6px}.field-hero{height:710px;max-height:none;align-items:end}.field-hero-photo{object-position:70% center}.field-hero:after{background:linear-gradient(0deg,#10271deb 0%,#10271d9c 45%,#10271d08 90%)}.field-hero-content{padding:0 24px 112px}.field-hero .eyebrow{font-size:9px;margin-bottom:15px}.field-hero h1{font-size:40px;line-height:1.48;margin-bottom:16px}.field-hero-content>p:not(.eyebrow){font-size:14px}.hero-cta{gap:18px;margin-top:24px}.hero-cta .btn{padding:13px 18px;font-size:13px}.hero-story{font-size:12px}.hero-foot{bottom:24px;font-size:9px;letter-spacing:.05em;gap:10px}.hero-foot>a{max-width:150px;text-align:right}.coffee-path{padding-top:32px;padding-bottom:32px;gap:20px}.coffee-path h2{font-size:25px}.coffee-path .eyebrow{font-size:8px}.coffee-path>a{min-height:125px;padding:8px 13px 0 18px}.coffee-path b{font-size:16px}.coffee-path small{font-size:11px}.cup-line{font-size:26px}.path-arrow{right:-4px}.sec{padding:60px 0}.section-heading{display:block;margin-bottom:28px}.section-heading h2{font-size:32px;line-height:1.5}.section-heading>div+div,.section-heading>p{margin-top:20px}.section-heading>p,.section-heading>div>p:not(.eyebrow){font-size:14px}.harvest-shelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 15px}.harvest-product h3{font-size:15px;min-height:22px}.product-roast{font-size:9px;margin-top:13px}.product-use{font-size:11px}.product-bottom{font-size:16px;padding-top:10px;margin-top:12px}.product-bottom>a{width:30px;height:30px}.price-source{font-size:10px}.field-story{grid-template-columns:1fr}.story-portrait{height:350px;min-height:0}.story-copy{padding:45px 26px 55px}.story-copy h2{font-size:35px}.story-copy p:not(.eyebrow){font-size:14px}.brew-grid{grid-template-columns:1fr;gap:26px}.brew-grid img{height:240px}.brew-grid>a>div{padding:22px}.brew-grid h3{font-size:22px}.field-faq>.wrap{grid-template-columns:1fr;gap:28px}.field-faq .qa{padding:19px 0}.qa summary{font-size:15px}.qa p{font-size:14px}.footer-opening{display:block;padding-bottom:35px;margin-bottom:36px}.footer-opening p{font-size:32px;margin-bottom:24px}.field-footer>.wrap{padding-top:45px}.fgrid{gap:32px 22px}.fgrid>div:first-child,.fgrid>div:last-child{grid-column:1/-1}.field-footer p,.field-footer li{font-size:12px}.footer-bottom{flex-direction:column;gap:8px}.field-inner .crumb{padding:18px 22px 0;font-size:12px}.field-inner .pdp{grid-template-columns:1fr;padding:20px 22px 50px;gap:30px}.gallery .main{padding:20px}.thumbs{gap:8px}.pdp h1{font-size:39px}.grind .opts{grid-template-columns:1fr 1fr;gap:8px}.grind label{padding:10px 8px;gap:6px}.grind span b{font-size:13px}.grind span i{font-size:11px}.g3{grid-template-columns:1fr}.g2,.g4{grid-template-columns:1fr}.field-inner #list{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.prod .ph{padding:10px}.prod .body h3{font-size:18px}.prod .body{padding:16px 0 22px}.prod .spec{font-size:12px}.prod .price{font-size:21px}.prod .btns{flex-direction:column;gap:8px}.prod .btns .btn{font-size:12px;padding:10px}.tag{font-size:10px;padding:3px 6px}.tagrow{gap:4px}.filters{padding:17px;margin-top:20px}.flab{min-width:100%;font-size:12px}.chip{font-size:12px;padding:6px 11px}.frow{gap:6px}.opts3{gap:8px}.opt{padding:12px 17px;min-width:80px;font-size:14px}.rcard{grid-template-columns:1fr;padding:22px}.rcard img{max-height:200px;margin:auto}.farmtable th{width:110px}.farmtable td,.farmtable th{padding:12px;font-size:13px}.origin-intro{padding:28px;min-height:400px;margin-bottom:35px}.origin-intro h1{font-size:35px}.origin-note{padding:22px}.field-inner .sec>.wrap>h1{font-size:33px!important}.field-inner .wrap[style*="max-width:820px"]{max-width:100%!important}.proof-box{padding:25px}.rowline{flex-wrap:wrap;gap:3px}.rowline b{min-width:85px}.field-blog article{padding-left:22px!important;padding-right:22px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
.field-footer .footer-opening .field-serif{font-size:42px;line-height:1.5}.field-blog [data-post]{border-radius:4px!important;box-shadow:none!important}.field-blog [data-post]:hover{transform:translateY(-3px)}.field-blog .hr-catbtn{border-radius:3px!important}.field-blog h1{font-family:'Noto Serif Thai',serif!important;font-weight:500!important}.field-blog #hr-featured h2{font-family:'Noto Serif Thai',serif!important;line-height:1.6!important}.field-blog #hr-featured a{background:#e9ecdf!important}.field-blog [data-post]>div[style*="gradient"]{background:#6a7958!important}.story{border-radius:4px}.story img{width:100%}.field-inner .note{color:var(--muted)}
@media(max-width:600px){.field-footer .footer-opening .field-serif{font-size:32px}.field-blog [data-post] h3{font-size:20px!important;line-height:1.5!important}}
.brew-banner{margin:30px 0 40px}.brew-banner img{width:100%;height:400px;object-fit:cover;object-position:center 60%;border-radius:4px}.brew-banner figcaption{font-size:11px;color:var(--muted);margin-top:8px}.farmer-brewing .story .b{padding:28px}.farmer-brewing .story{background:#e9ecdf}.farmer-brewing .story h3{margin-bottom:22px;font-size:25px}@media(max-width:600px){.brew-banner img{height:250px}}
