/* ═══════════════════════════════════════════════════════════════════════════
   LION CREATIVES — contact.html
   Screenshot recreation, 2026-08-29. Reference: 799×1969 image, treated as a
   1440px desktop (scale ×1.8023). Every measurement below is the reference
   value at 1440 expressed in --u, a unit that equals 1px at ≥1440 and scales
   linearly with the viewport down to the tablet breakpoint (1151px).

   SCOPE: everything is qualified by body.pg-contact. Nothing in this file can
   reach another route. Shared markup (.nav, .menu, .foot, #enquiry) keeps its
   hooks so v9.js keeps working; only its appearance is overridden here.
   ═══════════════════════════════════════════════════════════════════════════ */

.pg-contact{
  --u:0.0694444vw;
  /* ONE radius ladder. Before this pass the page used 24/20/18/16/12/10/9/8/6
     with no relationship between them, which is what made the panels read as
     assembled rather than designed. Three steps, each doing one job. */
  --r-panel:calc(18*var(--u));   /* the big surfaces: enquiry card, booking card */
  --r-ctl:calc(7*var(--u));      /* anything you click: buttons, options, fields */
  --r-chip:calc(5*var(--u));     /* small marks: calendar days, nav squares */
  /* == V1 COLOUR SYSTEM . contact ========================================
     The page was a black hero and a black footer with white in between. It is
     now four light grounds with one deliberate dark anchor - the closing CTA
     panel - and the brand red reduced to rules, arrows and states. */
  --ct-bg:#faf9f7;         /* the page ground - soft warm white            */
  --ct-white:#ffffff;      /* the clean-white sections (booking, FAQ)      */
  --ct-foot:#f0eee9;       /* the footer's own quiet ground                */
  --ct-card:#ffffff;       /* the elevated enquiry / estimator panel       */
  --ct-input:#fbfaf8;
  --ct-fg:#1c1b1a;
  --ct-ink:#1c1b1a;
  --ct-strong:#3f3d39;     /* secondary copy                              */
  --ct-muted:#5c5a55;
  --ct-dim:#67655f;
  --ct-faint:#8b8880;      /* placeholders and inert glyphs               */
  --ct-line:rgba(28,27,26,.10);
  --ct-line-2:rgba(28,27,26,.17);
  --ct-hard:#e2ded7;
  --ct-anchor:var(--color-black);   /* the page's structural black         */
  --ct-on-anchor:#f7f6f3;
  --ct-red:var(--signal);          /* rules, marks, arrows, fills          */
  --ct-red-text:var(--color-brand-text);  /* small red TYPE on light 7.4:1 */
  --ct-ease:cubic-bezier(.25,.1,.25,1);
  --ct-font:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  background:var(--ct-bg);
  color:var(--ct-fg);
  font-family:var(--ct-font);
  font-stretch:100%;
  font-size:calc(15*var(--u));
  line-height:calc(22*var(--u));
}
@media(min-width:1440px){.pg-contact{--u:1px}}
.pg-contact button,.pg-contact input,.pg-contact textarea,.pg-contact select{font-family:var(--ct-font)}
.pg-contact main{display:block}
.pg-contact section{padding:0;position:static}
.pg-contact .motion-toggle{display:none}
.ct-in{max-width:1440px;margin:0 auto;box-sizing:border-box}
.pg-contact p{margin:0}
.pg-contact :focus-visible{outline:2px solid var(--ct-ink);outline-offset:3px}
.ct-book :focus-visible,.ct-faq :focus-visible{outline-color:var(--ct-ink)}
.ct-panel :focus-visible{outline-color:var(--ct-on-anchor)}

/* ── icons ── */
.ct-hero-copy,.ct-book-copy,.ct-faq-copy,.ct-card{min-width:0}
.ct-arrow{width:calc(14*var(--u));height:calc(14*var(--u));flex:none}
.ct-arrow path{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* ═══ NAV ═══ */
.pg-contact .nav{position:absolute;inset:0 0 auto 0;height:calc(128*var(--u));padding:0 calc(64*var(--u));gap:0;
  background:transparent;border:0;backdrop-filter:none;transition:none}
.pg-contact .nav.scrolled{background:transparent;backdrop-filter:none;border-bottom:0}
.pg-contact .nav-mark{gap:calc(14*var(--u));font-family:var(--ct-font);font-weight:700;font-size:calc(18.5*var(--u));line-height:1;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ct-ink);font-stretch:100%;white-space:nowrap}
.pg-contact .nav-mark svg{width:calc(46*var(--u));height:calc(46*var(--u));fill:var(--ct-ink)}
.pg-contact .nav-links{display:none;gap:calc(52*var(--u));margin-left:auto;margin-right:calc(60*var(--u))}
.pg-contact .nav-links a{font-family:var(--ct-font);font-stretch:100%;font-weight:500;font-size:calc(16*var(--u));line-height:1;
  letter-spacing:0;color:var(--ct-ink);opacity:.82;transition:opacity 180ms var(--ct-ease)}
.pg-contact .nav-links a:hover,.pg-contact .nav-links a:focus-visible{opacity:1}
.pg-contact .nav-cta{margin-left:0;min-height:0;height:calc(48*var(--u));padding:0 calc(18*var(--u));box-sizing:border-box;
  border:1px solid var(--ct-line-2);border-radius:var(--r-ctl);
  font-family:var(--ct-font);font-weight:600;font-size:calc(14*var(--u));line-height:1;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ct-ink);display:inline-flex;align-items:center;gap:calc(12*var(--u));background:transparent;
  transition:background 180ms var(--ct-ease),border-color 180ms var(--ct-ease)}
.pg-contact .nav-cta::before{display:none}
.pg-contact .nav-cta>span{padding:0}
.pg-contact .nav-cta .ct-arrow{color:var(--ct-red)}
.pg-contact .nav-cta:hover,.pg-contact .nav-cta:focus-visible{background:rgba(28,27,26,.045);border-color:rgba(28,27,26,.34);color:var(--ct-ink)}
@media(min-width:900px){.pg-contact .nav-links{display:flex}}
@media(max-width:899px){.pg-contact .nav-cta{display:none}}

/* ═══ 01 · HERO ═══ */
/* V2 - THE MASTHEAD IS BLACK. Every route on the site now opens on the
   structural black, and this one opens with a white enquiry panel standing on
   it: the plate is the brightest thing on the screen, which is exactly where
   the page wants the visitor to look. */
.pg-contact section.ct-hero{background:var(--ct-anchor);color:var(--color-on-black);
  position:relative}
.pg-contact section.ct-hero::after{content:"";position:absolute;inset:auto auto 0 calc(96*var(--u));
  height:2px;width:clamp(96px,17vw,236px);background:var(--ct-red);pointer-events:none}

.ct-hero .ct-in{padding:calc(200*var(--u)) calc(128*var(--u)) calc(72*var(--u)) calc(96*var(--u));display:grid;grid-template-columns:1fr calc(624*var(--u));column-gap:calc(56*var(--u));align-items:start}
.ct-eyebrow{display:flex;align-items:baseline;gap:calc(22*var(--u));margin:0;
  font-weight:600;font-size:calc(12.3*var(--u));line-height:calc(16*var(--u));letter-spacing:.14em;text-transform:uppercase;color:var(--ct-dim)}
.ct-eyebrow .n{color:var(--ct-red-text)}
.ct-hero p.ct-eyebrow{margin-top:calc(4.5*var(--u))}
.pg-contact .ct-h1{font-family:var(--ct-font);font-variation-settings:normal;font-optical-sizing:auto;text-wrap:initial;
  font-weight:500;font-size:calc(65*var(--u));line-height:calc(70*var(--u));letter-spacing:-.022em;margin:calc(29.5*var(--u)) 0 0;color:var(--ct-ink)}
.ct-red{color:var(--ct-red)}
.pg-contact p.ct-lede{font-weight:400;font-size:calc(18*var(--u));line-height:calc(31*var(--u));color:var(--ct-muted);margin:calc(26*var(--u)) 0 0;max-width:calc(470*var(--u))}
.ct-points{list-style:none;margin:calc(56*var(--u)) 0 0;padding:calc(34*var(--u)) 0 0;display:grid;gap:calc(26*var(--u));
  border-top:1px solid var(--ct-line);max-width:calc(470*var(--u))}
.ct-points li{display:flex;align-items:center;gap:calc(20*var(--u));font-weight:400;font-size:calc(15.5*var(--u));line-height:calc(18*var(--u));color:var(--ct-strong)}
.ct-points svg{width:calc(17*var(--u));height:calc(17*var(--u));flex:none;color:var(--ct-faint);
  transition:color 200ms var(--ct-ease)}
.ct-points li:hover svg{color:var(--ct-red)}
.ct-points svg *{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}

/* enquiry card */
.ct-card{background:var(--ct-card);border:0;border-radius:var(--r-panel);
  box-shadow:0 2px 4px rgba(0,0,0,.18),0 24px 64px rgba(0,0,0,.34);
  padding:calc(40*var(--u)) calc(38*var(--u)) calc(42*var(--u));box-sizing:border-box;position:relative}
/* A single hairline of light along the top edge — the one piece of "depth" on
   V1: it is now a hairline of brand red, the same mark the closing anchor
   wears. It says "this is where the work starts" in one pixel, which is the
   whole argument for spending red sparingly. */
.ct-card::before{content:"";position:absolute;inset:0 0 auto;height:1px;border-radius:var(--r-panel) var(--r-panel) 0 0;
  background:linear-gradient(90deg,var(--ct-red) 0%,var(--ct-red) 26%,rgba(218,31,38,0) 64%);
  pointer-events:none}
.pg-contact .fstep{display:block}
.ct-row2{display:grid;grid-template-columns:1fr 1fr;gap:calc(12*var(--u))}
.pg-contact .fgroup{margin:0 0 calc(36*var(--u))}
.pg-contact .fgroup.ct-last{margin-bottom:calc(28*var(--u))}
.pg-contact .fgroup label{display:block;font-family:var(--ct-font);font-weight:500;font-size:calc(14*var(--u));line-height:calc(18*var(--u));
  letter-spacing:0;text-transform:none;color:var(--ct-strong);margin:0 0 calc(14*var(--u))}
.pg-contact .fgroup input,.pg-contact .fgroup textarea{
  display:block;width:100%;box-sizing:border-box;height:calc(58*var(--u));margin:0;
  background:var(--ct-input);border:1px solid var(--ct-hard);border-radius:var(--r-ctl);
  padding:0 calc(16*var(--u));font-weight:400;font-size:calc(15.5*var(--u));line-height:calc(22*var(--u));color:var(--ct-ink);outline:0;
  -webkit-appearance:none;appearance:none;
  transition:border-color 180ms var(--ct-ease),background 180ms var(--ct-ease),box-shadow 180ms var(--ct-ease)}
.pg-contact .fgroup textarea{height:calc(148*var(--u));min-height:calc(148*var(--u));padding:calc(16*var(--u));resize:vertical}
.pg-contact .fgroup input::placeholder,.pg-contact .fgroup textarea::placeholder{color:var(--ct-faint);opacity:1}
.pg-contact .fgroup input:focus,.pg-contact .fgroup textarea:focus{
  border-color:var(--ct-ink);background:#fff;box-shadow:0 0 0 1px rgba(28,27,26,.08);outline:0}
.pg-contact .fgroup[data-invalid="true"] input,.pg-contact .fgroup[data-invalid="true"] textarea{border-color:var(--ct-red)}
.pg-contact .err{display:block;min-height:0;margin:0;font-size:calc(12*var(--u));line-height:calc(16*var(--u));color:var(--signal-text)}
.pg-contact .err:not(:empty){margin-top:calc(8*var(--u))}
.ct-send{display:flex;align-items:center;justify-content:center;gap:calc(16*var(--u));width:100%;height:calc(58*var(--u));margin:0;padding:0;
  border:0;border-radius:var(--r-ctl);background:var(--ct-ink);color:#fff;font-weight:600;font-size:calc(17*var(--u));line-height:1;
  cursor:pointer;transition:background 180ms var(--ct-ease),opacity 180ms var(--ct-ease)}
.ct-send:hover{background:#31302c}
.ct-send:active{background:#0f0f0e}
.pg-contact form[data-sending] .ct-send{opacity:.7;pointer-events:none}
.pg-contact p.ct-safe{display:flex;align-items:center;justify-content:center;gap:calc(8*var(--u));margin:calc(26*var(--u)) 0 0;
  font-size:calc(14.5*var(--u));line-height:calc(16*var(--u));color:var(--ct-dim)}
.ct-safe svg{width:calc(11*var(--u));height:calc(12*var(--u));flex:none}
.ct-safe svg *{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}
.pg-contact .enq-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.pg-contact .enq-note{display:none;margin:calc(20*var(--u)) 0 0;border:1px solid var(--ct-line-2);border-radius:var(--r-ctl);
  padding:calc(16*var(--u)) calc(18*var(--u));font-size:calc(14*var(--u));line-height:calc(22*var(--u));color:var(--ct-muted);background:none}
.pg-contact .enq-note[data-state="sending"],.pg-contact .enq-note[data-state="error"]{display:block}
.pg-contact .enq-note[data-state="error"]{border-color:var(--ct-red)}
.pg-contact .enq-note .label,.pg-contact .success .label{font-family:var(--ct-font);font-weight:600;font-size:calc(12*var(--u));line-height:calc(16*var(--u));
  letter-spacing:.14em;text-transform:uppercase;color:var(--ct-red-text);margin:0 0 calc(6*var(--u))}
.pg-contact .enq-note p{margin:0 0 calc(6*var(--u))} .pg-contact .enq-note p:last-child{margin:0}
.pg-contact .enq-note a,.pg-contact .success a{color:var(--ct-ink);border-bottom:1px solid var(--ct-red)}
.pg-contact .success{display:none;border:0;padding:calc(8*var(--u)) 0 0;color:var(--ct-fg)}
.pg-contact .success[data-shown="true"]{display:block}
.pg-contact .success .ct-success-h{font-family:var(--ct-font);font-stretch:100%;font-weight:500;font-size:calc(30*var(--u));line-height:calc(38*var(--u));letter-spacing:-.015em;margin:calc(10*var(--u)) 0 0;color:var(--ct-ink)}
.pg-contact .success p{font-size:calc(15*var(--u));line-height:calc(24*var(--u));color:var(--ct-muted);margin:calc(16*var(--u)) 0 0}
.pg-contact .success .btn{display:inline-flex;align-items:center;height:calc(44*var(--u));padding:0 calc(18*var(--u));border:1px solid var(--ct-line-2);
  border-radius:var(--r-ctl);font-family:var(--ct-font);font-weight:600;font-size:calc(12*var(--u));letter-spacing:.12em;text-transform:uppercase;color:var(--ct-ink);
  background:none;cursor:pointer;transition:background 180ms var(--ct-ease),border-color 180ms var(--ct-ease)}
.pg-contact .success .btn::before{display:none}
.pg-contact .success .btn>span{padding:0}
.pg-contact .success .btn:hover{background:rgba(28,27,26,.045);border-color:rgba(28,27,26,.34);color:var(--ct-ink)}

/* ═══ 02 · DISCOVERY CALL ═══ */
.pg-contact section.ct-book{background:var(--ct-white);color:var(--ct-ink)}
.ct-book .ct-in{padding:calc(112*var(--u)) calc(96*var(--u)) calc(112*var(--u));display:grid;grid-template-columns:1fr calc(516*var(--u));column-gap:calc(72*var(--u));align-items:start}
.ct-book .ct-eyebrow,.ct-faq .ct-eyebrow{color:var(--ct-red-text)}
.ct-book-copy{padding-top:calc(6*var(--u))}
.pg-contact .ct-h2{font-family:var(--ct-font);font-variation-settings:normal;font-optical-sizing:auto;text-wrap:initial;
  font-weight:500;font-size:calc(38.5*var(--u));line-height:calc(44*var(--u));letter-spacing:-.019em;margin:calc(34*var(--u)) 0 0;color:var(--ct-ink)}
.ct-book p.ct-lede{color:var(--ct-strong);font-size:calc(18.5*var(--u));line-height:calc(33*var(--u));margin-top:calc(26*var(--u));max-width:calc(520*var(--u))}
.ct-benefits{list-style:none;margin:calc(48*var(--u)) 0 0;padding:calc(34*var(--u)) 0 0;display:grid;gap:calc(28*var(--u));
  border-top:1px solid var(--ct-line);max-width:calc(520*var(--u))}
.ct-benefits li{display:flex;align-items:center;gap:calc(20*var(--u));font-size:calc(16.5*var(--u));line-height:calc(22*var(--u));color:var(--ct-strong)}
.ct-benefits svg{width:calc(17*var(--u));height:calc(17*var(--u));flex:none;color:var(--ct-faint);
  transition:color 200ms var(--ct-ease)}
.ct-benefits li:hover svg{color:var(--ct-red)}
.ct-benefits svg *{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}

.ct-bcard{min-width:0;background:#fff;border:1px solid var(--ct-line-2);border-radius:var(--r-panel);padding:calc(34*var(--u)) calc(30*var(--u)) calc(30*var(--u));box-sizing:border-box;
  box-shadow:0 1px 1px rgba(28,25,20,.02),0 8px 26px rgba(28,25,20,.045)}
.pg-contact .ct-bt{font-family:var(--ct-font);font-weight:600;font-size:calc(17*var(--u));line-height:calc(22*var(--u));color:var(--ct-ink);margin:0}

.ct-time svg path{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

.ct-times{list-style:none;margin:calc(28*var(--u)) 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:calc(8*var(--u))}
.ct-time{display:flex;align-items:center;justify-content:space-between;height:calc(48*var(--u));box-sizing:border-box;padding:0 calc(16*var(--u));
  border:1px solid var(--ct-hard);border-radius:var(--r-ctl);background:#fff;font-weight:500;font-size:calc(15.5*var(--u));line-height:1;color:var(--ct-ink);
  font-variant-numeric:tabular-nums;
  transition:background 170ms var(--ct-ease),border-color 170ms var(--ct-ease),color 170ms var(--ct-ease)}
.ct-time:hover,.ct-time:focus-visible{background:var(--ct-ink);border-color:var(--ct-ink);color:#fff}
.ct-time svg{width:calc(11*var(--u));height:calc(11*var(--u));color:var(--ct-faint);flex:none;
  transition:color 170ms var(--ct-ease),transform 220ms cubic-bezier(.22,.61,.36,1)}
.ct-time:hover svg{color:#fff;transform:translateX(calc(2*var(--u)))}
.pg-contact p.ct-bfoot{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 calc(8*var(--u));
  margin:calc(20*var(--u)) 0 0;font-size:calc(15.5*var(--u));line-height:calc(24*var(--u));color:var(--ct-dim)}
.pg-contact p.ct-bfoot .ct-red-link{margin-left:0}
.ct-red-link{color:var(--ct-red-text);margin-left:calc(8*var(--u));white-space:nowrap;transition:opacity 180ms var(--ct-ease)}
.ct-red-link:hover{opacity:.8;text-decoration:underline;text-underline-offset:3px}
.pg-contact p.ct-nojs{display:none;margin-top:calc(24*var(--u));font-size:calc(14*var(--u));line-height:calc(22*var(--u));color:var(--ct-muted)}
html.no-js .ct-nojs{display:block}
html.no-js .ct-dates,html.no-js .ct-times-head,html.no-js .ct-times{display:none}

/* ═══ 03 · FAQ ═══ */
.pg-contact section.ct-faq{background:var(--ct-white);color:var(--ct-ink);border-top:1px solid var(--ct-hard)}
.ct-faq .ct-in{padding:calc(128*var(--u)) calc(96*var(--u)) 0;display:grid;grid-template-columns:calc(392*var(--u)) 1fr;column-gap:calc(80*var(--u));align-items:start}
.ct-faq-copy{padding-top:calc(6*var(--u));position:sticky;top:calc(112*var(--u))}
.ct-faq .ct-h2{font-size:calc(39*var(--u));line-height:calc(45*var(--u));margin-top:calc(32*var(--u))}
.ct-faq-list{display:grid;gap:0;border-top:1px solid var(--ct-hard)}
.ct-q{background:none;border:0;border-bottom:1px solid var(--ct-hard);border-radius:0;box-shadow:none}
.pg-contact .ct-q h3{margin:0;font:inherit}
.ct-q-btn{display:flex;align-items:center;justify-content:space-between;gap:calc(28*var(--u));width:100%;min-height:calc(72*var(--u));box-sizing:border-box;
  padding:calc(18*var(--u)) calc(4*var(--u));margin:0;background:none;border:0;cursor:pointer;text-align:left;
  font-weight:500;font-size:calc(17.5*var(--u));line-height:calc(26*var(--u));letter-spacing:-.008em;color:var(--ct-ink);border-radius:0;
  transition:color 180ms var(--ct-ease)}
.ct-q-btn:hover{background:none;color:#000}
.ct-q-btn svg{width:calc(13*var(--u));height:calc(13*var(--u));flex:none;color:var(--ct-faint);
  transition:transform 300ms cubic-bezier(.22,.61,.36,1),color 180ms var(--ct-ease)}
.ct-q-btn:hover svg{color:var(--ct-red)}
.ct-q-btn[aria-expanded="true"]{color:#000}
.ct-q-btn[aria-expanded="true"] svg{color:var(--ct-red)}
.ct-q-btn svg path{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.ct-q-btn[aria-expanded="true"] svg{transform:rotate(45deg)}
.ct-q-panel{display:grid;grid-template-rows:0fr;opacity:0;
  transition:grid-template-rows 300ms cubic-bezier(.22,.61,.36,1),opacity 220ms var(--ct-ease)}
.ct-q-panel[data-open="true"]{grid-template-rows:1fr;opacity:1}
.ct-q-panel>div{overflow:hidden;min-height:0}
.ct-q-panel p{margin:0;padding:0 calc(52*var(--u)) calc(28*var(--u)) calc(4*var(--u));font-size:calc(15.5*var(--u));line-height:calc(26*var(--u));color:var(--ct-muted);max-width:60ch}
html.no-js .ct-q-panel{grid-template-rows:1fr;opacity:1}
.pg-contact p.ct-faq-foot{margin:calc(52*var(--u)) 0 0;font-size:calc(16*var(--u));line-height:calc(24*var(--u));color:var(--ct-muted)}
@media(prefers-reduced-motion:reduce){.ct-q-panel,.ct-q-btn svg{transition:none}}

/* ═══ 04 · FINAL CTA ═══ */
.pg-contact section.ct-cta{background:var(--ct-bg)}
.ct-cta .ct-in{padding:calc(123*var(--u)) calc(38*var(--u)) calc(40*var(--u))}
/* THE ONE DARK SURFACE ON THIS PAGE (S3). Charcoal, never #000, inset with
   its own radius so it reads as a deliberate object on a light page rather
   than as another black band. */
.ct-panel{position:relative;isolation:isolate;overflow:hidden;background:var(--ct-anchor);border-radius:var(--r-panel);
  padding:calc(76*var(--u)) calc(96*var(--u)) calc(76*var(--u)) calc(96*var(--u));display:flex;align-items:flex-end;justify-content:space-between;gap:calc(64*var(--u));color:#fff}
.ct-panel::after{content:"";position:absolute;inset:0 0 auto;height:calc(2*var(--u));z-index:1;pointer-events:none;
  background:linear-gradient(90deg,var(--ct-red) 0%,var(--ct-red) 28%,rgba(218,31,38,0) 62%)}
.ct-cta-label{font-weight:600;font-size:calc(14*var(--u));line-height:calc(16*var(--u));letter-spacing:.14em;text-transform:uppercase;color:var(--signal-text-media);margin:0}
.ct-cta .ct-h2{font-size:calc(42*var(--u));line-height:calc(48*var(--u));color:var(--ct-on-anchor);margin-top:calc(28*var(--u))}
.ct-cta p.ct-lede{margin-top:calc(31*var(--u));font-size:calc(17.5*var(--u));line-height:calc(30*var(--u));color:#b8b7b3;max-width:calc(415*var(--u))}
.ct-outline{display:inline-flex;align-items:center;gap:calc(12*var(--u));height:calc(56*var(--u));box-sizing:border-box;padding:0 calc(40*var(--u));flex:none;
  margin-bottom:calc(4*var(--u));
  border:1px solid rgba(255,255,255,.42);border-radius:var(--r-ctl);font-weight:600;font-size:calc(13.5*var(--u));line-height:1;letter-spacing:.14em;
  text-transform:uppercase;color:#fff;transition:background 180ms var(--ct-ease),border-color 180ms var(--ct-ease)}
.ct-outline .ct-arrow{transition:transform 260ms cubic-bezier(.22,.61,.36,1)}
.ct-outline:hover .ct-arrow{transform:translateX(calc(4*var(--u)))}
.ct-outline .ct-arrow{color:var(--ct-red)}
.ct-outline:hover,.ct-outline:focus-visible{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.7)}

/* ═══ 05 · FOOTER ═══ */
.pg-contact .foot{display:block;padding:0;gap:0;background:var(--color-black);
  color:var(--color-on-black);border:0}
.ct-foot-in{display:grid;grid-template-columns:calc(445*var(--u)) calc(112*var(--u)) calc(258*var(--u)) calc(281*var(--u)) 1fr;padding:calc(56*var(--u)) calc(72*var(--u)) calc(66*var(--u));align-items:start}
.ct-foot-div{border-left:1px solid var(--ct-line-2);align-self:stretch}
.ct-foot-brand{display:flex;align-items:center;gap:calc(14*var(--u));color:var(--ct-ink);font-weight:700;font-size:calc(18.5*var(--u));line-height:1;letter-spacing:.1em;text-transform:uppercase}
.ct-foot-brand svg{width:calc(46*var(--u));height:calc(46*var(--u));fill:var(--ct-ink);flex:none}
.pg-contact .foot svg polygon:nth-child(3){fill:var(--ct-red)}
.pg-contact p.ct-foot-desc{margin:calc(28*var(--u)) 0 0;font-size:calc(16*var(--u));line-height:calc(24*var(--u));color:var(--ct-muted);max-width:calc(300*var(--u))}
.pg-contact p.ct-foot-mail{margin:calc(38*var(--u)) 0 0;font-size:calc(16.5*var(--u));line-height:calc(20*var(--u))}
.ct-foot-mail a{color:var(--ct-ink);transition:color 180ms var(--ct-ease)}
.pg-contact p.ct-foot-copy{margin:calc(60*var(--u)) 0 0;font-size:calc(15*var(--u));line-height:calc(18*var(--u));color:var(--ct-dim)}
.pg-contact p.ct-foot-h{font-weight:600;font-size:calc(12.4*var(--u));line-height:calc(14*var(--u));letter-spacing:.16em;text-transform:uppercase;color:var(--ct-dim);margin:0}
.pg-contact .foot ul{list-style:none;margin:calc(31*var(--u)) 0 0;padding:0;display:grid;gap:calc(24*var(--u))}

.pg-contact .foot li a,.ct-soc{font-size:calc(16*var(--u));line-height:calc(20*var(--u));color:var(--ct-ink);transition:color 180ms var(--ct-ease)}
.pg-contact .foot li a:hover{color:var(--ct-red-text)}
.ct-soc{display:flex;align-items:center;gap:calc(12*var(--u))}
.ct-soc svg{width:calc(18*var(--u));height:calc(18*var(--u));flex:none}
.ct-soc svg *{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.ct-soc[aria-disabled="true"]{cursor:default}
/* the shared .soc hook (site-wide social-truth gate) without its chip box */
.pg-contact .foot a.soc{width:auto;height:auto;min-height:0;border:0;border-radius:0;place-items:unset;grid-template-columns:none}
/* every row in the follow column is the same height, linked or not, so the
   rhythm no longer depends on which social accounts are verified */
.pg-contact .foot ul.ct-follow>li{display:flex;align-items:center;min-height:calc(28*var(--u))}
.pg-contact .foot ul.ct-follow{gap:calc(22*var(--u))}
.pg-contact .foot a.soc svg{width:calc(18*var(--u));height:calc(18*var(--u))}

/* ═══ MOBILE MENU (shared markup, Inter voice on this page) ═══ */
.pg-contact .menu{background:var(--color-black);color:var(--color-on-black);font-family:var(--ct-font)}
.pg-contact .menu .label,.pg-contact .menu .spec{font-family:var(--ct-font);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ct-dim)}
.pg-contact .menu nav a{font-family:var(--ct-font);font-variation-settings:normal;font-weight:500;font-size:34px;line-height:1.15;
  letter-spacing:-.015em;padding:.34em 0;color:var(--ct-ink);display:flex;gap:1rem;align-items:baseline;transition:opacity 180ms var(--ct-ease)}
.pg-contact .menu nav a:hover{opacity:.7}
.pg-contact .menu nav a .idx{font-size:11px;letter-spacing:.14em;color:var(--ct-red-text);font-weight:600}
.pg-contact .menu-contact{margin-top:2rem}
.pg-contact .menu-contact .spec a{color:var(--ct-ink);text-transform:none;letter-spacing:0;font-size:14px}
.pg-contact .menu-btn,.pg-contact .menu-close{height:40px;padding:0 14px;box-sizing:border-box;border:1px solid var(--ct-line-2);
  border-radius:6px;background:transparent;color:var(--ct-ink);font-family:var(--ct-font);font-weight:600;font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;display:none;align-items:center;cursor:pointer;transition:background 180ms var(--ct-ease)}
.pg-contact .menu-btn::before,.pg-contact .menu-close::before{display:none}
.pg-contact .menu-btn>span,.pg-contact .menu-close>span{padding:0}
.pg-contact .menu-btn:hover,.pg-contact .menu-close:hover{background:rgba(28,27,26,.045);color:var(--ct-ink);border-color:rgba(28,27,26,.34)}
.pg-contact .menu-close{display:inline-flex;top:20px;right:20px}
@media(max-width:899px){.pg-contact .menu-btn{display:inline-flex;margin-left:auto}}


/* ═══════════════════════════════════════════════════════════════════════════
   PROJECT ESTIMATOR + CAL.COM BOOKING
   Same vocabulary as the rest of the page: Inter, hairline borders, one red
   accent, small radii, tonal contrast instead of shadows. V1: both cards are
   now light, so the base rules ARE the light skin and the booking card's
   overrides below are only the few places the two panels differ.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── shared: the swapping stage ── */
.ct-est-stage,.ct-book-stage{position:relative}
/* clip only while the height is being interpolated */
.ct-est-stage[data-anim],.ct-book-stage[data-anim]{overflow:hidden}
.ct-est-stage>*,.ct-book-stage>*{will-change:transform,opacity}

/* ── progress ── */
.ct-est-progress{display:flex;align-items:center;gap:calc(18*var(--u));margin-bottom:calc(32*var(--u))}
.ct-est-progress[hidden]{display:none}
.ct-est-bar{order:2;flex:1 1 auto;max-width:calc(180*var(--u));height:1px;background:var(--ct-line-2);overflow:hidden}
.ct-est-bar i{display:block;height:100%;width:0%;background:var(--ct-red);
  transition:width 420ms cubic-bezier(.22,.61,.36,1)}
.ct-est-step{order:1;flex:none;font-weight:600;font-size:calc(11*var(--u));letter-spacing:.16em;text-transform:uppercase;color:var(--ct-dim)}

/* ── intro ── */
.ct-est-title-alt:focus:not(:focus-visible){outline:none}
.ct-est-label{font-weight:600;font-size:calc(11*var(--u));line-height:calc(16*var(--u));letter-spacing:.16em;
  text-transform:uppercase;color:var(--ct-red-text);margin:0}
.pg-contact p.ct-est-lede{font-weight:400;font-size:calc(18*var(--u));line-height:calc(29*var(--u));color:var(--ct-strong);
  margin:calc(18*var(--u)) 0 0;letter-spacing:-.004em}
.ct-est-meta{list-style:none;margin:calc(26*var(--u)) 0 0;padding:0;display:grid;gap:calc(11*var(--u))}
.ct-est-meta li{position:relative;padding-left:calc(17*var(--u));font-size:calc(14*var(--u));line-height:calc(20*var(--u));color:var(--ct-dim)}
.ct-est-meta li::before{content:"";position:absolute;left:0;top:calc(8.5*var(--u));width:calc(4*var(--u));height:calc(4*var(--u));
  border-radius:50%;background:var(--ct-red);opacity:.85}
/* what the estimator covers - rendered from the first question's own
   options, so it cannot drift from what is actually asked */
.ct-est-paths{margin-top:calc(26*var(--u));padding-top:calc(22*var(--u));border-top:1px solid var(--ct-line)}
.pg-contact p.ct-est-paths-label{font-weight:600;font-size:calc(11*var(--u));line-height:1;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ct-dim);margin:0}
.pg-contact ul.ct-est-paths-list{list-style:none;margin:calc(16*var(--u)) 0 0;padding:0;
  display:grid;grid-template-columns:1fr 1fr;column-gap:calc(28*var(--u))}
.pg-contact ul.ct-est-paths-list li{padding:calc(11*var(--u)) 0 calc(10*var(--u));
  border-top:1px solid var(--ct-line);
  font-size:calc(15*var(--u));line-height:calc(21*var(--u));color:var(--ct-strong);letter-spacing:-.002em}
.pg-contact ul.ct-est-paths-list li:nth-child(-n+2){border-top:0;padding-top:calc(2*var(--u))}

.ct-est-start{display:inline-flex;align-items:center;justify-content:space-between;gap:calc(28*var(--u));
  width:auto;min-width:calc(268*var(--u));max-width:100%;
  height:calc(58*var(--u));margin:calc(32*var(--u)) 0 0;padding:0 calc(26*var(--u));border:0;border-radius:var(--r-ctl);
  background:var(--ct-ink);color:#fff;font-weight:600;font-size:calc(16*var(--u));line-height:1;letter-spacing:.004em;
  cursor:pointer;
  transition:background 180ms var(--ct-ease),transform 180ms var(--ct-ease)}
.ct-est-start .ct-arrow{width:calc(15*var(--u));height:calc(15*var(--u));
  transition:transform 300ms cubic-bezier(.22,.61,.36,1)}
.ct-est-start:hover{background:#31302c}
.ct-est-start .ct-arrow{color:var(--ct-red)}
.ct-est-start:hover .ct-arrow{transform:translateX(calc(5*var(--u)))}
.ct-est-start:active{background:#0f0f0e;transform:translateY(1px)}
/* a secondary pathway, not a caption on the button: its own space, and a
   hairline that ends the primary action before it begins */
.pg-contact p.ct-est-alt{margin:calc(30*var(--u)) 0 0;padding-top:calc(22*var(--u));text-align:left;
  border-top:1px solid var(--ct-line);
  font-size:calc(14*var(--u));line-height:calc(20*var(--u));color:var(--ct-dim)}

/* ── question ── */
.pg-contact .ct-est-title{font-family:var(--ct-font);font-stretch:100%;font-weight:500;font-size:calc(29*var(--u));
  line-height:calc(37*var(--u));letter-spacing:-.019em;color:var(--ct-ink);margin:0}
.pg-contact .ct-est-title:focus:not(:focus-visible){outline:none}
.ct-est-note{margin:calc(12*var(--u)) 0 0;font-size:calc(14*var(--u));line-height:calc(21*var(--u));color:var(--ct-dim)}
.ct-est-options{display:grid;gap:calc(8*var(--u));margin-top:calc(28*var(--u))}
.ct-opt{position:relative;overflow:hidden;display:flex;align-items:flex-start;gap:calc(14*var(--u));width:100%;box-sizing:border-box;
  padding:calc(16*var(--u)) calc(18*var(--u));margin:0;text-align:left;cursor:pointer;
  background:transparent;border:1px solid var(--ct-hard);border-radius:var(--r-ctl);
  transition:background 170ms var(--ct-ease),border-color 170ms var(--ct-ease)}
/* the accent arrives from the left edge on selection — one moving part */
.ct-opt::before{content:"";position:absolute;left:0;top:0;bottom:0;width:calc(2*var(--u));background:var(--ct-red);
  transform:scaleY(0);transform-origin:50% 50%;transition:transform 240ms cubic-bezier(.22,.61,.36,1)}
.ct-opt:hover{background:rgba(28,27,26,.028);border-color:rgba(28,27,26,.26)}
.ct-opt-mark{flex:none;width:calc(16*var(--u));height:calc(16*var(--u));margin-top:calc(3*var(--u));border-radius:50%;
  border:1px solid rgba(28,27,26,.30);position:relative;
  transition:border-color 170ms var(--ct-ease),background 170ms var(--ct-ease)}
.ct-opt[aria-pressed] .ct-opt-mark{border-radius:calc(4*var(--u))}
.ct-opt-mark::after{content:"";position:absolute;inset:calc(3*var(--u));border-radius:50%;background:#fff;
  transform:scale(0);transition:transform 190ms cubic-bezier(.22,.61,.36,1)}
.ct-opt[aria-pressed] .ct-opt-mark::after{border-radius:calc(1.5*var(--u))}
.ct-opt[aria-checked="true"],.ct-opt[aria-pressed="true"]{
  background:rgba(218,31,38,.05);border-color:rgba(218,31,38,.48)}
.ct-opt[aria-checked="true"]::before,.ct-opt[aria-pressed="true"]::before{transform:scaleY(1)}
.ct-opt[aria-checked="true"] .ct-opt-mark,.ct-opt[aria-pressed="true"] .ct-opt-mark{
  border-color:var(--ct-red);background:var(--ct-red)}
.ct-opt[aria-checked="true"] .ct-opt-mark::after,
.ct-opt[aria-pressed="true"] .ct-opt-mark::after{transform:scale(1)}
.ct-opt-body{display:block}
.ct-opt-label{display:block;font-weight:500;font-size:calc(15.5*var(--u));line-height:calc(22*var(--u));color:var(--ct-strong);
  transition:color 170ms var(--ct-ease)}
.ct-opt:hover .ct-opt-label,.ct-opt[aria-checked="true"] .ct-opt-label,.ct-opt[aria-pressed="true"] .ct-opt-label{color:var(--ct-ink)}
.ct-opt-desc{display:block;margin-top:calc(4*var(--u));font-weight:400;font-size:calc(13.5*var(--u));line-height:calc(19*var(--u));color:var(--ct-dim)}
.ct-opt-tag{opacity:.6;font-weight:400}

/* ── free text ── */
.ct-est-input{display:block;width:100%;box-sizing:border-box;margin:calc(24*var(--u)) 0 0;
  min-height:calc(56*var(--u));padding:calc(16*var(--u));background:var(--ct-input);
  border:1px solid var(--ct-hard);border-radius:var(--r-ctl);
  font-family:var(--ct-font);font-weight:400;font-size:calc(15.5*var(--u));line-height:calc(22*var(--u));color:var(--ct-ink);
  outline:0;-webkit-appearance:none;appearance:none;resize:vertical;
  transition:border-color 180ms var(--ct-ease),background 180ms var(--ct-ease)}
.ct-est-input::placeholder{color:var(--ct-faint);opacity:1}
.ct-est-input:focus{border-color:var(--ct-ink);background:#fff}

/* ── a quantity, not a form field ──────────────────────────────────────
   "How many locations?" deserves to look like a considered number, not a
   spinner in a settings panel. Large tabular figures, the unit set quietly
   beside them, and the browser's own stepper removed. */
.ct-est-number{display:flex;align-items:baseline;gap:calc(12*var(--u));margin-top:calc(26*var(--u));
  padding-bottom:calc(14*var(--u));border-bottom:1px solid var(--ct-line-2);max-width:calc(300*var(--u))}
.pg-contact .ct-est-number .ct-est-input{margin:0;padding:0;min-height:0;flex:none;
  width:calc(118*var(--u));
  background:none;border:0;border-radius:0;
  font-weight:600;font-size:calc(38*var(--u));line-height:1.05;letter-spacing:-.025em;
  color:var(--ct-ink);font-variant-numeric:tabular-nums}
.pg-contact .ct-est-number .ct-est-input:focus{background:none;border:0;box-shadow:none}
.ct-est-number .ct-est-input::-webkit-outer-spin-button,
.ct-est-number .ct-est-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.ct-est-number .ct-est-input[type=number]{-moz-appearance:textfield;appearance:textfield}
.ct-est-unit{font-weight:500;font-size:calc(15*var(--u));line-height:1;color:var(--ct-dim);letter-spacing:.01em}
.ct-bcard .ct-est-number{border-bottom-color:var(--ct-line-2)}
.pg-contact .ct-bcard .ct-est-number .ct-est-input{color:var(--ct-ink)}

/* a multi-select mark reads as a checkbox, a single-choice one as a radio —
   the shape is the affordance, so it is not decoration */
.ct-opt[aria-pressed] .ct-opt-mark{border-radius:calc(4*var(--u))}
.ct-opt[aria-pressed] .ct-opt-mark::after{border-radius:calc(1.5*var(--u))}

/* ── nav row ── */
.ct-est-nav{display:flex;align-items:center;justify-content:space-between;gap:calc(16*var(--u));margin-top:calc(30*var(--u))}
.ct-est-back{border:0;background:none;padding:calc(8*var(--u)) 0;margin:0;cursor:pointer;
  font-family:var(--ct-font);font-weight:600;font-size:calc(12*var(--u));letter-spacing:.12em;
  text-transform:uppercase;color:var(--ct-dim);transition:color 170ms var(--ct-ease)}
.ct-est-back:hover{color:var(--ct-ink)}
.ct-est-back span{margin-right:calc(6*var(--u))}
.ct-est-continue{margin-left:auto;height:calc(48*var(--u));padding:0 calc(26*var(--u));border:0;border-radius:var(--r-ctl);
  background:var(--ct-ink);color:#fff;cursor:pointer;font-family:var(--ct-font);font-weight:600;
  font-size:calc(13*var(--u));letter-spacing:.1em;text-transform:uppercase;
  transition:background 180ms var(--ct-ease),opacity 180ms var(--ct-ease)}
.ct-est-continue:hover:not(:disabled){background:#31302c}
.ct-est-continue:disabled{opacity:.32;cursor:default}
.ct-est-continue.is-send{background:var(--ct-ink);color:#fff}
.ct-est-continue.is-send:hover:not(:disabled){background:#31302c}

/* ── result ── */
.pg-contact .ct-est-pkg{font-family:var(--ct-font);font-weight:600;font-size:calc(32*var(--u));line-height:calc(38*var(--u));
  letter-spacing:-.012em;text-transform:uppercase;color:var(--ct-ink);margin:calc(12*var(--u)) 0 0}
.ct-est-pkg:focus:not(:focus-visible){outline:none}
.ct-est-blurb{margin:calc(10*var(--u)) 0 0;font-style:italic;font-size:calc(15*var(--u));line-height:calc(23*var(--u));color:var(--ct-dim)}
.ct-est-price{margin:calc(28*var(--u)) 0 0;padding:calc(26*var(--u)) 0 calc(26*var(--u));border:0;border-radius:0;background:none;
  border-top:1px solid var(--ct-line-2);border-bottom:1px solid var(--ct-line-2)}
.ct-est-figure{margin:calc(12*var(--u)) 0 0;font-weight:600;font-size:calc(44*var(--u));line-height:1;
  letter-spacing:-.028em;color:var(--ct-ink);font-variant-numeric:tabular-nums}
.ct-est-figure-note{margin:calc(10*var(--u)) 0 0;font-size:calc(15*var(--u));line-height:calc(23*var(--u));color:var(--ct-strong)}
.pg-contact p.ct-est-figure-sub{margin:calc(10*var(--u)) 0 0;font-size:calc(13*var(--u));line-height:calc(19*var(--u));color:var(--ct-dim)}
/* review builds are stamped so they can never be mistaken for the live page */
.pg-contact p.ct-est-review-flag{margin:0 0 calc(18*var(--u));padding:calc(9*var(--u)) calc(13*var(--u));border-radius:calc(6*var(--u));
  background:rgba(218,31,38,.06);border:1px dashed var(--ct-red);
  font-weight:600;font-size:calc(11*var(--u));letter-spacing:.14em;text-transform:uppercase;color:var(--ct-red-text)}
.ct-est-price[data-noprice="true"]{border-top-style:dashed;border-bottom-style:dashed}
.ct-est-result .ct-est-label{margin-top:calc(28*var(--u))}
.ct-est-result>.ct-est-label:first-child{margin-top:0}
.ct-est-list{list-style:none;margin:calc(14*var(--u)) 0 0;padding:0;display:grid;gap:calc(9*var(--u))}
.ct-est-list li{position:relative;padding-left:calc(18*var(--u));font-size:calc(14.5*var(--u));line-height:calc(22*var(--u));color:var(--ct-strong)}
.ct-est-list li::before{content:"";position:absolute;left:0;top:calc(8*var(--u));width:calc(5*var(--u));height:calc(5*var(--u));
  border-radius:50%;background:var(--ct-red)}
.ct-est-list.is-muted li{color:var(--ct-dim)}
.ct-est-list.is-muted li::before{background:#b5b1a9}
.ct-est-chips{display:flex;flex-wrap:wrap;gap:calc(8*var(--u));margin-top:calc(14*var(--u))}
.ct-chip{display:inline-flex;align-items:center;height:calc(32*var(--u));padding:0 calc(14*var(--u));border-radius:calc(16*var(--u));
  border:1px solid var(--ct-line-2);font-size:calc(13*var(--u));color:var(--ct-strong)}
.ct-est-disclaimer{margin:calc(26*var(--u)) 0 0;padding-top:calc(20*var(--u));border-top:1px solid var(--ct-line);
  font-size:calc(12.5*var(--u));line-height:calc(20*var(--u));color:var(--ct-dim)}

/* ── contact step ── */
.ct-est-fields{margin-top:calc(26*var(--u))}
.ct-est-fields[hidden]{display:none}
.ct-nojs-field{display:none}
html.no-js .ct-est{display:none}
html.no-js .ct-est-fields[hidden]{display:block}
html.no-js .ct-nojs-field{display:block}
html.no-js .ct-book-stage{display:none}

/* ═══ BOOKING · the white card ═══ */
.pg-contact .ct-bcard .ct-est-title,.ct-bcard .ct-est-pkg{color:var(--ct-ink)}
.ct-bcard .ct-est-back{color:var(--ct-dim)}
.ct-bcard .ct-est-back:hover{color:var(--ct-ink)}
.ct-bcard .ct-est-note{color:var(--ct-dim)}
.ct-bcard .ct-est-disclaimer{border-top-color:var(--ct-line);color:var(--ct-dim)}
.ct-bcard .ct-est-input{background:#fbfbfb;border-color:var(--ct-hard);color:var(--ct-ink)}
.ct-bcard .ct-est-input::placeholder{color:var(--ct-faint)}
.ct-bcard .ct-est-input:focus{background:#fff;border-color:var(--ct-ink)}
.ct-bcard .ct-est-continue{background:var(--ct-ink);color:#fff}
.ct-bcard .ct-est-continue:hover:not(:disabled){background:#31302c}
.ct-bcard .ct-est-continue.is-send{background:var(--ct-ink)}
.ct-bcard .ct-est-continue.is-send:hover:not(:disabled){background:#31302c}
.ct-bcard .ct-est-label{color:var(--ct-red-text)}
.ct-bcard .ct-est-list li{color:var(--ct-strong)}

/* calendar */
.ct-cal-head{display:flex;align-items:center;justify-content:space-between;gap:calc(12*var(--u))}
.pg-contact .ct-cal-title{font-family:var(--ct-font);margin:0;font-weight:600;font-size:calc(17*var(--u));line-height:calc(22*var(--u));
  letter-spacing:-.008em;color:var(--ct-ink)}
.ct-cal-nav{width:calc(34*var(--u));height:calc(34*var(--u));flex:none;display:grid;place-items:center;padding:0;margin:0;
  border:1px solid var(--ct-hard);border-radius:var(--r-chip);background:#fff;color:var(--ct-muted);cursor:pointer;
  transition:border-color 170ms var(--ct-ease),color 170ms var(--ct-ease),opacity 170ms var(--ct-ease)}
.ct-cal-nav:hover:not(:disabled){border-color:var(--ct-ink);color:var(--ct-ink);background:#fafafa}
.ct-cal-nav:disabled{opacity:.28;cursor:default}
.ct-cal-nav svg{width:calc(13*var(--u));height:calc(13*var(--u))}
.ct-cal-nav svg path{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ct-cal-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:calc(5*var(--u));margin-top:calc(26*var(--u));
  padding-bottom:calc(10*var(--u));border-bottom:1px solid var(--ct-hard)}
.ct-cal-dow span{text-align:center;font-weight:600;font-size:calc(10.5*var(--u));letter-spacing:.14em;color:var(--ct-dim);text-transform:uppercase}
.ct-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:calc(5*var(--u));margin-top:calc(8*var(--u))}
.ct-cal-pad{display:block}
.ct-cal-day{aspect-ratio:1/1;display:grid;place-items:center;padding:0;margin:0;position:relative;
  border:1px solid transparent;border-radius:var(--r-chip);background:none;color:var(--ct-ink);cursor:pointer;
  font-family:var(--ct-font);font-weight:500;font-size:calc(14*var(--u));font-variant-numeric:tabular-nums;
  transition:background 170ms var(--ct-ease),border-color 170ms var(--ct-ease),color 170ms var(--ct-ease),
             transform 170ms cubic-bezier(.22,.61,.36,1)}
.ct-cal-day:not(:disabled){border-color:var(--ct-hard);color:var(--ct-ink);font-weight:600}
/* the one mark that says "bookable" without adding a legend */
.ct-cal-day:not(:disabled)::after{content:"";position:absolute;bottom:calc(6*var(--u));left:50%;transform:translateX(-50%);
  width:calc(3*var(--u));height:calc(3*var(--u));border-radius:50%;background:var(--ct-red);opacity:.55;
  transition:opacity 170ms var(--ct-ease),background 170ms var(--ct-ease)}
.ct-cal-day:not(:disabled):hover{border-color:var(--ct-ink);background:var(--ct-ink);color:#fff}
.ct-cal-day:not(:disabled):hover::after{background:#fff;opacity:.9}
.ct-cal-day:not(:disabled):active{transform:scale(.94)}
.ct-cal-day:disabled{color:#c3bfb7;cursor:default;font-weight:400}
.ct-cal-tz{display:flex;align-items:center;gap:calc(7*var(--u));margin:calc(24*var(--u)) 0 0;padding-top:calc(18*var(--u));
  border-top:1px solid var(--ct-hard);font-size:calc(12.5*var(--u));color:var(--ct-dim)}
.ct-cal-tz svg{width:calc(13*var(--u));height:calc(13*var(--u));flex:none}
.ct-cal-tz svg *{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ct-book-empty{margin:calc(18*var(--u)) 0 0;font-size:calc(14*var(--u));line-height:calc(21*var(--u));color:var(--ct-dim)}

/* loading skeleton — the calendar's own shape, so nothing jumps when it lands */
.ct-book-skel{display:grid;grid-template-columns:repeat(7,1fr);gap:calc(6*var(--u));margin-top:calc(66*var(--u))}
.ct-book-skel-cell{aspect-ratio:1/1;border-radius:calc(9*var(--u));background:#efece7;
  animation:ctPulse 1.4s ease-in-out infinite}
.ct-book-skel-cell:nth-child(7n+2){animation-delay:.08s}
.ct-book-skel-cell:nth-child(7n+4){animation-delay:.16s}
.ct-book-skel-cell:nth-child(7n+6){animation-delay:.24s}
@keyframes ctPulse{0%,100%{opacity:1}50%{opacity:.45}}

/* times / details / confirmed */
.ct-book-step .ct-est-back{display:block;margin-bottom:calc(18*var(--u))}
.ct-book-step .ct-times{margin-top:calc(20*var(--u))}
.ct-book-step .ct-time{width:100%;text-align:left;cursor:pointer;font-family:var(--ct-font)}
.ct-book-form{margin-top:calc(22*var(--u))}
.ct-bk-group{margin-bottom:calc(18*var(--u))}
.ct-bk-group label{display:block;font-weight:600;font-size:calc(11.5*var(--u));line-height:calc(16*var(--u));letter-spacing:.1em;
  text-transform:uppercase;color:var(--ct-dim);margin-bottom:calc(9*var(--u))}
.ct-bk-group .ct-est-input{margin-top:0;min-height:calc(50*var(--u))}
.ct-bk-err{display:block;font-size:calc(12*var(--u));line-height:calc(16*var(--u));color:var(--signal-text-ink)}
.ct-bk-err:not(:empty){margin-top:calc(6*var(--u))}
.ct-bk-add{border:0;background:none;padding:calc(6*var(--u)) 0;margin:0 0 calc(12*var(--u));cursor:pointer;
  font-family:var(--ct-font);font-weight:600;font-size:calc(12.5*var(--u));letter-spacing:.06em;
  color:var(--ct-red-text);transition:opacity 170ms var(--ct-ease)}
.ct-bk-add:hover{opacity:.75}
.ct-book-form .ct-est-continue{margin-top:calc(8*var(--u));width:100%}
.ct-book-form[data-sending] .ct-est-continue{opacity:.7;pointer-events:none}
.ct-book-error{margin:calc(4*var(--u)) 0 calc(14*var(--u));padding:calc(12*var(--u)) calc(14*var(--u));border-radius:var(--r-ctl);
  border:1px solid var(--ct-red);background:rgba(218,31,38,.05);
  font-size:calc(13.5*var(--u));line-height:calc(20*var(--u));color:var(--ct-red-text)}
.ct-book-error[hidden]{display:none}
.ct-book-note{padding:calc(6*var(--u)) 0}
.ct-book-note-body{margin:calc(12*var(--u)) 0 0;font-size:calc(14.5*var(--u));line-height:calc(23*var(--u));color:var(--ct-muted)}
.ct-book-note .ct-est-continue{margin:calc(18*var(--u)) 0 0}
.ct-book-summary{display:grid;grid-template-columns:auto 1fr;gap:calc(8*var(--u)) calc(24*var(--u));margin:calc(22*var(--u)) 0 0}
.ct-book-summary dt{font-weight:600;font-size:calc(11*var(--u));letter-spacing:.14em;text-transform:uppercase;color:var(--ct-dim)}
.ct-book-summary dd{margin:0;font-size:calc(15*var(--u));line-height:calc(22*var(--u));color:var(--ct-ink)}
.ct-bcard[data-booked="true"] .ct-bfoot{display:none}
.pg-contact .ct-book-done .ct-est-pkg{font-size:calc(24*var(--u));line-height:calc(30*var(--u));text-transform:none;letter-spacing:-.01em}

/* Reduced motion. The stage swap already short-circuits in JS; this covers
   every hover and state transition added in the polish pass, so the page is
   fully usable with no movement at all — the states still change, they just
   arrive instantly. */
@media(prefers-reduced-motion:reduce){
  .ct-est-bar i,.ct-opt,.ct-opt::before,.ct-opt-mark::after,.ct-opt-label,
  .ct-cal-day,.ct-cal-day:not(:disabled)::after,.ct-cal-nav,
  .ct-est-stage,.ct-book-stage,
  .ct-time,.ct-time svg,
  .ct-est-start,.ct-est-start .ct-arrow,.ct-outline,.ct-outline .ct-arrow,
  .ct-points svg,.ct-benefits svg,.ct-q-btn,.ct-q-btn svg{transition:none}
  .ct-opt::before{transform:scaleY(1);opacity:0}
  .ct-opt[aria-checked="true"]::before,.ct-opt[aria-pressed="true"]::before{opacity:1}
  .ct-cal-day:not(:disabled):active{transform:none}
  .ct-est-start:active{transform:none}
  .ct-book-skel-cell{animation:none}
}

/* ═══ TABLET · 768–1151 — two columns become one, hierarchy kept ═══ */
@media(max-width:1151px){
  .pg-contact{--u:1px}
  .pg-contact .nav{height:96px;padding:0 40px}
  .pg-contact .nav-links{gap:32px;margin-right:32px}
  .ct-hero .ct-in{grid-template-columns:1fr;padding:160px 40px 80px;row-gap:52px}
  .ct-points,.ct-benefits{max-width:none}
  .ct-hero .ct-eyebrow{margin-top:0}
  .ct-card{max-width:640px}
  .ct-book .ct-in{grid-template-columns:1fr;padding:88px 40px 88px;row-gap:48px}
  .ct-book-copy{padding-top:0;max-width:600px}
  .ct-bcard{max-width:640px}
  .ct-faq .ct-in{grid-template-columns:1fr;padding:88px 40px 0;row-gap:36px}
  .ct-faq-copy{padding-top:0;position:static}
  .ct-faq-list{max-width:845px}
  .ct-cta .ct-in{padding:88px 24px 24px}
  .ct-panel{flex-direction:column;align-items:flex-start;padding:60px 56px 60px;gap:44px}
  .ct-outline{margin-bottom:0}
  .ct-foot-in{grid-template-columns:1fr 1fr 1fr;padding:56px 40px 56px;row-gap:48px;column-gap:24px}
  .ct-foot-brand-col{grid-column:1 / -1}
  .ct-foot-div{display:none}

  .pg-contact .ct-est-title{font-size:26px;line-height:34px}
  .pg-contact .ct-est-pkg{font-size:27px;line-height:33px}
  .ct-est-figure{font-size:34px}
}

/* ═══ MOBILE · ≤767 ═══ */
@media(max-width:767px){
  .pg-contact .nav{height:80px;padding:0 20px}
  .pg-contact .nav-mark{font-size:13px;gap:10px}
  .pg-contact .nav-mark svg{width:36px;height:36px}
  .ct-hero .ct-in{padding:120px 20px 64px;row-gap:44px}
  .pg-contact .ct-h1{font-size:44px;line-height:47px;margin-top:18px}
  .pg-contact p.ct-lede{font-size:16px;line-height:26px;margin-top:24px;max-width:none}
  .ct-points{margin-top:36px;padding-top:26px;gap:20px}
  .ct-benefits{padding-top:26px}
  .ct-card{padding:28px 20px 32px;border-radius:18px}
  .ct-row2{grid-template-columns:1fr;gap:0}
  .pg-contact .fgroup{margin-bottom:24px}
  .pg-contact .fgroup.ct-last{margin-bottom:22px}
  .ct-send{height:54px}
  .pg-contact p.ct-safe{font-size:13px;text-align:center}
  .ct-book .ct-in{padding:72px 20px 72px;row-gap:36px}
  .pg-contact .ct-h2{font-size:32px;line-height:37px;margin-top:22px}
  .ct-book p.ct-lede{margin-top:20px}
  .ct-benefits{margin-top:36px;gap:24px}
  .ct-bcard{padding:26px 16px 26px;border-radius:16px}
  .ct-times{margin-top:22px;gap:8px}
  .ct-time{height:46px;padding:0 12px;font-size:15px}
  .ct-faq .ct-in{padding:72px 20px 0;row-gap:26px}
  .ct-faq-list{gap:0}
  .ct-q-btn{padding:16px 0;min-height:64px;font-size:16px;line-height:24px;gap:20px}
  .ct-q-panel p{padding:0 28px 22px 0;font-size:15px;line-height:25px}
  .pg-contact p.ct-faq-foot{margin-top:36px}
  .ct-cta .ct-in{padding:64px 16px 16px}
  .ct-panel{padding:48px 26px 48px;border-radius:16px;gap:34px}
  .ct-cta .ct-h2{font-size:33px;line-height:38px;margin-top:20px}
  .ct-cta p.ct-lede{margin-top:20px;max-width:none}
  .ct-outline{height:52px}
  .ct-foot-in{grid-template-columns:1fr 1fr;padding:48px 20px 40px;row-gap:40px}
  .ct-foot-brand-col{grid-column:1 / -1}
  .pg-contact p.ct-foot-desc{max-width:none}
  .pg-contact p.ct-foot-copy{margin-top:40px}
  .ct-est-progress{margin-bottom:22px;gap:12px}
  .ct-est-step{font-size:10px;letter-spacing:.1em}
  .pg-contact .ct-est-title{font-size:23px;line-height:30px}
  .ct-est-note{font-size:13.5px;line-height:20px}
  .ct-est-options{gap:8px;margin-top:20px}
  .ct-est-number{margin-top:22px;max-width:none}
  .pg-contact .ct-est-number .ct-est-input{font-size:32px}
  .ct-opt{padding:15px 15px;gap:12px;min-height:52px;align-items:center}
  .ct-opt-label{font-size:15px;line-height:21px}
  .ct-est-lede{font-size:16px;line-height:26px}
  .ct-est-start{display:flex;width:100%;min-width:0;height:54px;font-size:15px;margin-top:26px;
    justify-content:center;gap:14px;padding:0 20px}
  .pg-contact p.ct-est-alt{text-align:center}
  .ct-est-paths{margin-top:24px;padding-top:20px}
  .pg-contact ul.ct-est-paths-list{grid-template-columns:1fr;margin-top:12px}
  .pg-contact ul.ct-est-paths-list li{padding:10px 0 9px;font-size:14.5px;line-height:20px}
  .pg-contact ul.ct-est-paths-list li:nth-child(-n+2){border-top:0;padding-top:10px}
  .pg-contact ul.ct-est-paths-list li:first-child{padding-top:2px}
  .pg-contact ul.ct-est-paths-list li:nth-child(2){border-top:1px solid var(--ct-line)}
  .pg-contact p.ct-est-alt{margin-top:22px;padding-top:20px}
  .ct-est-meta{margin-top:24px;gap:12px}
  .ct-est-nav{margin-top:24px;gap:12px}
  .ct-est-continue{height:46px;padding:0 20px;font-size:12.5px}
  /* Back is a primary control in the estimator, not a caption. It measured
     59x31 on mobile; padding takes it to a 44px target without making it
     louder — the label size and colour are unchanged. */
  .ct-est-back{font-size:11.5px;padding:15px 0;margin:-7px 0}
  .pg-contact .ct-est-pkg{font-size:24px;line-height:30px}
  .ct-est-figure{font-size:34px}
  .ct-est-price{padding:22px 0;margin-top:24px}
  .ct-est-input{min-height:52px;padding:14px;font-size:16px}
  .ct-cal-dow{margin-top:20px;gap:1px;padding-bottom:8px}
  .ct-cal-dow span{font-size:10px;letter-spacing:.1em}
  .ct-cal-grid{gap:1px;margin-top:6px}
  .ct-cal-day{font-size:14px}
  .ct-cal-day:not(:disabled)::after{bottom:5px}
  .ct-cal-tz{margin-top:20px;padding-top:16px}
  .ct-book-skel{gap:1px;margin-top:56px}
  .ct-book-summary{grid-template-columns:1fr;gap:4px 0}
  .ct-book-summary dd{margin-bottom:10px}
  .ct-bk-group .ct-est-input{min-height:48px;font-size:16px}
  .ct-est-result .ct-est-nav{flex-wrap:wrap;gap:14px}
  .ct-est-result .ct-est-continue{width:100%;margin-left:0;order:-1}

}


/* ═══════════════════════════════════════════════════════════════════════════
   V2 · THE MASTHEAD, THE FOOTER AND THE MENU ON THE STRUCTURAL BLACK
   These are overrides of rules declared earlier in this file at the same
   specificity, so they have to live at the END: source order is what decides
   between `.pg-contact .ct-h1` and `.ct-hero .ct-h1`, and declaring them
   beside the section rule silently lost every one of them.
   ═══════════════════════════════════════════════════════════════════════════ */
.pg-contact .ct-hero .ct-eyebrow{color:var(--color-on-black-dim)}
.pg-contact .ct-hero .ct-eyebrow .n{color:var(--signal-text-media)}
.pg-contact .ct-hero .ct-h1{color:var(--color-on-black)}
.pg-contact .ct-hero p.ct-lede{color:var(--color-on-black-muted)}
.pg-contact .ct-hero .ct-points{border-top-color:var(--color-hairline-on-black)}
.pg-contact .ct-hero .ct-points li{color:var(--color-on-black-muted)}
.pg-contact .ct-hero .ct-points svg{color:var(--color-on-black-dim)}
.pg-contact .ct-hero .ct-points li:hover svg{color:var(--signal-text-media)}

.pg-contact .foot::before{left:calc(72*var(--u))}
.pg-contact .ct-foot-div{border-left-color:var(--color-hairline-on-black)}
.pg-contact .ct-foot-brand{color:var(--color-on-black)}
.pg-contact .ct-foot-brand svg{fill:var(--color-on-black)}
.pg-contact p.ct-foot-desc{color:var(--color-on-black-muted)}
.pg-contact .ct-foot-mail a{color:var(--color-on-black)}
.pg-contact p.ct-foot-copy{color:var(--color-on-black-dim)}
.pg-contact p.ct-foot-h{color:var(--color-on-black-dim)}
.pg-contact .foot li a,.pg-contact .ct-soc{color:var(--color-on-black)}
.pg-contact .foot li a:hover{color:var(--signal-text-media)}
.pg-contact .foot a.soc{color:var(--color-on-black)}

.pg-contact .menu .label,.pg-contact .menu .spec{color:var(--color-on-black-dim)}
.pg-contact .menu nav a{color:var(--color-on-black)}
.pg-contact .menu nav a .idx{color:var(--signal-text-media)}
.pg-contact .menu-contact .spec a{color:var(--color-on-black)}
.pg-contact .menu-close{color:var(--color-on-black);border-color:var(--color-hairline-on-black)}
.pg-contact .menu-close:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.42)}

/* the chrome inverts over the masthead exactly as it does on every other route */
html[data-ground="dark"] .pg-contact .nav-mark{color:var(--color-on-black)}
html[data-ground="dark"] .pg-contact .nav-mark svg{fill:var(--color-on-black)}
html[data-ground="dark"] .pg-contact .nav-links a{color:var(--color-on-black)}
html[data-ground="dark"] .pg-contact .nav-cta{color:var(--color-on-black);
  border-color:var(--color-hairline-on-black)}
html[data-ground="dark"] .pg-contact .nav-cta:hover,
html[data-ground="dark"] .pg-contact .nav-cta:focus-visible{
  background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.42);color:var(--color-on-black)}
html[data-ground="dark"] .pg-contact .menu-btn{color:var(--color-on-black);
  border-color:var(--color-hairline-on-black)}
html[data-ground="dark"] .pg-contact :focus-visible{outline-color:var(--color-on-black)}


/* ═══════════════════════════════════════════════════════════════════════════
   V3 · CONTACT JOINS THE SYSTEM
   This route carried its own font stack, its own boxy chrome and its own
   radii, which is why it read as a different website. It now speaks the same
   typeface, the same two control shapes and the same chrome as every other
   route. The form, the estimator, the Cal.com booking and every validation
   path are untouched — this is appearance only.
   ═══════════════════════════════════════════════════════════════════════════ */
.pg-contact{
  --ct-font:'Geist','SF Pro Display',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  /* one radius ladder, refined rather than rounded-for-the-sake-of-it */
  --r-panel:14px; --r-ctl:999px; --r-chip:8px;
  font-size:1rem;line-height:1.62;letter-spacing:0}

/* the chrome matches the rest of the site */
.pg-contact .nav-mark{font-weight:600;font-size:1.0625rem;letter-spacing:-.012em;
  text-transform:none;gap:.7rem}
.pg-contact .nav-mark svg{width:26px;height:26px}
.pg-contact .nav-links a{font-weight:400;font-size:.9375rem;letter-spacing:-.006em;
  text-transform:none;opacity:1}
.pg-contact .nav-cta{border:0;background:none;height:auto;padding:0;
  font-weight:500;font-size:.9375rem;letter-spacing:-.006em;text-transform:none;
  border-radius:0}
.pg-contact .nav-cta:hover,.pg-contact .nav-cta:focus-visible{background:none}
.pg-contact .menu-btn,.pg-contact .menu-close{border:0;background:none;height:auto;
  padding:0;font-weight:500;font-size:.9375rem;letter-spacing:-.006em;
  text-transform:none;border-radius:0}
.pg-contact .menu-btn:hover,.pg-contact .menu-close:hover{background:none}

/* the masthead statement takes the site's display scale */
.pg-contact .ct-h1{font-weight:600;font-size:clamp(2.5rem,5.6vw,4.9rem);
  line-height:1.05;letter-spacing:-.042em}
.pg-contact .ct-h2{font-weight:600;font-size:clamp(1.65rem,3vw,2.5rem);
  line-height:1.1;letter-spacing:-.026em}
.pg-contact p.ct-lede{font-size:clamp(1.06rem,1.32vw,1.28rem);line-height:1.5;
  letter-spacing:-.008em}
.ct-eyebrow{font-family:'Geist Mono',ui-monospace,monospace;font-weight:400;
  font-size:.6875rem;letter-spacing:.14em}

/* two control shapes, exactly as everywhere else: a filled capsule, and text */
.ct-send,.ct-est-start,.ct-est-continue{border-radius:999px;font-weight:500;
  letter-spacing:-.004em;text-transform:none}
.ct-est-continue{font-size:.875rem}
/* the closing CTA was an outlined rectangle; it becomes the capsule */
.ct-outline{border:0;background:var(--color-on-black);color:var(--color-black);
  border-radius:999px;font-weight:500;font-size:.9375rem;letter-spacing:-.006em;
  text-transform:none;height:auto;padding:.8em 1.5em;
  transition:background 180ms var(--ct-ease),transform 120ms var(--ct-ease)}
.ct-outline:hover,.ct-outline:focus-visible{background:#fff;border:0}
.ct-outline:active{transform:scale(.97)}
.ct-outline .ct-arrow{color:var(--color-black);opacity:.66}
.ct-cta-label{font-family:'Geist Mono',ui-monospace,monospace;letter-spacing:.14em}

/* fields keep their shape but take the new type */
.pg-contact .fgroup input,.pg-contact .fgroup textarea,.ct-est-input{
  border-radius:10px;font-size:1rem;letter-spacing:-.006em}
.pg-contact .fgroup label,.ct-bk-group label{
  font-family:'Geist Mono',ui-monospace,monospace;font-weight:400;
  font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase}
.ct-opt{border-radius:12px}
.ct-time,.ct-cal-day,.ct-cal-nav{border-radius:10px}
.ct-q-btn{font-weight:500;letter-spacing:-.012em}

/* ══ V4 · POINTER TARGETS ON THE CONTACT SKIN ═══════════════════════
   The contact skin re-set the navigation links to line-height:1, which took a
   24px target down to 15px — the only route on the site where the primary
   navigation was under the WCAG 2.5.8 floor. The social links were 18px. */
.pg-contact .nav-links a{padding-block:.62rem;min-height:44px;
  display:inline-flex;align-items:center}
/* the V3 de-boxing pass took the plate off the header action and its height
   with it: 15px for the page’s primary navigation action */
.pg-contact .nav-cta{padding-block:.62rem;min-height:44px;align-items:center}
.pg-contact .ct-soc{padding-block:.42rem;min-height:32px}
.pg-contact a.ct-red-link{padding-block:.16rem;min-height:24px;
  display:inline-block}
.pg-contact .foot li a{display:inline-block;padding-block:.22rem;min-height:20px}
