/*
Theme Name: Maison V
Theme URI: https://maisonv.com
Author: Maison V Studio
Author URI: https://maisonv.com
Description: Collectible Arts Reinvented. A dark, gold-accented WooCommerce theme for Maison V, a Dubai design studio producing certified, limited-edition sculpture and decorative art. Requires WooCommerce for cart, checkout and payments.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: maison-v
Tags: e-commerce, one-column, custom-menu, custom-logo, featured-images, dark
*/

:root{
  --ink:#111011;
  --charcoal:#171513;
  --stone:#c9bba0;
  --ivory:#efe8da;
  --brass:#b08d3f;
  --brass-bright:#d4ac5c;
  --clay:#8b5e3c;
  --line: color-mix(in srgb, var(--stone) 18%, transparent);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; overflow-x:hidden;}
body{
  background:var(--ink);
  color:var(--ivory);
  font-family:'Cormorant Garamond', serif;
  font-size:19px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  width:100%;
}
@media (max-width:400px){
  body{font-size:17px;}
}
.display{font-family:'Fraunces', serif;}
.mono{font-family:'IBM Plex Mono', monospace; letter-spacing:0.06em;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
@media (max-width:380px){ .wrap{padding:0 18px;} }
@media (min-width:900px){ .wrap{padding:0 48px;} }

@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important;}
}

/* ---------- NAV ---------- */
header.site-header{
  position:sticky; top:0; z-index:50;
  background:color-mix(in srgb, var(--ink) 86%, transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
nav.main-nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 0; gap:10px; flex-wrap:nowrap;
}
@media (max-width:400px){
  nav.main-nav{padding:14px 0;}
}
.brand{
  font-family:'Fraunces', serif; font-weight:500; font-size:20px;
  letter-spacing:0.12em; color:var(--ivory); white-space:nowrap;
}
@media (max-width:400px){ .brand{font-size:16px; letter-spacing:0.08em;} }
.brand em{font-style:normal; color:var(--brass-bright);}
.brand img{height:34px; width:auto; display:block;}
.navlinks{display:none; gap:34px; font-size:14px; letter-spacing:0.08em; text-transform:uppercase; list-style:none;}
.navlinks li{list-style:none;}
.navlinks a{opacity:0.78; transition:opacity .25s;}
.navlinks a:hover, .navlinks a:focus-visible{opacity:1; color:var(--brass-bright);}
@media (min-width:860px){ .navlinks{display:flex;} }

/* Mobile nav toggle + off-canvas panel (shown < 860px) */
.mobile-menu-toggle{
  display:flex; align-items:center; justify-content:center;
  width:44px; height:44px; background:transparent; border:1px solid var(--line);
  border-radius:2px; cursor:pointer; margin-right:12px; flex-shrink:0;
}
@media (max-width:400px){ .mobile-menu-toggle{width:38px; height:38px; margin-right:8px;} }
@media (min-width:860px){ .mobile-menu-toggle{display:none;} }
.mobile-menu-toggle span{display:block; width:18px; height:1px; background:var(--ivory); position:relative; transition:background .2s;}
.mobile-menu-toggle span::before, .mobile-menu-toggle span::after{
  content:''; position:absolute; left:0; width:18px; height:1px; background:var(--ivory); transition:transform .25s, top .25s, opacity .2s;
}
.mobile-menu-toggle span::before{top:-6px;}
.mobile-menu-toggle span::after{top:6px;}
.mobile-menu-toggle[aria-expanded="true"] span{background:transparent;}
.mobile-menu-toggle[aria-expanded="true"] span::before{top:0; transform:rotate(45deg);}
.mobile-menu-toggle[aria-expanded="true"] span::after{top:0; transform:rotate(-45deg);}

.mobile-nav-panel{
  display:none; flex-direction:column; gap:2px;
  position:fixed; top:0; left:0; right:0; bottom:0; z-index:100;
  background:var(--ink); padding:96px 28px 40px; overflow-y:auto;
}
.mobile-nav-panel.is-open{display:flex;}
@media (min-width:860px){ .mobile-nav-panel{display:none !important;} }
.mobile-nav-panel a{
  font-family:'Fraunces', serif; font-size:1.6rem; font-weight:340; padding:16px 0;
  border-bottom:1px solid var(--line); color:var(--ivory);
}
.mobile-nav-panel a:hover, .mobile-nav-panel a:focus-visible{color:var(--brass-bright);}
.mobile-nav-close{
  position:absolute; top:22px; right:24px; width:44px; height:44px;
  background:transparent; border:1px solid var(--line); border-radius:2px; color:var(--ivory);
  font-size:20px; cursor:pointer; display:flex; align-items:center; justify-content:center;
}
body.mv-nav-open{overflow:hidden;}
.nav-cta{
  font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.08em;
  border:1px solid var(--brass); color:var(--brass-bright);
  padding:9px 16px; border-radius:2px; text-transform:uppercase;
  transition:background .25s, color .25s; white-space:nowrap; flex-shrink:0;
}
@media (max-width:400px){ .nav-cta{padding:8px 11px; font-size:10.5px;} }
.nav-cta:hover, .nav-cta:focus-visible{background:var(--brass); color:var(--ink);}
.nav-cart-count{font-size:11px; opacity:0.8; margin-left:4px;}

/* ---------- HERO ---------- */
.hero{
  position:relative; overflow:hidden;
  padding:96px 0 84px;
  background:
    radial-gradient(ellipse 60% 50% at 50% 0%, color-mix(in srgb, var(--brass) 14%, transparent), transparent 60%),
    var(--ink);
  border-bottom:1px solid var(--line);
}
#heroCanvas{
  position:absolute; inset:0; width:100%; height:100%;
  opacity:0.85; pointer-events:none;
  mask-image:linear-gradient(180deg, black 40%, transparent 92%);
  -webkit-mask-image:linear-gradient(180deg, black 40%, transparent 92%);
}
.hero-content{position:relative; z-index:2;}
.eyebrow{
  font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.2em;
  text-transform:uppercase; color:var(--brass-bright); opacity:0.9;
  display:flex; align-items:center; gap:12px; margin-bottom:28px;
}
.eyebrow::before{content:''; width:28px; height:1px; background:var(--brass);}
.hero h1{
  font-weight:340; font-size:clamp(2.4rem, 6.4vw, 4.6rem);
  line-height:1.05; letter-spacing:-0.01em; max-width:14ch;
  color:var(--ivory);
}
.hero h1 .accent{ font-style:italic; color:var(--brass-bright); font-weight:300;}
.hero-sub{
  margin-top:26px; max-width:52ch; font-size:1.28rem; color:color-mix(in srgb, var(--ivory) 78%, transparent);
  font-weight:400;
}
.hero-ctas{display:flex; flex-wrap:wrap; gap:16px; margin-top:40px;}
.btn-primary{
  background:var(--brass-bright); color:var(--ink);
  font-family:'IBM Plex Mono', monospace; font-size:13px; letter-spacing:0.06em;
  text-transform:uppercase; padding:15px 26px; border-radius:2px; border:none; cursor:pointer;
  transition:transform .25s, background .25s; display:inline-block;
}
.btn-primary:hover, .btn-primary:focus-visible{background:#e8c37a; transform:translateY(-1px);}
.btn-ghost{
  border:1px solid color-mix(in srgb, var(--ivory) 35%, transparent); color:var(--ivory); background:transparent;
  font-family:'IBM Plex Mono', monospace; font-size:13px; letter-spacing:0.06em;
  text-transform:uppercase; padding:15px 26px; border-radius:2px; cursor:pointer;
  transition:border-color .25s, color .25s; display:inline-block;
}
.btn-ghost:hover, .btn-ghost:focus-visible{border-color:var(--brass-bright); color:var(--brass-bright);}

.hero-stats{
  margin-top:72px; display:grid; grid-template-columns:repeat(2,1fr); gap:28px;
  border-top:1px solid var(--line); padding-top:28px;
}
@media (max-width:400px){ .hero-stats{margin-top:48px; gap:18px 16px; padding-top:20px;} }
@media (min-width:700px){ .hero-stats{grid-template-columns:repeat(4,1fr);} }
.stat .num{font-family:'Fraunces', serif; font-size:1.9rem; color:var(--brass-bright); font-weight:400;}
@media (max-width:400px){ .stat .num{font-size:1.5rem;} }
.stat .lbl{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:color-mix(in srgb, var(--ivory) 60%, transparent); margin-top:4px;}

/* ---------- MANIFESTO ---------- */
.manifesto{padding:88px 0; border-bottom:1px solid var(--line);}
.manifesto p{
  font-family:'Fraunces', serif; font-weight:340; font-style:italic;
  font-size:clamp(1.5rem, 3.2vw, 2.15rem); line-height:1.5; color:var(--stone);
  max-width:26ch;
}
.manifesto p span{color:var(--ivory); font-style:normal;}

/* ---------- FEATURED (full-bleed spotlight) ---------- */
.featured{position:relative; border-bottom:1px solid var(--line); overflow:hidden;}
.featured-media{position:relative; height:78vh; min-height:560px; max-height:820px; overflow:hidden;}
.featured-media img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 30%;
  animation:featkb 22s ease-in-out infinite alternate;
}
@keyframes featkb{ 0%{transform:scale(1.02);} 100%{transform:scale(1.12) translate(-1.5%, -1%);} }
@media (prefers-reduced-motion: reduce){ .featured-media img{animation:none;} }
.featured-scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, color-mix(in srgb, var(--ink) 5%, transparent) 0%, color-mix(in srgb, var(--ink) 15%, transparent) 45%, color-mix(in srgb, var(--ink) 92%, transparent) 92%);
}
.featured-copy{position:absolute; left:0; right:0; bottom:0; padding:44px 28px;}
@media (min-width:900px){ .featured-copy{padding:56px 48px;} }
.featured-eyebrow{display:flex; align-items:center; gap:14px; margin-bottom:16px;}
.featured-eyebrow span{font-family:'IBM Plex Mono', monospace; font-size:11.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--brass-bright);}
.featured-eyebrow::after{content:''; flex:1; height:1px; background:var(--line); max-width:120px;}
.featured h2{font-family:'Fraunces', serif; font-weight:340; font-style:italic; font-size:clamp(2.1rem,5.4vw,3.6rem); color:var(--ivory); max-width:14ch;}
.featured-meta{display:flex; flex-wrap:wrap; gap:26px 40px; margin-top:22px; font-family:'IBM Plex Mono', monospace; font-size:12px; color:color-mix(in srgb, var(--ivory) 72%, transparent);}
.featured-meta div span{display:block; color:color-mix(in srgb, var(--ivory) 45%, transparent); font-size:10px; text-transform:uppercase; letter-spacing:0.08em; margin-bottom:5px;}
.featured-cta{margin-top:28px;}

/* ---------- SECTION HEADERS ---------- */
.sec-head{display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:48px; flex-wrap:wrap;}
.sec-tag{font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.18em; text-transform:uppercase; color:var(--brass-bright);}
.sec-title{font-family:'Fraunces', serif; font-weight:340; font-size:clamp(1.9rem,3.6vw,2.7rem); margin-top:10px;}
.sec-note{max-width:38ch; color:color-mix(in srgb, var(--ivory) 62%, transparent); font-size:1.05rem;}

/* ---------- COLLECTION GRID ---------- */
.collection{padding:96px 0; border-bottom:1px solid var(--line);}
.grid{display:grid; grid-template-columns:1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
@media (min-width:760px){ .grid{grid-template-columns:1fr 1fr;} }
.card{background:var(--charcoal); padding:36px 30px; position:relative; transition:background .3s;}
.card:hover{background:#1c1a17;}
.card-top{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:22px;}
.lot{font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--brass-bright); letter-spacing:0.1em;}
.edition{font-family:'IBM Plex Mono', monospace; font-size:11px; color:color-mix(in srgb, var(--ivory) 45%, transparent);}
.card h3{font-family:'Fraunces', serif; font-weight:420; font-size:1.55rem; margin-bottom:10px;}
.card p{color:color-mix(in srgb, var(--ivory) 66%, transparent); font-size:1rem; max-width:34ch; margin-bottom:22px;}
.card-meta{display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--line); padding-top:18px; gap:14px;}
.price{font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--ivory);}
.price small{display:block; color:color-mix(in srgb, var(--ivory) 45%, transparent); font-size:10px; margin-top:3px; letter-spacing:0.05em;}
.price .amount{color:var(--ivory);}
.reserve{
  font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--brass-bright); border-bottom:1px solid var(--brass); padding-bottom:2px; background:none; border-left:none; border-right:none; border-top:none; cursor:pointer;
  transition:color .2s, border-color .2s; white-space:nowrap;
}
.reserve:hover, .reserve:focus-visible{color:var(--ivory); border-color:var(--ivory);}
.card-visual{
  width:100%; height:220px; margin-bottom:24px; border:1px solid var(--line); position:relative;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
  background:radial-gradient(ellipse at 50% 30%, color-mix(in srgb, var(--brass) 10%, transparent), transparent 70%);
  background-size:cover; background-position:center;
}
.card-visual svg{width:64%; height:64%; opacity:0.9;}
.seal{
  position:absolute; top:26px; right:26px; width:44px; height:44px; opacity:0.92;
  border-radius:50%; overflow:hidden; z-index:2; filter:drop-shadow(0 4px 10px rgba(0,0,0,0.4));
}
.seal img{width:100%; height:100%; object-fit:cover; display:block;}
.empty-note{font-family:'IBM Plex Mono', monospace; font-size:11px; color:color-mix(in srgb, var(--ivory) 40%, transparent); text-align:center; padding:14px 0;}

/* ---------- ARCHIVE CAROUSEL ---------- */
.archive{padding:96px 0; border-bottom:1px solid var(--line);}
.archive-head{display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:40px; flex-wrap:wrap;}
.archive-nav{display:flex; gap:10px;}
.archive-nav button{
  width:44px; height:44px; border:1px solid var(--line); background:transparent; color:var(--ivory);
  border-radius:50%; cursor:pointer; font-size:16px; transition:border-color .2s, color .2s;
  display:flex; align-items:center; justify-content:center;
}
.archive-nav button:hover, .archive-nav button:focus-visible{border-color:var(--brass-bright); color:var(--brass-bright);}
.archive-track{display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; -webkit-overflow-scrolling:touch; scrollbar-width:none;}
.archive-track::-webkit-scrollbar{display:none;}
.archive-slide{scroll-snap-align:start; flex:0 0 auto; width:80vw; max-width:400px; background:var(--charcoal); border:1px solid var(--line);}
@media (min-width:760px){ .archive-slide{width:340px;} }
.archive-img{width:100%; height:280px; background-size:cover; background-position:center;}
.archive-caption{padding:22px 22px 26px;}
.archive-tag{font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--brass-bright); margin-bottom:10px;}
.archive-caption h4{font-family:'Fraunces', serif; font-weight:440; font-style:italic; font-size:1.32rem; margin-bottom:8px;}
.archive-caption p{font-size:0.96rem; color:color-mix(in srgb, var(--ivory) 60%, transparent); margin-bottom:0;}

/* ---------- FINISHES (cinematic strip) ---------- */
.finishes{border-bottom:1px solid var(--line); overflow:hidden; background:var(--charcoal);}
.finishes-head{padding:72px 0 36px;}
.swatch-track{display:flex; gap:2px;}
.swatch{position:relative; flex:0 0 auto; width:78vw; max-width:420px; height:340px; overflow:hidden; background:#1a1815;}
@media (min-width:760px){ .swatch{width:34vw;} }
.swatch-surface{position:absolute; inset:-8%; background-size:cover; background-position:center; animation:kenburns 16s ease-in-out infinite alternate;}
.swatch:nth-child(1) .swatch-surface{background:radial-gradient(circle at 30% 20%, #e8c37a, #8a6b2c 45%, #3a2c10 100%);}
.swatch:nth-child(2) .swatch-surface{background:radial-gradient(circle at 70% 30%, #cfc3ab, #6b5f47 50%, #2a2419 100%);}
.swatch:nth-child(3) .swatch-surface{background:radial-gradient(circle at 40% 70%, #a9b79f, #4c5a44 55%, #1c2318 100%);}
.swatch:nth-child(4) .swatch-surface{background:radial-gradient(circle at 60% 40%, #b98a63, #6b4126 55%, #241608 100%);}
@keyframes kenburns{0%{transform:scale(1) translate(0,0);} 100%{transform:scale(1.14) translate(-2%, 2%);}}
.swatch-label{position:absolute; left:22px; bottom:22px; z-index:2; font-family:'IBM Plex Mono', monospace; font-size:11.5px; letter-spacing:0.08em; text-transform:uppercase; color:#f4efe2; text-shadow:0 2px 12px rgba(0,0,0,0.6);}
.swatch-label small{display:block; opacity:0.7; font-size:10px; margin-top:4px; text-transform:none; letter-spacing:0.02em;}
@media (prefers-reduced-motion: reduce){ .swatch-surface{animation:none;} }

/* ---------- PROCESS ---------- */
.process{padding:96px 0; border-bottom:1px solid var(--line); background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--brass) 4%, transparent));}
.steps{display:grid; grid-template-columns:1fr; gap:0; margin-top:20px;}
@media (min-width:600px) and (max-width:1023px){ .steps{grid-template-columns:1fr 1fr; gap:0 24px;} }
@media (min-width:1024px){ .steps{grid-template-columns:repeat(4,1fr);} }
.step{padding:30px 26px 30px 0; border-top:1px solid var(--line); position:relative;}
@media (min-width:600px) and (max-width:1023px){
  .step{border-top:1px solid var(--line); padding:26px 0;}
  .step:nth-child(1), .step:nth-child(2){border-top:none;}
}
@media (min-width:1024px){ .step{border-top:none; border-left:1px solid var(--line); padding:6px 24px;} .step:first-child{border-left:none; padding-left:0;} }
.step-num{font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--brass-bright); margin-bottom:14px;}
.step h4{font-family:'Fraunces', serif; font-weight:440; font-size:1.28rem; margin-bottom:10px;}
.step p{font-size:0.98rem; color:color-mix(in srgb, var(--ivory) 62%, transparent);}

/* ---------- CERTIFICATE ---------- */
.cert-section{padding:96px 0; border-bottom:1px solid var(--line); display:grid; grid-template-columns:1fr; gap:56px;}
@media (min-width:900px){ .cert-section{grid-template-columns:1fr 1fr; align-items:center;} }
.cert-copy .sec-title{margin-top:10px;}
.cert-copy p{margin-top:20px; color:color-mix(in srgb, var(--ivory) 68%, transparent); max-width:42ch;}
.cert-list{margin-top:28px; display:flex; flex-direction:column; gap:14px;}
.cert-list li{list-style:none; display:flex; gap:14px; align-items:baseline; font-size:1.02rem; color:color-mix(in srgb, var(--ivory) 78%, transparent);}
.cert-list li::before{content:'—'; color:var(--brass-bright);}
.cert-card{background:#faf7ef; color:#1a1815; border-radius:2px; padding:38px 34px; position:relative; max-width:460px; box-shadow:0 30px 80px rgba(0,0,0,0.55); border:1px solid color-mix(in srgb, var(--ink) 10%, transparent);}
@media (max-width:420px){ .cert-card{padding:26px 22px;} }
.cert-card::before{content:''; position:absolute; inset:10px; border:1px solid color-mix(in srgb, var(--ink) 16%, transparent); pointer-events:none;}
@media (max-width:420px){ .cert-card::before{inset:6px;} }
.cert-head{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:24px; gap:10px;}
.cert-brand{font-family:'Fraunces', serif; font-weight:600; letter-spacing:0.1em; font-size:16px; color:#1a1815;}
.cert-brand em{font-style:normal; color:var(--clay);}
.cert-id{font-family:'IBM Plex Mono', monospace; font-size:11px; color:#4a453d; text-align:right; line-height:1.5;}
.cert-title{font-family:'Fraunces', serif; font-weight:500; font-style:italic; font-size:1.75rem; margin-bottom:22px; color:#141210;}
@media (max-width:420px){ .cert-title{font-size:1.4rem; margin-bottom:16px;} }
.cert-rows{display:grid; grid-template-columns:1fr 1fr; gap:18px 20px; font-family:'IBM Plex Mono', monospace; font-size:12.5px;}
@media (max-width:360px){ .cert-rows{grid-template-columns:1fr; gap:14px;} }
.cert-rows .k{color:#6b6357; letter-spacing:0.06em; text-transform:uppercase; margin-bottom:5px; font-size:10.5px; font-weight:500;}
.cert-rows .v{color:#161410; font-weight:500;}
.cert-stamp{margin-top:28px; padding-top:20px; border-top:1px dashed color-mix(in srgb, var(--ink) 30%, transparent); display:flex; justify-content:space-between; align-items:center; gap:16px;}
.cert-stamp .cert-id{color:#5a5347; line-height:1.5;}
.stamp-mark{flex-shrink:0; width:64px; height:64px; border-radius:50%; transform:rotate(-8deg); overflow:hidden; mix-blend-mode:multiply;}
.stamp-mark img{width:100%; height:100%; object-fit:cover; display:block;}

/* ---------- TRADE ---------- */
.trade{padding:96px 0; border-bottom:1px solid var(--line);}
.trade-inner{display:grid; grid-template-columns:1fr; gap:40px; align-items:center; background:var(--charcoal); border:1px solid var(--line); padding:56px 40px;}
@media (min-width:900px){ .trade-inner{grid-template-columns:1.3fr 1fr; padding:64px 56px;} }
.trade h2{font-family:'Fraunces', serif; font-weight:340; font-size:clamp(1.8rem,3.2vw,2.4rem); max-width:16ch;}
.trade p{margin-top:18px; color:color-mix(in srgb, var(--ivory) 66%, transparent); max-width:48ch;}
.trade-perks{margin-top:26px; display:flex; flex-wrap:wrap; gap:10px 28px;}
.trade-perks span{font-family:'IBM Plex Mono', monospace; font-size:11.5px; color:var(--brass-bright); letter-spacing:0.04em;}

/* ---------- BESPOKE ---------- */
.bespoke{padding:96px 0; border-bottom:1px solid var(--line); text-align:center;}
.bespoke h2{font-family:'Fraunces', serif; font-weight:300; font-style:italic; font-size:clamp(2rem,4.6vw,3.2rem); margin:16px auto 20px; max-width:20ch;}
.bespoke p{max-width:46ch; margin:0 auto 34px; color:color-mix(in srgb, var(--ivory) 65%, transparent);}

/* ---------- SIMPLE PAGE CONTENT (Trade / Bespoke / generic pages) ---------- */
.page-content{padding:88px 0; max-width:760px; margin:0 auto;}
.page-content h1{font-family:'Fraunces', serif; font-weight:340; font-size:clamp(2.1rem,4.4vw,3rem); margin-bottom:28px;}
.page-content h2{font-family:'Fraunces', serif; font-weight:420; font-size:1.6rem; margin:34px 0 14px;}
.page-content p{color:color-mix(in srgb, var(--ivory) 75%, transparent); margin-bottom:18px;}
.page-content ul, .page-content ol{margin:0 0 18px 22px; color:color-mix(in srgb, var(--ivory) 75%, transparent);}
.page-content a{color:var(--brass-bright); border-bottom:1px solid var(--brass);}

/* ---------- ENQUIRY FORM ---------- */
.enquiry-form{margin-top:36px; display:grid; gap:18px; max-width:520px;}
.enquiry-form label{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:color-mix(in srgb, var(--ivory) 60%, transparent); display:block; margin-bottom:8px;}
.enquiry-form input, .enquiry-form textarea, .enquiry-form select{
  width:100%; background:var(--charcoal); border:1px solid var(--line); color:var(--ivory);
  padding:13px 14px; font-family:'Cormorant Garamond', serif; font-size:1.05rem; border-radius:2px;
}
.enquiry-form textarea{min-height:120px; resize:vertical;}
.enquiry-form input:focus, .enquiry-form textarea:focus, .enquiry-form select:focus{outline:2px solid var(--brass-bright); outline-offset:2px;}
.form-notice{font-family:'IBM Plex Mono', monospace; font-size:12px; padding:12px 16px; border:1px solid var(--brass); color:var(--brass-bright); margin-bottom:20px;}

/* ---------- FOOTER ---------- */
footer.site-footer{padding:64px 0 40px;}
.foot-top{display:grid; grid-template-columns:1fr; gap:40px; padding-bottom:44px; border-bottom:1px solid var(--line);}
@media (min-width:760px){ .foot-top{grid-template-columns:1.4fr 1fr 1fr;} }
.foot-brand{font-family:'Fraunces', serif; font-size:22px; letter-spacing:0.1em; margin-bottom:14px;}
.foot-brand em{font-style:normal; color:var(--brass-bright);}
.foot-top p{color:color-mix(in srgb, var(--ivory) 55%, transparent); font-size:0.98rem; max-width:36ch;}
.foot-col h5{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--brass-bright); margin-bottom:16px;}
.foot-col ul{list-style:none;}
.foot-col a{display:block; color:color-mix(in srgb, var(--ivory) 70%, transparent); font-size:0.98rem; margin-bottom:10px; transition:color .2s;}
.foot-col a:hover, .foot-col a:focus-visible{color:var(--ivory);}
.foot-bottom{display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; padding-top:24px; font-family:'IBM Plex Mono', monospace; font-size:11px; color:color-mix(in srgb, var(--ivory) 40%, transparent); letter-spacing:0.04em;}

:focus-visible{outline:2px solid var(--brass-bright); outline-offset:3px;}

/* =========================================================
   WOOCOMMERCE — cart, checkout, shop archive, single product
   Targets WooCommerce's default markup/classes so no template
   overrides are required for core functionality to work.
   ========================================================= */
.woocommerce{color:var(--ivory);}
.woocommerce .wrap-inner{padding:88px 0;}

/* Shop / archive product grid */
.woocommerce ul.products{display:grid; grid-template-columns:1fr; gap:1px; background:var(--line); border:1px solid var(--line); list-style:none; margin:0;}
@media (min-width:760px){ .woocommerce ul.products{grid-template-columns:1fr 1fr;} }
.woocommerce ul.products li.product{background:var(--charcoal); padding:30px; list-style:none; position:relative;}
.woocommerce ul.products li.product img{width:100%; height:220px; object-fit:cover; border:1px solid var(--line); margin-bottom:20px;}
.woocommerce ul.products li.product h2, .woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:'Fraunces', serif; font-weight:420; font-size:1.4rem; color:var(--ivory); margin-bottom:8px;
}
.woocommerce ul.products li.product .price{font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--ivory); margin-bottom:16px; display:block;}
.woocommerce ul.products li.product .price del{opacity:0.5; margin-right:8px;}
.woocommerce ul.products li.product .button{
  font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--brass-bright); border:1px solid var(--brass); background:transparent; padding:11px 18px; border-radius:2px;
  transition:background .2s, color .2s;
}
.woocommerce ul.products li.product .button:hover{background:var(--brass-bright); color:var(--ink);}

/* Single product */
.woocommerce div.product{padding:88px 0; display:grid; grid-template-columns:1fr; gap:48px;}
@media (min-width:900px){ .woocommerce div.product{grid-template-columns:1.1fr 1fr;} }
.woocommerce div.product .woocommerce-product-gallery img{width:100%; border:1px solid var(--line);}
.woocommerce div.product .product_title{font-family:'Fraunces', serif; font-weight:340; font-size:clamp(1.9rem,3.6vw,2.7rem); margin-bottom:18px;}
.woocommerce div.product p.price{font-family:'IBM Plex Mono', monospace; font-size:1.1rem; color:var(--brass-bright); margin-bottom:22px; display:block;}
.woocommerce div.product .woocommerce-product-details__short-description{color:color-mix(in srgb, var(--ivory) 72%, transparent); margin-bottom:28px;}
.woocommerce div.product form.cart .button{
  background:var(--brass-bright); color:var(--ink); font-family:'IBM Plex Mono', monospace; font-size:13px;
  letter-spacing:0.06em; text-transform:uppercase; padding:16px 30px; border:none; border-radius:2px; cursor:pointer;
}
.woocommerce div.product form.cart .button:hover{background:#e8c37a;}
.woocommerce div.product .quantity input{background:var(--charcoal); border:1px solid var(--line); color:var(--ivory); padding:14px; width:70px; margin-right:12px;}
.woocommerce-tabs{margin-top:40px; border-top:1px solid var(--line); padding-top:30px;}
.woocommerce-tabs ul.tabs{list-style:none; display:flex; gap:24px; margin-bottom:24px;}
.woocommerce-tabs ul.tabs li a{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:color-mix(in srgb, var(--ivory) 60%, transparent);}
.woocommerce-tabs ul.tabs li.active a{color:var(--brass-bright);}

/* Cart page */
.woocommerce table.shop_table{width:100%; border-collapse:collapse; margin-bottom:32px;}
@media (max-width:640px){
  .woocommerce table.shop_table{display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; white-space:nowrap;}
  .woocommerce table.shop_table thead{display:table-header-group;}
  .woocommerce table.shop_table tbody{display:table-row-group;}
  .woocommerce table.shop_table tr{display:table-row;}
  .woocommerce table.shop_table td, .woocommerce table.shop_table th{display:table-cell; white-space:nowrap;}
}
.woocommerce table.shop_table th{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:color-mix(in srgb, var(--ivory) 50%, transparent); text-align:left; padding:14px 10px; border-bottom:1px solid var(--line);}
.woocommerce table.shop_table td{padding:18px 10px; border-bottom:1px solid var(--line); font-family:'Cormorant Garamond', serif; font-size:1.05rem;}
.woocommerce table.shop_table img{width:64px; border:1px solid var(--line);}
.woocommerce .cart-collaterals .cart_totals{background:var(--charcoal); border:1px solid var(--line); padding:30px; max-width:420px; margin-left:auto;}
@media (max-width:640px){ .woocommerce .cart-collaterals .cart_totals{max-width:100%; margin-left:0; padding:22px;} }
.woocommerce .cart_totals h2{font-family:'Fraunces', serif; font-weight:420; margin-bottom:18px;}
.woocommerce .cart_totals table td, .woocommerce .cart_totals table th{border-bottom:1px solid var(--line); font-family:'IBM Plex Mono', monospace; font-size:12.5px;}
.woocommerce a.checkout-button, .woocommerce #place_order{
  background:var(--brass-bright); color:var(--ink); font-family:'IBM Plex Mono', monospace; font-size:13px;
  letter-spacing:0.06em; text-transform:uppercase; padding:16px 30px; border:none; border-radius:2px; display:inline-block; cursor:pointer;
}
.woocommerce a.checkout-button:hover, .woocommerce #place_order:hover{background:#e8c37a;}
.woocommerce-cart-form input.qty{background:var(--charcoal); border:1px solid var(--line); color:var(--ivory); padding:10px; width:60px;}

/* Checkout page */
.woocommerce-checkout .col2-set{display:grid; grid-template-columns:1fr; gap:0;}
.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2{width:100%; float:none;}
.woocommerce-checkout form.checkout{display:grid; grid-template-columns:1fr; gap:30px;}
@media (min-width:900px){ .woocommerce-checkout form.checkout{grid-template-columns:1.2fr 1fr; align-items:start;} }
.woocommerce-checkout #customer_details{background:var(--charcoal); border:1px solid var(--line); padding:30px; margin-bottom:0;}
@media (max-width:480px){ .woocommerce-checkout #customer_details{padding:20px;} }
.woocommerce form .form-row label{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:color-mix(in srgb, var(--ivory) 60%, transparent);}
.woocommerce form .form-row input.input-text, .woocommerce form .form-row select, .woocommerce form .form-row textarea{
  background:var(--ink); border:1px solid var(--line); color:var(--ivory); padding:12px; width:100%; font-family:'Cormorant Garamond', serif; font-size:1rem;
}
#order_review{background:var(--charcoal); border:1px solid var(--line); padding:30px;}
#order_review_heading{font-family:'Fraunces', serif; font-weight:420; margin-bottom:18px;}

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error{
  background:var(--charcoal); border:1px solid var(--brass); color:var(--ivory); padding:16px 20px; list-style:none;
  font-family:'IBM Plex Mono', monospace; font-size:12.5px; margin-bottom:24px; display:block;
}
.woocommerce-message a.button, .woocommerce-info a.button{
  color:var(--brass-bright); border:1px solid var(--brass); padding:6px 12px; margin-left:12px; border-radius:2px;
}

/* My account */
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;}
.woocommerce-account .woocommerce-MyAccount-navigation a{font-family:'IBM Plex Mono', monospace; font-size:12px; text-transform:uppercase; letter-spacing:0.06em; color:color-mix(in srgb, var(--ivory) 60%, transparent); display:block; padding:10px 0;}
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a{color:var(--brass-bright);}
