/* ===== Bondi Press storefront ===== */
@font-face{font-family:Jost;font-weight:300;font-display:swap;src:url(/fonts/jost-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:Jost;font-weight:400;font-display:swap;src:url(/fonts/jost-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Jost;font-weight:500;font-display:swap;src:url(/fonts/jost-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:Jost;font-weight:600;font-display:swap;src:url(/fonts/jost-latin-600-normal.woff2) format("woff2")}

:root{
  --accent:#b5532f; --accent-dark:#8f3f22; --cream:#efe3cf; --bg:#faf7f2; --card:#fff; --ink:#2a1c14; --muted:#7a6b60; --line:#e8dfd1;
  --green:#5f8f6e; --sand:#cda46b; --blue:#3e6c98; --ok:#1a7f37; --err:#b3261e; --radius:6px;
  --font:Jost,"Avenir Next","Century Gothic","Segoe UI",system-ui,sans-serif;
  --shadow:0 1px 2px rgba(42,28,20,.05),0 8px 24px rgba(42,28,20,.07);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font:400 17px/1.6 var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:var(--accent);text-underline-offset:3px}
h1,h2,h3,h4{line-height:1.2;margin:0 0 .5em;font-weight:500}
h1{font-size:clamp(1.7rem,4.5vw,2.5rem);text-transform:uppercase;letter-spacing:.12em}
h2{font-size:clamp(1.25rem,3vw,1.6rem);text-transform:uppercase;letter-spacing:.14em}
h3{font-size:1.05rem;letter-spacing:.04em}
p{margin:0 0 1em}
.wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 20px}
main.wrap{padding-top:32px;padding-bottom:64px;min-height:60vh}
main.full{max-width:none;padding:0}
.muted{color:var(--muted)} .small{font-size:.88rem} .right{text-align:right} .center{text-align:center}
.eyebrow{display:block;text-transform:uppercase;letter-spacing:.28em;font-size:.74rem;color:var(--accent);font-weight:500;margin-bottom:.8em}
.section{padding:72px 0}
.section.tight{padding:48px 0}
.section-head{text-align:center;max-width:620px;margin:0 auto 40px}
.section-head p{color:var(--muted)}
.band{background:var(--cream)}

/* announcement + demo flag */
.announce{background:var(--ink);color:var(--cream);text-align:center;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;padding:9px 16px}
.demo-flag{position:fixed;left:12px;bottom:12px;z-index:50;background:#fff3cd;color:#664d03;border:1px solid #e8d48a;border-radius:99px;padding:5px 14px;font-size:.78rem;box-shadow:var(--shadow)}

/* header */
.site-header{background:var(--accent);position:sticky;top:0;z-index:30}
.bar{display:flex;align-items:center;justify-content:space-between;min-height:70px;position:relative;gap:16px}
.brand{display:flex;align-items:center;padding:6px 0}
.brand img{display:block;height:46px;width:auto}
.nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--accent);padding:6px 20px 16px;flex-direction:column;border-top:1px solid rgba(239,227,207,.2)}
.nav.open{display:flex}
.nav a{padding:14px 0;color:var(--cream);text-decoration:none;border-bottom:1px solid rgba(239,227,207,.18);text-transform:uppercase;letter-spacing:.18em;font-size:.82rem;font-weight:500}
.nav a:hover{color:#fff}
.nav .icon-link{display:flex;align-items:center;gap:8px}
.nav svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.count{background:var(--cream);color:var(--accent);border-radius:99px;padding:0 7px;font-size:.74rem;line-height:19px;min-width:19px;text-align:center;letter-spacing:0}
.nav-toggle{background:none;border:0;padding:10px;display:grid;gap:5px;cursor:pointer}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--cream)}
@media(min-width:900px){
  .nav-toggle{display:none}
  .nav{display:flex;position:static;flex-direction:row;gap:30px;align-items:center;border:0;padding:0;background:none}
  .nav a{padding:0;border:0}
}

/* buttons & forms */
.btn,button.btn{display:inline-block;background:var(--accent);color:#fff;border:1.5px solid var(--accent);border-radius:var(--radius);padding:14px 28px;font:500 .84rem var(--font);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;cursor:pointer;text-align:center;min-height:48px;transition:background .15s,transform .15s}
.btn:hover{background:var(--accent-dark);border-color:var(--accent-dark)}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.ghost{background:transparent;color:var(--accent)}
.btn.ghost:hover{background:var(--accent);color:#fff}
.btn.light{background:var(--cream);color:var(--accent);border-color:var(--cream)}
.btn.light:hover{background:#fff;border-color:#fff}
.btn.outline-light{background:transparent;color:var(--cream);border-color:var(--cream)}
.btn.outline-light:hover{background:var(--cream);color:var(--accent)}
.btn.small{padding:8px 14px;min-height:36px;font-size:.74rem}
.btn.danger{background:var(--err);border-color:var(--err)}
.btn.block{display:block;width:100%}
label{display:block;font-weight:500;font-size:.84rem;letter-spacing:.04em;margin:0 0 6px}
input,select,textarea{width:100%;font:inherit;padding:12px 14px;border:1px solid #d6cabb;border-radius:var(--radius);background:#fff;color:var(--ink);min-height:48px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--accent)}
textarea{min-height:90px}
.field{margin-bottom:16px}
.grid2{display:grid;gap:0 16px}
@media(min-width:620px){.grid2{grid-template-columns:1fr 1fr}.grid3{display:grid;gap:0 16px;grid-template-columns:2fr 1fr 1fr}}
.check{display:flex;gap:10px;align-items:center;font-weight:400;margin-bottom:10px}
.flash{padding:14px 16px;border-radius:var(--radius);margin-bottom:20px;background:#e7f4ea;color:#14532d;border:1px solid #cfe8d5}
.flash.error,.error-msg{background:#fde8e6;color:var(--err);border-color:#f6cfca}
.error-msg{padding:12px 14px;border-radius:var(--radius);margin-bottom:16px}

/* cards & layout */
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:24px;margin-bottom:20px}
.cols{display:grid;gap:28px}
@media(min-width:900px){.cols{grid-template-columns:1.6fr 1fr;align-items:start}.cols.even{grid-template-columns:1fr 1fr}}
.narrow{max-width:460px;margin:24px auto}
.page-head{background:var(--cream);padding:48px 0 40px;text-align:center}
.page-head h1{margin:0 0 .3em}
.page-head p{margin:0 auto;max-width:560px;color:var(--muted)}

/* hero */
.hero{background:var(--cream);position:relative;overflow:hidden}
.hero-grid{display:grid;gap:10px;align-items:center;padding-top:48px;padding-bottom:0}
.hero-copy{padding-bottom:30px;position:relative;z-index:2}
.hero-copy h1{font-size:clamp(2.1rem,6vw,3.8rem);letter-spacing:.14em;font-weight:400;line-height:1.1;margin-bottom:.45em}
.hero-copy p{font-size:1.15rem;color:#5a4a3f;max-width:480px}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.hero-art{position:relative;min-height:340px;display:flex;align-items:flex-end;justify-content:center}
.hero-sun{position:absolute;left:50%;top:2%;transform:translateX(-50%);width:min(380px,80%);opacity:.55}
.hero-bags{position:relative;display:flex;align-items:flex-end;justify-content:center;z-index:2;width:100%}
.hero-bags img{width:22%;max-width:200px;height:auto;margin:0 -2.2%;filter:drop-shadow(0 16px 14px rgba(42,28,20,.2))}
.hero-bags img:nth-child(1){transform:translateY(14px) rotate(-4deg)}
.hero-bags img:nth-child(2){transform:translateY(0) scale(1.05);z-index:2}
.hero-bags img:nth-child(3){transform:translateY(-10px) scale(1.12);z-index:3}
.hero-bags img:nth-child(4){transform:translateY(0) scale(1.05);z-index:2}
.hero-bags img:nth-child(5){transform:translateY(14px) rotate(4deg)}
@media(min-width:900px){
  .hero-grid{grid-template-columns:1fr 1.15fr;padding-top:72px;gap:30px}
  .hero-copy{padding-bottom:72px}
  .hero-art{min-height:560px}
  .hero-bags img{max-width:250px}
}

/* trust strip */
.trust{background:var(--accent);color:var(--cream)}
.trust-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 14px;padding:22px 0}
@media(min-width:800px){.trust-grid{grid-template-columns:repeat(4,1fr)}}
.trust-item{display:flex;gap:12px;align-items:center;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;line-height:1.35}
.trust-item svg{flex:none;width:28px;height:28px;stroke:var(--cream);fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}

/* products */
.products{display:grid;gap:18px;grid-template-columns:repeat(2,1fr)}
@media(min-width:900px){.products{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:24px}}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden;text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s;position:relative}
.pcard:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.pimg{aspect-ratio:4/5;background:var(--cream);display:grid;place-items:center;font-size:3rem;overflow:hidden}
.pimg img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.pcard:hover .pimg img{transform:scale(1.04)}
.pbody{padding:16px 16px 20px;display:flex;flex-direction:column;gap:4px;flex:1}
.pbody h3{margin:0;text-transform:uppercase;letter-spacing:.12em;font-size:.88rem}
.pnotes{font-size:.86rem;color:var(--muted);line-height:1.4;margin:0}
.pprice{margin-top:auto;padding-top:8px;font-size:.95rem}
.pprice strong{font-weight:600}
.ribbon{position:absolute;top:10px;left:10px;background:var(--ink);color:var(--cream);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;padding:4px 9px;border-radius:99px;z-index:2}
.tag{display:inline-block;font-size:.68rem;background:var(--cream);color:#5a3a28;border-radius:99px;padding:3px 11px;margin:0 6px 6px 0;letter-spacing:.08em;text-transform:uppercase;font-weight:500}
.tabs{display:flex;gap:8px;margin-bottom:28px;flex-wrap:wrap;justify-content:center}
.tabs a{padding:9px 20px;border:1px solid var(--line);border-radius:99px;text-decoration:none;color:var(--ink);background:var(--card);text-transform:uppercase;letter-spacing:.14em;font-size:.76rem;font-weight:500}
.tabs a.on{background:var(--accent);color:#fff;border-color:var(--accent)}

/* brew guide */
.brew{display:grid;gap:14px;grid-template-columns:repeat(2,1fr)}
@media(min-width:800px){.brew{grid-template-columns:repeat(6,1fr)}}
.brew a{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:22px 10px;text-align:center;text-decoration:none;color:var(--ink);transition:border-color .2s,transform .2s}
.brew a:hover{border-color:var(--accent);transform:translateY(-2px)}
.brew svg{width:40px;height:40px;stroke:var(--accent);fill:none;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;margin-bottom:8px}
.brew b{display:block;text-transform:uppercase;letter-spacing:.14em;font-size:.76rem;font-weight:500}
.brew span{font-size:.8rem;color:var(--muted)}

/* story split */
.split{display:grid;gap:0}
@media(min-width:900px){.split{grid-template-columns:1fr 1fr}}
.split-art{background:var(--accent);display:grid;place-items:center;padding:56px 24px;min-height:340px}
.split-art img{width:min(420px,90%);height:auto}
.split-copy{padding:56px 28px;display:flex;flex-direction:column;justify-content:center}
@media(min-width:900px){.split-copy{padding:72px 64px}}
.split-copy p{color:#5a4a3f}

/* steps */
.steps{display:grid;gap:18px}
@media(min-width:800px){.steps{grid-template-columns:repeat(3,1fr);gap:28px}}
.step{text-align:center;padding:10px 12px}
.step b{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;border:1.5px solid var(--accent);color:var(--accent);font-size:1.2rem;font-weight:400;margin-bottom:14px}
.step p{color:var(--muted)}
.callout{display:flex;gap:20px;flex-direction:column;align-items:center;text-align:center;background:var(--accent);color:var(--cream);border-radius:12px;padding:36px 24px;margin-top:40px}
.callout h3{text-transform:uppercase;letter-spacing:.14em;font-size:1.1rem}
.callout p{margin:0;opacity:.9}
@media(min-width:800px){.callout{flex-direction:row;text-align:left;justify-content:space-between;padding:36px 44px}}

/* faq / accordion */
.faq{max-width:760px;margin:0 auto}
details.acc{border-bottom:1px solid var(--line)}
details.acc summary{cursor:pointer;list-style:none;padding:18px 36px 18px 0;font-weight:500;letter-spacing:.04em;position:relative}
details.acc summary::-webkit-details-marker{display:none}
details.acc summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:1.5rem;font-weight:300;color:var(--accent)}
details.acc[open] summary::after{content:"\2212"}
details.acc .acc-body{padding:0 0 20px;color:#5a4a3f}
details.acc .acc-body p:last-child{margin:0}

/* product page */
.crumbs{font-size:.84rem;color:var(--muted);margin-bottom:22px}
.crumbs a{color:var(--muted)}
.pdp{display:grid;gap:32px}
@media(min-width:900px){.pdp{grid-template-columns:1.05fr 1fr;gap:56px;align-items:start}.gallery{position:sticky;top:96px}}
.gallery .pimg{border-radius:12px}
.gallery .label-shot{display:block;width:56%;margin:16px auto 0;border-radius:10px;box-shadow:var(--shadow)}
.pdp h1{margin:.2em 0 .3em}
.pdp-price{font-size:1.7rem;font-weight:500;margin-bottom:2px}
.roast-scale{display:flex;align-items:center;gap:12px;margin:18px 0;font-size:.8rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
.roast-scale .dots{display:flex;gap:5px}
.roast-scale i{width:26px;height:6px;border-radius:3px;background:var(--line)}
.roast-scale i.on{background:var(--accent)}
.opt{border:1.5px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px;display:block;font-weight:500;cursor:pointer;background:#fff}
.opt:has(input:checked){border-color:var(--accent);background:#fdf5ee}
.opt input{margin-right:10px}
.perks{list-style:none;padding:0;margin:20px 0;display:grid;gap:10px;font-size:.92rem;color:#5a4a3f}
.perks li{display:flex;gap:10px;align-items:center}
.perks svg{width:20px;height:20px;stroke:var(--accent);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* tables */
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:.95rem}
th,td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);white-space:nowrap;font-weight:500}
td.num,th.num{text-align:right;white-space:nowrap}
.line{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.line .info{flex:1}
.line input[type=number]{width:76px}
.totals div{display:flex;justify-content:space-between;padding:6px 0}
.totals .grand{font-size:1.2rem;font-weight:500;border-top:1px solid var(--line);margin-top:8px;padding-top:12px}
.status{display:inline-block;padding:2px 11px;border-radius:99px;font-size:.74rem;font-weight:500;background:#eee;text-transform:capitalize;letter-spacing:.04em}
.status.paid,.status.roasting,.status.packed{background:#fff3cd;color:#664d03}
.status.shipped,.status.delivered,.status.active{background:#d9f2e0;color:#14532d}
.status.cancelled,.status.refunded,.status.past_due{background:#fde8e6;color:var(--err)}
.status.paused{background:#e3e8f5;color:#243b86}
.stats{display:grid;gap:12px;grid-template-columns:repeat(2,1fr);margin-bottom:20px}
@media(min-width:760px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px}
.stat b{display:block;font-size:1.6rem;font-weight:500}
.subnav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:24px;border-bottom:1px solid var(--line);padding-bottom:14px}
.subnav a{padding:8px 15px;border-radius:var(--radius);text-decoration:none;color:var(--ink);background:var(--card);border:1px solid var(--line);font-size:.9rem}
.subnav a.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.inline{display:inline}
body.is-admin .pimg{aspect-ratio:1}

/* footer */
.site-footer{background:var(--ink);color:#cdbfae;padding:56px 0 24px}
.site-footer a{display:block;color:#cdbfae;padding:4px 0;text-decoration:none}
.site-footer a:hover{color:#fff}
.site-footer h4{color:var(--cream);text-transform:uppercase;letter-spacing:.2em;font-size:.76rem;margin-bottom:14px}
.site-footer .muted{color:#9a8c7d}
.foot{display:grid;gap:32px;margin-bottom:36px}
@media(min-width:800px){.foot{grid-template-columns:1.6fr 1fr 1fr 1fr}}
.foot img{width:92px;height:auto;margin-bottom:12px}
.foot p{margin:.3em 0;max-width:300px}
.foot-bottom{border-top:1px solid rgba(239,227,207,.15);padding-top:20px;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;font-size:.82rem}

@media print{.site-header,.site-footer,.subnav,.announce,.demo-flag,.actions{display:none}}

/* ===== cart, checkout, account ===== */
.content{padding-top:40px;padding-bottom:80px}
.progress{display:flex;justify-content:center;gap:12px;font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;color:var(--muted);margin-bottom:32px;flex-wrap:wrap}
.progress span.on{color:var(--accent);font-weight:500}
.progress i{font-style:normal;opacity:.45}
.cart-item{display:grid;grid-template-columns:84px 1fr auto;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);align-items:start}
.cart-item:first-child{padding-top:0}
.cart-item:last-child{border-bottom:0;padding-bottom:0}
.thumb{border-radius:8px;overflow:hidden;background:var(--cream);aspect-ratio:4/5;display:grid;place-items:center;font-size:1.6rem}
.thumb img{width:100%;height:100%;object-fit:cover}
.cart-item h3{margin:0 0 4px;font-size:.95rem;text-transform:uppercase;letter-spacing:.1em}
.cart-item h3 a{color:inherit;text-decoration:none}
.cart-item .meta{font-size:.86rem;color:var(--muted);line-height:1.5}
.cart-item .qty-form{text-align:right}
.cart-item .qty-form input[type=number]{width:72px;text-align:center}
.link-btn{background:none;border:0;padding:6px 0;color:var(--muted);font:inherit;font-size:.82rem;text-decoration:underline;cursor:pointer}
.link-btn:hover{color:var(--accent)}
.summary{position:sticky;top:96px}
.summary h2{font-size:1rem;margin-bottom:16px}
.sum-line{display:grid;grid-template-columns:54px 1fr auto;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:.92rem}
.sum-line .thumb{width:54px;position:relative;overflow:visible}
.sum-line .thumb img{border-radius:6px}
.sum-line .thumb b{position:absolute;top:-7px;right:-7px;background:var(--ink);color:#fff;font-size:.7rem;font-weight:500;min-width:20px;height:20px;border-radius:99px;display:grid;place-items:center;padding:0 5px}
.promo{display:flex;gap:8px;margin-bottom:6px}
.promo input{min-height:44px}
.promo .btn{padding:10px 18px;min-height:44px}
.nudge{background:var(--cream);border-radius:var(--radius);padding:10px 14px;font-size:.88rem;margin:14px 0}
.secure{display:flex;gap:8px;align-items:center;justify-content:center;font-size:.8rem;color:var(--muted);margin-top:14px}
.secure svg{width:16px;height:16px;stroke:var(--muted);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.empty{text-align:center;padding:64px 20px;max-width:520px;margin:0 auto}
.empty p{color:var(--muted)}
.auth-wrap{background:var(--cream);padding:56px 0 80px}
.auth-card{max-width:440px;margin:0 auto;background:#fff;border-radius:12px;padding:36px 32px;box-shadow:var(--shadow)}
.auth-card h1{font-size:1.4rem;text-align:center;margin-bottom:.8em}
.auth-card .alt{text-align:center;font-size:.9rem;margin:18px 0 0;color:var(--muted)}
.confirm-mark{width:68px;height:68px;border-radius:50%;background:var(--accent);display:grid;place-items:center;margin:0 auto 20px}
.confirm-mark svg{width:32px;height:32px;stroke:var(--cream);fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.acct-nav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:32px;align-items:center}
.acct-nav a{padding:9px 18px;border:1px solid var(--line);border-radius:99px;text-decoration:none;color:var(--ink);background:#fff;font-size:.76rem;text-transform:uppercase;letter-spacing:.14em;font-weight:500}
.acct-nav a.on{background:var(--accent);border-color:var(--accent);color:#fff}
.acct-nav form{margin-left:auto}
.sub-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px}
.sub-head h3{margin:0 0 2px;text-transform:uppercase;letter-spacing:.1em;font-size:.95rem}
details.edit summary{cursor:pointer;color:var(--accent);font-size:.9rem;margin-top:16px}
.order-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.order-row:last-child{border-bottom:0}
.order-row:hover strong{color:var(--accent)}
@media(max-width:560px){.cart-item{grid-template-columns:72px 1fr}.cart-item .qty-form{grid-column:2;text-align:left;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.auth-card{padding:28px 20px}}
