/* ============================================================
   Westwind Digital — style.css
   Design system rebuilt from the brand guide:
   Navy #142A4E · Westwind Blue #2D6CDF · Sky #5B9BF0
   Fonts: Sora (display) + Inter (body)
   ============================================================ */

:root{
  --navy:#142A4E;
  --blue:#2D6CDF;
  --sky:#5B9BF0;
  --cloud:#F7F9FC;
  --white:#FFFFFF;
  --slate:#3C4654;
  --line:#E3E9F2;
  --success:#1F9D55;
  --radius:8px;
  --radius-lg:16px;
  --wrap:1140px;
  --shadow-sm:0 1px 2px rgba(20,42,78,.06), 0 2px 8px rgba(20,42,78,.05);
  --shadow-md:0 10px 30px rgba(20,42,78,.10);
  --ease:cubic-bezier(.16,.84,.44,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-size:16px;
  line-height:1.6;
  color:var(--slate);
  background:var(--cloud);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Sora','Inter',sans-serif;color:var(--navy);line-height:1.15;margin:0 0 .5em}
h1{font-size:clamp(2.1rem,5vw,3.4rem);font-weight:800;letter-spacing:-.02em}
h2{font-size:clamp(1.6rem,3.2vw,2.3rem);font-weight:700;letter-spacing:-.01em}
h3{font-size:1.25rem;font-weight:700}
p{margin:0 0 1rem}
a{color:var(--blue);text-decoration:none}
img,svg{max-width:100%;display:block}
ul{margin:0;padding:0;list-style:none}

.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 24px}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:'Inter',sans-serif;font-weight:600;font-size:1rem;
  padding:13px 24px;border-radius:var(--radius);border:1px solid transparent;
  cursor:pointer;transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s;
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 6px 18px rgba(45,108,223,.30)}
.btn-primary:hover{background:#2a61c8}
.btn-ghost{background:transparent;color:var(--navy);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--blue);color:var(--blue)}
.btn-light{background:#fff;color:var(--navy)}
.btn-light:hover{background:#eef3fb}

/* ---------- Header / Nav (injected by main.js) ---------- */
.site-header{
  position:sticky;top:0;z-index:50;background:rgba(255,255,255,.88);
  backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{display:flex;align-items:center;gap:10px;font-family:'Sora';font-weight:800;color:var(--navy);font-size:1.12rem}
.brand img{height:34px;width:auto}
.nav-links{display:flex;align-items:center;gap:6px}
.nav-links a{color:var(--navy);font-weight:500;padding:9px 12px;border-radius:6px;font-size:.96rem}
.nav-links a:hover,.nav-links a.active{background:var(--cloud);color:var(--blue)}
.has-menu{position:relative}
.dropdown{
  position:absolute;top:calc(100% + 6px);left:0;min-width:230px;background:#fff;
  border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);
  padding:6px;opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s var(--ease);
}
.has-menu:hover .dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.dropdown a{display:block;padding:10px 12px}
.nav-cta{margin-left:8px}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--navy);margin:5px 0;transition:.2s}

@media(max-width:860px){
  .nav-toggle{display:block}
  .nav-links{
    position:absolute;top:68px;left:0;right:0;flex-direction:column;align-items:stretch;
    background:#fff;border-bottom:1px solid var(--line);padding:12px 24px 20px;gap:2px;
    box-shadow:var(--shadow-md);display:none;
  }
  .nav-links.open{display:flex}
  .dropdown{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:0 0 0 12px;min-width:0}
  .has-menu:hover .dropdown{transform:none}
  .nav-cta{margin:8px 0 0}
}

/* ---------- Hero ---------- */
.page-hero{padding:84px 0 56px;background:
  radial-gradient(1100px 480px at 70% -10%, rgba(91,155,240,.18), transparent 60%),
  linear-gradient(180deg,#fff, var(--cloud));}
.page-hero .kicker{margin-bottom:14px}
.page-hero h1{max-width:18ch}
.lede{font-size:1.18rem;color:var(--slate);max-width:60ch}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap}

.home-hero{padding:96px 0 72px}
.home-hero h1{font-size:clamp(2.4rem,6vw,4rem);max-width:16ch}
.home-hero .lede{font-size:1.28rem;max-width:54ch}
.eyebrow-cities{margin-top:28px;color:var(--navy);font-weight:600;letter-spacing:.02em;font-size:.92rem;opacity:.8}

/* ---------- Kicker / section heads ---------- */
.kicker{display:inline-block;font-family:'Sora';font-weight:700;text-transform:uppercase;
  letter-spacing:.12em;font-size:.74rem;color:var(--blue);
  background:rgba(45,108,223,.08);padding:6px 12px;border-radius:100px}
.section{padding:72px 0}
.section-tight{padding:40px 0 80px}
.bg-white{background:var(--white)}
.section-head{max-width:62ch;margin-bottom:40px}
.section-title{margin-top:10px}

/* ---------- Stats ---------- */
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:46px}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px;box-shadow:var(--shadow-sm)}
.stat .num{font-family:'Sora';font-weight:800;font-size:2.4rem;color:var(--navy);line-height:1}
.stat .lbl{margin-top:8px;font-size:.96rem}

/* ---------- Service / deliverable cards ---------- */
.card-grid,.deliver-grid,.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.deliver-grid{grid-template-columns:repeat(2,1fr)}
.card,.deliver-grid .item,.svc-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:26px;box-shadow:var(--shadow-sm);transition:transform .2s var(--ease),box-shadow .2s var(--ease);
}
.card:hover,.deliver-grid .item:hover,.svc-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.svc-card .ico,.deliver-grid .item .ico{
  width:42px;height:42px;border-radius:10px;display:grid;place-items:center;margin-bottom:14px;
  background:linear-gradient(135deg,var(--blue),var(--sky));color:#fff;font-weight:800;font-family:'Sora'
}
.svc-card h3{margin-bottom:6px}
.svc-card a.more{font-weight:600;font-size:.95rem;display:inline-block;margin-top:10px}

/* ---------- Pain band ---------- */
.pain-band{background:var(--navy);color:#dbe6f7;border-radius:var(--radius-lg);padding:40px}
.pain-band h2{color:#fff;margin-bottom:20px}
.pain-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.pain-list li{position:relative;padding-left:30px;line-height:1.5}
.pain-list li::before{content:"✕";position:absolute;left:0;top:1px;color:#ff8b8b;font-weight:700}

/* ---------- Process ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;counter-reset:s}
.step{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px;position:relative}
.step::before{counter-increment:s;content:counter(s);font-family:'Sora';font-weight:800;color:var(--sky);font-size:1.4rem}

/* ---------- FAQ ---------- */
.faq{border:1px solid var(--line);border-radius:var(--radius);background:#fff;margin-bottom:12px;overflow:hidden}
.faq summary{cursor:pointer;list-style:none;padding:18px 22px;font-family:'Sora';font-weight:600;color:var(--navy);display:flex;justify-content:space-between;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.4rem;color:var(--blue);transition:.2s}
.faq[open] summary::after{transform:rotate(45deg)}
.faq .body{padding:0 22px 20px;color:var(--slate)}

/* ---------- CTA band ---------- */
.cta-band{background:linear-gradient(135deg,var(--navy),#1d3b6b);color:#fff;border-radius:var(--radius-lg);padding:48px;text-align:center}
.cta-band h2{color:#fff}
.cta-band p{color:#cfe0f7;max-width:54ch;margin:0 auto 22px}

/* ---------- About ---------- */
.about-cols{display:grid;grid-template-columns:1.3fr .9fr;gap:40px;align-items:start}
.prose p{margin-bottom:1.1rem}
.about-figure{background:linear-gradient(135deg,var(--navy),#27508c);border-radius:var(--radius-lg);min-height:300px;display:grid;place-items:center;color:#fff;padding:30px;text-align:center}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.team-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px;text-align:center}
.team-card .avatar{width:64px;height:64px;border-radius:50%;margin:0 auto 12px;background:linear-gradient(135deg,var(--blue),var(--sky));color:#fff;display:grid;place-items:center;font-family:'Sora';font-weight:800;font-size:1.3rem}
.team-card .role{color:var(--blue);font-weight:600;font-size:.9rem}

/* ---------- Blog ---------- */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.post-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .2s var(--ease)}
.post-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.post-card .thumb{height:150px;background:linear-gradient(135deg,var(--sky),var(--blue))}
.post-card .pad{padding:22px}
.post-card .tag{font-size:.78rem;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:.08em}
.post-card h3{margin:8px 0}
.article{max-width:720px;margin:0 auto}
.article p{font-size:1.08rem}
.article h2{margin-top:1.8em}

/* ---------- Contact ---------- */
.contact-cols{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.field{margin-bottom:16px}
.field label{display:block;font-weight:600;color:var(--navy);margin-bottom:6px;font-size:.95rem}
.field input,.field select,.field textarea{
  width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);
  font-family:inherit;font-size:1rem;color:var(--navy);background:#fff;transition:border .15s,box-shadow .15s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(45,108,223,.15)}
.contact-aside{background:var(--navy);color:#cfe0f7;border-radius:var(--radius-lg);padding:32px}
.contact-aside h3{color:#fff}
.contact-aside a{color:#bcd4ff}
.form-note{font-size:.85rem;color:#7a8699}
.form-success{background:rgba(31,157,85,.1);border:1px solid var(--success);color:#157a40;padding:14px 16px;border-radius:var(--radius);display:none}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy);color:#aebfda;padding:54px 0 28px;margin-top:20px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px}
.site-footer h4{color:#fff;font-size:.95rem;margin-bottom:14px}
.site-footer a{color:#aebfda;display:block;padding:4px 0}
.site-footer a:hover{color:#fff}
.footer-brand{display:flex;align-items:center;gap:10px;color:#fff;font-family:'Sora';font-weight:800;font-size:1.1rem;margin-bottom:12px}
.footer-brand img{height:30px;width:auto}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:36px;padding-top:20px;font-size:.85rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

/* ---------- Reveal animations ---------- */
.reveal,.reveal-left,.reveal-right,.reveal-scale{opacity:0;transition:opacity .7s var(--ease),transform .7s var(--ease);will-change:opacity,transform}
.reveal{transform:translateY(26px)}
.reveal-left{transform:translateX(-30px)}
.reveal-right{transform:translateX(30px)}
.reveal-scale{transform:scale(.96)}
.reveal.in,.reveal-left.in,.reveal-right.in,.reveal-scale.in{opacity:1;transform:none}
.stagger > *{opacity:0;transform:translateY(22px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.stagger.in > *{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal,.reveal-left,.reveal-right,.reveal-scale,.stagger>*{opacity:1!important;transform:none!important;transition:none}
}

/* ---------- Responsive ---------- */
@media(max-width:980px){
  .stat-row,.card-grid,.svc-grid,.steps,.post-grid{grid-template-columns:repeat(2,1fr)}
  .team-grid{grid-template-columns:repeat(2,1fr)}
  .about-cols,.contact-cols{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .stat-row,.card-grid,.svc-grid,.deliver-grid,.steps,.post-grid,.pain-list,.team-grid,.footer-grid{grid-template-columns:1fr}
  .section{padding:54px 0}
  .pain-band,.cta-band,.contact-aside{padding:30px}
}

/* ---------- Case studies ---------- */
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.case-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);text-decoration:none;color:inherit;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.case-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.case-thumb{height:148px;background:linear-gradient(135deg,var(--navy),var(--blue));display:flex;align-items:flex-end;padding:14px}
.case-badge{background:rgba(255,255,255,.16);color:#fff;font-size:.74rem;font-weight:600;padding:5px 11px;border-radius:100px}
.case-body{padding:22px;display:flex;flex-direction:column;flex:1}
.case-body h3{margin-bottom:6px}
.case-stats{display:flex;gap:20px;margin:14px 0 16px}
.case-stats>div{display:flex;flex-direction:column}
.cs-num{font-family:'Sora';font-weight:800;font-size:1.4rem;color:var(--navy);line-height:1}
.cs-lbl{font-size:.78rem;color:var(--slate);margin-top:3px}
.case-card .more{margin-top:auto;font-weight:600;color:var(--blue)}
.case-card.is-soon{border-style:dashed;border-color:#cfd8e6;background:var(--cloud);box-shadow:none;min-height:228px;align-items:center;justify-content:center}
.case-card.is-soon:hover{transform:none;box-shadow:none;border-color:var(--blue)}
.soon-inner{display:flex;flex-direction:column;align-items:center;gap:10px;color:#90a0b8;text-align:center;padding:20px}
.soon-inner i{width:42px;height:42px;border-radius:50%;border:2px dashed #b9c4d6;display:grid;place-items:center;font-style:normal;font-size:1.5rem;color:#b9c4d6}
.soon-inner span{font-weight:600;font-size:.92rem}
@media(max-width:980px){.case-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.case-grid{grid-template-columns:1fr}}

/* ====================  VISUAL POLISH PASS  ==================== */

/* Two-column hero */
.hero-cols{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero-visual{position:relative;background:linear-gradient(150deg,var(--navy),#27508c);border-radius:20px;min-height:350px;padding:28px;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow-md)}
.hv-logo{width:58px;height:58px;border-radius:14px;background:rgba(255,255,255,.12);display:grid;place-items:center}
.hv-logo img{width:40px;height:auto}
.hv-lines{position:absolute;right:-30px;top:34px;opacity:.16}
.hv-note{background:#fff;border-radius:14px;padding:14px 16px;box-shadow:0 12px 30px rgba(0,0,0,.22);max-width:82%}
.hv-note .t{font-size:.7rem;color:var(--blue);font-weight:700;letter-spacing:.06em}
.hv-note .m{color:var(--navy);font-weight:600;font-size:.94rem;margin-top:3px;line-height:1.4}
.hv-chip{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.14);color:#fff;border-radius:100px;padding:8px 14px;font-size:.82rem;font-weight:600;align-self:flex-start}
@media(max-width:860px){.hero-cols{grid-template-columns:1fr;gap:30px}.hero-visual{min-height:260px;order:2}}

/* Trust pills */
.trust-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.trust-pill{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);border-radius:100px;padding:8px 14px;font-size:.85rem;font-weight:600;color:var(--navy)}
.trust-pill svg{width:16px;height:16px;stroke:var(--blue);fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}

/* SVG icons inside tiles */
.svc-card .ico svg,.why-item .ic svg{width:22px;height:22px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* Why-us band */
.why-band{background:linear-gradient(135deg,var(--navy),#1d3b6b);border-radius:var(--radius-lg);padding:40px}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.why-item{color:#cfe0f7}
.why-item .ic{width:44px;height:44px;border-radius:11px;background:rgba(255,255,255,.1);display:grid;place-items:center;margin-bottom:13px}
.why-item h3{color:#fff;font-size:1.02rem;margin-bottom:5px}
.why-item p{font-size:.88rem;margin:0;line-height:1.5}
@media(max-width:860px){.why-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.why-grid{grid-template-columns:1fr}}

/* Testimonial */
.quote-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:44px 40px;text-align:center;max-width:760px;margin:0 auto;box-shadow:var(--shadow-sm)}
.stars{color:#f5b301;font-size:1.15rem;letter-spacing:3px;margin-bottom:16px}
.quote-card blockquote{font-family:'Sora';font-weight:600;color:var(--navy);font-size:1.42rem;line-height:1.42;margin:0 0 18px}
.quote-card .who{color:var(--slate);font-weight:600;font-size:.92rem}

/* Wind-lines divider */
.wind-divider{display:flex;flex-direction:column;gap:6px;align-items:center;margin:0 auto 30px}
.wind-divider span{height:3px;border-radius:3px;background:var(--sky)}
.wind-divider span:nth-child(1){width:62px}
.wind-divider span:nth-child(2){width:40px;opacity:.7}
.wind-divider span:nth-child(3){width:24px;opacity:.45}

/* Sticky mobile CTA (injected by main.js) */
.mobile-cta{position:fixed;left:0;right:0;bottom:0;z-index:60;display:none;padding:10px 16px;background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border-top:1px solid var(--line)}
.mobile-cta a{display:block;text-align:center}
@media(max-width:860px){.mobile-cta{display:block}body{padding-bottom:72px}}

/* ====================  AESTHETIC + MOTION PASS 2  ==================== */

/* Centered, consistent logos everywhere */
.brand img{height:34px;width:34px;object-fit:contain}
.footer-brand img{height:30px;width:30px;object-fit:contain}
.hv-logo img{width:42px;height:42px;object-fit:contain}

/* Gradient hero headlines */
.home-hero h1,.page-hero h1{
  background:linear-gradient(100deg,var(--navy) 28%,var(--blue));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

/* Header lifts on scroll */
.site-header.scrolled{box-shadow:0 6px 24px rgba(20,42,78,.09);background:rgba(255,255,255,.96)}

/* Soft glow accents in heroes */
.home-hero,.page-hero{position:relative;overflow:hidden}
.home-hero::before{content:"";position:absolute;width:540px;height:540px;border-radius:50%;background:radial-gradient(circle,rgba(45,108,223,.15),transparent 65%);top:-200px;right:-130px;pointer-events:none;z-index:0}
.page-hero::before{content:"";position:absolute;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(91,155,240,.16),transparent 65%);top:-170px;right:-110px;pointer-events:none;z-index:0}
.home-hero .wrap,.page-hero .wrap{position:relative;z-index:1}

/* Floating hero note */
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.hv-note{animation:floaty 5s ease-in-out infinite}

/* Staggered reveal delays (cascade) */
.stagger.in > *:nth-child(1){transition-delay:.05s}
.stagger.in > *:nth-child(2){transition-delay:.13s}
.stagger.in > *:nth-child(3){transition-delay:.21s}
.stagger.in > *:nth-child(4){transition-delay:.29s}
.stagger.in > *:nth-child(5){transition-delay:.37s}
.stagger.in > *:nth-child(6){transition-delay:.45s}

/* Refined card interactions */
.svc-card,.card,.case-card,.stat,.step,.deliver-grid .item{transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s}
.svc-card:hover,.case-card:hover,.deliver-grid .item:hover{border-color:var(--sky)}
.svc-card .ico{transition:transform .25s var(--ease)}
.svc-card:hover .ico{transform:scale(1.08) rotate(-3deg)}

/* Button shine */
.btn-primary{position:relative;overflow:hidden}
.btn-primary::after{content:"";position:absolute;top:0;left:-120%;width:55%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:left .6s var(--ease)}
.btn-primary:hover::after{left:150%}

/* Nav link underline grow */
.nav-links a:not(.nav-cta){position:relative}
.nav-links a:not(.nav-cta)::after{content:"";position:absolute;left:12px;right:12px;bottom:5px;height:2px;border-radius:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .22s var(--ease)}
.nav-links a:not(.nav-cta):hover::after{transform:scaleX(1)}

/* Scroll progress bar (injected) */
.scroll-prog{position:fixed;top:0;left:0;height:3px;width:0;z-index:70;background:linear-gradient(90deg,var(--blue),var(--sky))}

@media(prefers-reduced-motion:reduce){.hv-note{animation:none}.stagger.in > *{transition-delay:0s!important}}

/* ---------- Placeholder imagery (swap files in assets/images/) ---------- */
.hero-visual{background-image:linear-gradient(150deg,rgba(20,42,78,.84),rgba(39,80,140,.62)),url('../assets/images/hero.jpg');background-size:cover;background-position:center}
.case-thumb{background-size:cover;background-position:center}

/* ====================  COLOR + BACKGROUND PASS 3  ==================== */

/* Tinted page background — no more flat white */
body{background:linear-gradient(180deg,#f2f7fe 0%,#eaf1fb 100%);background-attachment:fixed}

/* Background utilities */
.bg-tint{background:linear-gradient(180deg,#edf4fd,#f8fbff)}
.bg-dots{background-color:#edf3fd;background-image:radial-gradient(rgba(45,108,223,.10) 1.5px,transparent 1.5px);background-size:22px 22px}

/* Dark hero: clean photo, no tint. A dark gradient scrim sits only on the
   left side where the headline text is, per the image standards. */
.hero-dark{position:relative;overflow:hidden;color:#e9f1fc;background:#142a4e;padding:104px 0 130px}
.hero-dark .hero-bg{position:absolute;inset:0;z-index:0;background-image:url('../assets/images/hero.jpg');background-size:cover;background-position:center;will-change:transform}
.hero-dark::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(100deg,rgba(10,20,38,.82) 0%,rgba(10,20,38,.62) 42%,rgba(10,20,38,.18) 72%,rgba(10,20,38,0) 100%)}
.hero-dark .wrap{position:relative;z-index:2}
.hero-dark::before{display:none}
.hero-dark .kicker{background:rgba(255,255,255,.16);color:#dbe9ff}
.hero-dark h1{color:#fff;background:none;-webkit-text-fill-color:#fff}
.hero-dark h1 .accent{background:linear-gradient(100deg,#86b9ff,#c4dcff);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.hero-dark .lede{color:#c9d9f1}
.hero-dark .eyebrow-cities{color:#9fc4ff;opacity:1}
.hero-dark .btn-ghost{color:#fff;border-color:rgba(255,255,255,.4)}
.hero-dark .btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08);color:#fff}
.hero-dark .trust-pill{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.22);color:#eaf1fb}
.hero-dark .trust-pill svg{stroke:#9fc4ff}
.hero-dark .hero-visual{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(10px);box-shadow:0 24px 60px rgba(0,0,0,.32)}
.hero-wave{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:68px;display:block;z-index:1}
@media(max-width:860px){.hero-dark{padding:80px 0 92px}.hero-dark .hero-visual{order:2}}

/* CTA band: navy so the site-wide blue button reads clearly */
.cta-band{position:relative;overflow:hidden;background:linear-gradient(135deg,#0f1e38,#1d3b6b);box-shadow:0 18px 44px rgba(20,42,78,.30)}
.cta-band > *{position:relative;z-index:1}

/* A little more colour */
.kicker{background:linear-gradient(135deg,rgba(45,108,223,.13),rgba(91,155,240,.13))}
.section-title{position:relative}
.section-head .section-title::after{content:"";display:block;width:54px;height:4px;border-radius:4px;margin-top:14px;background:linear-gradient(90deg,var(--blue),var(--sky))}
.wind-divider span{background:linear-gradient(90deg,var(--blue),var(--sky))}

/* ---------- Uploadable section images (swap files in assets/images/) ---------- */
.photo-band{position:relative;min-height:320px;display:flex;align-items:flex-end;justify-content:flex-start;text-align:left;background-image:url('../assets/images/services-band.jpg');background-size:cover;background-position:center;background-attachment:fixed}
.photo-band::after{content:"";position:absolute;inset:auto 0 0 0;height:62%;background:linear-gradient(to top,rgba(10,20,38,.66),rgba(10,20,38,0))}
.photo-band .pb-cap{position:relative;z-index:1;color:#fff;font-family:'Sora';font-weight:800;font-size:clamp(1.4rem,3vw,2.1rem);line-height:1.2;max-width:24ch;padding:0 0 34px 24px;margin:0 auto;width:100%;max-width:var(--wrap)}
@media(max-width:760px){.photo-band{background-attachment:scroll;min-height:230px}}
#testimonial.has-photo{position:relative;background-image:url('../assets/images/reviews-bg.jpg');background-size:cover;background-position:center}
#testimonial.has-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(238,244,253,.55),rgba(248,251,255,.62))}
#testimonial.has-photo .wrap{position:relative;z-index:1}
.cta-band.has-photo{background-image:linear-gradient(rgba(10,20,38,.55),rgba(10,20,38,.55)),url('../assets/images/cta-bg.jpg');background-size:cover;background-position:center}

/* What-we-do photo: clean, no tint */
.section-photo{width:100%;height:340px;border-radius:var(--radius-lg);margin:0 0 38px;background-image:url('../assets/images/whatwedo.jpg');background-size:cover;background-position:center;box-shadow:var(--shadow-sm)}
@media(max-width:620px){.section-photo{height:200px}}

/* Service-page banner image (one per page, swap in assets/images/) */
.svc-photo{width:100%;height:300px;border-radius:var(--radius-lg);background-size:cover;background-position:center;box-shadow:var(--shadow-sm)}
@media(max-width:620px){.svc-photo{height:200px}}

/* Perfectly align nav logo with the wordmark text */
.brand{align-items:center;line-height:1}
.brand img{height:32px;width:32px;object-fit:contain;display:block;flex:0 0 auto}
.footer-brand{align-items:center;line-height:1}
.footer-brand img{display:block;flex:0 0 auto}

/* ====================  REDESIGN PASS (v7)  ==================== */

/* Mobile hero: vertical scrim so text stays readable at any width */
@media(max-width:860px){
  .hero-dark::after{background:linear-gradient(180deg,rgba(10,20,38,.78) 0%,rgba(10,20,38,.62) 55%,rgba(10,20,38,.30) 100%)}
}

/* Three-pillar blocks under "What we do" */
.pillar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:34px}
.pillar{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px;box-shadow:var(--shadow-sm)}
.pillar .tag{display:inline-block;font-family:'Sora';font-weight:700;font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:#fff;background:linear-gradient(135deg,var(--blue),var(--sky));padding:5px 12px;border-radius:100px;margin-bottom:12px}
.pillar h3{margin-bottom:6px}
.pillar p{margin:0;font-size:.96rem}
@media(max-width:860px){.pillar-grid{grid-template-columns:1fr}}

/* Service page: pain-first intro callout */
.pain-intro{background:#fff;border-left:4px solid var(--blue);border-radius:0 var(--radius-lg) var(--radius-lg) 0;padding:24px 28px;box-shadow:var(--shadow-sm);font-size:1.12rem;color:var(--navy);max-width:70ch;margin:0 0 8px}

/* Outcome grid (service pages) */
.outcome-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.outcome-grid .item{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px;box-shadow:var(--shadow-sm)}
.outcome-grid .item .ico{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;margin-bottom:12px;background:linear-gradient(135deg,var(--blue),var(--sky));color:#fff;font-weight:800}
@media(max-width:860px){.outcome-grid{grid-template-columns:1fr}}

/* Proof strip linking to the case study */
.proof-strip{display:flex;align-items:center;gap:22px;background:var(--navy);color:#dbe6f7;border-radius:var(--radius-lg);padding:26px 30px;flex-wrap:wrap}
.proof-strip .thumb{width:130px;height:86px;border-radius:10px;background-size:cover;background-position:center;flex:0 0 auto}
.proof-strip h3{color:#fff;margin:0 0 4px}
.proof-strip p{margin:0;font-size:.95rem}
.proof-strip .grow{flex:1;min-width:220px}
.proof-strip a.link{color:#9fc4ff;font-weight:600}

/* Services overview cards */
.svc-overview-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.svc-overview{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.svc-overview:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--sky)}
.svc-overview .photo{height:180px;background-size:cover;background-position:center}
.svc-overview .body{padding:24px 26px 26px;display:flex;flex-direction:column;flex:1}
.svc-overview h3{margin-bottom:8px}
.svc-overview ul{margin:10px 0 16px;padding:0}
.svc-overview ul li{position:relative;padding-left:24px;margin-bottom:7px;font-size:.95rem}
.svc-overview ul li::before{content:"\2713";position:absolute;left:0;color:var(--blue);font-weight:700}
.svc-overview .actions{margin-top:auto;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
@media(max-width:860px){.svc-overview-grid{grid-template-columns:1fr}}

/* Case study page */
.cs-hero-photo{width:100%;height:380px;border-radius:var(--radius-lg);background-size:cover;background-position:center;box-shadow:var(--shadow-md)}
@media(max-width:620px){.cs-hero-photo{height:220px}}
.cs-results{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:8px 0 8px}
.cs-results .r{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px;text-align:center}
.cs-results .r .n{font-family:'Sora';font-weight:800;font-size:1.7rem;color:var(--blue);line-height:1.1}
.cs-results .r .l{font-size:.85rem;margin-top:5px}
@media(max-width:860px){.cs-results{grid-template-columns:repeat(2,1fr)}}
.cs-quote{background:var(--navy);color:#eaf1fc;border-radius:var(--radius-lg);padding:32px 36px;font-family:'Sora';font-size:1.15rem;line-height:1.5}
.cs-quote .who{display:block;margin-top:14px;font-family:'Inter';font-size:.9rem;color:#9fc4ff}

/* About / Mission photo figure */
.about-figure{background:none;padding:0;min-height:0;display:block;overflow:hidden;border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}
.about-figure img{width:100%;height:100%;min-height:300px;object-fit:cover;display:block}
.about-figure figcaption{background:var(--navy);color:#cfe0f7;padding:14px 20px;font-size:.9rem}
.team-grid{grid-template-columns:repeat(3,1fr)}
@media(max-width:860px){.team-grid{grid-template-columns:1fr}}

/* Mission values strip */
.value-rows{display:flex;flex-direction:column;gap:14px}
.value-row{display:flex;gap:18px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px 26px;box-shadow:var(--shadow-sm)}
.value-row .vic{flex:0 0 auto;width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,var(--blue),var(--sky));color:#fff;display:grid;place-items:center;font-family:'Sora';font-weight:800;font-size:1.1rem}
.value-row h3{margin:0 0 4px;font-size:1.08rem}
.value-row p{margin:0;font-size:.96rem}

/* Google reviews strip */
.greview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:26px}
.greview{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-sm)}
.greview .stars{margin-bottom:10px;font-size:1rem}
.greview p{font-size:.98rem;margin-bottom:12px}
.greview .who{font-weight:600;color:var(--navy);font-size:.9rem}
.greview .src{font-size:.78rem;color:#7a8699}
@media(max-width:860px){.greview-grid{grid-template-columns:1fr}}

/* Blog thumbs: consistent photo treatment */
.post-card .thumb{height:170px;background-size:cover;background-position:center;position:relative}
.post-card .thumb::after{content:"";position:absolute;inset:auto 0 0 0;height:46%;background:linear-gradient(to top,rgba(20,42,78,.42),rgba(20,42,78,0))}

/* Funnel form */
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
@media(max-width:620px){.form-grid-2{grid-template-columns:1fr}}
.form-reassure{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--slate);margin-top:12px}
.form-reassure svg{width:16px;height:16px;stroke:var(--success);fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}

/* Centered section heads: keep the underline bar centered too */
.section-head.center{text-align:center;margin-left:auto;margin-right:auto}
.section-head.center .section-title::after{margin-left:auto;margin-right:auto}
