/*
Theme Name:        Brooch by RMZ
Theme URI:         https://www.instagram.com/brooch_by_rmz/
Author:            Built for Brooch by RMZ
Author URI:        https://www.instagram.com/brooch_by_rmz/
Description:       A calm, editorial boutique theme for Brooch by RMZ — handcrafted brooches, pins, medals & bracelets. Cream-paper canvas, olive & beige house colours, hairline rules and framed "catalogue plate" imagery. Designed to sit seamlessly around the RMZ customizer plugins and WooCommerce. Includes selectable page templates for Home (Companies), About and Contact.
Version:           1.10.4
Requires at least: 6.0
Tested up to:      6.6
Requires PHP:      7.4
License:           GNU General Public License v2 or later
License URI:       http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       brooch-by-rmz
Tags:              custom-menu, featured-images, translation-ready, custom-logo, e-commerce, two-columns, right-sidebar
*/

/* ============================================================
   Brooch by RMZ — theme stylesheet
   Design tokens mirror the RMZ Medal/Bracelet/Brooch customizers
   so the tools and the site read as one house style.
   ============================================================ */

/* ---------- Design tokens ---------- */
:root{
  /* Brand leads (client-supplied) */
  --olive:        #404831;   /* primary dark: headings on light, dark sections, footer, buttons */
  --olive-deep:   #333a26;   /* hover / depth */
  --olive-soft:   #5b6446;   /* matches customizer olive */
  --beige:        #c7af8d;   /* accent: mats, frames, secondary buttons, olive-section eyebrows */
  --beige-2:      #d8c6a9;   /* lighter beige */
  --beige-deep:   #b6996f;   /* beige hover */

  /* Paper / cream base (from customizer) */
  --paper:        #fbf9f3;   /* page background */
  --cream:        #efe9db;   /* alternate light section */
  --cream-2:      #e6dcc6;

  /* Text + hairlines */
  --ink:          #2f3326;
  --muted:        #7c7c68;
  --muted-2:      #9a9884;
  --line:         #ddd3bf;   /* hairline olive-tinted rule */
  --line-soft:    #e7ddca;
  --gold:         #c9a24b;   /* tiny metallic detail only */

  /* On-dark text */
  --on-olive:         #f4f1e7;
  --on-olive-muted:   #cdcbb6;

  /* Type */
  --font-display: "Playfair Display", Georgia, "Times New Roman", serif;
  --font-body:    "Jost", "Segoe UI", system-ui, -apple-system, sans-serif;

  /* Fluid type scale — editorial, restrained weights */
  --fs-eyebrow: .68rem;
  --fs-body:    1.02rem;
  --fs-lead:    clamp(1.08rem, 1.5vw, 1.24rem);
  --fs-h3:      clamp(1.18rem, 1.9vw, 1.42rem);
  --fs-h2:      clamp(1.75rem, 3.2vw, 2.55rem);
  --fs-h1:      clamp(2.2rem, 4.8vw, 3.5rem);

  /* Spacing — generous whitespace is the luxury */
  --container:  1200px;
  --container-narrow: 720px;
  --container-mid: 940px;
  --pad-x:      clamp(22px, 5vw, 64px);
  --section-y:  clamp(78px, 10vw, 148px);
  --radius:     10px;
  --radius-lg:  16px;
  --shadow:     0 30px 60px -34px rgba(47,51,38,.4);
  --shadow-soft:0 18px 40px -30px rgba(47,51,38,.34);
}

/* ---------- Reset-ish ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:var(--fs-body);
  font-weight:400;
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--olive); text-decoration:none; transition:color .25s ease; }
a:hover{ color:var(--olive-deep); }
:focus-visible{ outline:2px solid var(--olive-soft); outline-offset:2px; }

/* ---------- Typography ---------- */
h1,h2,h3,h4{
  font-family:var(--font-display);
  color:var(--olive);
  line-height:1.2;
  font-weight:600;
  margin:0 0 .55em;
  letter-spacing:-.005em;
}
h1{ font-size:var(--fs-h1); line-height:1.12; }
h2{ font-size:var(--fs-h2); line-height:1.18; }
h3{ font-size:var(--fs-h3); font-weight:600; letter-spacing:0; }
p{ margin:0 0 1.2em; }
p:last-child{ margin-bottom:0; }
.lead{ font-size:var(--fs-lead); color:#4a4d3e; line-height:1.68; }
strong{ font-weight:600; }

/* Eyebrow / small-caps label — the RMZ signature label */
.eyebrow{
  display:inline-block;
  font-family:var(--font-body);
  font-size:var(--fs-eyebrow);
  font-weight:500;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--olive-soft);
  margin:0 0 18px;
}
.eyebrow--onolive{ color:var(--beige); }
.eyebrow--onbeige{ color:var(--olive); }

/* Hairline rules & ornamental dividers */
.rule{ height:1px; background:var(--line); border:0; margin:0; }
.rule--short{ width:44px; height:1px; background:var(--beige-deep); border:0; margin:0 0 24px; }
.rule--short.centered{ margin-left:auto; margin-right:auto; }
.rule--onolive{ background:var(--beige); }
/* Centered ornament: — ✦ — */
.divider{ display:flex; align-items:center; justify-content:center; gap:14px; margin:0 auto 26px;
  color:var(--beige-deep); }
.divider::before,.divider::after{ content:""; height:1px; width:40px; background:var(--line); }
.divider span{ font-size:.7rem; letter-spacing:.2em; }
.section--olive .divider{ color:var(--beige); }
.section--olive .divider::before,.section--olive .divider::after{ background:rgba(244,241,231,.3); }

/* ---------- Layout helpers ---------- */
.container{ width:100%; max-width:var(--container); margin:0 auto; padding-left:var(--pad-x); padding-right:var(--pad-x); }
.container--narrow{ max-width:var(--container-narrow); }
.section{ padding-top:var(--section-y); padding-bottom:var(--section-y); }
.section--paper{ background:var(--paper); }
.section--white{ background:#ffffff; }
.section--cream{ background:var(--cream); }
.section--olive{ background:var(--olive); color:var(--on-olive); }
.section--beige{ background:var(--beige); color:#3a3d2c; }
.section--tight{ padding-top:clamp(40px,6vw,72px); padding-bottom:clamp(40px,6vw,72px); }

.section--olive h1,.section--olive h2,.section--olive h3{ color:var(--on-olive); }
.section--olive p{ color:var(--on-olive-muted); }
.section--olive a{ color:#fff; }
.section--beige h1,.section--beige h2,.section--beige h3{ color:var(--olive-deep); }
.section--beige p{ color:#4a4d38; }

.center{ text-align:center; }
.measure{ max-width:60ch; }
.measure.center{ margin-left:auto; margin-right:auto; }

/* ---------- Buttons — elegant, restrained ---------- */
.btn{
  --btn-bg:var(--olive); --btn-fg:#fff; --btn-bd:var(--olive);
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--font-body); font-weight:500;
  font-size:.76rem; letter-spacing:.18em; text-transform:uppercase;
  padding:16px 34px; border:1px solid var(--btn-bd); border-radius:4px;
  background:var(--btn-bg); color:var(--btn-fg); cursor:pointer;
  transition:background .3s ease, color .3s ease, border-color .3s ease;
  line-height:1;
}
.btn:hover{ background:var(--beige); border-color:var(--beige); color:var(--olive-deep); }
.btn--beige{ --btn-bg:var(--beige); --btn-bd:var(--beige); color:var(--olive-deep); }
.btn--beige:hover{ background:var(--olive); border-color:var(--olive); color:#fff; }
.btn--ghost{ --btn-bg:transparent; --btn-bd:var(--line); color:var(--olive); }
.btn--ghost:hover{ background:transparent; border-color:var(--olive); color:var(--olive-deep); }
.btn--onolive{ --btn-bg:var(--beige); --btn-bd:var(--beige); color:var(--olive-deep); }
.btn--onolive:hover{ background:#fff; border-color:#fff; color:var(--olive-deep); }
.btn--ghost-onolive{ --btn-bg:transparent; --btn-bd:rgba(244,241,231,.45); color:#fff; }
.btn--ghost-onolive:hover{ background:transparent; border-color:var(--beige); color:var(--beige); }
.btn-row{ display:flex; flex-wrap:wrap; gap:16px; margin-top:32px; }
.btn-row.center{ justify-content:center; }

/* ---------- Framed "catalogue plate" (theme signature) ---------- */
.plate{
  position:relative;
  background:var(--beige);
  padding:13px;
  border-radius:4px;
  box-shadow:var(--shadow-soft);
}
.plate::after{ /* thin inner keyline */
  content:""; position:absolute; inset:8px; border:1px solid rgba(255,255,255,.45);
  border-radius:2px; pointer-events:none;
}
.plate__inner{
  position:relative;
  aspect-ratio:4/5;
  background:var(--paper);
  border-radius:3px;
  overflow:hidden;
  display:grid; place-items:center;
}
.plate__inner img{ width:100%; height:100%; object-fit:cover; }
.plate--wide .plate__inner{ aspect-ratio:4/3; }
.plate__mono{ /* placeholder monogram when no image is set */
  font-family:var(--font-display); font-weight:700; font-size:clamp(2.4rem,6vw,4rem);
  color:var(--beige-deep); opacity:.6; letter-spacing:.04em;
}
.plate__cap{
  position:absolute; left:16px; bottom:16px; right:16px;
  font-family:var(--font-body); font-size:.64rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--olive-deep);
  background:rgba(251,249,243,.85); backdrop-filter:blur(2px);
  padding:8px 12px; border-radius:3px;
}

/* ---------- Hero signature slider ---------- */
.plate--hero{ width:100%; }
.hero-slider{
  position:relative; aspect-ratio:4/5; background:var(--paper);
  border-radius:3px; overflow:hidden;
}
.hero-slider__track{ position:absolute; inset:0; }
.hero-slider__slide{
  position:absolute; inset:0; display:grid; place-items:center;
  opacity:0; transform:translateX(48px) scale(1.02);
  transition:opacity .7s ease, transform 1s cubic-bezier(.2,.72,.15,1);
  will-change:opacity, transform;
}
.hero-slider__slide.is-active{ opacity:1; transform:translateX(0) scale(1); }
.hero-slider__slide img{ width:100%; height:100%; object-fit:cover; }
/* Wordmark overlay — images fill the image area but never the whole frame. */
.hero-slider__wordmark{
  position:absolute; left:0; right:0; bottom:0; z-index:3;
  padding:30px 18px 18px; text-align:center; color:#fff; pointer-events:none;
  background:linear-gradient(to top, rgba(47,51,38,.78), rgba(47,51,38,.28) 55%, transparent);
}
.hero-slider__name{
  display:block; font-family:var(--font-display); font-weight:700;
  font-size:clamp(1.2rem,2.4vw,1.6rem); letter-spacing:.4px; line-height:1.05;
}
.hero-slider__kicker{
  display:block; margin-top:7px; font-family:var(--font-body);
  font-size:.58rem; letter-spacing:.36em; text-transform:uppercase; color:var(--beige-2);
}
.hero-slider__dots{ position:absolute; top:14px; right:14px; z-index:4; display:flex; gap:7px; }
.hero-slider__dot{
  width:8px; height:8px; border-radius:50%; border:0; padding:0; cursor:pointer;
  background:rgba(255,255,255,.55); transition:background .2s ease, transform .2s ease;
}
.hero-slider__dot:hover{ background:rgba(255,255,255,.85); }
.hero-slider__dot.is-active{ background:#fff; transform:scale(1.3); }

/* ---------- WhatsApp button (stays within the two-colour palette) ---------- */
.btn--wa{ --btn-bg:var(--beige); --btn-bd:var(--beige); color:var(--olive-deep);
  display:inline-flex; align-items:center; gap:8px; }
.btn--wa:hover{ background:var(--beige-deep); border-color:var(--beige-deep); color:var(--olive-deep); }
.btn--wa svg{ display:block; }

/* ---------- Assurance strip ---------- */
.section--strip{ padding-top:26px; padding-bottom:26px; border-bottom:1px solid var(--line); }
.assure{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap;
  justify-content:center; gap:14px 44px; }
.assure li{ font-family:var(--font-body); font-size:.72rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--muted); display:flex; align-items:center; gap:10px; }
.assure li span{ color:var(--beige-deep); font-size:.62rem; }

@media (prefers-reduced-motion: reduce){
  .hero-slider__slide{ transition:opacity .35s ease; transform:none; }
  .hero-slider__slide.is-active{ transform:none; }
}

/* ---------- Header ---------- */
.site-header{
  position:static;
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
/* Left nav | centered brand | right nav. The two nav columns share equal
   width so the logo sits dead-centre regardless of link lengths. */
.site-header__bar{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  column-gap:32px; min-height:104px;
}
.site-header__brand{ justify-self:start; padding:8px 0; }
.primary-nav{ justify-self:center; }
.header-right{ justify-self:end; display:flex; align-items:center; gap:8px; }
.site-header__spacer{ display:none; }

.brand{ display:inline-flex; flex-direction:column; align-items:center; gap:5px; text-align:center; }
.brand__logo{ display:inline-flex; }
.brand__logo img,
.site-header__brand .custom-logo{ max-height:82px; width:auto; }
.brand__name{
  font-family:var(--font-display); font-weight:600; font-size:1.5rem;
  color:var(--olive); letter-spacing:.5px; line-height:1;
}
.brand__name span{ display:block; font-family:var(--font-body); font-weight:500;
  font-size:.55rem; letter-spacing:.34em; text-transform:uppercase; color:var(--muted); margin-top:8px; }

.primary-nav .nav-list{ list-style:none; display:flex; align-items:center; gap:34px; margin:0; padding:0; }
.primary-nav a{
  font-family:var(--font-body); font-weight:500; font-size:.74rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ink);
  padding:8px 0; position:relative; white-space:nowrap;
  transition:color .25s ease;
}
.primary-nav a::after{
  content:""; position:absolute; left:0; right:100%; bottom:2px; height:1px;
  background:var(--beige-deep); transition:right .3s ease;
}
.primary-nav a:hover{ color:var(--olive); }
.primary-nav a:hover::after,
.primary-nav .current-menu-item > a::after{ right:0; }

/* Customize dropdown */
.primary-nav .has-dropdown{ position:relative; }
.nav-drop-link{ display:inline-flex; align-items:center; gap:6px; }
.nav-drop-toggle{
  display:inline-flex; align-items:center; gap:7px; border:0; background:none; cursor:pointer;
  font-family:var(--font-body); font-weight:500; font-size:.74rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink); padding:8px 0; position:relative;
  transition:color .25s ease;
}
.nav-drop-toggle:hover{ color:var(--olive); }
.nav-caret{ transition:transform .25s ease; }
.has-dropdown:hover .nav-caret,
.has-dropdown:focus-within .nav-caret,
.nav-drop-toggle[aria-expanded="true"] .nav-caret{ transform:rotate(180deg); }
.nav-dropdown{
  list-style:none; margin:0; padding:8px; position:absolute; left:-14px; top:calc(100% + 10px);
  min-width:180px; background:#fff; border:1px solid var(--line); border-radius:8px;
  box-shadow:var(--shadow-soft); z-index:60;
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
}
.has-dropdown:hover .nav-dropdown,
.has-dropdown:focus-within .nav-dropdown,
.nav-dropdown.is-open{ opacity:1; visibility:visible; transform:translateY(0); }
.nav-dropdown a{
  display:block; padding:9px 12px; border-radius:5px; font-size:.72rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink); transition:background .2s ease, color .2s ease;
}
.nav-dropdown a::after{ display:none; }
.nav-dropdown a:hover{ background:var(--cream); color:var(--olive); }

/* Right cluster: nav + utility icons (keeps the logo centred). */
.header-right{ justify-self:end; display:flex; align-items:center; gap:26px; }
.header-utils{ display:flex; align-items:center; gap:6px; padding-left:22px;
  border-left:1px solid var(--line); }
.header-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; border:0; background:none; cursor:pointer;
  color:var(--olive); border-radius:50%; transition:background .25s ease, color .25s ease;
}
.header-icon:hover{ background:rgba(64,72,49,.07); color:var(--olive-deep); }
.header-icon svg{ display:block; }

.header-account{ position:relative; }
.account-menu{
  position:absolute; right:0; top:calc(100% + 12px); min-width:190px;
  background:#fff; border:1px solid var(--line); border-radius:8px;
  box-shadow:var(--shadow-soft); padding:8px; z-index:60;
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
}
.account-menu.is-open{ opacity:1; visibility:visible; transform:translateY(0); }
.account-menu a{
  display:block; padding:10px 12px; border-radius:5px;
  font-family:var(--font-body); font-size:.82rem; letter-spacing:.04em; color:var(--ink);
  transition:background .2s ease, color .2s ease;
}
.account-menu a:hover{ background:var(--cream); color:var(--olive); }
.account-menu__hi{ display:block; padding:8px 12px 6px; font-size:.68rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--muted); border-bottom:1px solid var(--line-soft); margin-bottom:4px; }
.account-menu__out{ border-top:1px solid var(--line-soft); margin-top:4px; color:var(--olive-soft); }

/* Hamburger — hidden on desktop, shown when the split nav collapses. */
.nav-toggle{
  display:none; background:none; border:1px solid var(--line);
  border-radius:8px; width:44px; height:40px; cursor:pointer; padding:0;
  align-items:center; justify-content:center; justify-self:start;
}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:""; display:block; width:20px; height:1.6px; background:var(--olive);
  position:relative; transition:transform .2s ease, opacity .2s ease;
}
.nav-toggle span::before{ position:absolute; top:-6px; }
.nav-toggle span::after{ position:absolute; top:6px; }
.nav-toggle[aria-expanded="true"] span{ background:transparent; }
.nav-toggle[aria-expanded="true"] span::before{ transform:translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span::after{ transform:translateY(-6px) rotate(-45deg); }

/* Mobile dropdown panel — hidden until the nav collapses. */
.mobile-nav{ display:none; }
.mobile-nav .current-menu-item > a{ color:var(--olive); }

/* ---------- Hero ---------- */
.hero{ padding-top:clamp(56px,8vw,110px); padding-bottom:clamp(56px,8vw,110px); }
.hero__grid{
  display:grid; grid-template-columns:1fr .92fr; gap:clamp(36px,6vw,88px);
  align-items:center;
}
.hero__title{ margin-bottom:.4em; }
.hero__text{ max-width:44ch; }
.hero__aside{ display:flex; justify-content:flex-end; }
.hero__aside .plate{ width:min(430px,100%); }

/* ---------- Feature / card grids ---------- */
.grid{ display:grid; gap:clamp(20px,3vw,34px); }
.grid--2{ grid-template-columns:repeat(2,1fr); }
.grid--3{ grid-template-columns:repeat(3,1fr); }
.grid--4{ grid-template-columns:repeat(4,1fr); }

.card{
  background:#fff; border:1px solid var(--line); border-radius:8px;
  padding:16px 16px 24px; box-shadow:var(--shadow-soft);
  transition:box-shadow .3s ease, border-color .3s ease, transform .3s ease;
}
.card:hover{ box-shadow:var(--shadow); border-color:var(--beige); transform:translateY(-3px); }
.card__plate{ margin-bottom:20px; }
.card__plate .plate{ background:var(--cream); box-shadow:none; padding:11px; }
.card__plate .plate::after{ border-color:rgba(64,72,49,.1); }
.card h3{ margin:0 4px .35em; }
.card p{ color:#55584a; font-size:.95rem; margin:0 4px; }
.card__link{
  display:inline-block; margin:14px 4px 0; font-size:.7rem; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase; color:var(--olive-soft);
  transition:color .25s ease, letter-spacing .25s ease;
}
.card__link:hover{ color:var(--olive-deep); letter-spacing:.26em; }

/* Plain feature (no image) */
.feature{ padding-top:6px; }
.feature .num{
  font-family:var(--font-display); font-size:1.1rem; color:var(--beige-deep);
  font-weight:700; letter-spacing:.1em; display:block; margin-bottom:10px;
}
.section--olive .feature .num{ color:var(--beige); }
.feature h3{ margin-bottom:.35em; }

/* Small stat row on olive band */
.tags{ display:flex; flex-wrap:wrap; gap:12px 26px; margin-top:8px; }
.tags li{ list-style:none; font-size:.82rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--on-olive-muted); padding-left:18px; position:relative; }
.tags li::before{ content:""; position:absolute; left:0; top:.55em; width:7px; height:7px;
  background:var(--beige); border-radius:50%; }
.tags{ padding:0; margin-left:0; }

/* ---------- Company band (important trust section) ---------- */
.company-band{ position:relative; overflow:hidden;
  padding-top:clamp(80px,10vw,140px); padding-bottom:clamp(80px,10vw,140px); }
/* very soft radial lighting behind the image (subtle depth) */
.company-band__glow{ position:absolute; top:50%; right:-6%; width:52%; height:120%;
  transform:translateY(-50%); pointer-events:none; z-index:0;
  background:radial-gradient(closest-side, rgba(199,175,141,.18), transparent 72%); }
.company-band .container{ position:relative; z-index:1; }
.company-band__grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(40px,6vw,84px);
  align-items:center; }
.company-band__text{ max-width:560px; }
.company-band__title{ font-size:clamp(2rem,3.6vw,3rem); margin:.2em 0 .55em; line-height:1.12; }
.company-band__lead{ max-width:46ch; color:var(--on-olive-muted); }
/* the "live line" accent (draws in on reveal) */
.live-line{ display:block; width:56px; height:2px; background:var(--beige);
  margin:0 0 22px; transform:scaleX(0); transform-origin:left;
  transition:transform 1s cubic-bezier(.2,.7,.2,1) .15s; }
.company-band.is-visible .live-line{ transform:scaleX(1); }
/* trust chips */
.trust-chips{ list-style:none; margin:24px 0 2px; padding:0;
  display:grid; grid-template-columns:1fr 1fr; gap:11px 22px; }
.trust-chips li{ display:flex; align-items:center; gap:9px;
  font-family:var(--font-body); font-size:.82rem; letter-spacing:.03em; color:var(--on-olive-muted); }
.trust-chips svg{ color:var(--beige); flex:none; }
.company-band .btn-row{ margin-top:32px; }
.company-band__trust{ margin-top:22px; font-size:.76rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--beige-2); }

/* framed feature image with corner detailing */
.company-band__media{ position:relative; }
.co-frame{ position:relative; margin:0; padding:12px;
  border:1px solid rgba(244,241,231,.2); border-radius:6px; background:rgba(0,0,0,.06); }
.co-frame::before, .co-frame::after{ content:""; position:absolute; width:20px; height:20px;
  border:1px solid var(--beige); opacity:.55; }
.co-frame::before{ top:-1px; left:-1px; border-right:0; border-bottom:0; }
.co-frame::after{ bottom:-1px; right:-1px; border-left:0; border-top:0; }
.co-frame img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:3px; display:block; }
.co-frame__ph{ aspect-ratio:4/3; border-radius:3px; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:14px; text-align:center;
  background:linear-gradient(160deg, rgba(199,175,141,.16), rgba(64,72,49,.2)); }
.co-frame__ph .plate__mono{ color:var(--beige); opacity:.5; }
.co-frame__cap{ font-family:var(--font-body); font-size:.66rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--on-olive-muted); max-width:24ch; }

@media (prefers-reduced-motion: reduce){ .live-line{ transform:scaleX(1); } }

/* ---------- Split (image + text) ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,60px); align-items:center; }
.split--reverse .split__media{ order:2; }
.split__media .plate{ width:100%; }

/* ---------- Definition-style list (materials / craft) ---------- */
.deflist{ margin:0; padding:0; }
.deflist .row{ display:grid; grid-template-columns:220px 1fr; gap:20px;
  padding:20px 0; border-top:1px solid var(--line); }
.deflist .row:last-child{ border-bottom:1px solid var(--line); }
.deflist dt{ font-family:var(--font-display); font-size:1.12rem; color:var(--olive); font-weight:600; margin:0; }
.deflist dd{ margin:0; color:#55584a; }

/* ---------- Quote band ---------- */
.quote{ text-align:center; max-width:820px; margin:0 auto; }
.quote p{ font-family:var(--font-display); font-weight:500; font-style:italic;
  font-size:clamp(1.4rem,3vw,2rem); line-height:1.35; color:var(--on-olive); }
.quote cite{ display:block; margin-top:18px; font-style:normal; font-family:var(--font-body);
  font-size:.78rem; letter-spacing:.2em; text-transform:uppercase; color:var(--beige); }

/* ---------- CTA band ---------- */
.cta{ text-align:center; }
.cta h2{ margin-bottom:.3em; }

/* ---------- Contact ---------- */
.contact-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.contact-card{ border:1px solid var(--line); border-radius:8px;
  padding:26px 26px 28px; background:#fff; box-shadow:var(--shadow-soft); }
.contact-card .eyebrow{ margin-bottom:10px; }
.contact-card a{ color:var(--olive); font-weight:500; }
.contact-card a:hover{ color:var(--olive-deep); }
.contact-card p{ font-size:.98rem; color:#4a4d3e; margin:0; line-height:1.6; }

/* Built-in enquiry form — scoped to .form-region so it never touches the
   login plugin (which also uses a .rmz-form class). */
.form-region{ margin-top:8px; }
.form-region .rmz-form{ background:#fff; border:1px solid var(--line); border-radius:10px;
  box-shadow:var(--shadow-soft); padding:clamp(24px,3vw,36px); }
.form-region .rmz-field{ margin-bottom:18px; }
.form-region .rmz-field-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-region label, .form-region .rmz-field label{ display:block; font-size:.64rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--muted); margin:0 0 8px; font-weight:500; }
.form-region input[type=text], .form-region input[type=email], .form-region input[type=tel],
.form-region input[type=url], .form-region textarea, .form-region select,
.form-region .rmz-form input[type=text], .form-region .rmz-form input[type=email],
.form-region .rmz-form input[type=tel], .form-region .rmz-form textarea{
  width:100%; border:1px solid var(--line); border-radius:6px; background:var(--paper);
  padding:14px 16px; font-family:var(--font-body); font-size:1rem; color:var(--ink);
  transition:border-color .25s ease, box-shadow .25s ease, background .25s ease;
}
.form-region .rmz-form textarea{ min-height:150px; resize:vertical; }
.form-region input:focus, .form-region textarea:focus, .form-region select:focus,
.form-region .rmz-form input:focus, .form-region .rmz-form textarea:focus{
  outline:none; border-color:var(--olive-soft); background:#fff;
  box-shadow:0 0 0 3px rgba(91,100,70,.14); }
.form-region .rmz-form input::placeholder, .form-region .rmz-form textarea::placeholder{ color:#a7a692; }
.form-region .rmz-form__actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:6px; }
.form-region .rmz-form__note{ margin:18px 0 0; font-size:.8rem; color:var(--muted); line-height:1.6; }

/* ---------- Contact — art-directed ---------- */
.contact-section{ padding-top:clamp(64px,8vw,120px); padding-bottom:clamp(72px,9vw,130px); }
.contact-intro{ max-width:600px; margin:0 auto clamp(48px,6vw,84px); text-align:center; }
.contact-intro h1{ margin:.15em 0 .1em; }
.contact-intro .lead{ margin-top:.2em; }

.contact-lux{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(28px,4vw,60px); align-items:stretch; }

/* Primary — WhatsApp focal panel */
.cx-primary{
  display:flex; flex-direction:column; gap:26px;
  background:var(--olive); color:#fff; border-radius:16px;
  padding:clamp(34px,3.6vw,52px); min-height:360px;
  text-decoration:none; box-shadow:var(--shadow-soft);
  transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease;
  position:relative; overflow:hidden;
}
.cx-primary::after{ content:""; position:absolute; right:-60px; bottom:-60px; width:200px; height:200px;
  border-radius:50%; background:radial-gradient(closest-side, rgba(199,175,141,.16), transparent 70%); pointer-events:none; }
.cx-primary:hover{ transform:translateY(-5px); box-shadow:var(--shadow); }
.cx-primary__head{ display:flex; align-items:center; gap:16px; }
.cx-primary__icon{ width:58px; height:58px; flex:none; border-radius:50%;
  background:rgba(244,241,231,.14); display:flex; align-items:center; justify-content:center; color:#fff; }
.cx-primary__icon svg{ width:29px; height:29px; }
.cx-primary__label{ font-family:var(--font-body); font-weight:500; font-size:.72rem;
  letter-spacing:.28em; text-transform:uppercase; color:var(--beige); }
.cx-primary__value{ font-family:var(--font-display); font-weight:600;
  font-size:clamp(1.9rem,3vw,2.7rem); line-height:1.08; color:#fff; margin-top:6px; }
.cx-primary__cta{ margin-top:auto; padding-top:22px; border-top:1px solid rgba(244,241,231,.18);
  font-family:var(--font-body); font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; color:var(--beige-2); }

/* Secondary — editorial hairline list */
.contact-lux__list{ display:flex; flex-direction:column; justify-content:center; }
.cx-row{ display:flex; align-items:center; gap:20px; padding:20px 8px;
  border-bottom:1px solid var(--line); text-decoration:none;
  transition:background .3s ease, padding-left .3s ease; }
.contact-lux__list .cx-row:first-child{ border-top:1px solid var(--line); }
a.cx-row:hover{ background:rgba(199,175,141,.09); padding-left:16px; }
.cx-row__icon{ width:46px; height:46px; flex:none; border-radius:50%;
  background:var(--cream); color:var(--olive); display:flex; align-items:center; justify-content:center;
  transition:transform .3s ease; }
.cx-row__icon svg{ width:22px; height:22px; }
a.cx-row:hover .cx-row__icon{ transform:translateX(2px); }
.cx-row__text{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.cx-row__label{ font-family:var(--font-body); font-size:.64rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--muted); }
.cx-row__value{ font-family:var(--font-display); font-size:1.16rem; color:var(--olive);
  line-height:1.3; word-break:break-word; }

@media (max-width:900px){
  .contact-lux{ grid-template-columns:1fr; gap:clamp(24px,4vw,36px); }
  .cx-primary{ min-height:0; }
}
@media (max-width:560px){
  .cx-primary{ padding:30px 26px; }
  .cx-row{ padding:18px 4px; gap:16px; }
  .cx-row__icon{ width:42px; height:42px; }
}

/* ---------- Default page / post content ---------- */
.page-hero{ padding-top:clamp(56px,7vw,96px); padding-bottom:clamp(28px,4vw,44px); }
.entry-content{ font-size:1.05rem; }
.entry-content h2{ margin-top:1.4em; }
.entry-content h3{ margin-top:1.2em; }
.entry-content ul,.entry-content ol{ padding-left:1.3em; }
.entry-content li{ margin-bottom:.4em; }
.entry-content img{ border-radius:8px; margin:1.2em 0; }
.entry-content blockquote{ border-left:3px solid var(--beige); margin:1.4em 0; padding:.4em 0 .4em 1.2em;
  font-family:var(--font-display); font-style:italic; font-size:1.2rem; color:var(--olive); }
.entry-content a{ text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--beige); }

/* Post list (index/blog fallback) */
.post-list{ display:grid; gap:34px; }
.post-card{ border-bottom:1px solid var(--line); padding-bottom:30px; }
.post-card h2{ font-size:var(--fs-h3); margin-bottom:.3em; }
.post-meta{ font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:10px; }

/* ---------- Footer — premium, minimal ---------- */
.site-footer{ background:var(--olive); color:var(--on-olive); padding-top:clamp(64px,8vw,100px); }
.site-footer a{ color:var(--on-olive-muted); transition:color .25s ease; }
.site-footer a:hover{ color:#fff; }
.footer__grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1.3fr; gap:clamp(30px,4vw,64px);
  padding-bottom:56px; }
.footer__brand .brand__name{ color:#fff; font-weight:600; letter-spacing:.5px; }
.footer__brand p{ color:var(--on-olive-muted); max-width:32ch; margin-top:16px; font-size:.9rem; line-height:1.7; }
.footer h4{ color:#fff; font-family:var(--font-body); font-weight:500; font-size:.66rem;
  letter-spacing:.26em; text-transform:uppercase; margin:0 0 20px; opacity:.85; }
.footer-menu, .footer-contact{ list-style:none; margin:0; padding:0; }
.footer-menu li, .footer-contact li{ margin-bottom:13px; font-size:.9rem; color:var(--on-olive-muted); }
.footer-menu a, .footer-contact a{ font-size:.9rem; }
.footer__bottom{ border-top:1px solid rgba(244,241,231,.14); padding:26px 0 34px;
  display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; align-items:center;
  font-size:.74rem; color:var(--on-olive-muted); letter-spacing:.08em; }
.footer__bottom a{ color:var(--on-olive-muted); }

/* ---------- Our Clients gallery + lightbox ---------- */
.clients-gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(12px,1.6vw,20px); }
.clients-item{ margin:0; position:relative; }
.clients-gallery img{ width:100%; aspect-ratio:1/1; object-fit:cover;
  border-radius:10px; border:1px solid var(--line); cursor:zoom-in;
  transition:transform .3s ease, box-shadow .3s ease; display:block; }
.clients-gallery img:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }
.clients-item figcaption{ display:none; }
.clients-empty{ text-align:center; color:var(--muted); max-width:52ch; margin:20px auto; }

.rmz-lightbox{ position:fixed; inset:0; z-index:1000; display:none;
  align-items:center; justify-content:center; background:rgba(30,32,24,.92); padding:4vw; }
.rmz-lightbox.is-open{ display:flex; }
.rmz-lightbox__img{ max-width:90vw; max-height:86vh; border-radius:6px;
  box-shadow:0 40px 80px -30px rgba(0,0,0,.7); }
.rmz-lightbox__close,.rmz-lightbox__nav{ position:absolute; background:none; border:0;
  color:#fff; cursor:pointer; opacity:.85; transition:opacity .2s ease; }
.rmz-lightbox__close:hover,.rmz-lightbox__nav:hover{ opacity:1; }
.rmz-lightbox__close{ top:20px; right:26px; font-size:2.4rem; line-height:1; }
.rmz-lightbox__nav{ top:50%; transform:translateY(-50%); font-size:3rem; padding:10px 18px; }
.rmz-lightbox__prev{ left:2vw; } .rmz-lightbox__next{ right:2vw; }
@media (max-width:900px){ .clients-gallery{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .clients-gallery{ grid-template-columns:1fr 1fr; gap:10px; } }

/* ---------- Customize hub — modern carousels ---------- */
.cz-row__head{ display:flex; align-items:center; justify-content:space-between; gap:20px;
  margin-bottom:clamp(24px,3vw,40px); flex-wrap:wrap; }
.cz-row__head h2{ margin:0; }
.cz-carousel{ position:relative; }
.cz-viewport{ overflow:hidden; }
.cz-track{ display:flex; gap:clamp(14px,2vw,26px); transition:transform .55s cubic-bezier(.22,.61,.36,1); will-change:transform; }
.cz-cell{ flex:0 0 calc((100% - 2 * clamp(14px,2vw,26px)) / 3); }
.cz-cell__inner{ position:relative; border-radius:14px; overflow:hidden; border:1px solid var(--line);
  box-shadow:var(--shadow-soft); background:var(--cream); transition:transform .4s ease, box-shadow .4s ease; }
.cz-cell__inner img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.cz-cell__cap{ position:absolute; left:0; right:0; bottom:0; padding:16px;
  background:linear-gradient(transparent, rgba(30,32,24,.72)); color:#fff;
  font-family:var(--font-display); font-size:1.05rem; }
.cz-arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  width:46px; height:46px; border-radius:50%; border:1px solid var(--line);
  background:#fff; color:var(--olive); cursor:pointer; box-shadow:var(--shadow-soft);
  display:flex; align-items:center; justify-content:center; font-size:1.5rem; line-height:1;
  transition:background .25s ease, color .25s ease; }
.cz-arrow:hover{ background:var(--olive); color:#fff; }
.cz-arrow--prev{ left:-10px; } .cz-arrow--next{ right:-10px; }
.cz-arrow[disabled]{ opacity:.35; cursor:default; }
.cz-dots{ display:flex; gap:8px; justify-content:center; margin-top:22px; }
.cz-dots button{ width:8px; height:8px; border-radius:50%; border:0; padding:0; cursor:pointer;
  background:var(--beige); opacity:.5; transition:opacity .2s ease, transform .2s ease; }
.cz-dots button.is-active{ opacity:1; transform:scale(1.3); background:var(--olive-soft); }
@media (max-width:900px){ .cz-cell{ flex-basis:calc((100% - clamp(14px,2vw,26px)) / 2); } }
@media (max-width:600px){ .cz-cell{ flex-basis:100%; } .cz-arrow--prev{ left:4px; } .cz-arrow--next{ right:4px; } }

body.rmz-studio{ background:var(--paper); }
.studio-bar{
  position:sticky; top:0; z-index:100;
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
  padding:12px clamp(16px,3vw,30px);
  background:rgba(251,249,243,.9); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.studio-back{
  justify-self:start; display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-body); font-weight:500; font-size:.7rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--olive);
  padding:10px 18px; border:1px solid var(--line); border-radius:4px;
  background:#fff; transition:background .25s ease, border-color .25s ease, color .25s ease;
}
.studio-back:hover{ background:var(--olive); border-color:var(--olive); color:#fff; }
.studio-back svg{ display:block; }
.studio-bar__brand{ justify-self:center; }
.studio-bar__brand img,.studio-bar__brand .custom-logo{ max-height:42px; width:auto; }
.studio-bar__brand--text{ font-family:var(--font-display); color:var(--olive); font-weight:600; font-size:1.05rem; letter-spacing:.4px; }
.studio-bar__spacer{ justify-self:end; }
.studio-main{ width:100%; min-height:60vh; }
.studio-main > *{ max-width:none; }
@media (max-width:600px){
  .studio-back span{ display:none; } /* icon-only on small screens */
  .studio-back{ padding:10px 12px; }
}

/* ---------- Reveal on scroll — subtle fade-up, plays once ---------- */
.rmz-js:not(.rmz-reveal-off) .hero__intro,
.rmz-js:not(.rmz-reveal-off) .hero__aside,
.rmz-js:not(.rmz-reveal-off) .section h2,
.rmz-js:not(.rmz-reveal-off) .section > .container > .eyebrow,
.rmz-js:not(.rmz-reveal-off) .divider,
.rmz-js:not(.rmz-reveal-off) .card,
.rmz-js:not(.rmz-reveal-off) .split__body,
.rmz-js:not(.rmz-reveal-off) .split__media,
.rmz-js:not(.rmz-reveal-off) .feature,
.rmz-js:not(.rmz-reveal-off) .assure,
.rmz-js:not(.rmz-reveal-off) .contact-card,
.rmz-js:not(.rmz-reveal-off) .rmz-form,
.rmz-js:not(.rmz-reveal-off) .quote,
.rmz-js:not(.rmz-reveal-off) .company-band__text,
.rmz-js:not(.rmz-reveal-off) .company-band__media,
.rmz-js:not(.rmz-reveal-off) .cta{
  opacity:0; transform:translateY(20px);
  transition:opacity .65s ease-out, transform .65s ease-out;
}
.rmz-js:not(.rmz-reveal-off) .company-band__media{ transition-delay:.15s; }
.rmz-js .is-visible{ opacity:1 !important; transform:none !important; }
@media (prefers-reduced-motion: reduce){
  .rmz-js .hero__intro,.rmz-js .hero__aside,.rmz-js .section h2,
  .rmz-js .section > .container > .eyebrow,.rmz-js .divider,.rmz-js .card,
  .rmz-js .split__body,.rmz-js .split__media,.rmz-js .feature,.rmz-js .assure,
  .rmz-js .contact-card,.rmz-js .rmz-form,.rmz-js .quote,.rmz-js .cta,
  .rmz-js .company-band__text,.rmz-js .company-band__media{
    opacity:1 !important; transform:none !important;
  }
}

/* ============================================================
   WooCommerce — "The LED Collection" premium catalogue shop
   ============================================================ */
.woocommerce-page .container.shop-wrap{ padding-top:clamp(28px,4vw,44px); padding-bottom:var(--section-y); }

/* Shop banner */
.shop-hero{ background:var(--olive); color:var(--on-olive); text-align:center;
  padding:clamp(46px,7vw,86px) 0 clamp(40px,6vw,72px); }
.shop-hero .eyebrow{ color:var(--beige); }
.shop-hero h1{ color:#fff; font-family:var(--font-display); font-weight:700;
  font-size:clamp(2rem,4.4vw,3rem); margin:.2em 0 .3em; }
.shop-hero p{ color:var(--on-olive-muted); max-width:56ch; margin:0 auto; font-size:1.02rem; }
.shop-hero hr{ width:54px; border:0; border-top:1px solid rgba(244,241,231,.4); margin:16px auto 20px; }

/* Result count + ordering row */
.woocommerce .woocommerce-result-count{ color:var(--muted); font-size:.85rem; margin-top:6px; }
.woocommerce .woocommerce-ordering select{ border:1px solid var(--line); border-radius:8px;
  padding:8px 12px; font-family:var(--font-body); color:var(--ink); background:var(--paper); }

/* Product grid cards -> catalogue plates */
.woocommerce ul.products{ display:grid !important; gap:clamp(20px,3vw,34px);
  grid-template-columns:repeat(3,1fr); margin:0; list-style:none; padding:0; }
.woocommerce ul.products li.product{ list-style:none; }
.woocommerce ul.products::before,
.woocommerce ul.products::after{ content:none !important; }
.woocommerce ul.products li.product{
  width:auto !important; margin:0 !important; float:none !important; text-align:left;
  background:var(--beige); padding:14px; border-radius:8px; box-shadow:var(--shadow);
  position:relative; transition:transform .22s ease, box-shadow .22s ease; }
.woocommerce ul.products li.product:hover{ transform:translateY(-4px); box-shadow:var(--shadow-hover, 0 18px 40px rgba(47,51,38,.16)); }
.woocommerce ul.products li.product a img{
  border-radius:4px; background:var(--paper); margin:0 0 14px;
  aspect-ratio:1/1; object-fit:cover; }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2{
  font-family:var(--font-display) !important; color:var(--olive) !important;
  font-weight:600 !important; font-size:1.12rem !important; padding:0 4px !important; }
.woocommerce ul.products li.product .price{ color:var(--olive-soft) !important; font-weight:600;
  font-size:1rem !important; padding:0 4px; display:block; margin-bottom:10px; }
.woocommerce ul.products li.product .price del{ color:var(--muted); font-weight:400; opacity:.7; }
.woocommerce ul.products li.product .price ins{ text-decoration:none; }

/* Sale badge as an olive chip */
.woocommerce span.onsale{
  background:var(--olive) !important; color:#fff !important; border-radius:999px !important;
  min-width:auto; min-height:auto; width:auto; height:auto; line-height:1 !important;
  padding:7px 13px !important; font-family:var(--font-body); font-size:.66rem !important;
  letter-spacing:.14em; text-transform:uppercase; top:20px; left:20px; margin:0; }

/* Buttons */
.woocommerce a.button, .woocommerce button.button, .woocommerce #respond input#submit,
.woocommerce .button.alt, .woocommerce a.added_to_cart, .woocommerce #place_order{
  background:var(--olive) !important; color:#fff !important; border-radius:999px !important;
  font-family:var(--font-body) !important; font-weight:600 !important; letter-spacing:.1em;
  text-transform:uppercase; font-size:.78rem !important; padding:12px 24px !important;
  border:0 !important; transition:background .2s ease; }
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce .button.alt:hover,
.woocommerce #place_order:hover{ background:var(--olive-deep) !important; }
.woocommerce ul.products li.product .button{ margin-top:4px; }

/* Single product */
.woocommerce div.product .product_title{ font-family:var(--font-display); color:var(--olive);
  font-weight:700; font-size:clamp(1.6rem,3vw,2.2rem); }
.woocommerce div.product p.price, .woocommerce div.product span.price{
  color:var(--olive-soft) !important; font-size:1.35rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{ background:var(--paper);
  border-bottom-color:var(--paper); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a{ color:var(--olive); font-family:var(--font-body);
  text-transform:uppercase; letter-spacing:.08em; font-size:.82rem; }
.woocommerce div.product form.cart div.quantity input.qty{ border:1px solid var(--line);
  border-radius:8px; padding:10px; background:var(--paper); }
.woocommerce .woocommerce-product-gallery__image img{ border-radius:6px; }

/* Notices, cart & checkout */
.woocommerce .woocommerce-message, .woocommerce .woocommerce-info,
.woocommerce .woocommerce-noreviews, .woocommerce .cart_totals{
  border-top-color:var(--olive-soft) !important; background:var(--cream); border-radius:6px; }
.woocommerce .woocommerce-message::before, .woocommerce .woocommerce-info::before{ color:var(--olive-soft) !important; }
.woocommerce table.shop_table{ border-radius:8px; border-color:var(--line); }
.woocommerce-cart table.cart img{ border-radius:6px; }
.woocommerce .cart-collaterals .cart_totals h2,
.woocommerce-checkout h3{ font-family:var(--font-display); color:var(--olive); }

/* ---------- Skip link + a11y ---------- */
.skip-link{ position:absolute; left:-9999px; top:0; background:var(--olive); color:#fff;
  padding:12px 18px; z-index:100; border-radius:0 0 8px 0; }
.skip-link:focus{ left:0; }
.screen-reader-text{ position:absolute !important; width:1px; height:1px; overflow:hidden;
  clip:rect(1px,1px,1px,1px); white-space:nowrap; }

/* ============================================================
   Responsive — tablet & mobile
   ============================================================ */
/* Tighten the header nav gaps a touch on mid screens before collapsing. */
@media (max-width: 1080px){
  .primary-nav .nav-list{ gap:20px; }
  .primary-nav a{ font-size:.74rem; letter-spacing:.12em; }
  .site-header__bar{ column-gap:16px; }
}

@media (max-width: 980px){
  .grid--4{ grid-template-columns:repeat(2,1fr); }
  .woocommerce ul.products{ grid-template-columns:repeat(2,1fr) !important; }
  .hero__grid{ grid-template-columns:1fr; }
  .hero__aside{ justify-content:flex-start; order:-1; }
  .hero__aside .plate{ width:min(360px,100%); }
  .split{ grid-template-columns:1fr; }
  .split--reverse .split__media{ order:0; }
  .footer__grid{ grid-template-columns:1fr 1fr; }
  .footer__brand{ grid-column:1 / -1; }
  .company-band__grid{ grid-template-columns:1fr; gap:clamp(30px,5vw,48px); }
  .company-band__text{ max-width:none; }
  .company-band__glow{ display:none; }
}

/* ---- Header collapses to hamburger + centred logo ---- */
@media (max-width: 900px){
  .site-header__bar{
    grid-template-columns:46px 1fr 46px;
    min-height:82px; column-gap:12px;
  }
  .primary-nav{ display:none; }
  .header-right{ display:none; }
  .nav-toggle{ display:inline-flex; }
  .site-header__brand{ justify-self:center; }
  .brand__name{ font-size:1.3rem; }
  .brand__logo img,
  .site-header__brand .custom-logo{ max-height:64px; }

  .mobile-nav{
    display:block; position:absolute; left:0; right:0; top:100%;
    background:var(--paper); border-bottom:1px solid var(--line);
    box-shadow:var(--shadow-soft);
    max-height:0; overflow:hidden; transition:max-height .3s ease;
  }
  .mobile-nav.is-open{ max-height:85vh; overflow:auto; }
  .mobile-nav ul{ list-style:none; margin:0; padding:6px var(--pad-x) 20px; }
  .mobile-nav li{ border-bottom:1px solid var(--line-soft); }
  .mobile-nav a{
    display:block; padding:15px 2px;
    font-family:var(--font-body); font-weight:500; font-size:.82rem;
    letter-spacing:.14em; text-transform:uppercase; color:var(--ink);
  }
  .mobile-nav a:hover{ color:var(--olive); }
  .mobile-nav .mobile-nav__group{
    border-bottom:none; color:var(--muted);
    font-family:var(--font-body); font-size:.58rem; letter-spacing:.28em;
    text-transform:uppercase; padding:18px 2px 4px;
  }
}

@media (max-width: 720px){
  .grid--2,.grid--3,.grid--4{ grid-template-columns:1fr; }
  .woocommerce ul.products{ grid-template-columns:1fr !important; }
  .contact-grid{ grid-template-columns:1fr; }
  .rmz-field-row{ grid-template-columns:1fr; }
  .trust-chips{ grid-template-columns:1fr; }
  .deflist .row{ grid-template-columns:1fr; gap:6px; }
  .footer__grid{ grid-template-columns:1fr; }
  .btn-row .btn{ width:100%; justify-content:center; }
}

@media (max-width: 420px){
  .brand__name{ font-size:1.12rem; }
}

/* ---------- Slide-in cart drawer ---------- */
.cart-toggle{ position:relative; }
.rmz-cart-count{ position:absolute; top:-3px; right:-3px; min-width:17px; height:17px; padding:0 4px;
  border-radius:9px; background:var(--olive); color:#fff; font-family:var(--font-body); font-size:.62rem;
  font-weight:600; line-height:17px; text-align:center; }
.rmz-cart-count[hidden]{ display:none; }

.rmz-cart-overlay{ position:fixed; inset:0; background:rgba(30,32,24,.42); z-index:1200;
  opacity:0; visibility:hidden; transition:opacity .3s ease, visibility .3s ease; }
.rmz-cart-overlay.is-open{ opacity:1; visibility:visible; }

.rmz-cart-drawer{ position:fixed; top:0; right:0; height:100%; width:min(410px,90vw);
  background:var(--paper); z-index:1201; display:flex; flex-direction:column;
  transform:translateX(100%); transition:transform .4s cubic-bezier(.22,.61,.36,1);
  box-shadow:-24px 0 70px -34px rgba(0,0,0,.45); }
.rmz-cart-drawer.is-open{ transform:translateX(0); }
.rmz-cart-drawer__head{ display:flex; align-items:center; justify-content:space-between;
  padding:22px 26px; border-bottom:1px solid var(--line); flex:none; }
.rmz-cart-drawer__title{ font-family:var(--font-display); font-size:1.3rem; color:var(--olive); }
.rmz-cart-drawer__close{ background:none; border:0; font-size:1.9rem; line-height:1; color:var(--olive);
  cursor:pointer; padding:0 4px; transition:opacity .2s ease; }
.rmz-cart-drawer__close:hover{ opacity:.6; }
.rmz-cart-drawer__body{ padding:22px 26px; overflow-y:auto; flex:1; }
.rmz-cart-drawer__body .woocommerce-mini-cart{ list-style:none; margin:0 0 16px; padding:0; }
.rmz-cart-drawer__body .woocommerce-mini-cart-item{ display:flex; align-items:center; gap:12px;
  padding:14px 0; border-bottom:1px solid var(--line); position:relative; }
.rmz-cart-drawer__body .woocommerce-mini-cart-item img{ width:56px; height:56px; object-fit:cover;
  border-radius:8px; border:1px solid var(--line); order:-1; }
.rmz-cart-drawer__body .woocommerce-mini-cart__total{ margin:16px 0; padding-top:16px;
  border-top:1px solid var(--line); font-family:var(--font-display); font-size:1.05rem; color:var(--olive);
  display:flex; justify-content:space-between; }
.rmz-cart-drawer__body .woocommerce-mini-cart__empty-message{ color:var(--muted); text-align:center; padding:30px 0; }
.rmz-cart-drawer__body .woocommerce-mini-cart__buttons{ display:flex; flex-direction:column; gap:10px; margin:0; }
.rmz-cart-drawer__body .woocommerce-mini-cart__buttons .button{ display:block; text-align:center; margin:0; }
.rmz-cart-drawer__body .woocommerce-mini-cart__buttons .checkout{ background:var(--olive); color:#fff; }
.rmz-cart-drawer__body a.remove{ position:absolute; right:0; top:14px; color:var(--muted)!important; }
