/* assets/css/site.css: Web o Adz design system, built from "Landing page reference.png".
   Loaded on every public page after the page CSS. Fonts are self-hosted; "Poppins" is an alias of
   Fira Sans so older inline styles that still name Poppins render in the reference face. */
@font-face{font-family:"Caveat";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/caveat-600-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:"Caveat";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/caveat-600-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Fira Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/fira-sans-400-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:"Fira Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/fira-sans-400-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Fira Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/fira-sans-500-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:"Fira Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/fira-sans-500-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Fira Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/fira-sans-600-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:"Fira Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/fira-sans-600-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Fira Sans";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/fira-sans-700-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:"Fira Sans";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/fira-sans-700-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Fira Sans";font-style:normal;font-weight:800;font-display:swap;src:url("../fonts/fira-sans-800-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:"Fira Sans";font-style:normal;font-weight:800;font-display:swap;src:url("../fonts/fira-sans-800-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Poppins";font-style:normal;font-weight:100 400;font-display:swap;src:url("../fonts/fira-sans-400-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:"Poppins";font-style:normal;font-weight:100 400;font-display:swap;src:url("../fonts/fira-sans-400-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/fira-sans-500-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/fira-sans-500-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/fira-sans-600-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/fira-sans-600-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Poppins";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/fira-sans-700-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:"Poppins";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/fira-sans-700-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Poppins";font-style:normal;font-weight:800 900;font-display:swap;src:url("../fonts/fira-sans-800-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:"Poppins";font-style:normal;font-weight:800 900;font-display:swap;src:url("../fonts/fira-sans-800-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* ─────────────────────────────────────────────────────────────────────────────
   Tokens (from "Landing page reference.png"). Old variables (--b, --g, --ink ...)
   are redefined so every legacy page uses the reference palette.
   ───────────────────────────────────────────────────────────────────────────── */
:root{
  --ink:#0A1A3D; --ink-2:#3D4A66; --muted:#5B6780;
  --blue:#0866FF; --blue-600:#0552D6; --blue-50:#E8F0FF; --blue-100:#D6E4FF;
  --sky:#F4F8FD; --white:#FFFFFF; --line:#E3EAF5;
  --navy-btn:#0A2C7A; --navy-900:#061127; --navy-950:#030C1B;
  --wa:#25D366;
  --f:"Fira Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-hand:"Caveat","Segoe Print",cursive;
  --r-btn:10px; --r-card:16px; --r-img:12px;
  --sh-card:0 10px 30px -12px rgba(10,26,61,.18);
  --sh-lift:0 22px 44px -18px rgba(10,26,61,.28);
  --sh-blue:0 20px 50px -20px rgba(8,102,255,.45);
  --ease:cubic-bezier(.16,1,.3,1);
  /* legacy names used across older pages */
  --b:#0866FF; --bd:#0552D6; --bl:#3D8BFF; --bp:#E8F0FF; --bp2:#F4F8FD; --br:#E3EAF5;
  --ink2:#3D4A66; --mu:#5B6780; --w:#fff;
  --g:linear-gradient(135deg,#0866FF,#0866FF); --g2:linear-gradient(135deg,#0552D6,#0866FF);
  --sh:0 10px 30px -12px rgba(10,26,61,.18); --shl:0 22px 44px -18px rgba(10,26,61,.28);
  --r:16px; --tr:all .3s cubic-bezier(.16,1,.3,1);
}

/* ── Base ── */
html{scrollbar-color:#B8C6DD var(--sky);overflow-x:clip;}  /* clip, not hidden: no sideways pan on phones (iOS ignores body overflow), and no new scroll container */
body{font-family:var(--f);color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased;overflow-x:clip;}  /* clip (not hidden) keeps position:sticky working */
h1,h2,h3,h4{font-family:var(--f);color:inherit;}
h1,h2{font-weight:800;letter-spacing:-.02em;}
::selection{background:var(--blue);color:#fff;}
:focus-visible{outline:3px solid rgba(8,102,255,.45);outline-offset:2px;}
input,textarea,select{font-family:var(--f);caret-color:var(--blue);}
.tnum{font-variant-numeric:tabular-nums;}
.container{max-width:1240px;}

/* ── Label pill above section headings (the reference's signature) ── */
.pill,.tag,.ph-tag,.sec-label{display:inline-flex;align-items:center;gap:7px;padding:6px 14px;border-radius:999px;
  background:var(--blue-50);color:var(--blue-600);border:0;font:700 12px/1.2 var(--f);letter-spacing:.06em;text-transform:uppercase;}
.tag i,.ph-tag i,.sec-label i{display:none;}
.pill--dark{background:rgba(8,102,255,.18);color:#7FB0FF;}

/* ── Section head: pill, two-line heading, optional text/link on the right ── */
.sh-head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:24px 48px;align-items:end;margin-bottom:44px;}
.sh-head h2{font-size:clamp(30px,3.2vw,44px);line-height:1.1;margin:14px 0 0;color:var(--ink);}
.sh-head p{margin:0;font-size:16.5px;line-height:1.65;color:var(--ink-2);max-width:46ch;}
.sh-head .sh-aside{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px;}
.sh-link{display:inline-flex;align-items:center;gap:8px;font:600 15px/1 var(--f);color:var(--blue);text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1.5px;white-space:nowrap;}
.sh-link i{transition:transform .25s var(--ease);}
.sh-link:hover i{transform:translateX(3px);}
@media(max-width:860px){.sh-head{grid-template-columns:minmax(0,1fr);}}

/* ── Buttons ── */
.btn{font-family:var(--f);font-weight:600;border-radius:var(--r-btn);transition:transform .25s var(--ease),box-shadow .25s var(--ease),background-color .2s ease,color .2s ease,border-color .2s ease;}
.btn i{transition:transform .25s var(--ease);}
.btn:hover i.fa-arrow-right{transform:translateX(3px);}
.btn:active{transform:translateY(1px);}
.btn-primary,.bb{background:var(--blue);color:#fff;border:0;box-shadow:0 10px 24px -10px rgba(8,102,255,.6);}
.btn-primary:hover,.bb:hover{background:var(--blue-600);color:#fff;transform:translateY(-2px);}
/* primary buttons: a soft light sweep on hover */
.btn-primary,.bb{position:relative;overflow:hidden;isolation:isolate;}
.btn-primary::after,.bb::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.32) 50%,transparent 70%);transform:translateX(-120%);transition:transform .8s var(--ease);}
.btn-primary:hover::after,.bb:hover::after{transform:translateX(120%);}
/* reading progress under the header (built in footer.php) */
.scroll-prog{position:fixed;top:0;left:0;right:0;height:3px;z-index:1300;pointer-events:none;background:linear-gradient(90deg,var(--blue),#7FB0FF);transform:scaleX(0);transform-origin:left;}
@media (prefers-reduced-motion: reduce){.btn-primary::after,.bb::after{display:none;}.nav::after{animation:none;opacity:0;}}
.btn-light{background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:0 8px 20px -12px rgba(10,26,61,.25);}
.btn-light:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-2px);}
.btn-outline,.bo{background:#fff;color:var(--blue);border:1.5px solid var(--blue);}
.btn-outline:hover,.bo:hover{background:var(--blue);color:#fff;}
.btn-light .fa-whatsapp{color:var(--wa);font-size:17px;}

/* ── Header ── */
.nav,.nav.wt,.nav.sc{background:rgba(255,255,255,.72);-webkit-backdrop-filter:saturate(1.7) blur(18px);backdrop-filter:saturate(1.7) blur(18px);
  border-bottom:1px solid rgba(227,234,245,.9);box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 10px 30px -22px rgba(10,26,61,.35);padding:12px 0;transition:padding .3s var(--ease),background-color .3s ease;}
.nav.sc{background:rgba(255,255,255,.82);padding:8px 0;}
.nav.mega-on{background:rgba(255,255,255,.96);}
/* glass sheen: a soft light that drifts along the bottom edge */
.nav::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(8,102,255,.55),transparent) no-repeat;background-size:30% 100%;animation:navSheen 9s linear infinite;}
@keyframes navSheen{from{background-position:-40% 0;}to{background-position:140% 0;}}
.hn-links{position:relative;}
.hn-ind{position:absolute;left:0;bottom:-3px;height:2px;width:0;border-radius:2px;background:var(--blue);opacity:0;pointer-events:none;
  transition:transform .35s var(--ease),width .35s var(--ease),opacity .2s ease;}
.nav .hn-link.act{box-shadow:none;}
/* the logo mark always sits in a circular frame (header, preloader, mobile menu, footer) */
.brand-mark img{border-radius:50%!important;object-fit:cover;}
.brand-name{color:var(--ink);font-weight:800;}
.brand-name span{background:none;-webkit-text-fill-color:var(--blue);color:var(--blue);}
.brand--dark .brand-name{color:#fff;}
.brand--dark .brand-name span{-webkit-text-fill-color:#3D8BFF;color:#3D8BFF;}
.nav .hn-link,.nav.wt .hn-link,.nav.sc .hn-link{color:var(--ink);font-family:var(--f);font-weight:500;font-size:15.5px;}
.nav .hn-link:hover,.nav .hn-link[aria-expanded="true"]{color:var(--blue);background:rgba(8,102,255,.07);}
.nav .hn-link.act{color:var(--blue);}
.hn-cta{background:var(--navy-btn);color:#fff;border-radius:var(--r-btn);font-family:var(--f);font-weight:600;box-shadow:0 10px 22px -12px rgba(10,44,122,.7);}
.hn-cta:hover{background:var(--blue);color:#fff;}
.ham span{background:var(--ink)!important;}
@media(max-width:1099px){.nav .hn-right{margin-left:auto;}}  /* menu button at the right edge once the desktop links are hidden */
.mbar .mb-cta{background:var(--blue);}

/* ── Inner-page top band: pale sky with the photo on the right when a page has one ── */
.ph-hero{background:linear-gradient(180deg,#EEF4FD 0%,#F7FAFE 100%)!important;color:var(--ink);padding:132px 0 72px!important;}
.ph-hero::before,.ph-hero::after,.ph-orb1,.ph-orb2{display:none!important;}
.ph-hero .container{position:relative;z-index:1;}
.ph-h1{color:var(--ink)!important;font-weight:800;letter-spacing:-.02em;line-height:1.08;}
.ph-h1 span{color:var(--blue)!important;background:none!important;-webkit-text-fill-color:var(--blue)!important;}
.ph-sub{color:var(--ink-2)!important;}
.ph-hero .ph-tag{margin-bottom:16px;}
.ph-hero .btn[style*="rgba(255,255,255"],.ph-hero .ph-btns a:not(.bb){background:#fff!important;color:var(--ink)!important;border:1px solid var(--line)!important;}

/* ── Shared final call to action (dark band with the laptop photo) ── */
.cta-band{position:relative;overflow:hidden;background:radial-gradient(120% 140% at 85% 30%,#0B2558 0%,var(--navy-900) 55%);color:#fff;padding:88px 0;}
.cta-band-img{position:absolute;right:0;top:0;height:100%;width:56%;object-fit:cover;object-position:center;opacity:.95;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 32%);mask-image:linear-gradient(90deg,transparent 0%,#000 32%);}
.cta-band-in{position:relative;z-index:1;}
.cta-band h2{font-size:clamp(30px,3.4vw,48px);line-height:1.1;margin:16px 0 14px;color:#fff;}
@media(max-width:640px){.cta-band h2 br{display:none;}}
.cta-band p{font-size:17px;line-height:1.6;color:rgba(255,255,255,.82);margin:0 0 30px;max-width:52ch;}
.cta-band-btns{display:flex;gap:14px;flex-wrap:wrap;}
.cta-band .btn{padding:15px 26px;font-size:16px;}
@media(max-width:860px){
  .cta-band{padding:64px 0 0;}
  .cta-band-img{position:relative;display:block;width:100%;height:auto;aspect-ratio:16/10;margin-top:36px;-webkit-mask-image:linear-gradient(180deg,transparent,#000 30%);mask-image:linear-gradient(180deg,transparent,#000 30%);}
  .cta-band:not(.has-img){padding-bottom:64px;}
}

/* ── Footer: talk-to-us tiles, link columns, giant wordmark ── */
.footer{position:relative;overflow:hidden;background:radial-gradient(70% 60% at 100% 0%,#0B2558 0%,var(--navy-950) 60%);padding:72px 0 26px;box-shadow:none;border:0;text-align:left;}
.footer::before{content:"";position:absolute;left:-10%;bottom:-30%;width:50%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(8,102,255,.16),transparent 65%);pointer-events:none;}
.footer .container{position:relative;}
.ft-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:32px 56px;align-items:center;padding-bottom:48px;margin-bottom:48px;border-bottom:1px solid rgba(255,255,255,.1);}
.ft-title{margin:16px 0 12px;font:800 clamp(30px,3.4vw,48px)/1.08 var(--f);letter-spacing:-.02em;color:#fff;}
.ft-title span{background:linear-gradient(90deg,#5B9BFF,#A9CBFF);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.ft-lead p{margin:0;font-size:16px;line-height:1.6;color:rgba(255,255,255,.7);max-width:46ch;}
.ft-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.ft-act{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px;border-radius:16px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:#fff;overflow:hidden;
  transition:background-color .3s ease,border-color .3s ease,transform .35s var(--ease);}
.ft-act::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 120% at 0% 0%,rgba(8,102,255,.35),transparent 60%);opacity:0;transition:opacity .35s ease;}
.ft-act:hover{transform:translateY(-3px);border-color:rgba(91,155,255,.5);color:#fff;}
.ft-act:hover::before{opacity:1;}
.ft-act > *{position:relative;}
.ft-act-ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:rgba(8,102,255,.2);color:#7FB0FF;font-size:17px;}
.ft-act--wa .ft-act-ic{background:rgba(37,211,102,.16);color:#4ADE80;}
.ft-act small{display:block;font:600 11.5px/1.2 var(--f);letter-spacing:.05em;text-transform:uppercase;color:rgba(255,255,255,.55);}
.ft-act b{display:block;margin-top:4px;font:700 15px/1.25 var(--f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ft-act-go{font-size:13px;color:rgba(255,255,255,.45);transition:transform .3s var(--ease),color .2s ease;}
.ft-act:hover .ft-act-go{transform:translateX(4px);color:#fff;}

.ft-grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:36px;margin-bottom:28px;}
.ft-about{font-size:14.5px;line-height:1.7;color:rgba(255,255,255,.7);margin:16px 0 14px;max-width:36ch;}
.ft-meta{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:8px;}
.ft-meta li{display:flex;align-items:center;gap:10px;font-size:14px;color:rgba(255,255,255,.72);}
.ft-meta i{width:16px;color:#7FB0FF;}
.ft-meta a{color:rgba(255,255,255,.85);}
.ft-meta a:hover{color:#fff;}
.ft-socials{display:flex;gap:10px;}
.ft-socials a{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:#fff;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);transition:background-color .2s ease,transform .3s var(--ease);}
.ft-socials a:hover{background:var(--blue);transform:translateY(-3px);}
.ft-col h3{font:700 13px/1.3 var(--f);letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.5);margin:6px 0 16px;}
.ft-col ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.ft-col a{position:relative;font-size:14.5px;color:rgba(255,255,255,.78);text-decoration:none;transition:color .2s ease,padding-left .3s var(--ease);}
.ft-col a::before{content:"";position:absolute;left:0;top:50%;width:0;height:1.5px;background:#5B9BFF;transition:width .3s var(--ease);}
.ft-col a:hover{color:#fff;padding-left:16px;}
.ft-col a:hover::before{width:10px;}

.ft-mark{margin:8px 0 -6px;font:800 clamp(64px,15.5vw,230px)/.8 var(--f);letter-spacing:-.05em;white-space:nowrap;text-align:center;user-select:none;
  color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.12);background:linear-gradient(180deg,rgba(91,155,255,.22),rgba(91,155,255,0) 85%);-webkit-background-clip:text;background-clip:text;}
.ft-bottom{display:flex;justify-content:space-between;align-items:center;gap:14px 24px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.1);padding-top:22px;}
.ft-bottom p{margin:0;font-size:13.5px;color:rgba(255,255,255,.62);}
.ft-bottom p a{color:rgba(255,255,255,.9);text-decoration:underline;text-underline-offset:3px;}
.ft-bottom nav{display:flex;gap:6px 18px;flex-wrap:wrap;}
.ft-bottom nav a{display:inline-flex;align-items:center;min-height:24px;padding:2px 0;font-size:13.5px;color:rgba(255,255,255,.68);}
.ft-bottom nav a:hover{color:#fff;}
.ft-top-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.05);
  color:#fff;font:600 13px/1 var(--f);cursor:pointer;transition:background-color .2s ease;}
.ft-top-btn:hover{background:rgba(255,255,255,.14);}
.ft-top-btn i{transition:transform .3s var(--ease);}
.ft-top-btn:hover i{transform:translateY(-3px);}
@media(max-width:1024px){
  .ft-top{grid-template-columns:minmax(0,1fr);}
  .ft-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .ft-brand{grid-column:1/-1;}
}
@media(max-width:640px){
  .footer{padding:56px 0 96px;}
  .ft-top{padding-bottom:32px;margin-bottom:32px;}
  .ft-title{font-size:30px;}
  .ft-title br{display:none;}
  .ft-actions{grid-template-columns:minmax(0,1fr);}
  .ft-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px 18px;}
  .ft-grid > .ft-col:last-child{grid-column:1/-1;}
  .ft-grid > .ft-col:last-child ul{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ft-col a:hover{padding-left:0;}
  .ft-col a::before{display:none;}
}
@media (prefers-reduced-motion: reduce){.ft-act,.ft-socials a,.ft-col a,.ft-act-go{transition:none!important;}}

/* scroll-linked parallax on photos (browsers with scroll-driven animations; uses translate, so hover zoom still works) */
@supports (animation-timeline: view()){
  @media (prefers-reduced-motion: no-preference){
    .lp-tile img,.card-photo img,.lp-card-img img,.cta-band-img,.sn-card,.lp-quote-box::before{animation:sPar linear both;animation-timeline:view();animation-range:cover 0% cover 100%;}
    .lp-tile img,.card-photo img,.lp-card-img img,.cta-band-img{scale:1.1;}
    .sn-card{animation:none;}
    @keyframes sPar{from{translate:0 -4%;}to{translate:0 4%;}}
    .sh-head h2,.lp-work-head h2,.lp-check-copy h2,.lp-quote-copy h2,.sn-main h2,.ft-title{animation:sRise linear both;animation-timeline:view();animation-range:entry 0% entry 60%;}
    @keyframes sRise{from{opacity:.25;translate:0 24px;}to{opacity:1;translate:0 0;}}
  }
}

/* shared closing band on phones */
@media(max-width:520px){
  .cta-band{padding-top:56px;}
  .cta-band h2{font-size:30px;}
  .cta-band p{font-size:15.5px;margin-bottom:22px;}
  .cta-band-btns .btn{flex:1 1 100%;justify-content:center;}
}

/* ── WhatsApp float ── */
.wa-a{background:var(--wa);}
/* phones: both bottom bars already carry WhatsApp, so the round float would only cover text */
@media(max-width:640px){.wa-fl{display:none!important;}}

/* swipe dots under any [data-swipe] row (script in footer.php; shown only where the row scrolls) */
.lp-dots{display:none;justify-content:center;gap:7px;margin-top:14px;}
.lp-dots span{width:7px;height:7px;border-radius:999px;background:#C9D6EC;transition:width .3s var(--ease),background-color .3s ease;}
.lp-dots span.on{width:22px;background:var(--blue);}
@media(max-width:640px){[data-swipe] + .lp-dots{display:flex;}}

/* ── Scroll reveal (the site's own .rv / .vb) on a calmer curve ── */
.rv{transition:opacity .7s ease,transform .8s var(--ease);}
.rv.vb{transition-delay:calc(var(--n,0) * 70ms);}
@media (prefers-reduced-motion: reduce){.btn,.btn:hover,.btn i{transition:none;transform:none;}}
