/* ==========================================================================
   MANKWENG TOMBSTONES
   Global stylesheet. Colour is defined once, in section 1, and nowhere else.
   1. Design tokens   2. Base   3. Layout   4. Buttons   5. Header
   6. Hero   7. Home sections   8. Cards   9. Footer   10. Responsive
   ========================================================================== */

/* 1. DESIGN TOKENS ------------------------------------------------------- */
:root{
  /* Brand, from the logo */
  --primary:       #01003D;   /* navy: bands, headings on light, dark buttons */
  --primary-dark:  #00002A;   /* top bar, footer */
  --primary-rgb:   1,0,61;
  --accent:        #759D00;   /* olive leaf: rules, icons, highlights */
  --accent-strong: #5A7A00;   /* olive deep enough for white button text (AA) */
  --accent-dark:   #465F00;   /* button hover */
  --accent-light:  #A9CC3F;   /* olive on dark backgrounds */
  --accent-soft:   #EEF4DC;   /* pale olive wash */
  --mauve:         #8E7B82;   /* grey leaf in the logo: quiet labels */
  /* "Gradient 2": pale leaf -> lime -> deep teal. Used on the call-to-action band. */
  --grad-1:        #E2FBCE;
  --grad-2:        #E3EF26;
  --grad-3:        #076653;

  --ink:   #16152B;           /* headings and body text */
  --text:  #2A2938;
  --muted: #64637A;
  --line:  #E3E2EA;
  --bg:    #FFFFFF;
  --bg-alt:#F6F6F3;           /* warm stone grey */
  --white: #FFFFFF;
  --white-rgb: 255,255,255;

  --font-head: 'Roboto', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --font-body: 'Roboto', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;

  --container: 1240px;
  --gutter: 16px;
  --pad-x: 44px;
  /* Vertical rhythm scales with the screen: full size on a large monitor, less on laptops */
  --section-y: clamp(64px, min(7.5vw, 11.5vh), 112px);
  --section-y-sm: clamp(48px, min(5vw, 8vh), 76px);
  --radius: 0;
  --radius-lg: 0;
  --radius-pill: 0;
  --btn-h: 48px;
  --shadow: 0 12px 32px rgba(var(--primary-rgb),.08);
}

/* 2. BASE ---------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;}
body{margin:0;font-family:var(--font-body);font-size:1rem;line-height:1.65;color:var(--text);background:var(--bg);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
img{max-width:100%;height:auto;display:block;}
a{color:var(--primary);text-decoration:none;}
a:hover{color:var(--accent-strong);}
:focus-visible{outline:2px solid var(--accent-strong);outline-offset:3px;}
.on-brand :focus-visible,.hero :focus-visible,.cta-strip :focus-visible,.footer :focus-visible,.topbar :focus-visible{outline-color:var(--white);}

h1,h2,h3,h4{font-family:var(--font-head);color:var(--ink);margin:0 0 14px;line-height:1.25;font-weight:700;letter-spacing:-.015em;}
h1{font-size:clamp(1.75rem,1.1rem + 2.6vw,3.25rem);font-weight:800;letter-spacing:-.03em;line-height:1.08;}
h2{font-size:clamp(1.25rem,1.05rem + .8vw,1.625rem);}
h2.h-lg{font-size:clamp(1.5rem,1.1rem + 1.5vw,2.375rem);font-weight:800;letter-spacing:-.025em;line-height:1.15;}
h3{font-size:1.125rem;}
p{margin:0 0 18px;}
p:last-child{margin-bottom:0;}
ul,ol{margin:0 0 18px;padding-left:20px;}
li{margin-bottom:8px;}
strong{color:var(--ink);font-weight:700;}

.eyebrow{font-family:var(--font-head);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--accent-strong);display:flex;align-items:center;gap:12px;margin:0 0 14px;}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--accent);flex:none;}
.on-brand .eyebrow,.hero .eyebrow{color:var(--accent-light);}
.on-brand .eyebrow::before,.hero .eyebrow::before{background:var(--accent-light);}
.sr-only,.screen-reader-text{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.skip-link:focus{position:fixed;left:16px;top:16px;width:auto;height:auto;clip:auto;z-index:100;padding:10px 16px;background:var(--white);border-radius:0;}

.icon{width:20px;height:20px;flex:none;}

/* House style: all text in capitals (client requirement), except blog articles and
   what visitors type. The stored text stays in normal case, so it can be edited,
   searched and read by screen readers normally; remove this block to switch back. */
body{text-transform:uppercase;}
body p,body li,body dd,.prose,.faq-list details p{letter-spacing:.015em;}
.article,.article-body,.article-head h1,
input,textarea,select,option,.search-form input,
.woocommerce-ordering select{text-transform:none;letter-spacing:normal;}
::placeholder{text-transform:none;}
.post-card__title,.post-card p{text-transform:none;}
.article-foot{text-transform:uppercase;}
/* Capitals need looser tracking than the mixed-case headings were set for.
   Roboto headings: bold, never heavier, with a touch of tracking for a calm, corporate look. */
h1,h2.h-lg,.pagehead h1,.product-info h1{font-weight:700;letter-spacing:.01em;line-height:1.12;}
h2,h3{font-weight:700;letter-spacing:.015em;}
.article-head h1{letter-spacing:-.02em;}
.hero h1{font-size:clamp(1.75rem,1.1rem + 2.1vw,2.875rem);}
.hero .container .hero-inner{max-width:800px;}
.hero .hero-inner p{max-width:620px;}
.nav a{font-size:13.5px;padding:12px 10px;letter-spacing:.02em;}
.nav a::after{left:10px;right:10px;}
@media (max-width:1440px){.nav-call__text{display:none;}}
@media (max-width:1180px){.nav a{font-size:12.5px;padding:12px 7px;}.nav a::after{left:7px;right:7px;}}

/* 3. LAYOUT -------------------------------------------------------------- */
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--pad-x);}
.section{padding:var(--section-y) 0;}
.section--alt{background:var(--bg-alt);}
.grid{display:flex;flex-wrap:wrap;margin:0 calc(var(--gutter) * -1);}
.grid--center{align-items:center;}
.col{padding:0 var(--gutter);width:100%;}
.col-4{width:25%;}
.col-5{width:41.6667%;}
.col-7{width:58.3333%;}
.col--pl{padding-left:56px;}
.section-head{max-width:640px;margin-bottom:40px;}
.section-head--center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head--center .eyebrow{justify-content:center;}
.section-head p{color:var(--muted);}
.head-row--split{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:40px;}
.head-row--split .section-head{margin-bottom:0;}
.head-row--split>.btn,.head-row--split>.chips{flex:none;}
.center-row{display:flex;justify-content:center;margin-top:44px;}

.on-brand{background:var(--primary);color:rgba(var(--white-rgb),.82);}
.on-brand h2,.on-brand h3{color:var(--white);}

/* 4. BUTTONS ------------------------------------------------------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:var(--btn-h);padding:0 26px;
  font-family:var(--font-head);font-size:14px;font-weight:700;letter-spacing:.01em;white-space:nowrap;
  border-radius:var(--radius-pill);border:1.5px solid var(--accent-strong);background:var(--accent-strong);color:var(--white);
  cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease;}
.btn .icon{width:17px;height:17px;}
.btn:hover{background:var(--accent-dark);border-color:var(--accent-dark);color:var(--white);}
.btn--dark{background:var(--primary);border-color:var(--primary);}
.btn--dark:hover{background:var(--accent-strong);border-color:var(--accent-strong);}
.btn--ghost{background:transparent;border-color:var(--primary);color:var(--primary);}
.btn--ghost:hover{background:var(--primary);border-color:var(--primary);color:var(--white);}
.btn--outline-light{background:transparent;border-color:rgba(var(--white-rgb),.55);color:var(--white);}
.btn--outline-light:hover{background:var(--white);border-color:var(--white);color:var(--primary);}
.btn--block{width:100%;}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px;}
.btn-row--flush{margin-top:0;}

/* 5. HEADER -------------------------------------------------------------- */
/* Row 1 scrolls away (contact, hours, social). Row 2 sticks: logo, menu, call + quote. */
.topbar{background:var(--primary-dark);color:rgba(var(--white-rgb),.85);font-family:var(--font-head);font-size:12.5px;line-height:1.4;}
.topbar .container{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:40px;}
.topbar ul{display:flex;align-items:center;list-style:none;margin:0;padding:0;}
.topbar-contact{gap:30px;min-width:0;}
.topbar li{display:flex;align-items:center;gap:8px;margin:0;white-space:nowrap;}
.topbar .icon{width:14px;height:14px;color:var(--accent-light);}
.topbar a{color:inherit;padding:10px 0;}
.topbar a:hover{color:var(--accent-light);}
.topbar-social{gap:4px;}
.topbar-social a{display:flex;width:30px;height:30px;align-items:center;justify-content:center;padding:0;}
.topbar-social .icon{color:inherit;width:15px;height:15px;}

.navbar{background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:60;}
.admin-bar .navbar{top:32px;}
.navbar .container{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:84px;}
.brandmark{display:flex;align-items:center;flex:none;}
.brandmark img{display:block;height:clamp(52px, min(4.4vw, 8.5vh), 70px);width:auto;}
.nav{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0;}
.nav li{margin:0;}
.nav a{display:block;position:relative;padding:12px 13px;font-family:var(--font-head);font-size:14.5px;font-weight:600;line-height:1.4;color:var(--ink);white-space:nowrap;}
.nav a .icon{display:none;}
.nav a::after{content:"";position:absolute;left:13px;right:13px;bottom:5px;height:2px;border-radius:0;background:transparent;transition:background .18s;}
.nav a:hover{color:var(--primary);}
.nav a:hover::after,.nav a.is-active::after{background:var(--accent);}
.nav-panel{display:contents;}
.nav-panel-head,.nav-panel-foot,.nav-backdrop{display:none;}
.nav-cta{display:flex;align-items:center;gap:18px;flex:none;}
.nav-call{display:flex;align-items:center;gap:10px;color:var(--ink);font-family:var(--font-head);font-weight:700;font-size:15px;line-height:1.2;}
.nav-call small{display:block;font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;}
.nav-call__icon{display:flex;width:42px;height:42px;border-radius:50%;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent-strong);}
.nav-call__icon .icon{width:18px;height:18px;}
.nav-toggle{display:none;background:none;border:0;padding:0;cursor:pointer;width:42px;height:42px;color:var(--ink);align-items:center;justify-content:center;}
.nav-toggle .icon{width:26px;height:26px;}

/* 6. HERO ---------------------------------------------------------------- */
.hero{position:relative;background:var(--primary-dark);overflow:hidden;color:var(--white);}
.hero-media{position:absolute;inset:0;}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:70% 50%;}
.hero-media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(var(--primary-rgb),.92) 0%,rgba(var(--primary-rgb),.72) 38%,rgba(var(--primary-rgb),.12) 70%,rgba(var(--primary-rgb),0) 100%);}
.hero .container{position:relative;}
.hero-inner{padding:clamp(72px, 15vh, 150px) 0 clamp(80px, 16vh, 160px);max-width:640px;}
.hero h1{color:var(--white);margin-bottom:20px;}
.hero h1 .hl{display:block;color:var(--accent-light);}
.hero p{color:rgba(var(--white-rgb),.86);font-size:clamp(15px,1.15vw,17px);max-width:520px;}
/* Proof points: a white bar resting on the bottom edge of the hero, clear of the photograph's subject */
.hero-proof{position:relative;z-index:2;margin-top:-46px;}
.hero-panel{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;margin:0;padding:0;max-width:820px;
  background:var(--white);border-radius:0;box-shadow:0 18px 44px rgba(var(--primary-rgb),.16);}
.hero-panel li{display:flex;align-items:center;gap:14px;margin:0;padding:22px 26px;
  color:var(--ink);font-family:var(--font-head);font-weight:700;font-size:14.5px;line-height:1.3;}
.hero-panel li+li{border-left:1px solid var(--line);}
.hero-panel .icon{width:40px;height:40px;padding:9px;border-radius:50%;background:var(--accent-soft);color:var(--accent-strong);}

/* 7. HOME SECTIONS ------------------------------------------------------- */
/* Introduction */
.intro-media{position:relative;padding:0 0 40px 0;}
.intro-media .main{width:100%;aspect-ratio:4/4.4;object-fit:cover;object-position:30% 50%;border-radius:0;}
/* Statue variant: the cut-out statue stands on a soft stone backdrop, uncropped. */
.intro-statue{position:relative;margin:0;aspect-ratio:4/4.4;border-radius:0;overflow:hidden;
  background:radial-gradient(120% 90% at 50% 30%,#ffffff 0%,#f3f2ee 55%,#e4e2db 100%);}
.intro-statue::after{content:"";position:absolute;left:12%;right:12%;bottom:0;height:10%;border-radius:50%;background:radial-gradient(closest-side,rgba(1,0,40,.12),transparent);}
.intro-statue img.main{position:relative;z-index:1;width:100%;height:100%;aspect-ratio:auto;object-fit:contain;object-position:50% 100%;padding:28px 24px 0;border-radius:0;mix-blend-mode:multiply;}
.intro-statue figcaption{position:absolute;z-index:2;left:18px;top:18px;padding:6px 12px;border-radius:var(--radius-pill);background:var(--white);
  font-family:var(--font-head);font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--primary);box-shadow:0 4px 12px rgba(var(--primary-rgb),.08);}
.intro-statue{isolation:isolate;}
.intro-media--statue .intro-badge{z-index:3;right:auto;left:-24px;bottom:8px;gap:16px;}
.intro-media--statue .intro-badge strong{flex:none;}
@media (max-width:1100px){.intro-media--statue .intro-badge{left:12px;}}
.intro-badge{position:absolute;right:-24px;bottom:0;display:flex;align-items:center;gap:14px;padding:20px 24px;
  background:var(--primary);color:rgba(var(--white-rgb),.85);border-radius:0;box-shadow:var(--shadow);max-width:250px;
  font-family:var(--font-head);font-size:13.5px;font-weight:600;line-height:1.35;}
.intro-badge strong{font-size:40px;line-height:1;color:var(--accent-light);font-weight:800;letter-spacing:-.03em;}
.checklist{list-style:none;padding:0;margin:0 0 6px;}
.checklist li{position:relative;padding-left:30px;margin-bottom:12px;font-weight:600;color:var(--ink);break-inside:avoid;}
.checklist li::before{content:"";position:absolute;left:0;top:3px;width:20px;height:20px;border-radius:50%;background:var(--accent-strong);}
.checklist li::after{content:"";position:absolute;left:7px;top:7px;width:6px;height:10px;border:solid var(--white);border-width:0 2px 2px 0;transform:rotate(45deg);}
.checklist--2{column-count:2;column-gap:28px;}

.facts{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;margin:var(--section-y-sm) 0 0;padding:0;
  border:1px solid var(--line);border-radius:0;background:var(--bg);}
.facts li{margin:0;padding:26px 28px;display:flex;flex-direction:column;gap:2px;}
.facts li+li{border-left:1px solid var(--line);}
.facts strong{font-family:var(--font-head);font-size:clamp(26px,2.4vw,36px);font-weight:800;letter-spacing:-.03em;line-height:1.1;color:var(--primary);}
.facts span{font-size:13.5px;color:var(--muted);font-weight:600;}

/* Category chips */
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0;}
.chips li{margin:0;}
.chip{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px;border:1px solid var(--line);border-radius:var(--radius-pill);
  background:var(--bg);font-family:var(--font-head);font-size:13.5px;font-weight:600;color:var(--ink);}
.chip span{font-size:12px;color:var(--muted);}
.chip:hover{border-color:var(--primary);color:var(--primary);}

/* Steps on the navy band */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;list-style:none;margin:0;padding:0;counter-reset:none;}
.step{position:relative;margin:0;padding:30px 26px;border:1px solid rgba(var(--white-rgb),.12);border-radius:0;background:rgba(var(--white-rgb),.04);}
.step__num{position:absolute;right:22px;top:20px;font-family:var(--font-head);font-weight:800;font-size:28px;color:rgba(var(--white-rgb),.12);}
.step__icon{display:flex;width:52px;height:52px;border-radius:50%;align-items:center;justify-content:center;background:var(--accent-strong);color:var(--white);margin-bottom:20px;}
.step__icon .icon{width:24px;height:24px;}
.step h3{font-size:1.0625rem;margin-bottom:8px;}
.step p{font-size:14.5px;color:rgba(var(--white-rgb),.72);margin:0;}

/* Branches */
.branch-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;list-style:none;margin:0;padding:0;}
.branch-card{display:flex;gap:14px;margin:0;padding:22px 20px;border:1px solid var(--line);border-radius:0;background:var(--bg);transition:box-shadow .2s,border-color .2s;}
.branch-card:hover{border-color:transparent;box-shadow:var(--shadow);}
.branch-card__icon{display:flex;flex:none;width:42px;height:42px;border-radius:50%;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent-strong);}
.branch-card__icon .icon{width:20px;height:20px;}
.branch-card h3{font-size:1rem;margin-bottom:4px;}
.branch-card__addr{font-size:13.5px;line-height:1.5;color:var(--muted);margin-bottom:10px;}
.branch-card__tag{font-family:var(--font-head);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-light);margin:0 0 4px;}
.branch-card__link{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-head);font-weight:700;font-size:13.5px;color:var(--primary);}
.branch-card__link .icon{width:15px;height:15px;transition:transform .18s;}
.branch-card__link:hover .icon{transform:translateX(3px);}
.branch-card--factory{position:relative;overflow:hidden;isolation:isolate;grid-column:span 2;flex-direction:row;align-items:flex-end;padding:28px 30px;min-height:220px;
  background:var(--primary);border-color:var(--primary);color:rgba(var(--white-rgb),.8);}
/* Factory card: granite saw photo; the blade sits on the right, clear of the text. */
.branch-card__bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:70% 40%;}
.branch-card--factory::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(var(--primary-rgb),.94) 0%,rgba(var(--primary-rgb),.7) 34%,rgba(var(--primary-rgb),.15) 62%,rgba(var(--primary-rgb),0) 80%);}
@media (max-width:640px){.branch-card--factory::before{background:linear-gradient(180deg,rgba(var(--primary-rgb),.25) 0%,rgba(var(--primary-rgb),.85) 55%,rgba(var(--primary-rgb),.95) 100%);}}
.branch-card--factory h3{color:var(--white);font-size:1.375rem;}
.branch-card--factory .branch-card__addr{color:rgba(var(--white-rgb),.78);font-size:15px;}
.branch-card--factory .branch-card__icon{background:var(--accent-strong);color:var(--white);width:52px;height:52px;align-self:flex-start;}
.branch-card--factory .branch-card__link{color:var(--accent-light);}

/* Gallery strip */
.gallery-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;list-style:none;margin:0;padding:0;}
.gallery-strip li{margin:0;}
.gallery-strip a{display:block;overflow:hidden;border-radius:0;}
.gallery-strip img{width:100%;aspect-ratio:1;object-fit:cover;transition:transform .5s ease;}
.gallery-strip a:hover img{transform:scale(1.05);}

/* 8. CARDS --------------------------------------------------------------- */
.card-grid{display:flex;flex-wrap:wrap;margin:0 -12px -24px;}
.card-grid>.col{padding:0 12px;margin-bottom:24px;}
.svc-card{position:relative;height:100%;display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--line);border-radius:0;overflow:hidden;transition:box-shadow .2s,border-color .2s;}
.svc-card:hover{border-color:transparent;box-shadow:var(--shadow);}
.svc-card .thumb{aspect-ratio:4/3;overflow:hidden;background:#0b0b0b;}
.svc-card .thumb img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;transition:transform .5s ease;}
.svc-card .thumb{background:var(--bg-alt);}
/* Services page: square (1:1) photos, so the full 1254x1254 images show uncropped. */
.page-template-default.page .card-grid--3 .svc-card .thumb,.card-grid--3 .svc-card .thumb{aspect-ratio:1/1!important;}
.svc-card:hover .thumb img{transform:scale(1.04);}
.svc-card .body{position:relative;padding:36px 22px 24px;flex:1;}
.svc-icon{position:absolute;left:22px;top:-24px;display:flex;width:48px;height:48px;align-items:center;justify-content:center;
  background:var(--accent-strong);color:var(--white);border-radius:50%;box-shadow:0 0 0 5px var(--bg);}
.svc-icon .icon{width:22px;height:22px;}
.svc-card h3{font-size:1.0625rem;line-height:1.32;margin-bottom:8px;}
.svc-card h3 a{color:var(--ink);}
.svc-card h3 a::after{content:"";position:absolute;inset:0;}
.svc-card p{font-size:14.5px;line-height:1.6;color:var(--muted);margin:0;}

.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.product-card{position:relative;display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--line);border-radius:0;overflow:hidden;transition:box-shadow .2s,border-color .2s,transform .2s;}
.product-card:hover{border-color:transparent;box-shadow:var(--shadow);transform:translateY(-2px);}
.product-card__media{position:relative;display:block;background:#fff;}
.product-card__media img{width:100%;aspect-ratio:1;object-fit:contain;padding:10px;}
.product-card__badge{position:absolute;left:12px;top:12px;padding:5px 10px;border-radius:var(--radius-pill);background:var(--primary);color:var(--white);
  font-family:var(--font-head);font-size:11.5px;font-weight:700;letter-spacing:.02em;}
.product-card__body{padding:16px 18px 20px;border-top:1px solid var(--line);flex:1;display:flex;flex-direction:column;}
.product-card__cat{font-family:var(--font-head);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mauve);margin:0 0 2px;}
.product-card__title{font-size:1.0625rem;margin:0 0 6px;}
.product-card__title a{color:var(--ink);}
.product-card__title a::after{content:"";position:absolute;inset:0;}
.product-card__price{font-family:var(--font-head);font-weight:800;font-size:1.125rem;color:var(--primary);margin:0 0 4px;}
.product-card__price del{font-weight:500;font-size:.875rem;color:var(--muted);margin-right:6px;}
.product-card__price ins{text-decoration:none;}
.product-card__note{font-size:12.5px;color:var(--accent-strong);font-weight:600;margin-top:auto;}

.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.post-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:0;overflow:hidden;background:var(--bg);transition:box-shadow .2s,border-color .2s;}
.post-card:hover{border-color:transparent;box-shadow:var(--shadow);}
.post-card__media{display:block;aspect-ratio:16/10;background:var(--bg-alt);overflow:hidden;}
.post-card__media img{width:100%;height:100%;object-fit:cover;}
.post-card__body{padding:20px 22px 24px;}
.post-card__meta{font-size:12.5px;font-weight:600;color:var(--mauve);margin-bottom:6px;}
.post-card h3{font-size:1.0625rem;line-height:1.35;margin-bottom:8px;}
.post-card h3 a{color:var(--ink);}
.post-card h3 a::after{content:"";position:absolute;inset:0;}
.post-card p{font-size:14.5px;color:var(--muted);}

/* Call to action */
.cta-strip{position:relative;overflow:hidden;color:var(--primary);
  background:linear-gradient(100deg,var(--grad-1) 0%,var(--grad-2) 48%,var(--grad-3) 90%);}
.cta-strip .container{position:relative;padding-top:clamp(40px, 6.5vh, 60px);padding-bottom:clamp(40px, 6.5vh, 60px);}
.cta-flex{display:flex;align-items:center;gap:36px;}
.cta-head{display:flex;align-items:center;gap:18px;flex:0 1 360px;}
.cta-icon{display:flex;flex:none;width:58px;height:58px;border-radius:50%;align-items:center;justify-content:center;background:var(--primary);color:var(--grad-2);}
.cta-icon .icon{width:28px;height:28px;}
.cta-strip h2{color:var(--primary);font-size:clamp(1.25rem,1rem + .8vw,1.625rem);font-weight:800;line-height:1.2;margin:0;}
.cta-text{flex:1 1 0;margin:0;padding-left:36px;border-left:1px solid rgba(var(--primary-rgb),.25);font-size:15px;font-weight:500;color:var(--primary);}
.cta-strip .btn{background:var(--white);border-color:var(--white);color:var(--grad-3);}
.cta-strip .btn:hover{background:var(--primary);border-color:var(--primary);color:var(--white);}
.cta-strip :focus-visible{outline-color:var(--primary);}
.cta-strip .btn--outline-light{background:transparent;border-color:rgba(var(--white-rgb),.6);color:var(--white);}
.cta-strip .btn--outline-light:hover{background:var(--white);color:var(--primary);}
.cta-flex .btn-row{flex:none;flex-wrap:nowrap;}

/* INNER PAGES ------------------------------------------------------------ */
h2.h-sm,.h-sm{font-size:1.0625rem;margin-bottom:12px;}
.section--tight{padding:var(--section-y-sm) 0;}
.section--first{padding-top:clamp(28px,4vh,44px);}
.pagehead{position:relative;background:var(--primary);overflow:hidden;color:var(--white);}
.pagehead-media{position:absolute;inset:0;}
.pagehead-media img{width:100%;height:100%;object-fit:cover;object-position:75% 50%;}
.pagehead-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(var(--primary-rgb),.95) 0%,rgba(var(--primary-rgb),.8) 45%,rgba(var(--primary-rgb),.25) 100%);}
.pagehead .container{position:relative;}
.pagehead-inner{padding:clamp(48px,9vh,96px) 0 clamp(52px,10vh,104px);max-width:680px;}
.pagehead h1{color:var(--white);font-size:clamp(1.75rem,1.2rem + 2vw,2.75rem);margin-bottom:12px;}
.pagehead p{color:rgba(var(--white-rgb),.84);margin:0;max-width:600px;}
.crumbs ol{display:flex;flex-wrap:wrap;gap:4px 0;list-style:none;margin:0 0 16px;padding:0;font-family:var(--font-head);font-size:13px;color:rgba(var(--white-rgb),.65);}
.crumbs li{margin:0;display:flex;align-items:center;}
.crumbs li+li::before{content:"/";margin:0 10px;opacity:.5;}
.crumbs a{color:rgba(var(--white-rgb),.9);}
.crumbs a:hover{color:var(--accent-light);}
.crumbs--light ol{color:var(--muted);margin:0;}
.crumbs--light a{color:var(--ink);}
.crumbs--light a:hover{color:var(--accent-strong);}
.product-top{border-bottom:1px solid var(--line);background:var(--bg-alt);}
.product-top .container{padding-top:14px;padding-bottom:14px;}

/* Shop */
.shop-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;margin-bottom:32px;padding-bottom:22px;border-bottom:1px solid var(--line);}
.shop-toolbar__right{display:flex;align-items:center;gap:18px;}
.woocommerce-result-count{margin:0;font-size:14px;color:var(--muted);}
.woocommerce-ordering{margin:0;}
.woocommerce-ordering select,.field select{appearance:none;-webkit-appearance:none;height:42px;padding:0 40px 0 16px;border:1px solid var(--line);border-radius:var(--radius-pill);
  background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2301003D' stroke-width='1.8'/%3E%3C/svg%3E") right 16px center no-repeat;
  font-family:var(--font-head);font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;}
.chip.is-active{background:var(--primary);border-color:var(--primary);color:var(--white);}
.chip.is-active span{color:rgba(var(--white-rgb),.7);}
.product-grid--shop{row-gap:26px;}
.pagination{margin-top:44px;}
.pagination ul{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0;}
.pagination li{margin:0;}
.pagination a,.pagination span{display:flex;min-width:44px;height:44px;padding:0 14px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--radius-pill);font-family:var(--font-head);font-weight:700;font-size:14px;color:var(--ink);}
.pagination .current{background:var(--primary);border-color:var(--primary);color:var(--white);}
.pagination a:hover{border-color:var(--primary);}
.shop-empty{padding:40px 0;color:var(--muted);}
.help-strip{display:flex;align-items:center;gap:24px;margin-top:var(--section-y-sm);padding:28px 30px;border-radius:0;background:var(--accent-soft);}
.help-strip__icon{display:flex;flex:none;width:52px;height:52px;border-radius:50%;align-items:center;justify-content:center;background:var(--accent-strong);color:var(--white);}
.help-strip h2{font-size:1.125rem;margin-bottom:4px;}
.help-strip p{font-size:14.5px;color:var(--text);margin:0;}
.help-strip>div:nth-child(2){flex:1;}
.help-strip .btn-row{flex:none;}

/* Single product */
.product-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:start;}
.product-gallery{position:sticky;top:110px;}
.product-gallery__main{position:relative;border:1px solid var(--line);border-radius:0;background:#fff;overflow:hidden;}
.product-gallery__main img{width:100%;aspect-ratio:1;object-fit:contain;padding:18px;}
.product-gallery__thumbs{display:flex;gap:10px;list-style:none;margin:12px 0 0;padding:0;}
.product-gallery__thumbs li{margin:0;}
.product-gallery__thumbs button{display:block;width:76px;height:76px;padding:4px;border:1px solid var(--line);border-radius:0;background:#fff;cursor:pointer;}
.product-gallery__thumbs button[aria-current="true"]{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary);}
.product-gallery__thumbs img{width:100%;height:100%;object-fit:contain;}
.product-info h1{font-size:clamp(1.75rem,1.2rem + 1.8vw,2.625rem);margin-bottom:10px;}
.product-info__price{font-family:var(--font-head);font-size:clamp(1.5rem,1.2rem + 1vw,2rem);font-weight:800;color:var(--primary);margin:0 0 4px;letter-spacing:-.02em;}
.product-info__price del{font-size:.55em;font-weight:500;color:var(--muted);margin-right:10px;letter-spacing:0;}
.product-info__price ins{text-decoration:none;}
.product-info__saving{display:inline-block;margin:6px 0 0;padding:4px 12px;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-dark);font-family:var(--font-head);font-weight:700;font-size:13px;}
.product-info__lead{margin:22px 0 26px;padding-bottom:24px;border-bottom:1px solid var(--line);color:var(--text);}
.product-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px;}
.product-actions .btn{flex:1 1 200px;height:54px;font-size:15px;}
.btn--wa{background:#1FAF55;border-color:#1FAF55;color:var(--white);}
.btn--wa:hover{background:#178E44;border-color:#178E44;}
.product-info__call{display:flex;align-items:center;gap:8px;margin:16px 0 0;font-size:14.5px;color:var(--muted);}
.product-info__call .icon{width:16px;height:16px;color:var(--accent-strong);}
.product-info__call a{font-weight:700;}
.product-meta{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:8px 32px;margin:28px 0 0;padding-top:22px;border-top:1px solid var(--line);}
.product-meta dt{font-family:var(--font-head);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mauve);}
.product-meta dd{margin:2px 0 0;font-weight:600;color:var(--ink);}
.prose{max-width:760px;}
.mini-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;list-style:none;margin:0;padding:0;counter-reset:step;}
.mini-steps li{position:relative;margin:0;padding:24px 22px 24px;border-radius:0;background:var(--bg);border:1px solid var(--line);counter-increment:step;}
.mini-steps li::before{content:counter(step);display:flex;width:34px;height:34px;margin-bottom:14px;border-radius:50%;align-items:center;justify-content:center;background:var(--primary);color:var(--white);font-family:var(--font-head);font-weight:800;font-size:14px;}
.mini-steps strong{display:block;margin-bottom:4px;}
.mini-steps span{font-size:14.5px;color:var(--muted);}

/* Quote form */
.quote-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:start;}
.formcard{background:var(--bg);border:1px solid var(--line);border-radius:0;padding:34px 32px;box-shadow:var(--shadow);scroll-margin-top:110px;}
.formcard h2{font-size:1.5rem;font-weight:800;margin-bottom:6px;}
.formcard .note{font-size:14.5px;color:var(--muted);margin-bottom:24px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.field{margin:0 0 16px;}
.field label,.field legend{display:block;font-family:var(--font-head);font-size:13.5px;font-weight:700;color:var(--ink);margin-bottom:7px;}
.field input,.field textarea,.field select{width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:0;font-family:var(--font-body);font-size:15px;color:var(--ink);background:var(--bg);}
.field select{border-radius:0;height:auto;padding:13px 40px 13px 15px;font-weight:500;}
.field textarea{resize:vertical;min-height:110px;}
.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--accent-strong);outline-offset:0;border-color:transparent;}
.field--choice{border:0;padding:0;}
.field--choice label{display:inline-flex;align-items:center;gap:8px;margin:0 18px 0 0;font-weight:600;font-family:var(--font-body);}
.field--choice input,.consent input{width:18px;height:18px;accent-color:var(--accent-strong);}
.consent{display:flex;align-items:flex-start;gap:10px;margin:4px 0 20px;font-size:14px;color:var(--text);}
.consent input{flex:none;margin-top:2px;}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.form-notice{padding:14px 16px;border-radius:0;font-weight:600;font-size:14.5px;}
.form-notice--success{background:var(--accent-soft);color:var(--accent-dark);}
.form-notice--error{background:#FCEBEA;color:#9B1C1C;}
.quote-product{display:flex;align-items:center;gap:14px;margin-bottom:20px;padding:12px;border:1px solid var(--line);border-radius:0;background:var(--bg-alt);}
.quote-product img{width:64px;height:64px;object-fit:contain;background:#fff;border-radius:0;}
.quote-product__label{display:block;font-size:12px;color:var(--muted);}
.quote-product strong{display:block;font-size:1rem;}
.quote-product__price{display:block;font-weight:700;color:var(--primary);font-size:13.5px;}
.quote-product__price del{font-weight:400;color:var(--muted);margin-right:6px;}
.quote-product__price ins{text-decoration:none;}
.quote-aside{display:flex;flex-direction:column;gap:20px;}
.sidebar{padding:28px 26px;border-radius:0;background:var(--primary);color:rgba(var(--white-rgb),.8);}
.sidebar h2{color:var(--white);}
.sidebar--plain{background:var(--bg-alt);color:var(--text);}
.sidebar--plain h2{color:var(--ink);}
.contact-lines{list-style:none;margin:0;padding:0;}
.contact-lines li{display:flex;gap:14px;align-items:center;margin:0 0 16px;}
.contact-lines li:last-child{margin-bottom:0;}
.contact-lines .mark{display:flex;flex:none;width:42px;height:42px;border-radius:50%;align-items:center;justify-content:center;background:rgba(var(--white-rgb),.1);color:var(--accent-light);}
.contact-lines .mark .icon{width:18px;height:18px;}
.contact-lines .label{display:block;font-family:var(--font-head);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.7;}
.contact-lines .value{font-family:var(--font-head);font-weight:700;color:var(--white);overflow-wrap:anywhere;}
.contact-lines a.value:hover{color:var(--accent-light);}
.next-steps{margin:0;padding-left:20px;font-size:14.5px;}
.next-steps li{margin-bottom:10px;}

/* Branch pages */
.branch-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:36px;}
.branch-facts p{display:flex;align-items:center;gap:14px;margin:0;padding:18px 20px;border-radius:0;background:var(--bg-alt);font-size:14.5px;}
.branch-facts .icon{flex:none;width:44px;height:44px;padding:11px;border-radius:50%;background:var(--accent-soft);color:var(--accent-strong);}
.branch-facts strong{display:block;font-size:13px;}
.branch-grid--page{grid-template-columns:repeat(3,1fr);}
.branch-grid--page .branch-card--factory{grid-column:1 / -1;min-height:260px;}
.branch-grid--compact{grid-template-columns:repeat(3,1fr);}
.branch-card__title{font-size:1rem;margin-bottom:4px;}
.branch-card--factory .branch-card__title{font-size:1.375rem;color:var(--white);}
.branch-card__title a{color:inherit;}
.branch-card__title a:hover{color:var(--accent-strong);}
.branch-card--factory .branch-card__title a:hover{color:var(--accent-light);}
.branch-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:48px;align-items:start;}
.branch-main h3{margin-top:28px;}
.branch-aside{display:flex;flex-direction:column;gap:16px;}
.branch-details{padding:26px;border-radius:0;background:var(--primary);color:rgba(var(--white-rgb),.8);}
.branch-details .contact-lines{margin-bottom:22px;}
.branch-details .btn--dark{background:var(--white);border-color:var(--white);color:var(--primary);}
.branch-details .btn--dark:hover{background:var(--accent-light);border-color:var(--accent-light);}
.branch-map{border-radius:0;overflow:hidden;border:1px solid var(--line);background:var(--bg-alt);}
.branch-map iframe{display:block;width:100%;height:320px;border:0;}

/* CONTENT PAGES ---------------------------------------------------------- */
.container--narrow{max-width:860px;}
.grid--end{align-items:flex-end;}
.intro-gap{margin-bottom:40px;}
.rounded-media{width:100%;border-radius:0;aspect-ratio:4/3;object-fit:cover;}
.prose{max-width:760px;}
.prose p,.prose li{color:var(--text);}
.prose h2{font-size:1.5rem;margin-top:36px;}
.prose h3{font-size:1.1875rem;margin-top:28px;}
.prose a{color:var(--accent-strong);text-decoration:underline;text-underline-offset:3px;}
.prose img{border-radius:0;height:auto;}
.prose blockquote{margin:24px 0;padding:6px 0 6px 20px;border-left:3px solid var(--accent);font-size:1.0625rem;color:var(--ink);}
.prose table{width:100%;border-collapse:collapse;margin:20px 0;font-size:15px;}
.prose th,.prose td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;}

/* About */
.founder{position:relative;margin:0;}
/* Studio portrait on white: shown head to hands, on a soft stone background. */
.founder{max-width:440px;margin-inline:auto;}
.founder img{width:100%;aspect-ratio:978/1500;object-fit:cover;object-position:50% 0;border-radius:0;background:#f3f3f1;}
.founder figcaption{left:auto;right:16px;bottom:16px;width:max-content;max-width:calc(100% - 32px);padding:12px 16px;}
.founder figcaption{position:absolute;left:20px;right:20px;bottom:20px;padding:16px 20px;border-radius:0;background:rgba(var(--primary-rgb),.92);color:rgba(var(--white-rgb),.75);font-size:13.5px;}
.founder figcaption strong{display:block;color:var(--white);font-size:1.0625rem;}
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.valuecard{padding:32px 28px;border:1px solid var(--line);border-radius:0;background:var(--bg);}
.valuecard__icon{display:flex;width:52px;height:52px;margin-bottom:18px;border-radius:50%;align-items:center;justify-content:center;background:var(--accent-strong);color:var(--white);}
.valuecard__icon .icon{width:24px;height:24px;}
.valuecard h3{font-size:1.25rem;margin-bottom:8px;}
.valuecard p{color:var(--muted);font-size:15px;margin:0;}
.split-cta{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:40px 44px;border-radius:0;background:var(--accent-soft);}
.split-cta>div:first-child{max-width:620px;}
.split-cta p{margin:0;color:var(--text);}
.split-cta .btn-row{flex:none;}

/* Why choose us */
.reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.reason{position:relative;padding:30px 26px;border:1px solid var(--line);border-radius:0;background:var(--bg);transition:box-shadow .2s,border-color .2s;}
.reason:hover{border-color:transparent;box-shadow:var(--shadow);}
.reason__num{position:absolute;right:22px;top:20px;font-family:var(--font-head);font-weight:800;font-size:28px;color:var(--accent-soft);}
.reason__icon{display:flex;width:52px;height:52px;margin-bottom:18px;border-radius:50%;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent-strong);}
.reason__icon .icon{width:24px;height:24px;}
.reason h3{font-size:1.125rem;margin-bottom:8px;}
.reason p{font-size:15px;color:var(--muted);margin:0;}

/* Services */
.card-grid--3>.col{width:33.3333%;}
.svc-card__link{position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-family:var(--font-head);font-weight:700;font-size:14px;color:var(--primary);}
.svc-card__link .icon{width:15px;height:15px;transition:transform .18s;}
.svc-card__link:hover .icon{transform:translateX(3px);}
.mini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;}
.mini-card{display:flex;gap:16px;padding:24px 22px;border-radius:0;background:var(--bg);border:1px solid var(--line);}
.mini-card__icon{display:flex;flex:none;width:46px;height:46px;border-radius:50%;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent-strong);}
.mini-card__icon .icon{width:21px;height:21px;}
.mini-card h3{font-size:1.0625rem;margin-bottom:4px;}
.mini-card p{font-size:14.5px;color:var(--muted);margin:0;}

/* FAQ */
.faq-layout{display:grid;grid-template-columns:1.7fr 1fr;gap:48px;align-items:start;}
.faq-list details{border:1px solid var(--line);border-radius:0;background:var(--bg);margin:0 0 12px;transition:box-shadow .2s;}
.faq-list details[open]{box-shadow:var(--shadow);border-color:transparent;}
.faq-list summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px;font-family:var(--font-head);font-weight:700;color:var(--ink);font-size:1rem;line-height:1.4;}
.faq-list summary::-webkit-details-marker{display:none;}
.faq-list summary::after{content:"+";flex:none;display:flex;width:30px;height:30px;border-radius:50%;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent-strong);font-size:20px;font-weight:600;transition:transform .2s;}
.faq-list details[open] summary::after{content:"\2212";background:var(--accent-strong);color:var(--white);}
.faq-list details p{margin:0;padding:0 22px 22px;color:var(--text);font-size:15px;}
.faq-list details a{color:var(--accent-strong);text-decoration:underline;text-underline-offset:3px;}
.faq-aside{display:flex;flex-direction:column;gap:20px;position:sticky;top:110px;}
.faq-aside .sidebar p{color:rgba(var(--white-rgb),.8);font-size:14.5px;}
.stack{display:flex;flex-direction:column;gap:10px;margin-top:18px;}
.link-list{list-style:none;margin:0;padding:0;}
.link-list li{margin:0;border-bottom:1px solid var(--line);}
.link-list li:last-child{border-bottom:0;}
.link-list a{display:flex;justify-content:space-between;padding:12px 0;font-family:var(--font-head);font-weight:600;color:var(--ink);}
.link-list a::after{content:"\2192";color:var(--accent-strong);}
.link-list a:hover{color:var(--accent-strong);}
.link-list--big a{font-size:1.125rem;padding:16px 0;}

/* Gallery */
.gallery-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px;}
.gallery-tabs .chip{cursor:pointer;}
.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;list-style:none;margin:0;padding:0;}
.photo-grid li{margin:0;}
.photo-grid li[hidden]{display:none;}
.photo-grid a{display:block;overflow:hidden;border-radius:0;background:var(--bg-alt);}
.photo-grid img{width:100%;aspect-ratio:1;object-fit:cover;transition:transform .5s ease;}
.photo-grid a:hover img{transform:scale(1.05);}
.lightbox{max-width:min(94vw,1100px);max-height:92vh;padding:0;border:0;border-radius:0;background:#0b0b14;overflow:visible;}
.lightbox::backdrop{background:rgba(0,0,20,.85);}
.lightbox img{display:block;max-width:min(94vw,1100px);max-height:92vh;width:auto;height:auto;margin:auto;border-radius:0;}
.lightbox__close,.lightbox__nav{position:absolute;display:flex;width:46px;height:46px;border:0;border-radius:50%;align-items:center;justify-content:center;background:var(--white);color:var(--primary);cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.3);}
.lightbox__close{top:-18px;right:-18px;}
.lightbox__nav{top:50%;transform:translateY(-50%);}
.lightbox__nav--prev{left:-22px;}
.lightbox__nav--prev .icon{transform:rotate(180deg);}
.lightbox__nav--next{right:-22px;}

/* Blog */
.search-form{display:flex;align-items:center;height:42px;border:1px solid var(--line);border-radius:var(--radius-pill);overflow:hidden;background:var(--bg);min-width:240px;}
.search-form input{flex:1;min-width:0;height:100%;padding:0 16px;border:0;font-family:var(--font-body);font-size:14.5px;color:var(--ink);background:none;}
.search-form input:focus{outline:none;}
.search-form:focus-within{outline:2px solid var(--accent-strong);outline-offset:1px;}
.search-form button{display:flex;width:44px;height:100%;border:0;align-items:center;justify-content:center;background:none;color:var(--primary);cursor:pointer;}
.post-card__title{font-size:1.0625rem;line-height:1.35;margin-bottom:8px;}
.post-card__title a{color:var(--ink);}
.post-card__title a::after{content:"";position:absolute;inset:0;}
.post-card__meta span{color:var(--accent-strong);}
.article-head{padding:clamp(36px,6vh,60px) 0 28px;}
.article-head h1{font-size:clamp(1.75rem,1.2rem + 2vw,2.75rem);margin-bottom:14px;}
.article-meta{display:flex;gap:10px;color:var(--muted);font-size:14.5px;margin:0;}
.article-media{margin:0 0 36px;}
.article-media img{width:100%;border-radius:0;}
.article-body{max-width:none;font-size:1.0625rem;line-height:1.75;}
.article-foot{padding:36px 0 var(--section-y);}
.article-share{display:flex;align-items:center;gap:10px;margin:0 0 28px;padding-top:24px;border-top:1px solid var(--line);}
.article-share strong{margin-right:6px;font-size:14px;}
.article-share a{display:flex;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;align-items:center;justify-content:center;color:var(--primary);}
.article-share a:hover{background:var(--primary);border-color:var(--primary);color:var(--white);}
.article-share .icon{width:17px;height:17px;}
.article-foot .help-strip{margin-top:0;}

/* Contact */
.contact-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:48px;}
.contact-card{display:flex;flex-direction:column;gap:4px;padding:24px 22px;border:1px solid var(--line);border-radius:0;background:var(--bg);color:var(--ink);transition:box-shadow .2s,border-color .2s;}
a.contact-card:hover{border-color:transparent;box-shadow:var(--shadow);color:var(--ink);}
.contact-card__icon{display:flex;width:46px;height:46px;margin-bottom:10px;border-radius:50%;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent-strong);}
.contact-card__icon--wa{background:#1FAF55;color:var(--white);}
.contact-card__icon .icon{width:21px;height:21px;}
.contact-card__label{font-family:var(--font-head);font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mauve);}
.contact-card strong{font-family:var(--font-head);font-size:1rem;overflow-wrap:anywhere;}
.contact-card strong.contact-card__email{font-size:13.5px;overflow-wrap:normal;word-break:break-word;}
.contact-card__note{font-size:13px;color:var(--muted);}
.contact-intro{margin-bottom:24px;}
.branch-mini{list-style:none;margin:0 0 20px;padding:0;}
.branch-mini li{margin:0;padding:12px 0;border-bottom:1px solid var(--line);}
.branch-mini a{display:block;font-family:var(--font-head);font-weight:700;color:var(--ink);}
.branch-mini a:hover{color:var(--accent-strong);}
.branch-mini span{font-size:13.5px;color:var(--muted);}

/* WhatsApp button */
.wa-float{position:fixed;right:22px;bottom:22px;z-index:50;display:flex;width:56px;height:56px;border-radius:50%;align-items:center;justify-content:center;
  background:#25D366;color:var(--white);box-shadow:0 10px 26px rgba(0,0,0,.22);transition:transform .2s;}
.wa-float:hover{color:var(--white);transform:scale(1.06);}
.wa-float .icon{width:28px;height:28px;}

/* 9. FOOTER -------------------------------------------------------------- */
.footer{background:var(--primary-dark);color:rgba(var(--white-rgb),.7);font-size:.875rem;}
.footer>.container{padding-top:72px;padding-bottom:44px;}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.4fr;gap:44px;}
.footer h2{color:var(--white);font-size:.75rem;font-weight:700;line-height:1.4;letter-spacing:.1em;text-transform:uppercase;margin-bottom:18px;}
.footer a{color:rgba(var(--white-rgb),.72);}
.footer a:hover{color:var(--accent-light);}
.footer ul{list-style:none;padding:0;margin:0;}
.footer ul li{margin-bottom:10px;}
.brandmark--plate{display:inline-flex;padding:12px 18px;margin-bottom:20px;background:var(--white);border-radius:0;}
.brandmark--plate img{height:clamp(52px, 4.2vw, 70px);}
.footer .fine{line-height:1.7;margin:0 0 18px;max-width:340px;}
.f-contact li{display:flex;gap:12px;align-items:flex-start;line-height:1.55;}
.f-contact .icon{width:16px;height:16px;color:var(--accent-light);margin-top:3px;}
.f-contact a,.f-contact span{overflow-wrap:anywhere;}
.social{display:flex;gap:8px;}
.social li{margin:0!important;}
.social a{display:flex;width:40px;height:40px;border:1px solid rgba(var(--white-rgb),.18);border-radius:50%;align-items:center;justify-content:center;color:var(--white);}
.social a:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--white);}
.social .icon{width:16px;height:16px;}
.footerbar{border-top:1px solid rgba(var(--white-rgb),.1);}
.footerbar .container{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;padding-top:20px;padding-bottom:20px;font-size:12.5px;color:rgba(var(--white-rgb),.55);}
.footerbar p{margin:0;}

/* HOME HERO (light split) ---------------------------------------------------- */
.hero2{position:relative;overflow:hidden;background:var(--bg-alt);}
.hero2::before{content:"";position:absolute;right:-12%;top:-30%;width:62%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(227,239,38,.28) 0%,rgba(226,251,206,.25) 40%,rgba(246,246,243,0) 70%);pointer-events:none;}
.hero2__grid{position:relative;display:grid;grid-template-columns:1.2fr .95fr;align-items:center;gap:56px;padding-top:clamp(44px,7vh,80px);padding-bottom:clamp(52px,8vh,96px);}
.hero2__kicker{display:inline-flex;align-items:center;gap:10px;margin:0 0 22px;padding:5px 14px 5px 5px;border-radius:var(--radius-pill);background:var(--white);
  box-shadow:0 4px 14px rgba(var(--primary-rgb),.06);font-family:var(--font-head);font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--muted);}
.hero2__kicker span{padding:5px 12px;border-radius:var(--radius-pill);background:var(--primary);color:var(--grad-2);}
.hero2 h1{margin:0 0 18px;font-size:clamp(2rem,1.1rem + 2.1vw,2.625rem);line-height:1.08;color:var(--primary);}
.hero2 h1 .hl{display:block;color:var(--accent-strong);}
.hero2__lead{max-width:520px;margin:0;font-size:clamp(15px,1.1vw,17px);color:var(--text);}
.hero2 .btn-row{margin-top:30px;}
.hero2__ticks{display:flex;flex-wrap:wrap;gap:10px 22px;list-style:none;margin:28px 0 0;padding:22px 0 0;border-top:1px solid var(--line);}
.hero2__ticks li{display:flex;align-items:center;gap:8px;margin:0;font-family:var(--font-head);font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--primary);}
.hero2__ticks .icon{width:18px;height:18px;padding:3px;border-radius:50%;background:var(--accent-strong);color:var(--white);stroke-width:3;}
.hero2__media{position:relative;}
.hero2__frame{overflow:hidden;border-radius:0;aspect-ratio:5/4.6;box-shadow:0 30px 60px rgba(var(--primary-rgb),.18);background:#0b0b0b;}
.hero2__frame img{width:100%;height:100%;object-fit:cover;object-position:82% 60%;}
.hero2__chip{position:absolute;display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:0;background:var(--white);box-shadow:0 18px 40px rgba(var(--primary-rgb),.16);color:var(--primary);}
.hero2__chip small{display:block;font-family:var(--font-head);font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--muted);}
.hero2__chip strong{display:block;font-family:var(--font-head);font-size:1.5rem;font-weight:700;line-height:1.1;}
.hero2__chip--price{top:28px;left:-36px;flex-direction:column;align-items:flex-start;gap:2px;}
.hero2__chip--price:hover{color:var(--accent-strong);}
.hero2__chip--badge{right:-18px;bottom:36px;}
.hero2__chip--badge strong{font-size:1.125rem;}
.hero2__chip-icon{display:flex;width:44px;height:44px;border-radius:50%;align-items:center;justify-content:center;
  background:linear-gradient(160deg,var(--grad-1),var(--grad-2) 55%,var(--grad-3));color:var(--primary);}
.hero2__chip-icon .icon{width:20px;height:20px;}
@media (max-width:1280px){.hero2__chip--price{left:16px;}.hero2__chip--badge{right:16px;}}
@media (max-width:980px){
  .hero2__grid{grid-template-columns:1fr;gap:36px;}
  .hero2__media{max-width:620px;}
  .hero2__frame{aspect-ratio:16/11;border-radius:0;}
}
@media (max-width:640px){
  .hero2 h1{font-size:clamp(1.625rem,7.4vw,2.125rem);}
  .hero2 .btn-row .btn{flex:1 1 auto;}
  .hero2__ticks{gap:8px 14px;}
  .hero2__ticks li{font-size:11.5px;}
  .hero2__chip{padding:10px 14px;border-radius:0;}
  .hero2__chip strong{font-size:1.125rem;}
  .hero2__chip--badge strong{font-size:.9375rem;}
  .hero2__chip-icon{width:36px;height:36px;}
  .hero2__chip--price{top:14px;left:14px;}
  .hero2__chip--badge{right:14px;bottom:14px;}
}

/* HOME HERO v5: two-slide showcase. Desktop 1920x900 proportions, content on the left
   over the open sky; slow zoom + cross-fade; dots double as a 6s progress bar.
   Phones: taller crop on the memorial, content at the top, swipe, playful tag chip. */
.hero5{position:relative;overflow:hidden;background:#3c7fd0;color:var(--white);}
.hero5__slides{position:absolute;inset:0;}
.hero5__slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .8s ease;}
.hero5__slide.is-on{opacity:1;}
.hero5__slide img{width:100%;height:100%;object-fit:cover;object-position:70% 50%;transform:scale(1.06);transition:transform 7s ease-out;}
.hero5__slide.is-on img{transform:scale(1);}
.hero5::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(1,0,40,.62) 0%,rgba(1,0,40,.38) 30%,rgba(1,0,40,.08) 52%,rgba(1,0,40,0) 62%);}
.hero5__inner{position:relative;z-index:2;display:flex;align-items:center;min-height:clamp(520px,calc(100vw * 900 / 1920),900px);
  max-width:calc(var(--container) * 1.3 * .9);}
.hero5__content{max-width:min(560px,46vw);padding:40px 0;}
.hero5__kicker{display:inline-flex;align-items:center;gap:10px;margin:0 0 16px;font-family:var(--font-head);font-size:12px;font-weight:700;letter-spacing:.2em;color:var(--grad-2);}
.hero5__kicker::before{content:"";width:28px;height:2px;background:currentColor;}
.hero5__title{margin:0 0 28px;font-size:clamp(2rem,1rem + 2.6vw,3.75rem);font-weight:700;line-height:1.04;letter-spacing:.005em;color:var(--white);text-shadow:0 2px 24px rgba(1,0,40,.35);}
.hero5__title span{display:block;color:var(--grad-2);}
.hero5__actions{display:flex;flex-wrap:wrap;gap:12px;}
.hero5__btn{display:inline-flex;align-items:center;gap:10px;height:50px;padding:0 26px;background:var(--white);color:var(--primary);
  font-family:var(--font-head);font-size:13.5px;font-weight:700;letter-spacing:.06em;box-shadow:0 10px 26px rgba(1,0,40,.22);transition:background .2s,color .2s,transform .2s;}
.hero5__btn .icon{width:17px;height:17px;transition:transform .2s;}
.hero5__btn:hover{background:var(--grad-2);color:var(--primary);transform:translateY(-2px);}
.hero5__btn:hover .icon{transform:translateX(4px);}
.hero5__btn--line{background:rgba(1,0,40,.28);color:var(--white);border:1.5px solid rgba(var(--white-rgb),.85);box-shadow:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);}
.hero5__btn--line:hover{background:var(--white);color:var(--primary);}
.hero5__dots{display:flex;gap:8px;margin-top:34px;}
.hero5__dots button{position:relative;width:46px;height:28px;padding:0;border:0;background:none;cursor:pointer;}
.hero5__dots button span{position:absolute;left:0;right:0;top:50%;height:3px;margin-top:-1.5px;background:rgba(var(--white-rgb),.4);overflow:hidden;}
.hero5__dots button span::after{content:"";position:absolute;inset:0;background:var(--grad-2);transform:scaleX(0);transform-origin:left;}
.hero5__dots button.is-on span::after{transform:scaleX(1);}
.hero5.is-playing .hero5__dots button.is-on span::after{animation:hero5-run 4s linear;animation-play-state:running;}
@keyframes hero5-run{from{transform:scaleX(0);}to{transform:scaleX(1);}}
.hero5__tag{display:none;}
@media (max-width:980px) and (min-width:761px){
  .hero5__content{max-width:60vw;}
  .hero5::before{background:linear-gradient(90deg,rgba(1,0,40,.7) 0%,rgba(1,0,40,.4) 45%,rgba(1,0,40,0) 75%);}
}
@media (max-width:760px){
  /* Phones, app-style: a sky-blue text block on top, then the memorial photo below it as
     a swipeable card (cropped to the memorial), so text never sits on the stone. */
  .hero5{display:flex;flex-direction:column;background:linear-gradient(180deg,#1b4f9c 0%,#2f6fc4 100%);}
  .hero5::before{display:none;}
  .hero5__inner{order:1;align-items:flex-start;min-height:0;}
  .hero5__slides{order:2;position:relative;inset:auto;aspect-ratio:4/3.1;margin:0 var(--pad-x) 22px;overflow:hidden;box-shadow:0 18px 40px rgba(1,0,40,.35);}
  .hero5__slide img{object-position:96% 70%;}
  .hero5__content{max-width:none;width:100%;padding:30px 0 22px;}
  .hero5__kicker{font-size:10.5px;letter-spacing:.16em;margin-bottom:10px;}
  .hero5__title{font-size:clamp(1.5rem,7.2vw,2.125rem);margin-bottom:18px;}
  .hero5__actions{flex-wrap:nowrap;gap:8px;}
  .hero5__btn{height:40px;padding:0 14px;font-size:11px;gap:6px;}
  .hero5__btn .icon{width:14px;height:14px;}
  .hero5__dots{margin-top:18px;}
  .hero5__dots button{width:40px;height:36px;}
  /* Playful touch: a small label chip naming what the photo shows. */
  .hero5__tag{display:block;position:absolute;left:12px;bottom:12px;z-index:3;padding:7px 12px;background:var(--white);color:var(--primary);
    font-family:var(--font-head);font-size:10.5px;font-weight:700;letter-spacing:.1em;box-shadow:0 8px 18px rgba(1,0,40,.2);
    opacity:0;transform:translateY(8px);transition:opacity .5s ease .4s,transform .5s ease .4s;}
  .hero5__slide.is-on .hero5__tag{opacity:1;transform:none;}
}
/* Phones, client reference (supersedes the stacked card version above): the photo fills
   the hero; its built-in navy fade on the left carries the text. Both headline lines white,
   no kicker, no tag chip, two buttons side by side. */
@media (max-width:760px){
  .hero5{display:block;background:#0a1640;}
  .hero5::before{display:block;background:linear-gradient(90deg,rgba(1,0,40,.55) 0%,rgba(1,0,40,.25) 55%,rgba(1,0,40,0) 80%);}
  .hero5__slides{position:absolute;inset:0;margin:0;aspect-ratio:auto;box-shadow:none;}
  /* Each photo is shifted so its memorial fills the right half; the text keeps to the
     dark left half and never crosses the stone. */
  .hero5__slide--hero-slide-lerato img{object-position:46% 50%;}
  .hero5__slide--hero-slide-baloyi img{object-position:62% 50%;}
  .hero5__tag{display:none!important;}
  .hero5__inner{align-items:center;min-height:clamp(320px,90vw,440px);}
  .hero5__content{padding:28px 0 36px;max-width:54%;}
  .hero5__kicker{display:none;}
  .hero5__title{font-size:clamp(1.25rem,6vw,1.75rem);line-height:1.12;margin-bottom:18px;}
  .hero5__title span{margin-top:4px;}
  .hero5__actions{flex-direction:column;align-items:flex-start;gap:8px;}
  .hero5__actions .hero5__btn{width:100%;justify-content:center;}
  .hero5__title span{display:block;color:var(--white);}
  .hero5__actions{flex-wrap:nowrap;gap:8px;}
  .hero5__btn{height:40px;padding:0 14px;font-size:11px;}
  .hero5__btn--line{background:rgba(54,62,140,.85);border:0;-webkit-backdrop-filter:none;backdrop-filter:none;}
  .hero5__dots{position:absolute;left:var(--pad-x);bottom:8px;margin:0;}
}
@media (prefers-reduced-motion:reduce){.hero5__slide,.hero5__slide img,.hero5__tag{transition:none;}.hero5__slide img{transform:none;}}

/* HOME HERO v4 (client reference: rounded photo frame, text low-left / low-right) */
/* Full width, square edges (client request). */
.hero4{padding:0;background:var(--bg);}
/* 80% of the photo's own height: the top 20% (sky) is cropped so the stones sit higher. */
.hero4__frame{position:relative;overflow:hidden;border-radius:0;min-height:max(440px,calc(100vw * 900 / 1600 * .8));display:flex;align-items:flex-end;background:#3c8fe6;}
.hero4__media{position:absolute;inset:0;}
.hero4__media img{width:100%;height:100%;object-fit:cover;object-position:50% 60%;}
/* Shade only along the bottom, where the text sits; the photo file itself is unchanged. */
.hero4__frame::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to top,rgba(0,0,22,.82) 0%,rgba(0,0,22,.58) 28%,rgba(0,0,22,.18) 50%,rgba(0,0,22,0) 64%);}
.hero4__content{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:space-between;gap:48px;width:100%;
  max-width:calc(var(--container) + 40px);margin:0 auto;padding:0 var(--pad-x) clamp(40px,5vw,72px);}
.hero4__title{margin:0;max-width:880px;font-size:clamp(2.25rem,1.2rem + 2.4vw,3.5rem);font-weight:500;line-height:1.05;letter-spacing:-.01em;color:var(--white);
  text-shadow:0 2px 24px rgba(0,0,0,.25);}
.hero4__title span{display:block;color:var(--grad-2);}
.hero4__side{flex:0 0 340px;color:rgba(var(--white-rgb),.92);}
.hero4__side p{margin:0 0 18px;font-size:15px;line-height:1.6;}
.hero4__side strong{color:var(--white);}
.hero4__actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.hero4__btn{display:inline-flex;align-items:center;height:44px;padding:0 22px;border-radius:0;background:var(--white);color:var(--primary);
  font-family:var(--font-head);font-size:13.5px;font-weight:700;letter-spacing:.03em;box-shadow:0 8px 20px rgba(0,0,0,.2);transition:background .2s,color .2s;}
.hero4__btn:hover{background:var(--grad-2);color:var(--primary);}
.hero4__btn--line{background:transparent;color:var(--white);box-shadow:none;border:1.5px solid rgba(var(--white-rgb),.75);}
.hero4__btn--line:hover{background:var(--white);color:var(--primary);}
/* Desktop and tablet, final: one centred text block in the open sky above the stones.
   The stones stay untouched; only the sky is gently deepened (top-down navy fade) so the
   white type reads cleanly. Replaces the earlier bottom-left / bottom-right split. */
@media (min-width:761px){
  .hero4__frame{align-items:flex-start;}
  .hero4__frame::after{background:linear-gradient(to bottom,rgba(1,0,40,.62) 0%,rgba(1,0,40,.4) 22%,rgba(1,0,40,.1) 38%,rgba(1,0,40,0) 48%);}
  .hero4__content{flex-direction:column;align-items:center;justify-content:flex-start;gap:0;text-align:center;
    padding-top:clamp(16px,1.6vw,30px);padding-bottom:0;}
  .hero4__kicker{display:inline-flex;align-items:center;gap:10px;margin:0 0 10px;font-family:var(--font-head);font-size:12px;font-weight:700;letter-spacing:.22em;color:var(--grad-2);}
  .hero4__kicker::before,.hero4__kicker::after{content:"";width:28px;height:1px;background:currentColor;opacity:.7;}
  .hero4__title{max-width:none;font-size:clamp(1.75rem,1rem + 1.7vw,2.75rem);font-weight:700;letter-spacing:.005em;line-height:1.08;text-shadow:0 2px 18px rgba(1,0,40,.35);}
  .hero4__side{flex:none;max-width:560px;margin-top:16px;}
  .hero4__side p{margin:0 auto 16px;max-width:520px;font-size:14px;line-height:1.6;letter-spacing:.03em;color:rgba(var(--white-rgb),.9);}
  .hero4__actions{justify-content:center;gap:12px;}
  .hero4__btn{height:46px;padding:0 26px;border-radius:0;}
  /* The outline button may sit over stone on some widths: give it a smoked-glass fill. */
  .hero4__btn--line{background:rgba(1,0,40,.38);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-color:rgba(var(--white-rgb),.85);}
  /* When the frame is cropped (very wide screens), keep the sky and trim the hedge. */
  .hero4__media img{object-position:50% 100%;}
}
@media (min-width:761px) and (max-width:1199px){
  .hero4__content{padding-top:28px;}
  .hero4__kicker{margin-bottom:10px;}
  .hero4__title{font-size:clamp(1.75rem,1rem + 2vw,2.25rem);}
  .hero4__side{margin-top:10px;}
  .hero4__side p{font-size:13px;margin-bottom:16px;}
  .hero4__btn{height:42px;padding:0 20px;font-size:12.5px;}
}
@media (max-width:760px){.hero4__kicker{display:none;}}
@media (max-width:760px){
  /* Phones, app-style: the portrait photo as a full-bleed screen, text straight on the
     sky (no card), short copy, two equal buttons side by side. */
  .hero4{padding:0;}
  .hero4__frame{border-radius:0;min-height:clamp(420px,112vw,570px);align-items:flex-start;}
  .hero4__media img{object-position:50% 100%;}
  .hero4__frame::after{background:linear-gradient(to bottom,rgba(0,0,22,.5) 0%,rgba(0,0,22,.22) 30%,rgba(0,0,22,0) 50%);}
  /* Text keeps at least 28px from the screen edges (house rule). */
  /* Content fills the frame height: headline and text at the top in the sky,
     buttons pinned to the bottom over the hedge. */
  /* Headline sits in the middle of the open sky, not against the top edge. */
  /* Headline starts 20% of the frame's height lower than before (frame is ~112vw tall). */
  .hero4__content{padding:calc(clamp(28px,8vw,48px) + 22vw) 28px 24px;gap:10px;flex-direction:column;align-items:flex-start;align-self:stretch;}
  .hero4__frame::after{background:linear-gradient(to bottom,rgba(0,0,22,.3) 0%,rgba(0,0,22,.42) 34%,rgba(0,0,22,.38) 52%,rgba(0,0,22,.1) 66%,rgba(0,0,22,0) 74%);}
  .hero4__side{display:flex;flex-direction:column;flex:1 1 auto;}
  .hero4__actions{margin-top:auto;width:auto;gap:8px;}
  .hero4__actions .hero4__btn{flex:0 0 auto;height:36px;padding:0 16px;border-radius:0;font-size:11px;letter-spacing:.04em;}
  .hero4__frame::before{content:"";position:absolute;left:0;right:0;bottom:0;height:22%;z-index:1;pointer-events:none;
    background:linear-gradient(to top,rgba(0,0,22,.45),rgba(0,0,22,0));}
  .hero4__content{z-index:2;}
  /* Sized so each half of the headline fits on one line down to 360px screens. */
  /* Client: headline twice the previous phone size. It now wraps, so each half may take two lines. */
  .hero4__title{font-size:clamp(1.4rem,6.86vw,2.275rem);font-weight:700;line-height:1.06;letter-spacing:0;}
  .hero4__side{max-width:none;width:100%;}
  .hero4__side p{font-size:12.5px;line-height:1.5;margin-bottom:16px;max-width:300px;letter-spacing:.02em;}
  .hero4__actions{flex-wrap:nowrap;gap:10px;}
  .hero4__btn{flex:1 1 0;justify-content:center;height:44px;padding:0 10px;border-radius:0;font-size:12px;white-space:nowrap;}
}

/* HOME HERO (client photograph, used unaltered) ------------------------------ */
.hero3{position:relative;overflow:hidden;background:#3c8fe6;}
.hero3__media{position:absolute;inset:0;}
.hero3__media img{width:100%;height:100%;object-fit:cover;object-position:50% 100%;}
/* Desktop: the hero takes the photo's own proportions (1832 x 859), so nothing is cropped
   and the wide, short text panel sits in the sky above the stones. */
.hero3__inner{position:relative;display:flex;align-items:flex-start;min-height:max(540px,calc(100vw * 859 / 1832));padding-top:clamp(28px,3.4vw,56px);padding-bottom:40px;}
/* Frosted panel over the sky: the photo shows through, the text keeps full contrast */
.hero3__panel{max-width:780px;padding:28px 34px 24px;border-radius:0;background:rgba(var(--white-rgb),.82);
  -webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);
  border:1px solid rgba(var(--white-rgb),.7);box-shadow:0 24px 60px rgba(var(--primary-rgb),.18);}
.hero3__kicker{display:inline-flex;align-items:center;gap:10px;margin:0 0 18px;padding:5px 14px 5px 5px;border-radius:var(--radius-pill);background:var(--white);
  font-family:var(--font-head);font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--muted);box-shadow:0 2px 8px rgba(var(--primary-rgb),.08);}
.hero3__kicker span{padding:5px 12px;border-radius:var(--radius-pill);background:var(--primary);color:var(--grad-2);}
.hero3 h1{margin:0 0 12px;font-size:clamp(1.75rem,1.1rem + 1.5vw,2.5rem);line-height:1.08;color:var(--primary);}
.hero3__kicker{margin-bottom:14px;}
.hero3 h1 .hl{display:block;color:var(--accent-strong);}
.hero3__lead{margin:0;font-size:clamp(15px,1.1vw,16.5px);color:var(--ink);}
.hero3 .btn-row{margin-top:20px;align-items:center;}
.hero3__from{display:flex;flex-direction:column;justify-content:center;margin-left:10px;padding-left:20px;border-left:1px solid rgba(var(--primary-rgb),.18);color:var(--primary);line-height:1.15;}
.hero3__from small{font-family:var(--font-head);font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--muted);}
.hero3__from strong{font-family:var(--font-head);font-size:1.375rem;font-weight:700;}
.hero3__from:hover strong{color:var(--accent-strong);}
/* Wide screens: compact panel over the sky; the kicker is dropped so the panel ends above the stones. */
@media (min-width:1400px){
  .hero3__kicker{display:none;}
  .hero3__panel{max-width:880px;padding-top:24px;padding-bottom:22px;}
  .hero3__lead{white-space:nowrap;}
}
/* Laptops and tablets: the photo would be covered, so it shows in full and the text sits below it. */
@media (min-width:761px) and (max-width:1399px){
  .hero3{background:var(--bg-alt);}
  .hero3__media{position:relative;display:block;}
  .hero3__media img{height:auto;aspect-ratio:1832/859;}
  .hero3__inner{min-height:0;padding-top:0;padding-bottom:var(--section-y-sm);}
  .hero3__panel{max-width:none;width:100%;margin-top:-56px;background:var(--white);-webkit-backdrop-filter:none;backdrop-filter:none;}
}
@media (max-width:760px){
  /* Portrait photo: tall sky on top, stones at the bottom; panel sits in the sky. */
  .hero3__inner{min-height:clamp(620px,165vw,820px);padding-top:22px;}
  .hero3__panel{padding:22px 20px 20px;border-radius:0;}
  .hero3 .btn-row .btn{flex:1 1 auto;}
  .hero3__from{margin:6px 0 0;padding-left:0;border-left:0;flex-direction:row;align-items:baseline;gap:8px;}
}

/* HEADER (three tiers) ------------------------------------------------------
   .mh-top   navy utility bar with a Gradient 2 hairline
   .mh-brand white brand row: logo, contact blocks, actions (sticky on phones)
   .mh-bar   navy navigation bar, sticky on desktop, with dropdowns and mega menu */
.mh-top{position:relative;background:var(--primary-dark);color:rgba(var(--white-rgb),.82);font-family:var(--font-head);font-size:12px;font-weight:600;letter-spacing:.04em;}
.mh-top .container{display:flex;align-items:stretch;justify-content:space-between;gap:20px;min-height:var(--mh-top-h);}
.mh-perks,.mh-util{display:flex;align-items:center;list-style:none;margin:0;padding:0;}
.mh-perks{gap:26px;}
.mh-perks li,.mh-util li{display:flex;align-items:center;gap:8px;margin:0;white-space:nowrap;}
.mh-perks .icon{width:15px;height:15px;color:var(--grad-2);}
.mh-util li+li{margin-left:18px;padding-left:18px;border-left:1px solid rgba(var(--white-rgb),.15);}
.mh-util .icon{width:14px;height:14px;color:var(--accent-light);}
.mh-util a{color:inherit;}
.mh-util a:hover{color:var(--grad-2);}
.mh-util .mh-util__social{margin-left:6px;padding-left:0;border-left:0;}
.mh-util .mh-util__email+.mh-util__social{margin-left:18px;padding-left:18px;border-left:1px solid rgba(var(--white-rgb),.15);}
.mh-util__social a{display:flex;width:28px;height:28px;border-radius:50%;align-items:center;justify-content:center;background:rgba(var(--white-rgb),.08);}
.mh-util__social a:hover{background:var(--grad-2);color:var(--primary);}
.mh-util__social .icon{color:currentColor;width:13px;height:13px;}

/* Top bar, client reference: navy on the left, an olive panel with a slanted edge on
   the right (behind hours, email and social), and two pennants hanging into the brand row. */
:root{--mh-top-h:42px;}
.mh-top{z-index:1;overflow:hidden;background:var(--primary);}
.mh-perks{align-self:center;}
.mh-util{position:relative;isolation:isolate;align-self:stretch;padding-left:44px;color:var(--primary);}
.mh-util::before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:0;width:100vw;background:var(--accent);
  clip-path:polygon(24px 0,100% 0,100% 100%,0 100%);}
.mh-util .icon{color:var(--primary);}
.mh-util a{color:var(--primary);}
.mh-util a:hover{color:var(--white);}
.mh-util li+li,.mh-util .mh-util__email+.mh-util__social{border-left-color:rgba(var(--primary-rgb),.22);}
.mh-util__social a{background:var(--primary);color:var(--white);}
.mh-util__social a:hover{background:var(--white);color:var(--primary);}
.mh-util__social .icon{color:currentColor;}

.mh-brand{position:relative;z-index:2;}
.mh-brand .container{position:relative;}
.mh-ribbons{position:absolute;top:calc(var(--mh-top-h) * -1);right:var(--pad-x);display:flex;gap:2px;pointer-events:none;}
.mh-ribbons i{display:block;width:34px;clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),50% 100%,0 calc(100% - 16px));
  filter:drop-shadow(0 6px 8px rgba(var(--primary-rgb),.18));}
.mh-ribbons i:first-child{height:calc(var(--mh-top-h) + 50px);background:var(--primary);}
.mh-ribbons i:last-child{height:calc(var(--mh-top-h) + 72px);background:var(--accent);}
/* Keep the pennants' column clear in both rows. */
.mh-actions,.mh-util{margin-right:96px;}
/* With the pennants' column reserved, the email (top bar) and branch count (brand row) no
   longer fit; both are still in the footer, on Contact and under Branches in the menu. */
.mh-util__email,.mh-info li:nth-child(3){display:none!important;}
@media (max-width:980px){
  .mh-ribbons{display:none;}
  .mh-actions,.mh-util{margin-right:0;}
}
@media (max-width:640px){
  /* Phones: perks on navy, a short olive slant closing the bar on the right */
  .mh-top .container{justify-content:flex-start;}
  .mh-top::after{content:"";position:absolute;top:0;bottom:0;right:0;width:18%;background:var(--accent);clip-path:polygon(18px 0,100% 0,100% 100%,0 100%);}
}

.mh-brand{background:var(--bg);border-bottom:1px solid var(--line);}
.mh-brand .container{display:flex;align-items:center;gap:28px;min-height:92px;padding-top:12px;padding-bottom:12px;}
.mh-logo img{height:clamp(72px,6.6vw,104px);}
.mh-info{display:flex;align-items:center;list-style:none;margin:0 auto;padding:0;}
.mh-info li{margin:0;}
.mh-info li+li{margin-left:26px;padding-left:26px;border-left:1px solid var(--line);}
.mh-info a{display:flex;align-items:center;gap:12px;color:var(--ink);}
.mh-info__icon{display:flex;flex:none;width:46px;height:46px;border-radius:50%;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent-strong);transition:background .2s,color .2s;}
.mh-info__icon--wa{background:#E3F6EA;color:#1FAF55;}
.mh-info a:hover .mh-info__icon{background:var(--accent-strong);color:var(--white);}
.mh-info a:hover .mh-info__icon--wa{background:#1FAF55;}
.mh-info .icon{width:20px;height:20px;}
.mh-info small{display:block;font-family:var(--font-head);font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--mauve);}
.mh-info strong{display:block;font-family:var(--font-head);font-size:15px;font-weight:800;line-height:1.25;color:var(--primary);white-space:nowrap;}
.mh-info li+li{margin-left:20px;padding-left:20px;}
.mh-actions{display:flex;align-items:center;gap:10px;flex:none;}
.mh-actions .btn{height:46px;}
.mh-actions__cat{padding:0 20px;}
.mh-actions__call{display:none;}
.mh-toggle{display:none;}

.mh-bar{position:sticky;top:0;z-index:60;background:var(--primary);box-shadow:0 10px 30px rgba(var(--primary-rgb),.18);}
.admin-bar .mh-bar{top:32px;}
.mh-bar__inner{display:flex;align-items:stretch;min-height:58px;}
.mh-bar__logo{display:flex;align-items:center;width:0;overflow:hidden;opacity:0;transition:width .25s,opacity .25s,margin .25s;}
.mh-bar__logo img{width:40px;height:40px;padding:4px;border-radius:50%;background:var(--white);object-fit:contain;}
.mh-bar.is-stuck .mh-bar__logo{width:40px;margin-right:18px;opacity:1;}
@media (min-width:981px){.mh-nav{margin-left:-14px;}.mh-bar.is-stuck .mh-nav{margin-left:0;}}
.mh-panel{flex:1;display:flex;}
.mh-panel__head,.mh-panel__foot,.mh-backdrop{display:none;}
.mh-nav{display:flex;align-items:stretch;list-style:none;margin:0;padding:0;}
.mh-nav__item{position:relative;display:flex;align-items:center;margin:0;}
.mh-nav__item.has-sub--mega{position:static;}
.mh-nav__link{position:relative;display:flex;align-items:center;height:100%;padding:0 14px;font-family:var(--font-head);font-size:13px;font-weight:700;letter-spacing:.06em;color:rgba(var(--white-rgb),.92);}
.mh-nav__item.has-sub .mh-nav__link{padding-right:4px;}
.mh-nav__link::after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:3px;border-radius:0;background:var(--grad-2);transform:scaleX(0);transition:transform .2s;}
.mh-nav__item.has-sub .mh-nav__link::after{right:0;}
.mh-nav__link:hover,.mh-nav__item:hover>.mh-nav__link{color:var(--grad-2);}
.mh-nav__link.is-active{color:var(--white);}
.mh-nav__link.is-active::after,.mh-nav__item:hover>.mh-nav__link::after{transform:scaleX(1);}
.mh-nav__toggle{display:flex;align-items:center;justify-content:center;width:24px;height:100%;padding:0 8px 0 2px;border:0;background:none;color:rgba(var(--white-rgb),.7);cursor:pointer;}
.mh-nav__toggle .icon{width:14px;height:14px;transition:transform .2s;}
.mh-nav__item:hover .mh-nav__toggle .icon,.mh-nav__item.is-open .mh-nav__toggle .icon{transform:rotate(180deg);color:var(--grad-2);}

/* Dropdown panels */
.mh-sub{position:absolute;top:100%;left:0;z-index:5;min-width:320px;padding:12px;border-radius:0;background:var(--white);
  box-shadow:0 24px 50px rgba(var(--primary-rgb),.22);border-top:3px solid var(--grad-2);
  opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .18s,transform .18s,visibility 0s linear .18s;}
.mh-nav__item:hover>.mh-sub,.mh-nav__item:focus-within>.mh-sub,.mh-nav__item.is-open>.mh-sub{opacity:1;visibility:visible;transform:none;transition:opacity .18s,transform .18s;}
.mh-sub ul{list-style:none;margin:0;padding:0;}
.mh-sub li{margin:0;}
.mh-sub--list a,.mh-sub--branches a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:0;color:var(--ink);}
.mh-sub--list a:hover,.mh-sub--branches a:hover{background:var(--bg-alt);}
.mh-sub__icon{display:flex;flex:none;width:38px;height:38px;border-radius:50%;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent-strong);}
.mh-sub a:hover .mh-sub__icon{background:var(--accent-strong);color:var(--white);}
.mh-sub__icon .icon{width:18px;height:18px;}
.mh-sub strong{display:block;font-family:var(--font-head);font-size:13.5px;font-weight:700;line-height:1.3;}
.mh-sub small{display:block;font-size:12px;color:var(--muted);line-height:1.35;}
.mh-sub--branches{min-width:520px;}
.mh-sub--branches ul{display:grid;grid-template-columns:1fr 1fr;gap:2px;}
.mh-sub__all{display:flex;align-items:center;justify-content:space-between;margin:8px 4px 2px;padding:12px 14px;border-radius:0;background:var(--primary);color:var(--white);font-family:var(--font-head);font-size:13px;font-weight:700;}
.mh-sub--branches .mh-sub__all{color:var(--white);}
.mh-sub--branches .mh-sub__all:hover{background:var(--accent-strong);color:var(--white);}
@media (max-width:1460px) and (min-width:1281px){.mh-info li:nth-child(3){display:none;}}
.mh-sub__all .icon{width:16px;height:16px;}

/* Tombstones mega menu */
.mh-sub--mega{left:0;right:0;padding:0;border-radius:0;}
.mh-mega{display:grid;grid-template-columns:290px 1fr 280px;gap:32px;padding-top:28px;padding-bottom:28px;}
.mh-mega__cats a{white-space:nowrap;}
.mh-mega__title{margin:0 0 14px;font-family:var(--font-head);font-size:11.5px;font-weight:800;letter-spacing:.1em;color:var(--mauve);}
.mh-mega__cats a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:0;font-family:var(--font-head);font-size:13.5px;font-weight:700;color:var(--ink);}
.mh-mega__cats a:hover{background:var(--accent-soft);color:var(--accent-dark);}
.mh-mega__cats .icon{width:18px;height:18px;color:var(--accent-strong);}
.mh-mega__cats span{margin-left:auto;padding:2px 9px;border-radius:var(--radius-pill);background:var(--bg-alt);font-size:11.5px;color:var(--muted);}
.mh-mega__products ul{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.mh-mega__products a{display:flex;flex-direction:column;height:100%;padding:10px;border:1px solid var(--line);border-radius:0;color:var(--ink);transition:box-shadow .2s,border-color .2s;}
.mh-mega__products a:hover{border-color:transparent;box-shadow:var(--shadow);}
.mh-mega__img{display:block;margin-bottom:10px;border-radius:0;background:#fff;}
.mh-mega__img img{width:100%;aspect-ratio:1;object-fit:contain;}
.mh-mega__products strong{font-size:14px;}
.mh-mega__price{font-family:var(--font-head);font-size:13px;font-weight:800;color:var(--primary);}
.mh-mega__price del{font-weight:500;color:var(--muted);margin-right:4px;}
.mh-mega__price ins{text-decoration:none;}
.mh-mega__promo{display:flex;flex-direction:column;justify-content:flex-end;gap:12px;padding:24px;border-radius:0;color:var(--primary);
  background:linear-gradient(160deg,var(--grad-1) 0%,var(--grad-2) 45%,var(--grad-3) 100%);}
.mh-mega__promo-kicker{margin:0;font-family:var(--font-head);font-size:11.5px;font-weight:800;letter-spacing:.1em;}
.mh-mega__promo-title{margin:0 0 auto;font-family:var(--font-head);font-size:1.25rem;font-weight:800;line-height:1.2;}
.mh-mega__promo .btn{background:var(--white);border-color:var(--white);color:var(--grad-3);}
.mh-mega__promo .btn:hover{background:var(--primary);border-color:var(--primary);color:var(--white);}
.mh-mega__dl{display:flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-head);font-size:12.5px;font-weight:700;color:var(--white);}
.mh-mega__dl .icon{width:15px;height:15px;}

/* Bar tools: search and the quote button that appears once the brand row has scrolled away */
.mh-bar__tools{display:flex;align-items:center;gap:10px;margin-left:auto;}
.mh-search-btn{display:flex;width:40px;height:40px;border:0;border-radius:50%;align-items:center;justify-content:center;background:rgba(var(--white-rgb),.1);color:var(--white);cursor:pointer;}
.mh-search-btn:hover,.mh-search-btn[aria-expanded="true"]{background:var(--grad-2);color:var(--primary);}
.mh-search-btn .icon{width:18px;height:18px;}
.mh-bar__quote{display:none;align-items:center;height:38px;padding:0 18px;border-radius:var(--radius-pill);background:var(--grad-2);color:var(--primary);font-family:var(--font-head);font-size:12.5px;font-weight:800;letter-spacing:.04em;}
.mh-bar__quote:hover{background:var(--white);color:var(--primary);}
.mh-bar.is-stuck .mh-bar__quote{display:flex;}
.mh-search{position:absolute;left:0;right:0;top:100%;background:var(--white);box-shadow:0 24px 40px rgba(var(--primary-rgb),.18);border-top:3px solid var(--grad-2);}
.mh-search form{display:flex;align-items:center;gap:12px;padding-top:16px;padding-bottom:16px;}
.mh-search form>.icon{width:22px;height:22px;color:var(--accent-strong);}
.mh-search input[type="search"]{flex:1;min-width:0;height:48px;border:0;font-family:var(--font-body);font-size:17px;color:var(--ink);background:none;}
.mh-search input[type="search"]:focus{outline:none;}
.mh-bar :focus-visible{outline-color:var(--grad-2);}

@media (max-width:1280px){
  .mh-info li:nth-child(3){display:none;}
  .mh-nav__link{padding:0 10px;font-size:12.5px;letter-spacing:.04em;}
  .mh-nav__link::after{left:10px;right:10px;}
  .mh-util__email{display:none!important;}
  .mh-mega{grid-template-columns:220px 1fr 240px;gap:24px;}
}
@media (max-width:1100px){
  .mh-info{display:none;}
  .mh-actions{margin-left:auto;}
  .mh-perks li:nth-child(3){display:none;}
}
@media (max-width:980px){
  /* Phones and tablets: the brand row sticks; the navigation becomes a slide-in panel. */
  .mh-util__hours{display:none!important;}
  .mh-brand{position:sticky;top:0;z-index:60;}
  .admin-bar .mh-brand{top:46px;}
  .mh-brand .container{min-height:80px;gap:12px;}
  .mh-logo img{height:76px;}
  .mh-actions__cat,.mh-actions__quote{display:none;}
  .mh-actions__call{display:flex;width:44px;height:44px;border-radius:50%;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent-strong);}
  .mh-actions__call .icon{width:20px;height:20px;}
  .mh-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0 11px;border:0;border-radius:50%;background:var(--primary);cursor:pointer;}
  .mh-toggle span{display:block;height:2px;border-radius:2px;background:var(--white);}
  .mh-toggle span:nth-child(2){width:70%;background:var(--grad-2);}
  .mh-bar{position:static;background:none;box-shadow:none;}
  .mh-bar__inner{min-height:0;}
  .mh-bar__logo,.mh-bar__tools,.mh-search{display:none!important;}
  .mh-panel{position:fixed;top:0;left:0;bottom:0;z-index:80;flex-direction:column;width:min(86vw,340px);padding:18px 0 20px 16px;overflow-y:auto;
    background:linear-gradient(180deg,var(--primary) 0%,var(--primary-dark) 100%);border-radius:0;box-shadow:0 0 60px rgba(var(--primary-rgb),.35);
    transform:translateX(-105%);visibility:hidden;transition:transform .28s ease,visibility 0s linear .28s;}
  .mh-panel.is-open{transform:none;visibility:visible;transition:transform .28s ease;}
  .mh-backdrop{display:block;position:fixed;inset:0;z-index:70;background:rgba(var(--white-rgb),.7);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity .28s,visibility 0s linear .28s;}
  .mh-panel.is-open+.mh-backdrop{opacity:1;visibility:visible;transition:opacity .28s;}
  html.menu-open{overflow:hidden;}
  .mh-panel__head{display:flex;align-items:center;justify-content:space-between;padding-right:16px;}
  .mh-panel__logo{padding:6px 10px;border-radius:0;background:var(--white);}
  .mh-panel__logo img{height:40px;}
  .mh-panel__close{display:flex;width:40px;height:40px;border:0;border-radius:50%;align-items:center;justify-content:center;background:rgba(var(--white-rgb),.14);color:var(--white);cursor:pointer;}
  .mh-panel__close .icon{width:18px;height:18px;}
  .mh-nav{flex-direction:column;align-items:stretch;gap:6px;margin:22px 16px 22px 0;}
  .mh-nav__item,.mh-nav__item.has-sub--mega{position:relative;flex-wrap:wrap;border-radius:0;background:rgba(var(--white-rgb),.07);}
  .mh-nav__link{flex:1;height:48px;padding:0 16px;font-size:13.5px;}
  .mh-nav__link::after{display:none;}
  .mh-nav__link.is-active{color:var(--grad-2);}
  .mh-nav__toggle{width:48px;height:48px;padding:0;}
  .mh-nav__item:hover .mh-nav__toggle .icon{transform:none;color:inherit;}
  .mh-nav__item.is-open .mh-nav__toggle .icon{transform:rotate(180deg);color:var(--grad-2);}
  .mh-sub,.mh-sub--branches,.mh-sub--mega{position:static;display:none;width:100%;min-width:0;padding:4px 8px 10px;border:0;border-radius:0;background:none;box-shadow:none;opacity:1;visibility:visible;transform:none;}
  .mh-nav__item:hover>.mh-sub,.mh-nav__item:focus-within>.mh-sub{display:none;}
  .mh-nav__item.is-open>.mh-sub{display:block;}
  .mh-sub--list a,.mh-sub--branches a{padding:8px;color:var(--white);}
  .mh-sub--list a:hover,.mh-sub--branches a:hover{background:rgba(var(--white-rgb),.08);}
  .mh-sub__icon{width:32px;height:32px;background:rgba(var(--white-rgb),.1);color:var(--grad-2);}
  .mh-sub small{color:rgba(var(--white-rgb),.6);}
  .mh-sub--branches ul{grid-template-columns:1fr;}
  .mh-sub__all{margin:6px 0 0;background:rgba(var(--white-rgb),.12);}
  .mh-mega{display:block;padding:0;}
  .mh-mega__products,.mh-mega__promo,.mh-mega__title{display:none;}
  .mh-mega__cats a{color:var(--white);padding:9px 8px;}
  .mh-mega__cats a:hover{background:rgba(var(--white-rgb),.08);color:var(--white);}
  .mh-mega__cats .icon{color:var(--grad-2);}
  .mh-mega__cats span{background:rgba(var(--white-rgb),.12);color:rgba(var(--white-rgb),.8);}
  .mh-panel__foot{display:flex;flex-direction:column;gap:10px;margin-top:auto;padding-right:16px;}
  .mh-panel__foot p{display:flex;align-items:center;gap:8px;margin:4px 0 0;font-size:12.5px;color:rgba(var(--white-rgb),.75);}
  .mh-panel__foot .icon{width:15px;height:15px;color:var(--grad-2);}
}
@media (max-width:640px){
  .mh-perks{gap:14px;font-size:10.5px;}
  .mh-util{display:none;}
  .mh-top .container{justify-content:center;}
}
@media (max-width:420px){
  .mh-perks li:nth-child(2){display:none;}
}

/* Footer (client reference): white body, five columns, dark legal bar */
.site-footer{background:var(--bg);color:var(--text);border-top:1px solid var(--line);}
.site-footer>.container{padding-top:clamp(48px,7vh,72px);padding-bottom:clamp(40px,6vh,60px);}
.sf-grid{display:grid;grid-template-columns:1.3fr .8fr .85fr 1.45fr 1.05fr;gap:32px;align-items:start;}
.sf-name{margin:0;font-family:var(--font-head);font-size:clamp(1.375rem,1.1rem + .9vw,1.875rem);font-weight:800;line-height:1.1;color:var(--primary);letter-spacing:-.005em;}
.sf-slogan{margin:4px 0 0;font-family:var(--font-head);font-size:15px;font-weight:700;color:var(--accent-strong);}
.sf-about-title{margin:44px 0 10px;font-size:1.125rem;color:var(--ink);}
.sf-about{margin:0;font-size:13px;line-height:1.6;color:var(--muted);max-width:300px;}
.sf-col h2,.sf-follow-title{margin:0 0 20px;font-size:1.125rem;color:var(--ink);}
.sf-list{list-style:none;margin:0;padding:0;}
.sf-list li{position:relative;margin:0 0 10px;padding-left:16px;}
.sf-list li::before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:#C9C8D3;}
.sf-list a{font-family:var(--font-head);font-size:13.5px;font-weight:600;color:var(--ink);}
.sf-list a:hover{color:var(--accent-strong);}
.sf-list li:hover::before{background:var(--accent-strong);}
.sf-contact dl{margin:0;}
.sf-contact dt{font-family:var(--font-head);font-size:14px;font-weight:700;color:var(--ink);}
.sf-contact dd{margin:0 0 14px;font-size:13px;}
.sf-contact dd a{color:var(--text);}
.sf-contact dd a[href^="mailto:"]{white-space:nowrap;font-size:12.5px;}
@media (max-width:1100px){.sf-contact dd a[href^="mailto:"]{white-space:normal;overflow-wrap:anywhere;}}
.sf-contact dd a:hover{color:var(--accent-strong);}
.sf-bar{display:inline-flex;align-items:center;height:30px;padding:0 18px;border-radius:2px;background:var(--accent-strong);color:var(--white);font-family:var(--font-head);font-size:11.5px;font-weight:700;letter-spacing:.06em;}
.sf-bar:hover{background:var(--primary);color:var(--white);}
.sf-signup{display:flex;height:36px;margin-bottom:22px;}
.sf-signup input{flex:1;min-width:0;height:100%;padding:0 12px;border:0;border-radius:0;background:#F1F1F3;font-family:var(--font-body);font-size:13px;color:var(--ink);}
.sf-signup input:focus{outline:2px solid var(--accent-strong);outline-offset:0;}
.sf-signup button{display:flex;flex:none;width:36px;height:100%;border:0;border-radius:0;align-items:center;justify-content:center;background:var(--accent-strong);color:var(--white);cursor:pointer;}
.sf-signup button:hover{background:var(--primary);}
.sf-signup button .icon{width:16px;height:16px;}
.sf-signup-note{margin:-12px 0 16px;font-size:12.5px;font-weight:600;}
.sf-signup-note--success{color:var(--accent-strong);}
.sf-signup-note--error{color:#9B1C1C;}
.sf-social{display:flex;gap:10px;list-style:none;margin:0 0 16px;padding:0;}
.sf-social li{margin:0;}
.sf-social a{display:flex;width:34px;height:34px;border:1.5px solid #B9B8C4;border-radius:50%;align-items:center;justify-content:center;color:var(--ink);transition:background .18s,border-color .18s,color .18s;}
.sf-social li:first-child a,.sf-social a:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--white);}
.sf-social .icon{width:15px;height:15px;}
.sf-follow-title{margin-bottom:16px;}
.sf-bottom{background:var(--primary-dark);color:rgba(var(--white-rgb),.75);}
.sf-bottom .container{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px;padding-top:20px;padding-bottom:20px;font-size:12.5px;}
.sf-legal{display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0;}
.sf-legal li{margin:0;display:flex;align-items:center;}
.sf-legal li+li::before{content:"";width:1px;height:12px;margin:0 22px;background:var(--accent);}
.sf-legal a{color:rgba(var(--white-rgb),.85);font-family:var(--font-head);font-weight:600;}
.sf-legal a:hover{color:var(--accent-light);}
.sf-copy{margin:0;}
.site-footer :focus-visible{outline-color:var(--accent-strong);}
.sf-bottom :focus-visible{outline-color:var(--white);}
@media (max-width:1100px){
  .sf-grid{grid-template-columns:1fr 1fr 1fr;row-gap:40px;}
  .sf-brand{grid-column:1 / -1;}
  .sf-about-title{margin-top:24px;}
  .sf-about{max-width:560px;}
  .sf-follow{grid-column:1 / -1;max-width:420px;}
}
@media (max-width:640px){
  .sf-grid{grid-template-columns:1fr 1fr;gap:32px 20px;}
  .sf-contact{grid-column:1 / -1;}
  .sf-bottom .container{flex-direction:column;align-items:flex-start;}
  .sf-legal li+li::before{margin:0 12px;}
}

/* 10. RESPONSIVE --------------------------------------------------------- */
@media (max-width:1280px){
  .nav a{padding:12px 9px;font-size:14px;}
  .nav a::after{left:9px;right:9px;}
  .nav-call__text{display:none;}
  .branch-grid{grid-template-columns:repeat(3,1fr);}
  .branch-card--factory{grid-column:1 / -1;min-height:180px;}
}
@media (max-width:1100px){
  .topbar .tb-hours{display:none;}
  .product-grid{grid-template-columns:repeat(3,1fr);}
  .card-grid>.col-4{width:50%;}
  .steps{grid-template-columns:repeat(2,1fr);}
  .gallery-strip{grid-template-columns:repeat(3,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;gap:36px;}
  .cta-flex{flex-wrap:wrap;gap:22px;}
  .cta-head{flex:1 1 100%;}
  .cta-text{padding-left:0;border-left:0;}
  /* Stacked: run the gradient top to bottom, like the swatch, so the buttons land on the teal. */
  .cta-strip{background:linear-gradient(180deg,var(--grad-1) 0%,var(--grad-2) 38%,var(--grad-3) 78%);}
  .intro-badge{right:12px;}
}
@media (max-width:980px){
  :root{--pad-x:24px;--btn-h:44px;}
  .navbar .container{min-height:72px;gap:12px;}
  .brandmark img{height:54px;}
  .nav-toggle{display:flex;}
  .nav-call{display:none;}
  /* Full-height menu window that slides in from the left */
  .nav-panel{display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:80;width:min(80vw,300px);padding:16px 0 18px 14px;overflow-y:auto;
    background:linear-gradient(180deg,var(--primary) 0%,var(--primary-dark) 100%);border-radius:0;box-shadow:0 0 60px rgba(var(--primary-rgb),.35);
    transform:translateX(-105%);visibility:hidden;transition:transform .28s ease,visibility 0s linear .28s;}
  .nav-panel.is-open{transform:none;visibility:visible;transition:transform .28s ease;}
  .nav-backdrop{display:block;position:fixed;inset:0;z-index:70;background:rgba(var(--white-rgb),.7);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
    opacity:0;visibility:hidden;transition:opacity .28s ease,visibility 0s linear .28s;}
  .nav-panel.is-open+.nav-backdrop{opacity:1;visibility:visible;transition:opacity .28s ease;}
  html.menu-open{overflow:hidden;}
  .nav-panel-head{display:flex;align-items:center;justify-content:space-between;padding-right:14px;}
  .nav-panel-title{font-family:var(--font-head);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(var(--white-rgb),.6);padding-left:6px;}
  .nav-close{display:flex;width:40px;height:40px;border:0;border-radius:50%;padding:0;cursor:pointer;background:rgba(var(--white-rgb),.14);color:var(--white);align-items:center;justify-content:center;}
  .nav-close .icon{width:18px;height:18px;}
  .nav{flex-direction:column;align-items:stretch;gap:8px;margin:20px 0;}
  .nav a{display:flex;align-items:center;gap:12px;height:46px;padding:0 16px;margin-right:26px;border-radius:var(--radius-pill);background:rgba(var(--white-rgb),.08);color:var(--white);font-size:14.5px;}
  .nav a:hover{color:var(--white);background:rgba(var(--white-rgb),.14);}
  .nav a .icon{display:block;width:18px;height:18px;}
  .nav a::after{display:none;}
  .nav a.is-active{margin-right:0;border-radius:0;background:var(--bg);color:var(--ink);}
  .nav-panel-foot{display:block;margin-top:auto;padding:0 14px 0 0;}
  .nav-panel-foot ul{list-style:none;margin:10px 0 0;padding:0;}
  .nav-panel-foot li{display:flex;align-items:center;gap:10px;margin:0;color:var(--accent-light);}
  .nav-panel-foot li .icon{width:15px;height:15px;}
  .nav-panel-foot li a{display:block;padding:10px 0;color:rgba(var(--white-rgb),.9);font-family:var(--font-head);font-size:13px;}
  .nav-cta{gap:8px;}
  .col-5,.col-7{width:100%;}
  .col--pl{padding-left:var(--gutter);}
  .grid>.col:not(:last-child){margin-bottom:48px;}
  .intro-media{max-width:560px;}
  .head-row--split{flex-direction:column;align-items:flex-start;gap:20px;}
  .hero-inner{padding:96px 0 104px;max-width:none;}
  .hero-media::after{background:linear-gradient(90deg,rgba(var(--primary-rgb),.92) 0%,rgba(var(--primary-rgb),.75) 60%,rgba(var(--primary-rgb),.35) 100%);}
  .hero-proof{margin-top:-34px;}
  .hero-panel{max-width:none;}
  .hero-panel li{justify-content:center;padding:16px 12px;font-size:13.5px;}
  .hero-panel .icon{width:34px;height:34px;padding:7px;}
  .facts{grid-template-columns:repeat(2,1fr);}
  .facts li:nth-child(3){border-left:0;}
  .facts li:nth-child(n+3){border-top:1px solid var(--line);}
  .branch-grid{grid-template-columns:repeat(2,1fr);}
  .post-grid{grid-template-columns:1fr 1fr;}
  .post-grid .post-card:nth-child(3){display:none;}
}
@media (max-width:760px){
  .topbar .tb-email{display:none;}
  .product-grid{grid-template-columns:repeat(2,1fr);gap:14px;}
  .hero p{font-size:14.5px;}
}
@media (max-width:640px){
  body{font-size:.9375rem;line-height:1.6;}
  .topbar .container{justify-content:center;}
  .topbar-social{display:none;}
  .section-head{margin-bottom:28px;}
  .hero-inner{padding:56px 0 60px;}
  .hero-proof{margin-top:-24px;}
  .hero-panel li{flex-direction:column;gap:6px;padding:12px 6px;font-size:11.5px;text-align:center;}
  .branch-card--factory{flex-direction:column;align-items:flex-start;}
  .nav-cta .btn{display:none;}
  .card-grid>.col-4{width:100%;}
  .steps{grid-template-columns:1fr;gap:14px;}
  .step{padding:22px 20px;}
  .branch-grid{grid-template-columns:1fr;}
  .branch-card--factory{grid-column:auto;}
  .gallery-strip{grid-template-columns:repeat(2,1fr);gap:10px;}
  .gallery-strip li:nth-child(n+5){display:none;}
  .post-grid{grid-template-columns:1fr;}
  .post-grid .post-card:nth-child(3){display:flex;}
  .checklist--2{column-count:1;}
  .facts li{padding:18px 18px;}
  .intro-badge{position:relative;right:auto;margin:-36px 16px 0 auto;width:max-content;}
  .intro-media{padding-bottom:0;}
  .intro-media .main{aspect-ratio:4/3;}
  .svc-card .thumb{aspect-ratio:16/9;}
  .product-card__body{padding:12px 12px 14px;}
  .product-card__title{font-size:.9375rem;}
  .product-card__price{font-size:1rem;}
  .product-card__note{display:none;}
  .footer-grid{grid-template-columns:1fr;gap:28px;}
  .footerbar .container{flex-direction:column;align-items:center;text-align:center;gap:4px;}
  .btn-row .btn{flex:1 1 auto;}
  .cta-flex .btn-row{flex-wrap:wrap;width:100%;}
  .wa-float{right:16px;bottom:16px;width:52px;height:52px;}
}
/* Content pages */
@media (max-width:1100px){
  .value-grid,.reason-grid{grid-template-columns:repeat(2,1fr);}
  .card-grid--3>.col{width:50%;}
  .faq-layout{grid-template-columns:1fr;}
  .faq-aside{position:static;display:grid;grid-template-columns:1fr 1fr;}
  .photo-grid{grid-template-columns:repeat(3,1fr);}
  .contact-cards{grid-template-columns:repeat(2,1fr);}
  .split-cta{flex-direction:column;align-items:flex-start;}
}
@media (max-width:640px){
  .value-grid,.reason-grid{grid-template-columns:1fr;}
  .card-grid--3>.col{width:100%;}
  .faq-aside{grid-template-columns:1fr;}
  .faq-list summary{padding:16px 16px;font-size:.9375rem;}
  .faq-list details p{padding:0 16px 18px;}
  .photo-grid{grid-template-columns:repeat(2,1fr);gap:8px;}
  .contact-cards{grid-template-columns:1fr;}
  .split-cta{padding:28px 22px;}
  .search-form{min-width:0;width:100%;}
  .lightbox__nav--prev{left:6px;}
  .lightbox__nav--next{right:6px;}
  .lightbox__close{top:6px;right:6px;}
}
/* Inner pages */
@media (max-width:1100px){
  .product-layout{gap:36px;}
  .mini-steps{grid-template-columns:repeat(2,1fr);}
  .quote-layout{grid-template-columns:1fr;}
  .quote-aside{display:grid;grid-template-columns:1fr 1fr;}
  .branch-grid--page,.branch-grid--compact{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:980px){
  .product-layout{grid-template-columns:1fr;}
  .product-gallery{position:static;max-width:560px;}
  .branch-layout{grid-template-columns:1fr;}
  .help-strip{flex-wrap:wrap;}
  .branch-facts{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .shop-toolbar{flex-direction:column;align-items:stretch;}
  .shop-toolbar__right{justify-content:space-between;}
  .woocommerce-ordering select{max-width:190px;}
  .product-grid--shop{row-gap:14px;}
  .product-meta{grid-template-columns:1fr 1fr;}
  .mini-steps{grid-template-columns:1fr;}
  .formcard{padding:24px 18px;}
  .field-row{grid-template-columns:1fr;gap:0;}
  .quote-aside{grid-template-columns:1fr;}
  .branch-grid--page,.branch-grid--compact{grid-template-columns:1fr;}
  .help-strip{padding:22px 18px;}
  .help-strip .btn-row{width:100%;}
  .pagehead-inner{padding:40px 0 44px;}
  .branch-map iframe{height:260px;}
}
/* Buttons, site-wide on phones: pairs sit side by side at equal width, compact and
   squared-off (app style) rather than stacked full-width pills. */
@media (max-width:640px){
  .btn{height:44px;padding:0 14px;border-radius:0;font-size:12px;letter-spacing:.02em;gap:6px;}
  .btn .icon{width:15px;height:15px;}
  .btn-row,.product-actions,.cta-flex .btn-row,.help-strip .btn-row,.split-cta .btn-row{display:flex;flex-wrap:nowrap;gap:10px;width:100%;}
  .btn-row .btn,.product-actions .btn{flex:1 1 0;min-width:0;width:auto;height:44px;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .product-actions .btn{height:48px;}
  .stack{flex-direction:row;}
  .stack .btn{flex:1 1 0;}
  .mh-panel__foot{flex-direction:row;flex-wrap:wrap;}
  .mh-panel__foot .btn{flex:1 1 0;}
  .mh-panel__foot p{flex-basis:100%;}
  /* Body copy stays small and calm on phones */
  .section-head p,.hero3__lead,.cta-text,.help-strip p,.split-cta p{font-size:13px;line-height:1.55;}
  main p,main li,.product-info__lead p{font-size:13.5px;line-height:1.6;}
  .article-body p,.article-body li{font-size:15px;line-height:1.7;}
  .checklist li{font-size:13px;}
}
@media (max-width:400px){
  .btn-row .btn{white-space:nowrap;height:44px;min-height:0;padding:0 8px;font-size:11px;}
}
/* Shop and blog filters: plain underline tabs instead of boxed buttons. One line;
   on phones the row scrolls sideways rather than wrapping into a stack. */
/* Gallery album tabs share the same underline style. */
.gallery-tabs{display:flex;flex-wrap:nowrap;gap:28px;overflow-x:auto;scrollbar-width:none;margin-bottom:28px;padding-bottom:0;border-bottom:1px solid var(--line);}
.gallery-tabs::-webkit-scrollbar{display:none;}
.gallery-tabs .chip{flex:none;display:inline-flex;align-items:center;height:auto;min-height:44px;min-width:40px;justify-content:center;padding:0 0 2px;margin-bottom:-1px;border:0;border-bottom:2px solid transparent;background:none;
  font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--muted);white-space:nowrap;cursor:pointer;}
.gallery-tabs .chip:hover{color:var(--primary);}
.gallery-tabs .chip.is-active{background:none;color:var(--primary);border-bottom-color:var(--accent-strong);}
@media (max-width:640px){.gallery-tabs{gap:22px;margin-right:calc(var(--pad-x) * -1);padding-right:var(--pad-x);}.gallery-tabs .chip{font-size:12px;}}
.shop-toolbar .chips{flex-wrap:nowrap;gap:28px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;max-width:100%;}
.shop-toolbar .chips::-webkit-scrollbar{display:none;}
.shop-toolbar .chip{height:auto;min-height:40px;min-width:40px;justify-content:center;padding:0 0 2px;border:0;border-bottom:2px solid transparent;background:none;
  font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--muted);white-space:nowrap;}
.shop-toolbar .chip:hover{color:var(--primary);border-bottom-color:var(--line);}
.shop-toolbar .chip.is-active{background:none;color:var(--primary);border-bottom-color:var(--accent-strong);}
.shop-toolbar{min-width:0;}
.shop-toolbar .chips{min-width:0;flex:1 1 auto;}
@media (max-width:640px){
  .shop-toolbar{gap:12px;padding-bottom:16px;}
  .shop-toolbar .chips{gap:22px;margin-right:calc(var(--pad-x) * -1);padding-right:var(--pad-x);}
  .shop-toolbar .chip{font-size:12px;}
}

/* Action button pairs (product page, branch page): equal, compact, never clipped.
   Labels are kept short ("Get a quote" / "WhatsApp") so they fit any phone. */
.product-actions .btn,.branch-main .btn-row .btn{height:50px;padding:0 18px;font-size:13px;letter-spacing:.06em;gap:8px;white-space:nowrap;}
.product-actions .btn .icon,.branch-main .btn-row .btn .icon{width:17px;height:17px;}
.btn--wa{background:#25A35A;border-color:#25A35A;}
.btn--wa:hover{background:#1C8A4B;border-color:#1C8A4B;}
@media (max-width:640px){
  .product-actions,.branch-main .btn-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .product-actions .btn,.branch-main .btn-row .btn{width:100%;height:48px;padding:0 10px;font-size:12px;overflow:visible;text-overflow:clip;}
  .product-info__call{align-items:flex-start;font-size:13px;line-height:1.5;}
  .product-info__call .icon{margin-top:2px;flex:none;}
}

/* Factory card on phones: edge to edge, photo on top, text on solid navy below it. */
@media (max-width:640px){
  .branch-grid .branch-card--factory{margin-left:calc(var(--pad-x) * -1);margin-right:calc(var(--pad-x) * -1);border-left:0;border-right:0;
    min-height:0;padding:150px var(--pad-x) 26px;}
  .branch-card--factory::before{background:linear-gradient(180deg,rgba(var(--primary-rgb),0) 0%,rgba(var(--primary-rgb),.55) 90px,rgba(var(--primary-rgb),.96) 150px,var(--primary) 100%)!important;}
  .branch-card--factory .branch-card__bg{height:220px;bottom:auto;object-position:60% 30%;}
  .branch-card--factory .branch-card__icon{position:absolute;top:18px;left:var(--pad-x);}
  .branch-card--factory .branch-card__title{font-size:1.25rem;}
  .branch-card--factory .branch-card__addr{color:rgba(var(--white-rgb),.88);}
}

/* Phone hero: strictly 16:9 (client). Compact headline and a single row of small buttons. */
@media (max-width:760px){
  .hero5{aspect-ratio:16/9;height:auto;}
  .hero5__inner{height:100%;min-height:0;align-items:center;}
  .hero5__content{padding:0;max-width:58%;}
  .hero5__title{font-size:clamp(.9375rem,4.6vw,1.25rem);line-height:1.12;margin-bottom:10px;}
  .hero5__title span{margin-top:0;}
  .hero5__actions{flex-direction:row;flex-wrap:nowrap;gap:6px;}
  .hero5__content{max-width:64%;}
  .hero5__actions .hero5__btn{flex:none;width:auto;height:32px;padding:0 9px;font-size:9px;letter-spacing:.03em;gap:4px;box-shadow:none;white-space:nowrap;}
  .hero5__actions .hero5__btn .icon{display:none;}
  .hero5__dots{bottom:0;}
  .hero5__dots button{height:32px;}
}

/* Phone hero is 16:12 (4:3, client; supersedes the 16:9 and 1832 x 859 rules). Both slides
   use the client's own 4:3 photos. Text sits in the open sky at the top left, above the memorials. */
@media (max-width:760px){
  .hero5{aspect-ratio:16/12;}
  .hero5__slide picture{display:block;width:100%;height:100%;}
  .hero5__slide img,.hero5__slide--hero-slide-lerato img,.hero5__slide--hero-slide-baloyi img{object-fit:cover;object-position:50% 50%;}
  /* Text and buttons measured from the client's 4:3 mockup (1133 px wide), in vw so they
     keep the same size and place on every phone. Buttons stack: white, then green. */
  .hero5::before{display:none;}
  .hero5__inner{align-items:flex-start;padding-left:7.6vw;padding-right:0;}
  .hero5__content{max-width:84%;padding:7vw 0 0;}
  /* Larger two-tone H1 (client): kicker, white first line, lime second line, all in the open
     sky above the memorials (their tops sit at about 28vw). */
  .hero5__kicker{display:inline-flex;gap:1.6vw;margin:0 0 2vw;font-size:2.2vw;letter-spacing:.2em;color:var(--grad-2);text-shadow:0 .2vw .8vw rgba(1,0,40,.45);}
  .hero5__kicker::before{width:5vw;height:.35vw;}
  .hero5__title{font-size:5.2vw;line-height:1.08;margin:0 0 4vw;letter-spacing:-.005em;color:var(--white);text-shadow:0 .3vw 1.6vw rgba(1,0,40,.45);}
  .hero5__title span{display:block;margin:0;color:var(--grad-2);}
  .hero5__title,.hero5__title span{white-space:nowrap;}
  .hero5__actions{flex-direction:column;align-items:flex-start;gap:3.4vw;margin-left:.9vw;}
  /* Phone hero buttons 30% bigger than the mockup size (client, 2026-10-29). */
  .hero5__actions .hero5__btn{position:relative;justify-content:flex-start;height:8.45vw;padding:0 0 0 3.1vw;
    font-size:2.8vw;letter-spacing:.02em;gap:2.6vw;border:0;box-shadow:0 .4vw 1.2vw rgba(1,0,40,.25);}
  .hero5__actions .hero5__btn:first-child{width:38.6vw;background:var(--white);color:var(--primary);}
  .hero5__actions .hero5__btn:first-child .icon{display:inline-block;width:2.1vw;height:2.1vw;}
  .hero5__actions .hero5__btn--line{width:24.8vw;height:8.2vw;background:var(--primary);color:var(--white);}
  /* Invisible tap area at least 32px tall around each button (client: small look, easy to tap). */
  .hero5__actions .hero5__btn::after{content:"";position:absolute;left:0;right:0;top:50%;height:max(100%,32px);transform:translateY(-50%);}
  .hero5__dots{display:none;}
}

/* Hero photos at their original scale: no zoom-in / zoom-out animation (client). */
.hero5__slide img,.hero5__slide.is-on img{transform:none!important;transition:none!important;}

/* Company facts on phones: one row of four, compact, like an app stat strip. */
@media (max-width:640px){
  .facts{grid-template-columns:repeat(4,minmax(0,1fr))!important;margin-top:32px;}
  .facts li{padding:12px 4px;align-items:center;text-align:center;gap:3px;border-top:0!important;}
  .facts li+li{border-left:1px solid var(--line)!important;}
  .facts strong{font-size:1.125rem;line-height:1.1;}
  .facts span{font-size:8.5px;line-height:1.3;letter-spacing:.04em;}
}

/* Homepage statue: no backdrop behind it (client), just the photo on the page. */
.intro-statue{background:none!important;}
.intro-statue::after{display:none;}
.intro-statue img.main{mix-blend-mode:normal;}

/* Contact page on phones: one compact list (icon · label/value · arrow) instead of four
   tall stacked cards. */
@media (max-width:640px){
  .contact-cards{grid-template-columns:1fr;gap:0;margin-bottom:36px;border:1px solid var(--line);background:var(--bg);}
  .contact-card{position:relative;display:grid;grid-template-columns:40px 1fr;column-gap:14px;row-gap:0;align-items:center;
    padding:14px 40px 14px 16px;border:0;border-bottom:1px solid var(--line);box-shadow:none!important;}
  .contact-card:last-child{border-bottom:0;}
  .contact-card__icon{grid-row:1 / span 3;width:40px;height:40px;margin:0;}
  .contact-card__icon .icon{width:18px;height:18px;}
  .contact-card__label{font-size:10.5px;}
  .contact-card strong{font-size:14px;line-height:1.3;}
  .contact-card strong.contact-card__email{font-size:12.5px;overflow-wrap:anywhere;}
  .contact-card__note{font-size:11.5px;}
  a.contact-card::after{content:"";position:absolute;right:18px;top:50%;width:8px;height:8px;margin-top:-4px;
    border-top:1.5px solid var(--muted);border-right:1.5px solid var(--muted);transform:rotate(45deg);}
  a.contact-card:active{background:var(--bg-alt);}
}

/* QUOTE POP-UP ---------------------------------------------------------------
   Desktop: centred two-panel dialog (navy brief on the left, form on the right).
   Phones: full-screen sheet with a fixed header and a sticky send button. Square corners. */
html.qm-open{overflow:hidden;}
button{text-transform:inherit;}
.qm{width:min(1040px,calc(100vw - 48px));max-width:none;max-height:min(760px,calc(100vh - 48px));padding:0;border:0;background:none;color:var(--text);
  overflow:visible;opacity:0;transform:translateY(14px) scale(.985);transition:opacity .18s ease,transform .18s ease;}
.qm.is-in{opacity:1;transform:none;}
.qm::backdrop{background:rgba(0,0,22,.62);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);}
.qm__shell{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.5fr);height:min(760px,calc(100vh - 48px));background:var(--white);box-shadow:0 40px 90px rgba(0,0,20,.45);}
.qm__aside{position:relative;display:flex;flex-direction:column;padding:40px 36px 32px;background:var(--primary);color:rgba(var(--white-rgb),.78);overflow:hidden;}
.qm__aside::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,var(--grad-1),var(--grad-2) 45%,var(--grad-3));}
.qm__kicker{margin:0 0 12px;font-family:var(--font-head);font-size:11px;font-weight:700;letter-spacing:.16em;color:var(--grad-2);}
.qm__title{margin:0 0 12px;color:var(--white);font-size:clamp(1.5rem,1rem + 1.2vw,2rem);line-height:1.1;}
.qm__lead{margin:0 0 26px;font-size:13.5px;line-height:1.6;}
.qm__steps{list-style:none;margin:0 0 26px;padding:0;}
.qm__steps li{position:relative;display:flex;align-items:center;gap:14px;margin:0;padding:0 0 18px;font-family:var(--font-head);font-size:12.5px;font-weight:700;letter-spacing:.05em;color:var(--white);}
.qm__steps li:not(:last-child)::before{content:"";position:absolute;left:14px;top:30px;bottom:2px;width:1px;background:rgba(var(--white-rgb),.2);}
.qm__steps span{display:flex;flex:none;width:29px;height:29px;align-items:center;justify-content:center;border:1px solid rgba(var(--white-rgb),.35);border-radius:50%;font-size:11.5px;color:var(--grad-2);}
.qm__perks{list-style:none;margin:0 0 auto;padding:18px 0 0;border-top:1px solid rgba(var(--white-rgb),.14);}
.qm__perks li{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-family:var(--font-head);font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--white);}
.qm__perks .icon{width:17px;height:17px;color:var(--grad-2);}
.qm__direct{margin-top:22px;padding-top:18px;border-top:1px solid rgba(var(--white-rgb),.14);}
.qm__direct p{margin:0 0 8px;font-size:11.5px;letter-spacing:.08em;}
.qm__direct a{display:flex;align-items:center;gap:10px;min-height:36px;font-family:var(--font-head);font-size:14px;font-weight:700;color:var(--white);}
.qm__direct a:hover{color:var(--grad-2);}
.qm__direct .icon{width:17px;height:17px;color:var(--grad-2);}

.qm__main{position:relative;display:flex;flex-direction:column;min-height:0;}
.qm__bar{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;border-bottom:1px solid var(--line);}
.qm__bar-title{margin:0;font-family:var(--font-head);font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--muted);}
.qm__close{display:flex;width:40px;height:40px;margin-right:-10px;border:0;align-items:center;justify-content:center;background:none;color:var(--ink);cursor:pointer;}
.qm__close:hover{color:var(--accent-strong);}
.qm__close .icon{width:22px;height:22px;}
.qm__form{display:flex;flex-direction:column;flex:1;min-height:0;}
.qm__form[hidden]{display:none;}
.qm__body{flex:1;overflow-y:auto;padding:22px 28px 8px;overscroll-behavior:contain;}
.qm__product{display:flex;align-items:center;gap:14px;margin-bottom:20px;padding:12px 14px;border:1px solid var(--line);background:var(--bg-alt);}
.qm__product[hidden]{display:none;}
.qm__product img{width:56px;height:56px;object-fit:contain;background:var(--white);}
.qm__product div{flex:1;min-width:0;}
.qm__product span{display:block;font-size:10.5px;font-weight:700;letter-spacing:.1em;color:var(--muted);}
.qm__product strong{display:block;font-size:15px;color:var(--ink);}
.qm__product em{display:block;font-style:normal;font-size:12.5px;font-weight:700;color:var(--primary);}
.qm__product-x{display:flex;width:36px;height:36px;border:0;align-items:center;justify-content:center;background:none;color:var(--muted);cursor:pointer;}
.qm__product-x .icon{width:16px;height:16px;}
.qm__group{margin:0 0 20px;padding:0;border:0;min-width:0;}
.qm__group legend{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:0;font-family:var(--font-head);font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--ink);}
.qm__group legend span{color:var(--accent-strong);}
.qm__row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.qm__field{margin:0 0 14px;min-width:0;}
.qm__field label{display:block;margin-bottom:6px;font-family:var(--font-head);font-size:11.5px;font-weight:700;letter-spacing:.06em;color:var(--ink);}
.qm__field label i{font-style:normal;color:#B42318;}
.qm__field label em{font-style:normal;font-weight:400;color:var(--muted);text-transform:lowercase;}
.qm__field input,.qm__field select,.qm__field textarea{width:100%;height:46px;padding:0 14px;border:1px solid #D5D4DE;border-radius:0;background:var(--white);
  font-family:var(--font-body);font-size:15px;color:var(--ink);text-transform:none;transition:border-color .15s,box-shadow .15s;}
.qm__field textarea{height:auto;min-height:84px;padding:12px 14px;resize:vertical;}
.qm__field select{appearance:none;-webkit-appearance:none;padding-right:38px;
  background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2301003D' stroke-width='1.6'/%3E%3C/svg%3E") right 14px center no-repeat;}
.qm__field input:focus,.qm__field select:focus,.qm__field textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.12);}
.qm__field.is-bad input{border-color:#B42318;box-shadow:0 0 0 3px rgba(180,35,24,.1);}
.qm__err{display:none;margin-top:6px;font-size:11.5px;font-weight:600;color:#B42318;text-transform:none;}
.qm__err.is-on{display:block;}
.qm__seg{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #D5D4DE;}
.qm__seg label{position:relative;margin:0;cursor:pointer;}
.qm__seg label+label{border-left:1px solid #D5D4DE;}
.qm__seg input{position:absolute;opacity:0;pointer-events:none;}
.qm__seg span{display:flex;align-items:center;justify-content:center;gap:8px;height:46px;font-family:var(--font-head);font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--muted);transition:background .15s,color .15s;}
.qm__seg .icon{width:16px;height:16px;}
.qm__seg input:checked+span{background:var(--primary);color:var(--white);}
.qm__seg input:focus-visible+span{outline:2px solid var(--accent-strong);outline-offset:-2px;}
.qm__foot{padding:16px 28px 22px;border-top:1px solid var(--line);background:var(--white);}
.qm__consent{display:flex;align-items:flex-start;gap:10px;margin:0;font-size:12.5px;line-height:1.5;color:var(--text);cursor:pointer;}
.qm__consent input{flex:none;width:18px;height:18px;margin-top:1px;accent-color:var(--primary);}
.qm__consent.is-bad span{color:#B42318;}
.qm__foot .qm__err{margin:4px 0 0 28px;}
.qm__alert{margin:12px 0 0;padding:10px 12px;border-left:3px solid #B42318;background:#FDF0EF;font-size:13px;font-weight:600;color:#8A1C14;text-transform:none;}
.qm__submit{position:relative;display:flex;width:100%;height:54px;margin-top:14px;padding:0 22px;border:0;align-items:center;justify-content:space-between;
  background:var(--accent-strong);color:var(--white);font-family:var(--font-head);font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .18s;}
.qm__submit:hover{background:var(--primary);}
.qm__submit .icon{width:20px;height:20px;transition:transform .18s;}
.qm__submit:hover .icon{transform:translateX(4px);}
.qm__submit:disabled{cursor:progress;opacity:.85;}
.qm__spinner{display:none;width:18px;height:18px;border:2px solid rgba(var(--white-rgb),.35);border-top-color:var(--white);border-radius:50%;animation:qm-spin .7s linear infinite;}
.qm__submit.is-busy .qm__spinner{display:block;}
.qm__submit.is-busy .icon{display:none;}
@keyframes qm-spin{to{transform:rotate(360deg);}}
.qm__done{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 32px;text-align:center;}
.qm__done[hidden]{display:none;}
.qm__done-icon{display:flex;width:72px;height:72px;margin-bottom:20px;border-radius:50%;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent-strong);}
.qm__done-icon .icon{width:34px;height:34px;stroke-width:2.4;}
.qm__done h3{margin:0 0 10px;font-size:1.5rem;}
.qm__done p{max-width:360px;margin:0 0 26px;font-size:14px;color:var(--muted);}
.qm__done-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;}

@media (max-width:860px){
  .qm{width:100vw;max-height:none;height:100%;margin:0;transform:translateY(24px);}
  .qm.is-in{transform:none;}
  .qm__shell{grid-template-columns:1fr;height:100dvh;}
  .qm__aside{display:none;}
  .qm__bar{padding:14px 20px;background:var(--primary);border-bottom:0;}
  .qm__bar-title{color:var(--white);font-size:13px;}
  .qm__close{color:var(--white);}
  .qm__body{padding:18px 20px 8px;}
  .qm__row{grid-template-columns:1fr;gap:0;}
  .qm__foot{padding:12px 20px calc(14px + env(safe-area-inset-bottom));box-shadow:0 -8px 20px rgba(var(--primary-rgb),.06);}
  .qm__seg span{font-size:11px;gap:6px;}
}
@media (prefers-reduced-motion:reduce){.qm{transition:none;}}

/* Page title bands on desktop: title on the left, description on the right, same row. */
@media (min-width:981px){
  .pagehead-inner{max-width:none;}
  .pagehead-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:56px;align-items:end;}
  .pagehead-row h1{margin-bottom:0;}
  .pagehead-row p{margin:0 0 6px;max-width:none;padding-left:28px;border-left:2px solid var(--accent);}
}

/* Header content runs wider than the page column: +30%, then reduced by 10% (client). */
.mh-top>.container,.mh-brand>.container,.mh-bar>.container,.mh-search>.container,.mh-sub--mega>.container{max-width:calc(var(--container) * 1.3 * .9);}

/* Download Brochure in the top bar on phones and tablets (desktop has it in the brand row). */
.mh-top__brochure{display:none;}
@media (max-width:980px){
  .mh-top .container{justify-content:space-between;align-items:stretch;}
  .mh-perks{align-self:center;}
  .mh-perks li:nth-child(n+2){display:none;}
  .mh-top::after{display:none;}
  .mh-top__brochure{position:relative;isolation:isolate;display:flex;align-items:center;gap:7px;margin-right:calc(var(--pad-x) * -1);padding:0 var(--pad-x) 0 30px;
    font-family:var(--font-head);font-size:11.5px;font-weight:700;letter-spacing:.06em;color:var(--primary);white-space:nowrap;}
  .mh-top__brochure::before{content:"";position:absolute;z-index:-1;inset:0;background:var(--accent);clip-path:polygon(18px 0,100% 0,100% 100%,0 100%);}
  .mh-top__brochure .icon{width:15px;height:15px;stroke-width:2.2;}
  .mh-top__brochure:hover{color:var(--white);}
}
.mh-top__brochure-short{display:none;}
@media (max-width:374px){.mh-top__brochure-long{display:none;}.mh-top__brochure-short{display:inline;}}

/* Phone header buttons: bold icons only, no circles behind them (client request). */
@media (max-width:980px){
  .mh-actions__call{background:none;color:var(--primary);width:44px;height:44px;}
  .mh-actions__call .icon{width:24px;height:24px;stroke-width:1.6;}
  .mh-toggle{background:none;width:44px;height:44px;padding:0 9px;gap:6px;}
  .mh-toggle span{height:1.5px;border-radius:2px;background:var(--primary);}
  .mh-toggle span:nth-child(2){width:70%;background:var(--accent-strong);}
}

/* MOBILE MENU (client reference: clean app drawer) ------------------------------
   Slides in from the right over a dimmed page; olive-to-teal gradient; brand row at the
   top; flat rows of icon + label separated by hairlines; sub-menus open in place. */
.mh-nav__icon{display:none;}
@media (max-width:980px){
  /* Square edges; olive-to-teal gradient. */
  .mh-panel{left:auto;right:0;width:min(82vw,340px);padding:0;border-radius:0;
    background:linear-gradient(180deg,#8A9A1C 0%,#4F8A2C 38%,#1E7347 70%,var(--grad-3) 100%);
    box-shadow:-20px 0 60px rgba(0,0,0,.35);transform:translateX(105%);}
  .mh-panel.is-open{transform:none;}
  .mh-backdrop{background:rgba(0,0,15,.45);-webkit-backdrop-filter:none;backdrop-filter:none;}
  .mh-panel__head{display:block;position:relative;padding:22px 24px 18px;}
  .mh-panel__close{position:absolute;top:18px;right:18px;width:36px;height:36px;background:none;color:var(--white);}
  .mh-panel__close .icon{width:20px;height:20px;}
  .mh-panel__brand{display:flex;align-items:center;gap:12px;margin-top:44px;color:var(--white);}
  .mh-panel__avatar{display:flex;flex:none;width:46px;height:46px;border-radius:50%;background:var(--white);overflow:hidden;align-items:center;justify-content:center;
    box-shadow:0 0 0 3px rgba(var(--white-rgb),.25);}
  .mh-panel__avatar img{width:38px;height:38px;object-fit:contain;}
  .mh-panel > *{flex-shrink:0;}
  /* No logo in the drawer (client): just the close button above the menu. */
  .mh-panel__head{min-height:64px;}
  .mh-panel__brand strong{display:block;color:var(--white);font-size:15px;font-weight:700;line-height:1.2;letter-spacing:.02em;}
  .mh-panel__brand small{display:block;margin-top:2px;font-size:10.5px;font-weight:400;letter-spacing:.04em;color:rgba(var(--white-rgb),.75);}
  .mh-nav{gap:0;margin:14px 0 0;padding:0 24px;}
  .mh-nav__item,.mh-nav__item.has-sub--mega{border-radius:0;background:none;border-bottom:1px solid rgba(var(--white-rgb),.14);}
  .mh-nav__link{gap:14px;height:52px;padding:0 4px;font-size:13px;font-weight:400;letter-spacing:.08em;color:rgba(var(--white-rgb),.92);}
  .mh-nav__link.is-active{color:var(--white);font-weight:700;}
  .mh-nav__link.is-active .mh-nav__icon{color:var(--grad-2);}
  .mh-nav__icon{display:block;width:18px;height:18px;flex:none;color:rgba(var(--white-rgb),.85);stroke-width:1.6;}
  .mh-nav__toggle{width:40px;height:52px;color:rgba(var(--white-rgb),.75);}
  .mh-nav__item.is-open{background:rgba(0,0,0,.08);}
  .mh-sub,.mh-sub--branches,.mh-sub--mega{padding:0 4px 10px 36px;}
  .mh-sub--list a,.mh-sub--branches a,.mh-mega__cats a{padding:8px 4px;gap:10px;border-radius:0;color:rgba(var(--white-rgb),.88);}
  .mh-sub__icon{display:none;}
  .mh-sub strong,.mh-mega__cats a{font-size:12.5px;font-weight:400;letter-spacing:.05em;}
  .mh-sub small{display:none;}
  .mh-mega__cats .icon{display:none;}
  .mh-mega__cats span{background:rgba(var(--white-rgb),.14);}
  .mh-sub__all{margin:6px 0 0;padding:10px 12px;border-radius:0;background:rgba(var(--white-rgb),.14);font-size:12px;}
  .mh-panel__foot{flex-direction:column;flex-wrap:nowrap;gap:0;margin-top:auto;padding:18px 24px 26px;}
  .mh-panel__link{display:flex;flex:0 0 auto;align-items:center;gap:14px;height:46px;min-height:46px;padding:0 4px;color:var(--white);font-size:13px;letter-spacing:.08em;border-bottom:1px solid rgba(var(--white-rgb),.14);}
  .mh-panel__link .mh-nav__icon{display:block;color:var(--grad-2);}
  .mh-panel__foot p{margin:14px 4px 0;font-size:11.5px;color:rgba(var(--white-rgb),.7);}
  .mh-panel__foot p .icon{color:rgba(var(--white-rgb),.7);}
}

/* Overflow guards (found by the responsive audit): grid and flex children may shrink
   below their content's natural width, so long words and nowrap buttons never push a
   page wider than the screen. */
.product-layout,.branch-layout,.faq-layout,.quote-layout,.footer-grid,.sf-grid,.value-grid,.reason-grid{min-width:0;}
.product-layout>*,.branch-layout>*,.faq-layout>*,.quote-layout>*,.sf-grid>*,.mini-grid>*,.post-grid>*,.product-grid>*,.branch-grid>*{min-width:0;}
@media (max-width:980px){
  .product-layout,.branch-layout,.faq-layout,.quote-layout{grid-template-columns:minmax(0,1fr);}
  .product-meta{grid-template-columns:repeat(2,minmax(0,1fr));}
}
.prose,.faq-list,.product-info,.branch-main,.sidebar,.contact-card{overflow-wrap:anywhere;}
.product-actions .btn,.btn-row .btn{min-width:0;}
/* Branches dropdown: open towards the left so it never runs off a tablet screen. */
.mh-nav__item.has-sub--branches>.mh-sub{left:auto;right:0;}
@media (max-width:1100px) and (min-width:981px){.mh-sub--branches{min-width:440px;}}
.branch-mini a{display:inline-flex;align-items:center;min-height:36px;}
.faq-aside>*,.quote-aside>*{min-width:0;}
@media (max-width:640px){
  .faq-aside,.quote-aside{grid-template-columns:minmax(0,1fr);}
  .stack{flex-wrap:wrap;}
  .stack .btn{flex:1 1 140px;}
}

/* Touch targets: every link or control a finger needs is at least 40px tall on touch
   screens (master prompt 2.11). */
@media (max-width:1024px){
  .branch-card__link,.svc-card__link,.mh-sub__all,.link-list a{min-height:40px;display:inline-flex;align-items:center;}
  .sf-bar{height:40px;padding:0 20px;}
  .sf-list a{display:inline-flex;align-items:center;min-height:36px;}
  .sf-list li{margin-bottom:4px;}
  .sf-list li::before{top:15px;}
  .sf-contact dd a{display:inline-flex;align-items:center;min-height:36px;}
  .sf-legal a{display:inline-flex;align-items:center;min-height:36px;}
  .mh-util__social a,.sf-social a,.article-share a{width:40px;height:40px;}
  .field--choice label,.consent{min-height:40px;align-items:center;}
  .crumbs a{display:inline-flex;align-items:center;min-height:32px;}
  .post-card__title a,.product-card__title a{display:inline-block;min-height:32px;}
  .chip{height:40px;}
}

/* Home "News, tips and guidance": every article (client). 4 per row on desktop, 3 on
   tablets, 2 compact cards (square picture, date, title) on phones. */
.post-grid--home{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;}
.post-grid--home .post-card h3{font-size:1rem;}
@media (max-width:1100px){
  .post-grid--home{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
}
@media (max-width:760px){
  .post-grid--home{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .post-grid--home .post-card__media{aspect-ratio:1;}
  .post-grid--home .post-card__body{padding:12px 12px 14px;}
  .post-grid--home .post-card__meta{font-size:11px;margin-bottom:6px;letter-spacing:.02em;}
  .post-grid--home .post-card h3{font-size:12.5px;line-height:1.35;margin:0;letter-spacing:.01em;overflow-wrap:anywhere;
    display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;}
  .post-grid--home .post-card p:not(.post-card__meta){display:none;}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;}
  html{scroll-behavior:auto;}
}

/* 2026-10-29 client round ------------------------------------------------------------ */
/* Service pictures: square on every screen. */
.svc-card .thumb,.card-grid--3 .svc-card .thumb{aspect-ratio:1/1!important;}

/* Footer credit. The web address stays lower case. */
.sf-credit{margin:0;font-size:12px;color:rgba(var(--white-rgb),.7);}
.sf-credit a{color:var(--accent-light);font-weight:600;}
.sf-credit a:hover{color:var(--white);}
.sf-credit__url{text-transform:none;}
@media (min-width:761px){.sf-credit{flex-basis:100%;}}

/* One WhatsApp button: the theme's. The "Click to Chat" plugin adds a second one. */
#ht-ctc-chat,.ht-ctc-chat,.ht_ctc_chat_data{display:none!important;}

/* Logo 20% bigger on phones and tablets (54px -> 65px). */
@media (max-width:980px){
  .mh-brand .brandmark img{height:65px;}
}

/* Button pairs on phones: never overlap, whatever the screen width or the phone's text
   size setting (Samsung "font size" makes 11-12px labels much wider). Labels may wrap to
   two lines inside the button instead of being cut or running into each other. */
@media (max-width:640px){
  .btn-row,.cta-flex .btn-row,.help-strip .btn-row,.split-cta .btn-row{flex-wrap:wrap;}
  .btn-row .btn,.product-actions .btn,.branch-main .btn-row .btn{flex:1 1 150px;height:auto;min-height:46px;padding:10px 12px;
    white-space:normal;overflow:visible;text-overflow:clip;line-height:1.25;text-align:center;justify-content:center;}
}
@media (max-width:400px){
  .btn-row .btn{flex-basis:100%;font-size:12px;}
}

/* Phone menu drawer: starts higher, clear white sub-menus with a guide line. */
@media (max-width:980px){
  .mh-panel__head{min-height:0;height:52px;padding:0 24px;}
  .mh-panel__close{top:8px;right:14px;}
  .mh-nav{margin:0;}
  .mh-nav__item.is-open{background:rgba(0,0,0,.12);}
  .mh-nav__item.is-open>.mh-nav__link{color:var(--white);font-weight:700;}
  .mh-nav__item.is-open .mh-nav__toggle{color:var(--grad-2);}
  .mh-sub,.mh-sub--branches,.mh-sub--mega{padding:0 8px 14px 36px;}
  .mh-sub ul,.mh-mega__cats ul{margin:0;padding:0;border-left:1px solid rgba(var(--white-rgb),.28);}
  .mh-sub--list a,.mh-sub--branches a,.mh-mega__cats a{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:42px;
    padding:0 6px 0 16px;margin-left:-1px;border-left:2px solid transparent;color:var(--white)!important;
    font-size:12.5px;font-weight:500;letter-spacing:.06em;line-height:1.3;white-space:normal;}
  .mh-sub--list a:hover,.mh-sub--branches a:hover,.mh-mega__cats a:hover,
  .mh-sub--list a:focus-visible,.mh-sub--branches a:focus-visible,.mh-mega__cats a:focus-visible{background:rgba(var(--white-rgb),.08);border-left-color:var(--grad-2);}
  .mh-sub strong{color:inherit;font-size:12.5px;font-weight:500;letter-spacing:.06em;}
  .mh-mega__cats span{min-width:0;padding:0;background:none;font-size:11.5px;font-weight:400;color:rgba(var(--white-rgb),.65);}
  .mh-sub__all{display:flex;align-items:center;gap:8px;margin:8px 0 0 16px;padding:0;min-height:40px;background:none;
    color:var(--grad-2);font-size:12px;font-weight:700;letter-spacing:.06em;}
  .mh-sub__all:hover{background:none;color:var(--white);}
  .mh-sub__all .icon{width:14px;height:14px;}
}
