@font-face { font-family:"Cormorant Garamond"; src:url("assets/fonts/cormorant-garamond-500.ttf") format("truetype"); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:"Cormorant Garamond"; src:url("assets/fonts/cormorant-garamond-600.ttf") format("truetype"); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:"Cormorant Garamond"; src:url("assets/fonts/cormorant-garamond-500-italic.ttf") format("truetype"); font-weight:500; font-style:italic; font-display:swap; }
@font-face { font-family:"Cormorant Garamond"; src:url("assets/fonts/cormorant-garamond-600-italic.ttf") format("truetype"); font-weight:600; font-style:italic; font-display:swap; }
@font-face { font-family:"Plus Jakarta Sans"; src:url("assets/fonts/plus-jakarta-sans-400.ttf") format("truetype"); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"Plus Jakarta Sans"; src:url("assets/fonts/plus-jakarta-sans-500.ttf") format("truetype"); font-weight:500; font-style:normal; font-display:swap; }

:root {
  --red: #c5262d;
  --red-dark: #971b21;
  --ink: #1b1917;
  --paper: #f3f0e9;
  --paper-2: #e9e4da;
  --white: #fffdfa;
  --muted: #77716a;
  --line: rgba(27,25,23,.16);
  --shadow: 0 28px 70px rgba(40,29,23,.14);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Plus Jakarta Sans", Arial, sans-serif;
  --container: 1140px;
  --gutter: 20px;
  --ease: cubic-bezier(.22,1,.36,1);
  --header: 82px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 16px; line-height: 1.55; overflow-x: hidden; }
body.menu-open { overflow: hidden; }
body::selection { color: var(--white); background: var(--red); }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
.skip-link { position: fixed; left: 16px; top: -100px; z-index: 999; background: var(--ink); color: white; padding: 12px 18px; transition: top .2s; }
.skip-link:focus { top: 16px; }
.grain { position: fixed; inset: 0; z-index: 20; pointer-events: none; opacity: .055; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E"); }

.site-header { position: sticky; top: 0; z-index: 50; min-height: var(--header); color: var(--ink); background: color-mix(in srgb, var(--paper) 94%, transparent); border-bottom: 1px solid var(--line); backdrop-filter: blur(16px); transition: min-height .25s var(--ease), box-shadow .25s; }
.site-header.scrolled { min-height: 68px; box-shadow: 0 8px 26px rgba(27,25,23,.07); }
.header-container { width:min(var(--container),calc(100% - (var(--gutter) * 2))); min-height:inherit; margin-inline:auto; display:grid; grid-template-columns:minmax(190px,1fr) auto minmax(190px,1fr); gap:24px; align-items:center; }
.brand { display: inline-flex; align-items: center; gap: 12px; width: max-content; }
.brand-mark { width: 82px; display:grid; place-items:center; }
.brand-mark img { width:82px; height:auto; }
.brand-copy { font-weight: 700; font-size: 14px; line-height: 1.2; letter-spacing: .02em; }
.brand-copy small { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; font-weight: 500; text-transform: uppercase; letter-spacing: .12em; }
.desktop-nav { display: flex; align-items: center; gap: clamp(20px,2.4vw,40px); }
.desktop-nav a { padding:8px 0; font-size:14px; font-weight:600; transition:color .25s var(--ease); }
.desktop-nav a:hover,.desktop-nav a.active { color:var(--red); }
.desktop-nav a:focus-visible { color:var(--red); outline:1px solid var(--red); outline-offset:4px; }
.header-actions { justify-self: end; display:flex; align-items:center; gap: 12px; }
.shop-link { min-height:44px; padding:10px 20px; border:1px solid var(--ink); display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:500; text-transform:uppercase; letter-spacing:.07em; transition:.25s; }
.shop-link:hover { color:var(--white); background:var(--ink); }
.menu-toggle { display:none; width:48px; height:44px; border:0; background:transparent; cursor:pointer; }
.menu-toggle span { display:block; width:24px; height:2px; margin:6px auto; background:currentColor; transition:.25s; }
.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; top:var(--header); left:0; right:0; bottom:auto; z-index:40; max-height:calc(100dvh - var(--header)); padding:14px max(var(--gutter),calc((100vw - var(--container))/2)) 18px; overflow:auto; color:var(--ink); background:linear-gradient(180deg,color-mix(in srgb,var(--paper) 97%,white) 0%,color-mix(in srgb,var(--paper) 91%,#eadfd8) 100%); border-bottom:1px solid var(--line); box-shadow:0 20px 42px rgba(27,25,23,.13); opacity:0; visibility:hidden; pointer-events:none; transform:translateY(-12px); transition:opacity .25s,visibility .25s,transform .3s var(--ease); }
.mobile-menu.open { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); }
.mobile-menu nav { display:grid; }
.mobile-menu a { min-height:50px; padding:13px 4px; display:flex; align-items:center; color:var(--ink); border-bottom:1px solid var(--line); font-family:var(--sans); font-size:14px; font-weight:500; line-height:1.4; letter-spacing:.01em; transition:color .22s; }
.mobile-menu a:last-child { border-bottom:0; }
.mobile-menu a:hover,.mobile-menu a:focus-visible,.mobile-menu a.active { color:var(--red); outline:none; }
.mobile-menu a:focus-visible { outline:1px solid var(--red); outline-offset:-1px; }

main { min-height:70vh; }
.container,.narrow { width:min(var(--container),calc(100% - (var(--gutter) * 2))); margin-inline:auto; }
.section { padding:clamp(76px,8vw,128px) 0; }
.section-sm { padding:clamp(52px,5.5vw,80px) 0; }
.eyebrow { margin:0 0 20px; display:flex; align-items:center; gap:10px; color:var(--red); font-size:11px; font-weight:500; letter-spacing:.15em; text-transform:uppercase; }
.eyebrow::before { content:""; width:32px; height:2px; background:currentColor; }
.eyebrow.light { color:#ffb6b9; }
.display { margin:0; font:500 clamp(54px,8.3vw,128px)/.83 var(--serif); letter-spacing:-.045em; }
.display em, .title-xl em { color:var(--red); font-weight:500; }
.title-xl { margin:0; font:500 clamp(48px,7vw,105px)/.9 var(--serif); letter-spacing:-.04em; }
.title-lg { margin:0; font:500 clamp(40px,5.2vw,78px)/.95 var(--serif); letter-spacing:-.035em; }
.title-md { margin:0; font:500 clamp(34px,4vw,58px)/1 var(--serif); }
.section-head { display:grid; grid-template-columns:1.35fr .65fr; gap:clamp(32px,8vw,130px); align-items:end; margin-bottom:clamp(42px,6vw,82px); }
.section-head p { margin:0; color:var(--muted); max-width:46ch; }
.rule { border-top:1px solid var(--line); }
.btn { min-height:52px; padding:14px 22px; display:inline-flex; align-items:center; justify-content:center; gap:22px; border:1px solid var(--ink); background:transparent; font-size:12px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; transition:.28s var(--ease); }
.btn:hover, .btn:focus-visible { color:var(--white); background:var(--ink); transform:translateY(-2px); }
.btn-red { color:var(--white); background:var(--red); border-color:var(--red); }
.btn-red:hover { background:var(--red-dark); border-color:var(--red-dark); }
.btn-light { color:var(--ink); background:var(--white); border-color:var(--white); }
.link-arrow { display:inline-flex; align-items:center; gap:18px; color:var(--red); font-size:12px; font-weight:500; letter-spacing:.09em; text-transform:uppercase; }
.link-arrow span { transition:transform .25s; }
.link-arrow:hover span { transform:translateX(5px); }

.hero { position:relative; min-height:80vh; overflow:hidden; color:var(--white); background:var(--ink); }
.hero-media { position:absolute; inset:0; }
.hero-media img { width:100%; height:100%; object-fit:cover; object-position:top center; filter:saturate(.7) contrast(1.06); transform:scale(1.02); animation:heroIn 1.4s var(--ease) both; }
.hero-media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(15,9,7,.83) 0%,rgba(15,9,7,.4) 52%,rgba(15,9,7,.14)),linear-gradient(0deg,rgba(15,9,7,.48),transparent 50%); }
.hero-inner { position:relative; z-index:2; width:min(var(--container),calc(100% - (var(--gutter) * 2))); min-height:inherit; margin-inline:auto; padding:clamp(70px,10vw,140px) 0 46px; display:grid; grid-template-columns:1fr .35fr; align-items:end; gap:40px; }
.hero-copy { max-width:1030px; }
.hero .display { max-width:9ch; text-wrap:balance; }
.hero .display em { color:#ff8f93; }
.hero-kicker { margin:0 0 24px; display:flex; align-items:center; gap:13px; font-size:11px; font-weight:500; letter-spacing:.18em; text-transform:uppercase; }
.hero-kicker::before { content:""; width:42px; height:2px; background:var(--red); }
.hero-actions { margin-top:34px; display:flex; gap:12px; flex-wrap:wrap; }
.hero-aside { align-self:end; padding:22px 0 4px; border-top:1px solid rgba(255,255,255,.45); }
.hero-aside b { display:block; margin-bottom:7px; font-size:13px; letter-spacing:.07em; text-transform:uppercase; }
.hero-aside p { margin:0; color:rgba(255,255,255,.72); font-size:13px; }
.hero-index { position:absolute; right:3vw; top:36px; z-index:2; display:flex; gap:7px; }
.hero-index i { width:31px; height:3px; background:rgba(255,255,255,.38); }
.hero-index i:first-child { background:var(--red); }
@keyframes heroIn { from{transform:scale(1.1);opacity:.25} to{transform:scale(1.02);opacity:1} }

.trust-strip { background:var(--red); color:var(--white); }
.trust-grid { width:min(var(--container),calc(100% - (var(--gutter) * 2))); margin-inline:auto; display:grid; grid-template-columns:repeat(4,1fr); }
.trust-grid > div { min-height:112px; padding:25px 22px; display:grid; grid-template-columns:auto 1fr; column-gap:14px; align-content:center; border-right:1px solid rgba(255,255,255,.22); }
.trust-grid > div:first-child { border-left:1px solid rgba(255,255,255,.22); }
.trust-grid span { grid-row:1/3; align-self:start; color:#ffb0b3; font:500 25px/1 var(--serif); }
.trust-grid strong { font-size:12px; font-weight:500; letter-spacing:.06em; text-transform:uppercase; }
.trust-grid small { color:rgba(255,255,255,.68); font-size:11px; }

.category-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:18px; }
.category-card { position:relative; min-height:340px; padding:26px; display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; color:var(--white); background:#2d2925; }
.category-card:nth-child(1),.category-card:nth-child(4) { grid-column:span 7; }
.category-card:nth-child(2),.category-card:nth-child(3) { grid-column:span 5; }
.category-card:nth-child(n+5) { grid-column:span 3; min-height:260px; }
.category-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease),filter .7s; }
.category-card::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(15,10,8,.94) 0%,rgba(15,10,8,.68) 30%,rgba(15,10,8,.22) 62%,rgba(15,10,8,.05) 82%); }
.category-card:hover img { transform:scale(1.06); filter:saturate(.75); }
.category-card>*:not(img) { position:relative; z-index:2; }
.category-card > div { width:calc(100% - 58px); }
.category-card h3 { margin:0; max-width:13ch; font:500 clamp(27px,3vw,47px)/.95 var(--serif); text-shadow:0 2px 18px rgba(0,0,0,.52); }
.category-card:nth-child(n+5) h3 { font-size:27px; }
.category-card p { margin:12px 0 0; color:rgba(255,255,255,.86); font-size:12px; text-shadow:0 1px 10px rgba(0,0,0,.6); }
.category-card .round-arrow { position:absolute; right:22px; bottom:22px; width:44px; height:44px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.55); border-radius:50%; }

.coffee-journey { padding:clamp(76px,8vw,128px) 0; background:var(--paper-2); border-block:1px solid var(--line); }
.journey-head { margin-bottom:clamp(44px,6vw,76px); display:grid; grid-template-columns:1.3fr .7fr; gap:clamp(36px,8vw,120px); align-items:end; }
.journey-head p:last-child { margin:0; max-width:48ch; color:var(--muted); }
.journey-chapters { display:grid; gap:22px; }
.journey-chapter { min-height:410px; display:grid; grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr); overflow:hidden; background:var(--white); border:1px solid var(--line); }
.journey-media { position:relative; min-width:0; min-height:410px; margin:0; overflow:hidden; background:#d7d0c5; }
.journey-media::after { content:""; position:absolute; inset:0; background:linear-gradient(110deg,transparent 62%,rgba(27,25,23,.12)); pointer-events:none; }
.journey-media img { width:100%; height:100%; object-fit:cover; filter:saturate(.76) contrast(1.02); transition:transform .9s var(--ease),filter .9s var(--ease); }
.journey-chapter:hover .journey-media img { transform:scale(1.035); filter:saturate(.9) contrast(1.03); }
.journey-copy { position:relative; z-index:1; padding:clamp(38px,5vw,66px); display:flex; flex-direction:column; justify-content:center; }
.journey-label { margin:0 0 24px; display:flex; align-items:center; gap:12px; color:var(--red); font-size:10px; font-weight:500; letter-spacing:.15em; text-transform:uppercase; }
.journey-label::before { content:""; width:32px; height:2px; background:currentColor; }
.journey-copy h3 { max-width:10ch; margin:0 0 24px; font:500 clamp(42px,4.5vw,64px)/.93 var(--serif); letter-spacing:-.035em; text-wrap:balance; }
.journey-copy > p:not(.journey-label) { max-width:45ch; margin:0; color:var(--muted); font-size:13px; line-height:1.75; }
.journey-copy .link-arrow { width:max-content; min-height:44px; margin-top:22px; }
.journey-chapter-dark { grid-template-columns:minmax(320px,.82fr) minmax(0,1.18fr); color:var(--white); background:var(--ink); }
.journey-chapter-dark .journey-media { grid-column:2; grid-row:1; }
.journey-chapter-dark .journey-copy { grid-column:1; grid-row:1; }
.journey-chapter-dark .journey-label { color:#ff999d; }
.journey-chapter-dark .journey-copy > p:not(.journey-label) { color:rgba(255,255,255,.64); }
.journey-chapter-dark .journey-media::after { background:linear-gradient(250deg,transparent 62%,rgba(27,25,23,.2)); }

.product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.product-card { position:relative; display:flex; flex-direction:column; min-width:0; overflow:hidden; background:var(--white); border:1px solid var(--line); transition:transform .35s var(--ease),border-color .35s; }
.product-card:hover { transform:translateY(-3px); border-color:rgba(27,25,23,.32); }
.product-image { position:relative; aspect-ratio:1/1.04; display:grid; place-items:center; overflow:hidden; background:#eeeae2; }
.product-image img { width:88%; height:88%; object-fit:contain; mix-blend-mode:multiply; transition:transform .55s var(--ease); }
.product-card:hover .product-image img { transform:scale(1.045); }
.product-badge { position:absolute; left:14px; top:14px; z-index:2; padding:7px 10px; color:white; background:var(--red); font-size:9px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; }
.product-info { min-width:0; min-height:132px; padding:20px; display:flex; flex-direction:column; gap:8px; }
.product-info .cat { color:var(--red); font-size:9px; font-weight:500; letter-spacing:.11em; text-transform:uppercase; }
.product-info h3 { min-width:0; margin:0; font-size:17px; line-height:1.2; overflow-wrap:anywhere; }
.product-info .price { margin-top:auto; display:flex; align-items:baseline; flex-wrap:wrap; gap:5px; font-weight:500; white-space:normal; }
.product-info del { color:var(--muted); font-weight:400; font-size:12px; }

.story-split { display:grid; grid-template-columns:1.05fr .95fr; min-height:740px; background:var(--ink); color:var(--white); }
.story-media { position:relative; overflow:hidden; }
.story-media img { width:100%; height:100%; object-fit:cover; filter:saturate(.65); }
.story-media::after { content:"1908"; position:absolute; left:32px; bottom:18px; font:500 clamp(70px,10vw,150px)/1 var(--serif); color:rgba(255,255,255,.6); }
.story-copy { padding:clamp(52px,6.5vw,96px); display:flex; flex-direction:column; justify-content:center; }
.story-copy blockquote { margin:28px 0; font:500 clamp(36px,4.4vw,65px)/1 var(--serif); }
.story-copy blockquote em { color:#ff8f93; }
.story-copy p:not(.eyebrow) { max-width:52ch; color:rgba(255,255,255,.64); }
.story-copy .btn { width:max-content; align-self:flex-start; margin-top:8px; }

.interest-section { padding:clamp(52px,5vw,78px) 0; }
.interest-section .section-head { margin-bottom:clamp(34px,4vw,52px); }
.interest-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.interest-card { min-height:240px; padding:24px 28px 22px; display:grid; grid-template-columns:1fr auto; grid-template-rows:auto 1fr; column-gap:18px; row-gap:22px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); transition:.3s; }
.interest-card:hover { color:white; background:var(--red); }
.interest-card span { grid-column:1/-1; font-size:10px; font-weight:500; letter-spacing:.12em; }
.interest-card h3 { margin:0; max-width:9ch; align-self:center; font:500 clamp(32px,3.6vw,50px)/.95 var(--serif); }
.interest-card b { align-self:end; font-size:24px; font-weight:400; line-height:1; }

.newsletter-section { padding:clamp(72px,8vw,110px) 0; background:var(--paper); }
.newsletter { position:relative; width:min(var(--container),calc(100% - (var(--gutter) * 2))); margin-inline:auto; padding:clamp(44px,5vw,66px); display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,6vw,82px); align-items:end; overflow:hidden; color:var(--white); background:linear-gradient(120deg,#cc2930 0%,#b61f25 100%); border:1px solid rgba(151,27,33,.25); box-shadow:0 24px 60px rgba(126,24,29,.12); }
.newsletter::after { content:""; position:absolute; width:280px; height:280px; right:-165px; top:-190px; border:1px solid rgba(255,255,255,.2); border-radius:50%; pointer-events:none; }
.newsletter h2 { margin:0; max-width:13ch; font:500 clamp(42px,5vw,72px)/.94 var(--serif); }
.newsletter-form { display:flex; align-items:end; border-bottom:1px solid rgba(255,255,255,.75); }
.newsletter-form label { flex:1; }
.newsletter-form span { display:block; margin-bottom:5px; font-size:10px; font-weight:500; text-transform:uppercase; letter-spacing:.1em; }
.newsletter-form input { width:100%; padding:12px 0 17px; border:0; outline:0; color:white; background:transparent; font-size:17px; }
.newsletter-form input::placeholder { color:rgba(255,255,255,.55); }
.newsletter-form button { width:48px; height:48px; margin-bottom:4px; border:1px solid rgba(255,255,255,.65); color:white; background:transparent; border-radius:50%; cursor:pointer; }

.page-hero { position:relative; min-height:clamp(420px,45vw,500px); padding:clamp(76px,9vw,132px) max(var(--gutter),calc((100vw - var(--container))/2)) clamp(50px,6vw,70px); display:flex; align-items:flex-end; overflow:hidden; color:white; background:var(--ink); }
.page-hero-media { position:absolute; inset:0; opacity:.48; }
.page-hero-media img { width:100%; height:100%; object-fit:cover; filter:saturate(.5); }
.page-hero-media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(15,11,9,.75),transparent),linear-gradient(0deg,rgba(15,11,9,.62),transparent); }
.page-hero-copy { position:relative; z-index:2; width:100%; margin:0; }
.page-hero .title-xl { max-width:100%; }
.page-hero .eyebrow { color:#ff9da1; }

.intro-grid { display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(40px,10vw,150px); }
.intro-grid .lead { margin:0; font:500 clamp(32px,4.2vw,57px)/1.02 var(--serif); }
.intro-grid .copy { color:var(--muted); }
.intro-grid .copy p:first-child { margin-top:0; }
.feature-rail { margin-top:65px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }
.feature { padding:28px 28px 20px 0; border-right:1px solid var(--line); }
.feature:not(:first-child) { padding-left:28px; }
.feature:last-child { border:0; }
.feature .num { color:var(--red); font:500 38px var(--serif); }
.feature h3 { margin:50px 0 10px; font:500 30px var(--serif); }
.feature p { color:var(--muted); font-size:13px; }

.archive-products { margin-top:70px; }
.shop-top { margin-bottom:32px; padding-bottom:22px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); }
.shop-top p { margin:0; color:var(--muted); font-size:13px; }
.shop-top strong { color:var(--ink); font-weight:500; }
.sort-select { min-width:230px; min-height:48px; padding:0 42px 0 16px; border:1px solid var(--line); color:var(--ink); background-color:transparent; font:400 13px var(--sans); cursor:pointer; }
.empty-shop { grid-column:1/-1; padding:80px 20px; border:1px solid var(--line); text-align:center; }
.woocommerce-pagination { margin-top:54px; display:flex; align-items:center; justify-content:center; gap:8px; }
.page-number { width:46px; height:46px; display:grid; place-items:center; border:1px solid var(--line); color:var(--ink); background:transparent; font-size:12px; transition:color .25s,background-color .25s,border-color .25s; }
.page-number:hover { color:var(--white); background:var(--red); border-color:var(--red); }
.page-number.current { color:var(--white); background:var(--ink); border-color:var(--ink); }
.page-number.disabled { color:#aaa39b; pointer-events:none; opacity:.45; }
.page-ellipsis { width:22px; color:var(--muted); text-align:center; font-size:13px; }
.page-arrow { font-size:19px; font-weight:400; }

.product-detail { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(40px,7vw,100px); }
.product-gallery { position:sticky; top:100px; align-self:start; }
.product-gallery-main { position:relative; aspect-ratio:1/1; display:grid; place-items:center; background:#e9e4db; }
.product-gallery-main img { width:82%; height:82%; object-fit:contain; mix-blend-mode:multiply; }
.product-gallery-main .product-badge { left:20px; top:20px; }
.product-summary { padding-top:12px; }
.product-summary h1 { margin:18px 0; font:500 clamp(43px,5vw,72px)/.95 var(--serif); }
.product-summary .big-price { font-size:24px; font-weight:500; }
.product-summary .description { margin:28px 0; color:var(--muted); }
.stock { display:flex; align-items:center; gap:8px; color:#4d745b; font-size:12px; font-weight:500; text-transform:uppercase; letter-spacing:.08em; }
.stock::before { content:""; width:8px; height:8px; background:#4d745b; border-radius:50%; }
.add-row { margin:26px 0; }
.external-purchase { width:100%; justify-content:space-between; }
.meta { padding:22px 0; border-block:1px solid var(--line); color:var(--muted); font-size:12px; }
.product-perks { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:25px; }
.product-perks div { padding:15px; background:var(--paper-2); font-size:11px; }
.tabs { margin-top:70px; }
.tab-buttons { display:flex; gap:0; border-bottom:1px solid var(--line); }
.tab-buttons button { padding:15px 24px; border:0; background:transparent; font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:.08em; cursor:pointer; }
.tab-buttons button.active { color:var(--red); box-shadow:inset 0 -2px var(--red); }
.tab-panel { padding:34px 0; color:var(--muted); max-width:75ch; }
.tab-panel h3 { color:var(--ink); font:500 34px var(--serif); }

.blog-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:stretch; }
.post-card { height:100%; display:flex; flex-direction:column; overflow:hidden; background:var(--white); border:1px solid var(--line); }
.post-media { flex:0 0 auto; display:block; aspect-ratio:16/10; overflow:hidden; }
.post-media img { width:100%; height:100%; object-fit:cover; filter:saturate(.72); transition:transform .7s var(--ease); }
.post-card:hover img { transform:scale(1.04); }
.post-copy { flex:1; padding:30px; display:flex; flex-direction:column; align-items:flex-start; }
.post-copy .date { color:var(--red); font-size:10px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; }
.post-copy h2 { margin:30px 0 18px; font:500 clamp(31px,3.5vw,48px)/1 var(--serif); }
.post-copy p { color:var(--muted); }
.post-copy .link-arrow { margin-top:auto; padding-top:12px; }
.article-head { padding:110px 0 60px; }
.article-head h1 { max-width:13ch; }
.article-meta { margin:30px 0 0; color:var(--muted); font-size:12px; }
.article-image { width:min(var(--container),calc(100% - (var(--gutter) * 2))); height:min(680px,65vw); margin:auto; object-fit:cover; }
.article-body { padding:75px 0 120px; }
.article-body > * { max-width:760px; margin-left:auto; margin-right:auto; }
.article-body .dropcap::first-letter { float:left; margin:5px 12px 0 0; color:var(--red); font:500 78px/.7 var(--serif); }
.article-body p { color:#514c47; font-size:18px; line-height:1.8; }
.article-body h2 { margin:65px 0 20px; font:500 45px/1 var(--serif); }

.maintenance-steps { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.maintenance-card { min-height:500px; padding:45px; display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; color:white; background:var(--ink); }
.maintenance-card:first-child { background:linear-gradient(160deg,#25211e,#8e1c21); }
.maintenance-card:last-child { color:var(--ink); background:var(--paper-2); border:1px solid var(--line); }
.maintenance-card .step-num { margin-bottom:auto; font:500 80px var(--serif); opacity:.5; }
.maintenance-card h2 { margin:0 0 20px; font:500 clamp(42px,5vw,70px)/.9 var(--serif); }
.maintenance-card p { max-width:52ch; color:rgba(255,255,255,.65); }
.maintenance-card:last-child p { color:var(--muted); }
.accordion { margin-top:70px; border-top:1px solid var(--line); }
.accordion-item { border-bottom:1px solid var(--line); }
.accordion-button { width:100%; padding:24px 0; display:flex; justify-content:space-between; border:0; background:transparent; font:500 26px var(--serif); text-align:left; cursor:pointer; }
.accordion-content { max-height:0; overflow:hidden; color:var(--muted); transition:max-height .35s var(--ease); }
.accordion-item.open .accordion-content { max-height:190px; padding-bottom:25px; }
.accordion-item.open .accordion-button span { transform:rotate(45deg); }

.about-manifesto { min-height:620px; display:grid; grid-template-columns:1fr 1fr; }
.about-manifesto .copy { padding:clamp(55px,8vw,120px); color:white; background:var(--red); }
.about-manifesto .copy h2 { margin:20px 0; font:500 clamp(45px,6vw,85px)/.88 var(--serif); }
.about-manifesto .copy p { color:rgba(255,255,255,.74); }
.about-manifesto .image img { width:100%; height:100%; object-fit:cover; }
.values-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.value-card { min-height:340px; padding:35px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.value-card .num { color:var(--red); font-size:11px; }
.value-card h3 { margin:70px 0 20px; font:500 42px var(--serif); }
.value-card p { color:var(--muted); }

.contact-layout { display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(50px,9vw,130px); }
.contact-info h2 { margin:0 0 35px; font:500 clamp(45px,6vw,80px)/.95 var(--serif); }
.contact-row { padding:20px 0; border-top:1px solid var(--line); }
.contact-row span { display:block; margin-bottom:5px; color:var(--red); font-size:10px; font-weight:500; text-transform:uppercase; letter-spacing:.1em; }
.contact-form, .checkout-fields { display:grid; grid-template-columns:repeat(2,1fr); gap:22px 19px; }
.contact-form { align-items:start; }
.field { display:grid; gap:7px; }
.field.full { grid-column:1/-1; }
.field label { font-size:11px; font-weight:500; letter-spacing:.06em; text-transform:uppercase; }
.field input,.field textarea,.field select { width:100%; padding:15px 0; border:0; border-bottom:1px solid var(--line); outline:none; background:transparent; }
.field textarea { min-height:120px; resize:vertical; }
.contact-form .field:not(.full) { grid-template-rows:18px 58px; align-content:start; }
.contact-form .field:not(.full) input,.contact-form .field:not(.full) select { height:58px; padding:0 4px; line-height:normal; }
.contact-form .field.full textarea { min-height:170px; padding:18px 4px; }
.field input:focus,.field textarea:focus,.field select:focus { border-color:var(--red); }
.field .error { border-color:var(--red); }

.cart-layout,.checkout-layout { display:grid; grid-template-columns:1.35fr .65fr; gap:45px; align-items:start; }
.cart-table { border-top:1px solid var(--line); }
.cart-item { padding:22px 0; display:grid; grid-template-columns:100px 1fr auto auto; gap:20px; align-items:center; border-bottom:1px solid var(--line); }
.cart-item img { width:100px; height:100px; padding:8px; object-fit:contain; background:var(--white); mix-blend-mode:multiply; }
.cart-item h3 { margin:0 0 5px; font-size:15px; }
.cart-item .cat { color:var(--muted); font-size:11px; }
.qty-control { display:flex; align-items:center; border:1px solid var(--line); }
.qty-control button { width:34px; height:38px; border:0; background:transparent; cursor:pointer; }
.qty-control span { min-width:24px; text-align:center; font-size:13px; }
.remove-item { margin-top:8px; padding:0; border:0; color:var(--red); background:transparent; font-size:11px; cursor:pointer; }
.cart-price { min-width:85px; font-weight:500; text-align:right; }
.coupon { margin-top:25px; display:flex; max-width:400px; }
.coupon input { flex:1; min-width:0; padding:13px; border:1px solid var(--line); background:transparent; }
.coupon button { border-left:0; }
.totals { padding:30px; background:var(--white); border:1px solid var(--line); }
.totals h2 { margin:0 0 22px; font:500 36px var(--serif); }
.total-row { padding:13px 0; display:flex; justify-content:space-between; border-bottom:1px solid var(--line); font-size:13px; }
.total-row.grand { margin:8px 0 20px; border:0; font-size:18px; font-weight:500; }
.totals .btn { width:100%; }
.empty-cart { padding:100px 20px; text-align:center; border:1px solid var(--line); }
.empty-cart h2 { font:500 50px var(--serif); }
.checkout-box { padding:30px; background:var(--white); border:1px solid var(--line); }
.checkout-title { margin-bottom:clamp(42px,5vw,60px); }
.checkout-subtitle { margin-bottom:30px; }
.checkout-box h2 { margin:0 0 25px; font:500 34px var(--serif); }
.order-line { padding:12px 0; display:flex; justify-content:space-between; border-bottom:1px solid var(--line); font-size:13px; }
.payment-option { margin:16px 0; padding:16px; background:var(--paper-2); }
.payment-option label { display:flex; gap:10px; font-weight:500; font-size:13px; }
.payment-option p { margin:9px 0 0 25px; color:var(--muted); font-size:12px; }
.legal { color:var(--muted); font-size:11px; }
.order-success { min-height:68vh; padding:100px 5vw; display:grid; place-items:center; text-align:center; }
.order-success .check { width:80px; height:80px; display:grid; place-items:center; margin:auto; color:white; background:var(--red); border-radius:50%; font-size:35px; }
.order-success h1 { margin:26px 0 10px; font:500 clamp(50px,7vw,95px)/.95 var(--serif); }

.reveal { opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease),transform .7s var(--ease); }
.reveal.visible { opacity:1; transform:none; }
.toast { position:fixed; z-index:100; right:22px; bottom:22px; max-width:340px; padding:14px 18px; color:white; background:var(--ink); box-shadow:var(--shadow); transform:translateY(130%); opacity:0; transition:.35s var(--ease); font-size:13px; }
.toast.show { transform:none; opacity:1; }

.site-footer { padding:clamp(68px,7vw,96px) 0 28px; color:var(--white); background:#171513; }
.footer-container { width:min(var(--container),calc(100% - (var(--gutter) * 2))); margin-inline:auto; }
.footer-lead { padding-bottom:64px; border-bottom:1px solid rgba(255,255,255,.17); }
.footer-lead h2 { margin:0; max-width:none; font:500 clamp(48px,6.5vw,82px)/1.02 var(--serif); }
.footer-lead h2 em { color:#ff8589; font-weight:500; }
.footer-grid { padding:52px 0; display:grid; grid-template-columns:1.25fr .75fr .9fr; gap:clamp(45px,7vw,100px); }
.footer-grid h3 { margin:0 0 22px; color:#ff999d; font-size:11px; text-transform:uppercase; letter-spacing:.12em; }
.footer-grid a,.footer-grid div>p { display:block; margin:9px 0; color:rgba(255,255,255,.66); font-size:12px; }
.footer-grid a:hover { color:white; }
.footer-about p { max-width:42ch; line-height:1.75; }
.footer-contact-link { color:var(--white) !important; font-weight:500; }
.footer-menu a { width:max-content; max-width:100%; }
.social-links { width:max-content; max-width:100%; margin-top:24px; display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.social-links .social-icon { position:relative; width:48px; height:48px; margin:0; padding:0; display:grid; place-items:center; overflow:hidden; color:var(--white); background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.24); border-radius:50%; transition:transform .3s var(--ease),color .3s,background-color .3s,border-color .3s; }
.social-links .social-icon::after { content:""; position:absolute; inset:4px; border:1px solid rgba(255,255,255,.22); border-radius:50%; opacity:0; transform:scale(.75); transition:opacity .3s,transform .3s var(--ease); }
.social-links .social-icon:hover,.social-links .social-icon:focus-visible { color:var(--white); background:var(--red); border-color:var(--red); transform:translateY(-3px); outline:none; }
.social-links .social-icon:hover::after,.social-links .social-icon:focus-visible::after { opacity:1; transform:scale(1); }
.social-icon svg { position:relative; z-index:1; width:19px; height:19px; fill:currentColor; }
.social-icon .instagram-mark { fill:none; stroke:currentColor; stroke-width:1.7; }
.social-icon .instagram-dot { fill:currentColor; stroke:none; }
.info-layout { display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(50px,9vw,130px); align-items:start; }
.info-intro { margin:0; font:500 clamp(32px,4.2vw,56px)/1.03 var(--serif); }
.info-sections { border-top:1px solid var(--line); }
.info-section { padding:32px 0; border-bottom:1px solid var(--line); }
.info-section h2 { margin:0 0 14px; font:500 34px/1 var(--serif); }
.info-section p { margin:0; max-width:70ch; color:var(--muted); }
.footer-bottom { padding-top:22px; display:grid; grid-template-columns:1fr auto; align-items:center; gap:20px; border-top:1px solid rgba(255,255,255,.17); color:rgba(255,255,255,.4); font-size:10px; text-transform:uppercase; letter-spacing:.08em; }
.footer-legal { display:flex; align-items:center; gap:18px; min-width:0; }
.footer-romita-logo { width:106px; height:auto; flex:0 0 auto; filter:invert(1); opacity:.88; }
.footer-credit { color:rgba(255,255,255,.48); }
.footer-credit a { color:#ff8f93; font-weight:600; transition:color .22s; }
.footer-credit a:hover,.footer-credit a:focus-visible { color:var(--white); outline:none; }
.footer-credit a:focus-visible { outline:1px solid #ffb6b9; outline-offset:4px; }

@media (max-width: 1050px) {
  .site-header.scrolled { min-height:var(--header); }
  .header-container { grid-template-columns:1fr auto; }
  .desktop-nav { display:none; }
  .menu-toggle { display:block; }
  .hero { min-height:clamp(620px,72vw,720px); }
  .hero-inner { grid-template-columns:1fr; }
  .hero-aside { max-width:320px; }
  .product-grid { grid-template-columns:repeat(3,1fr); }
  .trust-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .trust-grid > div:nth-child(odd) { border-left:1px solid rgba(255,255,255,.22); }
  .trust-grid > div { border-bottom:1px solid rgba(255,255,255,.22); }
  .category-card:nth-child(n) { grid-column:span 6; }
  .category-card:nth-child(n+5) { min-height:290px; }
  .product-detail { grid-template-columns:1fr 1fr; }
  .footer-grid { grid-template-columns:1.1fr .9fr; gap:42px 64px; }
  .footer-about { grid-column:1/-1; }
  .contact-layout,.info-layout { gap:56px; }
  .cart-layout,.checkout-layout { gap:30px; }
}

@media (max-width: 900px) {
  .intro-grid,.contact-layout,.info-layout { grid-template-columns:1fr; gap:36px; }
  .journey-head { grid-template-columns:1fr; gap:24px; }
  .journey-chapter,.journey-chapter-dark { min-height:0; grid-template-columns:1fr; }
  .journey-chapter-dark .journey-media,.journey-chapter-dark .journey-copy { grid-column:1; }
  .journey-chapter-dark .journey-media { grid-row:1; }
  .journey-chapter-dark .journey-copy { grid-row:2; }
  .journey-media { min-height:0; aspect-ratio:16/9; }
  .story-split { grid-template-columns:1fr; min-height:0; }
  .story-media { min-height:clamp(380px,64vw,540px); }
  .story-copy { padding:64px max(var(--gutter),calc((100vw - var(--container))/2)); }
  .product-detail { grid-template-columns:1fr; }
  .product-gallery { position:static; }
  .product-gallery-main { max-height:720px; }
  .product-gallery-main img { max-width:620px; }
  .cart-layout,.checkout-layout { grid-template-columns:1fr; gap:40px; }
  .about-manifesto { grid-template-columns:1fr; min-height:0; }
  .about-manifesto .image { min-height:480px; }
}

@media (max-width: 760px) {
  :root { --header:70px; --gutter:18px; }
  .header-container { gap:8px; }
  .brand-mark,.brand-mark img { width:70px; }
  .brand-copy { display:none; }
  .shop-link { min-height:40px; padding:8px 13px; display:flex; font-size:10px; letter-spacing:.08em; }
  .header-actions { gap:2px; }
  .menu-toggle { width:42px; }
  .section { padding:64px 0; }
  .section-sm { padding:48px 0; }
  .eyebrow { margin-bottom:16px; }
  .section-head,.intro-grid { grid-template-columns:1fr; gap:25px; }
  .section-head { margin-bottom:36px; }
  .hero { min-height:clamp(540px,135vw,660px); }
  .hero-inner { padding:72px 0 28px; align-content:end; }
  .hero .display { font-size:clamp(58px,18vw,86px); }
  .hero-actions { margin-top:28px; gap:10px; }
  .hero-actions .btn { flex:1 1 220px; }
  .category-grid { display:block; }
  .trust-grid { grid-template-columns:1fr; }
  .trust-grid > div { min-height:88px; padding:20px 16px; border-left:1px solid rgba(255,255,255,.22); }
  .category-card { min-height:clamp(260px,82vw,320px) !important; margin-bottom:10px; padding:22px; }
  .category-card:nth-child(n+5) { display:flex; }
  .coffee-journey { padding:64px 0; }
  .journey-chapters { gap:12px; }
  .journey-media { aspect-ratio:4/3; }
  .journey-copy { padding:36px 24px 40px; }
  .journey-copy h3 { max-width:12ch; margin-bottom:18px; font-size:clamp(38px,12vw,50px); }
  .journey-label { margin-bottom:18px; }
  .product-grid { grid-template-columns:repeat(2,1fr); gap:10px; }
  .product-info { min-height:124px; padding:14px; grid-template-columns:1fr; }
  .story-media { min-height:0; height:clamp(320px,105vw,480px); }
  .story-copy { padding:56px var(--gutter); }
  .interest-grid { grid-template-columns:1fr; }
  .interest-card { min-height:180px; padding:22px; row-gap:16px; }
  .newsletter-section { padding:56px 0; }
  .newsletter { grid-template-columns:1fr; gap:32px; padding:36px 20px; }
  .page-hero { min-height:clamp(350px,72svh,420px); padding:74px var(--gutter) 44px; }
  .feature-rail { grid-template-columns:1fr; }
  .feature,.feature:not(:first-child) { padding:25px 0; border-right:0; border-bottom:1px solid var(--line); }
  .feature h3 { margin:22px 0 8px; }
  .archive-products { margin-top:50px; }
  .shop-top { margin-bottom:24px; padding-bottom:18px; align-items:flex-start; flex-direction:column; }
  .shop-top select { width:100%; }
  .woocommerce-pagination { margin-top:38px; gap:6px; }
  .page-number { width:42px; height:42px; }
  .product-summary h1 { font-size:48px; }
  .product-perks { grid-template-columns:1fr; }
  .tabs { margin-top:50px; }
  .tab-buttons { overflow-x:auto; }
  .tab-buttons button { padding:14px 18px; white-space:nowrap; }
  .tab-panel { padding:28px 0; }
  .blog-grid { grid-template-columns:1fr; }
  .maintenance-steps { grid-template-columns:1fr; }
  .post-copy { padding:24px; }
  .article-head { padding:72px 0 40px; }
  .article-body { padding:48px 0 72px; }
  .article-body p { font-size:16px; line-height:1.75; }
  .article-body h2 { margin:48px 0 18px; font-size:38px; }
  .maintenance-card { min-height:380px; padding:26px; }
  .accordion { margin-top:52px; }
  .about-manifesto .copy { padding:56px var(--gutter); }
  .about-manifesto .image { min-height:380px; }
  .values-grid { grid-template-columns:1fr; }
  .value-card { min-height:280px; padding:28px; }
  .value-card h3 { margin:48px 0 18px; }
  .contact-form,.checkout-fields { grid-template-columns:1fr; }
  .field.full { grid-column:auto; }
  .cart-item { grid-template-columns:80px 1fr auto; gap:12px; }
  .cart-item img { width:80px; height:80px; }
  .cart-item .qty-control { grid-column:2; width:max-content; }
  .cart-price { grid-column:3; grid-row:1/3; }
  .totals,.checkout-box { padding:24px; }
  .checkout-title { margin-bottom:38px; }
  .checkout-subtitle { margin-bottom:24px; }
  .site-footer { padding:60px 0 24px; }
  .footer-lead { padding-bottom:48px; }
  .footer-lead h2 { font-size:clamp(40px,12vw,52px); line-height:1.05; }
  .footer-grid { padding:42px 0; grid-template-columns:1fr 1fr; gap:36px 28px; }
  .footer-about { grid-column:1/-1; }
  .info-layout { grid-template-columns:1fr; }
  .info-section { padding:26px 0; }
  .footer-bottom { padding-top:24px; grid-template-columns:1fr; align-items:start; gap:16px; }
  .footer-legal { align-items:flex-start; flex-direction:column; gap:12px; }
  .footer-romita-logo { width:88px; opacity:.8; }
  .footer-credit { font-size:9px; line-height:1.5; }
  .toast { left:18px; right:18px; bottom:18px; max-width:none; }
}

@media (max-width: 410px) {
  .product-grid { grid-template-columns:1fr; }
  .product-image { aspect-ratio:1.1/1; }
  .display { font-size:53px; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-about { grid-column:auto; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
}
