.elementor-kit-3{--e-global-color-primary:#12100F;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#12100F;--e-global-color-2762ee4:#F7F5F3;--e-global-typography-primary-font-family:"Schibsted Grotesk";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"JetBrains Mono";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Schibsted Grotesk";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Schibsted Grotesk";--e-global-typography-accent-font-weight:500;color:#1F1D1B;font-family:"Schibsted Grotesk", Schibsted Grotesk, system-ui, sans-serif;font-size:17px;font-weight:400;line-height:1.6em;}.elementor-kit-3 button,.elementor-kit-3 input[type="button"],.elementor-kit-3 input[type="submit"],.elementor-kit-3 .elementor-button{background-color:var( --e-global-color-primary );color:#FFFFFF;border-radius:100px 100px 100px 100px;}.elementor-kit-3 button:hover,.elementor-kit-3 button:focus,.elementor-kit-3 input[type="button"]:hover,.elementor-kit-3 input[type="button"]:focus,.elementor-kit-3 input[type="submit"]:hover,.elementor-kit-3 input[type="submit"]:focus,.elementor-kit-3 .elementor-button:hover,.elementor-kit-3 .elementor-button:focus{background-color:var( --e-global-color-primary );color:#FFFFFF;}.elementor-kit-3 e-page-transition{background-color:#FFBC7D;}.elementor-kit-3 a{color:#1F1D1B;}.elementor-kit-3 a:hover{color:#1F1D1B;}.elementor-kit-3 h1{color:#1F1D1B;font-family:"Schibsted Grotesk", Schibsted Grotesk, system-ui, sans-serif;font-weight:800;}.elementor-kit-3 h2{color:#1F1D1B;font-family:"Schibsted Grotesk", Schibsted Grotesk, system-ui, sans-serif;font-weight:800;}.elementor-kit-3 h3{color:#1F1D1B;font-family:"Schibsted Grotesk", Schibsted Grotesk, system-ui, sans-serif;font-weight:700;}.elementor-kit-3 h4{color:#1F1D1B;}.elementor-kit-3 h5{color:#1F1D1B;}.elementor-kit-3 h6{color:#1F1D1B;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* ============================================================
   The Derbyshire Carpet & Flooring Company
   Shared design system — monochrome editorial
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Schibsted+Grotesk:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap');

:root{
  /* warm monochrome palette */
  --paper:    oklch(0.972 0.004 80);
  --paper-2:  oklch(0.945 0.005 80);
  --paper-3:  oklch(0.912 0.006 78);
  --ink:      oklch(0.175 0.004 60);
  --ink-2:    oklch(0.205 0.004 60);
  --muted:    oklch(0.46 0.004 65);
  --faint:    oklch(0.62 0.004 70);
  --line:     oklch(0.86 0.004 80);
  --line-2:   oklch(0.80 0.005 78);
  --hair-dark: oklch(1 0 0 / 0.14);

  --maxw: 1280px;
  --gutter: clamp(20px, 5vw, 64px);
  --radius: 14px;

  --serif: 'Schibsted Grotesk', system-ui, sans-serif;
  --sans: 'Schibsted Grotesk', system-ui, sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, monospace;

  --ease: cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--sans);
  background:var(--paper);
  color:var(--ink);
  font-size:17px;
  line-height:1.6;
  letter-spacing:-0.01em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--ink); color:var(--paper); }

h1,h2,h3,h4{ margin:0; font-weight:700; line-height:1.02; letter-spacing:-0.035em; }
p{ margin:0; }
.wrap{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter); }

/* ---------- type helpers ---------- */
.eyebrow{
  font-family:var(--mono);
  font-size:12px;
  font-weight:500;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--muted);
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.eyebrow::before{
  content:"";
  width:26px; height:1px; background:currentColor; opacity:.5;
}
.eyebrow.center::before{ display:none; }

.display{ font-weight:800; letter-spacing:-0.045em; line-height:0.96; }
.h1{ font-size:clamp(2.6rem, 6.2vw, 5.2rem); }
.h2{ font-size:clamp(2rem, 4.4vw, 3.4rem); font-weight:800; letter-spacing:-0.04em; }
.h3{ font-size:clamp(1.3rem, 2.2vw, 1.7rem); }
.lead{ font-size:clamp(1.05rem, 1.5vw, 1.3rem); color:var(--muted); line-height:1.5; letter-spacing:-0.015em; }
.tnum{ font-family:var(--mono); font-weight:500; letter-spacing:-0.02em; }

/* ---------- mark ---------- */
.mark{ width:1em; height:1em; display:block; color:currentColor; }
.mark svg, svg.mark{ display:block; width:100%; height:100%; }

/* ---------- buttons ---------- */
.btn{
  --bg:var(--ink); --fg:var(--paper); --bd:var(--ink);
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--sans); font-weight:600; font-size:15px; letter-spacing:-0.01em;
  padding:14px 22px; border-radius:100px;
  background:var(--bg); color:var(--fg); border:1px solid var(--bd);
  cursor:pointer; transition:transform .35s var(--ease), background .25s, color .25s, border-color .25s;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); }
.btn .arr{ transition:transform .35s var(--ease); }
.btn:hover .arr{ transform:translateX(4px); }
.btn.ghost{ --bg:transparent; --fg:var(--ink); --bd:var(--line-2); }
.btn.ghost:hover{ --bg:var(--ink); --fg:var(--paper); --bd:var(--ink); }
.btn.lg{ padding:17px 28px; font-size:16px; }
.btn.on-dark{ --bg:var(--paper); --fg:var(--ink); --bd:var(--paper); }
.btn.on-dark.ghost{ --bg:transparent; --fg:var(--paper); --bd:var(--hair-dark); }
.btn.on-dark.ghost:hover{ --bg:var(--paper); --fg:var(--ink); --bd:var(--paper); }

/* ---------- header / nav ---------- */
.site-head{
  position:sticky; top:0; z-index:50;
  background:color-mix(in oklab, var(--paper) 82%, transparent);
  backdrop-filter:blur(14px) saturate(1.1);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  height:74px; gap:18px;
}
.brand{ display:flex; align-items:center; gap:13px; }
.brand .mark{ width:36px; height:36px; }
.brand .wm{ display:flex; flex-direction:column; line-height:1; }
.brand .wm b{ font-size:15px; font-weight:700; letter-spacing:-0.02em; white-space:nowrap; }
.brand .wm span{ font-family:var(--mono); font-size:9.5px; letter-spacing:0.2em; text-transform:uppercase; color:var(--muted); margin-top:3px; }
.nav-links{ display:flex; align-items:center; gap:6px; }
.nav-links a{
  font-size:14.5px; font-weight:500; color:var(--ink-2);
  padding:9px 14px; border-radius:100px; position:relative;
  transition:color .2s, background .2s;
}
.nav-links a:hover{ background:var(--paper-2); }
.nav-links a.active{ color:var(--ink); }
.nav-links a.active::after{
  content:""; position:absolute; left:14px; right:14px; bottom:3px; height:1.5px; background:var(--ink);
}
.nav-actions{ display:flex; align-items:center; gap:14px; }
.nav-tel{ display:inline-flex; align-items:center; gap:8px; font-family:var(--mono); font-size:13.5px; font-weight:500; color:var(--ink); white-space:nowrap; }
.nav-tel .dot{ width:7px; height:7px; border-radius:50%; background:var(--ink); }
.nav-toggle{ display:none; }
.mobile-menu{ display:none; }

/* mobile nav */
/* Mobile/tablet: prevent side-scroll, hide desktop nav + CTA, show hamburger */
html, body{ overflow-x:hidden !important; }
@media (max-width:1080px){
  .nav-links, .nav-tel,
  header.site-head .nav-actions > a.btn{ display:none !important; }
  /* Hamburger button — transparent box with three visible black bars */
  header.site-head .nav-toggle,
  .nav-toggle{
    display:inline-flex !important; align-items:center; justify-content:center;
    width:44px !important; height:44px !important;
    border:1px solid var(--line-2) !important;
    border-radius:12px !important;
    background:transparent !important; background-color:transparent !important;
    color:var(--ink) !important;
    cursor:pointer;
    padding:0 !important;
    appearance:none !important; -webkit-appearance:none !important;
    box-shadow:none !important;
  }
  header.site-head .nav-toggle span,
  .nav-toggle span{ background:var(--ink) !important; width:18px !important; height:1.5px !important; position:relative; }
  header.site-head .nav-toggle span::before,
  header.site-head .nav-toggle span::after,
  .nav-toggle span::before,
  .nav-toggle span::after{ background:var(--ink) !important; width:18px !important; height:1.5px !important; }
  /* Mobile menu CTA: bumped to beat the header.site-head .mobile-menu a dark-link rule (0,3,1) */
  header.site-head .mobile-menu a.btn,
  header.site-head .mobile-menu a.btn:hover,
  header.site-head .mobile-menu a.btn:visited{
    color:#F4EFE7 !important;
    background:#1F1D1B !important;
    border:1px solid #1F1D1B !important;
  }
  header.site-head .mobile-menu a.btn *{ color:#F4EFE7 !important; }
  .nav-toggle span{ width:18px; height:1.5px; background:var(--ink); position:relative; }
  .nav-toggle span::before,.nav-toggle span::after{ content:""; position:absolute; left:0; width:18px; height:1.5px; background:var(--ink); }
  .nav-toggle span::before{ top:-6px; } .nav-toggle span::after{ top:6px; }
  .mobile-menu{
    display:none; flex-direction:column; gap:2px;
    padding:14px var(--gutter) 26px; border-bottom:1px solid var(--line); background:var(--paper);
  }
  .mobile-menu.open{ display:flex; }
  .mobile-menu a{ padding:14px 6px; font-size:20px; font-weight:600; border-bottom:1px solid var(--line); }
  .mobile-menu .btn{ margin-top:16px; justify-content:center; }
  /* Tighten brand on narrow screens so logo + wordmark + hamburger all fit */
  header.site-head .brand .wm b{ font-size:13px; }
  header.site-head .brand .wm span{ font-size:8.5px; }
  header.site-head .wrap.nav{ padding-inline:clamp(14px, 4vw, 28px); }
}
@media (max-width:480px){
  /* On phones, keep wordmark visible but slim it down further */
  header.site-head .brand .wm b{ font-size:12px !important; }
  header.site-head .brand .wm span{ font-size:7.5px !important; letter-spacing:0.16em !important; }
  header.site-head .brand .mark{ width:32px !important; height:32px !important; }
}

/* ---------- footer ---------- */
.site-foot{ background:var(--ink); color:var(--paper); padding:72px 0 32px; }
.site-foot a{ color:color-mix(in oklab, var(--paper) 78%, transparent); transition:color .2s; }
.site-foot a:hover{ color:var(--paper); }
.foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; }
.foot-brand .mark{ width:42px; height:42px; color:var(--paper); }
.foot-brand b{ display:block; margin-top:18px; font-size:18px; letter-spacing:-0.02em; }
.foot-brand p{ color:color-mix(in oklab, var(--paper) 60%, transparent); margin-top:10px; max-width:30ch; font-size:14.5px; }
.foot-col h5{ font-family:var(--mono); font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:color-mix(in oklab,var(--paper) 50%, transparent); margin:0 0 16px; font-weight:500; }
.foot-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; font-size:14.5px; }
.foot-bot{ display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:56px; padding-top:24px; border-top:1px solid var(--hair-dark); font-size:12.5px; color:color-mix(in oklab,var(--paper) 50%, transparent); font-family:var(--mono); letter-spacing:0.02em; flex-wrap:wrap; }
@media (max-width:820px){ .foot-grid{ grid-template-columns:1fr 1fr; gap:32px; } .foot-brand{ grid-column:1/-1; } }

/* ---------- generic sections ---------- */
.section{ padding:clamp(64px,9vw,128px) 0; }
.section.tight{ padding:clamp(48px,6vw,80px) 0; }
.dark{ background:var(--ink); color:var(--paper); }
.dark .lead{ color:color-mix(in oklab,var(--paper) 64%, transparent); }
.dark .eyebrow{ color:color-mix(in oklab,var(--paper) 60%, transparent); }
.rule{ height:1px; background:var(--line); border:0; margin:0; }

/* placeholder imagery */
.ph{
  position:relative; overflow:hidden; background:var(--paper-2);
  background-image:repeating-linear-gradient(135deg, var(--paper-3) 0 1px, transparent 1px 11px);
  border:1px solid var(--line); border-radius:var(--radius);
  display:flex; align-items:flex-end;
}
.ph.dark-ph{ background:oklch(0.235 0.004 60); border-color:var(--hair-dark);
  background-image:repeating-linear-gradient(135deg, oklch(0.28 0.004 60) 0 1px, transparent 1px 11px); }
.ph .ph-tag{
  font-family:var(--mono); font-size:11px; letter-spacing:0.04em; color:var(--muted);
  background:var(--paper); border:1px solid var(--line); border-radius:7px;
  padding:6px 10px; margin:14px; display:inline-flex; align-items:center; gap:7px;
}
.ph.dark-ph .ph-tag{ background:oklch(0.2 0.004 60); border-color:var(--hair-dark); color:color-mix(in oklab,var(--paper) 60%, transparent); }
.ph .ph-tag::before{ content:""; width:6px; height:6px; border-radius:1px; background:var(--faint); }

/* chip / tag */
.chip{ display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:500; padding:7px 13px; border:1px solid var(--line-2); border-radius:100px; color:var(--ink-2); background:var(--paper); }

.reveal{ opacity:0; transform:translateY(20px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } *{ scroll-behavior:auto; } }


/* ===== index page styles ===== */
/* ---------------- HERO ---------------- */
.hero{ position:relative; padding-top:clamp(48px,7vw,96px); padding-bottom:clamp(40px,6vw,72px); overflow:hidden; }
.hero-grid{ display:grid; grid-template-columns:1.02fr 0.98fr; gap:clamp(28px,4vw,64px); align-items:end; }
.hero-copy .eyebrow{ margin-bottom:26px; }
.hero h1{ font-weight:800; letter-spacing:-0.05em; font-size:clamp(3rem,6.6vw,6rem); line-height:0.92; }
.hero h1 em{ font-style:normal; position:relative; white-space:nowrap; }
.hero h1 .thin{ font-weight:400; letter-spacing:-0.03em; }
.hero .lead{ margin-top:28px; max-width:42ch; }
.hero-cta{ display:flex; gap:14px; margin-top:36px; flex-wrap:wrap; }
.hero-meta{ display:flex; gap:34px; margin-top:42px; padding-top:30px; border-top:1px solid var(--line); flex-wrap:wrap; }
.hero-meta .m{ display:flex; flex-direction:column; gap:5px; }
.hero-meta .m b{ font-size:1.5rem; font-weight:700; letter-spacing:-0.03em; }
.hero-meta .m span{ font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--muted); }
.hero-visual{ position:relative; }
.hero-visual .ph{ aspect-ratio:4/5; }
.hero-badge{
  position:absolute; left:-22px; bottom:30px; background:var(--ink); color:var(--paper);
  border-radius:14px; padding:16px 20px; display:flex; align-items:center; gap:14px; max-width:260px;
  box-shadow:0 24px 50px -24px rgba(0,0,0,.5);
}
.hero-badge .mark{ width:34px; height:34px; flex:none; color:var(--paper); }
.hero-badge p{ font-size:13px; line-height:1.4; color:color-mix(in oklab,var(--paper) 78%,transparent); }
.hero-badge b{ color:var(--paper); display:block; font-size:13.5px; }
@media (max-width:900px){
  .hero-grid{ grid-template-columns:1fr; gap:36px; }
  .hero-visual{ order:-1; }
  .hero-visual .ph{ aspect-ratio:16/11; }
  .hero-badge{ left:auto; right:18px; }
}

/* ---------------- BRAND STRIP ---------------- */
.brands{ border-block:1px solid var(--line); padding:26px 0; }
.brands .wrap{ display:flex; align-items:center; gap:clamp(20px,4vw,56px); flex-wrap:wrap; justify-content:space-between; }
.brands .lbl{ font-family:var(--mono); font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--muted); white-space:nowrap; }
.brands .names{ display:flex; align-items:center; gap:clamp(22px,4vw,52px); flex-wrap:wrap; }
.brands .names span{ font-size:clamp(1rem,2vw,1.45rem); font-weight:600; letter-spacing:-0.02em; color:var(--ink-2); opacity:.72; }

/* ---------------- SECTION HEAD ---------------- */
.sec-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:28px; margin-bottom:clamp(36px,5vw,60px); }
.sec-head .left{ max-width:60ch; }
.sec-head h2{ margin-top:18px; }
.sec-head p{ margin-top:18px; }
@media (max-width:760px){ .sec-head{ flex-direction:column; align-items:flex-start; } }

/* ---------------- SERVICES ---------------- */
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.svc{ background:var(--paper); padding:30px 28px 34px; min-height:212px; display:flex; flex-direction:column; transition:background .3s; position:relative; }
.svc:hover{ background:var(--paper-2); }
.svc .no{ font-family:var(--mono); font-size:12px; color:var(--faint); letter-spacing:0.05em; }
.svc h3{ font-size:1.32rem; font-weight:700; letter-spacing:-0.03em; margin-top:auto; }
.svc p{ font-size:14.5px; color:var(--muted); margin-top:10px; line-height:1.5; }
.svc .go{ position:absolute; top:28px; right:26px; width:34px; height:34px; border:1px solid var(--line-2); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--ink); opacity:0; transform:translateY(-4px); transition:.3s var(--ease); }
.svc:hover .go{ opacity:1; transform:none; }
@media (max-width:880px){ .svc-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:540px){ .svc-grid{ grid-template-columns:1fr; } .svc{ min-height:0; } }

/* ---------------- STUDIO SPLIT ---------------- */
.split{ display:grid; grid-template-columns:0.92fr 1.08fr; gap:clamp(32px,5vw,72px); align-items:center; }
.split .ph{ aspect-ratio:5/4; }
.split-copy h2{ margin:20px 0 22px; }
.studio-facts{ display:flex; flex-direction:column; gap:0; margin-top:30px; border-top:1px solid var(--line); }
.studio-facts .row{ display:flex; gap:18px; padding:16px 0; border-bottom:1px solid var(--line); align-items:baseline; }
.studio-facts .row .k{ font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--muted); width:120px; flex:none; }
.studio-facts .row .v{ font-size:15.5px; color:var(--ink-2); }
@media (max-width:820px){ .split{ grid-template-columns:1fr; } }

/* ---------------- STATS ---------------- */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--hair-dark); }
.stat{ background:var(--ink); padding:44px 28px; }
.stat b{ display:block; font-size:clamp(2.6rem,5vw,3.6rem); font-weight:800; letter-spacing:-0.05em; line-height:1; }
.stat span{ display:block; margin-top:14px; font-size:14px; color:color-mix(in oklab,var(--paper) 60%,transparent); max-width:22ch; }
.stat .u{ font-weight:400; color:color-mix(in oklab,var(--paper) 50%,transparent); }
@media (max-width:820px){ .stats{ grid-template-columns:repeat(2,1fr); } }

/* ---------------- WORK PREVIEW ---------------- */
.work-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:16px; }
.work-grid .ph{ position:relative; }
.w1{ grid-column:span 7; aspect-ratio:16/11; }
.w2{ grid-column:span 5; aspect-ratio:4/5; }
.w3{ grid-column:span 5; aspect-ratio:4/5; }
.w4{ grid-column:span 7; aspect-ratio:16/11; }
@media (max-width:760px){ .work-grid{ grid-template-columns:1fr 1fr; } .w1,.w2,.w3,.w4{ grid-column:span 1; aspect-ratio:1/1; } }

/* ---------------- TESTIMONIALS ---------------- */
.quotes{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.quote{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:30px 28px; display:flex; flex-direction:column; gap:18px; }
.quote .stars{ display:flex; gap:3px; color:var(--ink); }
.quote .stars svg{ width:15px; height:15px; }
.quote p{ font-size:16.5px; line-height:1.5; letter-spacing:-0.015em; }
.quote .by{ margin-top:auto; display:flex; align-items:center; gap:12px; }
.quote .av{ width:38px; height:38px; border-radius:50%; background:var(--paper-3); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; color:var(--ink-2); }
.quote .by b{ font-size:14.5px; display:block; }
.quote .by span{ font-family:var(--mono); font-size:11px; color:var(--muted); letter-spacing:0.04em; }
@media (max-width:880px){ .quotes{ grid-template-columns:1fr; } }

/* ---------------- CTA BAND ---------------- */
.cta-band{ position:relative; overflow:hidden; }
.cta-chev{ position:absolute; inset:0; opacity:.06; color:var(--paper); pointer-events:none; }
.cta-inner{ position:relative; display:grid; grid-template-columns:1.3fr 1fr; gap:48px; align-items:center; }
.cta-inner h2{ font-size:clamp(2.2rem,4.6vw,3.6rem); }
.cta-inner .lead{ margin-top:20px; max-width:40ch; }
.cta-side{ display:flex; flex-direction:column; gap:14px; }
.cta-side .btn{ justify-content:space-between; }
.cta-tel{ display:flex; flex-direction:column; gap:4px; padding:20px 22px; border:1px solid var(--hair-dark); border-radius:14px; }
.cta-tel span{ font-family:var(--mono); font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:color-mix(in oklab,var(--paper) 55%,transparent); }
.cta-tel b{ font-size:1.7rem; letter-spacing:-0.03em; font-weight:700; }
@media (max-width:820px){ .cta-inner{ grid-template-columns:1fr; gap:32px; } }


/* ===== services page styles ===== */
.page-hero{ padding:clamp(56px,8vw,104px) 0 clamp(40px,5vw,64px); border-bottom:1px solid var(--line); }
.page-hero .inner{ display:grid; grid-template-columns:1.15fr 0.85fr; gap:48px; align-items:end; }
.page-hero h1{ font-weight:800; letter-spacing:-0.045em; font-size:clamp(2.8rem,6vw,5rem); line-height:0.95; margin-top:24px; }
.page-hero .lead{ margin-top:22px; max-width:48ch; }
.page-hero .aside{ display:flex; flex-direction:column; gap:14px; padding-bottom:6px; }
.mini-fact{ border:1px solid var(--line); border-radius:12px; padding:18px 20px; }
.mini-fact b{ font-size:1.1rem; letter-spacing:-0.02em; }
.mini-fact span{ display:block; font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
@media (max-width:820px){ .page-hero .inner{ grid-template-columns:1fr; gap:32px; } }

.svc-row{ display:grid; grid-template-columns:64px 1.1fr 1fr; gap:clamp(20px,4vw,56px); padding:clamp(34px,4vw,52px) 0; border-bottom:1px solid var(--line); align-items:start; }
.svc-row:first-child{ border-top:1px solid var(--line); }
.svc-row .idx{ font-family:var(--mono); font-size:14px; color:var(--faint); padding-top:8px; }
.svc-row h3{ font-size:clamp(1.6rem,2.8vw,2.2rem); font-weight:700; letter-spacing:-0.035em; }
.svc-row p{ margin-top:14px; color:var(--muted); max-width:46ch; font-size:16px; }
.svc-row .tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.svc-row .thumb{ aspect-ratio:4/3; }
@media (max-width:820px){ .svc-row{ grid-template-columns:1fr; gap:18px; } .svc-row .idx{ padding-top:0; } .svc-row .thumb{ order:-1; } }

.process{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; margin-top:clamp(36px,5vw,56px); }
.step{ background:var(--paper); padding:30px 26px 34px; }
.step .n{ width:38px; height:38px; border:1px solid var(--ink); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-size:14px; }
.step h4{ margin-top:22px; font-size:1.2rem; letter-spacing:-0.02em; }
.step p{ margin-top:10px; font-size:14.5px; color:var(--muted); }
@media (max-width:820px){ .process{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .process{ grid-template-columns:1fr; } }


/* ===== gallery page styles ===== */
.page-hero{ padding:clamp(56px,8vw,104px) 0 clamp(28px,4vw,44px); }
.page-hero h1{ font-weight:800; letter-spacing:-0.045em; font-size:clamp(2.8rem,6vw,5rem); line-height:0.95; margin-top:24px; }
.page-hero .lead{ margin-top:22px; max-width:50ch; }

.filters{ position:sticky; top:74px; z-index:20; background:color-mix(in oklab,var(--paper) 86%,transparent); backdrop-filter:blur(12px); border-block:1px solid var(--line); }
.filters .wrap{ display:flex; gap:8px; padding-block:16px; flex-wrap:wrap; align-items:center; }
.filter{ font-family:var(--sans); font-size:14px; font-weight:500; color:var(--ink-2); background:transparent; border:1px solid var(--line-2); border-radius:100px; padding:9px 16px; cursor:pointer; transition:.2s; }
.filter:hover{ border-color:var(--ink); }
.filter.active{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.filter .c{ font-family:var(--mono); font-size:11px; opacity:.55; margin-left:6px; }

.masonry{ columns:3; column-gap:16px; padding-top:clamp(28px,4vw,44px); }
.tile{ break-inside:avoid; margin-bottom:16px; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--paper); transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.tile:hover{ transform:translateY(-3px); box-shadow:0 24px 48px -28px rgba(0,0,0,.32); }
.tile .ph{ border:0; border-radius:0; }
.tile .cap{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; }
.tile .cap b{ font-size:14.5px; font-weight:600; letter-spacing:-0.01em; }
.tile .cap span{ font-family:var(--mono); font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--muted); }
.t-tall .ph{ aspect-ratio:3/4; } .t-wide .ph{ aspect-ratio:5/4; } .t-sq .ph{ aspect-ratio:1/1; }
.tile.hide{ display:none; }
@media (max-width:900px){ .masonry{ columns:2; } }
@media (max-width:560px){ .masonry{ columns:1; } }
.empty-note{ font-family:var(--mono); font-size:13px; color:var(--muted); padding:40px 0; }


/* ===== about page styles ===== */
.page-hero{ padding:clamp(56px,8vw,104px) 0 clamp(40px,5vw,64px); }
.page-hero h1{ font-weight:800; letter-spacing:-0.045em; font-size:clamp(2.8rem,6vw,5rem); line-height:0.95; margin-top:24px; max-width:16ch; }
.page-hero .lead{ margin-top:24px; max-width:54ch; }

.story{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,72px); align-items:center; }
.story .ph{ aspect-ratio:4/5; }
.story-copy p{ color:var(--muted); font-size:17px; margin-top:18px; max-width:52ch; }
.story-copy p:first-child{ margin-top:0; }
.story-copy h2{ margin-bottom:8px; }
@media (max-width:820px){ .story{ grid-template-columns:1fr; } .story .ph{ order:-1; aspect-ratio:16/11; } }

.values{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.value{ background:var(--paper); padding:34px 30px 38px; }
.value .mk{ width:34px; height:34px; color:var(--ink); }
.value h3{ margin-top:22px; font-size:1.3rem; letter-spacing:-0.025em; }
.value p{ margin-top:12px; color:var(--muted); font-size:15px; }
@media (max-width:820px){ .values{ grid-template-columns:1fr; } }

.areas{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(28px,4vw,56px); align-items:center; }
.area-list{ display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.area-list .chip{ font-size:14px; padding:9px 16px; }
.map-ph{ aspect-ratio:16/10; }
@media (max-width:820px){ .areas{ grid-template-columns:1fr; } }


/* ===== contact page styles ===== */
.contact-hero{ padding:clamp(48px,7vw,88px) 0 clamp(20px,3vw,32px); }
.contact-hero h1{ font-weight:800; letter-spacing:-0.045em; font-size:clamp(2.6rem,5.6vw,4.6rem); line-height:0.95; margin-top:22px; }
.contact-hero .lead{ margin-top:20px; max-width:48ch; }

.c-grid{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:clamp(32px,5vw,72px); align-items:start; }
@media (max-width:900px){ .c-grid{ grid-template-columns:1fr; } }

/* form */
.form{ display:grid; gap:18px; }
.field{ display:flex; flex-direction:column; gap:8px; }
.field label{ font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--muted); }
.field label .req{ color:var(--ink); }
.field input, .field textarea, .field select{
  font-family:var(--sans); font-size:16px; color:var(--ink); background:var(--paper);
  border:1px solid var(--line-2); border-radius:11px; padding:14px 15px; width:100%;
  transition:border-color .2s, box-shadow .2s; appearance:none;
}
.field textarea{ resize:vertical; min-height:120px; }
.field input:focus, .field textarea:focus, .field select:focus{ outline:none; border-color:var(--ink); box-shadow:0 0 0 3px color-mix(in oklab,var(--ink) 12%, transparent); }
.field.err input, .field.err textarea, .field.err select{ border-color:oklch(0.5 0.16 25); }
.field .msg{ font-size:12.5px; color:oklch(0.5 0.16 25); display:none; }
.field.err .msg{ display:block; }
.row2{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media (max-width:480px){ .row2{ grid-template-columns:1fr; } }
.chips-row{ display:flex; flex-wrap:wrap; gap:8px; }
.chip-check{ cursor:pointer; }
.chip-check input{ position:absolute; opacity:0; width:0; height:0; }
.chip-check span{ display:inline-flex; align-items:center; gap:7px; font-size:13.5px; font-weight:500; padding:9px 14px; border:1px solid var(--line-2); border-radius:100px; color:var(--ink-2); transition:.18s; }
.chip-check input:checked + span{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.chip-check input:focus-visible + span{ box-shadow:0 0 0 3px color-mix(in oklab,var(--ink) 18%, transparent); }
.form-foot{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-top:4px; }
.form-note{ font-size:13px; color:var(--muted); }
.success{ display:none; border:1px solid var(--line); background:var(--paper-2); border-radius:var(--radius); padding:28px 26px; }
.success.show{ display:block; }
.success b{ font-size:1.3rem; letter-spacing:-0.02em; }
.success p{ color:var(--muted); margin-top:8px; }

/* contact aside */
.info-card{ border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.info-card .map-ph{ aspect-ratio:16/10; border:0; border-radius:0; }
.info-body{ padding:26px 26px 28px; display:grid; gap:22px; }
.info-item{ display:grid; grid-template-columns:38px 1fr; gap:14px; align-items:start; }
.info-item .ic{ width:38px; height:38px; border:1px solid var(--line-2); border-radius:10px; display:flex; align-items:center; justify-content:center; }
.info-item .ic svg{ width:17px; height:17px; }
.info-item h4{ font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--muted); font-weight:500; margin-bottom:6px; }
.info-item p{ font-size:15.5px; color:var(--ink-2); line-height:1.45; }
.info-item a{ color:var(--ink); }
.info-item a:hover{ border-bottom:1px solid var(--line-2); }
.hours{ display:flex; flex-direction:column; gap:2px; }
.hours .h{ display:flex; justify-content:space-between; gap:16px; padding:7px 0; border-bottom:1px solid var(--line); font-size:14.5px; }
.hours .h:last-child{ border-bottom:0; }
.hours .h span:first-child{ color:var(--muted); }
.hours .h.closed span:last-child{ color:var(--faint); }


/* ===== Elementor build overrides ===== */
.reveal{opacity:1 !important;transform:none !important;}

/* === Custom integrations for live build === */
.ph.has-img{ background:transparent; background-image:none; }
.ph.has-img > .ph-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; border-radius:calc(var(--radius) - 1px); }
body.elementor-page header.entry-header, body.elementor-page footer.site-footer.hello-default{ display:none !important; }

/* Hide Hello Elementor's native header & footer so Theme Builder templates take over */
header#site-header.site-header,
footer#site-footer.site-footer,
.dynamic-header,
.dynamic-footer{ display:none !important; }

/* === Force design grids on Elementor containers === */
/* Strategy: override the --display variable AND set display directly with !important.
   Elementor's `.e-con { display: var(--display) }` rule reads --display, so setting
   --display:grid via class makes Elementor itself render grid. */
.hero-grid,
.elementor-element.hero-grid,
.e-con.hero-grid{
  --display:grid !important;
  --flex-direction:initial !important;
  display:grid !important;
  grid-template-columns:1.02fr 0.98fr !important;
  gap:clamp(28px,4vw,64px) !important;
  align-items:end !important;
}
/* grid children: let Elementor's --width:100% naturally fill the cell */
.hero-grid > .elementor-element,
.e-con.hero-grid > .e-con{
  width:100% !important;
}
.elementor-element.hero-grid,
.e-con.hero-grid{ display:grid !important; grid-template-columns:1.02fr 0.98fr !important; gap:clamp(28px,4vw,64px) !important; align-items:end !important; }
.split, .elementor-element.split, .e-con.split{
  --display:grid !important; display:grid !important; grid-template-columns:0.92fr 1.08fr !important; gap:clamp(32px,5vw,72px) !important; align-items:center !important;
}
.story, .elementor-element.story, .e-con.story{
  --display:grid !important; display:grid !important; grid-template-columns:1fr 1fr !important; gap:clamp(32px,5vw,72px) !important; align-items:center !important;
}
.svc-grid, .elementor-element.svc-grid, .e-con.svc-grid{
  --display:grid !important; display:grid !important; grid-template-columns:repeat(3,1fr) !important; gap:1px !important; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
}
.work-grid, .elementor-element.work-grid, .e-con.work-grid{
  --display:grid !important; display:grid !important; grid-template-columns:repeat(12,1fr) !important; gap:16px !important;
}
.stats, .elementor-element.stats, .e-con.stats{
  --display:grid !important; display:grid !important; grid-template-columns:repeat(4,1fr) !important; gap:1px !important; background:var(--hair-dark);
}
.quotes, .elementor-element.quotes, .e-con.quotes{
  --display:grid !important; display:grid !important; grid-template-columns:repeat(3,1fr) !important; gap:18px !important;
}
.values, .elementor-element.values, .e-con.values{
  --display:grid !important; display:grid !important; grid-template-columns:repeat(3,1fr) !important; gap:1px !important; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
}
.process, .elementor-element.process, .e-con.process{
  --display:grid !important; display:grid !important; grid-template-columns:repeat(4,1fr) !important; gap:1px !important; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; margin-top:clamp(36px,5vw,56px);
}
.cta-inner, .elementor-element.cta-inner, .e-con.cta-inner{
  --display:grid !important; display:grid !important; grid-template-columns:1.3fr 1fr !important; gap:48px !important; align-items:center !important;
}
.areas, .elementor-element.areas, .e-con.areas{
  --display:grid !important; display:grid !important; grid-template-columns:0.9fr 1.1fr !important; gap:clamp(28px,4vw,56px) !important; align-items:center !important;
}
.svc-row, .elementor-element.svc-row, .e-con.svc-row{
  --display:grid !important; display:grid !important; grid-template-columns:64px 1.1fr 1fr !important; gap:clamp(20px,4vw,56px) !important; padding:clamp(34px,4vw,52px) 0; border-bottom:1px solid var(--line); align-items:start;
}
.c-grid, .elementor-element.c-grid, .e-con.c-grid{
  --display:grid !important; display:grid !important; grid-template-columns:1.05fr 0.95fr !important; gap:clamp(32px,5vw,72px) !important; align-items:start !important;
}
.sec-head, .elementor-element.sec-head, .e-con.sec-head{
  --display:flex !important; --flex-direction:row !important; display:flex !important; flex-direction:row !important; justify-content:space-between; align-items:flex-end; gap:28px; margin-bottom:clamp(36px,5vw,60px);
}
/* Grid children: fill their cell */
.split > .elementor-element, .story > .elementor-element, .svc-grid > .elementor-element,
.work-grid > .elementor-element, .stats > .elementor-element, .quotes > .elementor-element,
.values > .elementor-element, .process > .elementor-element, .cta-inner > .elementor-element,
.areas > .elementor-element, .svc-row > .elementor-element, .c-grid > .elementor-element{
  width:100% !important;
}

@media (max-width:900px){
  .elementor-element.hero-grid, .e-con.hero-grid{ grid-template-columns:1fr !important; gap:36px !important; }
  .elementor-element.hero-visual, .e-con.hero-visual{ order:-1; }
}
@media (max-width:820px){
  .elementor-element.split, .e-con.split,
  .elementor-element.story, .e-con.story,
  .elementor-element.areas, .e-con.areas,
  .elementor-element.svc-row, .e-con.svc-row,
  .elementor-element.cta-inner, .e-con.cta-inner,
  .elementor-element.stats, .e-con.stats,
  .elementor-element.process, .e-con.process,
  .elementor-element.values, .e-con.values{ grid-template-columns:1fr !important; }
  .elementor-element.sec-head, .e-con.sec-head{ flex-direction:column !important; align-items:flex-start; }
}
@media (max-width:900px){ .elementor-element.c-grid, .e-con.c-grid{ grid-template-columns:1fr !important; } }
@media (max-width:880px){ .elementor-element.svc-grid, .e-con.svc-grid, .elementor-element.quotes, .e-con.quotes{ grid-template-columns:repeat(2,1fr) !important; } }
@media (max-width:760px){
  .elementor-element.work-grid, .e-con.work-grid{ grid-template-columns:1fr 1fr !important; }
  .elementor-element.work-grid .w1, .elementor-element.work-grid .w2,
  .elementor-element.work-grid .w3, .elementor-element.work-grid .w4{ grid-column:span 1 !important; aspect-ratio:1/1 !important; }
}
@media (max-width:540px){ .elementor-element.svc-grid, .e-con.svc-grid{ grid-template-columns:1fr !important; } }

/* === Heading colour override — beat .elementor-kit-3 h1 (which IS dark, but page CSS may override) === */
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-heading h1.elementor-heading-title,
.elementor-widget-heading h2.elementor-heading-title,
.elementor-widget-heading h3.elementor-heading-title,
.elementor-widget-heading h4.elementor-heading-title{
  color:var(--ink) !important;
  font-family:'Schibsted Grotesk', system-ui, sans-serif !important;
}
.dark .elementor-widget-heading .elementor-heading-title,
.cta-band .elementor-widget-heading .elementor-heading-title{ color:var(--paper) !important; }

/* === Unified h1 across all pages (home hero + page heros + contact hero) === */
h1.elementor-heading-title,
.elementor-widget-heading h1.elementor-heading-title,
.hero h1, .page-hero h1, .contact-hero h1{
  font-weight:800 !important;
  letter-spacing:-0.045em !important;
  font-size:clamp(2.8rem, 6vw, 5rem) !important;
  line-height:0.95 !important;
  color:var(--ink) !important;
  margin:0 !important;
  font-family:'Schibsted Grotesk', system-ui, sans-serif !important;
}
.elementor-element.split-copy h2.elementor-heading-title,
.elementor-element.story-copy h2.elementor-heading-title{
  font-size:clamp(2rem, 4.4vw, 3.4rem) !important;
  font-weight:800 !important;
  letter-spacing:-0.04em !important;
  line-height:1.1 !important;
  color:var(--ink) !important;
  margin:20px 0 22px !important;
}
.elementor-element.cta-inner h2.elementor-heading-title{
  font-size:clamp(2.2rem, 4.6vw, 3.6rem) !important;
  font-weight:800 !important;
  letter-spacing:-0.045em !important;
  line-height:0.96 !important;
  color:var(--paper) !important;
  margin-top:18px !important;
}

/* === Button colour overrides — beat Elementor kit's link_normal_color === */
a.btn,
a.btn:hover,
a.btn:focus,
a.btn:visited{
  color:var(--fg) !important;
  background:var(--bg) !important;
  border-color:var(--bd) !important;
}
a.btn.ghost{ --bg:transparent !important; --fg:var(--ink) !important; --bd:var(--line-2) !important; }
a.btn.ghost:hover{ --bg:var(--ink) !important; --fg:var(--paper) !important; --bd:var(--ink) !important; }
a.btn.on-dark{ --bg:var(--paper) !important; --fg:var(--ink) !important; --bd:var(--paper) !important; }
a.btn.on-dark.ghost{ --bg:transparent !important; --fg:var(--paper) !important; --bd:var(--hair-dark) !important; }
a.btn.on-dark.ghost:hover{ --bg:var(--paper) !important; --fg:var(--ink) !important; --bd:var(--paper) !important; }
/* Force button .arr (the arrow) inherit the right colour too */
a.btn .arr{ color:inherit !important; }

/* nav links inside header keep design colour (not kit-link colour) */
header.site-head .nav-links a,
header.site-head .mobile-menu a,
header.site-head .nav-tel,
header.site-head .brand{ color:var(--ink) !important; }
header.site-head .nav-links a:hover,
header.site-head .mobile-menu a:hover{ color:var(--ink) !important; background:var(--paper-2) !important; }

/* footer dark — links should be cream */
footer.site-foot a{ color:color-mix(in oklab, var(--paper) 78%, transparent) !important; }
footer.site-foot a:hover{ color:var(--paper) !important; }

/* === Elementor widget resets — keep wrappers as block but invisible visually === */
.elementor-widget{ width:100%; }
.elementor-widget-container{ padding:0; margin:0; }

/* Heading widget — strip Elementor defaults so design CSS owns h1/h2/h3 styling */
.elementor-widget-heading .elementor-heading-title{
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  color: inherit;
  margin: 0;
}
.hero h1, .hero .elementor-heading-title{ font-weight:800; letter-spacing:-0.05em; font-size:clamp(3rem,6.6vw,6rem); line-height:0.92; color:var(--ink); margin:0; }
.page-hero h1, .page-hero .elementor-heading-title{ font-weight:800; letter-spacing:-0.045em; font-size:clamp(2.8rem,6vw,5rem); line-height:0.95; color:var(--ink); margin-top:24px; }
.contact-hero h1, .contact-hero .elementor-heading-title{ font-weight:800; letter-spacing:-0.045em; font-size:clamp(2.6rem,5.6vw,4.6rem); line-height:0.95; color:var(--ink); margin-top:22px; }
.split-copy h2.elementor-heading-title,
.story-copy h2.elementor-heading-title{ font-size:clamp(2rem,4.4vw,3.4rem); font-weight:800; letter-spacing:-0.04em; color:var(--ink); margin:20px 0 22px; }
.svc h3.elementor-heading-title{ font-size:1.32rem; font-weight:700; letter-spacing:-0.03em; margin-top:auto; color:var(--ink); }
.values h3.elementor-heading-title{ font-size:1.3rem; font-weight:700; letter-spacing:-0.025em; margin-top:22px; color:var(--ink); }
.svc-row h3.elementor-heading-title{ font-size:clamp(1.6rem,2.8vw,2.2rem); font-weight:700; letter-spacing:-0.035em; color:var(--ink); margin:0; }
.step h4.elementor-heading-title{ font-size:1.2rem; font-weight:700; letter-spacing:-0.02em; color:var(--ink); margin-top:22px; }
.cta-inner h2.elementor-heading-title{ font-size:clamp(2.2rem,4.6vw,3.6rem); margin-top:18px; color:var(--paper); font-weight:800; letter-spacing:-0.045em; line-height:0.96; }
.dark .elementor-heading-title{ color: var(--paper); }

/* Text editor widget — paragraph margins come from inline classes only */
.elementor-widget-text-editor .elementor-widget-container > p{ margin:0; }

/* Make sure the section-as-container with class .hero-grid actually grids two columns */
.elementor-element.hero{ position:relative; padding:clamp(48px,7vw,96px) 0 clamp(40px,6vw,72px) !important; overflow:hidden; }
.elementor-element.wrap.hero-grid > .elementor-element{ width:auto; }
.elementor-element.hero-copy{ display:flex; flex-direction:column; gap:0; }
.elementor-element.hero-copy > .elementor-widget-html:first-child{ margin-bottom:26px; }
.elementor-element.hero-copy .elementor-widget-text-editor{ margin-top:28px; }

/* Sticky header: ensure the Elementor container holding .site-head also flows out so sticky works */
.elementor-element.block-header{ position:sticky; top:0; z-index:50; }
.elementor-element.block-header > .elementor-widget-html,
.elementor-element.block-header .elementor-widget-container{ position:static; }
.elementor-element.block-header header.site-head{ position:relative; }/* End custom CSS */