:root{
  --orange:#EF5B0C; --orange-t:#C2450A; --charcoal:#2B2D2F;
  --green:#388E3C; --green-t:#2E7D32; --indigo:#2A367B;
  --red:#E53935; --red-t:#C62828; --teal:#00897B; --teal-t:#00695C;
  --navy:#3B3A70; --body:#424242; --ink:#2B2D2F; --muted:#6E6F78;
  --hdr-bg:#00897B; --hdr-line:rgba(0,0,0,.12); --hdr-ink:#E6F5F2; --hdr-hover:#FFFFFF;

  --font-display:Archivo,'Arial Narrow',Helvetica,sans-serif;
  --page:#FFFFFF; --band:#F4F4F7; --card:#FFFFFF; --line:#E3E3E9; --link:#2B2D2F;
  --badge:#EF5B0C; --stat-ink:#EF5B0C; --sec-pad:90px;
  --btn-radius:4px; --card-radius:8px; --brand-radius:4px; --panel-radius:10px;
  --panel-bg:linear-gradient(140deg,#3B3A70 0%,#312F63 100%); --panel-line:rgba(255,255,255,.16);
  --panel-head:#FFFFFF; --panel-sub:#BFBEE0; --panel-label:#A3A2D2;
  --panel-input:rgba(255,255,255,.10); --panel-input-line:rgba(255,255,255,.24); --panel-input-ink:#FFFFFF;
  --panel-shadow:0 34px 70px -34px rgba(30,28,70,.8);
  --cta-bg:linear-gradient(135deg,#2B2D2F 0%,#00695C 130%);
  --cf-head:#2B2D2F;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--page);color:var(--body);font-family:'Source Sans 3',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:var(--link);text-decoration:none;transition:color .2s ease}
a:hover{color:var(--orange)}
h1,h2,h3,h4,h5{font-family:var(--font-display);color:var(--ink);margin:0;text-wrap:balance;letter-spacing:-.018em}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}
.eyebrow{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11.5px;letter-spacing:.15em;text-transform:uppercase}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:999;background:#fff;color:#2B2D2F;padding:10px 16px;border-radius:4px}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px}

/* ---------- motion primitives ---------- */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.3,1),transform .7s cubic-bezier(.2,.7,.3,1)}
[data-reveal="scale"]{transform:translateY(20px) scale(.97)}
[data-reveal="left"]{transform:translateX(-28px)}
[data-reveal].in{opacity:1;transform:none}
.hero-anim > *{opacity:0;transform:translateY(22px)}
body.ready .hero-anim > *{animation:heroIn .85s cubic-bezier(.2,.7,.3,1) forwards}
body.ready .hero-anim > *:nth-child(1){animation-delay:.05s}
body.ready .hero-anim > *:nth-child(2){animation-delay:.16s}
body.ready .hero-anim > *:nth-child(3){animation-delay:.27s}
body.ready .hero-anim > *:nth-child(4){animation-delay:.38s}
body.ready .hero-anim > *:nth-child(5){animation-delay:.49s}
@keyframes heroIn{to{opacity:1;transform:none}}

/* ---------- buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--font-display);font-weight:700;font-size:14px;letter-spacing:.05em;text-transform:uppercase;padding:15px 26px;border-radius:var(--btn-radius);border:2px solid transparent;cursor:pointer;overflow:hidden;isolation:isolate;transition:transform .22s cubic-bezier(.2,.7,.3,1),box-shadow .22s ease,background .2s ease,color .2s ease,border-color .2s ease}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(180px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.28),transparent 62%);opacity:0;transition:opacity .25s ease}
.btn:hover::before{opacity:1}
.btn:hover{transform:translateY(-3px)}
.btn:active{transform:translateY(-1px)}
.btn-primary{background:var(--orange);color:#fff;box-shadow:0 10px 26px -12px rgba(239,91,12,.85)}
.btn-primary:hover{background:#FF6A1A;color:#fff;box-shadow:0 18px 34px -14px rgba(239,91,12,.9)}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn-ghost:hover{background:#fff;color:var(--charcoal);border-color:#fff}
.btn-dark{background:var(--charcoal);color:#fff}
.btn-dark:hover{background:#111;color:#fff}
.btn-lg{padding:17px 32px;font-size:15px}

/* ---------- sections ---------- */
.sec{padding:var(--sec-pad) 0}
.sec-head{display:flex;flex-direction:column;gap:12px;margin-bottom:44px;max-width:680px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center;align-items:center}
.sec-head h2{font-size:clamp(29px,4.3vw,46px);font-weight:800;line-height:1.06}
.sec-head p{margin:0;color:var(--muted);font-size:17.5px}
.rule{width:56px;height:4px;background:var(--orange);border-radius:2px}
.band{background:var(--band)}

/* ---------- utility bar ---------- */
.util{background:var(--charcoal);color:#C9C8C5;font-size:13.5px}
.util .wrap{display:flex;flex-wrap:wrap;gap:8px 26px;align-items:center;justify-content:space-between;padding-top:10px;padding-bottom:10px}
.util a{color:#C9C8C5}
.util a:hover{color:#FF9B63}
.util .u-left{display:flex;flex-wrap:wrap;gap:8px 24px}
.util .u-right{display:flex;gap:14px;align-items:center}
.util svg{width:15px;height:15px;vertical-align:-2px;margin-right:6px;fill:var(--orange)}
.util .hide-sm{display:none}
@media(min-width:1120px){.util .hide-sm{display:inline}}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:60;background:var(--hdr-bg);border-bottom:1px solid var(--hdr-line);transition:box-shadow .3s ease,background .3s ease}
.hdr.stuck{box-shadow:0 10px 34px -18px rgba(0,0,0,.55)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:13px;padding-bottom:13px}
.brand{display:flex;align-items:center;flex:none;background:#fff;padding:8px 14px;border-radius:var(--brand-radius);transition:transform .25s ease}
.brand:hover{transform:translateY(-1px)}
.brand img{height:34px;width:auto}
.nav{display:none;gap:28px;align-items:center}
.nav a{position:relative;font-weight:600;font-size:15.5px;color:var(--hdr-ink);padding:6px 0}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--orange);transition:right .28s cubic-bezier(.2,.7,.3,1)}
.nav a:hover{color:var(--hdr-hover)}
.nav a:hover::after,.nav a.active::after{right:0}
.nav a.active{color:var(--hdr-hover)}
.hdr-cta{display:none}
.burger{display:inline-flex;flex-direction:column;gap:5px;background:none;border:0;padding:10px;cursor:pointer}
.burger span{display:block;width:24px;height:2.5px;background:var(--hdr-ink);border-radius:2px;transition:transform .3s cubic-bezier(.2,.7,.3,1),opacity .2s ease}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
@media(min-width:1020px){.nav{display:flex}.hdr-cta{display:inline-flex}.burger{display:none}}
.drawer{position:fixed;inset:0;z-index:80;background:var(--charcoal);display:flex;flex-direction:column;padding:24px 22px;transform:translateX(100%);transition:transform .38s cubic-bezier(.4,0,.2,1);visibility:hidden}
.drawer.open{transform:none;visibility:visible}
.drawer-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}
.drawer-top img{height:34px;background:#fff;padding:7px 10px;border-radius:5px}
.drawer-close{background:none;border:0;color:#fff;font-size:34px;line-height:1;cursor:pointer;padding:2px 10px}
.drawer nav{display:flex;flex-direction:column}
.drawer nav a{color:#fff;font-family:var(--font-display);font-weight:700;font-size:23px;padding:16px 0;border-bottom:1px solid #3B3D40}
.drawer nav a:hover{color:var(--orange);padding-left:8px}
.drawer .btn{margin-top:26px;width:100%}
.drawer-contact{margin-top:auto;color:#A9A8A5;font-size:14.5px;padding-top:24px}
.drawer-contact a{color:#fff}

/* ---------- search panel (coloured) ---------- */
.searchwrap{position:relative;z-index:6}
.searchcard{background:var(--panel-bg);border:1px solid var(--panel-line);border-radius:var(--panel-radius);box-shadow:var(--panel-shadow);padding:30px;backdrop-filter:var(--panel-blur,none);-webkit-backdrop-filter:var(--panel-blur,none)}
.searchcard h3{font-size:22px;font-weight:700;margin-bottom:5px;color:var(--panel-head)}
.searchcard .sub{color:var(--panel-sub);font-size:15px;margin:0 0 22px}
.fields{display:grid;gap:15px;grid-template-columns:1fr}
@media(min-width:640px){.fields{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.fields{grid-template-columns:repeat(4,1fr)}}
.field{display:flex;flex-direction:column;gap:7px}
.field label{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--panel-label)}
.field select,.field input{font-family:inherit;font-size:15.5px;color:var(--panel-input-ink);background:var(--panel-input);border:1px solid var(--panel-input-line);border-radius:var(--btn-radius);padding:12px 13px;width:100%;transition:border-color .2s ease,box-shadow .2s ease}
.field select:focus,.field input:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(239,91,12,.18);outline:none}
.searchfoot{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;margin-top:24px;padding-top:22px;border-top:1px solid var(--panel-line)}
.types{font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.04em;color:var(--panel-sub)}

/* ---------- property cards ---------- */
.pgrid{display:grid;gap:26px;grid-template-columns:1fr}
@media(min-width:640px){.pgrid{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.pgrid{grid-template-columns:repeat(3,1fr)}}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:var(--card-radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s ease,border-color .3s ease}
.pcard:hover{transform:translateY(-8px);box-shadow:0 30px 56px -30px rgba(15,25,25,.5);border-color:var(--green)}
.pthumb{position:relative;aspect-ratio:16/11;overflow:hidden;background:var(--line)}
.pthumb img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.pcard:hover .pthumb img{transform:scale(1.07)}
.pthumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(15,25,25,.45));opacity:0;transition:opacity .35s ease}
.pcard:hover .pthumb::after{opacity:1}
.badge{position:absolute;top:14px;left:14px;background:var(--badge);color:#fff;font-family:var(--font-display);font-weight:700;font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:7px 12px;border-radius:3px;z-index:2}
.pbody{padding:22px 24px 24px;display:flex;flex-direction:column;gap:6px;flex:1}
.pbody .ptype{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--green-t)}
.pbody h3{font-size:22px;font-weight:700}
.pbody .ploc{color:var(--muted);font-size:15px;display:flex;align-items:center;gap:6px}
.specs{display:flex;flex-wrap:wrap;gap:7px 18px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line);font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.specs span{display:inline-flex;align-items:center;gap:6px}
.specs img{width:16px;height:16px;opacity:.6}

/* ---------- stats ---------- */
.stats{display:grid;gap:1px;grid-template-columns:1fr 1fr;background:var(--line);border:1px solid var(--line);border-radius:var(--card-radius);overflow:hidden}
@media(min-width:860px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat{background:var(--card);padding:36px 24px;display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center;transition:background .3s ease}
.stat:hover{background:var(--band)}
.stat b{font-family:var(--font-display);font-weight:800;font-size:clamp(36px,5.2vw,50px);color:var(--stat-ink);line-height:1;font-variant-numeric:tabular-nums}
.stat span{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}

/* ---------- pillars ---------- */
.pillars{display:grid;gap:22px;grid-template-columns:1fr}
@media(min-width:720px){.pillars{grid-template-columns:1fr 1fr}}
@media(min-width:1060px){.pillars{grid-template-columns:repeat(4,1fr)}}
.pillar{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--card-radius);padding:30px 26px;display:flex;flex-direction:column;gap:9px;overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s ease}
.pillar::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--pc)}
.pillar::after{content:"";position:absolute;right:-40px;bottom:-40px;width:130px;height:130px;border-radius:50%;background:var(--pc);opacity:.07;transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.pillar:hover{transform:translateY(-7px);box-shadow:0 26px 50px -28px rgba(15,25,25,.45)}
.pillar:hover::after{transform:scale(1.5)}
.pillar h3{font-size:16px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--pt)}
.pillar p{margin:0;font-size:15.5px;color:var(--muted)}
.picon{width:42px;height:42px;margin-bottom:6px;color:var(--pc)}
.picon svg{width:100%;height:100%}

/* ---------- CTA band ---------- */
.cta{background:var(--cta-bg);color:#fff;border-radius:var(--card-radius);padding:clamp(36px,5.5vw,68px);display:flex;flex-direction:column;gap:20px;align-items:flex-start;position:relative;overflow:hidden}
.cta::after{content:"";position:absolute;right:-140px;bottom:-190px;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(255,120,40,.38) 0%,rgba(255,120,40,.12) 45%,transparent 70%)}
.cta::before{content:"";position:absolute;left:-70px;top:-90px;width:230px;height:230px;border-radius:50%;background:rgba(255,255,255,.06)}
.cta > *{position:relative;z-index:1}
.cta h2{color:#fff;font-size:clamp(28px,4vw,44px);font-weight:800;max-width:18ch;line-height:1.05}
.cta p{margin:0;color:rgba(255,255,255,.85);max-width:56ch;font-size:18px}
.ctabtns{display:flex;flex-wrap:wrap;gap:13px}

/* ---------- testimonials ---------- */
.tgrid{display:grid;gap:24px;grid-template-columns:1fr}
@media(min-width:820px){.tgrid{grid-template-columns:repeat(3,1fr)}}
.tcard{background:var(--card);border:1px solid var(--line);border-radius:var(--card-radius);padding:30px 28px;display:flex;flex-direction:column;gap:16px;transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s ease}
.tcard:hover{transform:translateY(-6px);box-shadow:0 26px 50px -30px rgba(15,25,25,.45)}
.quote{font-size:44px;line-height:.6;color:var(--orange);font-family:Georgia,serif;height:24px}
.tcard p{margin:0;font-size:16.5px;color:var(--body);flex:1}
.tmeta{display:flex;align-items:center;gap:13px;padding-top:16px;border-top:1px solid var(--line)}
.tavatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:15px;color:#fff;flex:none}
.tmeta b{font-family:var(--font-display);font-size:15.5px;color:var(--ink);display:block}
.tmeta span{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* ---------- footer ---------- */
.ftr{background:var(--teal);color:#DCF0ED;padding:70px 0 0;position:relative}
.ftr h4{color:#fff;font-size:13px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:18px}
.fgrid{display:grid;gap:38px;grid-template-columns:1fr}
@media(min-width:700px){.fgrid{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.fgrid{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.ftr a{color:#DCF0ED}
.ftr a:hover{color:#FFB68C}
.ftr ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;font-size:15.5px}
.ftr ul a{display:inline-block;transition:transform .2s ease,color .2s ease}
.ftr ul a:hover{transform:translateX(4px)}
.flogo{background:#fff;display:inline-block;padding:11px 15px;border-radius:6px;margin-bottom:18px}
.flogo img{height:36px}
.fabout{font-size:15.5px;color:#C2E2DE;max-width:38ch;margin:0}
.fsocial{display:flex;gap:10px;margin-top:20px}
.fsocial a{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.12);display:grid;place-items:center;transition:background .25s ease,transform .25s ease}
.fsocial a:hover{background:var(--orange);transform:translateY(-3px)}
.fsocial svg{width:17px;height:17px;fill:#fff}
.hours{display:flex;flex-direction:column;gap:10px;font-size:15.5px}
.hours div{display:flex;justify-content:space-between;gap:16px;border-bottom:1px dashed rgba(255,255,255,.2);padding-bottom:9px}
.hours span:last-child{font-family:'IBM Plex Mono',monospace;font-size:13px;color:#fff}
.fbottom{margin-top:56px;border-top:1px solid rgba(255,255,255,.2);padding:22px 0;font-size:14px;color:#BEDEDA;display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between}

/* ---------- chatbot ---------- */
.cf-launch{position:fixed;right:20px;bottom:20px;z-index:90;display:inline-flex;align-items:center;gap:10px;background:var(--orange);color:#fff;border:0;border-radius:100px;padding:15px 22px;font-family:var(--font-display);font-weight:700;font-size:14.5px;cursor:pointer;box-shadow:0 16px 38px -12px rgba(239,91,12,.8);transition:transform .28s cubic-bezier(.2,.7,.3,1),box-shadow .28s ease,opacity .2s ease}
.cf-launch:hover{background:#FF6A1A;transform:translateY(-3px);box-shadow:0 22px 46px -14px rgba(239,91,12,.9)}
.cf-launch.is-hidden{opacity:0;pointer-events:none;transform:scale(.9)}
.cf-launch svg{width:20px;height:20px;fill:#fff}
.cf-pulse{position:absolute;inset:0;border-radius:100px;box-shadow:0 0 0 0 rgba(239,91,12,.55);animation:cfpulse 2.6s infinite}
@keyframes cfpulse{70%{box-shadow:0 0 0 16px rgba(239,91,12,0)}100%{box-shadow:0 0 0 0 rgba(239,91,12,0)}}
.cf-teaser{position:fixed;right:20px;bottom:88px;z-index:89;max-width:290px;background:var(--card);border:1px solid var(--line);border-radius:14px 14px 4px 14px;padding:15px 17px;box-shadow:0 22px 48px -20px rgba(15,25,25,.5);font-size:15px;color:var(--body);cursor:pointer;opacity:0;transform:translateY(14px) scale(.96);pointer-events:none;transition:opacity .4s ease,transform .4s cubic-bezier(.2,.7,.3,1)}
.cf-teaser.show{opacity:1;transform:none;pointer-events:auto}
.cf-teaser b{display:block;font-family:var(--font-display);color:var(--ink);font-size:15.5px;margin-bottom:3px}
.cf-teaser-x{position:absolute;top:4px;right:7px;background:none;border:0;font-size:19px;line-height:1;color:var(--muted);cursor:pointer;padding:2px 5px}
.cf-panel{position:fixed;right:20px;bottom:20px;z-index:95;width:min(404px,calc(100vw - 32px));height:min(640px,calc(100vh - 40px));background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 36px 80px -22px rgba(10,20,20,.62);display:flex;flex-direction:column;overflow:hidden;opacity:0;transform:translateY(20px) scale(.97);pointer-events:none;transition:opacity .28s ease,transform .28s cubic-bezier(.2,.7,.3,1)}
.cf-panel.open{opacity:1;transform:none;pointer-events:auto}
.cf-head{background:var(--cf-head);color:#fff;padding:17px 19px;display:flex;align-items:center;gap:12px;flex:none}
.cf-avatar{width:40px;height:40px;border-radius:50%;background:var(--orange);display:grid;place-items:center;flex:none}
.cf-avatar svg{width:20px;height:20px;fill:#fff}
.cf-head b{font-family:var(--font-display);font-size:16px;display:block;color:#fff}
.cf-head small{color:#BFE9DE;font-size:12px;display:flex;align-items:center;gap:5px}
.cf-head small::before{content:"";width:7px;height:7px;border-radius:50%;background:#62E09A}
.cf-x{margin-left:auto;background:none;border:0;color:#fff;font-size:25px;line-height:1;cursor:pointer;padding:2px 8px;border-radius:5px}
.cf-x:hover{background:rgba(255,255,255,.16)}
.cf-log{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px;background:var(--band)}
.cf-msg{max-width:90%;padding:13px 16px;border-radius:15px;font-size:15px;line-height:1.55;animation:cfin .34s cubic-bezier(.2,.7,.3,1)}
@keyframes cfin{from{opacity:0;transform:translateY(8px)}}
.cf-bot{background:var(--card);border:1px solid var(--line);border-bottom-left-radius:4px;color:var(--body);align-self:flex-start}
.cf-bot strong{color:var(--ink)}
.cf-bot a{color:var(--orange-t);font-weight:600;text-decoration:underline}
.cf-user{background:var(--orange);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}
.cf-note{font-size:12.5px;color:var(--muted);align-self:flex-start;max-width:94%;line-height:1.5}
.cf-note a{color:var(--muted);text-decoration:underline}
.cf-typing{display:flex;gap:4px;padding:16px}
.cf-typing i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:cfb 1.2s infinite}
.cf-typing i:nth-child(2){animation-delay:.18s}
.cf-typing i:nth-child(3){animation-delay:.36s}
@keyframes cfb{0%,60%,100%{opacity:.28;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}
.cf-quick{display:flex;flex-wrap:wrap;gap:8px;padding:13px 15px;border-top:1px solid var(--line);background:var(--card);flex:none;max-height:150px;overflow-y:auto}
.cf-q{font-size:13.5px;font-family:inherit;padding:9px 14px;border-radius:100px;border:1px solid var(--line);background:transparent;color:var(--link);cursor:pointer;text-align:left;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
.cf-q:hover{background:var(--orange);border-color:var(--orange);color:#fff;transform:translateY(-2px)}
.cf-q-primary{background:var(--orange);border-color:var(--orange);color:#fff;font-weight:600}
.cf-q-primary:hover{background:#FF6A1A}
.cf-lead{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:17px;display:flex;flex-direction:column;gap:12px;animation:cfin .34s cubic-bezier(.2,.7,.3,1)}
.cf-l{display:flex;flex-direction:column;gap:5px}
.cf-l span{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.cf-l em{font-style:normal;opacity:.7}
.cf-l input{font-family:inherit;font-size:15.5px;padding:11px 13px;border:1px solid var(--line);border-radius:9px;background:var(--band);color:var(--body)}
.cf-l input:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(239,91,12,.18)}
.cf-l input.cf-bad{border-color:var(--red);box-shadow:0 0 0 3px rgba(229,57,53,.16)}
.cf-submit{font-family:var(--font-display);font-weight:700;font-size:14px;letter-spacing:.04em;text-transform:uppercase;background:var(--orange);color:#fff;border:0;border-radius:9px;padding:14px;cursor:pointer;transition:background .2s ease,transform .2s ease}
.cf-submit:hover{background:#FF6A1A;transform:translateY(-2px)}
.cf-fine{margin:0;font-size:12px;color:var(--muted);line-height:1.45}
.cf-form{display:flex;gap:8px;padding:13px 15px;border-top:1px solid var(--line);background:var(--card);flex:none}
.cf-form input{flex:1;font-family:inherit;font-size:15px;padding:12px 15px;border:1px solid var(--line);border-radius:100px;background:var(--band);color:var(--body)}
.cf-form input:focus{outline:none;border-color:var(--orange)}
.cf-form button{flex:none;width:44px;height:44px;border-radius:50%;border:0;background:var(--orange);color:#fff;cursor:pointer;display:grid;place-items:center;transition:background .2s ease,transform .2s ease}
.cf-form button:hover{background:#FF6A1A;transform:scale(1.06)}
.cf-form svg{width:18px;height:18px;fill:#fff}
@media(max-width:520px){.cf-launch span:not(.cf-pulse){display:none}.cf-launch{padding:16px;border-radius:50%}}

/* ---------- preview banner ---------- */
.vbanner{background:var(--charcoal);color:#fff;font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:10px 16px}
.vbanner b{color:var(--orange)}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  [data-reveal]{opacity:1!important;transform:none!important}
  .hero-anim > *{opacity:1!important;transform:none!important}
}

/* ---------- chatbot urgency line ---------- */
.cf-urgent{display:block;font-size:13.5px;color:var(--muted);border-left:3px solid var(--orange);padding-left:11px;margin-top:2px}
.cf-urgent a{color:var(--orange-t)}

/* ---------- coloured spec icons ---------- */
.specs span{display:inline-flex;align-items:center;gap:7px}
.specs svg{width:17px;height:17px;flex:none}

/* ---------- legal / sitemap pages ---------- */
.pagehead{background:var(--cta-bg);color:#fff;padding:64px 0 72px;position:relative;overflow:hidden}
.pagehead::after{content:"";position:absolute;right:-150px;bottom:-210px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(255,120,40,.34) 0%,rgba(255,120,40,.10) 46%,transparent 70%)}
.pagehead .wrap{position:relative;z-index:1}
.pagehead .eyebrow{color:#FFB68C}
.pagehead h1{color:#fff;font-size:clamp(32px,5vw,52px);font-weight:800;margin-top:10px}
.pagehead p{margin:12px 0 0;color:rgba(255,255,255,.82);font-size:16.5px}
.crumbs{font-size:14px;color:rgba(255,255,255,.72)}
.crumbs a{color:rgba(255,255,255,.9);text-decoration:underline}
.doc{max-width:800px;margin:0 auto;padding:60px 22px 84px}
.doc .lede{font-size:19px;color:var(--ink);border-left:4px solid var(--orange);padding-left:18px;margin:0 0 34px}
.doc h2{font-size:24px;font-weight:700;margin:44px 0 12px;padding-top:22px;border-top:1px solid var(--line)}
.doc h2:first-of-type{border-top:0;padding-top:0;margin-top:0}
.doc h3{font-size:17.5px;font-weight:700;margin:26px 0 8px;color:var(--teal-t)}
.doc p{margin:0 0 14px}
.doc ul{margin:0 0 18px;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.doc a{color:var(--orange-t);text-decoration:underline}
.legal-notice{background:var(--band);border:1px solid var(--line);border-left:4px solid var(--orange);border-radius:0 var(--btn-radius) var(--btn-radius) 0;padding:16px 20px;margin-bottom:32px;font-size:15.5px}
.ph{color:var(--orange-t);font-weight:600;background:rgba(239,91,12,.09);padding:1px 6px;border-radius:3px}
.legal-table{width:100%;border-collapse:collapse;margin:0 0 20px;font-size:15px;display:block;overflow-x:auto}
.legal-table th,.legal-table td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.legal-table th{background:var(--band);font-family:var(--font-display);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.updated{font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:26px}
.sitemap-grid{display:grid;gap:20px;grid-template-columns:1fr}
@media(min-width:700px){.sitemap-grid{grid-template-columns:1fr 1fr}}
.sm-card{background:var(--card);border:1px solid var(--line);border-radius:var(--card-radius);padding:24px;border-top:4px solid var(--sc,var(--teal))}
.sm-card h3{font-size:16px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;color:var(--sc,var(--teal-t))}
.sm-card p{margin:0 0 14px;font-size:15px;color:var(--muted)}
.sm-card a{font-family:var(--font-display);font-weight:700;font-size:15.5px;color:var(--ink);text-decoration:none;display:inline-flex;gap:7px;align-items:center;transition:gap .2s ease,color .2s ease}
.sm-card a:hover{color:var(--orange-t);gap:12px}

/* ---------- footer legal row ---------- */
.flegal{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center}
.flegal a{text-decoration:underline}


.hero{background:#2B2D2F;color:#fff;padding:92px 0 0;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;left:46%;top:-190px;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,rgba(239,91,12,.30) 0%,transparent 68%)}
.hero .wrap{position:relative;z-index:2}
.hero-anim{max-width:940px;display:flex;flex-direction:column;gap:17px;align-items:flex-start}
.hero .eyebrow{color:#FF9B63}
.hero h1{color:#fff;font-size:clamp(42px,8vw,88px);font-weight:800;line-height:.98;letter-spacing:-.035em;max-width:16ch}
.hero h1 em{font-style:normal;color:var(--orange)}
.hero .lede{color:#C6C5C2;font-size:clamp(19px,2.4vw,25px);margin:0;max-width:38ch}
.hero-btns{display:flex;flex-wrap:wrap;gap:13px;margin-top:6px}
.hero-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:8px}
.hero-tag{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:#fff;padding:7px 13px;border-radius:100px;border:1px solid rgba(255,255,255,.3);transition:background .25s ease}
.hero-tag:hover{background:rgba(255,255,255,.13)}
.hero-strip{display:grid;grid-template-columns:1fr;margin-top:52px;border-top:1px solid #3C3E41;position:relative;z-index:2}
@media(min-width:760px){.hero-strip{grid-template-columns:repeat(4,1fr)}}
.hs{padding:24px 22px 28px;border-bottom:1px solid #3C3E41;border-top:4px solid;display:flex;flex-direction:column;gap:5px}
@media(min-width:760px){.hs{border-right:1px solid #3C3E41}.hs:last-child{border-right:0}}
.hs b{font-family:var(--font-display);font-size:13px;letter-spacing:.09em;text-transform:uppercase}
.hs span{font-size:14.5px;color:#ADACA9;line-height:1.5}
.hero-photos{display:grid;grid-template-columns:repeat(3,1fr)}
.hero-photos img{width:100%;height:210px;object-fit:cover}
.searchwrap{margin-top:-64px}
.field select option{color:#2B2D2F}

/* ============================================================
   Motion layer — next level
   ============================================================ */
#cfProgress{position:fixed;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,var(--orange),#FF9B63);transform:scaleX(0);transform-origin:0 50%;z-index:70;will-change:transform;transition:transform .08s linear}

/* split-text hero headline */
[data-split-text] .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
[data-split-text] .wi{display:inline-block;transform:translateY(105%) rotate(3deg);opacity:0;transition:transform .9s cubic-bezier(.16,.84,.3,1),opacity .7s ease}
[data-split-text].lit .wi{transform:none;opacity:1}
.no-motion [data-split-text] .wi{transform:none;opacity:1}

/* magnetic buttons */
.btn{transform:translate3d(var(--tx,0),var(--ty,0),0);transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .25s ease,background .2s ease,color .2s ease,border-color .2s ease}
.btn:hover{transform:translate3d(var(--tx,0),calc(var(--ty,0px) - 3px),0)}
.btn::after{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-18deg);transition:left .75s cubic-bezier(.2,.7,.3,1);pointer-events:none}
.btn:hover::after{left:130%}

/* card tilt + hover light */
[data-tilt]{transform-style:preserve-3d;transform:perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0)) translateY(0);transition:transform .45s cubic-bezier(.2,.7,.3,1),box-shadow .45s ease,border-color .3s ease}
[data-tilt]:hover{transform:perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0)) translateY(-8px)}
[data-tilt]::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .4s ease;background:radial-gradient(340px circle at var(--gx,50%) var(--gy,50%),rgba(239,91,12,.10),transparent 62%);z-index:3}
[data-tilt]:hover::after{opacity:1}
.pcard{position:relative}

/* hero cursor spotlight */
[data-spotlight]{position:relative}
[data-spotlight] .spot{position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;transition:opacity .5s ease;background:radial-gradient(520px circle at var(--sx,50%) var(--sy,30%),rgba(239,91,12,.16),transparent 62%)}
[data-spotlight]:hover .spot{opacity:1}

/* staged reveal variants */
[data-reveal="mask"]{clip-path:inset(0 0 100% 0);opacity:1;transform:none;transition:clip-path 1s cubic-bezier(.16,.84,.3,1)}
[data-reveal="mask"].in{clip-path:inset(0 0 0 0)}
[data-reveal="blur"]{filter:blur(9px)}
[data-reveal="blur"].in{filter:none;transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.3,1),filter .8s ease}

/* photo band ken-burns */
.hero-photos img{transition:transform 1.1s cubic-bezier(.2,.7,.3,1),filter .6s ease;filter:saturate(.92)}
.hero-photos a:hover img,.hero-photos figure:hover img{transform:scale(1.06);filter:saturate(1.06)}

/* nav underline already animated; add drawer stagger */
.drawer nav a{opacity:0;transform:translateX(26px);transition:opacity .4s ease,transform .5s cubic-bezier(.2,.7,.3,1),color .2s ease,padding-left .2s ease}
.drawer.open nav a{opacity:1;transform:none}
.drawer.open nav a:nth-child(1){transition-delay:.08s}
.drawer.open nav a:nth-child(2){transition-delay:.13s}
.drawer.open nav a:nth-child(3){transition-delay:.18s}
.drawer.open nav a:nth-child(4){transition-delay:.23s}
.drawer.open nav a:nth-child(5){transition-delay:.28s}
.drawer.open nav a:nth-child(6){transition-delay:.33s}

@media(prefers-reduced-motion:reduce){
  #cfProgress{display:none}
  .btn::after{display:none}
  [data-tilt],[data-tilt]:hover{transform:none}
  [data-reveal="mask"]{clip-path:none}
  [data-reveal="blur"]{filter:none}
  .drawer nav a{opacity:1;transform:none}
}

/* ============================================================
   WordPress-specific
   ============================================================ */
.admin-bar .hdr{top:32px}
@media screen and (max-width:782px){.admin-bar .hdr{top:46px}}
.alignwide{max-width:1180px;margin-left:auto;margin-right:auto}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.wp-caption{max-width:100%}
.form-msg{padding:14px 18px;border-radius:var(--btn-radius);margin-bottom:20px;font-size:15.5px;border-left:4px solid}
.form-msg.ok{background:rgba(56,142,60,.08);border-color:var(--green);color:var(--green-t)}
.form-msg.err{background:rgba(229,57,53,.08);border-color:var(--red);color:var(--red-t)}
.wpform{display:grid;gap:16px}
@media(min-width:700px){.wpform .half{grid-column:span 1}.wpform{grid-template-columns:1fr 1fr}.wpform .full{grid-column:1 / -1}}
.wpform label{display:flex;flex-direction:column;gap:7px;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.wpform input[type=text],.wpform input[type=email],.wpform input[type=tel],.wpform input[type=date],.wpform select,.wpform textarea{font-family:'Source Sans 3',sans-serif;font-size:16px;color:var(--body);background:var(--card);border:1px solid var(--line);border-radius:var(--btn-radius);padding:13px 14px;width:100%;text-transform:none;letter-spacing:normal}
.wpform textarea{min-height:130px;resize:vertical}
.wpform input:focus,.wpform select:focus,.wpform textarea:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(239,91,12,.18)}
.radiorow{display:flex;gap:22px;flex-wrap:wrap;text-transform:none;letter-spacing:normal}
.radiorow span{display:inline-flex;align-items:center;gap:8px;font-family:'Source Sans 3',sans-serif;font-size:16px;color:var(--body)}
.radiorow input{accent-color:var(--orange);width:18px;height:18px}
.formsec{grid-column:1 / -1;margin-top:14px;padding-top:20px;border-top:1px solid var(--line)}
.formsec:first-child{margin-top:0;padding-top:0;border-top:0}
.formsec h3{font-size:19px;font-weight:700;color:var(--indigo)}
.formsec p{margin:4px 0 0;color:var(--muted);font-size:15px}
.hp{position:absolute!important;left:-9999px}
.two-col{display:grid;gap:34px;grid-template-columns:1fr}
@media(min-width:900px){.two-col{grid-template-columns:1fr 1.15fr;gap:44px;align-items:start}}
.infocard{background:var(--card);border:1px solid var(--line);border-radius:var(--card-radius);padding:30px}
.infocard h3{font-size:20px;margin-bottom:18px}
.inforow{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);align-items:flex-start}
.inforow:last-child{border-bottom:0}
.inforow svg{width:20px;height:20px;flex:none;margin-top:3px}
.inforow b{display:block;font-family:var(--font-display);font-size:13px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.mapwrap{border-radius:var(--card-radius);overflow:hidden;border:1px solid var(--line);aspect-ratio:16/7}
.mapwrap iframe{width:100%;height:100%;border:0;display:block}
.team{display:grid;gap:24px;grid-template-columns:1fr}
@media(min-width:700px){.team{grid-template-columns:1fr 1fr}}
.member{background:var(--card);border:1px solid var(--line);border-radius:var(--card-radius);padding:28px;display:flex;gap:20px;align-items:center}
.member .av{width:64px;height:64px;border-radius:50%;background:var(--indigo);color:#fff;display:grid;place-items:center;font-family:var(--font-display);font-weight:800;font-size:22px;flex:none}
.member h3{font-size:20px}
.member .role{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--orange-t);margin:2px 0 10px}
.member a{display:block;font-size:15.5px;color:var(--body)}
.member a:hover{color:var(--orange-t)}
.promises{display:grid;gap:22px;grid-template-columns:1fr}
@media(min-width:760px){.promises{grid-template-columns:1fr 1fr}}
.promise{background:var(--card);border:1px solid var(--line);border-radius:var(--card-radius);padding:30px;position:relative;overflow:hidden}
.promise .num{font-family:var(--font-display);font-weight:800;font-size:52px;line-height:1;color:var(--orange);opacity:.18;position:absolute;right:22px;top:14px}
.promise h3{font-size:20px;margin-bottom:8px}
.promise p{margin:0;color:var(--muted);font-size:16px}
.replace-hint{background:rgba(239,91,12,.07);border:1px dashed var(--orange);border-radius:var(--btn-radius);padding:11px 15px;font-size:14px;color:var(--orange-t);margin-top:14px}
