/* ===== Odisha Kaju — shared design system ===== */
:root{
  --green-900:#173015;
  --green-800:#1F3D1A;
  --green-700:#2A5324;
  --green-600:#3A6B2E;
  --gold:#D99A3D;
  --gold-dark:#B87F2C;
  --cream:#FBF5EA;
  --cream-2:#F3EAD6;
  --cream-3:#EDE2C9;
  --ink:#211B12;
  --ink-soft:#5F5749;
  --line:#E4D8BE;
  --white:#FFFFFF;
  --shadow: 0 20px 44px -24px rgba(23,48,21,.28);
  --radius: 14px;
  --serif:"Palatino Linotype","Book Antiqua",Georgia,serif;
  --sans:"Segoe UI",Arial,sans-serif;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--sans);
  background:var(--cream);
  color:var(--ink);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
a{ text-decoration:none; }
a.link{ color:var(--green-700); }
a.link:hover{ color:var(--gold-dark); }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:600; color:var(--green-900); line-height:1.15; margin:0; }
p{ margin:0; }
.wrap{ width:min(1280px,92vw); margin-inline:auto; }
button{ font-family:var(--sans); cursor:pointer; }
input, select, textarea{ font-family:var(--sans); }

/* ---------- Luxury motion system ---------- */
body{
  background:
    radial-gradient(circle at 8% 8%, rgba(217,154,61,.07), transparent 28rem),
    radial-gradient(circle at 92% 32%, rgba(42,83,36,.045), transparent 32rem),
    var(--cream);
}
/* ---------- Page loader ----------
   Rebuilt to remove five glitches in the previous version:
     1. The wordmark was ::after `content:` text with the logo as a background
        image, so the text painted instantly and the logo popped in late.
     2. A hard-coded 145px padding positioned that text, so it drifted out of
        alignment whenever the logo's aspect ratio was not exactly as assumed.
     3. Every internal link faded the page out, then the next page painted a
        full-screen loader again — a visible double flash on every click.
     4. The backdrop had pointer-events:auto, swallowing clicks until JS ran.
     5. Dismissal depended entirely on JS, so a slow or failed script left the
        visitor staring at the overlay until a 1.8s timeout fired.
   It is now image-free (nothing to pop in), self-dismissing in pure CSS
   (JS only makes it faster), and it never blocks a click. */
html::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:12000;
  background:linear-gradient(150deg,#FFFDF8 0%,#F7EFDD 100%);
  pointer-events:none;
  animation:loaderOut .38s ease 1.1s both;
}
html::after{
  content:"";
  position:fixed;
  left:50%;
  top:50%;
  z-index:12001;
  width:46px;
  height:46px;
  margin:-23px 0 0 -23px;
  border-radius:50%;
  /* drawn entirely in CSS — no asset to wait for */
  border:2.5px solid rgba(42,83,36,.16);
  border-top-color:var(--gold);
  border-right-color:var(--gold-dark);
  pointer-events:none;
  animation:loaderSpin .7s linear infinite, loaderOut .38s ease 1.1s both;
}
html.site-ready::before,
html.site-ready::after{
  animation:loaderOut .28s ease both;
}
body.site-loading{ overflow:hidden; }
@keyframes loaderSpin{ to{ transform:rotate(360deg); } }
@keyframes loaderOut{ to{ opacity:0; visibility:hidden; } }
@media (prefers-reduced-motion:reduce){
  html::after{ animation:loaderOut .01s ease both; }
  html::before{ animation:loaderOut .01s ease both; }
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:9999;
  opacity:.16;
  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='.88' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}
.lux-progress{
  position:fixed;
  left:0;
  top:0;
  z-index:1000;
  width:100%;
  height:3px;
  pointer-events:none;
  transform:scaleX(0);
  transform-origin:left;
  background:linear-gradient(90deg,var(--gold-dark),#f1c875,var(--gold));
  box-shadow:0 0 14px rgba(217,154,61,.55);
}
body.lux-ready main{ animation:luxPageIn .34s cubic-bezier(.16,1,.3,1) both; }
@keyframes luxPageIn{ from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:none} }
@media (prefers-reduced-motion:reduce){ body.lux-ready main{ animation:none; } }

/* ---------- Utility ---------- */
.eyebrow{ font-size:.8rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-dark); display:flex; align-items:center; gap:.6em; }
.eyebrow::before{ content:""; width:22px; height:2px; background:var(--gold); display:inline-block; border-radius:2px; }
.btn{
  position:relative; overflow:hidden; isolation:isolate;
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  font-weight:700; font-size:.86rem; letter-spacing:.03em; text-transform:uppercase;
  padding:.95rem 1.7rem; border-radius:8px; border:1.5px solid transparent;
  background:var(--green-800); color:#fff; transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
  white-space:nowrap;
}
.btn::before{
  content:"";
  position:absolute;
  inset:-1px;
  z-index:-1;
  transform:translateX(-108%) skewX(-18deg);
  background:linear-gradient(110deg,transparent 10%,rgba(255,255,255,.34) 48%,transparent 86%);
  transition:transform .65s cubic-bezier(.16,1,.3,1);
}
.btn:hover::before{ transform:translateX(108%) skewX(-18deg); }
.btn:hover{ background:var(--green-700); transform:translateY(-2px); box-shadow:var(--shadow); }
.btn.outline{ background:transparent; color:var(--green-900); border-color:var(--green-900); }
.btn.outline:hover{ background:var(--green-900); color:#fff; }
.btn.gold{ background:var(--gold); color:var(--green-900); }
.btn.gold:hover{ background:var(--gold-dark); color:#fff; }
.btn.sm{ padding:.65rem 1.1rem; font-size:.78rem; }
.btn.block{ width:100%; }
.btn:disabled{ opacity:.5; cursor:not-allowed; transform:none; }

.chip{ display:inline-block; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; background:var(--cream-2); color:var(--green-700); padding:.3rem .6rem; border-radius:5px; }

/* ---------- Top bar ---------- */
.topbar{
  background:var(--green-900); color:#fff; font-size:.82rem;
  display:flex; align-items:center; justify-content:space-between;
  padding:.55rem clamp(1rem,4vw,0);
}
.topbar .wrap{ display:flex; align-items:center; justify-content:space-between; width:min(1280px,94vw); }
.topbar span{ display:flex; align-items:center; gap:.5rem; }

/* ---------- Header ---------- */
header.site{
  background:#fff; border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:100;
  transition:background .35s ease, box-shadow .35s ease, border-color .35s ease, transform .35s ease;
}
header.site.scrolled{
  background:rgba(255,255,255,.88);
  border-color:rgba(217,154,61,.24);
  box-shadow:0 14px 38px -25px rgba(23,48,21,.55);
  backdrop-filter:blur(16px) saturate(1.25);
}
.nav-inner{ display:flex; align-items:center; justify-content:space-between; padding:1rem 0; }
.brand{ display:flex; align-items:center; gap:.6rem; }
.brand-logo{
  display:block;
  width:auto;
  height:58px;
  max-width:clamp(150px,15vw,190px);
  object-fit:contain;
  transition:transform .55s cubic-bezier(.16,1,.3,1), filter .4s ease;
}
.brand:hover .brand-logo{ transform:translateY(-2px) scale(1.025); filter:drop-shadow(0 8px 14px rgba(23,48,21,.12)); }
.brand .mark{ width:42px; height:42px; border-radius:50%; background:var(--cream-2); display:grid; place-items:center; flex:none; }
.brand .mark svg{ width:24px; height:24px; }
.brand .txt{ line-height:1.1; }
.brand .txt b{ display:block; font-family:var(--serif); font-size:1.35rem; color:var(--green-800); font-weight:700; }
.brand .txt small{ display:block; font-size:.62rem; letter-spacing:.18em; font-weight:700; color:var(--gold-dark); }
nav.main-links{ display:flex; align-items:center; gap:clamp(1.1rem,2vw,2.1rem); }
nav.main-links a{ white-space:nowrap; }
nav.main-links a{ font-size:.94rem; font-weight:600; color:var(--ink); position:relative; padding-bottom:4px; }
nav.main-links a{ transition:color .3s ease, transform .3s ease; }
nav.main-links a::after{ content:""; position:absolute; left:50%; bottom:0; height:2px; width:0; background:linear-gradient(90deg,var(--gold),var(--green-700)); transform:translateX(-50%); transition:width .35s cubic-bezier(.16,1,.3,1); }
nav.main-links a:hover{ color:var(--green-700); transform:translateY(-1px); }
nav.main-links a:hover::after, nav.main-links a.active::after{ width:100%; }
nav.main-links a.active{ color:var(--green-800); }
.nav-icons{ display:flex; align-items:center; gap:1.3rem; }
.nav-icons button{ background:none; border:none; color:var(--ink); display:grid; place-items:center; padding:.2rem; }
.nav-icons button svg{ width:21px; height:21px; }
.nav-icons button,.cart-icon{ transition:color .25s ease, transform .35s cubic-bezier(.16,1,.3,1); }
.nav-icons button:hover,.cart-icon:hover{ color:var(--gold-dark)!important; transform:translateY(-2px) scale(1.08); }
.cart-icon{ position:relative; }
.cart-badge{
  position:absolute; top:-8px; right:-9px; background:var(--gold); color:var(--green-900);
  font-size:.74rem; font-weight:800; min-width:20px; height:20px; padding:0 4px; border-radius:100px;
  display:grid; place-items:center;
}
/* ---------- Mobile navigation ----------
   NOTE: `.nav-icons button` (specificity 0,1,1) sets display:grid, so these
   rules are scoped to `.nav-icons .nav-toggle` to win on specificity. */
.nav-icons .nav-toggle{
  display:none; background:none; border:none; color:var(--ink);
  width:44px; height:44px; place-items:center; padding:0; flex:none;
}
.nav-icons .nav-toggle svg{ width:24px; height:24px; }
.nav-toggle .ico-close{ display:none; }
.nav-toggle[aria-expanded="true"] .ico-open{ display:none; }
.nav-toggle[aria-expanded="true"] .ico-close{ display:block; }

.mobile-nav{
  position:fixed; inset:0 0 0 auto; width:min(320px,86vw); z-index:190;
  background:#fff; border-left:1px solid var(--line);
  box-shadow:-24px 0 60px -30px rgba(23,48,21,.5);
  transform:translateX(100%); transition:transform .38s cubic-bezier(.16,1,.3,1);
  display:flex; flex-direction:column; overflow-y:auto;
  padding:1.3rem 1.4rem 2rem;
}
.mobile-nav[hidden]{ display:none; }
.mobile-nav.open{ transform:none; }
.mobile-nav .mn-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:.6rem; }
.mobile-nav .mn-head b{ font-family:var(--serif); font-size:1.05rem; color:var(--green-900); }
.mobile-nav .mn-close{ background:none; border:none; width:44px; height:44px; display:grid; place-items:center; color:var(--ink-soft); font-size:1.2rem; }
.mobile-nav a{
  position:relative;
  display:flex; align-items:center; justify-content:space-between;
  padding:.95rem .2rem .95rem .7rem; font-size:1rem; font-weight:600; color:var(--ink);
  border-bottom:1px solid var(--line); min-height:48px;
}
.mobile-nav a::after{ content:"\203A"; color:var(--gold-dark); opacity:.6; font-size:1.2rem; }
.mobile-nav a.active{ color:var(--green-800); }
.mobile-nav a.active::before{ content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:3px; height:24px; background:var(--gold); border-radius:3px; }
.mobile-nav .mn-cta{ margin-top:1.4rem; display:grid; gap:.7rem; }
/* CTA buttons are not list rows — undo the row styling inherited from .mobile-nav a */
.mobile-nav .mn-cta .btn{
  min-height:48px; border-bottom:none; padding:.95rem 1.2rem;
  justify-content:center; text-align:center;
}
.mobile-nav .mn-cta .btn::after{ content:none; }
.mobile-nav .mn-contact{ margin-top:1.5rem; padding-top:1.1rem; border-top:1px solid var(--line); display:grid; gap:.2rem; }
.mobile-nav .mn-contact a{ border-bottom:none; padding:.5rem 0 .5rem .7rem; font-weight:500; font-size:.88rem; color:var(--ink-soft); min-height:44px; justify-content:flex-start; gap:.6rem; }
.mobile-nav .mn-contact a::after{ content:none; }
.mobile-nav .mn-contact svg{ width:17px; height:17px; flex:none; color:var(--green-700); }
.nav-scrim{
  position:fixed; inset:0; z-index:180; background:rgba(23,48,21,.45);
  backdrop-filter:blur(3px); opacity:0; transition:opacity .3s ease;
}
.nav-scrim[hidden]{ display:none; }
.nav-scrim.open{ opacity:1; }
body.nav-open{ overflow:hidden; }

@media (max-width:880px){
  nav.main-links{ display:none; }
  .nav-icons .nav-toggle{ display:grid; }
}
@media (prefers-reduced-motion:reduce){
  .mobile-nav, .nav-scrim{ transition:none; }
}
@media (max-width:520px){
  .brand-logo{ width:auto; height:46px; max-width:150px; }
  .nav-icons{ gap:.55rem; }
  .topbar{ font-size:.74rem; }
  .topbar .wrap span:last-child{ display:none; }
}

/* ---------- Skip link ---------- */
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:12500;
  background:var(--green-800); color:#fff; padding:.85rem 1.4rem;
  border-radius:0 0 10px 0; font-weight:600; font-size:.92rem;
}
.skip-link:focus{ left:0; }

/* ---------- Global icon sizing inside buttons ---------- */
.btn svg{ width:16px; height:16px; flex:none; }

/* ---------- Visible keyboard focus ---------- */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, summary:focus-visible{
  outline:2px solid var(--gold-dark); outline-offset:2px; border-radius:4px;
}

/* ---------- Breadcrumb ---------- */
.crumb{ padding:1rem 0 0; font-size:.85rem; color:var(--ink-soft); display:flex; gap:.5rem; align-items:center; }
.crumb a{ color:var(--ink-soft); } .crumb a:hover{ color:var(--green-700); }
.crumb .sep{ opacity:.5; }
.crumb .cur{ color:var(--green-800); font-weight:600; }

/* ---------- Page hero band ---------- */
.page-hero{ background:var(--cream-2); padding:3rem 0; }
.page-hero-grid{ display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; align-items:center; }
.page-hero h1{ font-size:clamp(2.2rem,4.4vw,3.2rem); margin-bottom:.9rem; }
.page-hero p{ color:var(--ink-soft); font-size:1.05rem; max-width:44ch; }
.page-hero image-slot{ width:100%; aspect-ratio:16/10; border-radius:var(--radius); overflow:hidden; }
@media (max-width:860px){ .page-hero-grid{ grid-template-columns:1fr; } }

/* ---------- Feature strip ---------- */
.feat-strip{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem clamp(1rem,3vw,2.4rem); display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.feat-strip .feat{ padding:0 1.3rem; justify-content:flex-start; }
.feat-strip .feat + .feat{ border-left:1px solid var(--line); }
.feat{ display:flex; gap:.9rem; align-items:center; }
.feat .ic{ width:48px; height:48px; border-radius:50%; background:var(--cream-2); border:1px solid var(--line); display:grid; place-items:center; flex:none; color:var(--green-700); transition:transform .45s cubic-bezier(.16,1,.3,1), background .35s ease, box-shadow .35s ease; }
.feat:hover .ic{ transform:translateY(-4px) rotate(-3deg); background:#fff; box-shadow:0 14px 25px -17px rgba(23,48,21,.55); }
.feat .ic svg{ width:22px; height:22px; }
.feat b{ display:block; font-size:.92rem; }
.feat span{ font-size:.82rem; color:var(--ink-soft); }
@media (max-width:860px){ .feat-strip{ grid-template-columns:1fr 1fr; gap:1.2rem 0; } .feat-strip .feat:nth-child(odd){ border-left:none; } }
@media (max-width:520px){ .feat-strip{ grid-template-columns:1fr; } .feat-strip .feat{ border-left:none; padding:0; } }

/* ---------- Product card ---------- */
.card-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; }
.p-card{ --mx:50%; --my:50%; background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; transition:transform .55s cubic-bezier(.16,1,.3,1), box-shadow .55s ease, border-color .4s ease; display:flex; flex-direction:column; position:relative; }
.p-card::after{ content:""; position:absolute; inset:0; pointer-events:none; opacity:0; background:radial-gradient(circle at var(--mx) var(--my),rgba(255,255,255,.52),transparent 34%); transition:opacity .35s ease; }
.p-card:hover{ transform:translateY(-9px) scale(1.012); box-shadow:0 28px 55px -30px rgba(23,48,21,.48); border-color:rgba(217,154,61,.52); }
.p-card:hover::after{ opacity:1; }
.p-card img{ transition:transform .9s cubic-bezier(.16,1,.3,1),filter .55s ease; }
.p-card:hover img{ transform:scale(1.055); filter:saturate(1.04) contrast(1.02); }
.p-card image-slot{ width:100%; aspect-ratio:1/1; }
.p-card .body{ padding:1.1rem 1.2rem 1.3rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }
.p-card h4{ font-size:1.05rem; }
.p-card .price{ font-size:1.02rem; font-weight:700; color:var(--green-800); }
.p-card .price s{ font-weight:500; color:var(--ink-soft); margin-right:.4rem; opacity:.7; }
.p-card .btn{ margin-top:auto; }
@media (max-width:980px){ .card-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .card-grid{ grid-template-columns:1fr; } }

/* ---------- Sections ---------- */
section{ padding:4.2rem 0; }
.sec-head{ text-align:center; margin-bottom:2.6rem; }
.sec-head h2{ font-size:clamp(1.9rem,3.6vw,2.6rem); margin-top:.6rem; }
.sec-head .orn::before,.sec-head .orn::after{ transform:scaleX(0); transition:transform .8s cubic-bezier(.16,1,.3,1) .18s; }
.sec-head.in .orn::before,.sec-head.in .orn::after,.sec-head:has([data-reveal].in) .orn::before,.sec-head:has([data-reveal].in) .orn::after{ transform:scaleX(1); }
.sec-head p{ color:var(--ink-soft); max-width:50ch; margin:.8rem auto 0; }

/* ---------- Reveal ---------- */
[data-reveal]{ opacity:0; transform:translateY(28px) scale(.985); filter:blur(4px); transition:opacity .85s ease, transform .9s cubic-bezier(.16,1,.3,1),filter .7s ease; }
[data-reveal].in{ opacity:1; transform:none; }
[data-reveal].in{ filter:none; }
[data-reveal].d1{ transition-delay:.08s; } [data-reveal].d2{ transition-delay:.16s; }
[data-reveal].d3{ transition-delay:.24s; } [data-reveal].d4{ transition-delay:.32s; }
@media (prefers-reduced-motion:reduce){ [data-reveal]{ opacity:1; transform:none; transition:none; } }

/* ---------- Footer ---------- */
footer.site{ background:var(--green-900); color:rgba(255,255,255,.82); padding:3.6rem 0 1.6rem; margin-top:2rem; }
.foot-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.1fr 1.4fr; gap:1.8rem; padding-bottom:2.4rem; border-bottom:1px solid rgba(255,255,255,.14); }
.foot-grid .foot-col{ border-left:1px solid rgba(255,255,255,.12); padding-left:1.6rem; }
.foot-brand .brand .txt b{ color:#fff; }
.foot-brand .brand{
  display:inline-flex;
  padding:.55rem .7rem;
  border-radius:10px;
  background:#fff;
}
.foot-brand .brand-logo{ width:auto; height:64px; max-width:min(228px,100%); }
.foot-brand p{ font-size:.88rem; margin-top:.9rem; max-width:32ch; opacity:.85; line-height:1.6; }
.foot-social{ display:flex; gap:.7rem; margin-top:1.1rem; }
.foot-social a{ width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.12); display:grid; place-items:center; transition:transform .4s cubic-bezier(.16,1,.3,1),background .3s ease,color .3s ease; }
.foot-social a:hover{ background:var(--gold); color:var(--green-900); }
.foot-social a:hover{ transform:translateY(-4px) rotate(4deg); }
.foot-social svg{ width:16px; height:16px; }
.foot-col h5{ font-size:.78rem; text-transform:uppercase; letter-spacing:.12em; color:var(--gold); margin-bottom:1rem; }
.foot-col a{ display:flex; align-items:flex-start; gap:.55rem; font-size:.9rem; margin-bottom:.65rem; opacity:.85; }
.foot-col .fci{ width:16px; height:16px; flex:none; color:var(--gold); margin-top:2px; }
.foot-col a:hover{ opacity:1; color:var(--gold); }
.foot-bottom{ display:flex; justify-content:space-between; padding-top:1.6rem; font-size:.8rem; opacity:.75; flex-wrap:wrap; gap:.8rem; }
.pay-icons{ display:flex; gap:.7rem; align-items:center; flex-wrap:wrap; max-width:100%; opacity:.85; font-size:.78rem; font-weight:700; letter-spacing:.02em; }
.pay-icons span{ background:rgba(255,255,255,.12); padding:.3rem .55rem; border-radius:5px; }
@media (max-width:900px){ .foot-grid{ grid-template-columns:1fr 1fr; } .foot-grid .foot-col{ border-left:none; padding-left:0; } }
@media (max-width:520px){ .foot-grid{ grid-template-columns:1fr; } }

/* ---------- Toast ---------- */
#toast-stack{ position:fixed; top:1.2rem; right:1.2rem; z-index:999; display:flex; flex-direction:column; gap:.6rem; }
.toast{
  background:var(--green-900); color:#fff; padding:.85rem 1.2rem; border-radius:9px;
  font-size:.88rem; font-weight:600; box-shadow:0 16px 32px -14px rgba(0,0,0,.4);
  display:flex; align-items:center; gap:.6rem;
  animation: toastIn .35s cubic-bezier(.2,.8,.2,1);
}
.toast.out{ animation: toastOut .3s ease forwards; }
@keyframes toastIn{ from{ opacity:0; transform:translateX(24px); } to{ opacity:1; transform:none; } }
@keyframes toastOut{ to{ opacity:0; transform:translateX(24px); } }

/* ---------- Misc form ---------- */
.field{ margin-bottom:1.2rem; }
.field label{ display:block; font-size:.85rem; font-weight:700; margin-bottom:.5rem; color:var(--green-900); }
.field input, .field select, .field textarea{
  width:100%; padding:.85rem 1rem; border:1.5px solid var(--line); border-radius:8px; font-size:.92rem;
  background:#fff; color:var(--ink); transition:border-color .2s ease;
}
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--green-600); }
.field textarea{ resize:vertical; min-height:120px; }

/* ---------- Search overlay ---------- */
.search-overlay{ position:fixed; inset:0; background:rgba(23,48,21,.45); backdrop-filter:blur(4px); z-index:200; display:flex; justify-content:center; padding-top:12vh; }
.search-overlay[hidden]{ display:none; }
.search-box{ width:min(560px, 92vw); background:#fff; border-radius:14px; box-shadow:0 30px 60px -20px rgba(0,0,0,.4); padding:1rem; height:fit-content; position:relative; animation:searchIn .3s cubic-bezier(.2,.8,.2,1); }
@keyframes searchIn{ from{ opacity:0; transform:translateY(-16px); } to{ opacity:1; transform:none; } }
.search-box input{ width:100%; border:1.5px solid var(--line); border-radius:8px; padding:.9rem 2.8rem .9rem 1rem; font-size:1rem; }
.search-box input:focus{ outline:none; border-color:var(--green-600); }
.search-box > button{ position:absolute; top:1.55rem; right:1.7rem; background:none; border:none; font-size:1rem; color:var(--ink-soft); }
.search-results{ display:flex; flex-direction:column; }
.s-hit{ display:flex; align-items:center; gap:.9rem; padding:.7rem .5rem; border-radius:8px; }
.s-hit:hover{ background:var(--cream); }
.s-hit img{ width:48px; height:44px; object-fit:cover; border-radius:7px; }
.s-hit span{ flex:1; line-height:1.3; } .s-hit b{ font-size:.92rem; } .s-hit small{ display:block; color:var(--ink-soft); }
.s-hit em{ font-style:normal; font-weight:700; color:var(--green-800); font-size:.9rem; }
.s-empty{ padding:1rem .5rem; color:var(--ink-soft); font-size:.9rem; }

/* ---------- Newsletter band ---------- */
.news-band{
  background:var(--cream-2) url('assets/newsletter-cashews.webp') left 12px center / 220px auto no-repeat;
  border:1px solid var(--line); border-radius:var(--radius);
  padding:1.9rem clamp(1.2rem,3vw,2.6rem) 1.9rem 245px;
  display:flex; align-items:center; gap:2rem; flex-wrap:wrap;
}
.news-band h3{ font-family:var(--serif); font-size:1.45rem; line-height:1.25; max-width:22ch; color:var(--green-900); }
@media (max-width:760px){ .news-band{ background-image:none; padding-left:clamp(1.2rem,3vw,2.6rem); } }
.news-band p{ color:var(--ink-soft); font-size:.9rem; margin-top:.3rem; }
.news-band form{ display:flex; flex:1; min-width:280px; max-width:480px; margin-left:auto; }
.news-band input{ flex:1; border:1.5px solid var(--line); border-right:none; border-radius:8px 0 0 8px; padding:.9rem 1rem; font-size:.92rem; background:#fff; }
.news-band input:focus{ outline:none; border-color:var(--green-600); }
.news-band button{ border-radius:0 8px 8px 0; }

/* ---------- Stats band ---------- */
.stats-band{ background:var(--green-800); border-radius:var(--radius); color:#fff; padding:2.2rem clamp(1rem,3vw,2.6rem); display:grid; grid-template-columns:repeat(4,1fr); gap:1.6rem; }
.stat-i{ display:flex; align-items:center; gap:1rem; }
.stat-i .ic{ width:46px; height:46px; border-radius:50%; border:1.5px solid var(--gold); color:var(--gold); display:grid; place-items:center; flex:none; }
.stat-i .ic svg{ width:21px; height:21px; }
.stat-i b{ font-family:var(--serif); font-size:1.7rem; display:block; line-height:1.1; }
.stat-i span{ font-size:.8rem; opacity:.85; }
@media (max-width:860px){ .stats-band{ grid-template-columns:1fr 1fr; } }

/* ---------- Qty stepper ---------- */
.qty{ display:inline-flex; align-items:center; border:1.5px solid var(--line); border-radius:8px; overflow:hidden; background:#fff; }
.qty button{ width:44px; height:44px; min-width:44px; background:none; border:none; font-size:1.1rem; color:var(--green-800); font-weight:700; }
.qty button:hover{ background:var(--cream-2); }
.qty input{ width:52px; height:44px; text-align:center; border:none; font-size:.95rem; font-weight:600; -moz-appearance:textfield; }
.qty input::-webkit-outer-spin-button, .qty input::-webkit-inner-spin-button{ -webkit-appearance:none; }
.qty input:focus{ outline:none; }

/* ---------- Motion accents ---------- */
.lux-float{ animation:luxFloat 5.8s ease-in-out infinite; will-change:transform; }
@keyframes luxFloat{ 0%,100%{transform:translate3d(0,0,0) rotate(0)} 50%{transform:translate3d(0,-10px,0) rotate(.45deg)} }
.page-hero,.content-hero,.blog-hero{ position:relative; overflow:hidden; }
.page-hero::after,.content-hero::after{
  content:"";
  position:absolute;
  width:360px;
  height:360px;
  top:-250px;
  right:8%;
  border:1px solid rgba(217,154,61,.25);
  border-radius:50%;
  box-shadow:0 0 0 45px rgba(217,154,61,.035),0 0 0 90px rgba(42,83,36,.025);
  animation:luxOrb 12s ease-in-out infinite alternate;
  pointer-events:none;
}
@keyframes luxOrb{ to{transform:translate(-35px,35px) scale(1.06)} }
.news-band,.feat-strip,.stats-band,.content-card,.content-aside{
  transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .5s ease,border-color .4s ease;
}
.news-band:hover,.feat-strip:hover,.content-card:hover,.content-aside:hover{
  transform:translateY(-4px);
  box-shadow:0 24px 50px -32px rgba(23,48,21,.42);
  border-color:rgba(217,154,61,.45);
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition-duration:.001ms!important; }
  [data-reveal]{ opacity:1; transform:none; filter:none; }
}

/* ---------- Screen-reader-only text ---------- */
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* ---------- Blog: latest-posts links ---------- */
a.late{ color:inherit; }
a.late:hover b{ color:var(--gold-dark); }

/* ---------- Touch target sizing (WCAG 2.2 target size) ---------- */
.nav-icons button,
.nav-icons .cart-icon{
  min-width:44px; min-height:44px;
}
.crumb a, .crumb .cur{
  display:inline-flex; align-items:center; min-height:24px;
}
.p-card h4 a{
  display:inline-block; padding:.15rem 0; min-height:24px;
}
.p-card .shopnow{
  display:inline-flex; align-items:center; min-height:32px;
}
footer.site .foot-col a{ min-height:32px; display:flex; align-items:center; }
.post .rm{ display:inline-flex; align-items:center; min-height:32px; }

/* Comfortable spacing for the header icon row on small phones */
@media (max-width:380px){
  .brand-logo{ height:40px; max-width:124px; }
  .nav-icons{ gap:.15rem; }
  .nav-icons button, .nav-icons .cart-icon{ min-width:40px; }
}

/* ---------- Article sidebar link targets ---------- */
.more-posts a{ min-height:44px; }
.more-posts b{ display:block; padding:.2rem 0; }

/* product card titles: comfortable tap height on touch screens */
.p-card h4 a{ padding:.3rem 0; min-height:30px; display:inline-flex; align-items:center; }

/* ---------- One-tap call button (fixed, all pages) ---------- */
.call-fab{
  position:fixed; right:clamp(.9rem,2.5vw,1.6rem); bottom:clamp(.9rem,2.5vw,1.6rem);
  z-index:150; display:inline-flex; align-items:center; gap:.55rem;
  background:var(--green-800); color:#fff;
  padding:.85rem 1.25rem; border-radius:100px;
  font-weight:700; font-size:.86rem; letter-spacing:.02em;
  box-shadow:0 14px 30px -12px rgba(23,48,21,.6);
  min-height:52px;
  transition:background .25s ease, transform .25s cubic-bezier(.16,1,.3,1), box-shadow .25s ease;
}
.call-fab:hover, .call-fab:focus-visible{
  background:var(--green-700); color:#fff;
  transform:translateY(-2px); box-shadow:0 18px 36px -12px rgba(23,48,21,.7);
}
.call-fab svg{ width:20px; height:20px; flex:none; }
.call-fab b{ white-space:nowrap; }

/* soft attention pulse, once the page has settled */
.call-fab-ring{
  position:absolute; inset:0; border-radius:100px;
  border:2px solid var(--gold); opacity:0;
  animation:callPulse 2.8s ease-out 1.5s infinite;
  pointer-events:none;
}
@keyframes callPulse{
  0%   { opacity:.85; transform:scale(1); }
  70%  { opacity:0;   transform:scale(1.22); }
  100% { opacity:0;   transform:scale(1.22); }
}
@media (prefers-reduced-motion:reduce){ .call-fab-ring{ animation:none; } }

/* collapse to a circle on small phones so it never covers content */
@media (max-width:560px){
  .call-fab{ padding:0; width:56px; height:56px; justify-content:center; border-radius:50%; }
  .call-fab b{ display:none; }
  .call-fab svg{ width:23px; height:23px; }
  .call-fab-ring{ border-radius:50%; }
}
/* keep clear of the sticky cart summary on the cart page */
body[data-page="retail"] .call-fab{ bottom:clamp(.9rem,2.5vw,1.6rem); }

/* footer legal line */
.foot-bottom small{ opacity:.65; font-size:.78rem; letter-spacing:.02em; }
@media (max-width:640px){ .foot-br{ display:none; } .foot-bottom small{ display:block; margin-top:.2rem; } }
