/*
Theme Name: Shanzay B
Theme URI: https://shanzayb.com
Author: Shanzay B
Author URI: https://shanzayb.com
Description: A premium, custom-built WooCommerce theme for Shanzay B — Clothing, Shoes, Perfumes and Bags. Warm ivory palette with layered, dimensional UI (embossed marks, tilting product cards, a 3D garment spotlight). Built for an international audience (US, Canada, Australia, Europe), priced in USD.
Version: 1.0.0
Requires at least: 6.3
Tested up to: 6.6
Requires PHP: 7.4
WC requires at least: 8.0
WC tested up to: 9.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: shanzay-b
*/

/* =========================================================
   1. DESIGN TOKENS
   ========================================================= */
:root{
  --paper:#FAF7F1;
  --paper-2:#F2EDE1;
  --ink:#1A1714;
  --ink-soft:#4A443B;
  --stone:#948C7C;
  --bronze:#A9814E;
  --bronze-light:#D4B686;
  --shadow-1:rgba(26,23,20,0.06);
  --shadow-2:rgba(26,23,20,0.12);
  --shadow-3:rgba(26,23,20,0.22);
  --line:rgba(26,23,20,0.10);
  --serif:'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --sans:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --maxw:1440px;
}

/* =========================================================
   2. RESET / BASE
   ========================================================= */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  margin:0;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button, input, textarea, select{ font-family:inherit; }
:focus-visible{ outline:2px solid var(--bronze); outline-offset:2px; }
.screen-reader-text{ position:absolute !important; clip:rect(1px,1px,1px,1px); width:1px; height:1px; overflow:hidden; }
.skip-link{ position:absolute; left:-999px; top:0; background:var(--ink); color:var(--paper); padding:12px 20px; z-index:9999; }
.skip-link:focus{ left:10px; top:10px; }

h1,h2,h3,h4{ font-family:var(--serif); font-weight:400; line-height:1.1; margin:0; }
p{ margin:0; }
.container{ max-width:var(--maxw); margin:0 auto; padding:0 64px; }
@media (max-width:900px){ .container{ padding:0 24px; } }

.eyebrow{ font-size:11px; letter-spacing:0.26em; text-transform:uppercase; color:var(--bronze); font-weight:500; }

/* =========================================================
   3. ANNOUNCEMENT BAR + HEADER
   ========================================================= */
.announce-bar{ background:var(--ink); color:var(--paper); text-align:center; font-size:10.5px; letter-spacing:0.16em; text-transform:uppercase; padding:8px 0; }

.site-header{ position:sticky; top:0; z-index:50; background:rgba(250,247,241,0.85); backdrop-filter:blur(14px); border-bottom:1px solid var(--line); transition:transform .35s cubic-bezier(.4,0,.2,1); }
.site-header.header-hidden{ transform:translateY(-100%); }
.nav-wrap{ max-width:var(--maxw); margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:11px 40px; gap:24px; }
.header-right-group{ display:flex; align-items:center; flex-wrap:nowrap; gap:32px; justify-content:flex-end; min-width:0; }
.nav-primary{ display:flex; flex-wrap:nowrap; gap:19px; font-size:10.5px; letter-spacing:0.05em; text-transform:uppercase; min-width:0; }
.nav-primary a{ opacity:0.7; transition:opacity .25s; white-space:nowrap; }
.nav-primary a:hover{ opacity:1; color:var(--bronze); }
.logo-mark{ display:flex; flex-direction:row; align-items:center; gap:9px; line-height:1; max-height:40px; flex-shrink:0; }
.logo-mono{ width:28px; height:28px; border-radius:50%; background:linear-gradient(150deg,#FFFDF9,#EDE4D2 55%,#DACBAA); box-shadow:0 1px 1px rgba(255,255,255,0.9) inset,0 -2px 3px rgba(26,23,20,0.15) inset,0 4px 10px var(--shadow-2); display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-weight:600; font-size:12px; letter-spacing:-1.5px; color:var(--ink); margin-bottom:0; flex-shrink:0; }
.logo-word{ font-family:var(--serif); font-size:19px; letter-spacing:0.1em; font-weight:500; white-space:nowrap; }
.custom-logo-link{ display:flex; align-items:center; max-height:40px; }
.site-header .custom-logo-link img.custom-logo{ max-height:32px !important; width:auto !important; max-width:220px; height:auto; object-fit:contain; display:block; }
.nav-secondary{ display:flex; flex-wrap:nowrap; gap:16px; justify-content:flex-end; align-items:center; font-size:11px; letter-spacing:0.04em; flex-shrink:0; }
.nav-icon-link{ display:flex; align-items:center; justify-content:center; opacity:0.75; transition:opacity .25s; }
.nav-icon-link:hover{ opacity:1; color:var(--bronze); }
.nav-bag-link{ display:flex; align-items:center; gap:6px; opacity:0.85; transition:opacity .25s; }
.nav-bag-link:hover{ opacity:1; color:var(--bronze); }
.cart-count{ background:var(--bronze); color:var(--paper); font-size:9px; border-radius:50%; width:15px; height:15px; display:inline-flex; align-items:center; justify-content:center; }
.nav-secondary a{ display:flex; align-items:center; gap:6px; }
.menu-toggle{ display:none; background:none; border:none; cursor:pointer; font-size:18px; color:var(--ink); line-height:1; }

/* ---------------- Live search overlay ---------------- */
.search-overlay{
	position:fixed; top:0; left:0; right:0; z-index:110;
	background:var(--paper);
	box-shadow:0 20px 50px -20px rgba(26,23,20,0.3);
	transform:translateY(-100%);
	transition:transform .35s cubic-bezier(.2,.8,.2,1);
	max-height:100vh; overflow-y:auto;
}
.search-overlay.is-open{ transform:translateY(0); }
.search-overlay-inner{ max-width:760px; margin:0 auto; padding:60px 24px 40px; }
.search-overlay-form{ display:flex; align-items:center; gap:16px; border-bottom:2px solid var(--ink); padding-bottom:16px; color:var(--ink-soft); }
.search-overlay-form input{
	flex:1; border:none; outline:none; background:transparent;
	font-family:var(--serif); font-size:26px; color:var(--ink);
}
.search-overlay-form input::placeholder{ color:var(--stone); }
.search-overlay-close{ background:none; border:none; font-size:18px; color:var(--stone); cursor:pointer; flex-shrink:0; }
.search-overlay-close:hover{ color:var(--ink); }
.search-overlay-results{ margin-top:28px; }
.search-result-item{ display:flex; align-items:center; gap:16px; padding:14px 0; border-bottom:1px solid var(--line); text-decoration:none; color:inherit; }
.search-result-item .thumb{ width:56px; height:70px; border-radius:4px; overflow:hidden; flex-shrink:0; background:var(--paper-2); }
.search-result-item .thumb img{ width:100%; height:100%; object-fit:cover; }
.search-result-item .info .name{ font-family:var(--serif); font-size:16px; }
.search-result-item .info .price{ font-size:12px; color:var(--bronze); margin-top:2px; }
.search-result-item .info .type-label{ font-size:9px; letter-spacing:0.1em; text-transform:uppercase; color:var(--stone); margin-bottom:2px; display:block; }
.search-overlay-empty{ font-size:13px; color:var(--stone); padding:20px 0; }
.search-overlay-viewall{ display:inline-block; margin-top:20px; font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--bronze); border-bottom:1px solid var(--bronze); padding-bottom:3px; }
body.search-open{ overflow:hidden; }
@media (max-width:600px){
	.search-overlay-inner{ padding:40px 20px 30px; }
	.search-overlay-form input{ font-size:20px; }
}

@media (max-width:1180px){
  .nav-primary{ gap:13px; }
  .nav-primary a{ font-size:10px; }
}

@media (max-width:900px){
  .nav-primary{ display:none; }
  .menu-toggle{ display:block; }
  .nav-wrap{ padding:16px 24px; }
}

/* mobile nav drawer */
.mobile-nav{ position:fixed; inset:0 0 0 auto; width:82%; max-width:340px; background:var(--paper); box-shadow:-20px 0 40px var(--shadow-3); transform:translateX(100%); transition:transform .35s ease; z-index:100; padding:80px 32px 32px; }
.mobile-nav.is-open{ transform:translateX(0); }
.mobile-nav a{ display:block; font-family:var(--serif); font-size:22px; padding:12px 0; border-bottom:1px solid var(--line); }
.mobile-nav-close{ position:absolute; top:24px; right:24px; background:none; border:none; font-size:20px; cursor:pointer; }
.mobile-nav-overlay{ position:fixed; inset:0; background:rgba(26,23,20,0.4); z-index:99; opacity:0; pointer-events:none; transition:opacity .35s ease; }
.mobile-nav-overlay.is-open{ opacity:1; pointer-events:auto; }

/* =========================================================
   4. HERO
   ========================================================= */
.hero{ position:relative; min-height:92vh; display:grid; grid-template-columns:1fr 1fr; align-items:center; border-bottom:1px solid var(--line); padding:0 64px; gap:40px; overflow:hidden; z-index:1; }
.hero-copy .eyebrow{ margin-bottom:22px; display:block; }
.hero-copy h1{ font-size:clamp(46px,5.6vw,78px); line-height:1.02; letter-spacing:-0.01em; max-width:560px; }
.hero-copy h1 em{ font-style:italic; color:var(--bronze); }
.hero-copy p{ font-size:15px; font-weight:300; max-width:380px; margin:26px 0 38px; color:var(--ink-soft); line-height:1.75; }
.btn-row{ display:flex; gap:18px; align-items:center; flex-wrap:wrap; }
.btn{ padding:16px 36px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; border:none; cursor:pointer; font-family:var(--sans); font-weight:500; color:var(--paper); background:linear-gradient(160deg,#2A251F,var(--ink) 55%,#0F0D0B); box-shadow:0 1px 0 rgba(255,255,255,0.08) inset,0 10px 24px -8px var(--shadow-3),0 2px 4px var(--shadow-1); transition:transform .3s ease, box-shadow .3s ease; display:inline-block; }
.btn:hover{ transform:translateY(-2px); box-shadow:0 1px 0 rgba(255,255,255,0.08) inset,0 16px 30px -10px var(--shadow-3); color:var(--paper); }
.btn:active{ transform:translateY(1px) scale(0.99); }
.btn-ghost{ font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-soft); border-bottom:1px solid var(--line); padding-bottom:4px; }

.hero-stage{ position:relative; height:78vh; display:flex; align-items:center; justify-content:center; perspective:1400px; }
.hero-card{ width:78%; aspect-ratio:3/4; border-radius:6px; background:linear-gradient(150deg,#FFFEFB 0%,#F3ECDD 45%,#E4D6BB 100%); box-shadow:0 2px 0 rgba(255,255,255,0.7) inset,0 40px 70px -20px var(--shadow-3),0 16px 30px -12px var(--shadow-2); display:flex; align-items:center; justify-content:center; transform:rotateY(-10deg) rotateX(4deg); transition:transform .15s ease-out; position:relative; overflow:hidden; }
.hero-card::after{ content:''; position:absolute; inset:0; background:linear-gradient(120deg,rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 35%); pointer-events:none; }
.hero-card .plate-label{ font-family:var(--serif); font-style:italic; font-size:15px; color:var(--stone); }
.hero-shadow{ position:absolute; bottom:-6%; width:60%; height:34px; background:radial-gradient(ellipse at center, var(--shadow-3) 0%, transparent 72%); filter:blur(6px); }
.hero-badge{ position:absolute; top:-18px; right:-18px; width:76px; height:76px; border-radius:50%; background:linear-gradient(150deg,#FFFDF9,#E8D9BB 60%,#CBAF7E); box-shadow:0 1px 1px rgba(255,255,255,0.9) inset,0 10px 22px var(--shadow-2); display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-style:italic; font-size:10px; text-align:center; line-height:1.3; color:var(--ink); transform:translateZ(40px); }

@media (max-width:900px){
  .hero{ grid-template-columns:1fr; min-height:auto; padding:60px 24px; }
  .hero-stage{ height:50vh; margin-top:40px; }
}

/* =========================================================
   5. MARQUEE
   ========================================================= */
.marquee{ position:relative; z-index:2; border-bottom:1px solid var(--line); overflow:hidden; white-space:nowrap; padding:16px 0; background:var(--paper-2); }
.marquee span{ display:inline-block; font-family:var(--serif); font-style:italic; font-size:18px; color:var(--ink-soft); margin:0 28px; }
.marquee span::after{ content:'—'; margin-left:28px; color:var(--bronze-light); }

/* =========================================================
   6. SECTION SHELL
   ========================================================= */
.section{ padding:120px 64px; }
.section-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:64px; flex-wrap:wrap; gap:24px; }
.section-head h2{ font-size:44px; margin-top:14px; }
.section-head .desc{ max-width:320px; font-size:13px; color:var(--stone); line-height:1.7; font-weight:300; }
@media (max-width:900px){ .section{ padding:80px 24px; } }

/* =========================================================
   7. CATEGORY 3D CARDS
   ========================================================= */
.cat-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:28px; perspective:1600px; }
@media (max-width:1000px){ .cat-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:520px){ .cat-grid{ grid-template-columns:1fr; } }
.cat-card{ background:linear-gradient(155deg,#FFFEFB,#F1E9D8 60%,#E6DAC2); border-radius:8px; aspect-ratio:3/4; position:relative; padding:26px; display:flex; align-items:flex-end; box-shadow:0 1px 0 rgba(255,255,255,0.7) inset,0 18px 36px -14px var(--shadow-2),0 4px 8px var(--shadow-1); transition:transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s ease; transform-style:preserve-3d; text-decoration:none; }
.cat-card:not(.has-img)::after{
	content:'SB'; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
	font-family:var(--serif); font-weight:600; font-size:64px; letter-spacing:-4px;
	color:rgba(26,23,20,0.08); pointer-events:none; z-index:0;
}
.cat-card.dark:not(.has-img)::after{ color:rgba(250,247,241,0.08); }
.cat-card::before,.cat-card::after{ content:''; position:absolute; inset:0; border-radius:8px; background:inherit; z-index:-1; transition:transform .45s cubic-bezier(.2,.8,.2,1), opacity .45s ease; }
.cat-card::before{ transform:translateZ(-18px) translateY(10px) scale(0.96); opacity:0.55; filter:brightness(0.94); }
.cat-card::after{ transform:translateZ(-34px) translateY(20px) scale(0.92); opacity:0.3; filter:brightness(0.88); }
.cat-card:hover{ transform:translateY(-10px) rotateX(6deg) scale(1.02); box-shadow:0 1px 0 rgba(255,255,255,0.7) inset,0 34px 54px -16px var(--shadow-3); }
.cat-card:hover::before{ transform:translateZ(-26px) translateY(18px) scale(0.97); }
.cat-card:hover::after{ transform:translateZ(-48px) translateY(32px) scale(0.94); }
.cat-card .label{ position:relative; z-index:2; }
.cat-card .label .name{ font-family:var(--serif); font-size:24px; margin-bottom:4px; color:var(--ink); }
.cat-card .label .count{ font-size:10px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-soft); }
.cat-card.dark{ background:linear-gradient(155deg,#2E2A22,#1A1714 60%,#0F0D0B); }
.cat-card.dark .label .name{ color:var(--paper); }
.cat-card.dark .label .count{ color:rgba(250,247,241,0.6); }
.cat-card.has-img::before,
.cat-card.has-img::after{ background:linear-gradient(180deg, rgba(20,17,14,0.05) 0%, rgba(15,13,11,0.4) 100%) !important; }
@media (max-width:900px){ .cat-grid{ grid-template-columns:repeat(2,1fr); } }

/* =========================================================
   8. PRODUCT GRID — TILT CARDS
   ========================================================= */
.prod-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:36px; }
@media (max-width:1000px){ .prod-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:480px){ .prod-grid{ grid-template-columns:1fr; } }
.prod-card{ perspective:1000px; }
.prod-card a{ text-decoration:none; color:inherit; display:block; }
.prod-card .frame{ aspect-ratio:4/5; border-radius:6px; background:linear-gradient(160deg,#FFFEFB,#F2EADA 55%,#E3D5B8); position:relative; overflow:hidden; margin-bottom:18px; box-shadow:0 1px 0 rgba(255,255,255,0.7) inset,0 20px 34px -16px var(--shadow-2); transition:transform .35s ease, box-shadow .35s ease; transform-style:preserve-3d; }
.prod-card .frame img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1; }
.prod-card:hover .frame{ box-shadow:0 1px 0 rgba(255,255,255,0.7) inset,0 30px 48px -16px var(--shadow-3); }
.prod-card .frame .tag{ position:absolute; top:14px; left:14px; font-size:9px; letter-spacing:0.12em; text-transform:uppercase; background:var(--ink); color:var(--paper); padding:5px 10px; border-radius:2px; z-index:3; }
.prod-card .frame .sheen{ position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(115deg,rgba(255,255,255,0) 30%,rgba(255,255,255,0.55) 45%,rgba(255,255,255,0) 60%); transform:translateX(-120%); }
.prod-card:hover .frame .sheen{ animation:sheenSweep 1.1s ease forwards; }
@keyframes sheenSweep{ to{ transform:translateX(120%); } }
.prod-card .p-name{ font-family:var(--serif); font-size:19px; margin-bottom:4px; }
.prod-card .p-meta{ display:flex; justify-content:space-between; font-size:11px; color:var(--stone); }
.prod-card .p-price{ font-size:13px; color:var(--ink); }
.prod-card .p-price del{ color:var(--stone); font-size:11px; margin-right:6px; }
.prod-card .p-price ins{ text-decoration:none; }
.prod-card form.cart{ margin-top:10px; }
.prod-card .add_to_cart_button, .prod-card .button{ font-size:10px; letter-spacing:0.14em; text-transform:uppercase; padding:10px 16px; background:var(--ink); color:var(--paper); border-radius:2px; display:inline-block; }
@media (max-width:900px){ .prod-grid{ grid-template-columns:repeat(2,1fr); } }

/* =========================================================
   9. 3D GARMENT SPOTLIGHT
   ========================================================= */
.spotlight{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:80px; align-items:center; }
.spotlight-stage{ perspective:1200px; display:flex; align-items:center; justify-content:center; height:460px; position:relative; }
.spotlight-shadow{ position:absolute; bottom:4%; width:52%; height:26px; background:radial-gradient(ellipse at center, var(--shadow-3) 0%, transparent 72%); filter:blur(7px); }

.garment3d{ position:relative; width:220px; height:340px; transform-style:preserve-3d; animation:garmentFloat 6s ease-in-out infinite; transition:transform .12s ease-out; }
@keyframes garmentFloat{ 0%,100%{ transform:translateY(0) rotateY(0deg); } 50%{ transform:translateY(-10px) rotateY(6deg); } }
.garment-hanger{ position:absolute; top:0; left:50%; transform:translateX(-50%); width:70px; height:34px; border:3px solid var(--ink-soft); border-bottom:none; border-radius:50% 50% 0 0 / 100% 100% 0 0; opacity:0.55; }
.garment-hanger::after{ content:''; position:absolute; left:50%; top:-14px; width:2px; height:16px; background:var(--ink-soft); transform:translateX(-50%); opacity:0.55; }
.garment-body{ position:absolute; top:36px; left:50%; transform:translateX(-50%); width:186px; height:280px; border-radius:14px 14px 30px 30px; background:linear-gradient(100deg,#DCC79A 0%,#F4ECDA 18%,#C9A868 38%,#F6EFDD 55%,#B9986A 75%,#EFE3C4 100%); box-shadow:0 30px 50px -18px var(--shadow-3), inset -10px 0 20px rgba(26,23,20,0.12), inset 10px 0 20px rgba(255,255,255,0.5); clip-path:polygon(20% 0%, 80% 0%, 100% 14%, 88% 100%, 12% 100%, 0% 14%); }
.garment-collar{ position:absolute; top:36px; left:50%; transform:translateX(-50%); width:80px; height:34px; background:linear-gradient(160deg,#F6EFDD,#D8C296); clip-path:polygon(0% 0%, 100% 0%, 62% 100%, 38% 100%); box-shadow:0 6px 10px rgba(26,23,20,0.1); }
.garment-sleeve{ position:absolute; top:56px; width:44px; height:130px; background:linear-gradient(170deg,#EFE3C4,#C9A868); border-radius:20px 8px 24px 24px; box-shadow:0 14px 20px -10px var(--shadow-2); }
.garment-sleeve.left{ left:14px; transform:rotate(8deg); }
.garment-sleeve.right{ right:14px; transform:rotate(-8deg) scaleX(-1); }
.garment-button{ position:absolute; left:50%; transform:translateX(-50%); width:8px; height:8px; border-radius:50%; background:radial-gradient(circle at 35% 35%, #FFFDF6, #8C6E3E); box-shadow:0 2px 3px rgba(26,23,20,0.3); }
.garment-label{ position:absolute; bottom:-46px; left:50%; transform:translateX(-50%); width:92px; height:56px; border-radius:2px; background:rgba(250,247,241,0.94); box-shadow:0 4px 10px rgba(26,23,20,0.15); display:flex; flex-direction:column; align-items:center; justify-content:center; font-family:var(--serif); text-align:center; color:var(--ink); }
.garment-label .sb{ font-size:15px; letter-spacing:1px; font-weight:600; }
.garment-label .nm{ font-size:7px; letter-spacing:0.14em; text-transform:uppercase; color:var(--stone); margin-top:4px; }

.spotlight-copy h2{ font-size:42px; line-height:1.15; margin-bottom:22px; max-width:480px; }
.spotlight-copy p{ font-size:14px; line-height:1.85; color:var(--ink-soft); font-weight:300; max-width:440px; margin-bottom:28px; }
@media (max-width:900px){ .spotlight{ grid-template-columns:1fr; gap:40px; } }

/* =========================================================
   10. STORY / EMBOSSED PANEL
   ========================================================= */
.story{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:80px; align-items:center; }
.story-visual{ aspect-ratio:4/5; border-radius:10px; background:linear-gradient(165deg,#FFFEFB,#EFE6D2 55%,#DED0B0); box-shadow:0 1px 0 rgba(255,255,255,0.8) inset,0 30px 60px -18px var(--shadow-3); position:relative; display:flex; align-items:center; justify-content:center; }
.story-visual .mono{ font-family:var(--serif); font-weight:600; font-size:130px; letter-spacing:-10px; color:var(--paper); text-shadow:1px 1px 0 rgba(255,255,255,0.9),-1px -1px 1px var(--shadow-2),2px 3px 2px var(--shadow-2),6px 10px 18px var(--shadow-3); }
.story-copy h2{ font-size:42px; line-height:1.15; margin-bottom:26px; max-width:480px; }
.story-copy p{ font-size:14px; line-height:1.85; color:var(--ink-soft); font-weight:300; max-width:460px; margin-bottom:16px; }
.story-stats{ display:flex; gap:56px; margin-top:40px; flex-wrap:wrap; }
.stat .num{ font-family:var(--serif); font-size:36px; color:var(--bronze); }
.stat .lbl{ font-size:10px; letter-spacing:0.12em; text-transform:uppercase; color:var(--stone); margin-top:4px; }
@media (max-width:900px){ .story{ grid-template-columns:1fr; gap:40px; } }

/* =========================================================
   11. TRUST — RAISED PILLS
   ========================================================= */
.trust{ display:grid; grid-template-columns:repeat(4, 1fr); gap:24px; }
@media (max-width:900px){ .trust{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:480px){ .trust{ grid-template-columns:1fr; } }
.trust-item{ background:linear-gradient(160deg,#FFFEFB,#F2EADA); border-radius:10px; padding:38px 30px; text-align:center; box-shadow:0 1px 0 rgba(255,255,255,0.8) inset,0 16px 32px -16px var(--shadow-2); }
.trust-item .glyph{ width:46px; height:46px; border-radius:50%; margin:0 auto 16px; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-style:italic; font-size:18px; color:var(--bronze); background:linear-gradient(150deg,#FFFEFB,#EEE4CE 55%,#DFCEA6); box-shadow:0 1px 1px rgba(255,255,255,0.9) inset,0 -2px 4px rgba(26,23,20,0.12) inset,0 8px 16px var(--shadow-2); }
.trust-item .t{ font-size:12px; letter-spacing:0.06em; text-transform:uppercase; margin-bottom:8px; }
.trust-item .d{ font-size:11px; color:var(--stone); line-height:1.6; font-weight:300; }
@media (max-width:900px){ .trust{ grid-template-columns:1fr 1fr; } }

/* =========================================================
   12. TESTIMONIAL
   ========================================================= */
.testimonial{ text-align:center; max-width:820px; margin:0 auto; padding:130px 64px; }
.testimonial .quote{ font-family:var(--serif); font-style:italic; font-weight:400; font-size:clamp(26px,3vw,38px); line-height:1.4; }
.testimonial .attr{ margin-top:30px; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--stone); }
.stars{ margin-bottom:26px; color:var(--bronze); font-size:14px; letter-spacing:4px; }

/* =========================================================
   13. NEWSLETTER — GLASS PANEL
   ========================================================= */
.newsletter{ margin:0 64px 120px; border-radius:16px; background:linear-gradient(160deg,#241F19,#1A1714 55%,#100E0C); color:var(--paper); padding:100px 64px; text-align:center; box-shadow:0 30px 60px -20px var(--shadow-3); }
.newsletter h2{ font-size:40px; margin:18px 0 14px; }
.newsletter p{ font-size:13px; color:rgba(250,247,241,0.6); font-weight:300; max-width:420px; margin:0 auto 36px; }
.nl-form{ display:flex; max-width:420px; margin:0 auto; border-bottom:1px solid rgba(250,247,241,0.35); padding-bottom:14px; }
.nl-form input{ flex:1; background:transparent; border:none; outline:none; color:var(--paper); font-size:13px; font-family:var(--sans); }
.nl-form input::placeholder{ color:rgba(250,247,241,0.4); }
.nl-form button{ background:none; border:none; color:var(--bronze-light); font-size:11px; letter-spacing:0.16em; text-transform:uppercase; cursor:pointer; }
@media (max-width:900px){ .newsletter{ margin:0 24px 90px; padding:70px 24px; } }

/* =========================================================
   14. FOOTER
   ========================================================= */
.site-footer{ padding:0 64px 40px; }
.foot-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr 1fr; gap:40px; padding-bottom:70px; }
.foot-brand p{ font-size:12px; color:var(--stone); line-height:1.8; max-width:220px; font-weight:300; margin-top:20px; }
.foot-col .eyebrow{ margin-bottom:20px; color:var(--ink); display:block; }
.foot-col a{ display:block; font-size:13px; color:var(--ink-soft); margin-bottom:13px; font-weight:300; }
.foot-col a:hover{ color:var(--bronze); }
.foot-bottom{ border-top:1px solid var(--line); padding-top:26px; display:flex; justify-content:space-between; align-items:center; font-size:11px; color:var(--stone); flex-wrap:wrap; gap:12px; }
@media (max-width:900px){ .foot-grid{ grid-template-columns:1fr 1fr; } .site-footer{ padding:0 24px 40px; } }

/* =========================================================
   14b. HOMEPAGE — FROM THE JOURNAL PREVIEW
   ========================================================= */
.blog-preview-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:36px; }
.blog-preview-card{ display:block; }
.blog-preview-card .thumb{ aspect-ratio:4/3; border-radius:6px; background:linear-gradient(160deg,#FFFEFB,#F2EADA 55%,#E3D5B8); margin-bottom:18px; box-shadow:0 1px 0 rgba(255,255,255,0.7) inset,0 18px 32px -16px var(--shadow-2); overflow:hidden; position:relative; transition:transform .35s ease, box-shadow .35s ease; }
.blog-preview-card .thumb img{ width:100%; height:100%; object-fit:cover; }
.blog-preview-card:hover .thumb{ transform:translateY(-6px); box-shadow:0 1px 0 rgba(255,255,255,0.7) inset,0 26px 44px -16px var(--shadow-3); }
.blog-preview-card .cat{ font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:var(--bronze); margin-bottom:8px; display:block; }
.blog-preview-card h3{ font-size:21px; line-height:1.3; margin-bottom:8px; }
.blog-preview-card .excerpt{ font-size:12.5px; color:var(--ink-soft); font-weight:300; line-height:1.7; }
.blog-preview-card .meta{ font-size:10px; color:var(--stone); margin-top:12px; letter-spacing:0.04em; text-transform:uppercase; }
@media (max-width:900px){ .blog-preview-grid{ grid-template-columns:1fr; } }

/* =========================================================
   14c. HOMEPAGE — INSTAGRAM
   ========================================================= */
.instagram-section{ text-align:center; }
.instagram-section .section-head{ justify-content:center; text-align:center; flex-direction:column; align-items:center; }
.instagram-handle{ font-family:var(--serif); font-size:26px; margin-top:10px; }
.instagram-handle a{ border-bottom:1px solid var(--line); padding-bottom:2px; }
.instagram-handle a:hover{ color:var(--bronze); border-color:var(--bronze); }
.instagram-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:6px; margin-top:44px; }
.instagram-tile{ aspect-ratio:1/1; position:relative; overflow:hidden; background:linear-gradient(155deg,#F1E9D8,#E6DAC2); display:block; }
.instagram-tile img{ width:100%; height:100%; object-fit:cover; }
.instagram-tile .overlay{ position:absolute; inset:0; background:rgba(26,23,20,0.55); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .3s ease; color:var(--paper); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; }
.instagram-tile:hover .overlay{ opacity:1; }
@media (max-width:900px){ .instagram-grid{ grid-template-columns:repeat(3,1fr); } }

/* =========================================================
   9b. SHOP BY OCCASION — EXPANDED CATEGORY GRID
   ========================================================= */
.occasion-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:24px; perspective:1800px; }
@media (max-width:1000px){ .occasion-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:520px){ .occasion-grid{ grid-template-columns:1fr; } }
.occasion-card{ position:relative; aspect-ratio:3/4.4; border-radius:10px; overflow:hidden; padding:28px; display:flex; flex-direction:column; justify-content:flex-end; cursor:pointer; transition:transform .5s cubic-bezier(.2,.8,.2,1), box-shadow .5s ease; box-shadow:0 20px 40px -18px var(--shadow-2); text-decoration:none; color:var(--paper); }
.occasion-card::before{ content:''; position:absolute; inset:0; z-index:0; transition:transform .6s ease; }
.occasion-card:hover{ transform:translateY(-8px) rotateX(4deg); box-shadow:0 34px 60px -18px var(--shadow-3); }
.occasion-card:hover::before{ transform:scale(1.08); }
.occasion-card .num{ position:relative; z-index:2; font-size:10.5px; letter-spacing:0.16em; text-transform:uppercase; color:rgba(250,247,241,0.7); margin-bottom:10px; }
.occasion-card .name{ position:relative; z-index:2; font-family:var(--serif); font-size:27px; }
.occasion-card .sub{ position:relative; z-index:2; font-size:11px; color:rgba(250,247,241,0.65); margin-top:4px; }
.occasion-card.o1::before{ background:linear-gradient(200deg,#3A322A,#1A1714); }
.occasion-card.o2::before{ background:linear-gradient(200deg,#5A4630,#241C14); }
.occasion-card.o3::before{ background:linear-gradient(200deg,#6E2436,#2A1015); }
.occasion-card.o4::before{ background:linear-gradient(200deg,#A9814E,#5E4426); }
.occasion-card.has-img::before{ background:linear-gradient(180deg, rgba(20,17,14,0.15) 0%, rgba(15,13,11,0.75) 100%) !important; }
@media (max-width:900px){ .occasion-grid{ grid-template-columns:1fr 1fr; } }

/* =========================================================
   9c. THE ICONS — 3D ROTATING SHOWCASE
   ========================================================= */
.icons-section{ background:linear-gradient(180deg,var(--paper-2),var(--paper)); }
.icons-rail{ display:grid; grid-template-columns:repeat(4, 1fr); gap:32px; perspective:1400px; }
@media (max-width:1000px){ .icons-rail{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:520px){ .icons-rail{ grid-template-columns:1fr; } }
.icon-item{ text-align:center; }
.icon-stage{ perspective:1000px; height:280px; display:flex; align-items:center; justify-content:center; margin-bottom:20px; }
.icon-plate{ width:82%; aspect-ratio:3/4; border-radius:6px; background:linear-gradient(155deg,#FFFEFB,#F1E9D8 55%,#DACBAA); box-shadow:0 1px 0 rgba(255,255,255,0.7) inset,0 24px 40px -16px var(--shadow-2); display:flex; align-items:center; justify-content:center; position:relative; transform:rotateY(0deg); transition:transform .6s cubic-bezier(.2,.8,.2,1); transform-style:preserve-3d; }
.icon-item:hover .icon-plate{ transform:rotateY(180deg); }
.icon-plate .face{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; backface-visibility:hidden; border-radius:6px; overflow:hidden; }
.icon-plate .face.front img{ width:100%; height:100%; object-fit:cover; border-radius:6px; }
.icon-plate .face.front{ font-family:var(--serif); font-style:italic; color:var(--stone); font-size:14px; }
.icon-plate .face.back{ background:linear-gradient(160deg,#1A1714,#2E2A22); color:var(--paper); transform:rotateY(180deg); font-family:var(--serif); font-size:13px; padding:20px; text-align:center; }
.icon-item .no{ font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:var(--bronze); margin-bottom:8px; }
.icon-item .name{ font-family:var(--serif); font-size:20px; margin-bottom:4px; }
.icon-item .price{ font-size:12px; color:var(--stone); }
@media (max-width:900px){ .icons-rail{ grid-template-columns:1fr 1fr; } }

/* =========================================================
   9d. THE ART OF GIFTING — 3D BOX REVEAL
   ========================================================= */
.gifting{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:80px; align-items:center; }
.gift-stage{ perspective:1200px; display:flex; align-items:center; justify-content:center; height:400px; }
.gift-box{ position:relative; width:200px; height:200px; transform-style:preserve-3d; transition:transform .6s cubic-bezier(.2,.8,.2,1); transform:rotateX(-8deg) rotateY(-20deg); }
.gift-stage:hover .gift-box{ transform:rotateX(-14deg) rotateY(-20deg) translateY(-6px); }
.gift-base{ position:absolute; inset:0; top:40px; background:linear-gradient(155deg,#7A2E28,#4A1A16); border-radius:4px; box-shadow:0 30px 50px -18px var(--shadow-3); }
.gift-base::before{ content:''; position:absolute; top:0; bottom:0; left:50%; width:24px; margin-left:-12px; background:linear-gradient(90deg,#C9A227,#E4C57C,#C9A227); }
.gift-lid{ position:absolute; top:14px; left:-10px; right:-10px; height:56px; background:linear-gradient(155deg,#8C382F,#5A211C); border-radius:4px; box-shadow:0 14px 24px -10px var(--shadow-3); transform-origin:top center; transition:transform .6s cubic-bezier(.2,.8,.2,1); }
.gift-stage:hover .gift-lid{ transform:rotateX(-55deg) translateY(-10px); }
.gift-lid::before{ content:''; position:absolute; top:0; bottom:0; left:50%; width:30px; margin-left:-15px; background:linear-gradient(90deg,#C9A227,#E4C57C,#C9A227); }
.gift-bow{ position:absolute; top:-22px; left:50%; transform:translateX(-50%); width:40px; height:40px; }
.gift-bow::before, .gift-bow::after{ content:''; position:absolute; width:22px; height:22px; border-radius:50% 50% 50% 0; background:linear-gradient(135deg,#E4C57C,#C9A227); top:0; }
.gift-bow::before{ left:-6px; transform:rotate(45deg); }
.gift-bow::after{ right:-6px; transform:rotate(-45deg) scaleX(-1); }
.gift-shadow{ position:absolute; bottom:-8%; width:60%; height:26px; background:radial-gradient(ellipse at center, var(--shadow-3) 0%, transparent 72%); filter:blur(6px); left:20%; }
.gifting-copy h2{ font-size:42px; line-height:1.15; margin-bottom:22px; max-width:480px; }
.gifting-copy p{ font-size:14px; line-height:1.85; color:var(--ink-soft); font-weight:300; max-width:440px; margin-bottom:28px; }
@media (max-width:900px){ .gifting{ grid-template-columns:1fr; gap:40px; } }

/* =========================================================
   9e. CAMPAIGN BANNER — PARALLAX
   ========================================================= */
.campaign-banner{ position:relative; min-height:70vh; overflow:hidden; display:flex; align-items:center; justify-content:center; background:linear-gradient(160deg,#1A1714,#100E0C); width:100%; text-align:center; }
.campaign-layer{ position:absolute; inset:0; will-change:transform; transition:transform .2s ease-out; }
.campaign-layer.l1{ background:radial-gradient(circle at 30% 40%, rgba(169,129,78,0.18), transparent 60%); }
.campaign-layer.l2{ background:radial-gradient(circle at 75% 65%, rgba(212,182,134,0.12), transparent 55%); }
.campaign-mono{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-family:var(--serif); font-size:min(40vw,520px); color:rgba(250,247,241,0.04); letter-spacing:-0.04em; line-height:1; pointer-events:none; white-space:nowrap; }
.campaign-content{ position:relative; z-index:3; text-align:center; color:var(--paper); max-width:600px; margin:0 auto; padding:0 24px; display:flex; flex-direction:column; align-items:center; }
.campaign-content .eyebrow{ color:var(--bronze-light); display:block; }
.campaign-content h2{ font-size:clamp(36px,5vw,64px); margin:18px 0 20px; font-style:italic; text-align:center; }
.campaign-content p{ font-size:14px; color:rgba(250,247,241,0.65); max-width:440px; margin:0 auto 32px; font-weight:300; text-align:center; }

/* =========================================================
   17b. CHECKOUT
   ========================================================= */
.woocommerce-checkout .col2-set,
.woocommerce-checkout #customer_details{ max-width:1100px; margin:0 auto; padding:0 24px; display:grid; grid-template-columns:1fr 1fr; gap:60px; }
.woocommerce-checkout .col-1, .woocommerce-checkout .col-2{ width:100%; }
.woocommerce-checkout h3{ font-family:var(--serif); font-size:22px; margin-bottom:22px; font-weight:400; }
.woocommerce-checkout .form-row{ margin-bottom:18px; }
.woocommerce-checkout .form-row label{ display:block; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:8px; }
.woocommerce-checkout .form-row .required{ color:var(--bronze); }
.woocommerce-checkout input.input-text,
.woocommerce-checkout select,
.woocommerce-checkout textarea{ width:100%; padding:14px 16px; border:1px solid var(--line); border-radius:4px; background:var(--paper-2); font-size:14px; font-family:var(--sans); }
.woocommerce-checkout .select2-container .select2-selection--single{ height:auto; padding:14px 16px; border:1px solid var(--line); border-radius:4px; background:var(--paper-2); }
.woocommerce-checkout #order_review_heading{ font-family:var(--serif); font-size:22px; margin:50px 0 22px; font-weight:400; max-width:1100px; margin-left:auto; margin-right:auto; padding:0 24px; }
.woocommerce-checkout #order_review{ max-width:1100px; margin:0 auto 100px; padding:0 24px; }
.woocommerce-checkout table.shop_table{ background:linear-gradient(160deg,#FFFEFB,#F2EADA); border-radius:10px; overflow:hidden; box-shadow:0 1px 0 rgba(255,255,255,0.8) inset,0 16px 32px -16px var(--shadow-2); }
.woocommerce-checkout table.shop_table th, .woocommerce-checkout table.shop_table td{ padding:16px 20px; }
.woocommerce-checkout .woocommerce-checkout-payment{ background:var(--paper-2); border-radius:10px; padding:6px; margin-top:24px; }
.woocommerce-checkout ul.wc_payment_methods{ list-style:none; margin:0; padding:0; }
.woocommerce-checkout ul.payment_methods li{ padding:16px 20px; border-bottom:1px solid var(--line); font-size:13px; }
.woocommerce-checkout ul.payment_methods li:last-child{ border-bottom:none; }
.woocommerce-checkout .payment_box{ background:var(--paper); border-radius:6px; padding:16px; margin-top:12px; font-size:12.5px; color:var(--ink-soft); }
.woocommerce-checkout #place_order{ width:100%; padding:18px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; background:linear-gradient(160deg,#2A251F,var(--ink) 55%,#0F0D0B); color:var(--paper); border:none; border-radius:4px; cursor:pointer; margin-top:20px; box-shadow:0 10px 24px -8px var(--shadow-3); }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper{ font-size:12px; color:var(--stone); margin:16px 0; }
.woocommerce-checkout .woocommerce-NoticeGroup{ max-width:1100px; margin:0 auto 24px; padding:0 24px; }
@media (max-width:800px){
  .woocommerce-checkout .col2-set, .woocommerce-checkout #customer_details{ grid-template-columns:1fr; gap:0; }
}

/* =========================================================
   17c. WOOCOMMERCE — ALL BUTTONS (overrides default WC purple)
   ========================================================= */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .single_add_to_cart_button,
.woocommerce .checkout-button,
.woocommerce .wc-forward,
.woocommerce .added_to_cart{
	background:linear-gradient(160deg,#2A251F,var(--ink) 55%,#0F0D0B) !important;
	color:var(--paper) !important;
	border:none !important;
	border-radius:4px !important;
	font-family:var(--sans) !important;
	font-size:11px !important;
	letter-spacing:0.14em !important;
	text-transform:uppercase !important;
	padding:15px 28px !important;
	box-shadow:0 1px 0 rgba(255,255,255,0.08) inset, 0 10px 22px -8px var(--shadow-3) !important;
	transition:transform .25s ease, box-shadow .25s ease, background .25s ease !important;
	cursor:pointer;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce .checkout-button:hover,
.woocommerce .wc-forward:hover{
	background:var(--bronze) !important;
	color:var(--paper) !important;
	transform:translateY(-2px);
	box-shadow:0 16px 28px -10px var(--shadow-3) !important;
}
.woocommerce a.button.disabled,
.woocommerce button.button.disabled,
.woocommerce button.button:disabled,
.woocommerce .single_add_to_cart_button.disabled,
.woocommerce .single_add_to_cart_button.wc-variation-selection-needed{
	background:#DED3BC !important;
	color:#948C7C !important;
	cursor:not-allowed;
	opacity:1 !important;
	transform:none !important;
	box-shadow:none !important;
}
.woocommerce a.added_to_cart{ margin-left:12px; font-size:10px !important; padding:10px 16px !important; }

/* =========================================================
   17d. WOOCOMMERCE — SINGLE PRODUCT FORM (variations, quantity)
   ========================================================= */
.woocommerce div.product form.cart{ margin-top:24px; }
.woocommerce div.product form.cart .variations{ width:100%; margin-bottom:20px; border-collapse:collapse; }
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th{ padding:10px 0; vertical-align:middle; }
.woocommerce div.product form.cart .variations label{ font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); font-weight:600; }
.woocommerce div.product form.cart .variations select{
	width:100%; max-width:320px; padding:14px 16px; border:1px solid var(--line); border-radius:4px;
	background:var(--paper-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23948C7C' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") no-repeat right 16px center;
	appearance:none; -webkit-appearance:none; font-size:14px; font-family:var(--sans); cursor:pointer;
}
.woocommerce div.product form.cart .reset_variations{ font-size:11px; color:var(--stone); margin-left:10px; }
.woocommerce div.product .woocommerce-variation-price .price{ font-family:var(--serif); font-size:22px; color:var(--bronze); }
.woocommerce div.product .woocommerce-variation-availability{ font-size:12px; margin-top:6px; }
.woocommerce div.product form.cart div.quantity{ float:none; display:inline-block; margin-right:16px; vertical-align:middle; }
.woocommerce div.product form.cart .quantity input.qty{ width:64px; padding:15px 10px; }
.woocommerce div.product p.stock{ font-size:12px; color:var(--stone); margin:12px 0; }
.woocommerce div.product p.in-stock{ color:#3A6B4A; }
.shanzay-size-guide-link{ display:inline-flex; align-items:center; gap:6px; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--bronze); border-bottom:1px solid var(--bronze); padding-bottom:2px; margin:14px 0; }
.shanzay-size-guide-link:hover{ color:var(--ink); border-color:var(--ink); }

/* =========================================================
   17f. SINGLE PRODUCT — COHESIVE PURCHASE PANEL
   Wraps variations/quantity/add-to-cart/size-guide into one card
   ========================================================= */
.purchase-panel{
	background:linear-gradient(160deg,#FFFEFB,#F2EADA);
	border-radius:12px;
	padding:32px;
	margin:24px 0;
	box-shadow:0 1px 0 rgba(255,255,255,0.8) inset, 0 20px 40px -18px var(--shadow-2);
}
.purchase-panel .shanzay-size-guide-link{
	display:flex; width:fit-content; align-items:center; gap:6px;
	background:var(--paper); border:1px solid var(--line);
	border-radius:20px; padding:8px 16px 8px 12px; margin:0 0 20px !important;
	font-size:10.5px; letter-spacing:0.1em;
	order:-1;
	transition:background .25s ease, border-color .25s ease;
}
.purchase-panel .shanzay-size-guide-link:hover{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.purchase-panel .ruler-icon{ font-size:13px; line-height:1; filter:grayscale(1) contrast(1.4); }
.purchase-panel table.variations{ margin-bottom:0 !important; }
.purchase-panel .single_variation_wrap{ margin-top:16px; }
.purchase-panel .woocommerce-variation-add-to-cart{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-top:18px !important; }
.purchase-panel div.quantity{ order:1; }
.purchase-panel .single_add_to_cart_button{ order:2; flex:1; min-width:160px; text-align:center; }
.purchase-panel p.stock{ margin:16px 0 0 !important; padding-top:16px; border-top:1px solid var(--line); }
@media (max-width:600px){
	.purchase-panel{ padding:24px 20px; }
	.purchase-panel .woocommerce-variation-add-to-cart{ flex-direction:column; align-items:stretch; }
	.purchase-panel div.quantity{ width:100%; }
	.purchase-panel div.quantity input.qty{ width:100%; }
	.purchase-panel .single_add_to_cart_button{ width:100%; }
}

/* =========================================================
   17e. WOOCOMMERCE — PRODUCT LOOPS (related, upsells, shop archive)
   Applies our card treatment to WooCommerce's own default markup,
   used for Related Products / Upsells / category & shop archives.
   ========================================================= */
.woocommerce ul.products{ display:grid !important; grid-template-columns:repeat(4, 1fr) !important; gap:36px !important; list-style:none; padding:0 64px 100px; margin:0; }
.woocommerce ul.products li.product{ list-style:none; width:100% !important; margin:0 !important; float:none !important; }
.woocommerce ul.products li.product a{ text-decoration:none; color:inherit; display:block; }
.woocommerce ul.products li.product .woocommerce-loop-product__link{ display:block; }
.woocommerce ul.products li.product img{
	width:100% !important; height:auto !important; aspect-ratio:4/5; object-fit:cover;
	border-radius:6px; box-shadow:0 1px 0 rgba(255,255,255,0.7) inset,0 20px 34px -16px var(--shadow-2);
	margin-bottom:16px; display:block;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{ font-family:var(--serif); font-size:19px; font-weight:400; margin:0 0 6px; }
.woocommerce ul.products li.product .price{ font-size:13px; color:var(--ink); }
.woocommerce ul.products li.product .price del{ color:var(--stone); font-size:11px; margin-right:6px; }
.woocommerce ul.products li.product .price ins{ text-decoration:none; }
.woocommerce ul.products li.product .star-rating{ font-size:12px; margin-bottom:6px; }
.woocommerce ul.products li.product .button{ margin-top:12px; }
.woocommerce span.onsale{ position:absolute; top:14px; left:14px; font-size:9px !important; letter-spacing:0.12em; text-transform:uppercase; background:var(--ink); color:var(--paper); padding:5px 10px; border-radius:2px; min-height:0; min-width:0; line-height:1; z-index:3; }
.woocommerce ul.products li.product{ position:relative; }
.related.products, .upsells.products{ max-width:var(--maxw); margin:0 auto; padding:60px 0; grid-column:1 / -1; width:100%; clear:both; }
.related.products ul.products, .upsells.products ul.products{ max-width:none; margin:0; }
/* Neutralize any leftover WooCommerce core layout assumptions (float/width
   reserved for a theme sidebar this theme doesn't use) so content never
   gets squeezed into a partial-width column with an empty gap beside it. */
.woocommerce-page .content-area,
.woocommerce-page #primary,
.woocommerce-page .site-main,
.woocommerce.columns-4{ width:100% !important; float:none !important; max-width:none; }
.woocommerce ul.products{ max-width:var(--maxw); margin:0 auto; }

.shop-loop-meta{
	max-width:var(--maxw); margin:0 auto; padding:0 64px 30px;
	display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;
}
.shop-loop-meta .woocommerce-result-count{ font-size:12px; color:var(--stone); margin:0; }
.shop-loop-meta .woocommerce-ordering{ margin:0; }
.shop-loop-meta .woocommerce-ordering select{
	padding:10px 36px 10px 16px; border:1px solid var(--line); border-radius:4px;
	background:var(--paper-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23948C7C' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") no-repeat right 14px center;
	appearance:none; -webkit-appearance:none; font-size:12px; font-family:var(--sans); cursor:pointer; min-width:180px;
}
.woo-page-header + .shop-loop-meta{ margin-top:0; }
@media (max-width:900px){ .shop-loop-meta{ padding:0 24px 24px; } }
.related.products > h2, .upsells.products > h2{ font-family:var(--serif); font-weight:400; font-size:30px; padding:0 64px; margin-bottom:36px; }
@media (max-width:900px){
  .woocommerce ul.products{ grid-template-columns:repeat(2, 1fr) !important; padding:0 24px 60px; gap:20px; }
  .related.products > h2, .upsells.products > h2{ padding:0 24px; font-size:24px; }
}

/* =========================================================
   18. SIZE GUIDE
   ========================================================= */
.size-guide-hero{ text-align:center; padding:100px 64px 50px; }
.size-guide-hero h1{ font-size:50px; margin-top:14px; }
.size-guide-hero p{ font-size:14px; color:var(--stone); max-width:520px; margin:18px auto 0; font-weight:300; }

.size-tabs{ display:flex; justify-content:center; gap:8px; flex-wrap:wrap; padding:0 24px 50px; }
.size-tab{ padding:12px 26px; font-size:11px; letter-spacing:0.12em; text-transform:uppercase; border:1px solid var(--line); border-radius:30px; cursor:pointer; background:var(--paper); transition:all .25s ease; }
.size-tab.active, .size-tab:hover{ background:var(--ink); color:var(--paper); border-color:var(--ink); }

.unit-toggle{ display:flex; justify-content:center; gap:0; margin-bottom:40px; }
.unit-toggle button{ padding:8px 20px; font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; border:1px solid var(--line); background:var(--paper); cursor:pointer; }
.unit-toggle button:first-child{ border-radius:20px 0 0 20px; }
.unit-toggle button:last-child{ border-radius:0 20px 20px 0; }
.unit-toggle button.active{ background:var(--bronze); color:var(--paper); border-color:var(--bronze); }

.size-panel{ display:none; max-width:1000px; margin:0 auto; padding:0 24px 60px; }
.size-panel.active{ display:block; }
.size-table-wrap{ overflow-x:auto; border-radius:10px; box-shadow:0 1px 0 rgba(255,255,255,0.8) inset,0 16px 32px -16px var(--shadow-2); background:linear-gradient(160deg,#FFFEFB,#F2EADA); }
table.size-table{ width:100%; border-collapse:collapse; min-width:600px; }
table.size-table th{ text-align:center; font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--paper); background:var(--ink); padding:16px 12px; }
table.size-table th:first-child{ border-radius:10px 0 0 0; text-align:left; padding-left:24px; }
table.size-table th:last-child{ border-radius:0 10px 0 0; }
table.size-table td{ text-align:center; font-size:13px; padding:14px 12px; border-bottom:1px solid var(--line); }
table.size-table td:first-child{ text-align:left; padding-left:24px; font-family:var(--serif); font-size:16px; color:var(--bronze); }
table.size-table tr:last-child td{ border-bottom:none; }
table.size-table tr:hover td{ background:rgba(169,129,78,0.06); }

.measure-guide{ max-width:900px; margin:60px auto 0; padding:0 24px; }
.measure-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:30px; }
.measure-item{ background:linear-gradient(160deg,#FFFEFB,#F2EADA); border-radius:10px; padding:30px; box-shadow:0 1px 0 rgba(255,255,255,0.8) inset,0 14px 28px -16px var(--shadow-2); }
.measure-item .num{ font-family:var(--serif); font-size:30px; color:var(--bronze); margin-bottom:12px; }
.measure-item h4{ font-family:var(--serif); font-size:19px; margin-bottom:8px; }
.measure-item p{ font-size:12.5px; color:var(--ink-soft); line-height:1.7; font-weight:300; }
.size-note{ max-width:900px; margin:50px auto 100px; padding:24px 30px; background:var(--paper-2); border-radius:8px; font-size:13px; color:var(--ink-soft); text-align:center; }
@media (max-width:900px){ .measure-grid{ grid-template-columns:1fr; } }

/* =========================================================
   19. GENERIC CONTENT PAGE (FAQ / Shipping / Returns / Legal)
   ========================================================= */
.content-page-hero{ text-align:center; padding:90px 64px 50px; border-bottom:1px solid var(--line); }
.content-page-hero h1{ font-size:46px; margin-top:12px; }
.content-page-body{ max-width:760px; margin:0 auto; padding:70px 24px 110px; }
.content-page-body h2{ font-size:26px; margin:44px 0 16px; }
.content-page-body h2:first-child{ margin-top:0; }
.content-page-body p{ font-size:15px; line-height:1.85; color:var(--ink-soft); font-weight:300; margin-bottom:18px; }
.content-page-body ul{ margin:0 0 20px; padding-left:22px; list-style:disc; }
.content-page-body li{ font-size:14.5px; line-height:1.8; color:var(--ink-soft); font-weight:300; margin-bottom:8px; }

.faq-list{ max-width:760px; margin:0 auto; padding:70px 24px 110px; }
.faq-item{ border-bottom:1px solid var(--line); padding:26px 0; }
.faq-item summary{ font-family:var(--serif); font-size:19px; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:'+'; font-size:22px; color:var(--bronze); transition:transform .3s ease; }
.faq-item[open] summary::after{ transform:rotate(45deg); }
.faq-item .faq-answer{ font-size:14px; color:var(--ink-soft); line-height:1.8; font-weight:300; margin-top:14px; max-width:640px; }

.contact-wrap{ max-width:1000px; margin:0 auto; padding:80px 24px 110px; display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.contact-panel{ background:var(--paper); padding:50px; }
.contact-panel h2{ font-size:24px; margin-bottom:24px; }
.contact-panel .form-row{ margin-bottom:18px; }
.contact-panel label{ display:block; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:8px; }
.contact-panel input, .contact-panel textarea{ width:100%; padding:14px 16px; border:1px solid var(--line); border-radius:4px; background:var(--paper-2); font-size:14px; font-family:var(--sans); }
.contact-info-panel{ background:linear-gradient(160deg,#241F19,#1A1714); color:var(--paper); padding:50px; }
.contact-info-panel h3{ font-family:var(--serif); font-size:22px; margin-bottom:20px; }
.contact-info-item{ margin-bottom:24px; }
.contact-info-item .lbl{ font-size:10px; letter-spacing:0.14em; text-transform:uppercase; color:var(--bronze-light); margin-bottom:6px; }
.contact-info-item .val{ font-size:14px; color:rgba(250,247,241,0.85); }
@media (max-width:800px){ .contact-wrap{ grid-template-columns:1fr; } }

/* =========================================================
   15. BLOG / JOURNAL
   ========================================================= */
.blog-header{ padding:100px 64px 60px; text-align:center; border-bottom:1px solid var(--line); }
.blog-header h1{ font-size:52px; margin-top:14px; }
.blog-header p{ font-size:14px; color:var(--stone); max-width:480px; margin:18px auto 0; font-weight:300; }
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; padding:100px 64px; }
.blog-card{ display:block; }
.blog-card .thumb{ aspect-ratio:4/3; border-radius:6px; background:linear-gradient(160deg,#FFFEFB,#F2EADA 55%,#E3D5B8); margin-bottom:20px; box-shadow:0 1px 0 rgba(255,255,255,0.7) inset,0 18px 32px -16px var(--shadow-2); overflow:hidden; position:relative; }
.blog-card .thumb img{ width:100%; height:100%; object-fit:cover; }
.blog-card .cat{ font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:var(--bronze); margin-bottom:10px; display:block; }
.blog-card h3{ font-size:24px; line-height:1.3; margin-bottom:10px; }
.blog-card .excerpt{ font-size:13px; color:var(--ink-soft); font-weight:300; line-height:1.7; }
.blog-card .meta{ font-size:10.5px; color:var(--stone); margin-top:14px; letter-spacing:0.04em; text-transform:uppercase; }
.pagination{ display:flex; justify-content:center; gap:14px; padding:0 64px 100px; }
.pagination a, .pagination span{ font-size:12px; padding:10px 16px; border:1px solid var(--line); border-radius:4px; }
.pagination .current{ background:var(--ink); color:var(--paper); border-color:var(--ink); }

.single-post{ max-width:760px; margin:0 auto; padding:100px 24px; }
.single-post .cat{ display:block; text-align:center; margin-bottom:16px; }
.single-post h1{ font-size:44px; text-align:center; line-height:1.15; }
.single-post .meta{ text-align:center; font-size:11px; color:var(--stone); margin:20px 0 50px; letter-spacing:0.06em; text-transform:uppercase; }
.single-post .entry-content{ font-size:16px; line-height:1.9; color:var(--ink-soft); font-weight:300; }
.single-post .entry-content h2{ font-size:28px; color:var(--ink); margin:44px 0 18px; }
.single-post .entry-content p{ margin-bottom:22px; }
.single-post .entry-content img{ border-radius:6px; margin:32px 0; box-shadow:0 20px 40px -16px var(--shadow-3); }
@media (max-width:900px){ .blog-grid{ grid-template-columns:1fr; padding:60px 24px; } .blog-header{ padding:70px 24px 40px; } }

/* =========================================================
   16. WOOCOMMERCE: ACCOUNT / LOGIN / REGISTER / CART
   ========================================================= */
.woo-auth-wrap{ max-width:920px; margin:0 auto; padding:100px 24px; display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.woo-auth-panel{ background:var(--paper); padding:56px 48px; }
.woo-auth-panel h2{ font-size:28px; margin-bottom:8px; }
.woo-auth-panel .sub{ font-size:12px; color:var(--stone); margin-bottom:32px; display:block; }
.woocommerce form.login p, .woocommerce form.register p{ margin-bottom:18px; }
.woocommerce form.login label, .woocommerce form.register label{ display:block; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:8px; }
.woocommerce form.login input.input-text, .woocommerce form.register input.input-text{ width:100%; padding:14px 16px; border:1px solid var(--line); border-radius:4px; background:var(--paper-2); font-size:14px; }
.woocommerce form.login .button, .woocommerce form.register .button{ width:100%; margin-top:10px; text-align:center; }
.woocommerce form .form-row .required{ color:var(--bronze); }
.woocommerce-LostPassword{ font-size:12px; margin-top:16px; display:block; color:var(--stone); }
.woocommerce-privacy-policy-text{ font-size:11px; color:var(--stone); margin-top:14px; }

.woo-page-header{ text-align:center; padding:80px 64px 40px; }
.woo-page-header h1{ font-size:44px; }

.woocommerce-products-header, .archive.tax-product_cat h1.page-title, .archive.tax-product_cat .term-description{ text-align:center; }
h1.page-title{ font-family:var(--serif); font-weight:400; font-size:44px; margin:80px auto 20px; max-width:800px; padding:0 24px; color:var(--ink); }
.term-description{ font-size:14px; line-height:1.85; color:var(--ink-soft); font-weight:300; max-width:800px; margin:0 auto 50px; padding:0 24px 40px; border-bottom:1px solid var(--line); }
.term-description p{ margin-bottom:14px; }
.term-description p:last-child{ margin-bottom:0; }
@media (max-width:600px){
	h1.page-title{ font-size:32px; margin-top:56px; }
	.term-description{ padding:0 20px 30px; }
}

.woocommerce table.shop_table{ width:100%; border-collapse:collapse; margin:0 auto; max-width:1100px; }
.woocommerce table.shop_table th{ text-align:left; font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--stone); padding:16px 12px; border-bottom:1px solid var(--line); }
.woocommerce table.shop_table td{ padding:20px 12px; border-bottom:1px solid var(--line); font-size:13px; }
.woocommerce table.shop_table img{ width:64px; border-radius:4px; }
.woocommerce-cart-form{ max-width:1100px; margin:0 auto; padding:0 24px 100px; }
.cart-collaterals{ max-width:1100px; margin:40px auto 100px; padding:0 24px; }
.cart_totals{ background:linear-gradient(160deg,#FFFEFB,#F2EADA); border-radius:10px; padding:36px; box-shadow:0 1px 0 rgba(255,255,255,0.8) inset,0 16px 32px -16px var(--shadow-2); max-width:420px; margin-left:auto; }
.cart_totals h2{ font-size:22px; margin-bottom:20px; }
.cart_totals table{ width:100%; }
.cart_totals table td, .cart_totals table th{ padding:10px 0; font-size:13px; border-bottom:1px solid var(--line); }
.cart_totals .order-total .amount{ font-family:var(--serif); font-size:20px; color:var(--bronze); }
.wc-proceed-to-checkout .checkout-button{ width:100%; text-align:center; margin-top:20px; }
.cart-cross-sells{ max-width:1100px; margin:20px auto 60px; padding:0 24px; }
.cart-cross-sells .prod-grid{ grid-template-columns:repeat(4, 1fr); }
@media (max-width:900px){ .cart-cross-sells .prod-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:480px){ .cart-cross-sells .prod-grid{ grid-template-columns:1fr; } }
.quantity input.qty{ width:56px; padding:10px; border:1px solid var(--line); border-radius:4px; text-align:center; }
.woocommerce-message, .woocommerce-info, .woocommerce-error{ max-width:1100px; margin:24px auto; padding:16px 20px; border-radius:6px; background:var(--paper-2); font-size:13px; list-style:none; border:1px solid var(--line); }

@media (max-width:800px){
  .woo-auth-wrap{ grid-template-columns:1fr; }
  .woocommerce table.shop_table thead{ display:none; }
  .woocommerce table.shop_table tr{ display:block; margin-bottom:20px; border:1px solid var(--line); border-radius:6px; padding:16px; }
  .woocommerce table.shop_table td{ display:block; border:none; padding:6px 0; }
  .woocommerce table.shop_table td.product-name{ display:flex; gap:14px; align-items:flex-start; }
  .woocommerce table.shop_table img{ width:72px; height:90px; object-fit:cover; flex-shrink:0; }
  .cart_totals{ max-width:none; width:100%; padding:24px 20px; }
  .woocommerce-cart-form, .cart-collaterals, .cart-cross-sells{ padding:0 16px 60px; }
  .woo-page-header{ padding:56px 24px 30px; }
  .woo-page-header h1{ font-size:32px; }
}

/* =========================================================
   17. SINGLE PRODUCT — SUMMARY LAYOUT
   ========================================================= */
.woocommerce div.product{ max-width:var(--maxw); margin:0 auto; padding:60px 64px 100px; display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:flex-start; }
.woocommerce div.product .woocommerce-product-gallery{ width:100% !important; float:none !important; }
.woocommerce div.product .woocommerce-product-gallery img{ border-radius:8px; box-shadow:0 1px 0 rgba(255,255,255,0.7) inset,0 24px 44px -18px var(--shadow-2); }
.woocommerce div.product .summary{ padding-left:0; width:100% !important; float:none !important; }
.woocommerce div.product .summary .price{ font-family:var(--serif); font-size:28px; color:var(--bronze); margin:16px 0; }
.woocommerce div.product .product_title{ font-family:var(--serif); font-weight:400; font-size:34px; margin-bottom:4px; }
@media (max-width:900px){
	.woocommerce div.product{ grid-template-columns:1fr; padding:40px 24px 70px; gap:32px; }
}
