/* Praxium FM — site styles.
   One face (Schibsted Grotesk), white and cool-grey grounds, logo navy ink,
   one working blue for planned work, red reserved for emergencies. */

@font-face{
  font-family:"Schibsted Grotesk";
  src:url("../fonts/schibsted-grotesk.woff2") format("woff2");
  font-weight:400 900;font-style:normal;font-display:swap;
}

:root{
  --bg:#ffffff;
  --tint:#f3f5f8;
  --tint-2:#e9edf2;
  --line:#dfe4ea;
  --line-2:#c9d1db;
  --ink:#13233d;
  --ink-2:#3f4e64;
  --ink-3:#5a677b;
  --blue:#1b5cd0;
  --blue-d:#1449aa;
  --blue-50:#eaf1fd;
  --red:#c4161c;
  --red-d:#a11015;
  --red-50:#fdf0ef;
  /* accent colours, each with one job:
     sun = hi-vis safety yellow, the highlighter and warm accents (never text on white)
     teal = residential work; blue stays commercial and primary actions */
  --sun:#ffc83d; --sun-50:#fff7df; --sun-ink:#8a5a00;
  --teal:#0b7a6c; --teal-d:#07594e; --teal-50:#e2f4f0;
  --violet:#6d4ee0; --violet-50:#efebfd;
  --red-line:#f4d6d4;
  --navy:#0f1d33;
  --on-navy:#ffffff;
  --on-navy-2:#b9c3d2;

  --font:"Schibsted Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --r-sm:8px; --r:12px; --r-lg:20px;
  --shadow:0 1px 2px rgba(19,35,61,.06), 0 8px 24px -8px rgba(19,35,61,.14);
  --shadow-lg:0 2px 4px rgba(19,35,61,.05), 0 24px 56px -16px rgba(19,35,61,.28);
  --gutter:clamp(16px, 4vw, 40px);
  --wrap:1360px;
  --section:clamp(72px, 9vw, 128px);
  --header-h:76px;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px);font-synthesis:none;}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.6 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0;}
ul,ol{padding:0;list-style:none;}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
button,input,select,textarea{font:inherit;color:inherit;}
button{cursor:pointer;}
address{font-style:normal;}
svg{flex:none;}
[hidden]{display:none !important;}
::selection{background:var(--blue);color:#fff;}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:4px;}
html{scrollbar-color:var(--line-2) var(--tint);}
::-webkit-scrollbar{width:12px;height:12px;}
::-webkit-scrollbar-track{background:var(--tint);}
::-webkit-scrollbar-thumb{background:var(--line-2);border:3px solid var(--tint);border-radius:99px;}

.container{width:100%;max-width:calc(var(--wrap) + var(--gutter) * 2);margin:0 auto;padding:0 var(--gutter);}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.skip{position:absolute;left:16px;top:-60px;z-index:300;padding:12px 18px;border-radius:var(--r-sm);background:var(--ink);color:#fff;font-weight:600;transition:top .2s;}
.skip:focus{top:12px;}

/* ------------------------------------------------------------------ */
/* Type                                                                */
/* ------------------------------------------------------------------ */
.h2{font-size:clamp(2rem, 1.35rem + 2vw, 3rem);line-height:1.08;font-weight:700;letter-spacing:-.022em;text-wrap:balance;max-width:20ch;}
.h2--sm{font-size:clamp(1.75rem, 1.3rem + 1.4vw, 2.375rem);}
.head{display:grid;gap:16px;margin-bottom:clamp(36px, 4.5vw, 56px);}
.head__lead{max-width:58ch;color:var(--ink-2);font-size:1.125rem;line-height:1.6;text-wrap:pretty;}
.head--row{grid-template-columns:1fr auto;align-items:end;gap:24px 40px;}
.head--row > div:first-child{display:grid;gap:16px;}

.link{display:inline-flex;align-items:center;gap:8px;color:var(--blue);font-weight:600;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;text-decoration-thickness:1.5px;transition:text-decoration-color .2s, color .2s;}
.link svg{width:18px;height:18px;transition:transform .3s var(--ease);}
.link:hover{color:var(--blue-d);text-decoration-color:currentColor;}
.link:hover svg{transform:translateX(3px);}

/* ------------------------------------------------------------------ */
/* Buttons                                                             */
/* ------------------------------------------------------------------ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;
  border:1.5px solid transparent;border-radius:var(--r-sm);font-weight:600;font-size:1rem;line-height:1.1;white-space:nowrap;
  transition:background-color .2s, border-color .2s, color .2s, box-shadow .2s, transform .2s var(--ease);
}
.btn svg{width:19px;height:19px;}
.btn:active{transform:translateY(1px);}
.btn--sm{min-height:44px;padding:0 18px;font-size:.95rem;}
.btn--lg{min-height:56px;padding:0 26px;font-size:1.0625rem;}
.btn--block{width:100%;}
.btn--primary{background:var(--blue);color:#fff;}
.btn--primary:hover{background:var(--blue-d);}
.btn--emergency{background:var(--red);color:#fff;}
.btn--emergency:hover{background:var(--red-d);}
.btn--light{background:#fff;color:var(--ink);}
.btn--light:hover{background:var(--blue-50);}
.btn--light svg{color:var(--blue);}
.btn[disabled]{opacity:.6;pointer-events:none;}

/* ------------------------------------------------------------------ */
/* Emergency strip + header                                            */
/* ------------------------------------------------------------------ */
.alert{background:var(--red-50);color:var(--ink);border-bottom:1px solid var(--red-line);font-size:.9rem;}
.alert__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:40px;}
.alert p{display:flex;align-items:center;gap:8px;}
.alert p svg{width:16px;height:16px;color:var(--red);}
.alert strong{color:var(--red);font-weight:700;}
.alert a{color:var(--red);font-weight:700;text-decoration:underline;text-underline-offset:3px;white-space:nowrap;padding:10px 0;}
.alert a:hover{color:var(--red-d);}

.header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);border-bottom:1px solid transparent;transition:border-color .25s, box-shadow .25s;}
@supports (backdrop-filter:blur(1px)){.header{background:rgba(255,255,255,.88);backdrop-filter:saturate(1.6) blur(14px);}}
.header.is-solid{border-bottom-color:var(--line);box-shadow:0 6px 20px -14px rgba(19,35,61,.35);}
.header__inner{display:flex;align-items:center;gap:32px;height:var(--header-h);}
.brand img{width:auto;height:44px;}
.nav{display:flex;gap:4px;margin-left:8px;}
.nav a{position:relative;padding:10px 12px;border-radius:var(--r-sm);font-size:.975rem;font-weight:500;color:var(--ink-2);transition:color .2s, background-color .2s;}
.nav a:hover{color:var(--ink);background:var(--tint);}
.nav a[aria-current]{color:var(--blue);}
.nav a[aria-current]::after{content:"";position:absolute;left:12px;right:12px;bottom:4px;height:2px;border-radius:2px;background:var(--blue);}
.header__actions{display:flex;align-items:center;gap:16px;margin-left:auto;}
.header__phone{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;padding:10px 0;}
.header__phone svg{width:18px;height:18px;color:var(--blue);}
.header__phone:hover{color:var(--blue);}

.menu-btn{display:none;position:relative;width:44px;height:44px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;}
.menu-btn span,.menu-btn span::before,.menu-btn span::after{position:absolute;left:12px;width:18px;height:2px;border-radius:2px;background:var(--ink);transition:transform .3s var(--ease), opacity .2s;}
.menu-btn span{top:21px;}
.menu-btn span::before,.menu-btn span::after{content:"";left:0;}
.menu-btn span::before{top:-6px;} .menu-btn span::after{top:6px;}
.menu-btn[aria-expanded="true"] span{background:transparent;}
.menu-btn[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg);}
.menu-btn[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg);}

.menu{position:fixed;inset:var(--menu-top, var(--header-h)) 0 0 0;z-index:90;background:#fff;opacity:0;transform:translateY(-8px);transition:opacity .25s, transform .35s var(--ease);overflow-y:auto;}
.menu.is-open{opacity:1;transform:none;}
.menu__inner{display:flex;flex-direction:column;gap:32px;min-height:100%;padding-top:16px;padding-bottom:max(32px, env(safe-area-inset-bottom));}
.menu__nav{display:grid;}
.menu__nav a{padding:16px 0;border-bottom:1px solid var(--line);font-size:1.375rem;font-weight:600;letter-spacing:-.01em;}
.menu__foot{display:grid;gap:12px;margin-top:auto;}
.menu__foot p{text-align:center;color:var(--ink-3);font-size:.9rem;}

/* ------------------------------------------------------------------ */
/* Hero                                                                */
/* ------------------------------------------------------------------ */
.hero{padding-top:clamp(12px, 1.6vw, 20px);}
.hero__wrap{
  position:relative;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;
  min-height:clamp(520px, calc(100svh - var(--header-h) - 150px), 700px);
  padding-top:clamp(40px, 4vw, 64px);padding-bottom:clamp(88px, 8vw, 112px);
}
.hero__media{position:absolute;inset:0 var(--gutter);border-radius:var(--r-lg);overflow:hidden;background:var(--ink);}
.hero__media img{width:100%;height:calc(100% + 80px);margin-top:-40px;object-fit:cover;object-position:50% 30%;transform:translate3d(0,var(--hy,0px),0) scale(var(--hs,1));will-change:transform;}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg, rgba(12,30,58,.62) 0%, rgba(12,30,58,.4) 40%, rgba(12,30,58,0) 64%);}
.hero__copy{position:relative;padding-left:clamp(24px, 4.5vw, 64px);color:#fff;max-width:760px;}
.hero__title{font-size:clamp(2.5rem, 1.4rem + 3.6vw, 4.5rem);line-height:1.02;font-weight:700;letter-spacing:-.03em;text-wrap:balance;}
.hero__lead{margin-top:22px;max-width:48ch;font-size:clamp(1.0625rem, 1rem + .3vw, 1.25rem);line-height:1.55;color:rgba(255,255,255,.9);}
.hero__ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px;}


.facts{
  position:relative;z-index:2;display:grid;grid-template-columns:repeat(5, 1fr);margin:-48px clamp(24px, 3vw, 48px) 0;
  border-radius:var(--r);background:#fff;box-shadow:var(--shadow);
}
.facts li{display:flex;align-items:center;gap:12px;padding:22px 20px;font-size:.95rem;line-height:1.3;color:var(--ink-2);}
.facts li + li{border-left:1px solid var(--line);}
.facts svg{width:26px;height:26px;color:var(--blue);}
.facts strong{display:block;color:var(--ink);font-size:1.0625rem;font-weight:700;}
.facts li:first-child svg{color:var(--red);}

/* ------------------------------------------------------------------ */
/* Clients                                                             */
/* ------------------------------------------------------------------ */
.clients{margin-top:clamp(48px, 6vw, 72px);padding:clamp(28px, 3vw, 40px) 0;background:var(--tint);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.clients__inner{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:center;gap:32px;}
.clients__lead{display:grid;gap:8px;justify-items:start;}
.marquee__toggle{min-height:44px;padding:0;border:0;background:none;color:var(--blue);font-size:.875rem;font-weight:600;text-decoration:underline;text-underline-offset:3px;}
.marquee__toggle:hover{color:var(--blue-d);}
.marquee.is-paused .marquee__row{animation-play-state:paused;}
.clients__title{font-size:.975rem;font-weight:600;line-height:1.4;color:var(--ink-2);}
.marquee{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);}
.marquee__row{display:flex;width:max-content;align-items:center;gap:56px;padding:8px 28px;animation:marquee 70s linear infinite;}
.marquee:hover .marquee__row{animation-play-state:paused;}
.marquee li{flex:none;}
.marquee img{height:28px;width:auto;max-width:132px;object-fit:contain;filter:grayscale(1) contrast(1.1);opacity:.72;transition:opacity .2s, filter .2s;}
.marquee img.is-compact{height:44px;}
.marquee img:hover{filter:none;opacity:1;}
@keyframes marquee{to{transform:translateX(-50%);}}

/* ------------------------------------------------------------------ */
/* Sections                                                            */
/* ------------------------------------------------------------------ */
.section{padding:var(--section) 0;}
.section--tint{background:var(--tint);border-top:1px solid var(--line);}

/* the services band is the page's one deep field: logo navy, so the trades read as the core of the offer */
.section--navy{background:var(--ink);color:#fff;}
.section--navy .head__lead,.section--navy .services__foot,.section--navy .svc__body{color:#c3cede;}
.section--navy .link{color:#9cc0ff;}
.section--navy .link:hover{color:#fff;}
.section--navy .filter{background:rgba(255,255,255,.08);}
.section--navy .filter button{color:#c3cede;}
.section--navy .filter button:hover{color:#fff;}
.section--navy .filter button[aria-pressed="true"]{background:#fff;color:var(--ink);}
.section--navy .svcs{border-top-color:rgba(255,255,255,.16);}
.section--navy .svc{border-bottom-color:rgba(255,255,255,.16);}
.section--navy .svc__icon{background:rgba(255,255,255,.06);color:#9cc0ff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);}
.section--navy .tags i{background:transparent;color:#c3cede;box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);}
.section--navy .svc__plus{color:#c3cede;}
.section--navy .svc__row:hover .svc__name,.section--navy .svc.is-active .svc__name{color:#9cc0ff;}
.section--navy .svc__row:hover .svc__icon,.section--navy .svc.is-active .svc__icon{background:var(--blue);color:#fff;box-shadow:none;}
.section--navy .section--navy :focus-visible{outline-color:#9cc0ff;}

/* who we serve: two photo panels; the one in focus widens on a spring and shows its details */
.teams{display:flex;gap:16px;height:clamp(520px, 62vh, 620px);}
.team{position:relative;flex:1 1 0;min-width:0;border-radius:var(--r-lg);overflow:hidden;background:var(--ink);color:#fff;isolation:isolate;
  transition:flex-grow 1.5s cubic-bezier(.45,.05,.25,1);outline:none;will-change:flex-grow;}
.team.is-lead{flex-grow:1.55;}
.team__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.025);transition:transform 1.8s cubic-bezier(.45,.05,.25,1);will-change:transform;}
.team.is-lead .team__photo{transform:none;}
.team::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg, rgba(10,20,38,.05) 25%, rgba(10,20,38,.62) 62%, rgba(10,20,38,.9) 100%);pointer-events:none;}
.team__body{--pad:clamp(24px, 3vw, 40px);position:absolute;left:0;bottom:0;z-index:2;display:grid;gap:10px;padding:var(--pad);
  /* the width of a collapsed panel, used in both states */
  width:calc((min(100vw, var(--wrap) + var(--gutter) * 2) - var(--gutter) * 2 - 16px) / 2.55);
  transform:translateY(var(--mh, 0px));transition:transform 1.5s cubic-bezier(.45,.05,.25,1);will-change:transform;}
.team.is-lead .team__body{transform:none;}
.team__for{justify-self:start;padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.16);font-size:.875rem;font-weight:600;}
.team h3{font-size:clamp(1.5rem, 1.2rem + 1vw, 2.125rem);line-height:1.12;font-weight:700;letter-spacing:-.022em;max-width:20ch;}
.team__lead{max-width:46ch;color:rgba(255,255,255,.88);}
.team__more{display:grid;gap:18px;opacity:0;transition:opacity .5s ease;}
.team.is-lead .team__more{opacity:1;transition:opacity .9s ease .6s;}
.team .ticks li{color:#fff;}
.team .ticks svg{color:#9cc0ff;}
.team .btn{justify-self:start;}
.ticks{display:grid;gap:10px;}
.ticks li{display:flex;gap:10px;align-items:flex-start;color:var(--ink);}
.ticks svg{width:20px;height:20px;margin-top:3px;color:var(--blue);}

/* services */
.filter,.toggle{display:inline-flex;justify-self:start;gap:4px;padding:4px;border-radius:10px;background:var(--tint-2);}
.filter button,.toggle button{min-height:40px;padding:0 16px;border:0;border-radius:7px;background:transparent;font-size:.95rem;font-weight:600;color:var(--ink-2);transition:background-color .2s, color .2s, box-shadow .2s;}
.filter button:hover,.toggle button:hover{color:var(--ink);}
.filter button[aria-pressed="true"],.toggle button[aria-pressed="true"]{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(19,35,61,.14);}

.services__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px, 3.5vw, 56px);align-items:start;}

/* services stage: the selected trade, presented large; the list beside it works like tabs */
.stage{position:sticky;top:calc(var(--header-h) + 24px);aspect-ratio:5/4;border-radius:var(--r-lg);overflow:hidden;background:rgba(255,255,255,.06);isolation:isolate;}
.stage__media,.stage__img{position:absolute;inset:0;width:100%;height:100%;}
.stage__img{object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity .6s ease, transform 1.4s var(--ease);}
.stage__img.is-on{opacity:1;transform:none;}
.stage::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg, rgba(10,20,38,0) 30%, rgba(10,20,38,.55) 58%, rgba(10,20,38,.9) 100%);pointer-events:none;}
.stage__body{position:absolute;left:0;right:0;bottom:0;z-index:2;display:grid;gap:12px;padding:clamp(24px, 3vw, 40px);color:#fff;}
.stage__tags{display:flex;gap:6px;}
.stage__tags i{font-style:normal;font-size:.8125rem;font-weight:600;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.16);color:#fff;}
.stage__name{display:flex;align-items:center;gap:14px;font-size:clamp(1.75rem, 1.2rem + 1.5vw, 2.5rem);font-weight:700;letter-spacing:-.025em;line-height:1.1;}
.stage__name svg{width:44px;height:44px;padding:10px;border-radius:50%;background:var(--blue);color:#fff;flex:none;}
.stage__desc{max-width:52ch;font-size:1.0625rem;color:rgba(255,255,255,.88);}
.stage__ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px;}
.btn--ghost-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.4);}
.btn--ghost-light:hover{background:rgba(255,255,255,.12);border-color:#fff;}
@keyframes stageText{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.stage.is-swap .stage__body > *{animation:stageText .6s var(--ease) both;}
.stage.is-swap .stage__name{animation-delay:.05s;}
.stage.is-swap .stage__desc{animation-delay:.1s;}
.stage.is-swap .stage__ctas{animation-delay:.15s;}


.svcs{border-top:1px solid var(--line-2);}
.svc{border-bottom:1px solid var(--line-2);}
.svc.is-out{display:none;}
.svc__h{font:inherit;}
.svc__row{display:flex;align-items:center;gap:16px;width:100%;min-height:76px;padding:12px 4px;border:0;background:none;text-align:left;}
.svc__icon{width:44px;height:44px;padding:11px;border-radius:50%;background:#fff;color:var(--blue);box-shadow:inset 0 0 0 1px var(--line);transition:background-color .2s, color .2s;}
.svc__name{flex:1;font-size:clamp(1.0625rem, 1rem + .4vw, 1.3125rem);font-weight:600;letter-spacing:-.01em;line-height:1.25;}
.tags{display:flex;gap:6px;}
.tags i{font-style:normal;font-size:.8125rem;font-weight:600;padding:4px 10px;border-radius:999px;background:#fff;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line);}
.svc__plus{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:var(--ink-2);transition:transform .35s var(--ease), background-color .2s, color .2s;}
.svc__plus svg{width:18px;height:18px;}
.svc__row:hover .svc__name,.svc.is-active .svc__name{color:var(--blue);}
.svc__row:hover .svc__icon,.svc.is-active .svc__icon{background:var(--blue);color:#fff;box-shadow:none;}
.svc.is-open .svc__plus{transform:rotate(45deg);background:var(--blue);color:#fff;}
.svc__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease);}
.svc.is-open .svc__panel{grid-template-rows:1fr;}
.svc__inner{overflow:hidden;}
.svc__body{display:grid;gap:14px;padding:0 4px 24px 64px;color:var(--ink-2);max-width:62ch;}
.svc__img{display:none;}
.services__foot{margin-top:32px;color:var(--ink-2);}
/* desktop: rows are tabs, details live on the stage */
@media (min-width:961px){
  .svc__panel{display:none;}
  .svc__plus{display:none;}
  .svc__row{min-height:60px;padding:8px 14px;border-radius:14px;}
  .svcs{border-top:0;}
  .section--navy .svc{border-bottom:0;}
  .svc + .svc{margin-top:2px;}
  .section--navy .svc.is-open .svc__row{background:rgba(255,255,255,.08);}
  .section--navy .svc.is-open .svc__name{color:#fff;}
  .section--navy .svc__row:hover{background:rgba(255,255,255,.05);}
  .svc__row::after{content:"";width:8px;height:8px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);opacity:0;color:#9cc0ff;transition:opacity .2s, transform .3s var(--ease);}
  .svc.is-open .svc__row::after{opacity:1;transform:translateX(2px) rotate(45deg);}
  .svc .tags{display:none;}
}

/* why */
.why{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(32px, 5vw, 80px);align-items:center;}
/* the crew photo runs off the left edge of the screen, anchoring the section to the page edge */
.why__img{aspect-ratio:4/5;margin-left:calc(-1 * max(var(--gutter), (100vw - var(--wrap)) / 2));border-radius:0 var(--r-lg) var(--r-lg) 0;overflow:hidden;background:var(--tint);}
.why__img[data-unveil].in{clip-path:inset(0 0 0 0 round 0 var(--r-lg) var(--r-lg) 0);}
.why__img img{width:100%;height:100%;object-fit:cover;}
/* why: a comparison where the Praxium column is a raised panel and the alternative stays flat and muted */
.compare{position:relative;--c1:30%;--c2:37%;}
.compare__lift{position:absolute;top:0;bottom:0;left:var(--c1);width:var(--c2);border-radius:var(--r);background:#fff;
  box-shadow:0 0 0 1px var(--line), 0 18px 44px -20px rgba(19,35,61,.35);transform-origin:50% 0;}
.compare__table{position:relative;width:100%;border-collapse:collapse;table-layout:fixed;}
.compare__table col,.compare__table th:first-child{width:var(--c1);}
.compare__table thead th{padding:20px 20px 14px;text-align:left;font-size:1rem;font-weight:700;}
.compare__table thead th:nth-child(2){width:var(--c2);}
.compare__table thead .compare__us{color:var(--blue);font-size:1.125rem;}
.compare__table thead .compare__them{color:var(--ink-3);}
.compare__table tbody th,.compare__table td{padding:18px 20px;text-align:left;vertical-align:top;border-top:1px solid var(--line);line-height:1.4;}
.compare__table tbody th{font-weight:600;font-size:.95rem;color:var(--ink-2);}
.compare__table tbody th svg{display:block;width:22px;height:22px;margin-bottom:8px;color:var(--blue);}
.compare__table td{position:relative;padding-left:52px !important;}
.compare__table td svg{position:absolute;left:20px;top:19px;width:20px;height:20px;}
.compare__table td{font-size:1rem;}
.compare__table td.compare__us{font-weight:600;color:var(--ink);border-top-color:transparent;box-shadow:inset 0 1px 0 var(--line);}
.compare__table td.compare__us svg{color:#fff;background:var(--blue);border-radius:50%;padding:3px;}
.compare__table td.compare__them{color:var(--ink-3);}
.compare__table td.compare__them svg{color:var(--ink-3);}
.compare__table tbody tr:first-child td.compare__us{box-shadow:none;}

/* the panel rises into place, then the rows arrive one by one and the ticks draw */
@keyframes liftIn{from{transform:scaleY(.6);opacity:0;}to{transform:none;opacity:1;}}
.js .compare.is-live .compare__lift{opacity:0;}
.js .compare.is-live.in .compare__lift{animation:liftIn .8s var(--ease) both;}
.js .compare.is-live thead th,.js .compare.is-live tbody tr{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease), transform .7s var(--ease);}
.js .compare.is-live.in thead th{opacity:1;transform:none;transition-delay:.25s;}
.js .compare.is-live.in tbody tr{opacity:1;transform:none;transition-delay:calc(var(--ri, 0) * 110ms + .35s);}
.js .compare.is-live.in td.compare__us svg use{stroke-dasharray:90;animation:draw .9s var(--ease) both;animation-delay:calc(var(--ri, 0) * 110ms + .55s);}
.js .compare.is-live.in td.compare__them{transition:color .6s;}
@media (hover:hover){
  .compare__table tbody tr:hover td.compare__us{color:var(--blue-d);}
}

/* process */

/* process: a timeline whose track fills as the section scrolls through view;
   each step lights up when the fill reaches its node */
.flow{position:relative;--node:64px;}
.flow__steps{position:relative;display:grid;grid-template-columns:repeat(3, 1fr);gap:clamp(24px, 4vw, 56px);}
.flow__track{position:absolute;top:calc(var(--node) / 2 - 1.5px);left:calc(100% / 6);right:calc(100% / 6);height:3px;border-radius:3px;background:var(--line-2);overflow:hidden;}
.flow__fill{position:absolute;inset:0;border-radius:inherit;background:var(--blue);transform:scaleX(var(--p, 1));transform-origin:left;}
.flow__step{display:grid;justify-items:center;gap:12px;text-align:center;}
.flow__node{position:relative;z-index:1;display:grid;place-items:center;width:var(--node);height:var(--node);border-radius:50%;
  background:var(--blue);color:#fff;box-shadow:0 0 0 6px var(--tint), 0 10px 24px -10px rgba(27,92,208,.6);
  transition:background-color .4s, color .4s, box-shadow .5s var(--ease), transform .6s var(--ease);}
.flow__node svg{width:28px;height:28px;}
.flow__step h3{display:flex;align-items:baseline;justify-content:center;gap:10px;margin-top:10px;font-size:clamp(1.25rem, 1.1rem + .5vw, 1.5rem);font-weight:700;letter-spacing:-.015em;}
.flow__num{color:var(--blue);font-variant-numeric:tabular-nums;}
.flow__step p{max-width:32ch;color:var(--ink-2);}
.flow__step .link{margin-top:4px;}

/* animated states (only with JS and full motion) */
@keyframes nodeOn{0%{transform:scale(.85);}55%{transform:scale(1.1);}100%{transform:none;}}
@keyframes ringOut{from{box-shadow:0 0 0 6px var(--tint), 0 0 0 6px rgba(27,92,208,.45);}to{box-shadow:0 0 0 6px var(--tint), 0 0 0 26px rgba(27,92,208,0);}}
.js .flow.is-live .flow__node{background:var(--surface, #fff);color:var(--ink-3);box-shadow:0 0 0 6px var(--tint), inset 0 0 0 2px var(--line-2);}
.js .flow.is-live .flow__step h3,.js .flow.is-live .flow__step p,.js .flow.is-live .flow__step .link{opacity:.35;transform:translateY(10px);transition:opacity .6s var(--ease), transform .7s var(--ease);}
.js .flow.is-live .flow__num{color:var(--ink-3);transition:color .4s;}
.js .flow.is-live .flow__step.on .flow__node{background:var(--blue);color:#fff;animation:nodeOn .7s var(--ease) both, ringOut 1s ease-out .15s both;}
.js .flow.is-live .flow__step.on .flow__node svg{stroke-dasharray:90;animation:draw 1s var(--ease) .1s both;}
.js .flow.is-live .flow__step.on h3,.js .flow.is-live .flow__step.on p,.js .flow.is-live .flow__step.on .link{opacity:1;transform:none;}
.js .flow.is-live .flow__step.on p{transition-delay:.08s;}
.js .flow.is-live .flow__step.on .link{transition-delay:.16s;}
.js .flow.is-live .flow__step.on .flow__num{color:var(--blue);}

/* emergency band */
.urgent{background:var(--red-50);border-top:1px solid var(--red-line);border-bottom:1px solid var(--red-line);}
.urgent__inner{display:flex;align-items:center;justify-content:space-between;gap:24px 48px;padding-top:clamp(40px, 5vw, 64px);padding-bottom:clamp(40px, 5vw, 64px);}
.urgent__title{font-size:clamp(1.625rem, 1.2rem + 1.4vw, 2.375rem);font-weight:700;letter-spacing:-.02em;line-height:1.12;}
.urgent p{margin-top:10px;color:var(--ink-2);max-width:56ch;}
.urgent__call{display:inline-flex;align-items:center;gap:14px;min-height:64px;padding:0 30px;border-radius:var(--r-sm);background:var(--red);color:#fff;font-size:clamp(1.25rem, 1.1rem + .6vw, 1.625rem);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;transition:background-color .2s;}
.urgent__call svg{width:24px;height:24px;}
.urgent__call:hover{background:var(--red-d);}

/* contact */
/* contact splits into a tinted information side and a white form side */

/* contact: one rounded shell, navy information side and a white form side */
.contact{background:var(--tint);border-top:1px solid var(--line);}
.contact__shell{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);border-radius:var(--r-lg);overflow:hidden;background:#fff;
  box-shadow:0 2px 4px rgba(19,35,61,.04), 0 30px 70px -36px rgba(19,35,61,.45);}
.contact__info{display:grid;align-content:start;gap:18px;padding:clamp(32px, 4vw, 56px);background:var(--ink);color:#fff;position:relative;overflow:hidden;}
.contact__info::after{content:"";position:absolute;right:-120px;bottom:-120px;width:360px;height:360px;border-radius:50%;border:1px solid rgba(255,255,255,.08);box-shadow:0 0 0 60px rgba(255,255,255,.025), 0 0 0 120px rgba(255,255,255,.02);pointer-events:none;}
.contact__info .h2{color:#fff;}
.contact__info .head__lead{color:#c3cede;}
.channels{display:grid;gap:10px;margin-top:10px;position:relative;z-index:1;}
.channel{display:flex;align-items:center;gap:16px;padding:16px 18px;border-radius:16px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);
  transition:background-color .25s, box-shadow .25s, transform .4s var(--ease);}
a.channel:hover{background:rgba(255,255,255,.12);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);}
a.channel:active{transform:scale(.985);}
.channel__icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--blue);color:#fff;flex:none;}
.channel__icon svg{width:20px;height:20px;}
.channel--static .channel__icon{background:rgba(255,255,255,.1);color:#9cc0ff;}
.channel__text{display:grid;gap:2px;flex:1;min-width:0;}
.channel__text small{font-size:.8125rem;font-weight:600;color:#9fb0c6;}
.channel__text strong{font-size:1.0625rem;font-weight:650;overflow-wrap:anywhere;}
a.channel[href^="tel"] strong{font-size:1.375rem;font-variant-numeric:tabular-nums;letter-spacing:-.01em;}
.channel__go{width:18px;height:18px;color:#9cc0ff;flex:none;transition:transform .3s var(--ease);}
a.channel:hover .channel__go{transform:translateX(3px);}
.contact__areas{position:relative;z-index:1;margin-top:8px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);}
.contact__areas p{font-size:.8125rem;font-weight:600;color:#9fb0c6;margin-bottom:10px;}
.contact__areas ul{display:flex;flex-wrap:wrap;gap:8px;}
.contact__areas li{padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.08);font-size:.9375rem;font-weight:600;}
.contact__form{padding:clamp(28px, 3.5vw, 52px);}
.contact__form .toggle{margin-bottom:24px;}
.js .contact__shell[data-reveal]{transform:translateY(28px) scale(.985);}
.js .contact__shell[data-reveal].in{transform:none;}
.form-card{padding:clamp(24px, 3.2vw, 40px);border-radius:var(--r);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);}
.form-card .toggle{margin-bottom:24px;}
.form-card__title{font-size:1.75rem;font-weight:700;letter-spacing:-.015em;}
.form-card__lead{margin:8px 0 24px;color:var(--ink-2);}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px;}
.field{grid-column:1 / -1;display:grid;gap:7px;}
.field--half{grid-column:span 1;}
.field.is-hidden,.form-status.is-hidden{display:none;}
/* photo upload: a dashed drop zone, then thumbnails that can be removed */
.photos__label{font-size:.9rem;font-weight:600;color:var(--ink);}
.photos{position:relative;}
.field .photos__input{position:absolute;left:0;top:0;width:1px;height:1px;min-height:0;padding:0;border:0;opacity:0;pointer-events:none;overflow:hidden;}
.drop{display:flex;align-items:center;gap:16px;min-height:76px;padding:16px 18px;border:1.5px dashed var(--line-2);border-radius:var(--r-sm);background:var(--tint);cursor:pointer;
  transition:border-color .2s, background-color .2s, transform .3s var(--ease);}
.drop svg{width:30px;height:30px;color:var(--blue);flex:none;}
.drop__text{display:grid;gap:2px;}
.drop__text strong{font-weight:600;color:var(--ink);}
.drop__text small{font-size:.875rem;color:var(--ink-3);}
.drop:hover,.drop.is-over{border-color:var(--blue);background:var(--blue-50);}
.drop.is-over{transform:scale(1.01);}
.photos__input:focus-visible + .thumbs,.photos:focus-within .drop{outline:2px solid var(--blue);outline-offset:3px;}
.thumbs{display:flex;flex-wrap:wrap;gap:10px;}
.thumbs:empty{display:none;}
.thumb{position:relative;width:76px;height:76px;border-radius:10px;overflow:hidden;background:var(--tint-2);animation:settle .45s var(--ease) both;}
.thumb img{width:100%;height:100%;object-fit:cover;}
.thumb button{position:absolute;top:4px;right:4px;display:grid;place-items:center;width:26px;height:26px;border:0;border-radius:50%;background:rgba(19,35,61,.78);color:#fff;}
.thumb button svg{width:14px;height:14px;}
.thumb button:hover{background:var(--red);}
.photos__note{font-size:.875rem;color:var(--ink-3);}
.photos__note:empty{display:none;}
.photos__note.is-error{color:var(--red);}
.field label{font-size:.9rem;font-weight:600;color:var(--ink);}
.opt{font-weight:400;color:var(--ink-3);}
.field input,.field select,.field textarea{
  width:100%;min-height:48px;padding:11px 14px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:#fff;font-size:1rem;color:var(--ink);
  transition:border-color .2s, box-shadow .2s;
}
.field select{appearance:none;padding-right:40px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%233f4e64' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center/18px;}
.field textarea{min-height:120px;resize:vertical;line-height:1.5;}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-3);}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--ink-3);}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(27,92,208,.18);}
.field [aria-invalid="true"]{border-color:var(--red);box-shadow:0 0 0 3px rgba(196,22,28,.12);}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.form-status{grid-column:1 / -1;display:flex;gap:10px;padding:14px 16px;border-radius:var(--r-sm);background:var(--blue-50);color:var(--ink);font-size:.95rem;line-height:1.5;}
.form-status.is-error{background:var(--red-50);color:var(--red-d);}
.form-actions{grid-column:1 / -1;display:grid;gap:12px;margin-top:4px;}
.form-note{font-size:.875rem;color:var(--ink-3);text-align:center;}
.form-note a{color:var(--blue);font-weight:600;}

/* in-card success: the form is replaced by a confirmation */
.sent{display:grid;justify-items:start;gap:12px;padding:8px 0;animation:settle .6s var(--ease) both;}
.sent__icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--blue-50);color:var(--blue);}
.sent__icon svg{width:26px;height:26px;}
.sent h3{font-size:1.375rem;font-weight:700;letter-spacing:-.01em;}
.sent p{color:var(--ink-2);}
.sent button{margin-top:4px;padding:0;border:0;background:none;color:var(--blue);font-weight:600;text-decoration:underline;text-underline-offset:4px;min-height:44px;}

/* careers */
.page-hero{padding:clamp(48px, 6vw, 88px) 0 clamp(56px, 7vw, 96px);}
.page-hero__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px, 5vw, 80px);align-items:center;}
.page-hero__title{font-size:clamp(2.375rem, 1.4rem + 3vw, 4rem);line-height:1.04;font-weight:700;letter-spacing:-.028em;text-wrap:balance;max-width:16ch;}
.page-hero__lead{margin-top:22px;max-width:52ch;font-size:1.1875rem;color:var(--ink-2);}
.page-hero__aside{margin-top:20px;color:var(--ink-2);}
.page-hero__aside a{color:var(--blue);font-weight:600;}
.page-hero__img{aspect-ratio:4/5;max-height:560px;border-radius:var(--r-lg);overflow:hidden;background:var(--tint);}
.page-hero__img img{width:100%;height:100%;object-fit:cover;}
/* careers */
/* careers opening: a navy band with the pitch and a mosaic of trade work */
.job-hero{position:relative;overflow:hidden;padding:clamp(56px, 7vw, 104px) 0;background:var(--ink);color:#fff;}
.job-hero .page-hero__title{color:#fff;max-width:14ch;}
.job-hero .page-hero__lead{color:#c3cede;}
.job-hero__badge{display:inline-flex;align-items:center;gap:10px;margin-bottom:22px;padding:7px 14px 7px 12px;border-radius:999px;background:rgba(255,255,255,.08);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);font-size:.9375rem;font-weight:600;}
.job-hero__dot{position:relative;width:8px;height:8px;border-radius:50%;background:#3ddc84;}
.job-hero__dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:#3ddc84;animation:dotPing 2.4s ease-out 3;}
@keyframes dotPing{from{transform:scale(1);opacity:.7;}to{transform:scale(3.2);opacity:0;}}
.mosaic{position:relative;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:200px 120px 200px;gap:14px;}
.mosaic__tile{position:relative;overflow:hidden;border-radius:var(--r);background:rgba(255,255,255,.06);box-shadow:0 24px 50px -24px rgba(0,0,0,.6);}
.mosaic__tile:nth-child(1){grid-column:1;grid-row:1 / span 2;}
.mosaic__tile:nth-child(2){grid-column:2;grid-row:1;}
.mosaic__tile:nth-child(3){grid-column:2;grid-row:2 / span 2;}
.mosaic__tile:nth-child(4){grid-column:1;grid-row:3;}
.mosaic__tile img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);}
.mosaic__tile:hover img{transform:scale(1.05);}
.mosaic__tag{position:absolute;left:12px;bottom:12px;display:inline-flex;align-items:center;gap:8px;padding:7px 12px 7px 9px;border-radius:999px;background:rgba(10,20,38,.72);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:.875rem;font-weight:600;}
.mosaic__tag svg{width:16px;height:16px;color:#9cc0ff;}
/* the tiles arrive one by one, then drift slowly at slightly different speeds */
@keyframes tileIn{from{opacity:0;transform:translateY(24px) scale(.96);}to{opacity:1;transform:none;}}
@keyframes drift{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}
.mosaic__tile{animation:tileIn .9s var(--ease) both, drift 7s ease-in-out 1.2s 2;animation-delay:calc(var(--i) * 110ms + .2s), calc(var(--i) * 600ms + 1.4s);}
.job-hero__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px, 5vw, 80px);align-items:center;}
.job-hero__ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px;}
.btn--quiet{background:var(--tint);color:var(--ink);}
.btn--quiet:hover{background:var(--tint-2);}
.btn--quiet svg{color:var(--blue);}
.job-why{padding-top:0;}
.job-why__list{display:grid;grid-template-columns:repeat(3, 1fr);gap:clamp(24px, 3vw, 48px);padding-top:clamp(32px, 4vw, 48px);border-top:1px solid var(--line);}
.job-why__list li{display:grid;gap:10px;align-content:start;}
.job-why__icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--blue-50);color:var(--blue);margin-bottom:6px;}
.job-why__icon svg{width:24px;height:24px;}
.job-why__list h2{font-size:1.3125rem;font-weight:700;letter-spacing:-.015em;}
.job-why__list p{color:var(--ink-2);}
.role-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:14px;}
.role{display:flex;align-items:center;gap:14px;width:100%;min-height:76px;padding:14px 18px;border:1px solid var(--line);border-radius:var(--r);background:#fff;text-align:left;
  transition:border-color .2s, box-shadow .3s, transform .4s var(--ease);}
.role__icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--blue-50);color:var(--blue);flex:none;transition:background-color .2s, color .2s;}
.role__icon svg{width:22px;height:22px;}
.role__name{flex:1;font-weight:650;font-size:1.0625rem;}
.role__go{display:inline-flex;align-items:center;gap:6px;color:var(--blue);font-weight:600;font-size:.9375rem;}
.role__go svg{width:16px;height:16px;transition:transform .3s var(--ease);}
.role:hover{border-color:var(--blue);box-shadow:0 12px 28px -16px rgba(27,92,208,.45);transform:translateY(-2px);}
.role:hover .role__icon,.role.is-picked .role__icon{background:var(--blue);color:#fff;}
.role:hover .role__go svg{transform:translateX(3px);}
.role:active{transform:scale(.98);}
.role.is-picked{border-color:var(--blue);box-shadow:0 0 0 3px rgba(27,92,208,.18);}
.apply-aside{display:grid;gap:16px;align-content:start;position:sticky;top:calc(var(--header-h) + 24px);}
.apply-aside .ticks a{color:var(--blue);font-weight:600;}
@keyframes picked{0%{box-shadow:0 0 0 0 rgba(27,92,208,.45), var(--shadow);}100%{box-shadow:0 0 0 18px rgba(27,92,208,0), var(--shadow);}}
.form-card.is-picked{animation:picked 1s ease-out;}
.careers__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px, 5vw, 80px);align-items:start;}
.careers__grid > div:first-child{display:grid;gap:16px;}
.roles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;}
.roles li{display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 14px;border-radius:var(--r-sm);background:#fff;border:1px solid var(--line);font-weight:600;}
.roles svg{width:22px;height:22px;color:var(--blue);}

/* footer */
.footer{background:var(--navy);color:var(--on-navy-2);padding:clamp(56px, 7vw, 88px) 0 32px;}
.footer__grid{display:grid;grid-template-columns:minmax(0,2fr) repeat(3, minmax(0,1fr));gap:40px;}
.footer__brand img{width:auto;height:52px;}
.footer__brand p{margin-top:18px;max-width:38ch;}
.footer__col h2{font-size:.95rem;font-weight:700;color:#fff;margin-bottom:14px;}
.footer__col ul{display:grid;gap:4px;}
.footer__col a{display:inline-block;padding:6px 0;transition:color .2s;}
.footer__col a:hover{color:#fff;}
.footer__bottom{display:flex;justify-content:space-between;gap:16px;margin-top:56px;padding-top:24px;border-top:1px solid rgba(255,255,255,.14);font-size:.9rem;}
.footer__bottom a{padding:6px 0;}
.footer__bottom a:hover{color:#fff;}
.footer :focus-visible{outline-color:#fff;}

/* mobile call bar: emergency and quote side by side, equal weight */
.callbar{display:none;}

/* ------------------------------------------------------------------ */
/* Motion: one settle-in on load, a quiet reveal per section           */
/* ------------------------------------------------------------------ */
@keyframes settle{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.settle{animation:settle .9s var(--ease) both;animation-delay:calc(var(--sd, 0) * 120ms);}
.js [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease), transform .8s var(--ease);transition-delay:calc(var(--rd, 0) * 90ms);}
.js [data-reveal].in{opacity:1;transform:none;}

/* hero: the photo eases in from a slight zoom, the headline rises word by word */
/* pure CSS keyframes: they run on first paint without waiting for the script, and the
   buttons only slide (never start invisible), so the emergency call is always on screen */
@keyframes heroZoom{from{transform:scale(1.12);}to{transform:none;}}
@keyframes rise{from{transform:translateY(110%);}to{transform:none;}}
@keyframes slideUp{from{transform:translateY(14px);}to{transform:none;}}
.hero__media picture{display:block;height:100%;animation:heroZoom 2.4s var(--ease) both;}
.hero__title .wm{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.06em;margin-bottom:-.06em;}
.hero__title .w{display:inline-block;}
.hero__title .w{animation:rise 1s var(--ease) both;animation-delay:calc(var(--i) * 55ms + 100ms);}
.hero__copy.settle,.facts.settle{animation:none;}
.hero__lead{animation:settle .8s var(--ease) .35s both;}
.hero__ctas{animation:slideUp .8s var(--ease) .45s both;}
.facts li{animation:slideUp .7s var(--ease) both;animation-delay:calc(var(--ri, 0) * 80ms + .5s);}

/* line icons draw themselves in */
@keyframes draw{from{stroke-dashoffset:90;}to{stroke-dashoffset:0;}}
.facts svg,.js .in .ticks svg{stroke-dasharray:90;animation:draw 1.4s var(--ease) both;}
.facts li svg{animation-delay:calc(var(--ri, 0) * 80ms + .6s);}

/* groups arrive one item after another */
.js [data-reveal-group] > *{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease), transform .7s var(--ease);transition-delay:calc(var(--ri, 0) * 70ms);}
.js [data-reveal-group].in > *{opacity:1;transform:none;}

/* photos unveil upward as they scroll in, settling from a slight zoom */
.js [data-unveil]{clip-path:inset(18% 0 0 0 round var(--r-lg));transition:clip-path 1.2s var(--ease);}
.js [data-unveil] img{transform:scale(1.12);transition:transform 1.6s var(--ease);}
.js [data-unveil].in{clip-path:inset(0 0 0 0 round var(--r-lg));}
.js [data-unveil].in img{transform:none;}

/* process: numbers pop and the connectors draw left to right */
@keyframes pop{0%{transform:scale(.4);opacity:0;}70%{transform:scale(1.12);}100%{transform:none;opacity:1;}}

/* services photo crossfades with a gentle settle */

/* the emergency phone gives a short ring every few seconds */
@keyframes ring{0%,60%,100%{transform:none;}66%{transform:rotate(-14deg);}72%{transform:rotate(12deg);}78%{transform:rotate(-10deg);}84%{transform:rotate(8deg);}90%{transform:rotate(-4deg);}}
.alert p svg,.js .urgent__inner.in .urgent__call svg{animation:ring 2.2s ease-in-out 1.2s 2;transform-origin:50% 60%;}

/* buttons and cards lift slightly under the pointer */
@media (hover:hover){
  .btn{transition:background-color .2s, border-color .2s, color .2s, box-shadow .25s, transform .25s var(--ease);}
  .btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px -10px rgba(19,35,61,.45);}
  .btn svg{transition:transform .3s var(--ease);}
  .btn:hover svg:last-child{transform:translateX(3px);}
}

/* ------------------------------------------------------------------ */
/* Responsive                                                          */
/* ------------------------------------------------------------------ */
@media (max-width:1180px){
  .nav{display:none;}
  .menu-btn{display:block;}
  .facts{grid-template-columns:repeat(3, 1fr);}
  .facts li:nth-child(4){border-left:0;}
  .facts li:nth-child(n+4){border-top:1px solid var(--line);}
}
@media (max-width:960px){
  :root{--header-h:68px;}
  .brand img{height:38px;}
  .header__phone span{display:none;}
  .header__phone{width:44px;height:44px;justify-content:center;border:1px solid var(--line);border-radius:var(--r-sm);padding:0;}
  /* photo and copy share one cell */
  .hero__wrap{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:0;min-height:0;padding:0 var(--gutter);}
  .hero__media{position:relative;inset:auto;grid-area:1 / 1;}
  .hero__copy{grid-area:1 / 1;padding:clamp(56px, 10vw, 96px) clamp(24px, 5vw, 48px) clamp(72px, 10vw, 96px);}
  .hero__media::after{background:linear-gradient(180deg, rgba(12,30,58,.42) 0%, rgba(12,30,58,.3) 45%, rgba(12,30,58,.62) 100%);}
  .facts{margin:24px 0 0;grid-template-columns:1fr 1fr;box-shadow:none;border:1px solid var(--line);}
  .facts li:nth-child(n){border-left:0;border-top:1px solid var(--line);}
  .facts li:nth-child(-n+2){border-top:0;}
  .facts li:nth-child(even){border-left:1px solid var(--line);}
  .facts li:last-child{grid-column:1 / -1;border-left:0;}
  .clients__inner{grid-template-columns:1fr;gap:16px;}
  /* stacked on smaller screens: every panel shows its details */
  .teams{flex-direction:column;height:auto;}
  .team,.team.is-lead{flex:none;min-height:620px;}
  .team::after{background:linear-gradient(180deg, rgba(10,20,38,.1) 0%, rgba(10,20,38,.55) 34%, rgba(10,20,38,.92) 72%);}
  .team__more,.team.is-lead .team__more{opacity:1;}
  .team__body,.team.is-lead .team__body{width:auto;right:0;transform:none;}
  .team__photo{transform:none;}
  .head--row{grid-template-columns:1fr;}
  .services__grid{grid-template-columns:1fr;}
  .stage{display:none;}
  .svc__img{display:block;border-radius:var(--r);overflow:hidden;aspect-ratio:16/10;background:var(--tint-2);}
  .svc__img img{width:100%;height:100%;object-fit:cover;}
  .svc__body{padding-left:4px;}
  .why{grid-template-columns:1fr;}
  .why__img{aspect-ratio:16/10;margin-left:0;border-radius:var(--r-lg);}
  .why__img[data-unveil].in{clip-path:inset(0 0 0 0 round var(--r-lg));}
  .contact{background:var(--tint);}
  .contact__shell{grid-template-columns:1fr;}
  .urgent__inner{flex-direction:column;align-items:flex-start;}
  .contact__grid,.careers__grid,.page-hero__grid,.job-hero__grid{grid-template-columns:1fr;}
  .mosaic{grid-template-rows:150px 90px 150px;}
  .role-grid{grid-template-columns:1fr 1fr;}
  .apply-aside{position:static;}

  .page-hero__img{aspect-ratio:16/10;}
  .footer__grid{grid-template-columns:1fr 1fr;}
  .footer__brand{grid-column:1 / -1;}
}
@media (max-width:760px){
  /* the timeline turns vertical: the track runs down the left edge through every node */
  .flow{--node:56px;}
  .flow__steps{grid-template-columns:1fr;gap:36px;}
  .flow__track{top:calc(var(--node) / 2);bottom:calc(var(--node) / 2);left:calc(var(--node) / 2 - 1.5px);right:auto;width:3px;height:auto;}
  .flow__fill{transform:scaleY(var(--p, 1));transform-origin:top;}
  .flow__step{grid-template-columns:var(--node) 1fr;justify-items:start;column-gap:20px;row-gap:8px;text-align:left;}
  .flow__node{grid-row:1 / span 3;}
  .flow__step h3{justify-content:flex-start;margin-top:12px;}
  .flow__step p,.flow__step .link{grid-column:2;}
  .callbar{
    position:fixed;left:0;right:0;bottom:0;z-index:80;display:grid;grid-template-columns:1fr 1fr;gap:8px;
    padding:10px 12px max(10px, env(safe-area-inset-bottom));background:rgba(255,255,255,.96);border-top:1px solid var(--line);
    transform:translateY(110%);transition:transform .35s var(--ease);
  }
  .callbar.is-shown{transform:none;}
  .callbar a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:50px;border-radius:var(--r-sm);font-weight:700;color:#fff;}
  .callbar svg{width:18px;height:18px;}
  .cb-call{background:var(--red);}
  .cb-quote{background:var(--blue);}
  .footer{padding-bottom:calc(32px + 72px);}
}
@media (max-width:600px){
  .alert__more{display:none;}
  .header .btn--sm{display:none;}
  .hero__ctas .btn{width:100%;}
  .fields{grid-template-columns:1fr;}
  .field--half{grid-column:1 / -1;}
  .tags{display:none;}
  .svc__row{gap:14px;}
  /* phones: each row becomes a short block, Praxium first, the alternative beneath */
  .compare__lift,.compare__table thead{display:none;}
  .compare__table,.compare__table tbody,.compare__table tr,.compare__table th,.compare__table td{display:block;width:auto;}
  .compare__table tbody tr{padding:18px 18px 16px;margin-bottom:12px;border-radius:var(--r);background:#fff;box-shadow:0 0 0 1px var(--line);}
  .compare__table tbody th,.compare__table td{padding:0;border:0;box-shadow:none !important;}
  .compare__table tbody th{display:flex;align-items:center;gap:10px;margin-bottom:12px;width:auto !important;}
  .compare__table tbody th svg{margin:0;}
  .compare__table td.compare__us{margin-bottom:8px;}
  .compare__table td{padding-left:30px !important;}
  .compare__table td svg{left:0;top:1px;}
  .contact__info,.contact__form{padding:24px 20px;}
  a.channel[href^="tel"] strong{font-size:1.25rem;}
  .channel{padding:14px;gap:12px;}
  .channel__text strong{font-size:1rem;}
  .channel__icon{width:40px;height:40px;}
  .role-grid,.job-why__list{grid-template-columns:1fr;}
  .job-hero__ctas .btn{width:100%;}
  .urgent__call{width:100%;justify-content:center;}
  .footer__grid{grid-template-columns:1fr;}
  .footer__bottom{flex-direction:column;}
}

@media (prefers-reduced-motion:reduce){
  .mosaic__tile,.job-hero__dot::after{animation:none;}
  .team,.team__photo,.team__more{transition:none;}
  .thumb{animation:none;}
  .stage__img{transition:opacity .01ms;transform:none;}
  .stage.is-swap .stage__body > *,.form-card.is-picked{animation:none;}
  .js .compare.is-live .compare__lift,.js .compare.is-live thead th,.js .compare.is-live tbody tr{opacity:1;transform:none;animation:none;transition:none;}
  .js .compare.is-live td.compare__us svg use{animation:none;}
  .flow__fill{transform:none !important;}
  .js .flow.is-live .flow__node,.js .flow.is-live .flow__step .flow__node{background:var(--blue);color:#fff;animation:none;box-shadow:0 0 0 6px var(--tint);}
  .js .flow.is-live .flow__step h3,.js .flow.is-live .flow__step p,.js .flow.is-live .flow__step .link{opacity:1;transform:none;}
  .js .flow.is-live .flow__num{color:var(--blue);}
  html{scroll-behavior:auto;}
  .marquee__toggle{display:none;}
  .sent{animation:none;}
  .settle,.js [data-reveal],.js [data-reveal-group] > *,.hero__title .w,.hero__lead,.hero__ctas,.facts li{opacity:1;transform:none;animation:none;transition:none;}
  .js [data-unveil],.js [data-unveil] img{clip-path:none;transform:none;transition:none;}
  .hero__media picture,.urgent__call svg,.alert p svg,.facts svg,.js .in .ticks svg{animation:none;}
  .hero__media img{transform:none;height:100%;margin-top:0;}
  .marquee__row{animation:none;flex-wrap:wrap;width:auto;justify-content:center;gap:20px 36px;}
  .marquee img{height:24px;}
  .marquee img.is-compact{height:38px;}
  *,*::before,*::after{transition-duration:.01ms !important;}
}

/* ------------------------------------------------------------------ */
/* Site assistant                                                      */
/* ------------------------------------------------------------------ */
.ai{--ai-bottom:max(20px, env(safe-area-inset-bottom));}
.ai-launch{
  position:fixed;right:max(20px, env(safe-area-inset-right));bottom:var(--ai-bottom);z-index:160;
  display:flex;align-items:center;gap:10px;height:52px;padding:0 20px 0 6px;border:0;border-radius:999px;
  background:var(--ink);color:#fff;font:600 .95rem var(--font);box-shadow:0 14px 34px -12px rgba(19,35,61,.55);
  opacity:0;transform:translate3d(0,20px,0);
  transition:opacity .5s var(--ease), transform .5s var(--ease), bottom .4s var(--ease), background-color .2s;
}
.ai.is-ready .ai-launch{opacity:1;transform:none;}
/* stays clear of the hero buttons and commitment bar until the visitor scrolls past them */
html:not(.past-hero) .ai.is-ready .ai-launch,html.over-urgent .ai.is-ready .ai-launch{opacity:0;pointer-events:none;transform:translate3d(0,20px,0);}
.ai-launch:hover{background:#1d3255;}
.ai-launch__icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--blue);color:#fff;}
.ai-launch__icon svg,.ai-head__avatar svg{width:20px;height:20px;}
.ai.is-open .ai-launch{opacity:0;pointer-events:none;transform:scale(.9);}

.ai-panel{
  position:fixed;right:max(20px, env(safe-area-inset-right));bottom:var(--ai-bottom);z-index:170;
  width:min(400px, calc(100vw - 40px));height:min(620px, calc(100svh - 120px));
  display:flex;flex-direction:column;border-radius:16px;overflow:hidden;background:#fff;color:var(--ink);
  box-shadow:0 32px 80px -24px rgba(19,35,61,.45), 0 0 0 1px var(--line);
  transform-origin:100% 100%;opacity:0;transform:translate3d(0,12px,0) scale(.97);
  transition:opacity .3s var(--ease), transform .4s var(--ease);
}
.ai.is-open .ai-panel{opacity:1;transform:none;}
.ai-head{display:flex;align-items:center;gap:12px;padding:14px 14px 14px 16px;border-bottom:1px solid var(--line);}
.ai-head__avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--blue);color:#fff;flex:none;}
.ai-head__text{flex:1;min-width:0;}
.ai-head h2{font-size:1.0625rem;font-weight:700;line-height:1.2;}
.ai-head p{display:flex;align-items:center;gap:6px;margin-top:2px;font-size:.8125rem;color:var(--ink-3);}
.ai-dot{width:7px;height:7px;border-radius:50%;background:#1f9d55;}
.ai-close{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:0;background:transparent;color:var(--ink-2);transition:background-color .2s;}
.ai-close:hover{background:var(--tint);}
.ai-close svg{width:18px;height:18px;}

.ai-log{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:16px 16px 8px;display:flex;flex-direction:column;gap:10px;background:var(--tint);}
.ai-msg{max-width:88%;}
.ai-msg p{padding:11px 14px;border-radius:14px;font-size:.95rem;line-height:1.5;white-space:pre-line;}
.ai-msg--bot{align-self:flex-start;}
.ai-msg--bot p{background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px;}
.ai-msg--me{align-self:flex-end;}
.ai-msg--me p{background:var(--blue);color:#fff;border-bottom-right-radius:4px;}
.ai-msg--in{animation:settle .4s var(--ease) both;}
.ai-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.ai-act{min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line-2);background:#fff;color:var(--ink);font:600 .875rem var(--font);transition:border-color .2s, background-color .2s;}
.ai-act:hover{border-color:var(--blue);}
.ai-act--main{background:var(--blue);border-color:var(--blue);color:#fff;}
.ai-act--main:hover{background:var(--blue-d);}
.ai-typing{display:flex;gap:5px;padding:14px 16px;border-radius:14px;border-bottom-left-radius:4px;background:#fff;border:1px solid var(--line);}
.ai-typing span{width:7px;height:7px;border-radius:50%;background:var(--ink-3);animation:aiDot 1.1s ease-in-out infinite;}
.ai-typing span:nth-child(2){animation-delay:.15s;} .ai-typing span:nth-child(3){animation-delay:.3s;}
@keyframes aiDot{0%,60%,100%{transform:none;opacity:.4}30%{transform:translateY(-4px);opacity:1}}

.ai-suggest{display:flex;flex-wrap:wrap;gap:6px;padding:8px 16px 10px;background:var(--tint);}
.ai-chip{min-height:36px;padding:0 13px;border-radius:999px;border:1px solid var(--line-2);background:#fff;color:var(--ink-2);font-size:.875rem;transition:border-color .2s, color .2s;}
.ai-chip:hover{border-color:var(--blue);color:var(--ink);}
.ai-form{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:#fff;}
.ai-input{flex:1;min-width:0;min-height:48px;padding:0 16px;border:1px solid var(--line-2);border-radius:999px;background:#fff;font-size:1rem;color:var(--ink);}
.ai-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(27,92,208,.18);}
.ai-send{display:grid;place-items:center;width:48px;height:48px;border:0;border-radius:50%;background:var(--blue);color:#fff;flex:none;transition:background-color .2s;}
.ai-send:hover{background:var(--blue-d);}
.ai-send svg{width:20px;height:20px;}
.ai-note{padding:0 16px 12px;background:#fff;font-size:.75rem;color:var(--ink-3);text-align:center;}

@media (max-width:760px){
  /* sit above the call bar while it is showing */
  html:has(.callbar.is-shown) .ai{--ai-bottom:calc(max(10px, env(safe-area-inset-bottom)) + 78px);}
  .ai-launch{right:12px;width:52px;padding:0 6px;}
  .ai-launch__label{display:none;}
}
@media (max-width:700px){
  .ai-panel{z-index:220;inset:auto 0 0 0;width:100%;height:calc(100svh - 24px - env(safe-area-inset-top));border-radius:16px 16px 0 0;transform-origin:50% 100%;transform:translate3d(0,40px,0);}
  .ai-form{padding-bottom:max(10px, env(safe-area-inset-bottom));}
}
html.ai-lock,html.ai-lock body{overflow:hidden;}
@media (prefers-reduced-motion:reduce){
  .ai-launch,.ai-panel{transform:none;}
  .ai-msg--in,.ai-typing span{animation:none;}
}

/* ================================================================== */
/* Colour layer                                                        */
/* ================================================================== */

/* highlighter strokes under key phrases; they sweep in when the heading reveals */
.h2 mark{color:inherit;background:linear-gradient(transparent 60%, var(--sun) 60%, var(--sun) 90%, transparent 90%) no-repeat 0 0 / 0% 100%;
  padding:0 .06em;margin:0 -.06em;transition:background-size 1s var(--ease) .35s;}
.in .h2 mark,.head.in .h2 mark,[data-reveal].in mark,.no-js .h2 mark{background-size:100% 100%;}
html:not(.js) .h2 mark{background-size:100% 100%;}
.section--navy .h2 mark,.contact__info .h2 mark{color:var(--sun);background:none;}

/* commercial blue, residential teal, everywhere they appear */
.tags i.tag-c,.stage__tags i.tag-c{background:var(--blue-50);color:var(--blue-d);box-shadow:none;}
.tags i.tag-r,.stage__tags i.tag-r{background:var(--teal-50);color:var(--teal-d);box-shadow:none;}
.section--navy .tags i.tag-c,.stage__tags i.tag-c{background:rgba(27,92,208,.35);color:#cfe0ff;}
.section--navy .tags i.tag-r,.stage__tags i.tag-r{background:rgba(15,143,126,.4);color:#c9f2ea;}
.team__for.tag-c{background:var(--blue);}
.team__for.tag-r{background:var(--teal);}

/* commitments bar: each promise gets its own colour chip */
.facts li svg{width:44px;height:44px;padding:10px;border-radius:12px;flex:none;}
.facts li:nth-child(1) svg{background:var(--red-50);color:var(--red);}
.facts li:nth-child(2) svg{background:var(--blue-50);color:var(--blue);}
.facts li:nth-child(3) svg{background:var(--sun-50);color:var(--sun-ink);}
.facts li:nth-child(4) svg{background:var(--teal-50);color:var(--teal);}
.facts li:nth-child(5) svg{background:var(--violet-50);color:var(--violet);}

/* clients band: warm instead of grey */
.clients{background:var(--sun-50);border-color:#f3e3b4;}

/* process: warm band, and each step lights in its own colour */
#process.section--tint{background:var(--sun-50);border-top-color:#f3e3b4;}
#process .flow__node{box-shadow:0 0 0 6px var(--sun-50), 0 10px 24px -10px rgba(19,35,61,.35);}
.js #process .flow.is-live .flow__node{box-shadow:0 0 0 6px var(--sun-50), inset 0 0 0 2px #ead9a6;}
.flow__fill{background:linear-gradient(90deg, var(--blue), var(--sun) 50%, var(--teal));}
.flow__step:nth-child(2) .flow__node,.js .flow.is-live .flow__step.on:nth-child(2) .flow__node{background:var(--sun);color:var(--ink);}
.flow__step:nth-child(3) .flow__node,.js .flow.is-live .flow__step.on:nth-child(3) .flow__node{background:var(--teal);color:#fff;}
.flow__step:nth-child(2) .flow__num,.js .flow.is-live .flow__step.on:nth-child(2) .flow__num{color:var(--sun-ink);}
.flow__step:nth-child(3) .flow__num,.js .flow.is-live .flow__step.on:nth-child(3) .flow__num{color:var(--teal);}
@media (max-width:760px){ .flow__fill{background:linear-gradient(180deg, var(--blue), var(--sun) 50%, var(--teal));} }

/* why: the Praxium column carries a colour cap */
.compare__table td.compare__us svg{background:var(--teal);}
.compare__table tbody th svg{color:var(--violet);}

/* services: list icons tinted by row so the band isn't a single blue */
.section--navy .svc:nth-child(4n+1) .svc__icon{color:#9cc0ff;}
.section--navy .svc:nth-child(4n+2) .svc__icon{color:var(--sun);}
.section--navy .svc:nth-child(4n+3) .svc__icon{color:#6fe0cc;}
.section--navy .svc:nth-child(4n+4) .svc__icon{color:#c3b3ff;}

/* contact: channels in their own colours */
.channels li:nth-child(2) .channel__icon{background:var(--teal);}
.channels li:nth-child(3) .channel__icon{background:rgba(255,200,61,.18);color:var(--sun);}
.contact__areas li:nth-child(1){background:rgba(27,92,208,.35);}
.contact__areas li:nth-child(2){background:rgba(15,143,126,.4);}
.contact__areas li:nth-child(3){background:rgba(255,200,61,.22);color:#ffe7a6;}

/* careers */
.job-why__list li:nth-child(1) .job-why__icon{background:var(--blue-50);color:var(--blue);}
.job-why__list li:nth-child(2) .job-why__icon{background:var(--sun-50);color:var(--sun-ink);}
.job-why__list li:nth-child(3) .job-why__icon{background:var(--teal-50);color:var(--teal);}
.role-grid li:nth-child(4n+2) .role__icon{background:var(--sun-50);color:var(--sun-ink);}
.role-grid li:nth-child(4n+3) .role__icon{background:var(--teal-50);color:var(--teal);}
.role-grid li:nth-child(4n+4) .role__icon{background:var(--violet-50);color:var(--violet);}
.role:hover .role__icon,.role.is-picked .role__icon{background:var(--blue) !important;color:#fff !important;}
.job-hero__badge{background:rgba(255,200,61,.14);box-shadow:inset 0 0 0 1px rgba(255,200,61,.35);color:#ffe7a6;}

/* a four-colour brand stripe tops the footer */
.footer{position:relative;}
.footer::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg, var(--blue) 0 25%, var(--sun) 25% 50%, var(--teal) 50% 75%, var(--red) 75% 100%);}

@media (prefers-reduced-motion:reduce){ .h2 mark{transition:none;background-size:100% 100%;} }

/* ================================================================== */
/* Standalone pages: privacy and 404                                   */
/* ================================================================== */
.simple-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);border-bottom:1px solid var(--line);}
@supports (backdrop-filter:blur(1px)){.simple-header{background:rgba(255,255,255,.82);backdrop-filter:saturate(1.6) blur(14px);}}
.simple-header__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;height:72px;}
.simple-footer{background:var(--navy);color:var(--on-navy-2);padding:28px 0;font-size:.9375rem;}
.simple-footer::before{content:none;}
.simple-footer__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;}
.simple-footer nav{display:flex;gap:20px;}
.simple-footer a:hover{color:#fff;}

.legal{padding:clamp(40px, 6vw, 80px) 0 clamp(56px, 8vw, 104px);}
.legal__inner{max-width:calc(760px + var(--gutter) * 2);}
.legal__back{margin-bottom:28px;}
.legal__back svg{width:18px;height:18px;}
.legal__title{font-size:clamp(2.25rem, 1.6rem + 2vw, 3.25rem);font-weight:700;letter-spacing:-.028em;line-height:1.05;}
.legal__meta{margin-top:10px;color:var(--ink-3);font-weight:600;}
.legal__lead{margin-top:24px;font-size:1.1875rem;color:var(--ink-2);}
.legal__toc{margin:32px 0 8px;padding:22px 26px;border-radius:var(--r);background:var(--sun-50);}
.legal__toc ol{display:grid;grid-template-columns:1fr 1fr;gap:8px 28px;padding-left:20px;list-style:decimal;}
.legal__toc a{color:var(--ink);font-weight:600;}
.legal__toc a:hover{color:var(--blue);}
.legal section{padding-top:40px;scroll-margin-top:96px;}
.legal h2{font-size:1.5rem;font-weight:700;letter-spacing:-.015em;margin-bottom:12px;}
.legal h3{font-size:1.0625rem;font-weight:700;margin:20px 0 6px;}
.legal p,.legal li{color:var(--ink-2);}
.legal p + p{margin-top:12px;}
.legal ul{display:grid;gap:8px;margin:12px 0;padding-left:22px;list-style:disc;}
.legal li::marker{color:var(--blue);}
.legal section a,.legal__lead a{color:var(--blue);font-weight:600;text-decoration:underline;text-underline-offset:3px;}
.legal__card{margin-top:8px;padding:22px 24px;border-radius:var(--r);background:var(--tint);line-height:1.7;color:var(--ink);}

.lost{display:grid;align-items:center;min-height:calc(100svh - 72px - 84px);padding:clamp(48px, 8vw, 96px) 0;text-align:center;
  background:linear-gradient(180deg, var(--sun-50), #fff 70%);}
.lost__inner{display:grid;justify-items:center;gap:18px;}
.lost__code{display:flex;align-items:center;font-size:clamp(5.5rem, 4rem + 8vw, 10rem);font-weight:800;letter-spacing:-.05em;line-height:.9;color:var(--ink);}
.lost__gear{display:inline-grid;place-items:center;width:.86em;height:.86em;margin:0 .04em;color:var(--blue);}
.lost__gear svg{width:100%;height:100%;animation:gearTurn 9s linear 1;}
@keyframes gearTurn{to{transform:rotate(360deg);}}
.lost__title{font-size:clamp(2rem, 1.4rem + 2vw, 3rem);font-weight:700;letter-spacing:-.025em;line-height:1.1;}
.lost__title mark{color:inherit;background:linear-gradient(transparent 60%, var(--sun) 60%, var(--sun) 90%, transparent 90%);padding:0 .06em;}
.lost__lead{max-width:46ch;color:var(--ink-2);font-size:1.125rem;}
.lost__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:8px;}
.lost__links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;margin-top:10px;}
.lost__links a{color:var(--blue);font-weight:600;}
.lost__links a:hover{text-decoration:underline;text-underline-offset:3px;}
@media (max-width:600px){
  .legal__toc ol{grid-template-columns:1fr;}
  .lost__actions .btn{width:100%;}
}
@media (prefers-reduced-motion:reduce){ .lost__gear svg{animation:none;} }

/* the trademark note under the footer */
.footer__note{margin-top:14px;font-size:.8125rem;color:#8d9bb0;max-width:90ch;}

/* keep the six menu links on one line on smaller laptops */
.nav a{white-space:nowrap;}
@media (min-width:1181px) and (max-width:1340px){
  .header__inner{gap:20px;}
  .nav{margin-left:0;gap:0;}
  .nav a{padding:10px 8px;font-size:.9375rem;}
  .header__actions{gap:12px;}
}

/* ================================================================== */
/* Who we serve: still panels (no resizing)                            */
/* ================================================================== */
.team,.team.is-lead{flex-grow:1;transition:none;}
.team__photo,.team.is-lead .team__photo{transform:none;transition:transform 2.4s cubic-bezier(.45,.05,.25,1);}
.team:hover .team__photo{transform:scale(1.03);}
.team__body,.team.is-lead .team__body{width:auto;right:0;transform:none;transition:none;}
.team__more,.team.is-lead .team__more{opacity:1;transition:none;}

/* ================================================================== */
/* Quote page                                                          */
/* ================================================================== */
.qhero{padding:clamp(36px, 5vw, 64px) 0 clamp(28px, 4vw, 48px);background:linear-gradient(180deg, var(--sun-50), var(--bg));}
.crumbs{display:flex;gap:10px;font-size:.9375rem;color:var(--ink-3);margin-bottom:18px;}
.crumbs a{color:var(--blue);font-weight:600;}
.qhero__title{font-size:clamp(2.5rem, 1.6rem + 3vw, 4rem);font-weight:700;letter-spacing:-.03em;line-height:1.02;}
.qhero__title mark{color:inherit;background:linear-gradient(transparent 60%, var(--sun) 60%, var(--sun) 90%, transparent 90%);padding:0 .06em;}
.qhero__lead{max-width:56ch;margin-top:16px;font-size:1.1875rem;color:var(--ink-2);}
.qsteps{display:grid;grid-template-columns:repeat(3, 1fr);gap:12px;margin-top:30px;}
.qsteps li{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:var(--r);background:#fff;box-shadow:0 0 0 1px var(--line);}
.qsteps strong{display:block;color:var(--ink);font-weight:700;}
.qsteps li span:last-child{color:var(--ink-3);font-size:.9375rem;line-height:1.35;}
.qsteps__n{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;flex:none;font-weight:700;color:#fff;background:var(--blue);}
.qsteps li:nth-child(2) .qsteps__n{background:var(--sun);color:var(--ink);}
.qsteps li:nth-child(3) .qsteps__n{background:var(--teal);}
.qform{padding-top:clamp(16px, 2vw, 28px);}
.qform__grid{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:clamp(24px, 3vw, 40px);align-items:start;}
.qform__card{padding:clamp(24px, 3.5vw, 44px);border-radius:var(--r-lg);background:#fff;box-shadow:0 0 0 1px var(--line), 0 24px 56px -30px rgba(19,35,61,.35);}
.qform__card .toggle{margin-bottom:24px;}
.qaside{display:grid;gap:16px;position:sticky;top:calc(var(--header-h) + 24px);}
.qaside h2{font-size:1.1875rem;font-weight:700;letter-spacing:-.01em;margin-bottom:10px;}
.qaside__urgent{padding:22px;border-radius:var(--r);background:var(--red-50);box-shadow:inset 0 0 0 1px var(--red-line, #f4d6d4);}
.qaside__urgent h2{color:var(--red);}
.qaside__urgent p{color:var(--ink-2);margin-bottom:16px;}
.qaside__card{padding:22px;border-radius:var(--r);background:var(--tint);}
.qaside__card a{color:var(--blue);font-weight:600;}
.qaside__areas{margin-top:8px;color:var(--ink-3);font-size:.9375rem;}
@media (max-width:960px){
  .qform__grid{grid-template-columns:1fr;}
  .qaside{position:static;}
  .qsteps{grid-template-columns:1fr;}
}
