/* -------------------------------------------------------
   Salamanders Grove — website
   Page 1 (apothecary): Stint Ultra Condensed + serif body
   Page 2 (modern): Sofia Sans Extra Condensed + system sans body
-------------------------------------------------------- */

/* Base */
:root{
  --bg: #0f1111;
  --ink: #1c1a14;
  --paper: #f4efe1;
  --paper-2: #efe7d3;
  --accent: #d98a1b;
  --accent-2: #2f7a55;
  --accent-3: #b3392b;
  --line: rgba(0,0,0,.12);
  --shadow: 0 18px 50px rgba(0,0,0,.25);
  --radius: 18px;
  --radius-sm: 12px;
  --max: 1120px;
}

*{ box-sizing: border-box; }
html,body{ height:100%; }
body{
  margin:0;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.45;
}

/* Body fonts per page (native stacks) */
.theme-apothecary{
  font-family: 'Castoro', ui-serif, Georgia, "Times New Roman", Times, serif;
  background: radial-gradient(1200px 500px at 50% 0%, rgba(217,138,27,.12), transparent 60%),
              linear-gradient(180deg, var(--paper), var(--paper-2));
}
.theme-modern{
  font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  background: #0b0d10;
  color: #f5f6f8;
}

a{ color: inherit; text-decoration: none; }
a:hover{ text-decoration: underline; }
img{ max-width:100%; display:block; }

.container{ width:min(var(--max), calc(100% - 40px)); margin-inline:auto; }

/* Accessibility */
.skip-link{
  position:absolute; left:-999px; top: 12px;
  background: #fff; color:#000; padding:10px 12px; border-radius: 10px;
  box-shadow: var(--shadow);
}
.skip-link:focus{ left: 12px; z-index: 9999; }

/* Topbar */
.topbar{
  position: sticky;
  top:0;
  z-index: 40;
  background: rgba(244,239,225,.86);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.topbar--modern{
  background: rgba(11,13,16,.72);
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.topbar__inner{
  width:min(var(--max), calc(100% - 40px));
  margin-inline:auto;
  padding: 12px 0;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 16px;
}
.brand-mini{
  display:flex;
  align-items:center;
  gap: 10px;
  font-weight: 700;
  letter-spacing: .4px;
}
.brand-mini__mark{
  width: 32px; height: 32px;
  border-radius: 10px;
  display:grid;
  place-items:center;
  background: rgba(217,138,27,.16);
  border: 1px solid rgba(217,138,27,.25);
}
.theme-modern .brand-mini__mark{
  background: rgba(217,138,27,.12);
  border: 1px solid rgba(255,255,255,.12);
}
.brand-mini__text{
  font-size: 14px;
  opacity:.9;
}

.nav{ display:flex; align-items:center; gap: 14px; flex-wrap:wrap; }
.nav a{
  font-size: 14px;
  opacity:.9;
  padding: 8px 10px;
  border-radius: 10px;
}
.nav a[aria-current="page"]{ background: rgba(0,0,0,.06); }
.theme-modern .nav a[aria-current="page"]{ background: rgba(255,255,255,.10); }

.cart-btn{
  border: 1px solid var(--line);
  background: rgba(255,255,255,.4);
  padding: 8px 10px;
  border-radius: 12px;
  cursor:pointer;
  display:flex; align-items:center; gap: 8px;
}
.theme-modern .cart-btn{
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.08);
  color: #fff;
}
.cart-count{
  display:inline-grid; place-items:center;
  min-width: 22px; height: 22px;
  padding: 0 6px;
  border-radius: 999px;
  background: rgba(217,138,27,.18);
  border: 1px solid rgba(217,138,27,.35);
  font-weight: 800;
  font-size: 12px;
}

/* Hero */
.hero{
  position: relative;
  overflow:hidden;
  min-height: 76vh;
  display:grid;
  place-items:center;
  padding: 64px 0;
}
.hero__bg{
  position:absolute; inset:0;
  opacity: .32;
  transform: scale(1.08);
  filter: saturate(1.08) contrast(1.06);
}
.hero__bg img{
  width:100%;
  height:100%;
  object-fit: cover;
}
.hero__content{
  position:relative;
  width:min(var(--max), calc(100% - 40px));
  margin-inline:auto;
  padding: 40px 18px;
  border-radius: var(--radius);
  background: rgba(244,239,225,.82);
  border: 1px solid rgba(0,0,0,.10);
  box-shadow: var(--shadow);
}
.hero__content--modern{
  background: rgba(15,18,22,.70);
  border: 1px solid rgba(255,255,255,.12);
  color: #f5f6f8;
}
.hero__title{
  margin: 0 0 6px 0;
  line-height: .88;
  text-transform: uppercase;
}
.hero__title--castoro{
  font-family: "Castoro Titling", serif;
  font-size: clamp(56px, 9vw, 120px); /* adjusted to fit hero properly */
  letter-spacing: 5px;
  color: transparent;
  -webkit-text-stroke: 1.5px var(--ink);
  position: relative;
  text-transform: uppercase;
  display: inline-block;
  max-width: 100%;
}

/* Overlay fill layer (matches fonts variants v6 single CSS trick) */
.hero__title--castoro::after{
  content: attr(data-text);
  position: absolute;
  inset: 0;
  color: var(--ink);
  opacity: 0.06;
  -webkit-text-stroke: 0 transparent;
  pointer-events: none;
}

.hero__title--stint-outline{
  font-family: "Stint Ultra Condensed", ui-serif, Georgia, serif;
  font-size: clamp(80px, 12vw, 170px);
  letter-spacing: 4px; /* requested 4px on shop page */
  color: transparent;
  -webkit-text-stroke: 1.5px #f5f6f8;
  position: relative;
  text-transform: uppercase;
  display: inline-block;
}
.hero__title--stint-outline::after{
  content: attr(data-text);
  position: absolute;
  inset: 0;
  color: #f5f6f8;
  opacity: 0.06;
  -webkit-text-stroke: 0 transparent;
  pointer-events: none;
}
.hero__subtitle{
  margin: 10px 0 18px;
  font-size: clamp(18px, 2.2vw, 22px);
  max-width: 62ch;
}
.hero__cta{ display:flex; gap: 12px; flex-wrap:wrap; margin: 10px 0 10px; }
.hero__note{ margin: 12px 0 0; opacity:.85; font-size: 14px; }

.hero--modern{
  background: radial-gradient(900px 500px at 60% 20%, rgba(217,138,27,.25), transparent 65%),
              radial-gradient(700px 420px at 30% 70%, rgba(47,122,85,.18), transparent 60%),
              #0b0d10;
}
.hero__bg--modern{ opacity: .26; filter: blur(0px) saturate(1.0) contrast(1.05); }

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid var(--line);
  font-weight: 800;
  cursor:pointer;
  text-decoration:none !important;
}
.btn--primary{
  background: linear-gradient(180deg, rgba(217,138,27,.95), rgba(185,92,18,.95));
  border-color: rgba(0,0,0,.12);
  color: #160c00;
}
.btn--ghost{
  background: rgba(255,255,255,.55);
}
.theme-modern .btn--ghost{
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.16);
  color: #f5f6f8;
}
.btn--wide{ width: 100%; }

/* Sections */
.section{ padding: 64px 0; }
.section--paper{ background: transparent; }
.section--ink{
  background: linear-gradient(180deg, #121315, #171615);
  color: #f2f3f5;
}
.section--light{ background: #0b0d10; color: #f5f6f8; }
.section--checkout{ background: #0b0d10; color: #f5f6f8; }

.section__head{ margin-bottom: 22px; }

.h2{
  margin: 0 0 10px;
  font-size: clamp(26px, 3.2vw, 40px);
  letter-spacing: .3px;
}
.h2--light{ color: #f5f6f8; }
.h3{
  margin: 0 0 10px;
  font-size: 20px;
}
.lead{
  margin: 0 0 18px;
  font-size: 18px;
  opacity: .92;
  max-width: 70ch;
}
.lead--light{ opacity: .9; }
.fineprint{ font-size: 12.5px; opacity: .78; }

/* Layout */
.grid-2{
  display:grid;
  gap: 22px;
  grid-template-columns: 1.2fr .8fr;
}
@media (max-width: 920px){
  .grid-2{ grid-template-columns: 1fr; }
}

/* Cards */
.card{
  border-radius: var(--radius);
  background: rgba(255,255,255,.62);
  border: 1px solid rgba(0,0,0,.10);
  padding: 18px;
}
.theme-modern .card{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
}
.card--tinted{
  background: radial-gradient(600px 220px at 50% 0%, rgba(217,138,27,.22), rgba(255,255,255,.55));
}
.theme-modern .card--tinted{
  background: radial-gradient(600px 220px at 50% 0%, rgba(217,138,27,.18), rgba(255,255,255,.06));
}

/* Checklist */
.checklist{ padding-left: 18px; margin: 14px 0 0; }
.checklist li{ margin: 8px 0; }

/* Pills */
.pill-row{ display:flex; flex-wrap:wrap; gap: 8px; margin: 12px 0 16px; }
.pill{
  padding: 8px 10px;
  border-radius: 999px;
  font-size: 13px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.55);
}
.theme-modern .pill{
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.07);
}

/* Products */
.product__img{
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.55);
}
.section--ink .product__img,
.section--light .product__img{
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
}
.product__img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Products */
.product-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
@media (max-width: 1050px){
  .product-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px){
  .product-grid{ grid-template-columns: 1fr; }
}

.product{
  border-radius: var(--radius);
  padding: 16px;
  background: rgba(255,255,255,.60);
  border: 1px solid rgba(0,0,0,.10);
  display:flex;
  flex-direction: column;
  gap: 12px;
  min-height: 360px;
}
.section--ink .product{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
}
.section--light .product{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
}
.product__top{
  display:flex;
  align-items:flex-start;
  justify-content: space-between;
  gap: 10px;
}
.product__name{
  font-weight: 900;
  font-size: 18px;
  margin:0;
}
.product__tag{
  align-self: start;
  padding: .45rem .8rem;
  border-radius: 999px;
  font-size: .95rem;
  font-weight: 800;
  white-space: nowrap;
}
.product__tag--available{
  background: #16311d;
  color: #ffffff;
  border: 2px solid #16311d;
}
.product__tag--coming-soon{
  background: #f8f4ea;
  color: #1f1a14;
  border: 2px solid #1f1a14;
}
.product__desc{ margin:0; opacity: .92; }
.product__meta{
  display:flex;
  gap: 10px;
  flex-wrap:wrap;
  font-size: 13px;
  opacity: .9;
}
.product__meta span{
  padding: 6px 8px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.55);
}
.section--ink .product__meta span,
.section--light .product__meta span{
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.07);
}

.product__price-row{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
}
.price{
  font-weight: 900;
  font-size: 18px;
}
.product__actions{ display:flex; gap: 10px; }
.qty{
  width: 74px;
  padding: 10px 10px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.65);
}
.section--ink .qty,
.section--light .qty{
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.08);
  color:#fff;
}

/* Accordion */
details{
  border-top: 1px solid rgba(0,0,0,.10);
  padding-top: 10px;
}
.section--ink details,
.section--light details{
  border-top: 1px solid rgba(255,255,255,.14);
}
summary{
  cursor:pointer;
  font-weight: 800;
  list-style: none;
}
summary::-webkit-details-marker{ display:none; }
.accordion__body{
  padding: 10px 0 0;
  font-size: 13.5px;
  opacity: .92;
}

/* Promise */
.promise{
  border-radius: var(--radius);
  background: rgba(255,255,255,.62);
  border: 1px solid rgba(0,0,0,.10);
  padding: 20px;
}
.theme-modern .promise{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
}
.promise__lead{ font-size: 18px; margin: 0 0 10px; }
.promise__quote{
  margin: 0;
  padding: 14px 16px;
  border-radius: 14px;
  border-left: 6px solid rgba(217,138,27,.65);
  background: rgba(217,138,27,.12);
  font-size: 15.5px;
}
.promise--compact .promise__quote{ font-size: 14.5px; }

/* Placeholder box */
.placeholder-box{
  border-radius: var(--radius);
  border: 2px dashed rgba(0,0,0,.22);
  background: rgba(255,255,255,.55);
  padding: 18px;
}
.theme-modern .placeholder-box{
  border-color: rgba(255,255,255,.22);
  background: rgba(255,255,255,.06);
}
.placeholder-box ul{ margin: 0 0 10px; padding-left: 18px; }
.placeholder-box li{ margin: 8px 0; }

/* Modern trust row */
.trust-row{ display:flex; flex-wrap:wrap; gap: 10px; margin-top: 10px; }
.trust{
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.08);
  font-size: 13px;
  opacity: .95;
}

/* Footer */
.footer{
  padding: 26px 0;
  border-top: 1px solid rgba(0,0,0,.10);
  background: rgba(244,239,225,.62);
}
.footer--modern{
  border-top: 1px solid rgba(255,255,255,.14);
  background: rgba(11,13,16,.82);
}
.footer__inner{ display:flex; align-items:center; justify-content: space-between; gap: 16px; flex-wrap:wrap; }
.footer__brand{
  font-weight: 1000;
  letter-spacing: 1px;
  font-size: 18px;
}
.footer__sub{ font-size: 13px; opacity: .85; }
.footer__links{ display:flex; gap: 14px; flex-wrap:wrap; font-size: 14px; opacity:.92; }

/* Drawer (cart) */
.drawer{
  position: fixed;
  inset: 0;
  display:none;
  z-index: 80;
}
.drawer[aria-hidden="false"]{ display:block; }
.drawer__overlay{
  position:absolute; inset:0;
  background: rgba(0,0,0,.55);
}
.drawer__panel{
  position:absolute; right:0; top:0; bottom:0;
  width: min(420px, calc(100% - 40px));
  background: rgba(244,239,225,.98);
  border-left: 1px solid rgba(0,0,0,.12);
  padding: 16px;
  display:flex;
  flex-direction: column;
}
.theme-modern .drawer__panel{
  background: rgba(15,18,22,.98);
  border-left: 1px solid rgba(255,255,255,.14);
  color:#f5f6f8;
}
.drawer__head{ display:flex; align-items:center; justify-content: space-between; gap: 12px; }
.drawer__title{ margin: 0; font-size: 18px; }
.icon-btn{
  border: 1px solid rgba(0,0,0,.14);
  background: rgba(255,255,255,.5);
  border-radius: 12px;
  padding: 8px 10px;
  cursor:pointer;
}
.theme-modern .icon-btn{
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.08);
  color:#fff;
}
.drawer__body{
  padding-top: 12px;
  display:flex;
  flex-direction: column;
  gap: 12px;
  height: 100%;
  overflow:auto;
}

/* Cart list */
.cart-items{ display:flex; flex-direction: column; gap: 10px; }
.cart-item{
  border-radius: var(--radius-sm);
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.55);
  padding: 10px;
  display:grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
}
.theme-modern .cart-item{
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
}
.cart-item__name{ font-weight: 900; margin: 0; }
.cart-item__meta{ font-size: 12.5px; opacity:.9; margin-top: 4px; }
.cart-item__right{ display:flex; flex-direction: column; gap: 8px; align-items:flex-end; }
.cart-item__qty{
  display:flex; align-items:center; gap: 8px;
}
.cart-item__qty button{
  width: 30px; height: 30px;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,.14);
  background: rgba(255,255,255,.55);
  cursor:pointer;
}
.theme-modern .cart-item__qty button{
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.08);
  color:#fff;
}

.cart-summary{
  margin-top: auto;
  border-top: 1px solid rgba(0,0,0,.10);
  padding-top: 12px;
}
.theme-modern .cart-summary{ border-top: 1px solid rgba(255,255,255,.14); }
.cart-summary--inline{ margin-top: 10px; border-top: none; padding-top: 0; }
.row{ display:flex; align-items:center; justify-content: space-between; gap: 10px; }

/* Checkout */
.checkout-card{
  border-radius: var(--radius);
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  padding: 16px;
}
.form{ display:flex; flex-direction: column; gap: 12px; }
label{ display:flex; flex-direction: column; gap: 6px; font-weight: 800; font-size: 13px; }
input, textarea{
  padding: 10px 10px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.08);
  color: #fff;
  font: inherit;
  font-weight: 600;
}
textarea{ resize: vertical; }
.form__row{ display:grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 560px){ .form__row{ grid-template-columns: 1fr; } }
.form__actions{ display:grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 560px){ .form__actions{ grid-template-columns: 1fr; } }

.order-output textarea{
  width: 100%;
}

/* Minor tweaks for apothecary page inputs if any */
.theme-apothecary input, .theme-apothecary textarea{
  background: rgba(255,255,255,.72);
  color: #111;
  border: 1px solid rgba(0,0,0,.18);
}


/* Index hero green override */
.theme-apothecary{
  --brand-green: #0f3b2e;
}
.theme-apothecary .topbar,
.theme-apothecary .topbar a,
.theme-apothecary .brand-mini__text{
  color: var(--brand-green);
}
.theme-apothecary .brand-mini__mark{
  background: rgba(15,59,46,.10);
  border: 1px solid rgba(15,59,46,.22);
}
.theme-apothecary .nav a[aria-current="page"]{
  background: rgba(15,59,46,.08);
}
.theme-apothecary .hero__content{
  color: var(--brand-green);
}
.theme-apothecary .hero__title--castoro{
  -webkit-text-stroke: 1.5px var(--brand-green);
}
.theme-apothecary .hero__title--castoro::after{
  color: var(--brand-green);
  opacity: 0.08;
}

footer, .footer { color:#1f4d2b !important; }

.notice-bar{background:#16311d;color:#fff;padding:.6rem 1rem;text-align:center;font-size:.95rem}
.utility-row{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;justify-content:space-between}
.section--light{background:#f6f1e6}
.section--olive{background:#2f4631;color:#f8f4ea}
.section--cream{background:#fffaf2}
.kicker{letter-spacing:.14em;text-transform:uppercase;font-size:.8rem;font-weight:700;opacity:.8}
.split{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.card-list{display:grid;gap:1rem}
.badge-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.badge{background:rgba(34,71,42,.12);color:#22472a;border:1px solid rgba(34,71,42,.2);padding:.35rem .7rem;border-radius:999px;font-size:.88rem}
.badge--light{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.2)}
.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
@media (max-width:980px){.product-grid{grid-template-columns:1fr 1fr}}
@media (max-width:720px){.product-grid{grid-template-columns:1fr}}
.product{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:24px;padding:1rem;display:grid;gap:1rem;box-shadow:0 8px 24px rgba(0,0,0,.06)}
.product__img img,.detail-hero__media img{width:100%;height:260px;object-fit:cover;border-radius:18px;background:#efe6d3}
.placeholder-image{min-height:260px;display:grid;place-items:center;border:2px dashed rgba(34,71,42,.35);border-radius:18px;background:#f3ede0;color:#22472a;padding:2rem;text-align:center}
.product__meta{display:flex;gap:.5rem;flex-wrap:wrap;font-size:.92rem;opacity:.9}
.product__tag{align-self:start;padding:.45rem .8rem;border-radius:999px;font-size:.95rem;font-weight:800}
.product__actions{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}
.price{font-size:1.3rem;font-weight:700}
.eyebrow{font-size:.82rem;letter-spacing:.15em;text-transform:uppercase;opacity:.75}
.mini-cart{background:#fff;border-radius:24px;padding:1.25rem;border:1px solid rgba(0,0,0,.08)}
.cart-item{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-top:1px solid rgba(0,0,0,.08)}
.cart-item:first-child{border-top:0}
.cart-item__name{margin:0;font-weight:700}
.cart-item__meta{font-size:.9rem;opacity:.8}
.cart-item__qty{display:flex;align-items:center;gap:.5rem}
.cart-item__qty button{width:2rem;height:2rem;border-radius:999px;border:1px solid rgba(0,0,0,.15);background:#fff}
.checkout-grid,.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
@media (max-width:900px){.checkout-grid,.detail-grid{grid-template-columns:1fr}}
.form-card,.content-card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:24px;padding:1.25rem;box-shadow:0 8px 24px rgba(0,0,0,.05)}
.form label{display:grid;gap:.35rem;margin-bottom:1rem;font-weight:600}
.form input,.form textarea,.form select{padding:.8rem .95rem;border:1px solid rgba(0,0,0,.18);border-radius:14px;font:inherit;background:#fff}
.form input[type="checkbox"]{width:auto;padding:0}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:720px){.form__row{grid-template-columns:1fr}}
.fineprint ul{margin-top:.5rem}
.detail-hero{padding:3rem 0}
.detail-hero__media img{height:420px}
.site-footer{background:#183120;color:#f8f4ea;padding:2rem 0;margin-top:3rem}
.site-footer a{color:#fff}
.footer-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.5rem}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr}}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
@media (max-width:900px){.stat-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.stat-grid{grid-template-columns:1fr}}
.stat{background:#fff;border-radius:20px;padding:1rem;border:1px solid rgba(0,0,0,.08)}
.policy-list details,.faq-list details{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:16px;padding:1rem;margin-bottom:1rem}
.hero__cta{display:flex;gap:1rem;flex-wrap:wrap}
.hero__note{max-width:46rem}
.inline-check{display:flex;gap:.75rem;align-items:flex-start}
.hidden-field{position:absolute;left:-9999px}
.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}
.table-like{display:grid;gap:.75rem}
.table-like .row{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid rgba(0,0,0,.08);padding-top:.75rem}
.admin-note{background:#fff5d8;border:1px solid #e5c96a;border-radius:16px;padding:1rem}

.product__img--link{display:block; overflow:hidden; border-radius:16px;}
.product__img--link img{transition:transform .25s ease;}
.product__img--link:hover img,
.product__img--link:focus img{transform:scale(1.02);}
.product__name a{text-decoration:none;}
.product__name a:hover,.product__name a:focus{text-decoration:underline;}


.collection-card{
  padding: 18px;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 18px;
  background: rgba(255,255,255,.55);
}
.collection-card img{
  width: 100%;
  height: auto;
  object-fit: contain;
  border-radius: 12px;
}
.foundation-grid{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 24px;
  align-items: stretch;
}
.foundation-grid .content-card,
.foundation-grid .image-card{ height:100%; }
.image-card{
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 18px;
  overflow: hidden;
}
.image-card img{
  width:100%;
  height:100%;
  object-fit: cover;
}
.footer-columns{
  display:grid;
  grid-template-columns: 1.1fr .8fr .8fr;
  gap: 24px;
}
.footer-columns ul{
  list-style:none;
  padding:0;
  margin:0;
}
.footer-columns li{
  margin: 0 0 8px 0;
}
.footer-legal{
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,.15);
}
@media (max-width: 900px){
  .foundation-grid,
  .footer-columns{
    grid-template-columns: 1fr;
  }
}


/* ADA improvements */
body{ font-size: 18px; }
a{ text-underline-offset: 2px; }
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible{
  outline: 3px solid #0b57d0;
  outline-offset: 3px;
}
.nav a, .btn, .brand-mini, .product__img--link{
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.notice-bar{
  background:#243127 !important;
  color:#fff !important;
}
.site-footer{
  background:#1f2320 !important;
  color:#f7f3e8 !important;
}
.site-footer a{
  color:#ffffff !important;
  text-decoration: underline;
}
.site-footer p,
.site-footer li,
.site-footer h2,
.site-footer h3{
  color:#f7f3e8 !important;
}
.footer-legal{
  border-top: 1px solid rgba(255,255,255,.28) !important;
}
.hidden-field{
  position:absolute !important;
  left:-10000px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}
.collection-card{
  display:block;
}
.collection-card img{
  display:block;
}


/* Mobile compatibility improvements */
@media (max-width: 900px){
  .topbar__inner{
    flex-direction: column;
    align-items: stretch;
  }
  .nav{
    justify-content: center;
  }
  .hero{
    min-height: auto;
    padding: 36px 0;
  }
  .hero__content{
    padding: 24px 16px;
  }
  .hero__title--castoro{
    font-size: clamp(34px, 10vw, 56px);
    letter-spacing: 1.5px;
    line-height: 1.02;
    word-break: normal;
  }
  .hero__subtitle,
  .hero__note,
  .lead{
    font-size: 1rem;
  }
  .split,
  .checkout-grid,
  .detail-grid,
  .product-grid{
    grid-template-columns: 1fr !important;
  }
  .hero__cta{
    flex-direction: column;
    align-items: stretch;
  }
  .hero__cta .btn{
    justify-content: center;
    width: 100%;
  }
  .product__actions{
    flex-direction: column;
    width: 100%;
  }
  .product__actions .btn{
    width: 100%;
    justify-content: center;
  }
  .product__price-row{
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  .form__row{
    grid-template-columns: 1fr !important;
  }
  .detail-hero__media img,
  .collection-card img{
    width: 100%;
    height: auto;
  }
  .faq-list details{
    overflow-wrap: anywhere;
  }
}

@media (max-width: 640px){
  .container,
  .topbar__inner{
    width: min(var(--max), calc(100% - 24px));
  }
  .nav{
    gap: 8px;
  }
  .nav a{
    font-size: 13px;
    padding: 10px 10px;
  }
  .hero__title--castoro{
    font-size: clamp(28px, 9vw, 42px);
    letter-spacing: 1px;
  }
  .h2{
    font-size: clamp(28px, 8vw, 40px);
  }
  .content-card,
  .form-card,
  .mini-cart,
  .product{
    padding: 16px;
  }
  textarea,
  input,
  button,
  select{
    font-size: 16px;
  }
}


.site-footer{
  padding-top: 32px;
  padding-bottom: 24px;
}
.footer-columns{
  display:grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 32px;
  align-items:start;
}
.site-footer ul{
  list-style:none;
  padding:0;
  margin:0;
}
.site-footer li{
  margin: 0 0 8px 0;
}
.site-footer .h3{
  margin-top:0;
  margin-bottom:12px;
}
.footer-legal{
  text-align:center;
}
@media (max-width: 900px){
  .footer-columns{
    grid-template-columns: 1fr;
    gap: 20px;
  }
}


.site-footer details{
  border-bottom: 1px solid rgba(255,255,255,.12);
  padding: 8px 0;
}
.site-footer summary{
  cursor: pointer;
  font-weight: 700;
}
.site-footer summary::-webkit-details-marker{
  display:none;
}
.price{
  font-weight: 700;
  margin: .5rem 0;
}

.product__img img {
  width: 100%;
  height: 280px;
  object-fit: contain;
  object-position: center;
  border-radius: 18px;
  background: #efe6d3;
}

.detail-hero__media img {
  width: 100%;
  height: 460px;
  object-fit: contain;
  object-position: center;
  border-radius: 18px;
  background: #efe6d3;
}

@media (max-width: 720px) {
  .product__img img {
    height: 240px;
  }

  .detail-hero__media img {
    height: 320px;
  }
}
