/* ==========================================================================
   PEDRO ROLVIX — Design System & Site Stylesheet
   Brand: Montserrat (headings) / Poppins (body) / Cormorant Garamond (accent)
   Colors: Burgundy #842B2E · Black #000 · White #FFF · Gold #C8A15A
           Silver #BDBDBD · Charcoal #1A1A1A
   ========================================================================== */

/* ---------- Fonts (self-hosted, subset latin) ---------- */
@font-face{font-family:"Montserrat";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/fonts/montserrat-600.woff2") format("woff2");}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:700;font-display:swap;src:url("/assets/fonts/montserrat-700.woff2") format("woff2");}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:800;font-display:swap;src:url("/assets/fonts/montserrat-800.woff2") format("woff2");}
@font-face{font-family:"Poppins";font-style:normal;font-weight:300;font-display:swap;src:url("/assets/fonts/poppins-300.woff2") format("woff2");}
@font-face{font-family:"Poppins";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/poppins-400.woff2") format("woff2");}
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/poppins-500.woff2") format("woff2");}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/fonts/poppins-600.woff2") format("woff2");}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/cormorant-400.woff2") format("woff2");}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:400;font-display:swap;src:url("/assets/fonts/cormorant-400-italic.woff2") format("woff2");}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/fonts/cormorant-600.woff2") format("woff2");}

/* ---------- Design tokens ---------- */
:root{
  --burgundy:#842B2E;
  --burgundy-light:#a5393d;
  --burgundy-dark:#5e1e20;
  --black:#000000;
  --white:#ffffff;
  --gold:#c8a15a;
  --gold-light:#dcc08a;
  --silver:#bdbdbd;
  --charcoal:#1a1a1a;
  --charcoal-2:#242424;
  --charcoal-3:#2f2f2f;
  --cream:#f7f4f0;
  --off-white:#faf9f7;
  --line:#e7e2da;
  --text-body:#33302c;
  --text-muted:#726c64;

  --font-heading:"Montserrat",-apple-system,"Segoe UI",sans-serif;
  --font-body:"Poppins",-apple-system,"Segoe UI",sans-serif;
  --font-accent:"Cormorant Garamond",Georgia,serif;

  --container-w:1280px;
  --container-w-wide:1440px;
  --radius-sm:4px;
  --radius-md:8px;
  --radius-lg:16px;
  --shadow-sm:0 2px 10px rgba(0,0,0,.06);
  --shadow-md:0 12px 32px rgba(0,0,0,.10);
  --shadow-lg:0 24px 60px rgba(0,0,0,.18);
  --ease:cubic-bezier(.4,0,.2,1);
  --dur:.35s;
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}}
body{
  font-family:var(--font-body);
  font-weight:400;
  color:var(--text-body);
  background:var(--off-white);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,picture,video,svg{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
ul,ol{list-style:none;}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit;}
input,textarea,select{font:inherit;color:inherit;}
h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;line-height:1.15;letter-spacing:-.01em;color:var(--black);}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}

/* ---------- Layout ---------- */
/* width:100% matters here: without it, a .container nested inside a flex
   parent (e.g. .hero__content) shrink-wraps to its content instead of
   filling out to max-width — flex items with auto cross-axis margins don't
   get the normal block "fill parent, then cap" behavior that block-flow
   contexts (like the header) get for free. This keeps .container's width
   identical everywhere it's used. */
.container{width:100%;max-width:var(--container-w);margin-inline:auto;padding-inline:24px;}
.container--wide{max-width:var(--container-w-wide);}
.container--narrow{max-width:840px;}
section{position:relative;}
.section-pad{padding-block:88px;}
@media (max-width:768px){.section-pad{padding-block:56px;}}

.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-body);font-weight:600;font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--burgundy);margin-bottom:16px;
}
.eyebrow::before{content:"";width:28px;height:1.5px;background:var(--gold);display:inline-block;}
.eyebrow--light{color:var(--gold-light);}

.section-title{font-size:clamp(28px,3.6vw,44px);margin-bottom:18px;}
.section-title em{font-family:var(--font-accent);font-style:italic;font-weight:400;color:var(--burgundy);}
.section-sub{font-size:16.5px;color:var(--text-muted);line-height:1.75;}
.section-head{margin-bottom:52px;}
.section-head--center{text-align:center;margin-inline:auto;}
.section-head--split{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--font-body);font-weight:600;font-size:13.5px;letter-spacing:.06em;text-transform:uppercase;
  padding:16px 34px;border-radius:2px;transition:all var(--dur) var(--ease);white-space:nowrap;cursor:pointer;
  border:1px solid transparent;
}
.btn-primary{background:var(--burgundy);color:var(--white);}
.btn-primary:hover{background:var(--black);transform:translateY(-2px);box-shadow:var(--shadow-md);}
.btn-dark{background:var(--black);color:var(--white);}
.btn-dark:hover{background:var(--burgundy);transform:translateY(-2px);box-shadow:var(--shadow-md);}
.btn-outline{background:transparent;color:var(--black);border-color:var(--black);}
.btn-outline:hover{background:var(--black);color:var(--white);}
.btn-outline-light{background:transparent;color:var(--white);border-color:rgba(255,255,255,.55);}
.btn-outline-light:hover{background:var(--white);color:var(--black);border-color:var(--white);}
.btn-gold{background:var(--gold);color:var(--black);}
.btn-gold:hover{background:var(--gold-light);transform:translateY(-2px);}
.btn-whatsapp{background:#25d366;color:#fff;}
.btn-whatsapp:hover{background:#1ebe5b;transform:translateY(-2px);}
.btn-sm{padding:11px 22px;font-size:12px;}
.btn-block{width:100%;}
.btn[disabled]{opacity:.5;cursor:not-allowed;}

/* ==========================================================================
   HEADER
   ========================================================================== */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  padding-block:18px;transition:background var(--dur) var(--ease),padding var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:24px;}
.site-header--transparent{background:linear-gradient(to bottom, rgba(0,0,0,.55), rgba(0,0,0,0));}
.site-header--solid{background:rgba(10,10,10,.96);backdrop-filter:blur(10px);box-shadow:0 2px 24px rgba(0,0,0,.18);padding-block:12px;}
.site-header--light{background:rgba(255,255,255,.97);backdrop-filter:blur(10px);box-shadow:0 2px 20px rgba(0,0,0,.06);}

/* Logo sizing follows the brand guideline: minimum 180px width, height auto
   (never height-capped, which shrinks the mark below its minimum size), with
   clear space on all sides. Width and padding are admin-configurable via
   Site Settings (rendered as inline styles by header.php); these are just
   the un-configured fallbacks. */
.brand-logo{display:flex;align-items:center;}
.brand-logo img{width:180px;height:auto;display:block;}

.main-nav{display:flex;align-items:center;gap:40px;}
.main-nav__list{display:flex;align-items:center;gap:34px;}
.main-nav__list a{
  font-size:13.5px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--white);
  position:relative;padding-block:6px;white-space:nowrap;
}
.site-header--light .main-nav__list a{color:var(--black);}
.main-nav__list a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1.5px;background:var(--gold);transition:width var(--dur) var(--ease);}
.main-nav__list a:hover::after,.main-nav__list a.is-active::after{width:100%;}
.header-actions{display:flex;align-items:center;gap:18px;}
.header-actions .btn{padding:12px 26px;}
.icon-btn{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;color:var(--white);border-radius:50%;transition:background var(--dur);}
.site-header--light .icon-btn{color:var(--black);}
.icon-btn:hover{background:rgba(255,255,255,.12);}
.site-header--light .icon-btn:hover{background:rgba(0,0,0,.06);}

.nav-toggle{display:none;width:38px;height:38px;flex-direction:column;justify-content:center;align-items:center;gap:5px;}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--white);transition:all var(--dur) var(--ease);}
.site-header--light .nav-toggle span{background:var(--black);}
.nav-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.is-open span:nth-child(2){opacity:0;}
.nav-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media (max-width:980px){
  .main-nav{position:fixed;inset:0 0 0 auto;width:min(88vw,380px);height:100vh;background:var(--charcoal);
    flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:100px 32px 40px;gap:36px;
    transform:translateX(100%);transition:transform var(--dur) var(--ease);overflow-y:auto;}
  .main-nav.is-open{transform:translateX(0);box-shadow:-20px 0 60px rgba(0,0,0,.3);}
  .main-nav__list{flex-direction:column;align-items:flex-start;gap:26px;width:100%;}
  .main-nav__list a{color:var(--white);font-size:16px;white-space:normal;}
  .header-actions .btn-outline-light{display:none;}
  .nav-toggle{display:flex;}
}

/* Header "Collection" dropdown — lists the live Main Category rows (managed
   in Admin ▸ Categories) so it always stays in sync with the shop page. */
.has-dropdown{position:relative;}
.has-dropdown > a{display:inline-flex;align-items:center;gap:5px;}
.nav-caret{transition:transform var(--dur) var(--ease);flex:0 0 auto;}
.has-dropdown:hover .nav-caret,.has-dropdown:focus-within .nav-caret{transform:rotate(180deg);}
.nav-dropdown{
  position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(6px);
  padding-top:16px;min-width:250px;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease),visibility var(--dur);
  z-index:1001;
}
.has-dropdown:hover .nav-dropdown,.has-dropdown:focus-within .nav-dropdown{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);
}
.nav-dropdown__inner{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:18px 8px 12px;border:1px solid var(--line);}
.nav-dropdown__label{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);padding:0 16px 10px;margin-bottom:6px;border-bottom:1px solid var(--line);white-space:nowrap;}
.nav-dropdown__list{display:flex;flex-direction:column;}
.nav-dropdown__list a{display:block;padding:9px 16px;font-size:13.5px;font-weight:500;letter-spacing:normal;text-transform:none;color:var(--text-body);border-radius:6px;white-space:nowrap;transition:background var(--dur),color var(--dur);}
.nav-dropdown__list a::after{display:none;}
.nav-dropdown__list a:hover{background:var(--cream);color:var(--burgundy);}
.nav-dropdown__all{display:block;margin-top:6px;padding:12px 16px 0;font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--burgundy);border-top:1px solid var(--line);white-space:nowrap;}
.nav-dropdown__all:hover{color:var(--burgundy-light,var(--burgundy));}
@media (max-width:980px){
  .has-dropdown{width:100%;}
  .has-dropdown > a{justify-content:space-between;width:100%;}
  .nav-dropdown{position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;padding-top:14px;min-width:0;}
  .nav-dropdown__inner{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);}
  .nav-dropdown__label{color:rgba(255,255,255,.5);border-bottom-color:rgba(255,255,255,.08);}
  .nav-dropdown__list a{color:rgba(255,255,255,.82);white-space:normal;}
  .nav-dropdown__list a:hover{background:rgba(255,255,255,.06);color:var(--gold-light);}
  .nav-dropdown__all{color:var(--gold-light);border-top-color:rgba(255,255,255,.08);}
}

/* ==========================================================================
   HERO SLIDER
   ========================================================================== */
.hero{position:relative;height:100svh;min-height:560px;max-height:980px;overflow:hidden;background:var(--black);}
.hero__slides{position:relative;width:100%;height:100%;}
.hero__slide{
  position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1.1s var(--ease);
  background-size:cover;background-position:center;background-image:var(--hero-bg);
}
.hero__slide.is-active{opacity:1;visibility:visible;z-index:2;}
/* Mobile-only hero background: falls back to --hero-bg (the desktop image)
   automatically when a slide has no --hero-bg-mobile set in the admin. This
   only affects the CSS background layer; the visible <picture>/<img> layer
   (.hero__slide-media) swaps the same way via a max-width <source>. */
@media (max-width:640px){
  .hero__slide{background-image:var(--hero-bg-mobile,var(--hero-bg));}
}
.hero__slide::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.35) 38%,rgba(0,0,0,.78) 100%);}
.hero__slide-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 6s linear;}
.hero__slide.is-active .hero__slide-media{transform:scale(1);}
/* padding-top/padding-bottom reserve clearance above (fixed/transparent
   header) and below (the absolutely-positioned .hero__nav dots+arrows row,
   ~88px tall counting its own bottom offset) the vertically-centered
   content block, so it can never visually collide with either one.
   clamp() ties both to viewport height (vh) so they scale down smoothly on
   short windows instead of jumping at one breakpoint — a fixed top-only
   padding previously pushed the centered block DOWN as it grew, which made
   short-viewport overlap with the nav row worse, not better. The vertical
   gaps inside the content block below (eyebrow/desc/actions margins) are
   also vh-clamped so the whole block shrinks a little on short screens
   before padding runs out. */
.hero__content{position:relative;z-index:3;height:100%;display:flex;flex-direction:column;justify-content:center;
  padding-top:clamp(190px,16vh,210px);
  padding-bottom:clamp(96px,13vh,140px);
}
@media (max-width:980px){.hero__content{padding-top:0;padding-bottom:0;}}
.hero__eyebrow{color:var(--gold-light);font-weight:600;letter-spacing:.28em;text-transform:uppercase;font-size:11.25px;margin-bottom:clamp(14px,3vh,22px);
  display:flex;align-items:center;gap:12px;opacity:0;transform:translateY(16px);animation:heroUp .9s var(--ease) .3s forwards;}
.hero__eyebrow::before{content:"";width:36px;height:1.5px;background:var(--gold);}
.hero__title{color:var(--white);font-size:clamp(31px,5.25vw,70px);line-height:0.92;font-weight:800;max-width:920px;
  opacity:0;transform:translateY(24px);animation:heroUp 1s var(--ease) .45s forwards;text-wrap:balance;}
.hero__title em{font-family:var(--font-accent);font-style:italic;font-weight:400;color:var(--gold-light);}
.hero__desc{color:rgba(255,255,255,.86);font-size:15.75px;max-width:560px;margin-top:clamp(14px,3vh,24px);line-height:1.75;
  opacity:0;transform:translateY(20px);animation:heroUp 1s var(--ease) .65s forwards;}
.hero__actions{display:flex;gap:18px;margin-top:clamp(20px,5vh,40px);flex-wrap:wrap;
  opacity:0;transform:translateY(20px);animation:heroUp 1s var(--ease) .85s forwards;}
@keyframes heroUp{to{opacity:1;transform:translateY(0);}}

.hero__nav{position:absolute;z-index:4;bottom:44px;left:0;right:0;}
.hero__nav .container{display:flex;align-items:center;justify-content:space-between;}
.hero__dots{display:flex;gap:12px;}
.hero__dot{width:34px;height:3px;background:rgba(255,255,255,.32);border-radius:2px;position:relative;overflow:hidden;transition:background .3s;}
.hero__dot.is-active{background:rgba(255,255,255,.32);}
.hero__dot span{position:absolute;inset:0;background:var(--gold);width:0;}
.hero__dot.is-active span{animation:heroProgress 6s linear forwards;}
@keyframes heroProgress{from{width:0;}to{width:100%;}}
.hero__arrows{display:flex;gap:10px;}
.hero__arrow{width:44px;height:44px;border:1px solid rgba(255,255,255,.35);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;transition:all .3s;}
.hero__arrow:hover{background:#fff;color:#000;border-color:#fff;}
.hero__scroll{position:absolute;z-index:4;right:36px;bottom:44px;display:flex;flex-direction:column;align-items:center;gap:10px;color:rgba(255,255,255,.7);}
.hero__scroll span{writing-mode:vertical-rl;font-size:11px;letter-spacing:.2em;text-transform:uppercase;}
.hero__scroll-line{width:1px;height:46px;background:linear-gradient(rgba(255,255,255,.9),rgba(255,255,255,0));position:relative;overflow:hidden;}
.hero__scroll-line::after{content:"";position:absolute;top:-46px;left:0;width:100%;height:46px;background:var(--gold);animation:scrollLine 2.2s ease-in-out infinite;}
@keyframes scrollLine{0%{top:-46px;}100%{top:46px;}}
@media (max-width:768px){.hero__scroll{display:none;}.hero__nav{bottom:26px;}}

/* Watch banner slide — product shot layered over the textured background.
   mix-blend-mode:screen turns the image's near-black backdrop transparent
   against the dark stone texture underneath, so no visible image edge/box
   shows — only the watch and its warm glow remain. */
.hero__watch-img{
  position:absolute;z-index:2;top:50%;right:2%;transform:translateY(-50%);
  width:min(58%,780px);height:auto;max-height:82%;object-fit:contain;
  mix-blend-mode:lighten;pointer-events:none;
  filter:drop-shadow(0 30px 70px rgba(0,0,0,.55));
}
.hero__slide--watch .hero__title{max-width:540px;}
.hero__slide--watch .hero__desc{max-width:460px;}
@media (max-width:900px){
  .hero__watch-img{width:78%;right:-6%;opacity:.45;}
}
@media (max-width:600px){
  .hero__watch-img{width:92%;right:-14%;opacity:.3;}
}

/* Bag hero slide: travel-duffle-bag-focus.png is a true alpha-transparent
   cutout (no dark-background trick needed) — placed with a plain drop
   shadow for grounding. Kept clearly visible on mobile (not faded like the
   watch treatment above) per client request, anchored below the text. */
.hero__bag-img{
  position:absolute;z-index:2;top:54%;right:3%;transform:translateY(-50%);
  width:min(48%,750px);height:auto;max-height:60%;object-fit:contain;
  pointer-events:none;
  filter:drop-shadow(0 35px 65px rgba(0,0,0,.6));
}
.hero__slide--bag .hero__title{max-width:600px;}
.hero__slide--bag .hero__desc{max-width:480px;}
@media (max-width:900px){
  .hero__bag-img{top:auto;bottom:3%;left:50%;right:auto;transform:translateX(-50%);width:88%;max-height:30%;filter:drop-shadow(0 20px 40px rgba(0,0,0,.65));}
}
@media (max-width:600px){
  .hero__bag-img{width:90%;max-height:24%;bottom:2%;}
}
@media (max-width:900px) and (max-height:760px){
  .hero__bag-img{max-height:20%;bottom:1.5%;}
}

/* Tumbler hero slide: tumbler.png ships with a flat white background, cut
   out with the alpha-threshold technique (same as the earlier white-bg
   product photos) then composited onto a matching burgundy gradient
   backdrop, generated to echo the retired hero-2.jpg tone. Tall/narrow
   product, so sized by max-height rather than width. */
.hero__tumbler-img{
  position:absolute;z-index:2;top:52%;right:6%;transform:translateY(-50%);
  width:min(30%,420px);height:auto;max-height:74%;object-fit:contain;
  pointer-events:none;
  filter:drop-shadow(0 30px 60px rgba(0,0,0,.6));
}
.hero__slide--tumbler .hero__title{max-width:560px;}
.hero__slide--tumbler .hero__desc{max-width:480px;}
@media (max-width:900px){
  .hero__tumbler-img{top:auto;bottom:4%;left:auto;right:-2%;transform:none;width:60%;max-height:40%;filter:drop-shadow(0 20px 40px rgba(0,0,0,.65));}
}
@media (max-width:600px){
  .hero__tumbler-img{width:66%;max-height:34%;bottom:3%;right:-4%;}
}
@media (max-width:900px) and (max-height:760px){
  .hero__tumbler-img{max-height:28%;bottom:2%;}
}

/* ==========================================================================
   MARQUEE / TRUST STRIP
   ========================================================================== */
.marquee{background:var(--black);color:var(--white);padding-block:16px;overflow:hidden;white-space:nowrap;border-bottom:1px solid rgba(255,255,255,.08);}
.marquee__track{display:inline-flex;gap:60px;animation:marquee 32s linear infinite;}
.marquee__track span{font-family:var(--font-heading);font-size:13px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.72);display:inline-flex;align-items:center;gap:60px;}
.marquee__track span i{color:var(--gold);font-style:normal;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ==========================================================================
   BRAND STORY / OVERVIEW
   ========================================================================== */
.brand-story{background:var(--off-white);}
.brand-story__grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;}
.brand-story__media{position:relative;}
.brand-story__media-frame{position:relative;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:4/5;}
.brand-story__media-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.brand-story__badge{
  position:absolute;bottom:-28px;right:-28px;background:var(--burgundy);color:#fff;padding:26px 30px;border-radius:var(--radius-md);
  box-shadow:var(--shadow-lg);max-width:220px;
}
.brand-story__badge strong{display:block;font-family:var(--font-heading);font-size:30px;line-height:1;margin-bottom:6px;}
.brand-story__badge span{font-size:12px;letter-spacing:.05em;opacity:.85;}
.brand-story__lede{font-family:var(--font-accent);font-style:italic;font-size:26px;line-height:1.5;color:var(--black);margin:20px 0 26px;font-weight:400;}
.brand-story__values{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:34px;}
.value-pill{display:flex;align-items:flex-start;gap:14px;}
.value-pill__icon{flex:0 0 auto;width:44px;height:44px;border-radius:50%;background:var(--cream);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--burgundy);}
.value-pill h4{font-size:14.5px;margin-bottom:3px;}
.value-pill p{font-size:13px;color:var(--text-muted);line-height:1.5;}
@media (max-width:940px){.brand-story__grid{grid-template-columns:1fr;gap:52px;}.brand-story__badge{right:12px;bottom:-24px;}}

/* ==========================================================================
   CATEGORY SHOWCASE
   ========================================================================== */
.categories{background:var(--charcoal);color:#fff;}
.categories .section-title{color:#fff;}
.categories .section-sub{color:rgba(255,255,255,.62);}
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.cat-card{
  position:relative;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:3/3.6;background:var(--charcoal-2);
  display:flex;align-items:flex-end;transition:transform var(--dur) var(--ease);
}
.cat-card:hover{transform:translateY(-6px);}
.cat-card__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.cat-card:hover .cat-card__img{transform:scale(1.08);}
.cat-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 30%,rgba(0,0,0,.88) 100%);}
.cat-card__body{position:relative;z-index:2;padding:26px;width:100%;}
.cat-card__count{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-light);margin-bottom:8px;display:block;}
.cat-card__title{font-size:21px;color:#fff;margin-bottom:10px;}
.cat-card__link{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#fff;
  border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:3px;transition:border-color .3s;}
.cat-card:hover .cat-card__link{border-color:var(--gold);color:var(--gold-light);}

.cat-card--soon{background:linear-gradient(155deg,var(--charcoal-2),var(--charcoal) 70%);align-items:center;justify-content:center;text-align:center;border:1px solid rgba(255,255,255,.08);}
.cat-card--soon .cat-card__body{padding:28px;}
.cat-card--soon .cat-card__icon{width:52px;height:52px;margin:0 auto 18px;border:1px solid rgba(200,161,90,.4);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gold);}
.cat-card--soon .cat-card__title{font-size:18px;}
.cat-card--soon .cat-card__tag{display:inline-block;margin-top:10px;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.45);border:1px solid rgba(255,255,255,.18);padding:5px 12px;border-radius:20px;}

@media (max-width:980px){.cat-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.cat-grid{grid-template-columns:1fr;}}

/* ==========================================================================
   COLLECTION PILLARS (static 3-chapter teaser)
   ========================================================================== */
.pillars{background:var(--charcoal);}
.pillars .section-title{color:#fff;}
.pillars .section-sub{color:rgba(255,255,255,.6);}
.pillars__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.pillar-card{
  position:relative;aspect-ratio:3/4;border-radius:var(--radius-md);overflow:hidden;
  background:linear-gradient(180deg,#2a1315,#1a1a1a 60%);
  transition:transform var(--dur) var(--ease);
}
.pillar-card:hover{transform:translateY(-4px);}
.pillar-card::after{
  content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.09);
  border-radius:var(--radius-md);pointer-events:none;z-index:3;
}
.pillar-card__media{position:absolute;top:0;left:0;right:0;height:58%;overflow:hidden;}
.pillar-card__media picture{display:block;width:100%;height:100%;}
.pillar-card__media-img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;}
.pillar-card__media--screen .pillar-card__media-img{mix-blend-mode:screen;object-position:center 20%;}
.pillar-card__media-fade{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(18,10,11,.75) 78%,#1a1213 100%);
}
.pillar-card__icon{
  position:absolute;top:22px;right:22px;width:38px;height:38px;z-index:2;
  display:flex;align-items:center;justify-content:center;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.5));
}
.pillar-card__body{position:absolute;left:0;right:0;bottom:0;padding:26px 28px 30px;z-index:2;}
.pillar-card h3{font-family:var(--font-accent);font-weight:600;font-size:27px;line-height:1.18;color:#fff;margin-bottom:10px;}
.pillar-card p{font-size:13px;color:rgba(255,255,255,.62);line-height:1.7;margin-bottom:16px;}
.pillar-card__link{
  display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--gold-light);border-bottom:1px solid transparent;padding-bottom:3px;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease);
}
.pillar-card__link:hover{color:#fff;border-color:var(--gold);}
@media (max-width:900px){.pillars__grid{grid-template-columns:1fr;}.pillar-card{aspect-ratio:auto;min-height:360px;} p.hero__desc {font-size: 16px;}}

@media (max-width:400px){
h1.hero__title {font-size: 28px;}
.hero__content {padding-top: 77px;}	
p.hero__eyebrow {
    font-size: 10.5px;
    margin-bottom: 15px;
}
p.hero__desc {
font-size: 14px;
    margin-top: 16px;
    line-height: 22px;
}
h1.hero__title {
    font-size: 25px;
    line-height: 29px;
}
.hero__actions {
    margin-top: 22px;
    gap: 15px;
}
a.btn.btn-primary, a.btn.btn-outline-light {padding: 12px 28px;}
}

/* ==========================================================================
   TUMBLER SPOTLIGHT
   ========================================================================== */
.tumbler-spotlight{background:var(--cream);}
.tumbler-spotlight__grid{display:grid;grid-template-columns:1fr minmax(300px,500px);gap:72px;align-items:center;}
.tumbler-spotlight__lede{font-family:var(--font-accent);font-style:italic;font-weight:500;font-size:19px;color:var(--burgundy);margin-bottom:18px;}
.tumbler-spotlight__body{font-size:15.5px;line-height:1.85;color:var(--text-muted);max-width:52ch;margin-bottom:32px;}

.tumbler-spotlight__features{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;margin-bottom:34px;}
.tumbler-feature{display:flex;align-items:center;gap:12px;font-size:13.5px;font-weight:600;color:var(--text-body);}
.tumbler-feature--wide{grid-column:1 / -1;}
.tumbler-feature__icon{
  flex:0 0 auto;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(132,43,46,.08);border:1px solid rgba(132,43,46,.22);color:var(--burgundy);
}

.tumbler-spotlight__colors{margin-bottom:36px;}
.tumbler-spotlight__colors-label{font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:14px;}
.tumbler-swatches{display:flex;gap:20px;flex-wrap:wrap;}
.tumbler-swatch{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);transition:color var(--dur) var(--ease);}
.tumbler-swatch span{
  width:30px;height:30px;border-radius:50%;background:var(--swatch);
  border:1px solid rgba(0,0,0,.12);box-shadow:inset 0 0 0 3px var(--cream),0 1px 4px rgba(0,0,0,.12);
  transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
.tumbler-swatch:hover{color:var(--burgundy);}
.tumbler-swatch:hover span{transform:translateY(-3px);box-shadow:inset 0 0 0 3px var(--cream),0 6px 14px rgba(0,0,0,.2);}

.tumbler-spotlight__media{position:relative;display:flex;align-items:center;justify-content:center;}
.tumbler-spotlight__glow{
  position:absolute;inset:6% 10%;border-radius:50%;
  background:radial-gradient(circle,rgba(200,161,90,.16) 0%,rgba(200,161,90,0) 70%);
  filter:blur(10px);z-index:0;
}
.tumbler-spotlight__media picture{position:relative;z-index:1;width:100%;max-width:468px;margin-inline:auto;display:block;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-lg);}
.tumbler-spotlight__img{width:100%;height:auto;}
@media (max-width:900px){
  .tumbler-spotlight__grid{grid-template-columns:1fr;gap:44px;}
  .tumbler-spotlight__media{order:-1;}
  .tumbler-spotlight__img,.tumbler-spotlight__media picture{max-width:364px;}
}
@media (max-width:560px){
  .tumbler-spotlight__features{grid-template-columns:1fr;}
}

/* ==========================================================================
   PRODUCT CARDS / GRID
   ========================================================================== */
.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
@media (max-width:1080px){.product-grid{grid-template-columns:repeat(3,1fr);}}
@media (max-width:760px){.product-grid{grid-template-columns:repeat(2,1fr);gap:16px;}}
@media (max-width:460px){.product-grid{grid-template-columns:1fr;}}

.product-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;transition:box-shadow var(--dur),transform var(--dur);position:relative;}
.product-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px);}
.product-card__media{position:relative;aspect-ratio:1/1;background:var(--cream);overflow:hidden;}
.product-card__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.product-card:hover .product-card__media img{transform:scale(1.06);}
.product-card__badge{position:absolute;top:14px;left:14px;background:var(--burgundy);color:#fff;font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:6px 12px;border-radius:20px;z-index:2;}
.product-card__cat{position:absolute;top:14px;right:14px;background:rgba(255,255,255,.92);color:var(--text-muted);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:20px;z-index:2;}
.product-card__body{padding:20px 20px 22px;}
.product-card__cat-label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--burgundy);margin-bottom:6px;display:block;}
.product-card__title{font-size:16.5px;font-family:var(--font-heading);font-weight:600;margin-bottom:8px;line-height:1.3;}
.product-card__title a::after{content:"";position:absolute;inset:0;}
.product-card__desc{font-size:13px;color:var(--text-muted);line-height:1.6;margin-bottom:16px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.product-card__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.product-card__price{font-size:13.5px;color:var(--black);font-weight:600;}
.product-card__price--enquire{font-size:12.5px;color:var(--text-muted);font-weight:500;}
.product-card__cta{position:relative;z-index:2;font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--black);text-decoration:none;display:inline-flex;align-items:center;gap:6px;}
.product-card__cta:hover{color:var(--burgundy);}

.section-cta-row{text-align:center;margin-top:52px;}

/* ==========================================================================
   VALUE PROPS / WHY US
   ========================================================================== */
.value-strip{
  position:relative;overflow:hidden;
  background-size:cover;background-repeat:no-repeat;
  background: #0e0606a1;
    background-position: bottom;
    background-blend-mode: overlay;
}
.value-strip::before{content:"";position:absolute;inset:0;}
.value-strip .container{position:relative;z-index:1;}
.value-strip .section-title{color:#fff;}
.value-strip .section-sub{color:rgba(255,255,255,.6);}
.value-strip__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.value-strip__item{background:var(--charcoal-2);border:1px solid rgba(255,255,255,.08);border-left:3px solid var(--burgundy);border-radius:var(--radius-md);padding:34px 28px;text-align:left;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease);}
.value-strip__item:hover{border-left-color:var(--gold);transform:translateY(-4px);}
.value-strip__icon{width:46px;height:46px;border-radius:var(--radius-sm);background:rgba(132,43,46,.18);border:1px solid rgba(132,43,46,.4);display:flex;align-items:center;justify-content:center;color:var(--burgundy-light);margin-bottom:22px;}
.value-strip__item h4{font-size:16.5px;margin-bottom:10px;color:#fff;}
.value-strip__item p{font-size:13.5px;color:rgba(255,255,255,.56);line-height:1.65;}
@media (max-width:900px){.value-strip__grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.value-strip__grid{grid-template-columns:1fr;}}

/* ---- How It Works (image-left / text-right enquiry process, replaces the
   old Journal preview band on the homepage). Mirrors .tumbler-spotlight's
   photo framing (glow + rounded, shadowed image) with columns reversed. ---- */
.how-it-works{background:var(--cream);}
.how-it-works__grid{display:grid;grid-template-columns:minmax(300px,460px) 1fr;gap:72px;align-items:center;}
.how-it-works__media{position:relative;display:flex;align-items:center;justify-content:center;}
.how-it-works__glow{
  position:absolute;inset:6% 10%;border-radius:50%;
  background:radial-gradient(circle,rgba(200,161,90,.16) 0%,rgba(200,161,90,0) 70%);
}
.how-it-works__media picture{position:relative;z-index:1;width:100%;display:block;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-lg);}
.how-it-works__img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;display:block;}
.how-it-works__steps{display:flex;flex-direction:column;}
.how-it-works__step{display:flex;gap:22px;padding:22px 0;border-top:1px solid var(--line);}
.how-it-works__step:last-child{padding-bottom:0;}
.how-it-works__num{
  flex:0 0 auto;width:44px;font-family:var(--font-accent);font-style:italic;font-weight:600;font-size:19px;color:var(--burgundy);
  line-height:1.4;
}
.how-it-works__step h4{font-size:16.5px;margin-bottom:8px;}
.how-it-works__step p{font-size:14px;color:var(--text-muted);line-height:1.75;max-width:44ch;}
@media (max-width:900px){
  .how-it-works__grid{grid-template-columns:1fr;gap:40px;}
  .how-it-works__media{order:-1;}
  .how-it-works__img{aspect-ratio:16/10;}
}

/* ==========================================================================
   OUR VALUES (About / Our Story page only)
   Intentionally a separate class family from .value-strip above — this
   section has no background-image the way the homepage one does, so it
   needed its own solid dark background rather than the semi-transparent
   overlay tuned for that image. Never reuse .value-strip here; edit this
   block instead so the homepage section is never affected.
   ========================================================================== */
.our-values{position:relative;background:var(--charcoal);overflow:hidden;}
.our-values::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 140% at 50% -10%,rgba(132,43,46,.18),transparent 60%);pointer-events:none;}
.our-values .container{position:relative;z-index:1;}
.our-values .section-title{color:#fff;}
.our-values__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.our-values__item{background:var(--charcoal-2);border:1px solid rgba(255,255,255,.08);border-left:3px solid var(--burgundy);border-radius:var(--radius-md);padding:34px 28px;text-align:left;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);}
.our-values__item:hover{border-left-color:var(--gold);transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.our-values__icon{width:46px;height:46px;border-radius:var(--radius-sm);background:rgba(132,43,46,.18);border:1px solid rgba(132,43,46,.4);display:flex;align-items:center;justify-content:center;color:var(--burgundy-light);margin-bottom:22px;}
.our-values__item h4{font-size:16.5px;margin-bottom:10px;color:#fff;}
.our-values__item p{font-size:13.5px;color:rgba(255,255,255,.56);line-height:1.65;}
@media (max-width:900px){.our-values__grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.our-values__grid{grid-template-columns:1fr;}}

/* ==========================================================================
   DISCIPLINE / QUOTE STATEMENT BAND
   ========================================================================== */
.discipline-band{position:relative;padding-block:110px;background-size:cover;background-position:center;background-repeat:no-repeat;color:#fff;overflow:hidden;}
.discipline-band::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(8,6,6,.94) 0%,rgba(24,9,10,.88) 45%,rgba(8,6,6,.94) 100%);}
.discipline-band .container{position:relative;z-index:1;}
.discipline-band__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:center;}
.discipline-band__title{font-size:clamp(28px,3.4vw,42px);line-height:1.15;margin-bottom:24px;color:#fff;}
.discipline-band__title em{font-family:var(--font-accent);font-style:italic;font-weight:400;background:linear-gradient(90deg,var(--gold-light),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent;}
.discipline-band__rule{width:120px;height:4px;border-radius:2px;background:linear-gradient(90deg,var(--burgundy-dark),var(--burgundy-light) 55%,var(--gold));margin-bottom:30px;}
.discipline-band__quote{font-family:var(--font-accent);font-style:italic;font-weight:400;font-size:19.5px;line-height:1.6;color:rgba(255,255,255,.92);margin-bottom:20px;}
.discipline-band__body{font-size:15px;line-height:1.8;color:rgba(255,255,255,.62);margin-bottom:24px;}
.discipline-band__callout{font-size:16.5px;font-weight:600;line-height:1.6;color:#fff;border-left:2px solid var(--gold);padding-left:18px;}
.discipline-band__card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-md);padding:38px 34px;}
.discipline-band__card-head{font-size:16px;letter-spacing:.04em;line-height:1.6;color:rgba(255,255,255,.6);margin-bottom:24px;font-weight: 500;}
.discipline-band__list{display:flex;flex-direction:column;gap:20px;}
.discipline-band__list li{display:flex;gap:14px;align-items:baseline;font-size:15.5px;font-weight:600;line-height:1.5;color:#fff;}
.discipline-band__list li span{flex:0 0 auto;font-family:var(--font-accent);font-weight:700;font-size:20px;line-height:1;background:linear-gradient(180deg,var(--gold-light),var(--burgundy-light));-webkit-background-clip:text;background-clip:text;color:transparent;}
@media (max-width:860px){.discipline-band__grid{grid-template-columns:1fr;gap:40px;}.discipline-band{padding-block:76px;}}

/* ==========================================================================
   MISSION & VISION (About / Our Story page)
   ========================================================================== */
.mission-vision{background:var(--off-white);}
.mission-vision__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:72px;align-items:center;}
.mission-vision__block{margin-bottom:28px;}
.mission-vision__block h3{font-family:var(--font-heading);font-size:12.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--burgundy);margin-bottom:10px;}
.mission-vision__block p{font-size:15.5px;line-height:1.85;color:var(--text-body);}
.mission-vision__values{display:flex;flex-direction:column;gap:20px;margin-top:34px;padding-top:30px;border-top:1px solid var(--line);}
.mission-vision__mark-panel{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-md);padding:64px 40px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);}
.mission-vision__logo{width:100%;max-width:260px;height:auto;display:block;}
@media (max-width:940px){
  .mission-vision__grid{grid-template-columns:1fr;gap:44px;}
  .mission-vision__mark{order:-1;}
  .mission-vision__mark-panel{padding:44px 32px;}
  .mission-vision__logo{max-width:220px;}
}

/* ==========================================================================
   BLOG CARDS
   ========================================================================== */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
@media (max-width:940px){.blog-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.blog-grid{grid-template-columns:1fr;}}
.blog-card{background:#fff;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--line);transition:box-shadow var(--dur),transform var(--dur);}
.blog-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px);}
.blog-card__media{aspect-ratio:16/10;overflow:hidden;position:relative;}
.blog-card__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.blog-card:hover .blog-card__media img{transform:scale(1.06);}
.blog-card__body{padding:24px 24px 26px;}
.blog-card__meta{display:flex;gap:14px;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:12px;}
.blog-card__meta span{color:var(--burgundy);}
.blog-card__title{font-size:18.5px;line-height:1.35;margin-bottom:12px;position:relative;}
.blog-card__title a::after{content:"";position:absolute;inset:0;}
.blog-card__desc{font-size:13.5px;color:var(--text-muted);line-height:1.65;margin-bottom:16px;}
.blog-card__more{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;display:inline-flex;align-items:center;gap:6px;}

/* ==========================================================================
   NEWSLETTER / CTA
   ========================================================================== */
.cta-band{background:var(--black);color:#fff;position:relative;overflow:hidden;}
.cta-band__inner{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;padding-block:64px;}
.cta-band__text h3{color:#fff;font-size:clamp(22px,2.6vw,32px);margin-bottom:10px;}
.cta-band__text p{color:rgba(255,255,255,.62);font-size:14.5px;max-width:440px;}
.cta-form{display:flex;gap:0;max-width:420px;width:100%;border:1px solid rgba(255,255,255,.28);border-radius:2px;overflow:hidden;}
.cta-form input{flex:1;background:transparent;border:none;padding:16px 18px;color:#fff;font-size:14px;}
.cta-form input::placeholder{color:rgba(255,255,255,.45);}
.cta-form button{padding:16px 26px;background:var(--gold);color:#000;font-weight:600;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;}
.cta-form button:hover{background:var(--gold-light);}
.cta-note{font-size:11.5px;color:rgba(255,255,255,.4);margin-top:12px;}
.form-msg{font-size:13px;margin-top:12px;display:none;}
.form-msg.is-visible{display:block;}
.form-msg.is-success{color:#7fd88f;}
.form-msg.is-error{color:#ff9d9d;}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer{background:var(--charcoal);color:rgba(255,255,255,.72);padding-top:80px;}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:48px;padding-bottom:60px;border-bottom:1px solid rgba(255,255,255,.08);}
.footer-brand img{height:32px;margin-bottom:20px;}
.footer-brand p{font-size:13.5px;line-height:1.75;color:rgba(255,255,255,.5);max-width:300px;margin-bottom:22px;}
.footer-social{display:flex;gap:12px;}
.footer-social a{width:38px;height:38px;border:1px solid rgba(255,255,255,.18);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s;}
.footer-social a:hover{background:var(--gold);border-color:var(--gold);color:#000;}
.footer-col h5{color:#fff;font-size:13px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:22px;font-weight:600;}
.footer-col ul{display:flex;flex-direction:column;gap:13px;}
.footer-col a{font-size:14px;color:rgba(255,255,255,.58);transition:color .25s;}
.footer-col a:hover{color:var(--gold-light);}
.footer-contact li{display:flex;gap:10px;font-size:13.5px;color:rgba(255,255,255,.58);align-items:flex-start;line-height:1.6;}
.footer-contact svg{flex:0 0 auto;margin-top:3px;color:var(--gold);}
.footer-contact__addr-label{display:block;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-light);margin-bottom:3px;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-block:26px;flex-wrap:wrap;font-size:12.5px;color:rgba(255,255,255,.4);}
.footer-bottom a{color:rgba(255,255,255,.4);}
.footer-bottom a:hover{color:var(--gold-light);}
.footer-legal{display:flex;gap:22px;}
@media (max-width:980px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.footer-grid{grid-template-columns:1fr;gap:36px;}}

/* ==========================================================================
   PAGE HEADER (interior pages)
   ========================================================================== */
.page-header{background:var(--charcoal);color:#fff;padding:180px 0 64px;position:relative;overflow:hidden;}
.page-header::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 20%,rgba(132,43,46,.35),transparent 55%);}
.page-header .container{position:relative;}
.page-header h1{color:#fff;font-size:clamp(30px,4vw,52px);margin-bottom:14px;}
.page-header p{color:rgba(255,255,255,.6);max-width:600px;font-size:15.5px;}
.breadcrumbs{margin-bottom:20px;}
.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:6px;font-size:12.5px;color:rgba(255,255,255,.5);}
.breadcrumbs a{color:rgb(26 26 26 / 84%);}
.breadcrumbs a:hover{color:var(--gold-light);}
.breadcrumbs__sep{margin-left:6px;color: var(--gold);}
.breadcrumbs li[aria-current]{color:var(--burgundy-light);}
.page-header--light{background:var(--cream);color:var(--black);}
.page-header--light::before{background:radial-gradient(circle at 85% 20%,rgba(132,43,46,.08),transparent 55%);}
.page-header--light h1{color:var(--black);}
.page-header--light p{color:var(--text-muted);}
.page-header--light .breadcrumbs,.page-header--light .breadcrumbs a{color: rgb(0 0 0 / 69%);}

/* ==========================================================================
   SHOP / CATEGORY LAYOUT
   ========================================================================== */
.shop-layout{display:grid;grid-template-columns:260px 1fr;gap:44px;align-items:flex-start;}
.shop-filters{position:sticky;top:110px;border:1px solid var(--line);border-radius:var(--radius-md);padding:26px;background:#fff;}
/* Lets #product-grid (the filter-link jump target) land clear of the fixed
   site header instead of tucking straight under it. */
#product-grid{scroll-margin-top:110px;}
.shop-filters h4{font-size:13px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:18px;}
.filter-list{display:flex;flex-direction:column;gap:2px;}
.filter-list a{display:flex;justify-content:space-between;padding:10px 4px;font-size:14px;color:var(--text-body);border-radius:4px;}
.filter-list a:hover{color:var(--burgundy);}
.filter-list a.is-active{color:var(--burgundy);font-weight:600;}
.filter-list a span{color:var(--text-muted);font-size:12.5px;}
.filter-soon{margin-top:22px;padding-top:20px;border-top:1px solid var(--line);}
.filter-soon li{font-size:13px;color:var(--text-muted);padding:6px 4px;display:flex;justify-content:space-between;}
.filter-soon li em{font-style:normal;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);border:1px solid var(--line);padding:2px 8px;border-radius:10px;max-height: 25px;}
.shop-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;flex-wrap:wrap;gap:14px;}
.shop-toolbar__count{font-size:13.5px;color:var(--text-muted);}
.search-box{display:flex;border:1px solid var(--line);border-radius:2px;overflow:hidden;max-width:280px;}
.search-box input{flex:1;border:none;padding:10px 14px;font-size:13.5px;}
.search-box button{padding:10px 16px;background:var(--black);color:#fff;}
@media (max-width:900px){.shop-layout{grid-template-columns:1fr;}.shop-filters{position:static;}}

.pagination{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:56px;flex-wrap:wrap;}
.pagination__link{min-width:40px;height:40px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:4px;font-size:13.5px;}
.pagination__link:hover{border-color:var(--burgundy);color:var(--burgundy);}
.pagination__link--active{background:var(--black);border-color:var(--black);color:#fff;}
.pagination__ellipsis{padding:0 6px;color:var(--text-muted);}

.empty-state{text-align:center;padding:80px 20px;color:var(--text-muted);}
.empty-state h3{color:var(--black);margin-bottom:12px;}

/* ==========================================================================
   PRODUCT DETAIL PAGE
   ========================================================================== */
.product-detail{padding-top:130px;}
.pd-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:flex-start;}
.pd-gallery__main{aspect-ratio:1/1;border-radius:var(--radius-md);overflow:hidden;background:var(--cream);border:1px solid var(--line);margin-bottom:16px;position:relative;}
.pd-gallery__main img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;cursor:zoom-in;}
.pd-gallery__thumbs{display:flex;gap:12px;flex-wrap:wrap;}
.pd-gallery__thumb{position:relative;width:84px;height:84px;border-radius:6px;overflow:hidden;border:2px solid transparent;background:var(--cream);cursor:pointer;transition:border-color .25s;}
.pd-gallery__thumb.is-active{border-color:var(--burgundy);}
.pd-gallery__thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;}

.pd-info__cat{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--burgundy);margin-bottom:10px;}
.pd-info__cat a:hover{text-decoration:underline;}
.pd-info h1{font-size:clamp(26px,3.2vw,38px);margin-bottom:16px;}
.pd-info__sku{font-size:12.5px;color:var(--text-muted);margin-bottom:22px;}
.pd-info__price{font-family:var(--font-heading);font-size:24px;font-weight:600;color:var(--black);margin-bottom:4px;}
.pd-info__price--enquire{font-family:inherit;font-size:14.5px;font-weight:500;color:var(--text-muted);margin-bottom:22px;}
.pd-info__price-tax-note{font-size:12px;color:var(--text-muted);margin-bottom:22px;}
.pd-info__desc{font-size:15.5px;color:var(--text-body);line-height:1.8;margin-bottom:28px;}
.pd-features{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:34px;}
.pd-features li{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--text-body);}
.pd-features li svg{flex:0 0 auto;color:var(--burgundy);margin-top:2px;}

.pd-variants{margin-bottom:28px;}
.pd-variants__label{font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:12px;}
.pd-swatches{display:flex;gap:18px;flex-wrap:wrap;}
.pd-swatch{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);background:none;border:0;padding:0;cursor:pointer;transition:color var(--dur) var(--ease);}
.pd-swatch span{
  width:30px;height:30px;border-radius:50%;background:var(--swatch);
  border:1px solid rgba(0,0,0,.12);box-shadow:inset 0 0 0 3px var(--cream),0 1px 4px rgba(0,0,0,.12);
  transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
.pd-swatch:hover{color:var(--burgundy);}
.pd-swatch:hover span{transform:translateY(-3px);box-shadow:inset 0 0 0 3px var(--cream),0 6px 14px rgba(0,0,0,.2);}
.pd-swatch.is-active{color:var(--burgundy);}
.pd-swatch.is-active span{box-shadow:inset 0 0 0 3px var(--cream),0 0 0 2px var(--burgundy);}

.pd-size-chips{display:flex;gap:10px;flex-wrap:wrap;}
.pd-size-chip{min-width:44px;padding:9px 14px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:12.5px;font-weight:600;letter-spacing:.03em;color:var(--text-body);cursor:pointer;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease);}
.pd-size-chip:hover{border-color:var(--burgundy);color:var(--burgundy);}
.pd-size-chip.is-active{border-color:var(--burgundy);color:var(--burgundy);background:rgba(132,43,46,.06);}

.pd-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:30px;}
.pd-actions .btn{flex:1;min-width:190px;}
.pd-trust{display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--line);padding-top:26px;}
.pd-trust li{display:flex;gap:12px;align-items:center;font-size:13px;color:var(--text-muted);}
.pd-trust svg{color:var(--gold);flex:0 0 auto;}
.pd-share{display:flex;align-items:center;gap:12px;margin-top:24px;font-size:12.5px;color:var(--text-muted);}
.pd-share a{width:32px;height:32px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;}
.pd-share a:hover{border-color:var(--burgundy);color:var(--burgundy);}

.aplus{padding-block:80px;}
.aplus__block{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-bottom:80px;}
.aplus__block:last-child{margin-bottom:0;}
.aplus__block--reverse .aplus__media{order:2;}
.aplus__block--full{display:block;}
.aplus__block--full .aplus__media{margin-bottom:28px;}
.aplus__block--full .aplus__text{max-width:760px;}
.aplus__block--text-only{display:block;max-width:760px;}
.aplus__media img{border-radius:var(--radius-md);width:100%;;object-fit:cover;}
.aplus__eyebrow{font-family:var(--font-accent);font-style:italic;font-size:22px;color:var(--burgundy);margin-bottom:14px;}
.aplus__text h3{font-size:26px;margin-bottom:16px;}
.aplus__text p{font-size:15px;color:var(--text-body);line-height:1.85;}
@media (max-width:860px){.pd-grid{grid-template-columns:1fr;gap:36px;}.aplus__block,.aplus__block--reverse{grid-template-columns:1fr;gap:26px;}.aplus__block--reverse .aplus__media{order:0;}.pd-features{grid-template-columns:1fr;}}

/* Product gallery zoom lightbox */
.pd-lightbox{position:fixed;inset:0;background:rgba(10,10,10,.92);display:flex;align-items:center;justify-content:center;padding:40px;z-index:2000;opacity:0;pointer-events:none;transition:opacity .25s;}
.pd-lightbox.is-open{opacity:1;pointer-events:auto;}
.pd-lightbox img{max-width:min(92vw,1100px);max-height:88vh;width:auto;height:auto;object-fit:contain;border-radius:var(--radius-md);box-shadow:0 20px 60px rgba(0,0,0,.5);}
.pd-lightbox__close{position:absolute;top:24px;right:28px;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;border:none;font-size:26px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;}
.pd-lightbox__close:hover{background:rgba(255,255,255,.24);}
body.pd-lightbox-open{overflow:hidden;}

.related-products{background:var(--cream);}

/* ==========================================================================
   BLOG SINGLE
   ========================================================================== */
.post-body{max-width:760px;margin-inline:auto;font-size:16.5px;line-height:1.95;color:var(--text-body);}
.post-body p{margin-bottom:22px;}
.post-body h2,.post-body h3{margin:40px 0 18px;}
.post-hero{position:relative;aspect-ratio:21/9;border-radius:var(--radius-md);overflow:hidden;margin-bottom:44px;max-width:1000px;margin-inline:auto;}
.post-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.post-meta-row{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;font-size:13px;color:var(--text-muted);margin-bottom:20px;text-transform:uppercase;letter-spacing:.05em;}
.post-meta-row span{color:var(--burgundy);}
.post-share{display:flex;justify-content:center;gap:12px;margin-top:56px;padding-top:36px;border-top:1px solid var(--line);}

/* ==========================================================================
   FORMS (contact / enquiry modal)
   ========================================================================== */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.form-field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;}
.form-field label{font-size:12.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-body);}
.form-field input,.form-field textarea,.form-field select{
  border:1px solid var(--line);border-radius:4px;padding:14px 16px;font-size:14.5px;background:#fff;transition:border-color .25s;width:100%;
}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:var(--burgundy);}
.form-field textarea{resize:vertical;min-height:120px;}
.form-field.is-full{grid-column:1/-1;}
.hp-field{position:absolute;left:-9999px;opacity:0;}
@media (max-width:600px){.form-grid{grid-template-columns:1fr;}}

.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:flex-start;}
.contact-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);padding:38px;}
.contact-info-list{display:flex;flex-direction:column;gap:26px;margin-top:30px;}
.contact-info-item{display:flex;gap:16px;align-items:flex-start;}
.contact-info-item__icon{width:48px;height:48px;border-radius:50%;background:var(--cream);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--burgundy);flex:0 0 auto;}
.contact-info-item h4{font-size:14.5px;margin-bottom:4px;}
.contact-info-item p,.contact-info-item a{font-size:14px;color:var(--text-muted);}
@media (max-width:860px){.contact-layout{grid-template-columns:1fr;gap:40px;}}

/* Enquiry modal */
.pr-modal-overlay{position:fixed;inset:0;background:rgba(10,10,10,.7);backdrop-filter:blur(3px);z-index:2000;display:none;align-items:center;justify-content:center;padding:24px;}
.pr-modal-overlay.is-open{display:flex;}
.pr-modal{background:#fff;border-radius:var(--radius-md);max-width:560px;width:100%;max-height:90vh;overflow-y:auto;padding:40px;position:relative;box-shadow:var(--shadow-lg);}
.pr-modal__close{position:absolute;top:18px;right:18px;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--cream);}
.pr-modal__close:hover{background:var(--burgundy);color:#fff;}
.pr-modal h3{font-size:22px;margin-bottom:8px;}
.pr-modal__product{display:flex;gap:14px;align-items:center;background:var(--cream);border-radius:8px;padding:12px;margin-bottom:24px;}
.pr-modal__product img{width:56px;height:56px;object-fit:cover;border-radius:6px;}
.pr-modal__product span{font-size:14px;font-weight:600;}

/* ==========================================================================
   SCROLL REVEAL
   ========================================================================== */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal.is-visible{opacity:1;transform:translateY(0);}
.reveal-stagger > *{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.reveal-stagger.is-visible > *{opacity:1;transform:translateY(0);}
.reveal-stagger.is-visible > *:nth-child(1){transition-delay:.05s;}
.reveal-stagger.is-visible > *:nth-child(2){transition-delay:.11s;}
.reveal-stagger.is-visible > *:nth-child(3){transition-delay:.17s;}
.reveal-stagger.is-visible > *:nth-child(4){transition-delay:.23s;}
.reveal-stagger.is-visible > *:nth-child(5){transition-delay:.29s;}
.reveal-stagger.is-visible > *:nth-child(6){transition-delay:.35s;}
.reveal-stagger.is-visible > *:nth-child(n+7){transition-delay:.4s;}

/* ==========================================================================
   TOAST
   ========================================================================== */
.pr-toast{position:fixed;bottom:28px;right:28px;z-index:3000;background:var(--black);color:#fff;padding:16px 22px;border-radius:6px;font-size:13.5px;
  box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:12px;transform:translateY(20px);opacity:0;pointer-events:none;transition:all .35s var(--ease);}
.pr-toast.is-visible{transform:translateY(0);opacity:1;}
.pr-toast--success{border-left:3px solid #4caf50;}
.pr-toast--error{border-left:3px solid #e05353;}

/* ==========================================================================
   MISC / UTILITIES
   ========================================================================== */
.text-center{text-align:center;}
.mt-0{margin-top:0;}
.skip-link{position:absolute;left:-999px;top:0;background:var(--black);color:#fff;padding:14px 20px;z-index:5000;}
.skip-link:focus{left:16px;top:16px;}
.bg-cream{background:var(--cream);}
.bg-charcoal{background:var(--charcoal);color:#fff;}
.whatsapp-fab{position:fixed;bottom:26px;left:26px;z-index:900;width:56px;height:56px;border-radius:50%;background:#25d366;color:#fff;
  display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,0,0,.25);transition:transform .3s;}
.whatsapp-fab:hover{transform:scale(1.08);}

/* Content-protection block (text-selection lock, image drag-lock) removed
   by request — text can be selected and images dragged like any normal
   site again. */
