/* =========================================================================
   PREM'S COLLECTIONS — Design System
   Concept: "Modern Heritage Couture" — editorial luxury, mihrab arches,
   jaali lattice, gold hairlines. Single light look by design.
   WoodMart mapping: container 1222px · gutter 30px · breakpoints 1024/768/480
   ========================================================================= */

:root {
  /* Color */
  --ivory: #F7F2EA;       /* page ground            → WD: Background color */
  --paper: #FFFCF7;       /* cards, drawers         */
  --sand: #ECE3D4;        /* soft panels            */
  --onyx: #16120E;        /* primary text / dark ui → WD: Primary text   */
  --ink: #4A4037;         /* body copy              */
  --muted: #8C8174;       /* captions, meta         */
  --gold: #A9843F;        /* accent                 → WD: Primary color  */
  --gold-soft: #D8C39C;   /* hairlines on dark      */
  --maroon: #5A1823;      /* bridal accent          → WD: Secondary color*/
  --line: rgba(22, 18, 14, .12);
  --line-strong: rgba(22, 18, 14, .22);
  --success: #3F6B4E;
  --danger: #9B2C2C;
  color-scheme: light;

  /* Type */
  --f-display: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;
  --f-body: "Jost", "Helvetica Neue", Arial, sans-serif;

  --t-hero: clamp(2.9rem, 1.6rem + 5.2vw, 6.4rem);
  --t-h1: clamp(2.3rem, 1.6rem + 2.8vw, 4rem);
  --t-h2: clamp(1.9rem, 1.4rem + 1.9vw, 3rem);
  --t-h3: clamp(1.35rem, 1.15rem + .7vw, 1.75rem);
  --t-body: 1rem;
  --t-small: .875rem;
  --t-label: .6875rem;

  /* Layout */
  --container: 1222px;
  --wide: 1600px;
  --gutter: clamp(16px, 3vw, 30px);
  --section: clamp(64px, 8vw, 128px);
  --header-h: 84px;
  --ease: cubic-bezier(.22, .61, .36, 1);
  --ease-out: cubic-bezier(.16, 1, .3, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--ivory);
  color: var(--ink);
  font-family: var(--f-body);
  font-size: var(--t-body);
  font-weight: 300;
  line-height: 1.7;
  letter-spacing: .01em;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
body.no-scroll { overflow: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; padding: 0; }
input, select, textarea { font: inherit; color: var(--onyx); }
::selection { background: var(--gold-soft); color: var(--onyx); }
:focus-visible { outline: 1px solid var(--gold); outline-offset: 3px; }

h1, h2, h3, h4 { font-family: var(--f-display); font-weight: 400; color: var(--onyx); line-height: 1.08; margin: 0; text-wrap: balance; letter-spacing: -.005em; }
h1 { font-size: var(--t-h1); }
h2 { font-size: var(--t-h2); }
h3 { font-size: var(--t-h3); }
p { margin: 0; }
em, .it { font-style: italic; }
.serif { font-family: var(--f-display); }

/* ---------- Layout primitives ---------- */
.container { width: 100%; max-width: calc(var(--container) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }
.container.wide { max-width: calc(var(--wide) + var(--gutter) * 2); }
.section { padding-block: var(--section); }
.section.tight { padding-block: calc(var(--section) * .6); }
.stack { display: flex; flex-direction: column; gap: 1rem; }
.center { text-align: center; }
.muted { color: var(--muted); }

.eyebrow {
  font-family: var(--f-body); font-size: var(--t-label); font-weight: 500;
  letter-spacing: .28em; text-transform: uppercase; color: var(--gold);
  display: inline-flex; align-items: center; gap: .9em;
}
.eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; opacity: .7; }
.center .eyebrow::after, .eyebrow.both::after { content: ""; width: 28px; height: 1px; background: currentColor; opacity: .7; }

.section-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: clamp(32px, 4vw, 56px); flex-wrap: wrap; }
.section-head.center { flex-direction: column; align-items: center; text-align: center; }
.section-head h2 { margin-top: .5rem; }
.section-head p.lead { max-width: 54ch; color: var(--muted); margin-top: .9rem; }
.section-head h2 em { color: var(--gold); }

/* jaali ornament divider */
.ornament { display: flex; align-items: center; justify-content: center; gap: 14px; color: var(--gold); }
.ornament::before, .ornament::after { content: ""; height: 1px; width: min(120px, 20vw); background: linear-gradient(90deg, transparent, currentColor); }
.ornament::after { transform: scaleX(-1); }
.ornament svg { width: 18px; height: 18px; }

/* ---------- Buttons ---------- */
.btn {
  --bg: var(--onyx); --fg: var(--ivory); --bd: var(--onyx);
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .7em;
  min-height: var(--btn-h, 52px); padding: 0 2.1em; border: 1px solid var(--bd); border-radius: var(--btn-radius, 0);
  background: var(--bg); color: var(--fg);
  font-size: .75rem; font-weight: 500; letter-spacing: .24em; text-transform: uppercase;
  overflow: hidden; isolation: isolate; transition: color .5s var(--ease), border-color .5s var(--ease);
  white-space: nowrap;
}
.btn::before { content: ""; position: absolute; inset: 0; background: var(--gold); transform: scaleX(0); transform-origin: right; transition: transform .6s var(--ease-out); z-index: -1; }
.btn:hover::before { transform: scaleX(1); transform-origin: left; }
.btn:hover { border-color: var(--gold); color: #fff; }
.btn.ghost { --bg: transparent; --fg: var(--onyx); --bd: var(--onyx); }
.btn.light { --bg: transparent; --fg: #fff; --bd: rgba(255,255,255,.7); }
.btn.gold { --bg: var(--gold); --fg: #fff; --bd: var(--gold); }
.btn.gold::before { background: var(--onyx); }
.btn.maroon { --bg: var(--maroon); --fg: #fff; --bd: var(--maroon); }
.btn.block { width: 100%; }
.btn.sm { min-height: 42px; padding: 0 1.5em; font-size: .6875rem; }
.btn svg { width: 16px; height: 16px; }

.link-line {
  font-size: .75rem; letter-spacing: .22em; text-transform: uppercase; font-weight: 500; color: var(--onyx);
  display: inline-flex; align-items: center; gap: .7em; padding-bottom: 6px; position: relative;
}
.link-line::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: currentColor; transform-origin: left; transition: transform .5s var(--ease-out); }
.link-line:hover::after { transform: scaleX(.35); }
.link-line svg { width: 14px; transition: transform .4s var(--ease); }
.link-line:hover svg { transform: translateX(4px); }

/* ---------- Icons ---------- */
.icon { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; flex: none; }

/* ---------- Image placeholder system ----------
   Every image sits on .ph — an artful fabric placeholder that shows until the
   real photo (assets/img/...) loads on top of it. */
.ph {
  --a: #7a2433; --b: #2a0e14;
  position: relative; overflow: hidden; background-color: var(--b);
  background-image:
    radial-gradient(120% 80% at 30% 15%, color-mix(in srgb, var(--a) 92%, white) 0%, var(--a) 38%, var(--b) 100%);
}
.ph::before { /* jaali lattice */
  content: ""; position: absolute; inset: 0; opacity: .16; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23F3DFB4' stroke-width='.8'%3E%3Cpath d='M28 2c6 8 14 12 26 12-6 4-6 24 0 28-12 0-20 4-26 12-6-8-14-12-26-12 6-4 6-24 0-28 12 0 20-4 26-12z'/%3E%3Ccircle cx='28' cy='28' r='5'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 56px 56px;
}
.ph::after { /* silk sheen + gold arch */
  content: ""; position: absolute; inset: 9% 14% 0; pointer-events: none;
  border: 1px solid rgba(243, 223, 180, .45); border-bottom: 0; border-radius: 999px 999px 0 0;
  background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,.14) 45%, transparent 60%);
}
.ph:has(> img)::before, .ph:has(> img)::after { display: none; }
.ph > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease-out), opacity .6s; }
.ph .ph-label { position: absolute; left: 0; right: 0; bottom: 8%; z-index: 0; text-align: center; font-family: var(--f-display); font-style: italic; color: rgba(255, 244, 222, .72); font-size: clamp(.95rem, .8rem + .5vw, 1.25rem); padding-inline: 12px; }

/* ---------- Announcement bar ---------- */
.topbar { background: var(--topbar-bg, #16120E); color: var(--topbar-fg, #D8C39C); font-size: .6875rem; letter-spacing: .2em; text-transform: uppercase; position: relative; z-index: 60; }
.topbar .container { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: var(--topbar-h, 38px); gap: 16px; }
.topbar { letter-spacing: .16em; }
.topbar .tb-left { display: flex; gap: 22px; }
.topbar .tb-left a, .topbar .tb-right a, .topbar .tb-right button { color: var(--gold-soft); display: inline-flex; align-items: center; gap: .6em; }
.topbar .tb-left a:hover, .topbar .tb-right a:hover { color: #fff; }
.topbar .tb-right { justify-self: end; display: flex; gap: 20px; }
.topbar .tb-msg { text-align: center; position: relative; height: var(--topbar-h, 38px); overflow: hidden; min-width: 0; }
.topbar .tb-msg span { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; transition: transform .7s var(--ease-out), opacity .7s; white-space: nowrap; }
.topbar .tb-msg span:not(.on) { opacity: 0; transform: translateY(100%); }
.topbar .tb-msg span.out { opacity: 0; transform: translateY(-100%); }
.topbar .icon { width: 14px; height: 14px; }
.flag { font-size: 1.05em; letter-spacing: 0; }

/* ---------- Header (white, 2 rows) ---------- */
.site-header { position: relative; top: env(safe-area-inset-top, 0px); z-index: 50; background: var(--header-bg, #fff); border-bottom: 1px solid var(--line); transition: box-shadow .4s; }
.site-header.scrolled { box-shadow: 0 10px 30px -18px rgba(22, 18, 14, .25); }
.hdr-grid { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: var(--hdr-h, 92px); gap: 20px; transition: height .4s var(--ease); }
.site-header.scrolled .hdr-grid { height: var(--hdr-h-sticky, 66px); }
.hdr-left { display: flex; align-items: center; gap: 12px; min-width: 0; }
.h-search { display: flex; align-items: center; gap: 12px; width: min(100%, 320px); height: 44px; padding: 0 18px; border: 1px solid var(--line-strong); border-radius: 99px; color: var(--muted); font-size: .8125rem; letter-spacing: .02em; transition: border-color .3s, color .3s; text-align: left; }
.h-search:hover { border-color: var(--onyx); color: var(--onyx); }
.h-search .icon { width: 18px; height: 18px; color: var(--onyx); }
.h-search span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.logo { display: flex; align-items: center; justify-content: center; line-height: 0; }
.logo img { height: var(--logo-h, 62px); width: auto; transition: height .4s var(--ease); }
.site-header.scrolled .logo img { height: var(--logo-h-sticky, 44px); }
.header-actions { justify-self: end; display: flex; align-items: center; gap: clamp(8px, 1.4vw, 20px); }
.h-btn { position: relative; display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; transition: background .3s; }
.h-btn:hover { background: var(--ivory); }
.h-btn .icon { width: 22px; height: 22px; }
.h-btn .count { position: absolute; top: 2px; right: 0; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 99px; background: var(--maroon); color: #fff; font-size: .625rem; letter-spacing: 0; display: grid; place-items: center; font-weight: 500; border: 2px solid #fff; }
.h-btn .count[data-n="0"] { display: none; }
.h-act { display: inline-flex; align-items: center; gap: 10px; padding: 6px 10px; border-radius: 10px; transition: background .3s; text-align: left; }
.h-act:hover { background: var(--ivory); }
.h-act .icon { width: 22px; height: 22px; }
.h-act .t { display: grid; line-height: 1.2; }
.h-act small { font-size: .6875rem; color: var(--muted); letter-spacing: .02em; }
.h-act b { font-size: .8125rem; font-weight: 500; color: var(--onyx); white-space: nowrap; }
.h-act .flag { font-size: 1.4rem; line-height: 1; }
.region-act { border: 1px solid var(--line); }
.menu-toggle { display: none; }

.hdr-nav { border-top: 1px solid var(--line); background: var(--nav-bg, #fff); }
.nav-main { list-style: none; margin: 0; padding: 0; display: flex; justify-content: center; gap: var(--nav-gap, 36px); height: var(--nav-h, 50px); }
.nav-main > li { display: flex; align-items: center; }
.nav-main > li > a { position: relative; display: inline-flex; align-items: center; gap: 6px; height: 100%; white-space: nowrap; font-size: var(--nav-fs, 12px); letter-spacing: .14em; text-transform: uppercase; font-weight: 400; color: var(--onyx); transition: color .3s; }
.nav-main > li > a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--gold); transform: scaleX(0); transition: transform .45s var(--ease-out); }
.nav-main > li:hover > a, .nav-main > li > a.active { color: var(--gold); }
.nav-main > li:hover > a::after, .nav-main > li > a.active::after { transform: scaleX(1); }
.nav-main .hot { color: var(--gold); font-weight: 500; }
.nav-main .sale { color: var(--maroon); font-weight: 500; }
.nav-main .chev { width: 10px; height: 10px; fill: none; stroke: currentColor; stroke-width: 1.4; transition: transform .3s; }
.nav-main > li:hover .chev { transform: rotate(180deg); }

/* Mega menu */
.mega { position: absolute; left: 0; right: 0; top: 100%; z-index: 5; background: var(--paper); color: var(--ink); border-top: 1px solid var(--line); box-shadow: 0 30px 60px -30px rgba(22,18,14,.25); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .35s, transform .45s var(--ease-out), visibility .35s; }
li.has-mega:hover .mega, li.has-mega:focus-within .mega { opacity: 1; visibility: visible; transform: none; }
.mega > .container { display: grid; grid-template-columns: repeat(3, 1fr) 1.3fr 1.3fr; gap: 40px; padding-block: 44px 48px; }
.mega h4 { font-family: var(--f-body); font-size: var(--t-label); letter-spacing: .26em; text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: 18px; }
.mega ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.mega ul a { font-family: var(--f-display); font-size: 1.2rem; color: var(--onyx); transition: color .3s, padding .3s; }
.mega ul a:hover { color: var(--gold); padding-left: 6px; }
.mega-card { display: block; }
.mega-card .ph { aspect-ratio: 4/5; margin-bottom: 14px; }
.mega-card:hover img { transform: scale(1.05); }
.mega-card span { font-family: var(--f-display); font-size: 1.25rem; color: var(--onyx); }
.mega-card small { display: block; font-size: .6875rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); }

/* ---------- Drawers & Modals ---------- */
.overlay { position: fixed; inset: 0; background: rgba(22, 18, 14, .45); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); z-index: 90; opacity: 0; visibility: hidden; transition: opacity .45s, visibility .45s; }
.overlay.on { opacity: 1; visibility: visible; }
.drawer { position: fixed; top: 0; bottom: 0; right: 0; width: min(460px, 100%); background: var(--paper); z-index: 100; transform: translateX(100%); transition: transform .6s var(--ease-out); display: flex; flex-direction: column; padding-top: env(safe-area-inset-top, 0px); padding-bottom: env(safe-area-inset-bottom, 0px); }
.drawer.left { right: auto; left: 0; transform: translateX(-100%); }
.drawer.on { transform: none; }
.drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 24px 28px; border-bottom: 1px solid var(--line); }
.drawer-head h3 { font-size: 1.6rem; }
.drawer-body { flex: 1; overflow-y: auto; padding: 8px 28px; }
.drawer-foot { padding: 22px 28px 28px; border-top: 1px solid var(--line); background: var(--paper); }
.x-btn { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; transition: background .3s, transform .5s var(--ease); }
.x-btn:hover { background: var(--sand); transform: rotate(90deg); }

.modal { position: fixed; inset: 0; z-index: 110; display: grid; place-items: center; padding: 20px; pointer-events: none; opacity: 0; visibility: hidden; transition: opacity .4s, visibility .4s; }
.modal.on { opacity: 1; visibility: visible; pointer-events: auto; }
.modal-box { background: var(--paper); width: min(980px, 100%); max-height: calc(100vh - 40px); overflow: auto; position: relative; transform: translateY(20px) scale(.98); transition: transform .6s var(--ease-out); }
.modal.on .modal-box { transform: none; }
.modal-box > .x-btn { position: absolute; top: 12px; right: 12px; z-index: 5; background: var(--paper); }

/* Region modal */
.region-box { width: min(1040px, 100%); display: grid; grid-template-columns: .9fr 1.4fr; }
.region-art { min-height: 100%; }
.region-art .ph { height: 100%; min-height: 260px; }
.region-art .ph-copy { position: absolute; z-index: 2; inset: auto 28px 32px; color: #fff; }
.region-art .ph-copy h3 { color: #fff; font-size: 2.2rem; font-style: italic; }
.region-art .ph-copy p { color: rgba(255,255,255,.8); font-size: .875rem; margin-top: 8px; }
.region-main { padding: clamp(28px, 4vw, 52px); }
.region-main h2 { font-size: clamp(2rem, 1.5rem + 1.5vw, 2.7rem); margin: 10px 0 8px; }
.region-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 28px; }
.region-opt { text-align: left; border: 1px solid var(--line); padding: 16px 18px; display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; transition: border-color .3s, background .3s; background: transparent; }
.region-opt:hover { border-color: var(--gold); }
.region-opt.sel { border-color: var(--onyx); background: var(--ivory); }
.region-opt .flag { font-size: 1.6rem; }
.region-opt b { display: block; font-weight: 400; font-family: var(--f-display); font-size: 1.25rem; color: var(--onyx); line-height: 1.2; }
.region-opt small { color: var(--muted); font-size: .75rem; }
.region-opt .cur { font-size: .75rem; letter-spacing: .1em; color: var(--gold); font-weight: 500; }

/* ---------- Product card ---------- */
.grid { display: grid; gap: calc(var(--grid-gap, 30px) * 1.4) var(--grid-gap, 30px); }
.grid.c4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid.c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid.c2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.card { position: relative; min-width: 0; }
.card .mwrap { position: relative; overflow: hidden; }
.card .media { position: relative; display: block; aspect-ratio: var(--card-ratio, 3/4.2); overflow: hidden; border-radius: var(--img-radius, 0); }
.card .media .ph { position: absolute; inset: 0; }
.card .media .ph.alt { opacity: 0; transition: opacity .7s var(--ease); z-index: 2; }
.card:hover .media .ph.alt { opacity: 1; }
.card:hover .media .ph img { transform: scale(1.04); }
.card .badges { position: absolute; top: 14px; left: 14px; z-index: 3; display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.badge { font-size: .625rem; letter-spacing: .2em; text-transform: uppercase; padding: 5px 10px; background: var(--paper); color: var(--onyx); font-weight: 500; }
.badge.sale { background: var(--sale, var(--maroon)); color: #fff; }
.badge.excl { background: var(--onyx); color: var(--gold-soft); }
.card .wish { position: absolute; top: 10px; right: 10px; z-index: 3; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 252, 247, .9); transition: transform .4s var(--ease), background .3s; }
.card .wish:hover { transform: scale(1.08); }
[data-wish].on .icon { fill: var(--maroon); stroke: var(--maroon); }
.card .actions { position: absolute; left: 12px; right: 12px; bottom: 12px; z-index: 3; display: grid; grid-template-columns: 1fr auto; gap: 8px; transform: translateY(calc(100% + 16px)); transition: transform .55s var(--ease-out); }
.card:hover .actions, .card:focus-within .actions { transform: none; }
.card .actions .btn { min-height: 44px; padding: 0 1em; font-size: .625rem; }
.card .actions .qv { width: 44px; min-height: 44px; display: grid; place-items: center; background: var(--paper); }
.card .info { padding-top: 16px; display: grid; gap: 4px; }
.card .cat { font-size: .625rem; letter-spacing: .24em; text-transform: uppercase; color: var(--muted); }
.card .name { font-family: var(--f-display); font-size: var(--card-title, 21px); color: var(--onyx); line-height: 1.2; font-weight: 400; }
.card .name a:hover { color: var(--gold); }
.price { font-size: .9375rem; color: var(--onyx); font-weight: 400; letter-spacing: .04em; font-variant-numeric: tabular-nums; display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.price del { color: var(--muted); font-size: .8125rem; }
.price ins { text-decoration: none; color: var(--maroon); }
.card .swatches { display: flex; gap: 6px; margin-top: 6px; }
.sw { width: 14px; height: 14px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(0,0,0,.12); background: var(--c); }
.card .vendor { font-size: .75rem; color: var(--muted); display: flex; align-items: center; gap: 6px; }
.card .vendor .icon { width: 13px; height: 13px; color: var(--gold); }

/* ---------- Forms ---------- */
.field { display: grid; gap: 7px; }
.field label { font-size: var(--t-label); letter-spacing: .2em; text-transform: uppercase; color: var(--onyx); font-weight: 500; }
.input, .select, .textarea { width: 100%; min-height: 50px; padding: 12px 16px; border: 1px solid var(--line-strong); background: var(--paper); border-radius: 0; font-size: .9375rem; transition: border-color .3s; appearance: none; -webkit-appearance: none; }
.textarea { min-height: 120px; resize: vertical; }
.select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%2316120E' stroke-width='1.2'%3E%3Cpath d='M2 4.5l4 4 4-4'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 40px; }
.input:focus, .select:focus, .textarea:focus { outline: none; border-color: var(--gold); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.form-grid .full { grid-column: 1 / -1; }
.check { display: flex; gap: 10px; align-items: flex-start; font-size: .875rem; cursor: pointer; }
.check input { accent-color: var(--onyx); width: 16px; height: 16px; margin-top: 4px; }

.qty { display: inline-grid; grid-template-columns: 40px 44px 40px; border: 1px solid var(--line-strong); height: 48px; align-items: center; }
.qty button { height: 100%; display: grid; place-items: center; font-size: 1.1rem; }
.qty button:hover { background: var(--sand); }
.qty input { text-align: center; border: 0; background: transparent; width: 100%; font-variant-numeric: tabular-nums; }
.qty.sm { grid-template-columns: 32px 34px 32px; height: 38px; }

/* ---------- Cart drawer items ---------- */
.ci-group { padding-block: 18px; border-bottom: 1px solid var(--line); }
.ci-group-head { display: flex; align-items: center; gap: 8px; font-size: .6875rem; letter-spacing: .18em; text-transform: uppercase; color: var(--gold); margin-bottom: 14px; font-weight: 500; }
.ci-group-head .icon { width: 14px; height: 14px; }
.ci { display: grid; grid-template-columns: 84px 1fr; gap: 16px; padding-block: 10px; }
.ci .ph { aspect-ratio: 3/4; }
.ci h4 { font-size: 1.15rem; }
.ci .meta { font-size: .75rem; color: var(--muted); }
.ci .row { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; gap: 10px; }
.ci .rm { font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); text-decoration: underline; text-underline-offset: 3px; }
.ship-meter { font-size: .8125rem; margin-bottom: 14px; }
.ship-meter .bar { height: 3px; background: var(--sand); margin-top: 8px; position: relative; overflow: hidden; }
.ship-meter .bar i { position: absolute; inset: 0 auto 0 0; background: linear-gradient(90deg, var(--gold-soft), var(--gold)); transition: width .8s var(--ease-out); }
.sum-row { display: flex; justify-content: space-between; font-size: .9375rem; padding-block: 4px; font-variant-numeric: tabular-nums; }
.sum-row.total { font-family: var(--f-display); font-size: 1.5rem; color: var(--onyx); padding-top: 10px; }
.empty-state { text-align: center; padding: 60px 10px; display: grid; gap: 16px; justify-items: center; }
.empty-state .icon { width: 44px; height: 44px; color: var(--gold); stroke-width: 1; }

/* ---------- Search overlay ---------- */
.search-panel { position: fixed; left: 0; right: 0; top: 0; z-index: 100; background: var(--paper); transform: translateY(-100%); transition: transform .6s var(--ease-out); padding-top: env(safe-area-inset-top, 0px); max-height: 100vh; overflow-y: auto; }
.search-panel.on { transform: none; }
.search-panel .container { padding-block: 32px 48px; }
.search-row { display: flex; align-items: center; gap: 16px; border-bottom: 1px solid var(--onyx); padding-bottom: 12px; }
.search-row input { flex: 1; border: 0; background: transparent; font-family: var(--f-display); font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.6rem); min-width: 0; }
.search-row input:focus { outline: none; }
.search-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.chip { border: 1px solid var(--line-strong); padding: 7px 16px; border-radius: 99px; font-size: .8125rem; transition: all .3s; background: transparent; }
.chip:hover, .chip.on { background: var(--onyx); color: var(--ivory); border-color: var(--onyx); }
.search-results { margin-top: 32px; }

/* ---------- Toast ---------- */
.toast { position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); transform: translate(-50%, 140%); z-index: 130; background: var(--onyx); color: var(--ivory); padding: 14px 22px; font-size: .8125rem; letter-spacing: .06em; display: flex; gap: 12px; align-items: center; transition: transform .6s var(--ease-out), visibility .6s; max-width: calc(100vw - 32px); visibility: hidden; }
.toast.on { transform: translate(-50%, 0); visibility: visible; }
.toast .icon { color: var(--gold-soft); width: 18px; height: 18px; }

/* ---------- Footer ---------- */
.site-footer { background: var(--footer-bg, #16120E); color: var(--footer-fg, #C9C0B3); position: relative; overflow: hidden; }
.site-footer::before { content: ""; position: absolute; inset: 0; opacity: .05; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23F3DFB4' stroke-width='.8'%3E%3Cpath d='M28 2c6 8 14 12 26 12-6 4-6 24 0 28-12 0-20 4-26 12-6-8-14-12-26-12 6-4 6-24 0-28 12 0 20-4 26-12z'/%3E%3Ccircle cx='28' cy='28' r='5'/%3E%3C/g%3E%3C/svg%3E"); pointer-events: none; }
.site-footer > * { position: relative; }
.newsletter { border-bottom: 1px solid rgba(216, 195, 156, .18); }
.newsletter .container { display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; align-items: center; padding-block: 64px; }
.newsletter h3 { color: var(--ivory); font-size: clamp(1.8rem, 1.4rem + 1.4vw, 2.6rem); }
.newsletter h3 em { color: var(--gold-soft); }
.nl-form { display: flex; border-bottom: 1px solid rgba(216, 195, 156, .5); }
.nl-form input { flex: 1; min-width: 0; background: transparent; border: 0; color: var(--ivory); padding: 14px 0; font-size: 1rem; }
.nl-form input::placeholder { color: rgba(247, 242, 234, .45); }
.nl-form input:focus { outline: none; }
.nl-form button { color: var(--gold-soft); font-size: .75rem; letter-spacing: .22em; text-transform: uppercase; display: flex; gap: 8px; align-items: center; }
.footer-main .container { display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: 40px; padding-block: 64px 48px; }
.footer-main h5 { font-family: var(--f-body); font-size: var(--t-label); letter-spacing: .26em; text-transform: uppercase; color: var(--gold-soft); font-weight: 500; margin: 0 0 20px; }
.footer-main ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 11px; font-size: .875rem; }
.footer-main a:hover { color: var(--ivory); }
.footer-brand .logo { justify-content: flex-start; }
.footer-brand .logo img { height: var(--footer-logo, 70px); }
.footer-brand p { font-size: .875rem; margin-top: 20px; max-width: 36ch; }
.socials { display: flex; gap: 10px; margin-top: 24px; }
.socials a { width: 40px; height: 40px; border: 1px solid rgba(216, 195, 156, .3); border-radius: 50%; display: grid; place-items: center; transition: all .3s; }
.socials a:hover { background: var(--gold); border-color: var(--gold); color: #fff; }
.socials .icon { width: 16px; height: 16px; }
.footer-bottom { border-top: 1px solid rgba(216, 195, 156, .18); }
.footer-bottom .container { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-block: 24px; font-size: .75rem; letter-spacing: .06em; flex-wrap: wrap; }
.pay-icons { display: flex; gap: 8px; flex-wrap: wrap; }
.pay-icons span { border: 1px solid rgba(216, 195, 156, .28); padding: 4px 9px; font-size: .625rem; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-soft); }
.footer-region { color: var(--gold-soft); display: inline-flex; gap: 8px; align-items: center; border: 1px solid rgba(216,195,156,.3); padding: 8px 14px; border-radius: 99px; font-size: .75rem; letter-spacing: .12em; }

/* Mobile bottom nav (WoodMart "sticky navbar") */
.mobile-nav { display: none; }

/* ---------- Page hero (inner pages) ---------- */
.page-hero { padding-block: clamp(48px, 6vw, 88px) clamp(36px, 4vw, 56px); text-align: center; border-bottom: 1px solid var(--line); background: linear-gradient(180deg, var(--sand), var(--ivory)); }
.page-hero h1 em { color: var(--gold); }
.page-hero p { color: var(--muted); max-width: 60ch; margin: 14px auto 0; }
.crumbs { font-size: .6875rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); display: flex; gap: 10px; justify-content: center; margin-bottom: 18px; flex-wrap: wrap; }
.crumbs a:hover { color: var(--gold); }
.crumbs span::before { content: "/"; margin-right: 10px; opacity: .5; }

/* ---------- Reveal motion (content is visible without JS) ---------- */
.js .reveal.pre { opacity: 0; transform: translateY(28px); }
.reveal { transition: opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out); }
.reveal.d1 { transition-delay: .1s; } .reveal.d2 { transition-delay: .2s; } .reveal.d3 { transition-delay: .3s; }

/* ---------- Accordion ---------- */
.acc { border-top: 1px solid var(--line); }
.acc-item { border-bottom: 1px solid var(--line); }
.acc-item > button { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 0; text-align: left; font-family: var(--f-display); font-size: 1.3rem; color: var(--onyx); }
.acc-item > button .pm { width: 14px; height: 14px; position: relative; flex: none; }
.acc-item > button .pm::before, .acc-item > button .pm::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: currentColor; transition: transform .4s var(--ease); }
.acc-item > button .pm::after { transform: rotate(90deg); }
.acc-item.open > button .pm::after { transform: rotate(0); }
.acc-panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s var(--ease-out); }
.acc-panel > div { overflow: hidden; }
.acc-item.open .acc-panel { grid-template-rows: 1fr; }
.acc-panel p, .acc-panel ul { padding-bottom: 20px; font-size: .9375rem; }

/* tabs */
.tabs { display: flex; gap: 28px; border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; }
.tabs button { padding: 16px 0; font-size: .75rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); border-bottom: 1px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.tabs button.on { color: var(--onyx); border-color: var(--onyx); }

/* Table */
.tbl-wrap { overflow-x: auto; }
table.tbl { width: 100%; border-collapse: collapse; font-size: .875rem; font-variant-numeric: tabular-nums; }
.tbl th, .tbl td { padding: 12px 14px; text-align: left; border-bottom: 1px solid var(--line); white-space: nowrap; }
.tbl th { font-size: var(--t-label); letter-spacing: .18em; text-transform: uppercase; color: var(--onyx); font-weight: 500; background: var(--ivory); }

/* =================== Responsive =================== */
@media (max-width: 1360px) { .nav-main > li.opt { display: none; } }
@media (max-width: 1240px) { .nav-main { gap: 22px; } .nav-main > li.opt2 { display: none; } .h-act:not(.region-act) .t { display: none; } .h-search { width: 220px; } }
@media (max-width: 1024px) {
  :root { --header-h: 70px; }
  .menu-toggle { display: inline-grid; }
  .h-search { width: 42px; height: 42px; padding: 0; justify-content: center; border: 0; }
  .h-search span { display: none; }
  .hdr-grid { gap: 8px; }
  .nav-main { justify-content: flex-start; overflow-x: auto; scrollbar-width: none; height: 44px; gap: 22px; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
  .nav-main::-webkit-scrollbar { display: none; }
  .nav-main > li.has-mega { display: none; }
  .nav-main > li > a { font-size: .6875rem; letter-spacing: .12em; }
  .mega { display: none; }
  .grid.c4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .footer-main .container { grid-template-columns: repeat(3, 1fr); }
  .footer-brand { grid-column: 1 / -1; }
  .region-box { grid-template-columns: minmax(0, 1fr); }
  .region-art { display: none; }
  .card .actions { transform: none; position: static; margin-top: 10px; grid-template-columns: 1fr auto; }
  .card .actions .qv { border: 1px solid var(--line-strong); }
  .topbar .tb-left { display: none; }
  .topbar .container { grid-template-columns: 1fr auto; }
}
@media (max-width: 768px) {
  .grid.c4, .grid.c3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .newsletter .container { grid-template-columns: 1fr; padding-block: 48px; }
  .footer-main .container { grid-template-columns: repeat(2, 1fr); gap: 32px 20px; }
  .form-grid { grid-template-columns: minmax(0, 1fr); }
  .region-grid { grid-template-columns: minmax(0, 1fr); }
  .topbar .tb-right .hide-m { display: none; }
  .mobile-nav { display: grid; grid-template-columns: repeat(5, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; background: rgba(255, 252, 247, .96); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-top: 1px solid var(--line); padding-bottom: env(safe-area-inset-bottom, 0px); }
  .mobile-nav a, .mobile-nav button { display: grid; justify-items: center; gap: 2px; padding: 9px 0 7px; font-size: .5625rem; letter-spacing: .14em; text-transform: uppercase; color: var(--onyx); position: relative; }
  .mobile-nav .count { position: absolute; top: 4px; left: calc(50% + 6px); min-width: 16px; height: 16px; border-radius: 99px; background: var(--gold); color: #fff; font-size: .5625rem; display: grid; place-items: center; letter-spacing: 0; }
  .mobile-nav .count[data-n="0"] { display: none; }
  body { padding-bottom: 62px; }
  .h-btn.hide-m, .h-act.hide-m { display: none; }
  .region-act .t { display: none; }
  .region-act { padding: 6px 8px; border-radius: 99px; }
  .card .actions .btn span { display: none; }
  .card .actions { grid-template-columns: 1fr auto; }
  .card .name { font-size: 1.12rem; }
  .card .wish { width: 34px; height: 34px; }
  .card .badges { top: 10px; left: 10px; }
  .badge { font-size: .5625rem; padding: 4px 7px; }
  .toast { bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
}
@media (max-width: 480px) {
  .topbar { font-size: .5625rem; letter-spacing: .12em; }
  .topbar .tb-msg span { justify-content: flex-start; }
  .header-actions { gap: 2px; }
  .hdr-left { gap: 0; }
  .drawer-head, .drawer-foot { padding-inline: 20px; }
  .drawer-body { padding-inline: 20px; }
  .footer-main .container { grid-template-columns: 1fr 1fr; }
  .btn { padding: 0 1.4em; letter-spacing: .18em; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .js .reveal.pre { opacity: 1; transform: none; }
}


/* ===================== Sections ===================== */
/* =========================================================================
   PREM'S COLLECTIONS — Page sections
   Each block = one Elementor container. Class names prefixed by page.
   ========================================================================= */

/* ---------- Product options (shared: quick view + PDP) ---------- */
.opt-group { display: grid; gap: 10px; }
.opt-label { display: flex; justify-content: space-between; align-items: center; font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; color: var(--onyx); }
.opt-label b { font-weight: 500; letter-spacing: .06em; text-transform: none; font-size: .875rem; }
.color-opts { display: flex; gap: 10px; flex-wrap: wrap; }
.color-opt { width: 34px; height: 34px; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 1px rgba(0,0,0,.12); position: relative; }
.color-opt::after { content: ""; position: absolute; inset: -5px; border-radius: 50%; border: 1px solid transparent; transition: border-color .3s; }
.color-opt.on::after, .color-opt:hover::after { border-color: var(--onyx); }
.size-opts { display: flex; gap: 8px; flex-wrap: wrap; }
.size-opt { min-width: 48px; height: 44px; padding: 0 14px; border: 1px solid var(--line-strong); font-size: .8125rem; transition: all .3s; }
.size-opt:hover { border-color: var(--onyx); }
.size-opt.on { background: var(--onyx); color: var(--ivory); border-color: var(--onyx); }
@media (max-width: 768px) { .qv-grid { grid-template-columns: 1fr !important; } .qv-grid > div:first-child { aspect-ratio: 4/3 !important; } }

/* =============================== HOME =============================== */
/* Hero slider — split: copy panel + photography */
.hs { position: relative; background: #fff; }
.hs-stage { position: relative; height: clamp(520px, 44vw, 680px); overflow: hidden; }
.hs-slide { position: absolute; inset: 0; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); opacity: 0; visibility: hidden; transition: opacity .9s var(--ease), visibility .9s; }
.hs-slide.on { opacity: 1; visibility: visible; z-index: 1; }
.hs-slide.t-sand { --hs-bg: #F1E9DD; --hs-fg: var(--onyx); --hs-mute: var(--ink); --hs-acc: var(--gold); }
.hs-slide.t-mist { --hs-bg: #E8ECEC; --hs-fg: var(--onyx); --hs-mute: var(--ink); --hs-acc: #2a6670; }
.hs-slide.t-maroon { --hs-bg: var(--maroon); --hs-fg: #FBF1E1; --hs-mute: rgba(251, 241, 225, .78); --hs-acc: var(--gold-soft); }
.hs-copy { background: var(--hs-bg); color: var(--hs-mute); display: flex; align-items: center; padding: clamp(32px, 5vw, 80px); padding-left: max(var(--gutter), calc((100vw - var(--container)) / 2)); position: relative; }
.hs-copy::after { content: ""; position: absolute; right: 32px; top: 32px; width: 120px; height: 120px; opacity: .14; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A9843F' stroke-width='.6'%3E%3Cpath d='M12 2c2.5 3.5 6 5 10 5-2.5 2-2.5 8 0 10-4 0-7.5 1.5-10 5-2.5-3.5-6-5-10-5 2.5-2 2.5-8 0-10 4 0 7.5-1.5 10-5z'/%3E%3Ccircle cx='12' cy='12' r='2.2'/%3E%3C/svg%3E") center/contain no-repeat; }
.hs-in { max-width: 540px; display: grid; gap: 22px; }
.hs-in .eyebrow { color: var(--hs-acc); }
.hs-in h1 { color: var(--hs-fg); font-size: clamp(2.5rem, 1.5rem + 3.2vw, 4.6rem); font-weight: 400; line-height: 1.02; letter-spacing: -.01em; }
.hs-in h1 em { color: var(--hs-acc); }
.hs-in p { font-size: 1.0625rem; max-width: 40ch; }
.hs-in .hero-ctas { margin-top: 8px; }
.hs-slide .hs-in > * { opacity: 0; transform: translateY(18px); transition: opacity .8s var(--ease-out), transform .8s var(--ease-out); }
.hs-slide.on .hs-in > * { opacity: 1; transform: none; }
.hs-slide.on .hs-in > *:nth-child(2) { transition-delay: .1s; } .hs-slide.on .hs-in > *:nth-child(3) { transition-delay: .2s; } .hs-slide.on .hs-in > *:nth-child(4) { transition-delay: .3s; }
.hs-media { position: relative; overflow: hidden; display: grid; background: var(--sand); }
.hs-media.duo { grid-template-columns: 1fr 1fr; gap: 4px; background: var(--maroon); }
.hs-img { position: relative; overflow: hidden; }
.hs-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 25%; transform: scale(1.06); transition: transform 7s linear; }
.hs-slide.on .hs-img img { transform: scale(1); }
.hs-arrows { position: absolute; right: clamp(16px, 2vw, 32px); bottom: clamp(16px, 2vw, 32px); z-index: 3; display: flex; gap: 8px; }
.hs-arrows button { width: 48px; height: 48px; border-radius: 50%; background: rgba(255, 255, 255, .92); display: grid; place-items: center; transition: background .3s, color .3s; }
.hs-arrows button:hover { background: var(--onyx); color: #fff; }
.hs-tabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; padding-block: 0; }
.hs-tabs button { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; text-align: left; padding: 18px 0 16px; color: var(--muted); align-items: baseline; }
.hs-tabs .n { font-family: var(--f-display); font-size: 1.25rem; color: inherit; }
.hs-tabs .l { font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; }
.hs-tabs i { grid-column: 1 / -1; height: 2px; background: var(--line); position: relative; overflow: hidden; margin-top: 10px; }
.hs-tabs i b { position: absolute; inset: 0; background: var(--gold); transform: scaleX(0); transform-origin: left; }
.hs-tabs button.on { color: var(--onyx); }
.hs-tabs button.on i b { transform: scaleX(1); }
.hs-tabs button.run i b { animation: hsprog 6.5s linear forwards; }
@keyframes hsprog { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.hero-ctas { display: flex; gap: 12px; flex-wrap: wrap; }

/* service strip */
.svc { border-block: 1px solid var(--line); background: #fff; }
.svc-row { display: grid; grid-template-columns: repeat(4, 1fr); }
.svc-item { display: flex; gap: 14px; align-items: center; padding: 22px 20px; }
.svc-item + .svc-item { border-left: 1px solid var(--line); }
.svc-item .icon { width: 28px; height: 28px; color: var(--gold); stroke-width: 1.1; }
.svc-item b { display: block; font-weight: 500; color: var(--onyx); font-size: .875rem; }
.svc-item span { font-size: .8125rem; color: var(--muted); }

/* categories — mihrab arches */
.cats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 24px); }
.cat-card { text-align: center; display: grid; gap: 16px; }
.cat-card .arch { aspect-ratio: 3/4.3; border-radius: 999px 999px 0 0; overflow: hidden; position: relative; }
.cat-card .arch .ph { position: absolute; inset: 0; transition: transform 1.2s var(--ease-out); }
.cat-card .arch .ph::after { inset: 7% 9% 0; }
.cat-card:hover .arch .ph { transform: scale(1.05); }
.cat-card h3 { font-size: 1.35rem; }
.cat-card small { font-size: .6875rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); }

/* tabs row on home */
.pill-tabs { display: flex; gap: 8px; flex-wrap: wrap; }

/* bridal spotlight */
.bridal-spot { background: var(--maroon); color: #f0e3cf; position: relative; overflow: hidden; }
.bridal-spot::after { content: ""; position: absolute; inset: 0; opacity: .07; background-image: inherit; }
.bridal-spot .container { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 100px); align-items: center; }
.bridal-spot h2 { color: #fbf1e1; font-size: clamp(2.4rem, 1.6rem + 3vw, 4.6rem); font-weight: 300; }
.bridal-spot h2 em { color: var(--gold-soft); }
.bridal-spot .eyebrow { color: var(--gold-soft); }
.bridal-spot p { color: rgba(240, 227, 207, .78); max-width: 48ch; margin-top: 22px; }
.bridal-imgs { display: grid; grid-template-columns: 1.4fr 1fr; gap: 16px; align-items: end; }
.bridal-imgs .a { aspect-ratio: 3/4.4; position: relative; border-radius: 999px 999px 0 0; overflow: hidden; }
.bridal-imgs .b { aspect-ratio: 3/4; position: relative; margin-bottom: 18%; }
.bridal-imgs .ph { position: absolute; inset: 0; }
.steps-mini { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin: 36px 0 40px; padding-block: 26px; border-block: 1px solid rgba(216,195,156,.22); }
.steps-mini b { font-family: var(--f-display); font-weight: 400; font-size: 1.25rem; color: #fbf1e1; display: block; }
.steps-mini span { font-size: .8125rem; color: rgba(240,227,207,.65); }
.steps-mini i { font-style: normal; font-size: .6875rem; letter-spacing: .2em; color: var(--gold-soft); display: block; margin-bottom: 6px; }

/* occasions — expanding panels */
.occ { display: flex; gap: 10px; height: clamp(420px, 44vw, 600px); }
.occ-panel { flex: 1; position: relative; overflow: hidden; transition: flex 1s var(--ease-out); min-width: 0; color: #fff; }
.occ-panel .ph { position: absolute; inset: 0; }
.occ-panel .ph::after { display: none; }
.occ-panel::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(10, 6, 4, .75)); }
.occ-panel:hover, .occ-panel.on { flex: 2.6; }
.occ-panel .cap { position: absolute; z-index: 2; left: 24px; right: 24px; bottom: 26px; }
.occ-panel h3 { color: #fff; font-size: clamp(1.3rem, .9rem + 1vw, 2.2rem); }
.occ-panel .cap small { font-size: .6875rem; letter-spacing: .24em; text-transform: uppercase; color: var(--gold-soft); }
.occ-panel .cap .link-line { color: #fff; margin-top: 12px; opacity: 0; transform: translateY(10px); transition: all .6s var(--ease-out); }
.occ-panel:hover .cap .link-line, .occ-panel.on .cap .link-line { opacity: 1; transform: none; }

/* shop the look */
.look { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.look-img { position: relative; aspect-ratio: 4/5; }
.look-img > .ph { position: absolute; inset: 0; }
.hotspot { position: absolute; z-index: 3; width: 34px; height: 34px; margin: -17px 0 0 -17px; border-radius: 50%; background: rgba(255, 252, 247, .95); display: grid; place-items: center; color: var(--onyx); }
.hotspot::before { content: ""; position: absolute; inset: -8px; border-radius: 50%; border: 1px solid rgba(255,255,255,.7); animation: pulse 2.4s var(--ease) infinite; }
@keyframes pulse { 0% { transform: scale(.7); opacity: 1; } 100% { transform: scale(1.5); opacity: 0; } }
.hotspot .icon { width: 14px; height: 14px; }
.hotspot.on { background: var(--gold); color: #fff; }
.look-list { display: grid; gap: 4px; }
.look-item { display: grid; grid-template-columns: 90px 1fr auto; gap: 18px; align-items: center; padding: 14px; border: 1px solid transparent; transition: border-color .4s, background .4s; }
.look-item.on { border-color: var(--line-strong); background: var(--paper); }
.look-item .ph { aspect-ratio: 3/4; }
.look-item h4 { font-size: 1.25rem; }
.look-item .add { width: 44px; height: 44px; border: 1px solid var(--line-strong); display: grid; place-items: center; border-radius: 50%; transition: all .3s; }
.look-item .add:hover { background: var(--onyx); color: #fff; }

/* craft numbers */
.craft { position: relative; color: #f3ead9; background: var(--onyx); overflow: hidden; }
.craft-bg { position: absolute; inset: 0; }
.craft-bg .ph { position: absolute; inset: -10% 0; }
.craft-bg .ph img { object-position: 75% 85%; }
.craft-bg .ph::after { display: none; }
.craft-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14,10,8,.88) 30%, rgba(14,10,8,.35)); }
.craft .container { position: relative; z-index: 1; }
.craft h2 { color: #fbf4e6; max-width: 16ch; font-weight: 300; font-size: clamp(2.2rem, 1.6rem + 2.6vw, 4rem); }
.craft h2 em { color: var(--gold-soft); }
.craft p.lead { color: rgba(243,234,217,.72); max-width: 50ch; margin-top: 20px; }
.craft-nums { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 64px; max-width: 920px; }
.craft-nums div { border-top: 1px solid rgba(216,195,156,.35); padding-top: 18px; }
.craft-nums b { font-family: var(--f-display); font-weight: 300; font-size: clamp(2.4rem, 1.8rem + 2vw, 3.6rem); color: var(--gold-soft); line-height: 1; display: block; }
.craft-nums span { font-size: .8125rem; color: rgba(243,234,217,.7); }

/* ateliers strip */
.atelier-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.atelier-card { position: relative; aspect-ratio: 3/3.7; overflow: hidden; color: #fff; display: block; }
.atelier-card .ph { position: absolute; inset: 0; transition: transform 1.2s var(--ease-out); }
.atelier-card .ph::after { display: none; }
.atelier-card:hover .ph { transform: scale(1.05); }
.atelier-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05) 30%, rgba(8,5,3,.78)); }
.atelier-card .cap { position: absolute; z-index: 2; inset: auto 22px 22px; }
.atelier-card h3 { color: #fff; font-size: clamp(1.6rem, 1.2rem + 1vw, 2.3rem); }
.atelier-card small { font-size: .6875rem; letter-spacing: .22em; text-transform: uppercase; color: var(--gold-soft); }
.atelier-card p { font-size: .8125rem; color: rgba(255,255,255,.75); margin-top: 6px; }
.atelier-card .yours { position: absolute; z-index: 2; top: 16px; left: 16px; background: var(--gold); color: #fff; font-size: .625rem; letter-spacing: .2em; text-transform: uppercase; padding: 5px 10px; }
.atelier-card.intro { background: var(--sand); color: var(--onyx); padding: 28px; display: flex; flex-direction: column; justify-content: space-between; aspect-ratio: auto; }
.atelier-card.intro::after { display: none; }
.atelier-card.intro h3 { color: var(--onyx); }

/* stories */
.stories { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 30px); }
.story { background: var(--paper); padding: 34px 30px 30px; display: grid; gap: 22px; align-content: space-between; border: 1px solid var(--line); }
.story .stars { display: flex; gap: 3px; color: var(--gold); }
.story .stars .icon { width: 14px; height: 14px; fill: currentColor; }
.story blockquote { margin: 0; font-family: var(--f-display); font-size: 1.35rem; line-height: 1.4; color: var(--onyx); font-style: italic; }
.story .who { display: flex; gap: 14px; align-items: center; }
.story .who .ph { width: 52px; height: 52px; border-radius: 50%; flex: none; }
.story .who .ph::after, .story .who .ph::before { display: none; }
.story .who b { font-weight: 500; color: var(--onyx); display: block; font-size: .9375rem; }
.story .who span { font-size: .75rem; color: var(--muted); letter-spacing: .1em; }

/* instagram */
.insta { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; }
.insta a { position: relative; aspect-ratio: 1; overflow: hidden; }
.insta .ph { position: absolute; inset: 0; transition: transform 1s var(--ease-out); }
.insta .ph::after { display: none; }
.insta a::after { content: ""; position: absolute; inset: 0; background: rgba(22,18,14,.45); opacity: 0; transition: opacity .4s; }
.insta a:hover::after { opacity: 1; }
.insta a:hover .ph { transform: scale(1.06); }
.insta a .icon { position: absolute; z-index: 2; left: 50%; top: 50%; translate: -50% -50%; color: #fff; opacity: 0; transition: opacity .4s; width: 26px; height: 26px; }
.insta a:hover .icon { opacity: 1; }

/* promises */
.promises { display: grid; grid-template-columns: repeat(4, 1fr); border-block: 1px solid var(--line); }
.promise { padding: 34px 24px; display: flex; gap: 16px; align-items: flex-start; }
.promise + .promise { border-left: 1px solid var(--line); }
.promise .icon { width: 30px; height: 30px; color: var(--gold); stroke-width: 1; }
.promise b { font-family: var(--f-display); font-weight: 500; font-size: 1.2rem; color: var(--onyx); display: block; line-height: 1.2; }
.promise span { font-size: .8125rem; color: var(--muted); }

/* =============================== SHOP =============================== */
.shop-hero { position: relative; color: #fff; overflow: hidden; }
.shop-hero .ph { position: absolute; inset: 0; }
.shop-hero .ph::after { display: none; }
.shop-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,6,4,.7), rgba(10,6,4,.1)); }
.shop-hero .container { position: relative; z-index: 1; padding-block: clamp(56px, 8vw, 110px); }
.shop-hero h1 { color: #fff; font-weight: 300; }
.shop-hero h1 em { color: var(--gold-soft); }
.shop-hero p { color: rgba(255,255,255,.8); max-width: 52ch; margin-top: 12px; }
.shop-hero .crumbs { justify-content: flex-start; color: rgba(255,255,255,.7); }
.cat-strip { display: flex; gap: 10px; overflow-x: auto; scrollbar-width: none; padding-block: 22px; border-bottom: 1px solid var(--line); }
.cat-strip::-webkit-scrollbar { display: none; }
.cat-strip .chip { white-space: nowrap; }
.shop-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 48px; padding-block: 40px var(--section); }
.filters { position: sticky; top: 100px; align-self: start; max-height: calc(100vh - 120px); overflow-y: auto; padding-right: 6px; scrollbar-width: thin; }
.filters h4 { font-family: var(--f-body); font-size: var(--t-label); letter-spacing: .24em; text-transform: uppercase; font-weight: 500; color: var(--onyx); margin-bottom: 14px; }
.f-block { padding-block: 22px; border-bottom: 1px solid var(--line); }
.f-block:first-child { padding-top: 0; }
.f-list { display: grid; gap: 10px; font-size: .9rem; }
.f-list label { display: flex; justify-content: space-between; align-items: center; gap: 10px; cursor: pointer; }
.f-list label span:first-child { display: flex; gap: 10px; align-items: center; }
.f-list input { accent-color: var(--onyx); width: 15px; height: 15px; }
.f-list small { color: var(--muted); font-size: .75rem; }
.f-colors { display: flex; flex-wrap: wrap; gap: 10px; }
.f-colors button { width: 28px; height: 28px; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 1px rgba(0,0,0,.12); position: relative; }
.f-colors button.on::after { content: ""; position: absolute; inset: -4px; border: 1px solid var(--onyx); border-radius: 50%; }
.range { display: grid; gap: 10px; }
.range input[type=range] { width: 100%; accent-color: var(--gold); }
.range .vals { display: flex; justify-content: space-between; font-size: .8125rem; font-variant-numeric: tabular-nums; }
.toolbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 28px; flex-wrap: wrap; }
.toolbar .count { font-size: .875rem; color: var(--muted); }
.toolbar .right { display: flex; gap: 14px; align-items: center; }
.toolbar .select { min-height: 42px; width: auto; font-size: .8125rem; }
.view-btns { display: flex; gap: 4px; }
.view-btns button { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid transparent; color: var(--muted); }
.view-btns button.on { border-color: var(--line-strong); color: var(--onyx); }
.active-filters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }
.active-filters .chip { display: inline-flex; gap: 8px; align-items: center; font-size: .75rem; }
.filter-toggle { display: none; }
.region-note { display: flex; gap: 12px; align-items: center; background: var(--paper); border: 1px solid var(--line); padding: 14px 18px; font-size: .8125rem; margin-bottom: 28px; }
.region-note .icon { color: var(--gold); }
.region-note button { margin-left: auto; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }

/* ============================ PRODUCT ============================ */
.pdp { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); padding-block: 28px var(--section); }
.gallery { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 16px; position: sticky; top: 96px; align-self: start; }
.thumbs { display: grid; gap: 10px; align-content: start; }
.thumbs button { aspect-ratio: 3/4; position: relative; opacity: .55; transition: opacity .3s; border: 1px solid transparent; }
.thumbs button.on { opacity: 1; border-color: var(--onyx); }
.thumbs .ph { position: absolute; inset: 0; }
.thumbs .ph::after { display: none; }
.stage { position: relative; aspect-ratio: 3/4; overflow: hidden; cursor: zoom-in; }
.stage .ph { position: absolute; inset: 0; transition: opacity .5s; }
.stage .ph > img { transition: transform .3s; }
.stage.zoom .ph > img { transform: scale(1.8); }
.stage .badges { position: absolute; top: 16px; left: 16px; z-index: 3; display: flex; gap: 6px; }
.stage .nav { position: absolute; z-index: 3; top: 50%; translate: 0 -50%; width: 44px; height: 44px; border-radius: 50%; background: rgba(255,252,247,.9); display: grid; place-items: center; }
.stage .nav.prev { left: 14px; } .stage .nav.next { right: 14px; }
.pdp-info { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-content: start; min-width: 0; }
.pdp-info h1 { font-size: clamp(2rem, 1.5rem + 1.8vw, 3.1rem); font-weight: 400; }
.pdp-info .price { font-size: 1.35rem; }
.rating-row { display: flex; gap: 10px; align-items: center; font-size: .8125rem; color: var(--muted); }
.rating-row .stars { display: flex; gap: 2px; color: var(--gold); }
.rating-row .stars .icon { width: 14px; height: 14px; fill: currentColor; }
.sold-by { display: flex; gap: 14px; align-items: center; padding: 16px 18px; background: var(--paper); border: 1px solid var(--line); }
.sold-by .av { width: 46px; height: 46px; border-radius: 50%; background: var(--onyx); color: var(--gold-soft); display: grid; place-items: center; font-family: var(--f-display); font-size: 1.3rem; flex: none; }
.sold-by b { font-weight: 500; color: var(--onyx); }
.sold-by small { display: block; color: var(--muted); font-size: .75rem; }
.sold-by a.link-line { margin-left: auto; font-size: .625rem; }
.buy-row { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; }
.buy-row .btn.ghost { padding: 0 1.2em; }
.avail { border: 1px solid var(--line); }
.avail-head { padding: 14px 18px; font-size: .6875rem; letter-spacing: .2em; text-transform: uppercase; color: var(--onyx); font-weight: 500; border-bottom: 1px solid var(--line); display: flex; gap: 10px; align-items: center; }
.avail-head .icon { width: 16px; color: var(--gold); }
.avail-row { display: flex; justify-content: space-between; gap: 12px; padding: 12px 18px; font-size: .875rem; align-items: center; }
.avail-row + .avail-row { border-top: 1px solid var(--line); }
.dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; margin-right: 8px; background: var(--success); }
.dot.no { background: var(--muted); opacity: .5; }
.dot.low { background: #b7791f; }
.perks { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; font-size: .8125rem; }
.perks div { display: flex; gap: 10px; align-items: center; }
.perks .icon { color: var(--gold); width: 20px; height: 20px; }
.consult { display: flex; gap: 16px; align-items: center; background: var(--maroon); color: #f0e3cf; padding: 18px 20px; }
.consult b { font-family: var(--f-display); font-weight: 400; font-size: 1.2rem; color: #fff; display: block; }
.consult span { font-size: .8125rem; color: rgba(240,227,207,.75); }
.consult .icon { color: var(--gold-soft); width: 28px; height: 28px; flex: none; }
.consult .btn { margin-left: auto; }
.tab-panel { padding-top: 22px; font-size: .9375rem; }
.tab-panel ul { padding-left: 18px; margin: 0; display: grid; gap: 6px; }
.sticky-buy { position: fixed; left: 0; right: 0; bottom: 0; z-index: 65; background: rgba(255,252,247,.97); border-top: 1px solid var(--line); transform: translateY(110%); transition: transform .5s var(--ease-out); padding-bottom: env(safe-area-inset-bottom, 0px); }
.sticky-buy { visibility: hidden; } .sticky-buy.on { transform: none; visibility: visible; }
.sticky-buy .container { display: flex; align-items: center; gap: 16px; padding-block: 12px; }
.sticky-buy .ph { width: 44px; aspect-ratio: 3/4; flex: none; }
.sticky-buy .ph::after { display: none; }
.sticky-buy .n { min-width: 0; flex: 1; }
.sticky-buy .n b { font-family: var(--f-display); font-weight: 500; font-size: 1.1rem; color: var(--onyx); display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ============================ CART / CHECKOUT ============================ */
.cart-layout { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: clamp(32px, 4vw, 64px); padding-block: 48px var(--section); align-items: start; }
.cart-table .ci { grid-template-columns: 120px 1fr; gap: 22px; padding-block: 20px; }
.cart-table .ci + .ci { border-top: 1px solid var(--line); }
.cart-table .ci h4 { font-size: 1.4rem; }
.summary { background: var(--paper); border: 1px solid var(--line); padding: 32px; position: sticky; top: 100px; display: grid; gap: 8px; }
.summary h3 { margin-bottom: 14px; }
.summary .coupon { display: flex; margin-block: 12px; }
.summary .coupon .input { min-height: 46px; }
.summary .coupon .btn { min-height: 46px; }
.summary .secure { display: flex; gap: 10px; align-items: center; justify-content: center; font-size: .75rem; color: var(--muted); margin-top: 10px; }
.summary .secure .icon { width: 16px; color: var(--success); }
.checkout-steps { display: flex; gap: 12px; align-items: center; justify-content: center; font-size: .6875rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); padding-block: 26px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.checkout-steps b { color: var(--onyx); font-weight: 500; }
.checkout-steps i { width: 30px; height: 1px; background: var(--line-strong); }
.co-section { padding-block: 28px; border-bottom: 1px solid var(--line); }
.co-section:first-child { padding-top: 0; }
.co-section h3 { margin-bottom: 20px; display: flex; gap: 14px; align-items: baseline; }
.co-section h3 small { font-family: var(--f-body); font-size: .75rem; color: var(--gold); letter-spacing: .2em; }
.radio-cards { display: grid; gap: 10px; }
.radio-card { display: flex; gap: 14px; align-items: center; border: 1px solid var(--line-strong); padding: 16px 18px; cursor: pointer; transition: border-color .3s, background .3s; }
.radio-card:has(input:checked) { border-color: var(--onyx); background: var(--paper); }
.radio-card input { accent-color: var(--onyx); width: 16px; height: 16px; }
.radio-card .r { margin-left: auto; font-size: .875rem; font-variant-numeric: tabular-nums; }
.radio-card small { display: block; color: var(--muted); font-size: .75rem; }
.sum-lines .ci { grid-template-columns: 64px 1fr auto; gap: 14px; align-items: center; }
.sum-lines .ci h4 { font-size: 1rem; }
.sum-lines .ph { position: relative; }
.sum-lines .qtyb { position: absolute; top: -8px; right: -8px; z-index: 2; background: var(--onyx); color: #fff; width: 20px; height: 20px; border-radius: 50%; font-size: .6875rem; display: grid; place-items: center; }
.confirm { text-align: center; padding-block: var(--section); display: grid; gap: 18px; justify-items: center; }
.confirm .seal-ok { width: 84px; height: 84px; border-radius: 50%; border: 1px solid var(--gold); display: grid; place-items: center; color: var(--gold); }
.confirm .seal-ok .icon { width: 36px; height: 36px; }

/* ============================ BRIDAL ============================ */
.b-hero { position: relative; min-height: min(76vh, 720px); display: grid; align-items: end; color: #fff; overflow: hidden; background: var(--maroon); }
.b-hero > .ph { position: absolute; inset: 0; }
.b-hero > .ph::after { display: none; }
.b-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,4,8,.25), rgba(20,4,8,.8)); }
.b-hero .container { position: relative; z-index: 1; padding-block: 120px clamp(56px, 7vw, 100px); text-align: center; }
.b-hero h1 { color: #fff; font-size: var(--t-hero); font-weight: 300; }
.b-hero h1 em { color: var(--gold-soft); }
.b-hero p { color: rgba(255,255,255,.82); max-width: 54ch; margin: 22px auto 34px; font-size: 1.0625rem; }
.b-hero .eyebrow { color: var(--gold-soft); }
.process { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; counter-reset: s; }
.process > div { padding: 34px 28px 30px; border-left: 1px solid var(--line); position: relative; }
.process > div:first-child { border-left: 0; }
.process .n { font-family: var(--f-display); font-size: 3.4rem; font-weight: 300; color: var(--gold); line-height: 1; }
.process h3 { margin: 18px 0 10px; font-size: 1.5rem; }
.process p { font-size: .9rem; color: var(--muted); }
.lookbook { display: grid; grid-template-columns: repeat(12, 1fr); gap: 14px; }
.lookbook > a { position: relative; overflow: hidden; display: block; }
.lookbook > a .ph { position: absolute; inset: 0; transition: transform 1.2s var(--ease-out); }
.lookbook > a:hover .ph { transform: scale(1.04); }
.lookbook > a .cap { position: absolute; z-index: 2; left: 18px; bottom: 16px; color: #fff; font-family: var(--f-display); font-size: 1.3rem; font-style: italic; }
.lookbook > a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(0,0,0,.55)); }
.lb1 { grid-column: span 5; aspect-ratio: 3/4; } .lb2 { grid-column: span 4; aspect-ratio: 3/4.5; margin-top: 60px; } .lb3 { grid-column: span 3; aspect-ratio: 3/4; }
.lb4 { grid-column: span 4; aspect-ratio: 4/3; } .lb5 { grid-column: span 8; aspect-ratio: 16/8.4; }
.book { display: grid; grid-template-columns: 1fr 1.2fr; gap: 0; background: var(--paper); border: 1px solid var(--line); }
.book-side { background: var(--onyx); color: #efe4d0; padding: clamp(28px, 4vw, 56px); display: grid; gap: 26px; align-content: start; position: relative; overflow: hidden; }
.book-side h2 { color: #fbf4e6; font-weight: 300; }
.book-side h2 em { color: var(--gold-soft); }
.book-side ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 16px; font-size: .9rem; }
.book-side li { display: flex; gap: 14px; }
.book-side li .icon { color: var(--gold-soft); }
.book-form { padding: clamp(28px, 4vw, 56px); display: grid; gap: 22px; }
.mode-toggle { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line-strong); }
.mode-toggle button { padding: 14px; font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; display: flex; gap: 10px; align-items: center; justify-content: center; }
.mode-toggle button.on { background: var(--onyx); color: var(--ivory); }
.slots { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.slots button { border: 1px solid var(--line-strong); padding: 10px 6px; font-size: .8125rem; font-variant-numeric: tabular-nums; }
.slots button.on { background: var(--onyx); color: var(--ivory); border-color: var(--onyx); }
.slots button:disabled { opacity: .35; text-decoration: line-through; cursor: not-allowed; }
.days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.days button { border: 1px solid var(--line-strong); padding: 10px 2px; display: grid; gap: 2px; font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; }
.days button b { font-family: var(--f-display); font-size: 1.4rem; font-weight: 400; letter-spacing: 0; color: var(--onyx); }
.days button.on { background: var(--onyx); color: var(--gold-soft); border-color: var(--onyx); }
.days button.on b { color: #fff; }

/* ============================ ATELIERS ============================ */
.at-list { display: grid; gap: clamp(40px, 6vw, 80px); }
.at-row { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(28px, 5vw, 80px); align-items: center; }
.at-row:nth-child(even) .at-img { order: 2; }
.at-img { position: relative; aspect-ratio: 5/4; }
.at-img .ph { position: absolute; inset: 0; }
.at-info { display: grid; gap: 16px; }
.at-info h2 { font-size: clamp(2.2rem, 1.6rem + 2vw, 3.4rem); }
.at-meta { display: grid; gap: 10px; font-size: .9rem; margin: 6px 0 10px; }
.at-meta div { display: flex; gap: 12px; align-items: center; }
.at-meta .icon { color: var(--gold); width: 18px; }
.region-tabs { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin-bottom: 56px; }
.store-banner { position: relative; color: #fff; overflow: hidden; }
.store-banner .ph { position: absolute; inset: 0; }
.store-banner .ph::after { display: none; }
.store-banner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10,6,4,.8), rgba(10,6,4,.15)); }
.store-banner .container { position: relative; z-index: 1; padding-block: clamp(90px, 12vw, 170px) 40px; display: flex; gap: 24px; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; }
.store-banner h1 { color: #fff; font-weight: 300; }
.store-banner .crumbs { justify-content: flex-start; color: rgba(255,255,255,.7); }
.store-id { display: flex; gap: 20px; align-items: center; }
.store-id .av { width: 84px; height: 84px; border-radius: 50%; background: var(--paper); color: var(--maroon); display: grid; place-items: center; font-family: var(--f-display); font-size: 2.2rem; flex: none; border: 3px solid var(--gold-soft); }
.store-stats { display: flex; gap: 28px; font-size: .8125rem; color: rgba(255,255,255,.8); flex-wrap: wrap; }
.store-stats b { display: block; font-family: var(--f-display); font-size: 1.6rem; color: #fff; font-weight: 400; }
.store-layout { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 48px; padding-block: 48px var(--section); }
.store-card { background: var(--paper); border: 1px solid var(--line); padding: 28px; display: grid; gap: 18px; position: sticky; top: 100px; align-self: start; }

/* ============================ ABOUT / CONTACT / ACCOUNT ============================ */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 100px); align-items: center; }
.split .img { position: relative; aspect-ratio: 4/5; }
.split .img .ph { position: absolute; inset: 0; }
.split .img.arch { border-radius: 999px 999px 0 0; overflow: hidden; }
.prose { display: grid; gap: 18px; }
.prose p { font-size: 1.0625rem; }
.dropcap::first-letter { font-family: var(--f-display); float: left; font-size: 4.6rem; line-height: .8; padding: 8px 12px 0 0; color: var(--gold); }
.timeline { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; border-top: 1px solid var(--line-strong); }
.timeline > div { padding: 26px 22px 0 0; position: relative; }
.timeline > div::before { content: ""; position: absolute; top: -5px; left: 0; width: 9px; height: 9px; border-radius: 50%; background: var(--gold); }
.timeline b { font-family: var(--f-display); font-size: 2.2rem; font-weight: 300; color: var(--onyx); display: block; line-height: 1; margin-bottom: 10px; }
.timeline p { font-size: .875rem; color: var(--muted); }
.values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.values > div { background: var(--ivory); padding: 40px 32px; display: grid; gap: 14px; }
.values .icon { width: 34px; height: 34px; color: var(--gold); stroke-width: 1; }
.contact-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(32px, 5vw, 80px); }
.contact-cards { display: grid; gap: 14px; }
.contact-card { border: 1px solid var(--line); padding: 22px 24px; display: grid; gap: 6px; background: var(--paper); }
.contact-card b { font-family: var(--f-display); font-weight: 500; font-size: 1.25rem; color: var(--onyx); }
.contact-card span { font-size: .875rem; color: var(--muted); }
.acct { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--line); background: var(--paper); max-width: 1000px; margin-inline: auto; }
.acct > div { padding: clamp(28px, 4vw, 56px); display: grid; gap: 18px; align-content: start; }
.acct > div + div { border-left: 1px solid var(--line); }
.dash { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 48px; }
.dash-nav { display: grid; gap: 2px; align-content: start; }
.dash-nav button { text-align: left; padding: 14px 16px; font-size: .8125rem; letter-spacing: .12em; text-transform: uppercase; border-left: 1px solid var(--line); }
.dash-nav button.on { border-color: var(--gold); color: var(--onyx); background: var(--paper); }
.status { font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; padding: 4px 10px; border-radius: 99px; background: var(--sand); color: var(--onyx); }
.status.ok { background: #e3eee6; color: var(--success); }
.status.go { background: #f4ead7; color: #8a6420; }
.track { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 18px; }
.track div { text-align: center; font-size: .75rem; color: var(--muted); position: relative; padding-top: 22px; }
.track div::before { content: ""; position: absolute; top: 5px; left: 0; right: 0; height: 1px; background: var(--line-strong); }
.track div::after { content: ""; position: absolute; top: 0; left: 50%; translate: -50% 0; width: 11px; height: 11px; border-radius: 50%; background: var(--paper); border: 1px solid var(--line-strong); }
.track div.done { color: var(--onyx); }
.track div.done::after { background: var(--gold); border-color: var(--gold); }
.track div.done::before { background: var(--gold); }

/* =============================== RESPONSIVE =============================== */
@media (max-width: 1024px) {
  .hs-stage { height: 520px; }
  .hs-slide { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); }
  .hs-copy { padding: 40px 36px 40px var(--gutter); }
  .hs-in h1 { font-size: 2.6rem; }
  .svc-row { grid-template-columns: repeat(2, 1fr); }
  .svc-item:nth-child(3) { border-left: 0; }
  .svc-item:nth-child(n+3) { border-top: 1px solid var(--line); }
  .hero .container { grid-template-columns: minmax(0, 1fr); }
  .hero-art { justify-self: center; width: min(78%, 440px); margin-top: 12px; }
  .seal { right: -20px; width: 110px; height: 110px; }
  .cats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .bridal-spot .container, .look, .split, .at-row, .contact-grid { grid-template-columns: minmax(0, 1fr); }
  .at-row:nth-child(even) .at-img { order: 0; }
  .atelier-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .craft-nums { grid-template-columns: repeat(2, 1fr); }
  .promises { grid-template-columns: repeat(2, 1fr); }
  .promise:nth-child(3) { border-left: 0; }
  .promise:nth-child(n+3) { border-top: 1px solid var(--line); }
  .shop-layout { grid-template-columns: minmax(0, 1fr); }
  .filters { position: fixed; top: 0; bottom: 0; left: 0; width: min(360px, 90vw); max-height: none; background: var(--paper); z-index: 100; padding: 24px; transform: translateX(-100%); transition: transform .5s var(--ease-out); }
  .filters.on { transform: none; }
  .filter-toggle { display: inline-flex; }
  .pdp { grid-template-columns: minmax(0, 1fr); }
  .gallery { position: static; }
  .cart-layout { grid-template-columns: minmax(0, 1fr); }
  .summary { position: static; }
  .process { grid-template-columns: 1fr 1fr; }
  .process > div:nth-child(3) { border-left: 0; }
  .process > div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .book { grid-template-columns: minmax(0, 1fr); }
  .store-layout { grid-template-columns: minmax(0, 1fr); }
  .store-card { position: static; }
  .timeline { grid-template-columns: repeat(3, 1fr); row-gap: 30px; }
  .stories { grid-template-columns: minmax(0, 1fr); }
  .insta { grid-template-columns: repeat(3, 1fr); }
  .occ { flex-direction: column; height: auto; }
  .occ-panel { flex: none; height: 180px; }
  .occ-panel:hover, .occ-panel.on { flex: none; height: 180px; }
  .occ-panel .cap .link-line { opacity: 1; transform: none; }
}
@media (max-width: 768px) {
  .toolbar { flex-wrap: nowrap; }
  .toolbar .right label[for=sortSel], .view-btns { display: none; }
  .toolbar .select { max-width: 170px; }
  .region-note { font-size: .75rem; }
  .hs-stage { height: auto; display: grid; }
  .hs-slide { position: relative; grid-area: 1 / 1; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr; }
  .hs-media { order: -1; aspect-ratio: 4 / 3.4; }
  .hs-media.duo { aspect-ratio: 4 / 3.4; }
  .hs-copy { padding: 32px var(--gutter) 36px; }
  .hs-copy::after { width: 80px; height: 80px; right: 16px; bottom: 16px; }
  .hs-arrows { top: calc(100vw * .85 - 64px); bottom: auto; }
  .hs-tabs .l { font-size: .625rem; letter-spacing: .1em; }
  .hs-tabs { gap: 12px; }
  .hs-in h1 { font-size: 2.3rem; }
  .hs-in p { font-size: .9375rem; }
  .hs-arrows button { width: 40px; height: 40px; }
  .svc-item { padding: 16px 12px; gap: 10px; }
  .svc-item .icon { width: 22px; height: 22px; }
  .svc-item b { font-size: .8125rem; }
  .svc-item span { font-size: .75rem; }
  .hero-mini { left: -12%; width: 40%; }
  .hero-stats b { font-size: 1.9rem; }
  .cats { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
  .cats::-webkit-scrollbar { display: none; }
  .cat-card { flex: 0 0 42%; scroll-snap-align: start; }
  .steps-mini { grid-template-columns: 1fr; gap: 14px; }
  .gallery { grid-template-columns: minmax(0, 1fr); }
  .thumbs { grid-auto-flow: column; grid-auto-columns: 64px; order: 2; overflow-x: auto; }
  .buy-row { grid-template-columns: 1fr auto; }
  .buy-row .qty { grid-column: 1 / -1; width: max-content; }
  .perks { grid-template-columns: minmax(0, 1fr); }
  .consult { flex-wrap: wrap; }
  .consult .btn { margin-left: 0; width: 100%; }
  .acct { grid-template-columns: minmax(0, 1fr); }
  .acct > div + div { border-left: 0; border-top: 1px solid var(--line); }
  .dash { grid-template-columns: 1fr; gap: 24px; }
  .dash-nav { grid-auto-flow: column; overflow-x: auto; }
  .lookbook > a { grid-column: span 12 !important; aspect-ratio: 4/5 !important; margin-top: 0 !important; }
  .lookbook > a.lb5 { aspect-ratio: 4/3 !important; }
  .values { grid-template-columns: minmax(0, 1fr); }
  .slots { grid-template-columns: repeat(3, 1fr); }
  .timeline { grid-template-columns: 1fr 1fr; }
  .store-id .av { width: 64px; height: 64px; font-size: 1.7rem; }
  .look-item { grid-template-columns: 70px 1fr auto; }
}
@media (max-width: 480px) {
  .hs-tabs .l { display: none; }
  .hs-tabs button { grid-template-columns: 1fr; }
  .svc-item span { display: none; }
  .svc-item { padding: 14px 10px; }
  .atelier-grid { grid-template-columns: minmax(0, 1fr); }
  .craft-nums { grid-template-columns: 1fr 1fr; gap: 18px; }
  .promises { grid-template-columns: minmax(0, 1fr); }
  .promise + .promise { border-left: 0; border-top: 1px solid var(--line); }
  .process { grid-template-columns: minmax(0, 1fr); }
  .process > div { border-left: 0 !important; border-top: 1px solid var(--line); }
  .process > div:first-child { border-top: 0; }
  .insta { grid-template-columns: repeat(2, 1fr); }
  .seal { display: none; }
  .hero-tag { display: none; }
  .days { grid-template-columns: repeat(4, 1fr); }
  .cart-table .ci { grid-template-columns: 90px 1fr; }
}

/* =========================================================================
   WordPress / options layer
   ========================================================================= */
:root { --header-bg:#fff; --nav-bg:#fff; --topbar-bg:#16120E; --topbar-fg:#D8C39C; --footer-bg:#16120E; --footer-fg:#C9C0B3; --sale:#5A1823;
  --btn-h:52px; --btn-radius:0; --img-radius:0; --hdr-h:92px; --hdr-h-sticky:66px; --logo-h:62px; --logo-h-sticky:44px; --nav-h:50px; --nav-fs:12px; --nav-gap:36px;
  --hdr-icon:22px; --shop-cols:3; --grid-gap:30px; --card-ratio:3/4.2; --card-title:21px; --footer-cols:4; --footer-logo:70px; --topbar-h:38px;
  --t-h1:64px; --t-h2:48px; --t-h3:28px; }
.screen-reader-text { border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; margin:-1px; overflow:hidden; padding:0; position:absolute!important; width:1px; word-wrap:normal!important; }
.skip-link { position:absolute; left:-9999px; top:8px; z-index:999; background:var(--onyx); color:#fff; padding:10px 16px; }
.skip-link:focus { left:8px; }
.hp { position:absolute!important; left:-9999px!important; opacity:0; }
.h1 { font-size:var(--t-h1); }
.container.narrow { max-width: calc(900px + var(--gutter) * 2); }
.section-foot { margin-top: clamp(32px, 4vw, 56px); }
.small { font-size: .8125rem; }
.sel { user-select: all; }

/* Device visibility (tablet ≤1024, mobile ≤767) */
.prems-hide { display:none!important; }
@media (min-width:1025px) { .prems-hide-d { display:none!important; } }
@media (min-width:768px) and (max-width:1024px) { .prems-hide-t { display:none!important; } }
@media (max-width:767px) { .prems-hide-m { display:none!important; } }

/* Sticky header per device */
@media (min-width:1025px) { body.sticky-d .site-header { position: sticky; } }
@media (min-width:768px) and (max-width:1024px) { body.sticky-t .site-header { position: sticky; } }
@media (max-width:767px) { body.sticky-m .site-header { position: sticky; } }
body.admin-bar .site-header { top: 32px; }
@media (max-width:782px) { body.admin-bar .site-header { top: 46px; } }
@media (max-width:600px) { body.admin-bar .site-header { top: 0; } }
.logo .logo-sticky { display:none; }
.site-header.scrolled .logo:has(.logo-sticky) .logo-main { display:none; }
.site-header.scrolled .logo .logo-sticky { display:block; }
.logo-word { font-family: var(--f-display); font-size: 1.8rem; letter-spacing: .2em; color: var(--onyx); }
.h-btn .icon, .h-act .icon { width: var(--hdr-icon); height: var(--hdr-icon); }

/* Search field vs icon per device */
@media (min-width:1025px) { body.search-d-icon .h-search { width:42px; height:42px; padding:0; justify-content:center; border:0; } body.search-d-icon .h-search span { display:none; } body.search-d-field .h-search { width:min(100%,320px); height:44px; padding:0 18px; border:1px solid var(--line-strong); justify-content:flex-start; } body.search-d-field .h-search span { display:inline; } }
@media (min-width:768px) and (max-width:1024px) { body.search-t-icon .h-search { width:42px; height:42px; padding:0; justify-content:center; border:0; } body.search-t-icon .h-search span { display:none; } body.search-t-field .h-search { width:min(100%,260px); height:42px; padding:0 16px; border:1px solid var(--line-strong); justify-content:flex-start; } body.search-t-field .h-search span { display:inline; } }
@media (max-width:767px) { body.search-m-icon .h-search { width:40px; height:40px; padding:0; justify-content:center; border:0; } body.search-m-icon .h-search span { display:none; } body.search-m-field .h-search { width:100%; height:40px; padding:0 12px; border:1px solid var(--line-strong); } body.search-m-field .h-search span { display:inline; } }
/* Region switcher label per device */
@media (min-width:1025px) { body.region-d-flag .region-act .t { display:none; } body.region-d-full .region-act .t { display:grid; } }
@media (min-width:768px) and (max-width:1024px) { body.region-t-flag .region-act .t { display:none; } body.region-t-full .region-act .t { display:grid; } }
@media (max-width:767px) { body.region-m-flag .region-act .t { display:none; } body.region-m-full .region-act .t { display:grid; } }

/* Header layouts */
.hdr-center { display:flex; justify-content:center; min-width:0; }
body.hdr-layout-left .hdr-grid { grid-template-columns: auto 1fr auto; }
body.hdr-layout-left .hdr-left .logo { justify-content:flex-start; }
body.hdr-layout-left .hdr-center .h-search { width:min(100%,520px); }
body.hdr-layout-inline .hdr-grid { grid-template-columns: auto 1fr auto; }
body.hdr-layout-inline .hdr-inline-nav .nav-main { height: var(--hdr-h); }
body.hdr-layout-inline .site-header.scrolled .hdr-inline-nav .nav-main { height: var(--hdr-h-sticky); }
@media (max-width:1024px) { body.hdr-layout-inline .hdr-inline-nav { display:none; } body.hdr-layout-left .hdr-center { display:none; } }

/* Regular dropdowns + mega */
.nav-main > li { position: relative; }
.nav-main > li.has-mega { position: static; }
.nav-main .sub-menu { position:absolute; top:100%; left:-18px; min-width:230px; list-style:none; margin:0; padding:14px 0; background:var(--paper); border:1px solid var(--line); box-shadow:0 20px 40px -24px rgba(22,18,14,.25); opacity:0; visibility:hidden; transform:translateY(6px); transition:all .35s var(--ease-out); z-index:6; }
.nav-main > li:hover > .sub-menu, .nav-main > li:focus-within > .sub-menu { opacity:1; visibility:visible; transform:none; }
.nav-main .sub-menu a { display:block; padding:8px 22px; font-size:.875rem; color:var(--ink); white-space:nowrap; }
.nav-main .sub-menu a:hover { color:var(--gold); }
.menu-badge { font-style:normal; font-size:.5625rem; letter-spacing:.1em; background:var(--maroon); color:#fff; padding:2px 6px; border-radius:99px; margin-left:4px; }
.mega > .container { display:block; padding-block: 0; }
.mega .prems-block { padding-block: 36px 40px; }
.mega-container { left: 50%; right: auto; width: min(var(--container), 100vw); transform: translate(-50%, 8px); }
.nav-main > li:hover .mega-container { transform: translate(-50%, 0); }
.mega-cols { display:grid; grid-template-columns: repeat(3, 1fr) 1.3fr 1.3fr; gap:40px; }
.mega-cols h4 { font-family: var(--f-body); font-size: var(--t-label); letter-spacing: .26em; text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: 18px; }
.mega-cols ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.mega-cols ul a { font-family: var(--f-display); font-size: 1.2rem; color: var(--onyx); }
.mega-cols ul a:hover { color: var(--gold); }

/* Mobile drawer menu */
.mobile-menu { list-style:none; margin:12px 0 0; padding:0; }
.mobile-menu > li { border-bottom:1px solid var(--line); }
.mobile-menu > li > a, .mobile-menu .acc-row > a { display:block; padding:16px 0; font-family:var(--f-display); font-size:1.4rem; color:var(--onyx); flex:1; }
.mobile-menu .acc-row { display:flex; align-items:center; }
.mobile-menu .acc-toggle { width:40px; height:40px; display:grid; place-items:center; }
.mobile-menu .acc-toggle .pm { width:14px; height:14px; position:relative; }
.mobile-menu .acc-toggle .pm::before, .mobile-menu .acc-toggle .pm::after { content:""; position:absolute; left:0; right:0; top:50%; height:1px; background:currentColor; transition:transform .4s var(--ease); }
.mobile-menu .acc-toggle .pm::after { transform:rotate(90deg); }
.mobile-menu .acc-item.open .acc-toggle .pm::after { transform:rotate(0); }
.mobile-menu .sub-menu { list-style:none; margin:0; padding:0 0 16px; display:grid; gap:12px; }
.mobile-menu .sub-menu a { color:var(--ink); }
.drawer-ctas { display:grid; gap:12px; margin:28px 0; }
.drawer .logo img { height: 40px; }

/* Side cart */
.drawer .widget_shopping_cart_content { flex:1; display:flex; flex-direction:column; min-height:0; }
.drawer .widget_shopping_cart_content .drawer-body { flex:1; }
.drawer-body .ship-meter { padding-top: 18px; }
.ci .ph { aspect-ratio:3/4; display:block; }
.ci .ph img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ci-body { min-width:0; }
.ci h4 { font-size:1.15rem; }
.ci .price { font-size:.875rem; margin-top:4px; }
.qty.sm input { pointer-events:none; }
.foot-btns { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:16px; }
.gift-hint { display:flex; gap:10px; align-items:center; font-size:.8125rem; padding:18px 0; }
.drawer .blockUI.blockOverlay { background: rgba(255,252,247,.6)!important; }

/* Product grids */
.prems-pgrid { grid-template-columns: repeat(var(--shop-cols, 3), minmax(0, 1fr)); }
.prems-ptabs .prems-pgrid { --shop-cols: 4; }
@media (max-width:1024px) { .prems-ptabs .prems-pgrid { --shop-cols: 3; } }
@media (max-width:767px) { .prems-ptabs .prems-pgrid, .loop-related, .loop-up-sells, .recent-products .prems-pgrid, .prems-wishlist { --shop-cols: 2 !important; } }
.card .added_to_cart { display:none !important; }
.card .media .ph { position:absolute; inset:0; }
.card .media .ph img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition: transform 1.4s var(--ease-out); }
.card .actions .btn.loading { opacity:.7; }
.card .actions .btn.added::after { content:"✓"; margin-left:6px; }
.badge.out { background: var(--muted); color:#fff; }
.card .price del { color: var(--muted); font-size: .8125rem; order:2; }
.card .price ins, .price ins { text-decoration:none; color: var(--maroon); }
.price .woocommerce-Price-currencySymbol { margin-right: 1px; }
.price del .amount { color: var(--muted); }
/* Add-to-bag placement per device */
@media (min-width:1025px) {
  body.card-act-d-below .card .actions { position:static; transform:none; margin-top:10px; } body.card-act-d-below .card .actions .qv { border:1px solid var(--line-strong); }
  body.card-act-d-none .card .actions { display:none; }
}
@media (min-width:768px) and (max-width:1024px) {
  body.card-act-t-hover .card .actions { position:absolute; transform:translateY(calc(100% + 16px)); margin:0; } body.card-act-t-hover .card:hover .actions { transform:none; }
  body.card-act-t-none .card .actions { display:none; }
}
@media (max-width:767px) {
  body.card-act-m-hover .card .actions { position:absolute; transform:translateY(calc(100% + 16px)); margin:0; }
  body.card-act-m-none .card .actions { display:none; }
}
body.no-hover-image .card .media .ph.alt { display:none; }

/* Shop */
.woo-main { min-height: 40vh; }
.shop-hero:not(.has-image) { background: radial-gradient(80% 120% at 80% 30%, #6b1a2a, #1a0a0d); }
.shop-hero h1 { font-size: var(--t-h1); }
.shop-wrap { padding-bottom: var(--section); }
.shop-layout { grid-template-columns: 260px minmax(0,1fr); }
.f-head { display:flex; justify-content:space-between; align-items:center; margin-bottom: 6px; }
.f-head h4 { margin:0; font-family: var(--f-body); font-size: var(--t-label); letter-spacing: .24em; text-transform: uppercase; font-weight:500; color:var(--onyx); }
.f-head .x-btn { display:none; }
.f-list a { display:flex; justify-content:space-between; gap:10px; color:var(--ink); }
.f-list a.on, .f-list a:hover { color: var(--gold); }
.f-list a small, .f-list label small { color: var(--muted); font-size: .75rem; }
.f-colors label { position:relative; cursor:pointer; }
.f-colors input, .f-sizes input { position:absolute; opacity:0; pointer-events:none; }
.f-colors label > span:not(.screen-reader-text) { display:block; width:28px; height:28px; border-radius:50%; background:var(--c); box-shadow: inset 0 0 0 1px rgba(0,0,0,.12); position:relative; }
.f-colors input:checked + span::after { content:""; position:absolute; inset:-4px; border:1px solid var(--onyx); border-radius:50%; }
.f-colors input:focus-visible + span { outline:1px solid var(--gold); outline-offset:3px; }
.f-sizes { display:flex; flex-wrap:wrap; gap:6px; }
.f-sizes span { display:inline-grid; place-items:center; min-width:44px; height:36px; padding:0 10px; border:1px solid var(--line-strong); font-size:.8125rem; cursor:pointer; }
.f-sizes input:checked + span { background:var(--onyx); color:var(--ivory); border-color:var(--onyx); }
.f-price { display:grid; grid-template-columns:1fr auto 1fr; gap:8px; align-items:center; }
.f-price .input { min-height:42px; padding:8px 10px; }
.f-actions { display:grid; gap:8px; padding-top:20px; }
.js .f-form[data-autosubmit] .f-actions .btn[type=submit] { display:none; }
.f-widgets { padding-top: 22px; }
.f-widgets .widget { margin-bottom: 24px; }
.toolbar .tb-l, .toolbar .tb-r { display:flex; gap:14px; align-items:center; }
.woocommerce-ordering { margin:0; }
.woocommerce-ordering select { min-height:42px; padding:8px 36px 8px 14px; border:1px solid var(--line-strong); background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%2316120E' stroke-width='1.2'%3E%3Cpath d='M2 4.5l4 4 4-4'/%3E%3C/svg%3E") no-repeat right 12px center; appearance:none; -webkit-appearance:none; font-size:.8125rem; }
.region-note.stacked { flex-wrap:wrap; }
.region-note .chips { display:flex; gap:8px; flex-wrap:wrap; width:100%; }
.load-more-wrap { margin-top:56px; display:grid; gap:14px; justify-items:center; }
.load-more.loading { opacity:.6; pointer-events:none; }
.woocommerce-pagination { margin-top:48px; display:flex; justify-content:center; }
.woocommerce-pagination ul, .pagination .nav-links { display:flex; gap:6px; list-style:none; margin:0; padding:0; }
.woocommerce-pagination a, .woocommerce-pagination span, .pagination .page-numbers { display:grid; place-items:center; min-width:42px; height:42px; border:1px solid var(--line-strong); }
.woocommerce-pagination .current, .pagination .current { background:var(--onyx); color:var(--ivory); border-color:var(--onyx); }
/* sidebar per device */
@media (min-width:1025px) {
  body.side-d-right .shop-layout { grid-template-columns: minmax(0,1fr) 260px; } body.side-d-right .filters { order:2; }
  body.side-d-offcanvas .shop-layout, body.side-d-none .shop-layout { grid-template-columns: minmax(0,1fr); }
  body.side-d-none .filters, body.side-d-none .filter-toggle { display:none; }
  body.side-d-left .filter-toggle, body.side-d-right .filter-toggle { display:none; }
  body.side-d-offcanvas .filter-toggle { display:inline-flex; }
  body.side-d-offcanvas .filters { position:fixed; top:0; bottom:0; left:0; width:min(360px,90vw); max-height:none; background:var(--paper); z-index:100; padding:24px; transform:translateX(-100%); transition:transform .5s var(--ease-out); overflow-y:auto; }
  body.side-d-offcanvas .filters.on { transform:none; } body.side-d-offcanvas .f-head .x-btn { display:grid; }
}
@media (min-width:768px) and (max-width:1024px) {
  body.side-t-left .shop-layout { grid-template-columns: 220px minmax(0,1fr); } body.side-t-left .filters { position:sticky; transform:none; width:auto; max-height:calc(100vh - 120px); padding:0; background:none; z-index:auto; } body.side-t-left .filter-toggle { display:none; }
  body.side-t-none .filters, body.side-t-none .filter-toggle { display:none; }
  body.side-t-offcanvas .f-head .x-btn { display:grid; }
}
@media (max-width:767px) {
  body.side-m-none .filters, body.side-m-none .filter-toggle { display:none; }
  .f-head .x-btn { display:grid; }
}

/* Product page */
.single-product .woo-main { width:100%; max-width: calc(var(--container) + var(--gutter) * 2); margin-inline:auto; padding-inline: var(--gutter); padding-bottom: var(--section); }
.pdp-crumbs .crumbs { justify-content:flex-start; padding-top:28px; margin:0 0 28px; }
.single-product div.product { display:grid; grid-template-columns: minmax(0,1.25fr) minmax(0,1fr); gap: 0 clamp(32px,5vw,80px); align-items:start; }
.single-product div.product > .summary { display:grid; gap:22px; align-content:start; min-width:0; }
.single-product div.product > :not(.gallery):not(.summary) { grid-column: 1 / -1; }
.single-product div.product > .onsale { display:none; }
.single-product .related, .single-product .upsells, .recent-products { margin-top: var(--section); }
.single-product .related > h2, .single-product .upsells > h2 { font-size: var(--t-h2); margin-bottom: 36px; }
.pdp-head { display:grid; gap:12px; }
.pdp-head .product_title { font-size: clamp(2rem, 1.5rem + 1.8vw, 3.1rem); font-weight:400; }
.pdp-head .eyebrow { width:max-content; }
.pdp-price { display:grid; gap:4px; }
.pdp-price .price { font-size:1.35rem; }
.rating-row a { color: var(--muted); }
.woocommerce-product-details__short-description { font-size:1rem; }
.gallery { display:grid; grid-template-columns: 84px minmax(0,1fr); gap:16px; align-self:start; }
.gallery .thumbs { display:grid; gap:10px; align-content:start; }
.gallery .thumbs button { aspect-ratio:3/4; position:relative; opacity:.55; transition:opacity .3s; border:1px solid transparent; padding:0; }
.gallery .thumbs button .ph { position:absolute; inset:0; }
.gallery .thumbs button img { width:100%; height:100%; object-fit:cover; }
.gallery .thumbs button.on { opacity:1; border-color:var(--onyx); }
.gallery .stage { position:relative; overflow:hidden; aspect-ratio:auto; cursor:default; }
.gallery .slides { position:relative; }
.gallery .slide { margin:0; aspect-ratio:3/4; position:relative; overflow:hidden; }
.gallery .slide img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition: transform .3s; }
.gallery[data-zoom="1"] .slide { cursor: zoom-in; }
.gallery .slide.zoom img { transform: scale(1.9); }
.gallery .dots { position:absolute; left:0; right:0; bottom:14px; display:none; justify-content:center; gap:6px; z-index:3; }
.gallery .dots i { width:7px; height:7px; border-radius:50%; background:rgba(255,255,255,.6); }
.gallery .dots i.on { background:#fff; width:18px; border-radius:6px; }
.gallery .stage .nav { z-index:3; }
@media (min-width:1025px) {
  body.pdp-sticky-gallery .gallery { position:sticky; top: calc(var(--hdr-h-sticky) + var(--nav-h) + 24px); }
  body.gal-d-thumbs-left .gallery .slide:not(.on) { display:none; }
  body.gal-d-thumbs-bottom .gallery { grid-template-columns:minmax(0,1fr); } body.gal-d-thumbs-bottom .gallery .thumbs { order:2; grid-auto-flow:column; grid-auto-columns:76px; overflow-x:auto; } body.gal-d-thumbs-bottom .gallery .slide:not(.on) { display:none; }
  body.gal-d-grid .gallery { grid-template-columns:minmax(0,1fr); } body.gal-d-grid .gallery .thumbs, body.gal-d-grid .gallery .nav { display:none; } body.gal-d-grid .gallery .slides { display:grid; grid-template-columns:1fr 1fr; gap:10px; } body.gal-d-grid .gallery .slide:first-child { grid-column:1/-1; }
  body.gal-d-slider .gallery { grid-template-columns:minmax(0,1fr); } body.gal-d-slider .gallery .thumbs { display:none; } body.gal-d-slider .gallery .slides { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; } body.gal-d-slider .gallery .slide { flex:0 0 100%; scroll-snap-align:start; } body.gal-d-slider .gallery .dots { display:flex; }
}
@media (min-width:768px) and (max-width:1024px) {
  .single-product div.product { grid-template-columns: minmax(0,1fr); }
  body.gal-t-thumbs-left .gallery .slide:not(.on) { display:none; }
  body.gal-t-thumbs-bottom .gallery { grid-template-columns:minmax(0,1fr); } body.gal-t-thumbs-bottom .gallery .thumbs { order:2; grid-auto-flow:column; grid-auto-columns:76px; overflow-x:auto; } body.gal-t-thumbs-bottom .gallery .slide:not(.on) { display:none; }
  body.gal-t-grid .gallery { grid-template-columns:minmax(0,1fr); } body.gal-t-grid .gallery .thumbs, body.gal-t-grid .gallery .nav { display:none; } body.gal-t-grid .gallery .slides { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  body.gal-t-slider .gallery { grid-template-columns:minmax(0,1fr); } body.gal-t-slider .gallery .thumbs { display:none; } body.gal-t-slider .gallery .slides { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; } body.gal-t-slider .gallery .slide { flex:0 0 100%; scroll-snap-align:start; } body.gal-t-slider .gallery .dots { display:flex; }
}
@media (max-width:767px) {
  .single-product div.product { grid-template-columns: minmax(0,1fr); }
  .gallery { margin-inline: calc(var(--gutter) * -1); }
  body.gal-m-thumbs-left .gallery { margin-inline:0; } body.gal-m-thumbs-left .gallery { grid-template-columns: 60px minmax(0,1fr); gap:10px; } body.gal-m-thumbs-left .gallery .slide:not(.on) { display:none; }
  body.gal-m-thumbs-bottom .gallery { margin-inline:0; grid-template-columns:minmax(0,1fr); } body.gal-m-thumbs-bottom .gallery .thumbs { order:2; grid-auto-flow:column; grid-auto-columns:64px; overflow-x:auto; } body.gal-m-thumbs-bottom .gallery .slide:not(.on) { display:none; }
  body.gal-m-grid .gallery { grid-template-columns:minmax(0,1fr); } body.gal-m-grid .gallery .thumbs, body.gal-m-grid .gallery .nav { display:none; } body.gal-m-grid .gallery .slides { display:grid; grid-template-columns:1fr 1fr; gap:4px; } body.gal-m-grid .gallery .slide:first-child { grid-column:1/-1; }
  body.gal-m-slider .gallery { grid-template-columns:minmax(0,1fr); } body.gal-m-slider .gallery .thumbs, body.gal-m-slider .gallery .nav { display:none; } body.gal-m-slider .gallery .slides { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; } body.gal-m-slider .gallery .slides::-webkit-scrollbar { display:none; } body.gal-m-slider .gallery .slide { flex:0 0 100%; scroll-snap-align:start; } body.gal-m-slider .gallery .dots { display:flex; }
}
/* Variations, swatches, add to cart */
.single-product form.cart, .qv-info form.cart { display:grid; gap:16px; margin:0; }
form.cart:not(.variations_form), .woocommerce-variation-add-to-cart { display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:stretch; }
form.cart .buy-now { grid-column:1 / -1; }
form.cart .single_add_to_button, form.cart .single_add_to_cart_button { width:100%; }
.variations { width:100%; border-collapse:collapse; margin:0; }
.variations tr { display:grid; gap:10px; margin-bottom:16px; }
.variations th, .variations td { display:block; padding:0; text-align:left; }
.variations th label { font-size:.75rem; letter-spacing:.16em; text-transform:uppercase; color:var(--onyx); font-weight:500; }
.prems-swatch-wrap select { position:absolute!important; opacity:0; pointer-events:none; width:1px; height:1px; }
.prems-swatches { display:flex; flex-wrap:wrap; gap:8px; }
.prems-swatches .size-opt.disabled, .prems-swatches .color-opt.disabled { opacity:.35; text-decoration:line-through; }
.reset_variations { font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-top:10px; display:inline-block; }
.woocommerce-variation-price .price { font-size:1.15rem; }
.single_variation_wrap { display:grid; gap:14px; }
p.stock { font-size:.8125rem; margin:0; } p.stock.in-stock { color: var(--success); } p.stock.out-of-stock { color: var(--danger); }
.qty { display:inline-grid; grid-template-columns:40px 48px 40px; border:1px solid var(--line-strong); height:var(--btn-h,52px); align-items:center; }
.qty input.qty, .qty input.input-text { width:100%; height:100%; border:0; background:transparent; text-align:center; font-variant-numeric:tabular-nums; -moz-appearance:textfield; }
.qty input::-webkit-outer-spin-button, .qty input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.qty-btn { height:100%; font-size:1.1rem; }
.qty-btn:hover { background:var(--sand); }
.qty.sm { height:38px; grid-template-columns:32px 34px 32px; }
.qty.sm button { height:100%; }
.wish-btn { padding:0 1.2em; }
.wish-btn.on .icon { fill:var(--maroon); stroke:var(--maroon); }
.size-guide-link { font-size:.6875rem; width:max-content; }
.sold-by a.link-line { margin-left:auto; }
.sold-by small .icon { width:11px; height:11px; fill:var(--gold); color:var(--gold); vertical-align:-1px; }
.avail-row .st { font-size:.8125rem; white-space:nowrap; }
.pdp-tabs .tabs { margin-bottom: 0; }
.pdp-tabs .tab-item { border:0; }
.pdp-tabs .tab-acc { display:none; }
.pdp-tabs .tab-panel { padding-top:20px; font-size:.9375rem; }
.pdp-tabs .tab-panel[data-hidden] { display:none; }
.pdp-tabs .tab-panel h2 { font-size:1.4rem; margin-bottom:10px; }
.pdp-tabs .shop_attributes { width:100%; border-collapse:collapse; }
.pdp-tabs .shop_attributes th, .pdp-tabs .shop_attributes td { text-align:left; padding:8px 0; border-bottom:1px solid var(--line); font-weight:400; }
@media (min-width:1025px) { body.tabs-d-accordion .pdp-tabs .tabs { display:none; } body.tabs-d-accordion .pdp-tabs .tab-acc { display:flex; } body.tabs-d-accordion .pdp-tabs .tab-item { border-bottom:1px solid var(--line); } body.tabs-d-accordion .pdp-tabs .tab-panel[data-hidden] { display:grid; } body.tabs-d-accordion .pdp-tabs .tab-panel { padding-top:0; } }
@media (min-width:768px) and (max-width:1024px) { body.tabs-t-accordion .pdp-tabs .tabs { display:none; } body.tabs-t-accordion .pdp-tabs .tab-acc { display:flex; } body.tabs-t-accordion .pdp-tabs .tab-item { border-bottom:1px solid var(--line); } body.tabs-t-accordion .pdp-tabs .tab-panel[data-hidden] { display:grid; } body.tabs-t-accordion .pdp-tabs .tab-panel { padding-top:0; } }
@media (max-width:767px) { body.tabs-m-accordion .pdp-tabs .tabs { display:none; } body.tabs-m-accordion .pdp-tabs .tab-acc { display:flex; } body.tabs-m-accordion .pdp-tabs .tab-item { border-bottom:1px solid var(--line); } body.tabs-m-accordion .pdp-tabs .tab-panel[data-hidden] { display:grid; } body.tabs-m-accordion .pdp-tabs .tab-panel { padding-top:0; } }
.pdp-tabs .acc-btn { width:100%; justify-content:space-between; align-items:center; padding:18px 0; font-family:var(--f-display); font-size:1.25rem; color:var(--onyx); text-align:left; }
#reviews .commentlist { list-style:none; padding:0; display:grid; gap:18px; }
#reviews .comment_container { display:grid; grid-template-columns:44px 1fr; gap:14px; }
#reviews .avatar { border-radius:50%; }
.sticky-buy .ph { position:relative; width:44px; aspect-ratio:3/4; }
.sticky-buy .ph img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

/* Quick view */
.qv-box { width:min(1000px,100%); }
.qv-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.qv-media { position:relative; background:var(--sand); min-width:0; overflow:hidden; }
.qv-slides { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; height:100%; scrollbar-width:thin; }
.qv-slides .ph { flex:0 0 100%; scroll-snap-align:start; aspect-ratio:3/4; position:relative; }
.qv-slides img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.qv-info { padding:clamp(24px,4vw,48px); display:grid; gap:18px; align-content:start; }
.qv-info .product_title { font-size:clamp(1.8rem,1.4rem + 1.2vw,2.4rem); }
.qv-loading { padding:80px; text-align:center; }
@media (max-width:767px) { .qv-grid { grid-template-columns:minmax(0,1fr); } .qv-slides .ph { aspect-ratio:4/4.4; } }

/* Notices */
.woocommerce-notices-wrapper:empty { display:none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { list-style:none; margin:0 0 24px; padding:16px 20px; background:var(--paper); border:1px solid var(--line); border-left:3px solid var(--gold); display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; font-size:.9375rem; }
.woocommerce-error { border-left-color:var(--danger); flex-direction:column; align-items:flex-start; }
.woocommerce-message .button, .woocommerce-info .button { order:2; }
.woocommerce-notices-wrapper { width:100%; }
.single-product .woocommerce-notices-wrapper, .woocommerce-cart .woocommerce-notices-wrapper { margin-top: 20px; }

/* Generic WooCommerce buttons & forms */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .wc-block-components-button, button.single_add_to_cart_button { display:inline-flex; align-items:center; justify-content:center; gap:.6em; min-height:var(--btn-h,52px); padding:0 1.8em; border:1px solid var(--onyx); background:var(--onyx); color:var(--ivory); font-size:.75rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; border-radius:var(--btn-radius,0); transition:background .3s, border-color .3s; cursor:pointer; text-align:center; }
.woocommerce .button:hover, button.single_add_to_cart_button:hover { background:var(--gold); border-color:var(--gold); color:#fff; }
.woocommerce .button.alt, .woocommerce .checkout-button, #place_order { background:var(--onyx); width:100%; }
.woocommerce .button:disabled, .woocommerce .button.disabled, button.single_add_to_cart_button.disabled { opacity:.5; cursor:not-allowed; }
.woocommerce form .form-row { display:grid; gap:7px; margin:0 0 16px; }
.woocommerce form .form-row label { font-size:var(--t-label); letter-spacing:.18em; text-transform:uppercase; color:var(--onyx); font-weight:500; }
.woocommerce form .form-row label.checkbox, .woocommerce form .form-row .woocommerce-form__label-for-checkbox { text-transform:none; letter-spacing:.01em; font-size:.875rem; font-weight:300; display:flex; gap:10px; align-items:center; }
.woocommerce form .form-row .required { color:var(--maroon); text-decoration:none; }
.woocommerce input.input-text, .woocommerce textarea, .woocommerce select, .woocommerce .select2-container .select2-selection--single { width:100%; min-height:50px; padding:12px 16px; border:1px solid var(--line-strong); background:var(--paper); border-radius:0; font-size:.9375rem; }
.woocommerce .select2-container .select2-selection--single { display:flex; align-items:center; }
.woocommerce .select2-container .select2-selection__arrow { top:12px!important; right:8px!important; }
.woocommerce input.input-text:focus, .woocommerce textarea:focus { outline:none; border-color:var(--gold); }
.form-row-first, .form-row-last { width:100%; }
@media (min-width:768px) { .woocommerce .col2-set { display:grid; grid-template-columns:1fr 1fr; gap:40px; } .woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper { display:grid; grid-template-columns:1fr 1fr; gap:0 18px; } .woocommerce-billing-fields__field-wrapper .form-row-wide, .woocommerce-shipping-fields__field-wrapper .form-row-wide, .woocommerce-address-fields__field-wrapper .form-row-wide { grid-column:1/-1; } }

/* Cart & checkout pages (classic) */
.woocommerce-cart .page-content, .woocommerce-checkout .page-content, .woocommerce-account .page-content { padding-top: 40px; }
.woocommerce-cart .woocommerce, .woocommerce-checkout form.checkout { display:grid; grid-template-columns:minmax(0,1fr) 400px; gap:clamp(32px,4vw,64px); align-items:start; }
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper, .woocommerce-cart .woocommerce > .ship-meter, .woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-column:1/-1; }
.woocommerce-cart .woocommerce > .ship-meter { max-width: 560px; }
.woocommerce-cart .cart-collaterals { position:sticky; top:120px; }
.shop_table { width:100%; border-collapse:collapse; font-size:.9375rem; }
.shop_table th { font-size:var(--t-label); letter-spacing:.18em; text-transform:uppercase; color:var(--onyx); font-weight:500; text-align:left; padding:12px 10px; border-bottom:1px solid var(--line-strong); }
.shop_table td { padding:18px 10px; border-bottom:1px solid var(--line); vertical-align:middle; }
.shop_table td.product-thumbnail img { width:90px; height:auto; aspect-ratio:3/4; object-fit:cover; }
.shop_table td.product-name a { font-family:var(--f-display); font-size:1.3rem; color:var(--onyx); }
.shop_table td.product-name dl.variation { margin:6px 0 0; display:grid; grid-template-columns:auto 1fr; gap:2px 8px; font-size:.8125rem; color:var(--muted); }
.shop_table td.product-name dl.variation dd, .shop_table td.product-name dl.variation p { margin:0; }
.shop_table a.remove { font-size:1.4rem; color:var(--muted); }
.shop_table .actions { text-align:right; }
.shop_table .coupon { display:inline-flex; gap:8px; float:left; }
.shop_table .coupon .input-text { width:200px; min-height:48px; }
.cart_totals, .woocommerce-checkout-review-order { background:var(--paper); border:1px solid var(--line); padding:30px; }
.cart_totals h2, #order_review_heading { font-size:1.8rem; margin-bottom:16px; }
.cart_totals .shop_table th, .cart_totals .shop_table td, .woocommerce-checkout-review-order-table th, .woocommerce-checkout-review-order-table td { padding:12px 0; border-bottom:1px solid var(--line); text-transform:none; letter-spacing:0; font-size:.9375rem; font-weight:300; }
.order-total th, .order-total td { font-family:var(--f-display); font-size:1.4rem!important; color:var(--onyx); }
#shipping_method { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
#shipping_method li { display:flex; gap:8px; align-items:flex-start; }
.wc-proceed-to-checkout { padding-top:16px; }
.secure-line { display:flex; gap:8px; align-items:center; font-size:.8125rem; color:var(--muted); }
.secure-line .icon { width:16px; color:var(--success); }
.woocommerce-checkout form.checkout #customer_details { min-width:0; }
.woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review { grid-column:2; }
.woocommerce-checkout #order_review_heading { grid-row:1; margin:0; }
.woocommerce-checkout #customer_details { grid-row:1 / span 2; }
.woocommerce-checkout form.checkout .col2-set { display:block; }
.woocommerce-checkout .col2-set > div { margin-bottom: 28px; }
.woocommerce-checkout h3 { font-size:1.6rem; margin:0 0 18px; }
#payment .payment_methods { list-style:none; margin:0 0 16px; padding:0; display:grid; gap:10px; }
#payment .payment_methods > li { border:1px solid var(--line-strong); padding:14px 16px; }
#payment .payment_box { font-size:.8125rem; color:var(--muted); padding-top:8px; }
.woocommerce-terms-and-conditions-wrapper { font-size:.8125rem; margin-bottom:16px; }
.prems-gift { margin-top:28px; }
.woocommerce-order-received .woocommerce-order { max-width:820px; margin-inline:auto; }
.woocommerce-thankyou-order-received { font-family:var(--f-display); font-size:2rem; color:var(--onyx); text-align:center; }
.woocommerce-order-overview { list-style:none; padding:0; display:flex; flex-wrap:wrap; gap:12px 32px; justify-content:center; font-size:.875rem; }
@media (max-width:1024px) { .woocommerce-cart .woocommerce, .woocommerce-checkout form.checkout { grid-template-columns:minmax(0,1fr); } .woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review, .woocommerce-checkout #customer_details { grid-column:auto; grid-row:auto; } .woocommerce-cart .cart-collaterals { position:static; } }
@media (max-width:767px) { .shop_table.cart thead { display:none; } .shop_table.cart tr.cart_item { display:grid; grid-template-columns:90px 1fr auto; gap:6px 14px; padding:14px 0; border-bottom:1px solid var(--line); } .shop_table.cart td { border:0; padding:0; } .shop_table.cart td.product-thumbnail { grid-row:span 3; } .shop_table.cart td.product-price { display:none; } .shop_table.cart td.product-remove { grid-column:3; grid-row:1; } .shop_table .coupon { float:none; display:flex; margin-bottom:10px; } .shop_table .coupon .input-text { width:100%; } .shop_table .actions { text-align:left; } }

/* My account */
.woocommerce-account .woocommerce { display:grid; grid-template-columns:240px minmax(0,1fr); gap:48px; }
.woocommerce-account .woocommerce:has(> .u-columns), .woocommerce-account .woocommerce:has(> .woocommerce-form-login) { display:block; }
.woocommerce-MyAccount-navigation ul { list-style:none; margin:0; padding:0; display:grid; gap:2px; }
.woocommerce-MyAccount-navigation a { display:block; padding:13px 16px; font-size:.8125rem; letter-spacing:.12em; text-transform:uppercase; border-left:1px solid var(--line); }
.woocommerce-MyAccount-navigation .is-active a { border-color:var(--gold); color:var(--onyx); background:var(--paper); }
.woocommerce-account .u-columns { display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line); background:var(--paper); max-width:1000px; margin-inline:auto; }
.woocommerce-account .u-columns > div { padding:clamp(28px,4vw,56px); }
.woocommerce-account .u-columns > div + div { border-left:1px solid var(--line); }
.woocommerce-account .u-columns h2 { font-size:2.2rem; margin-bottom:18px; }
.woocommerce-form-login__rememberme { display:flex; gap:8px; align-items:center; margin-bottom:12px; font-size:.875rem; }
.lost_password { font-size:.8125rem; margin-top:12px; }
.measure-form { margin-top:20px; }
.status { font-size:.6875rem; letter-spacing:.14em; text-transform:uppercase; padding:4px 10px; border-radius:99px; background:var(--sand); color:var(--onyx); }
.status-confirmed, .status-done { background:#e3eee6; color:var(--success); } .status-pending { background:#f4ead7; color:#8a6420; } .status-cancelled { background:#f3e1e1; color:var(--danger); }
.appt-list { display:grid; gap:14px; }
@media (max-width:767px) { .woocommerce-account .woocommerce { grid-template-columns:minmax(0,1fr); gap:20px; } .woocommerce-MyAccount-navigation ul { grid-auto-flow:column; overflow-x:auto; } .woocommerce-MyAccount-navigation a { white-space:nowrap; } .woocommerce-account .u-columns { grid-template-columns:1fr; } .woocommerce-account .u-columns > div + div { border-left:0; border-top:1px solid var(--line); } }

/* Sections (WP renderers) */
.hs-reverse .hs-slide { direction: rtl; } .hs-reverse .hs-slide > * { direction: ltr; }
.hs-slide.is-dark { --hs-fg:#FBF1E1; --hs-mute:rgba(251,241,225,.78); }
.hs-slide:not(.is-dark) { --hs-fg: var(--onyx); --hs-mute: var(--ink); }
.hs-tabs { grid-template-columns: repeat(var(--hs-n,3), 1fr); }
.hs-tabs button.run i b { animation-duration: var(--hs-dur, 6.5s); }
.svc-row { grid-template-columns: repeat(var(--svc-n,4), 1fr); }
.cats { grid-template-columns: repeat(var(--cat-n,6), minmax(0,1fr)); }
.cats .arch { position:relative; }
.cats .arch img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition: transform 1.2s var(--ease-out); }
.cat-card:hover .arch img { transform: scale(1.05); }
.cats.shape-rounded .arch { border-radius: 24px; } .cats.shape-square .arch { border-radius: var(--img-radius,0); } .cats.shape-circle .arch { border-radius:50%; aspect-ratio:1; }
.ph > img, .arch > img, .at-img > img, .look-img > img, .split .img > img, .lookbook > a > img, .insta a > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.split-banner { background: var(--sb-bg, #5A1823); color: var(--ink); position:relative; overflow:hidden; }
.split-banner.is-dark { color:#f0e3cf; }
.split-banner .container { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,6vw,100px); align-items:center; }
.split-banner.is-reverse .sb-imgs { order:2; }
.split-banner h2 { font-size:clamp(2.4rem,1.6rem + 3vw,4.6rem); font-weight:300; margin-top:20px; }
.split-banner.is-dark h2 { color:#fbf1e1; } .split-banner.is-dark h2 em, .split-banner.is-dark .eyebrow { color:var(--gold-soft); }
.split-banner .sb-copy > p { max-width:48ch; margin-top:22px; } .split-banner.is-dark .sb-copy > p { color:rgba(240,227,207,.78); }
.split-banner .steps-mini { border-color: color-mix(in srgb, currentColor 22%, transparent); }
.split-banner:not(.is-dark) .steps-mini b { color: var(--onyx); } .split-banner:not(.is-dark) .steps-mini span { color: var(--muted); } .split-banner:not(.is-dark) .steps-mini i { color: var(--gold); }
.sb-imgs { display:grid; grid-template-columns:1.4fr 1fr; gap:16px; align-items:end; }
.sb-imgs.single { grid-template-columns:1fr; }
.sb-imgs .a { aspect-ratio:3/4.4; position:relative; overflow:hidden; } .sb-imgs .a.arch { border-radius:999px 999px 0 0; }
.sb-imgs .b { aspect-ratio:3/4; position:relative; margin-bottom:18%; overflow:hidden; }
.occ-panel .ph { position:absolute; inset:0; }
.occ-panel::after { z-index:1; } .occ-panel .cap { z-index:2; }
.look.is-reverse .look-img { order:2; }
.look-img { overflow:hidden; }
.look-item .ph { position:relative; display:block; aspect-ratio:3/4; }
.look-text { margin:14px 0 28px; }
.look-item .price { font-size:.875rem; }
.craft-bg .ph::after, .craft-bg .ph::before { display:none; }
.craft-bg::after { z-index:1; }
.craft .container { z-index:2; }
.craft .eyebrow { color: var(--gold-soft); }
.craft .link-line { color:#fff; margin-top:48px; }
.atelier-grid { grid-template-columns: repeat(var(--at-cols,var(--at-base,4)), minmax(0,1fr)); }
.atelier-card::after { z-index:1; } .atelier-card .cap, .atelier-card .yours { z-index:2; }
.atelier-card .ph img { transition: transform 1.2s var(--ease-out); }
.atelier-card:hover .ph img { transform: scale(1.05); }
.atelier-card.intro h3 { margin-top:14px; font-size:1.9rem; color:var(--onyx); }
.at-img { overflow:hidden; display:block; }
.at-row[hidden] { display:none; }
.story .av { position:relative; width:52px; height:52px; border-radius:50%; overflow:hidden; flex:none; }
.insta a { display:block; }
.insta a .icon { z-index:2; }
.newsletter-block { background: var(--nl-bg, #16120E); }
.newsletter-block:not(.is-dark) h3 { color: var(--onyx); } .newsletter-block:not(.is-dark) .nl-form { border-color: var(--line-strong); } .newsletter-block:not(.is-dark) .nl-form input { color: var(--onyx); } .newsletter-block:not(.is-dark) .nl-form button { color: var(--gold); }
.newsletter-block.is-dark { color: rgba(247,242,234,.7); }
.nl-form.done input { opacity:.5; }
.nl-msg { font-size:.8125rem; margin-top:8px; }
.b-hero { min-height: min(76vh, 720px); }
.b-hero::after { background: linear-gradient(180deg, rgba(20,4,8,calc(var(--ov,.6)*.4)), rgba(20,4,8,var(--ov,.6))); z-index:1; }
.b-hero > .ph { z-index:0; }
.b-hero .container { z-index:2; padding-block: 120px clamp(56px,7vw,100px); }
.b-hero.align-left .container { text-align:left; } .b-hero.align-left p { margin-inline:0; } .b-hero.align-left .hero-ctas { justify-content:flex-start; }
.b-hero .hero-ctas { justify-content:center; }
.process { grid-template-columns: repeat(var(--steps,4), 1fr); }
.lookbook > a { position:relative; overflow:hidden; display:block; }
.lookbook > a img { transition: transform 1.2s var(--ease-out); }
.lookbook > a:hover img { transform: scale(1.04); }
.lookbook > a .cap, .lookbook > a::after { z-index:2; } .lookbook > a::after { z-index:1; }
.split.is-reverse .img { order:2; }
.split .img { overflow:hidden; }
.values { grid-template-columns: repeat(var(--vcols,3), 1fr); }
.values h3 { font-size:1.5rem; }
.timeline { grid-template-columns: repeat(var(--tl-n,5), 1fr); }
.book .field .label { font-size: var(--t-label); letter-spacing:.2em; text-transform:uppercase; color: var(--onyx); font-weight:500; }
.book-side li b { color:#fff; font-weight:500; }
.book-side .eyebrow { color: var(--gold-soft); }
.book-side p { color: rgba(239,228,208,.75); }
.slots-hint { display:block; margin-top:8px; }
.form-note { font-size:.75rem; text-align:center; }
.book-form .confirm, .card-form .confirm { padding-block:40px; }
.card-form { background:var(--paper); border:1px solid var(--line); padding:clamp(24px,4vw,48px); display:grid; gap:20px; }
.card-form h2 { font-size:2.2rem; }
.contact-cards .contact-card .icon { width:16px; height:16px; vertical-align:-2px; }
.countdown { display:flex; justify-content:center; gap:clamp(16px,4vw,48px); }
.countdown div { display:grid; gap:4px; min-width:80px; }
.countdown b { font-family:var(--f-display); font-size:clamp(2.6rem,2rem + 3vw,4.6rem); font-weight:300; color:var(--onyx); line-height:1; font-variant-numeric:tabular-nums; }
.countdown span { font-size:.6875rem; letter-spacing:.22em; text-transform:uppercase; color:var(--muted); }
.marquee { background: var(--mq-bg, var(--maroon)); color: var(--mq-fg, var(--gold-soft)); }
.marquee .track { animation-duration: var(--mq-speed, 40s); }
.marquee span .icon { width:16px; height:16px; color: var(--gold); stroke-width:1; }
.prems-nav-widget ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px 28px; }
.prems-nav-widget.layout-vertical ul { flex-direction:column; }
.prems-nav-widget.align-center ul { justify-content:center; } .prems-nav-widget.align-right ul { justify-content:flex-end; }
.prems-nav-widget a { font-size:.8125rem; letter-spacing:.14em; text-transform:uppercase; }
.prems-heading.align-left { align-items:flex-end; } .prems-heading.align-center { flex-direction:column; align-items:center; text-align:center; } .prems-heading.align-right { flex-direction:column; align-items:flex-end; text-align:right; }
.region-tabs .chip { cursor:pointer; }

/* Footer (widgets) */
.footer-main .container { grid-template-columns: minmax(0,1.3fr) minmax(0,3fr); }
.footer-cols { display:grid; grid-template-columns: repeat(var(--footer-cols,4), minmax(0,1fr)); gap:32px; }
.footer-col .widget-title { font-family: var(--f-body); font-size: var(--t-label); letter-spacing:.26em; text-transform:uppercase; color: var(--gold-soft); font-weight:500; margin:0 0 20px; }
.footer-col ul { list-style:none; margin:0; padding:0; display:grid; gap:11px; font-size:.875rem; }
.footer-col a:hover { color: var(--ivory); }
.footer-col p { font-size:.875rem; }
.footer-links { list-style:none; display:flex; gap:18px; margin:0; padding:0; }
.site-footer--block { background:none; color:inherit; }
.site-footer--block::before { display:none; }
@media (max-width:1024px) { .footer-main .container { grid-template-columns: minmax(0,1fr); } }

/* Mobile bar / floating */
.mobile-nav { grid-template-columns: repeat(var(--mbar-n,5), 1fr); }
@media (min-width:768px) { .mobile-nav { display:grid; position:fixed; left:0; right:0; bottom:0; z-index:70; background:rgba(255,252,247,.96); backdrop-filter:blur(12px); border-top:1px solid var(--line); padding-bottom:env(safe-area-inset-bottom,0px); } .mobile-nav a, .mobile-nav button { display:grid; justify-items:center; gap:2px; padding:9px 0 7px; font-size:.5625rem; letter-spacing:.14em; text-transform:uppercase; color:var(--onyx); position:relative; } .mobile-nav .count { position:absolute; top:4px; left:calc(50% + 6px); min-width:16px; height:16px; border-radius:99px; background:var(--gold); color:#fff; font-size:.5625rem; display:grid; place-items:center; } .mobile-nav .count[data-n="0"] { display:none; } }
@media (min-width:1025px) { body.mbar-d { padding-bottom:62px; } }
@media (min-width:768px) and (max-width:1024px) { body.mbar-t { padding-bottom:62px; } }
@media (max-width:767px) { body:not(.mbar-m) { padding-bottom:0; } }
.to-top { position:fixed; right:20px; bottom:calc(20px + env(safe-area-inset-bottom,0px)); z-index:60; width:44px; height:44px; border-radius:50%; background:var(--onyx); color:#fff; display:grid; place-items:center; opacity:0; visibility:hidden; transform:translateY(10px); transition:all .4s var(--ease-out); }
.to-top.on { opacity:1; visibility:visible; transform:none; }
.wa-float { position:fixed; left:20px; bottom:calc(20px + env(safe-area-inset-bottom,0px)); z-index:60; width:52px; height:52px; border-radius:50%; background:#25D366; color:#fff; display:grid; place-items:center; box-shadow:0 10px 24px -8px rgba(0,0,0,.35); }
body.mbar-m .to-top, body.mbar-m .wa-float { bottom: calc(76px + env(safe-area-inset-bottom,0px)); }

/* Popups */
.prems-popup { position:fixed; inset:0; z-index:120; display:grid; place-items:center; padding:20px; background:rgba(22,18,14,.5); opacity:0; visibility:hidden; transition:opacity .4s, visibility .4s; }
.prems-popup.on { opacity:1; visibility:visible; }
.prems-popup-box { background:var(--paper); position:relative; max-height:calc(100vh - 40px); overflow:auto; transform:translateY(20px); transition:transform .6s var(--ease-out); }
.prems-popup.on .prems-popup-box { transform:none; }
.prems-popup-box > .x-btn { position:absolute; top:10px; right:10px; z-index:3; background:var(--paper); }
.prems-popup.pos-bottom-left, .prems-popup.pos-bottom-right, .prems-popup.pos-bar { background:none; pointer-events:none; place-items:end start; }
.prems-popup.pos-bottom-right { place-items:end end; }
.prems-popup.pos-bar { padding:0; place-items:end stretch; }
.prems-popup.pos-bottom-left .prems-popup-box, .prems-popup.pos-bottom-right .prems-popup-box, .prems-popup.pos-bar .prems-popup-box { pointer-events:auto; box-shadow:0 20px 50px -20px rgba(0,0,0,.35); }
.prems-popup.pos-bar .prems-popup-box { width:100%!important; }

/* Entry content */
.entry-content > * + * { margin-top: 1.1em; }
.entry-content h2, .entry-content h3 { margin-top: 1.4em; }
.entry-content a { color: var(--gold); text-decoration: underline; text-underline-offset: 3px; }
.entry-content ul, .entry-content ol { padding-left: 1.2em; }
.page-full { width: 100%; }
.page-full > .entry-content, .page-full.entry-content { margin: 0; }
.page-hero.has-image { position:relative; color:#fff; border:0; background:var(--onyx); }
.page-hero.has-image .page-hero-bg { position:absolute; inset:0; }
.page-hero.has-image .page-hero-bg::after { content:""; position:absolute; inset:0; background:rgba(10,6,4,.55); }
.page-hero.has-image .container { position:relative; z-index:1; }
.page-hero.has-image h1, .page-hero.has-image p, .page-hero.has-image .crumbs { color:#fff; }
.post-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px 30px; }
.post-card-media { display:block; aspect-ratio:4/3; overflow:hidden; position:relative; margin-bottom:18px; }
.post-card-media img, .post-card-media .ph { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.post-card-body { display:grid; gap:10px; }
.single-post { max-width: calc(820px + var(--gutter) * 2); }
.single-thumb { margin-bottom: 36px; }
.err404 { text-align:center; display:grid; gap:18px; justify-items:center; }
.err404 h1 { font-size: clamp(5rem, 3rem + 10vw, 12rem); font-weight:300; color: var(--gold); line-height:1; }
.search-form { display:flex; gap:8px; max-width:520px; }
.comment-list { list-style:none; padding:0; }
@media (max-width:1024px) { .post-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:767px) { .post-grid { grid-template-columns:1fr; } }

/* Elementor */
.elementor-widget-container .section-head { margin-bottom: clamp(32px,4vw,56px); }
.e-con.prems-flush, .elementor-section.prems-flush { padding:0 !important; }
.elementor .prems-hide-d, .elementor .prems-hide-t, .elementor .prems-hide-m { }
.prems-sticky-el { position: sticky; z-index: 30; }

/* Responsive tweaks for new section classes */
@media (max-width:1024px) {
  .split-banner .container { grid-template-columns:minmax(0,1fr); }
  .split-banner.is-reverse .sb-imgs, .look.is-reverse .look-img, .split.is-reverse .img { order:0; }
  .atelier-grid { --at-cols: 2; }
  .cats { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .values { grid-template-columns: 1fr 1fr; }
  .process { grid-template-columns: 1fr 1fr; }
  .timeline { grid-template-columns: repeat(3, 1fr); }
  .mega-cols { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width:767px) {
  .cats.m-scroll { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; margin-inline:calc(var(--gutter) * -1); padding-inline:var(--gutter); }
  .cats.m-scroll .cat-card { flex:0 0 42%; scroll-snap-align:start; }
  .cats:not(.m-scroll) { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .atelier-grid { --at-cols: 2; }
  .values, .process { grid-template-columns: 1fr; }
  .timeline { grid-template-columns: 1fr 1fr; }
  .svc-row { grid-template-columns: repeat(2, 1fr); }
  .footer-cols { grid-template-columns: repeat(var(--footer-cols,2), minmax(0,1fr)); }
  .footer-bottom .container { flex-direction:column; align-items:flex-start; }
  .countdown div { min-width:60px; }
}

[hidden], .prems-pgrid[hidden] { display: none !important; }
figure.story { margin: 0; }
@media (max-width:767px) {
  .atelier-grid { gap: 8px; }
  .atelier-card .cap { inset: auto 14px 14px; }
  .atelier-card h3 { font-size: 1.3rem; }
  .atelier-card p { display: none; }
  .atelier-card.intro { grid-column: 1 / -1; padding: 22px; gap: 16px; }
  .atelier-card .yours { top: 10px; left: 10px; }
}
.prems-swatch-wrap { position: relative; }
.prems-swatch-wrap select { width: 1px !important; height: 1px !important; min-width: 0 !important; left: 0; top: 0; clip-path: inset(50%); }
.single-product div.product > .summary, .single-product div.product > .gallery { min-width: 0; }
.single-product div.product > .summary { grid-template-columns: minmax(0, 1fr); }
.pdp-tabs .tabs { overflow-x: auto; scrollbar-width: none; flex-wrap: nowrap; }
.pdp-tabs .tabs::-webkit-scrollbar { display: none; }
.prems-swatches .size-opt.oos, .prems-swatches .color-opt.oos { opacity:.4; text-decoration:line-through; }
@media (max-width:1024px) { .shop-layout { grid-template-columns: minmax(0,1fr); } }
