/* ============================================================
   NOORY LIFESTYLE — Components
============================================================ */

/* ---------- Hero ---------- */
.hero{
  position:relative;
  height:clamp(340px, 36vw, 460px);
  overflow:hidden;
  background:#FDFDFD;
}
.hero-slide{
  position:absolute;inset:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  opacity:0;
  transition:opacity .6s ease;
  pointer-events:none;
}
.hero-slide.is-active{opacity:1;pointer-events:auto;z-index:2;}

.hero-text-panel{
  position:relative;
  background:#FDFDFD;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:0 clamp(28px,5vw,72px);
}
.hero-copy{max-width:440px;}
.hero-copy .eyebrow{color:var(--gold-700);display:block;}
.hero-copy .h1{
  color:var(--forest-950);
  margin-top:14px;
  font-size:clamp(1.7rem,3vw,2.5rem);
}
.hero-copy p{
  margin-top:14px;
  color:var(--ink-soft);
  max-width:40ch;
  font-size:0.98rem;
  line-height:1.6;
}
.hero-actions{display:flex;gap:16px;margin-top:24px;flex-wrap:wrap;align-items:center;}

.hero-image-panel{
  position:relative;
  background:#FDFDFD;
  overflow:hidden;
}
.hero-image-panel img{width:100%;height:100%;object-fit:cover;object-position:center;}

.hero-dots{
  position:absolute;
  left:clamp(28px,5vw,72px);
  top:clamp(20px,4vh,32px);
  z-index:4;
  display:flex;gap:8px;
}
.hero-dot{
  width:22px;height:3px;
  border:none;
  background:var(--line);
  padding:0;
  transition:background .2s ease;
}
.hero-dot.is-active{background:var(--gold-500);}

.hero-arrow{
  position:absolute;top:50%;transform:translateY(-50%);
  z-index:5;
  width:40px;height:40px;border-radius:50%;
  border:none;
  background:var(--white);
  color:var(--forest-950);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 14px rgba(0,0,0,0.14);
  transition:background .15s ease;
}
.hero-arrow:hover{background:var(--gold-300);}
.hero-arrow svg{width:16px;height:16px;stroke-width:1.6;}
.hero-arrow--prev{left:16px;}
.hero-arrow--next{right:16px;}

@media (max-width:760px){
  .hero{height:auto;}
  .hero-slide{grid-template-columns:1fr;}
  .hero-slide.is-active{position:static;}
  .hero-slide:not(.is-active){display:none;}
  .hero-text-panel{padding:32px 20px 24px;}
  .hero-image-panel{height:220px;}
  .hero-arrow{display:none;}
  .hero-dots{display:none;}
}

/* ---------- Sub-hero (non-home pages) ---------- */
.subhero{
  background:var(--forest-950);
  color:var(--ivory-100);
  text-align:center;
  padding-block:clamp(64px,9vw,100px);
}
.subhero .eyebrow{color:var(--gold-300);}
.subhero .h1{color:var(--ivory-100);margin-top:16px;}

/* ---------- Category cards ---------- */
.cat-grid{
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.cat-card{
  display:flex;
  align-items:center;
  gap:20px;
  background:var(--ivory-100);
  border-radius:14px;
  padding:20px;
  transition:background .2s ease, transform .2s ease;
}
.cat-card:hover{background:var(--ivory-300);transform:translateY(-2px);}
.cat-card-img{
  width:104px;height:104px;
  flex-shrink:0;
  border-radius:10px;
  overflow:hidden;
  background:var(--white);
}
.cat-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.cat-card:hover .cat-card-img img{transform:scale(1.06);}
.cat-card-name{font-family:var(--font-display);font-weight:700;font-size:1.2rem;color:var(--forest-950);}
.cat-card-link{
  display:inline-block;
  margin-top:8px;
  font-size:0.86rem;
  font-weight:600;
  color:var(--forest-950);
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-color:var(--gold-500);
}

@media (max-width:900px){.cat-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){
  .cat-grid{grid-template-columns:1fr;}
  .cat-card-img{width:88px;height:88px;}
}

/* ---------- Section headers ---------- */
.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:48px;
}
.section-head .eyebrow{display:block;margin-bottom:14px;}
.section-head-center{
  text-align:center;
  max-width:680px;
  margin:0 auto 56px;
}
.section-head-center .bead-divider{margin-top:20px;}
@media (max-width:480px){
  .section-head-center h2[style*="nowrap"]{white-space:normal !important;font-size:1.5rem !important;}
}

/* ---------- Product grid & cards ---------- */
.product-grid{
  grid-template-columns:repeat(3,1fr);
  row-gap:56px;
  column-gap:32px;
}
@media (max-width:900px){.product-grid{grid-template-columns:repeat(2,1fr);gap:32px 20px;}}
@media (max-width:460px){.product-grid{grid-template-columns:1fr 1fr;gap:28px 14px;}}
/* BUG FIX: 2 columns was still forced all the way down to the smallest
   phone widths, leaving each card too narrow for its content (price row,
   Quick View button, badges) to sit comfortably without crowding/
   overflow. Below ~420px, drop to a single column instead. */
@media (max-width:420px){.product-grid{grid-template-columns:1fr;gap:28px;}}

.product-card{
  background:transparent;
  border:none;
  display:flex;flex-direction:column;
}

.product-media{
  position:relative;
  aspect-ratio:1;
  overflow:hidden;
  background:var(--ivory-200);
}
.product-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.product-card:hover .product-media img{transform:scale(1.04);}

.product-badges{
  position:absolute;top:14px;left:14px;
  display:flex;flex-direction:column;gap:6px;
}
.product-badges .badge{background:rgba(251,248,242,0.9) !important;padding:4px 10px !important;}

.wishlist-btn{
  position:absolute;top:12px;right:12px;
  width:34px;height:34px;
  border-radius:50%;
  border:none;
  background:rgba(251,248,242,0.92);
  color:var(--ink-soft);
  display:flex;align-items:center;justify-content:center;
  z-index:2;
  transition:color .15s ease, transform .15s ease;
}
.wishlist-btn svg{width:17px;height:17px;}
.wishlist-btn:hover{color:var(--error);transform:scale(1.08);}
.wishlist-btn.is-active{color:var(--error);}
.wishlist-btn.is-active svg{fill:currentColor;}

.quick-view-btn{
  position:absolute;
  left:0;right:0;bottom:0;
  background:rgba(251,248,242,0.94);
  color:var(--forest-950);
  border:none;
  padding:13px;
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  opacity:0;
  transform:translateY(100%);
  transition:opacity .2s ease, transform .25s ease;
}
.product-card:hover .quick-view-btn,
.product-card:focus-within .quick-view-btn{opacity:1;transform:translateY(0);}
.quick-view-btn:hover{background:var(--forest-950);color:var(--ivory-100);}

.product-body{
  padding-top:18px;
  display:flex;flex-direction:column;gap:5px;
}
.product-cat{
  font-size:0.68rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--ink-soft);
  opacity:0.7;
  font-weight:500;
}
.product-name{
  font-family:var(--font-display);
  font-weight:600;
  font-size:1.05rem;
  color:var(--forest-950);
  line-height:1.35;
}
.product-name a{transition:color .15s ease;}
.product-name a:hover{color:var(--gold-700);}
.product-price-row{
  margin-top:4px;
}
.product-price{font-size:0.98rem;}

/* ============================================================
   WHITE THEME — rolled out site-wide.
============================================================ */
.product-card{
  background:#FFFFFF;
  border:1px solid var(--card-line);
  border-radius:12px;
  overflow:hidden;
  transition:border-color .2s ease;
}
.product-card:hover{
  border-color:var(--gold-300);
}
.product-grid{
  column-gap:18px;
  row-gap:40px;
}
@media (max-width:1180px){
  .product-grid{column-gap:16px;}
}
@media (max-width:760px){
  .product-grid{column-gap:12px;row-gap:28px;}
}
@media (max-width:460px){
  .product-grid{column-gap:10px;}
}
.product-media{
  background:#F7F6F2;
}
.product-body{
  padding:16px 16px 18px;
}
.shop-toolbar,
.filter-group,
.sort-select{
  border-color:var(--card-line);
}

/* ---------- Shop layout: filters ---------- */
.shop-layout{
  display:grid;
  grid-template-columns:240px 1fr;
  gap:64px;
  align-items:start;
}
.filters{
  border:none;
  background:transparent;
  padding:0;
  position:sticky;
  top:110px;
}
.filter-group{padding-block:22px;border-bottom:1px solid var(--line);}
.filter-group:first-child{padding-top:0;}
.filter-group:last-child{border-bottom:none;}
.filter-title{
  font-family:var(--font-display);
  font-weight:600;
  font-size:0.98rem;
  color:var(--forest-950);
  margin-bottom:14px;
}
.filter-option{
  display:flex;align-items:center;gap:10px;
  font-size:0.88rem;
  color:var(--ink-soft);
  padding:7px 0;
  cursor:pointer;
}
.filter-option input{accent-color:var(--forest-950);width:15px;height:15px;}
.filter-option .count{margin-left:auto;color:var(--line);font-size:0.78rem;}

.range-row{display:flex;align-items:center;gap:10px;}
.range-row input[type=number]{
  width:100%;
  border:none;
  border-bottom:1px solid var(--line);
  padding:8px 2px;
  border-radius:0;
  font-size:0.85rem;
  background:transparent;
}
.range-row input[type=number]:focus{outline:none;border-color:var(--forest-950);}
.range-slider{margin-top:14px;}
.range-slider input[type=range]{
  width:100%;accent-color:var(--gold-500);
}

.shop-toolbar{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;margin-bottom:36px;flex-wrap:wrap;
  padding-bottom:20px;
  border-bottom:1px solid var(--line);
}
.result-count{font-size:0.86rem;color:var(--ink-soft);}
.sort-select{
  border:none;
  border-bottom:1px solid var(--line);
  padding:8px 22px 8px 2px;
  border-radius:0;
  background:transparent;
  font-size:0.84rem;
  color:var(--ink-soft);
}
.mobile-filter-btn{display:none;}
.filter-scrim{display:none;}
@media (max-width:900px){
  .shop-layout{grid-template-columns:1fr;}
  .filters{
    position:fixed;inset:0 0 0 auto;
    width:min(320px,88vw);
    z-index:90;
    transform:translateX(100%);
    transition:transform .2s ease;
    overflow-y:auto;
    top:0;
    background:var(--ivory-100) !important;
    padding:28px !important;
  }
  .filters.is-open{transform:translateX(0);}
  .mobile-filter-btn{display:inline-flex;}
  .filter-scrim{
    position:fixed;inset:0;background:rgba(5,42,32,0.45);z-index:85;
  }
  .filter-scrim.is-open{display:block;}
}

.empty-state{
  text-align:center;
  padding:64px 20px;
  color:var(--ink-soft);
}

/* ---------- Quick view modal ---------- */
.modal-scrim{
  position:fixed;inset:0;
  background:rgba(5,42,32,0.55);
  z-index:100;
  display:none;
  align-items:center;justify-content:center;
  padding:20px;
}
.modal-scrim.is-open{display:flex;}
.modal-box{
  background:var(--white);
  max-width:920px;width:100%;
  max-height:88vh;
  overflow-y:auto;
  position:relative;
  box-shadow:var(--shadow-pop);
}
.modal-close{
  position:absolute;top:14px;right:14px;
  width:36px;height:36px;
  border:none;background:var(--ivory-100);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  z-index:2;
}
.modal-close svg{width:18px;height:18px;}
.modal-grid{
  display:grid;grid-template-columns:1fr 1fr;
}
.modal-media{aspect-ratio:1;background:var(--ivory-200);position:relative;}
.modal-media img{width:100%;height:100%;object-fit:cover;}
.modal-info{padding:32px;display:flex;flex-direction:column;gap:14px;}
@media (max-width:680px){
  .modal-grid{grid-template-columns:1fr;}
  .modal-info{padding:24px;}
}

/* ---------- Product gallery (PDP) ---------- */
.pdp-grid{
  display:grid;
  grid-template-columns:88px 1fr 1fr;
  gap:24px;
  align-items:start;
}
.pdp-thumbs{
  display:flex;flex-direction:column;gap:12px;
}
.pdp-thumb{
  border:none;
  opacity:0.55;
  aspect-ratio:1;
  overflow:hidden;
  cursor:pointer;
  background:var(--ivory-200);
  padding:0;
  transition:opacity .15s ease;
}
.pdp-thumb.is-active{opacity:1;}
.pdp-thumb:hover{opacity:0.85;}
.pdp-thumb img{width:100%;height:100%;object-fit:cover;}
.pdp-main{
  border:none;
  aspect-ratio:1;
  overflow:hidden;
  background:var(--ivory-200);
  position:relative;
}
.pdp-main img{width:100%;height:100%;object-fit:cover;}

.pdp-info{padding-top:6px;}
.pdp-info .product-cat{font-size:0.78rem;}
.pdp-info .h2{margin-top:10px;}
.pdp-price-row{display:flex;align-items:center;gap:16px;margin-top:18px;}
.pdp-price{font-size:1.6rem;font-weight:500;}
.pdp-desc{margin-top:20px;color:var(--ink-soft);max-width:52ch;line-height:1.75;}

.option-group{margin-top:28px;}
.option-label{
  font-size:0.78rem;font-weight:600;color:var(--forest-950);
  letter-spacing:0.06em;text-transform:uppercase;
  margin-bottom:12px;display:flex;gap:8px;
}
.option-label .chosen{color:var(--ink-soft);font-weight:400;text-transform:none;letter-spacing:0;}
.swatches{display:flex;flex-wrap:wrap;gap:10px;}
.swatch{
  border:1px solid var(--line);
  background:transparent;
  padding:10px 18px;
  font-size:0.82rem;
  border-radius:0;
  color:var(--ink-soft);
  transition:border-color .15s ease,color .15s ease;
}
.swatch.is-selected{border-color:var(--forest-950);color:var(--forest-950);font-weight:600;}
.swatch[disabled]{opacity:0.4;text-decoration:line-through;cursor:not-allowed;}

.color-dot{
  width:34px;height:34px;border-radius:50%;
  border:2px solid transparent;
  outline:1px solid var(--line);
  outline-offset:2px;
  position:relative;
}
.color-dot.is-selected{outline:2px solid var(--forest-950);}

.qty-stepper{
  display:inline-flex;align-items:center;
  border:1px solid var(--line);
}
.qty-stepper button{
  width:38px;height:42px;background:none;border:none;
  font-size:1.1rem;color:var(--forest-950);
}
.qty-stepper button:hover{background:var(--ivory-200);}
.qty-stepper input{
  width:42px;text-align:center;border:none;
  border-left:1px solid var(--line);border-right:1px solid var(--line);
  height:42px;background:transparent;
}

.pdp-actions{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap;}
.pdp-meta{
  margin-top:28px;padding-top:22px;border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:10px;
}
.meta-row{display:flex;gap:10px;font-size:0.87rem;color:var(--ink-soft);align-items:flex-start;}
.meta-row svg{width:17px;height:17px;flex-shrink:0;margin-top:2px;color:var(--gold-700);}

@media (max-width:900px){
  .pdp-grid{grid-template-columns:1fr;}
  .pdp-thumbs{flex-direction:row;order:2;}
}

/* ---------- Tabs (PDP description / details) ---------- */
.pdp-tabs{margin-top:56px;border-top:1px solid var(--line);}
.tab-list{display:flex;gap:8px;margin-top:-1px;}
.tab-btn{
  padding:16px 4px;margin-right:28px;
  background:none;border:none;border-bottom:2px solid transparent;
  font-size:0.95rem;color:var(--ink-soft);
}
.tab-btn.is-active{color:var(--forest-950);border-color:var(--gold-500);font-weight:600;}
.tab-panel{display:none;padding-block:28px;color:var(--ink-soft);line-height:1.75;max-width:70ch;}
.tab-panel.is-active{display:block;}
.tab-panel ul{list-style:disc;padding-left:20px;display:flex;flex-direction:column;gap:6px;}

/* ---------- Related products ---------- */
.related-strip{margin-top:64px;}

/* ---------- Trust strip ---------- */
.trust-strip{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.trust-grid{
  grid-template-columns:repeat(4,1fr);
  padding-block:44px;
  gap:32px;
}
.trust-item{display:flex;align-items:center;gap:16px;}
.trust-item svg{width:24px;height:24px;color:var(--gold-700);flex-shrink:0;stroke-width:1.3;}
.trust-item h4{font-size:0.92rem;color:var(--forest-950);font-weight:600;}
.trust-item p{font-size:0.8rem;color:var(--ink-soft);margin-top:3px;}
@media (max-width:900px){.trust-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.trust-grid{grid-template-columns:1fr;}}

/* ---------- Story / about split ---------- */
.split{
  display:grid;grid-template-columns:1fr 1fr;
  gap:72px;align-items:center;
}
.split img{
  border:none;
  width:100%;
  height:auto;
  border-radius:var(--radius-md);
}
@media (max-width:860px){.split{grid-template-columns:1fr;gap:32px;}}

/* ---------- Cart page ---------- */
.cart-layout{display:grid;grid-template-columns:1fr 380px;gap:48px;align-items:start;}
.cart-layout > *{min-width:0;} /* see the overflow-x note in tokens.css */
.cart-table{width:100%;border-collapse:collapse;}
.cart-table th{
  text-align:left;font-size:0.78rem;letter-spacing:0.03em;
  color:var(--ink-soft);border-bottom:1px solid var(--line);
  padding-bottom:14px;font-weight:600;
}
.cart-row td{
  padding-block:20px;
  border-bottom:1px solid var(--line);
  vertical-align:top;
}
.cart-item{display:flex;gap:16px;align-items:flex-start;min-width:0;}
.cart-item-img{width:84px;height:84px;flex-shrink:0;border:1px solid var(--line);overflow:hidden;}
.cart-item-img img{width:100%;height:100%;object-fit:cover;}
.cart-item-name{font-family:var(--font-display);font-size:1rem;color:var(--forest-950);overflow-wrap:break-word;}
.cart-item-variant{font-size:0.82rem;color:var(--ink-soft);margin-top:4px;}
.cart-item-remove{
  margin-top:8px;background:none;border:none;color:var(--error);
  font-size:0.8rem;display:inline-flex;align-items:center;gap:5px;
}
.cart-item-remove svg{width:13px;height:13px;}

.summary-card{
  border:1px solid var(--line);background:var(--white);padding:26px;
}
.summary-row{
  display:flex;justify-content:space-between;gap:10px;
  font-size:0.94rem;color:var(--ink-soft);
  padding-block:10px;
}
.summary-row span:first-child{min-width:0;overflow-wrap:break-word;}
.summary-row span:last-child{flex-shrink:0;white-space:nowrap;}
.summary-row.total{
  border-top:1px solid var(--line);
  margin-top:8px;padding-top:16px;
  font-size:1.15rem;color:var(--forest-950);font-weight:700;
}
.summary-note{font-size:0.78rem;color:var(--ink-soft);margin-top:14px;line-height:1.6;}

.cart-empty{
  text-align:center;padding:80px 20px;
}
.cart-empty svg{width:64px;height:64px;color:var(--line);margin-bottom:20px;}

@media (max-width:900px){
  .cart-layout{grid-template-columns:1fr;}
  .cart-table thead{display:none;}
  .cart-row td{display:block;border-bottom:none;padding-block:8px;}
  .cart-row{display:block;border-bottom:1px solid var(--line);padding-block:16px;}
}

/* ---------- Checkout ---------- */
.checkout-layout{display:grid;grid-template-columns:1.15fr 0.85fr;gap:48px;align-items:start;}
.checkout-layout > *{min-width:0;} /* see the overflow-x note in tokens.css */
.form-card{border:1px solid var(--line);background:var(--white);padding:30px;}
.form-row{margin-bottom:20px;}
.form-row label{
  display:block;font-size:0.85rem;font-weight:600;color:var(--forest-950);margin-bottom:8px;
}
.form-row .optional{font-weight:400;color:var(--ink-soft);}
.form-row input,.form-row select,.form-row textarea{
  width:100%;border:1px solid var(--line);
  padding:13px 14px;border-radius:var(--radius-sm);
  background:var(--white);color:var(--ink);
}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{
  border-color:var(--forest-950);outline:none;
}
.form-row .error-msg{
  display:none;color:var(--error);font-size:0.78rem;margin-top:6px;
}
.form-row.has-error input,
.form-row.has-error select{border-color:var(--error);}
.form-row.has-error .error-msg{display:block;}
.form-two{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.form-two > *{min-width:0;}
@media (max-width:600px){.form-two{grid-template-columns:1fr;}}

.payment-option{
  border:1px solid var(--forest-950);
  display:flex;align-items:center;gap:12px;
  padding:16px;background:var(--forest-050);
}
.payment-option svg{width:22px;height:22px;color:var(--forest-800);}
.payment-option strong{display:block;color:var(--forest-950);}
.payment-option span{font-size:0.82rem;color:var(--ink-soft);}

.order-line{
  display:flex;gap:12px;padding-block:12px;border-bottom:1px solid var(--line);
  min-width:0;
}
.order-line img{width:52px;height:52px;object-fit:cover;border:1px solid var(--line);flex-shrink:0;}
/* review-order.php wraps .name + .meta together in one unclassed <div>
   (the actual flex sibling alongside the image and .amt) — THAT
   wrapper, not .name itself, is what needs to shrink for the row to
   actually get narrower on a small screen instead of forcing the page
   wide (see the overflow-x note in tokens.css). */
.order-line > div:not(.amt){min-width:0;flex:1;}
.order-line .name{font-size:0.9rem;color:var(--forest-950);overflow-wrap:break-word;}
.order-line .meta{font-size:0.78rem;color:var(--ink-soft);}
.order-line .amt{margin-left:auto;font-size:0.9rem;font-weight:600;white-space:nowrap;flex-shrink:0;}

@media (max-width:900px){.checkout-layout{grid-template-columns:1fr;}}

/* Card padding that's comfortable at desktop widths (30px/26px) starts
   eating too much of the available width on a phone — on a ~375px-wide
   screen, .form-card's fixed 30px padding plus the page container's own
   gutter left only a narrow strip for the actual form fields (address
   textarea, phone input, etc.). Used by the checkout form and both
   cart/checkout order-summary cards alike. */
@media (max-width:600px){
  .form-card,.summary-card{padding:20px;}
}
@media (max-width:480px){
  .form-card,.summary-card{padding:20px;}
}

/* ---------- Order confirmation ---------- */
.confirm-wrap{
  max-width:620px;margin:0 auto;text-align:center;padding-block:80px;
}
.confirm-icon{
  width:74px;height:74px;border-radius:50%;
  background:var(--forest-050);color:var(--forest-800);
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 24px;
}
.confirm-icon svg{width:36px;height:36px;}
.order-id-box{
  border:1px dashed var(--gold-500);
  background:var(--gold-100);
  padding:16px 24px;display:inline-block;margin-block:24px;
}
.order-id-box .label{font-size:0.75rem;color:var(--gold-700);letter-spacing:0.03em;}
.order-id-box .value{font-family:var(--font-display);font-size:1.3rem;color:var(--forest-950);}

/* ---------- Product carousel rows ---------- */
.carousel-section{margin-bottom:72px;}
.carousel-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:24px;margin-bottom:28px;
}
@media (max-width:520px){
  .section-head,.carousel-head{
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:10px;
  }
}
.carousel-wrap{position:relative;}
.carousel-track{
  display:flex;
  gap:20px;
  overflow-x:auto;
  scroll-behavior:smooth;
  scroll-snap-type:x mandatory;
  padding-bottom:6px;
  -ms-overflow-style:none;
  scrollbar-width:none;
}
.carousel-track::-webkit-scrollbar{display:none;}
.carousel-track .product-card{
  flex:0 0 auto;
  width:270px;
  scroll-snap-align:start;
}
.carousel-arrow{
  position:absolute;top:38%;
  width:44px;height:44px;
  border-radius:50%;
  border:1px solid var(--line);
  background:var(--ivory-100);
  color:var(--forest-950);
  display:flex;align-items:center;justify-content:center;
  z-index:5;
  transition:background .15s ease, border-color .15s ease;
}
.carousel-arrow:hover{background:var(--forest-950);color:var(--ivory-100);border-color:var(--forest-950);}
.carousel-arrow svg{width:18px;height:18px;stroke-width:1.5;}
.carousel-arrow--prev{left:-22px;}
.carousel-arrow--next{right:-22px;}
@media (max-width:900px){
  .carousel-arrow{display:none;}
  .carousel-track .product-card{width:62vw;}
}
@media (max-width:560px){
  .carousel-track .product-card{width:74vw;}
}

/* ---------- Cart drawer ---------- */
.cart-drawer-scrim{
  position:fixed;inset:0;background:rgba(5,42,32,0.45);
  z-index:110;display:none;
}
.cart-drawer-scrim.is-open{display:block;}
.cart-drawer{
  position:fixed;top:0;right:0;bottom:0;
  width:min(420px,92vw);
  background:var(--ivory-100);
  z-index:111;
  display:flex;flex-direction:column;
  transform:translateX(100%);
  transition:transform .25s ease;
  box-shadow:var(--shadow-pop);
}
.cart-drawer.is-open{transform:translateX(0);}
.cart-drawer-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:22px 24px;border-bottom:1px solid var(--line);
}
.cart-drawer-head h3{font-family:var(--font-display);font-weight:600;font-size:1.15rem;color:var(--forest-950);}
.cart-drawer-close{
  width:36px;height:36px;border:none;background:none;
  display:flex;align-items:center;justify-content:center;color:var(--forest-950);
}
.cart-drawer-body{flex:1;overflow-y:auto;padding:20px 24px;}
.cart-drawer-item{
  display:flex;gap:14px;padding-block:16px;border-bottom:1px solid var(--line);
}
.cart-drawer-item img{width:64px;height:64px;object-fit:cover;flex-shrink:0;background:var(--ivory-200);}
.cart-drawer-item .name{font-family:var(--font-display);font-size:0.92rem;color:var(--forest-950);}
.cart-drawer-item .variant{font-size:0.78rem;color:var(--ink-soft);margin-top:2px;}
.cart-drawer-item .qty-row{display:flex;align-items:center;gap:10px;margin-top:8px;}
.cart-drawer-item .qty-row .qty-stepper{transform:scale(0.9);transform-origin:left center;}
.cart-drawer-item .remove-mini{background:none;border:none;color:var(--error);font-size:0.76rem;}
.cart-drawer-item .amt{margin-left:auto;font-size:0.9rem;font-weight:600;white-space:nowrap;}
.cart-drawer-empty{text-align:center;padding:60px 20px;color:var(--ink-soft);}
.cart-drawer-empty svg{width:48px;height:48px;color:var(--line);margin-bottom:16px;}
.cart-drawer-foot{
  padding:22px 24px;border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:12px;
}
.cart-drawer-subtotal{display:flex;justify-content:space-between;font-size:1rem;color:var(--forest-950);font-weight:600;}

/* ---------- Footer brand statement ---------- */
.footer-statement{
  border-bottom:1px solid rgba(251,248,242,0.1);
  padding-block:56px;
  text-align:center;
}
.footer-statement .h-display{
  color:var(--ivory-100);
  font-size:clamp(1.6rem,3vw,2.3rem);
  max-width:820px;
  margin:0 auto;
}
.footer-statement p{
  color:rgba(251,248,242,0.65);
  margin-top:14px;
  font-size:0.98rem;
}
.testi-grid{grid-template-columns:repeat(3,1fr);gap:48px;}
.testi-card{
  background:transparent;border:none;padding:0;
  display:flex;flex-direction:column;gap:16px;
}
.testi-stars{color:var(--gold-500);letter-spacing:3px;font-size:0.85rem;}
.testi-quote{color:var(--ink-soft);line-height:1.8;font-size:0.98rem;font-style:italic;}
.testi-name{font-family:var(--font-body);color:var(--forest-950);font-size:0.85rem;font-weight:600;letter-spacing:0.03em;margin-top:2px;}
@media (max-width:860px){.testi-grid{grid-template-columns:1fr;gap:36px;}}

/* ---------- Toast ---------- */
.toast{
  position:fixed;bottom:24px;left:50%;
  transform:translate(-50%,20px);
  background:var(--forest-950);color:var(--ivory-100);
  padding:14px 22px;border-radius:var(--radius-sm);
  font-size:0.88rem;
  display:flex;align-items:center;gap:10px;
  box-shadow:var(--shadow-pop);
  z-index:200;
  opacity:0;pointer-events:none;
  transition:opacity .2s ease, transform .2s ease;
}
.toast.is-visible{opacity:1;transform:translate(-50%,0);pointer-events:auto;}
.toast svg{width:16px;height:16px;color:var(--gold-300);}

/* ---------- Account pages (My Account / WooCommerce-style) ---------- */
.account-layout{
  display:grid;
  grid-template-columns:260px 1fr;
  gap:48px;
  align-items:start;
}
.account-nav{
  border:1px solid var(--line);
  background:var(--white);
}
.account-nav a{
  display:flex;align-items:center;gap:12px;
  padding:15px 20px;
  font-size:0.92rem;
  color:var(--ink-soft);
  border-bottom:1px solid var(--line);
  transition:background .15s ease,color .15s ease;
}
.account-nav a:last-child{border-bottom:none;}
.account-nav a svg{width:17px;height:17px;stroke-width:1.6;flex-shrink:0;}
.account-nav a:hover{background:var(--ivory-200);color:var(--forest-950);}
.account-nav a.is-active{background:var(--forest-950);color:var(--ivory-100);}
.account-nav a.is-logout{color:var(--error);}

.account-card{
  border:1px solid var(--line);
  background:var(--white);
  padding:32px;
}
.account-welcome{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:16px;
  margin-bottom:28px;
}
.account-stat-grid{grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:32px;}
.account-stat{
  border:1px solid var(--line);
  padding:22px;
  text-align:center;
}
.account-stat .num{font-family:var(--font-display);font-weight:700;font-size:1.8rem;color:var(--forest-950);}
.account-stat .label{font-size:0.8rem;color:var(--ink-soft);margin-top:4px;}

.order-history-table{width:100%;border-collapse:collapse;}
.order-history-table th{
  text-align:left;font-size:0.76rem;letter-spacing:0.04em;text-transform:uppercase;
  color:var(--ink-soft);border-bottom:1px solid var(--line);padding-bottom:12px;font-weight:600;
}
.order-history-table td{padding-block:18px;border-bottom:1px solid var(--line);font-size:0.92rem;}
.order-status{
  display:inline-flex;align-items:center;gap:6px;
  font-size:0.76rem;font-weight:600;letter-spacing:0.03em;
  padding:5px 12px;border-radius:20px;
}
.order-status.processing{background:#FCEFD8;color:#9C6B1A;}
.order-status.delivered{background:#E3EFE6;color:var(--success);}
.order-status.cancelled{background:#F5E2DF;color:var(--error);}

.address-card-grid{grid-template-columns:1fr 1fr;gap:24px;}
.address-card{border:1px solid var(--line);padding:24px;}
.address-card h4{font-family:var(--font-display);font-weight:700;color:var(--forest-950);margin-bottom:10px;}
.address-card p{color:var(--ink-soft);font-size:0.92rem;line-height:1.7;}
.address-card .badge-forest{margin-bottom:10px;display:inline-block;}

.auth-split{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  border:1px solid var(--line);
  max-width:920px;margin:0 auto;
}
.auth-pane{padding:44px;}
.auth-pane + .auth-pane{border-left:1px solid var(--line);}
.auth-pane h2{margin-bottom:8px;}
.auth-pane p.lede{margin-bottom:28px;font-size:0.94rem;}
.auth-footnote{font-size:0.82rem;color:var(--ink-soft);margin-top:16px;text-align:center;}

.track-result{border:1px solid var(--line);padding:32px;margin-top:32px;}
.track-steps{display:flex;justify-content:space-between;margin-top:28px;position:relative;}
.track-steps::before{
  content:"";position:absolute;top:17px;left:5%;right:5%;height:2px;background:var(--line);z-index:0;
}
.track-step{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:10px;flex:1;text-align:center;}
.track-step .dot{
  width:36px;height:36px;border-radius:50%;background:var(--ivory-200);border:2px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--ink-soft);
}
.track-step.is-done .dot{background:var(--forest-950);border-color:var(--forest-950);color:var(--ivory-100);}
.track-step .dot svg{width:16px;height:16px;}
.track-step span{font-size:0.8rem;color:var(--ink-soft);}
.track-step.is-done span{color:var(--forest-950);font-weight:600;}

@media (max-width:900px){
  .account-layout{grid-template-columns:1fr;}
  .account-stat-grid{grid-template-columns:1fr;}
  .address-card-grid{grid-template-columns:1fr;}
  .auth-split{grid-template-columns:1fr;}
  .auth-pane + .auth-pane{border-left:none;border-top:1px solid var(--line);}
  .track-steps{flex-direction:column;gap:20px;align-items:flex-start;}
  .track-steps::before{display:none;}
  .track-step{flex-direction:row;text-align:left;}
}
.content-page{max-width:760px;margin:0 auto;}
.content-page h2{margin-top:36px;margin-bottom:12px;}
.content-page p{color:var(--ink-soft);line-height:1.8;margin-bottom:14px;}
