
/* === Anti-FLASH for old nav: hide until HTML is ready === */
.site-header .nav-actions{ visibility:hidden }
.smh-ready .site-header .nav-actions{ visibility:visible }

/* === Mobile perf overrides === */
@media (max-width: 768px){
  .site-header{ backdrop-filter:none !important; -webkit-backdrop-filter:none !important; background:#fff !important; box-shadow:none !important; }
  .card{ box-shadow:0 10px 22px rgba(17,24,39,.12) !important; }
  .orb{ filter:blur(24px) !important; opacity:.35 !important; }
}
/* Hint the compositor for smoother scroll */
.reveal, .orb, .site-header{ will-change: transform, opacity; }
/* Kill any stray horizontal scroll */
html, body{ overflow-x:hidden }

:root{
  --sm-sky: #7EDCFF;   /* closer to heart 🩵 */
  --sm-violet: #C7B5FF;/* soft violet */
  --sm-ink: #0b1220;
  --sm-deep: #0a1330;
}
*{scroll-behavior:smooth}
/* HEADER */
header{transition:box-shadow .2s, background-color .2s}
header.stuck{box-shadow:0 8px 24px rgba(17,24,39,.08); background-color:rgba(255,255,255,.9)}
nav a{border-radius:12px;padding:.6rem .9rem}
nav a:hover{background:#eef2ff}
.nav-cta{background:#2563eb;color:#fff}
.nav-cta:hover{background:#1d4ed8}
/* CARDS & BUTTONS */
.card{background:rgba(255,255,255,.95);backdrop-filter:blur(10px);box-shadow:0 18px 40px rgba(17,24,39,.14);border-radius:1.25rem}
.pill{background:rgba(15,23,42,.55);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:999px;padding:.8rem 1rem;display:flex;align-items:center;gap:.6rem;box-shadow:0 10px 25px rgba(17,24,39,.35)}
.btn{border-radius:999px;padding:1rem 1.25rem;font-weight:800;display:inline-flex;align-items:center;gap:.6rem;transform:translateY(0);transition:transform .2s, box-shadow .2s}
.btn:hover{transform:translateY(-2px); box-shadow:0 14px 28px rgba(96,165,250,.35)}
.btn-grad{background:var(--grad);color:#fff}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff;outline:1px solid rgba(255,255,255,.35)}
/* HERO */
.hero .grain{position:absolute;inset:0;background:url('/assets/hero-poster.jpg');opacity:.08;mix-blend:overlay}
.orb{position:absolute;filter:blur(40px);opacity:.5;border-radius:999px;mix-blend:screen}
.orb.one{width:420px;height:420px;background:#60A5FA;left:-80px;top:10% ;animation:float1 10s ease-in-out infinite}
.orb.two{width:380px;height:380px;background:#A78BFA;right:-60px;bottom:5%;animation:float2 12s ease-in-out infinite}
@keyframes float1{0%,100%{transform:translateY(0)}50%{transform:translateY(40px)}}
@keyframes float2{0%,100%{transform:translateY(0)}50%{transform:translateY(-40px)}}
.h1-glow{position:relative;display:inline-block}
.h1-glow:after{content:'';position:absolute;inset:-6px;filter:blur(18px);background:radial-gradient(circle,#a5b4fc 10%,transparent 60%);opacity:.55;z-index:-1}
/* Reveals */
.reveal{opacity:0;transform:translateY(26px) scale(.98);transition:opacity .6s ease, transform .6s cubic-bezier(.17,.67,.3,1)}
.reveal.show{opacity:1;transform:none}
/* Footer icons */
.footer-icons img{height:20px;opacity:.8;filter:grayscale(1);transition:opacity .2s, filter .2s, transform .2s}
.footer-icons img:hover{opacity:1;filter:none;transform:translateY(-1px)}


/* ===== Mobile polish v1 ===== */
:root{
  --smh-sky:#7EC8F5;
  --smh-violet:#A5B4FC;
  --smh-deeppurple:#3A3F7A;
  --smh-text:#0b1220;
  --smh-bg:#f6f8ff;
  --smh-dark:#0b1430;
}
*{ -webkit-tap-highlight-color: transparent; }

/* Sticky header that hides on scroll down */
body.scrolling-down .site-header{ transform: translateY(-110%); }
body.scrolling-up .site-header{ transform: translateY(0); }
.site-header{
  position:sticky; top:0; z-index:60;
  backdrop-filter: blur(12px);
  background: rgba(255,255,255,.75);
  border-bottom: 1px solid rgba(2,6,23,.06);
  transition: transform .25s ease;
}
.site-header .container{ display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding: .65rem .9rem; }
.nav-actions{ display:flex; gap:.5rem; overflow:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.nav-actions::-webkit-scrollbar{ display:none; }

/* Pills & buttons adjusted to brand (sky -> violet) */
.btn-rounded{
  display:inline-flex; align-items:center; justify-content:center; gap:.4rem;
  border-radius:9999px; padding:.85rem 1.15rem; font-weight:800;
  background:linear-gradient(135deg, var(--smh-sky) 0%, var(--smh-violet) 100%);
  color:var(--smh-text); border:1px solid rgba(10,15,30,.08);
  box-shadow:0 10px 22px rgba(15,23,42,.10);
  text-decoration:none;
  transition: transform .12s ease, box-shadow .2s ease, filter .2s ease;
}
.btn-rounded:hover{ transform: translateY(-1px); box-shadow:0 16px 30px rgba(15,23,42,.14); }
.btn-rounded:active{ transform: translateY(0); box-shadow:0 8px 18px rgba(15,23,42,.10); }
.btn-soft{ background:#fff; border:1px solid rgba(10,15,30,.12); }
.btn-outline{ background:transparent; border:1px solid rgba(10,15,30,.16); }
.btn-outline:hover{ background:rgba(126,200,245,.08); }

/* Eyebrow label pills */
.label-pill{
  display:inline-block; font-size:.82rem; font-weight:800; letter-spacing:.2px;
  color: var(--smh-text);
  background: linear-gradient(135deg, rgba(126,200,245,.28), rgba(165,180,252,.28));
  border:1px solid rgba(10,15,30,.08);
  border-radius:9999px; padding:.35rem .75rem;
  box-shadow:0 6px 18px rgba(15,23,42,.06);
}

/* Feature chips (if any generic) */
.chip{
  display:inline-flex; align-items:center; gap:.5rem; padding:.65rem 1rem;
  border-radius:9999px; background:rgba(11,20,48,.72); color:#fff;
  border:1px solid rgba(255,255,255,.12);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}

/* Cards */
.card-rounded{ border-radius:1.25rem; background:#fff; border:1px solid rgba(2,6,23,.06);
  box-shadow: 0 16px 30px rgba(2,6,23,.06); padding:1.25rem; }

/* Hero spacing under sticky header (iOS safe area) */
.hero{ padding-top: calc(24px + env(safe-area-inset-top)); }

/* Reveal animations */
@media (prefers-reduced-motion: no-preference){
  [data-reveal]{ opacity:0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
  [data-reveal].in{ opacity:1; transform: translateY(0); }
  [data-reveal="fade"]{ transform:none; }
}

/* Bottom CTA stronger contrast */
.cta-gradient{
  position:relative;
  color:#fff;
  background:
    radial-gradient(60% 80% at 15% 0%, rgba(126,200,245,.35), transparent 60%),
    radial-gradient(60% 80% at 85% 100%, rgba(165,180,252,.35), transparent 60%),
    linear-gradient(135deg, #0b1430, #13235a 50%, #182a6e);
}
.cta-gradient .btn-rounded{ color:#0b1220; background: linear-gradient(135deg, #E5F4FF, #EDEBFF); }
.cta-gradient .btn-outline{ color:#fff; border-color: rgba(255,255,255,.6); background: transparent; }
.cta-gradient .btn-outline:hover{ background: rgba(255,255,255,.08); }
.cta-gradient h2, .cta-gradient h3, .cta-gradient p{ text-shadow: 0 2px 14px rgba(0,0,0,.28); }

/* Footer spacing */
footer{ padding-bottom: calc(18px + env(safe-area-inset-bottom)); }


/* ===== Mobile polish v2 (segmented nav, ribbons, CTA fix) ===== */

/* Header layout */
.site-header{ position:sticky; top:0; z-index:60; background:rgba(255,255,255,.85);
  border-bottom:1px solid rgba(2,6,23,.06); backdrop-filter: blur(10px); }
.header-wrap{ display:flex; align-items:center; justify-content:space-between; padding:.55rem .9rem; gap:.75rem; }
.logo-left img{ display:block; }

/* Segmented control (mobile) */
.nav-segmented{ display:flex; gap:.5rem; }
.nav-chip{
  display:inline-flex; align-items:center; justify-content:center;
  padding:.6rem .9rem; border-radius:9999px;
  background:#fff; border:1px solid rgba(10,15,30,.10); box-shadow:0 2px 6px rgba(2,6,23,.06);
  font-weight:800; color:#0b1220; text-decoration:none;
}
.nav-chip:active{ transform: translateY(1px); }

@media (max-width: 640px){
  .header-wrap{ flex-direction: column; align-items: stretch; }
  .nav-segmented{ width:100%; display:grid; grid-template-columns: repeat(4, 1fr); }
  .nav-chip{ width:100%; }
}

/* Ribbon CTAs under hero (keep these, centered) */
.btn-ribbon{
  display:flex; align-items:center; justify-content:center; width:100%;
  border-radius:9999px; padding:1rem 1.25rem; font-weight:800;
  color:#0b1220; text-align:center; text-decoration:none;
  background: linear-gradient(135deg, #7EC8F5 0%, #A5B4FC 100%);
  border:1px solid rgba(10,15,30,.10);
  box-shadow: 0 12px 26px rgba(2,6,23,.12);
}
.btn-ribbon:hover{ filter: brightness(1.02); }
.btn-ribbon:active{ transform: translateY(1px); }

/* Remove any underline/border within card CTAs */
.card-rounded a{ text-decoration:none; border:none !important; }
.card-cta{ margin-top:.75rem; }

/* Bottom CTA: remove panel look, ensure strong contrast */
.cta-gradient{
  position:relative;
  background: linear-gradient(135deg, #0b1430, #13235a 50%, #182a6e);
  color:#fff;
}
.cta-gradient h2, .cta-gradient h3, .cta-gradient p{ background:transparent !important; }
.cta-gradient .panel, .cta-gradient .card, .cta-gradient .box, .cta-gradient .wrap{ 
  background:transparent !important; border:0 !important; box-shadow:none !important; 
}
.cta-gradient .btn-rounded{ color:#0b1220; background: linear-gradient(135deg, #E5F4FF, #EDEBFF); }
.cta-gradient .btn-outline{ color:#fff; border-color: rgba(255,255,255,.6); background: transparent; }
.cta-gradient .btn-outline:hover{ background: rgba(255,255,255,.08); }


/* ===== Polish v3 (desktop sizing, centered ribbons, darker CTA bg, header glass) ===== */

/* Header glass & smaller nav on desktop */
.site-header{
  backdrop-filter: saturate(140%) blur(14px);
  background: color-mix(in srgb, #ffffff 78%, transparent);
  border-bottom: 1px solid rgba(2,6,23,.06);
}
.nav-segmented .nav-chip{
  padding:.5rem .8rem; font-weight:700;
}

/* Ribbons: centered, smaller, not full width on desktop */
.ribbon-row{ display:flex; gap:14px; justify-content:center; align-items:center; flex-wrap:wrap; margin-top:16px; }
.btn-ribbon{
  min-width: 240px; max-width: 380px; width: auto;
  padding:.9rem 1.1rem; font-size:1rem;
}
@media (min-max-width: 1024px; width: 100%){
  .btn-ribbon{ padding:.85rem 1rem; font-size:1rem; }
}

/* Card CTAs smaller */
.card-cta-compact{ padding:.65rem 1rem; font-weight:800; font-size:.95rem; border-radius:9999px; }
.card-rounded .card-cta-compact{ margin-top:.75rem; display:inline-flex; align-items:center; gap:.35rem; }
.card-rounded .card-cta-compact::after{ content:"→"; display:inline-block; transform: translateY(1px); }

/* Bottom CTA stronger dark background (no overlay on text) */
.cta-gradient{
  background:
    radial-gradient(60% 80% at 15% 0%, rgba(126,200,245,.28), transparent 60%),
    radial-gradient(60% 80% at 85% 100%, rgba(165,180,252,.28), transparent 60%),
    linear-gradient(135deg, #0b1430, #13235a 50%, #182a6e);
}
.cta-gradient *{ background: transparent !important; }
.cta-gradient h2, .cta-gradient h3, .cta-gradient p{ text-shadow: 0 2px 14px rgba(0,0,0,.35); }
.cta-gradient .btn-rounded{ color:#0b1220; background: linear-gradient(135deg, #E5F4FF, #EDEBFF); }
.cta-gradient .btn-outline{ color:#fff; border-color: rgba(255,255,255,.55); }
.cta-gradient .btn-outline:hover{ background: rgba(255,255,255,.08); }

/* Reduce giant horizontal paddings for pills on desktop generally */
.btn-rounded{ padding:.75rem 1.05rem; }
@media (min-max-width: 1024px; width: 100%){
  .btn-rounded{ padding:.6rem .95rem; font-weight:800; }
}


/* ===== Polish v4: header stability + clean CTA background ===== */

/* Glass header (stable height), subtle gradient */
.site-header{
  position:sticky; top:0; z-index:70;
  height:auto; /* no layout shift */
  backdrop-filter: saturate(140%) blur(14px);
  background: linear-gradient(to bottom, rgba(255,255,255,.86), rgba(255,255,255,.78));
  border-bottom: 1px solid rgba(2,6,23,.06);
  transition: background .25s ease, box-shadow .25s ease, transform .25s ease;
}
/* Stronger background once scrolled */
.site-header.is-scrolled{
  background: linear-gradient(to bottom, rgba(255,255,255,.96), rgba(255,255,255,.90));
  box-shadow: 0 6px 24px rgba(2,6,23,.08);
}

/* On desktop we can gently hide on scroll; on mobile keep visible */
@media (min-max-width: 1024px; width: 100%){
  body.header-hide .site-header{ transform: translateY(-110%); }
  body.header-show .site-header{ transform: translateY(0); }
}

/* Segmented nav smaller and tidy */
.nav-segmented .nav-chip{ padding:.45rem .75rem; font-weight:700; border-radius:9999px; }
@media (max-width:640px){
  .header-wrap{ flex-direction: column; align-items: stretch; }
  .nav-segmented{ width:100%; display:grid; grid-template-columns: repeat(4, 1fr); gap:.5rem; }
  .nav-chip{ width:100%; }
}

/* CTA bottom — clean darker background, no overlays on text */
.cta-gradient{
  position:relative;
  background:
    radial-gradient(70% 100% at 15% 0%, rgba(126,200,245,.25), transparent 60%),
    radial-gradient(80% 120% at 90% 100%, rgba(165,180,252,.25), transparent 60%),
    linear-gradient(135deg, #0b1430, #13235a 50%, #182a6e);
  color:#fff;
}
.cta-clean .cta-inner{ max-max-width: 1100px; width: 100%; margin: 0 auto; padding: 56px 16px; text-align:left; }
.cta-clean .cta-title{ font-size: clamp(1.6rem, 2.8vw, 2.2rem); font-weight: 900; margin: 0 0 .25rem 0; line-height:1.15; }
.cta-clean .cta-desc{ font-size: clamp(1rem, 1.6vw, 1.15rem); opacity:.95; margin: 0 0 1rem 0; }
.cta-clean .cta-row{ display:flex; gap:.75rem; flex-wrap:wrap; padding-top: .25rem; }
.cta-clean .btn-outline{ color:#fff; border-color: rgba(255,255,255,.55); }
.cta-clean .btn-outline:hover{ background: rgba(255,255,255,.08); }
/* Force any accidental text backgrounds to be transparent (no blue blocks on text) */
.cta-clean .cta-title, .cta-clean .cta-desc{ background: transparent !important; box-shadow:none !important; }

/* Ribbons: ensure not too large on desktop */
.ribbon-row{ gap:12px; }
.btn-ribbon{ min-width: 220px; max-width: 340px; padding:.8rem 1rem; font-size:1rem; }
@media (min-max-width: 1280px; width: 100%){
  .btn-ribbon{ min-width: 240px; max-width: 360px; }
}

/* Card CTA compact */
.card-cta-compact{ padding:.6rem .95rem; font-size:.95rem; }


/* ===== Polish v5b: single clean CTA, darker bg, no text overlay ===== */
.section-cta{ position:relative; }
.section-cta .cta-inner{ max-max-width: 1200px; width: 100%; margin:0 auto; padding:64px 16px; }
.section-cta .grid-two{ display:grid; grid-template-columns: 1.2fr .8fr; gap:24px; align-items:center; }
@media (max-width: 900px){ .section-cta .grid-two{ grid-template-columns: 1fr; gap:16px; } }
.section-cta .cta-copy{ background:transparent !important; box-shadow:none !important; }
.section-cta .cta-title{ font-size: clamp(1.6rem, 3.4vw, 2.6rem); font-weight:900; line-height:1.15; margin:0 0 .35rem 0; color:#fff; text-shadow: 0 2px 14px rgba(0,0,0,.35); }
.section-cta .cta-desc{ font-size: clamp(1rem, 1.6vw, 1.15rem); margin:0; color:#fff; opacity:.95; text-shadow: 0 1px 12px rgba(0,0,0,.28); }
.section-cta .cta-buttons{ display:flex; gap:.75rem; flex-wrap:wrap; justify-content:flex-start; }
.section-cta .btn-rounded{ color:#0b1220; background: linear-gradient(135deg, #E5F4FF, #EDEBFF); }
.section-cta .btn-outline{ color:#fff; border-color: rgba(255,255,255,.6); }
.section-cta .btn-outline:hover{ background: rgba(255,255,255,.08); }
.section-cta *{ background:transparent !important; } /* force no background blocks */
.section-cta.cta-gradient{
  background:
    radial-gradient(70% 100% at 15% 0%, rgba(126,200,245,.20), transparent 60%),
    radial-gradient(80% 120% at 90% 100%, rgba(165,180,252,.20), transparent 60%),
    linear-gradient(135deg, #0a1330, #122253 52%, #172968);
}


/* ===== Revamp v6: CTA section rebuilt (no text overlays), darker background only ===== */
.cta-revamp{
  position: relative;
  color:#fff;
  /* Brand background: subtle vignettes + darker diagonal gradient */
  background:
    radial-gradient(70% 100% at 15% 0%, rgba(126,200,245,.22), transparent 60%),
    radial-gradient(90% 120% at 88% 100%, rgba(165,180,252,.25), transparent 60%),
    linear-gradient(135deg, #0a1330, #122253 50%, #172968);
  overflow:hidden;
}
.cta-revamp .cta-wrap{
  max-max-width: 1120px; width: 100%;
  margin: 0 auto;
  padding: 72px 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
}
.cta-revamp .cta-title{
  margin: 0 0 .35rem 0;
  font-weight: 900;
  line-height: 1.1;
  font-size: clamp(1.8rem, 3.2vw, 2.6rem);
  color:#fff;
  text-shadow: 0 2px 14px rgba(0,0,0,.28);
}
.cta-revamp .cta-desc{
  margin: 0 0 1rem 0;
  font-size: clamp(1rem, 1.5vw, 1.125rem);
  opacity: .95;
  color:#fff;
  text-shadow: 0 1px 10px rgba(0,0,0,.22);
}
.cta-revamp .cta-actions{
  display:flex; gap:.75rem; flex-wrap:wrap;
}
.cta-revamp .btn-rounded{ color:#0b1220; background: linear-gradient(135deg, #E5F4FF, #EDEBFF); }
.cta-revamp .btn-outline{ color:#fff; border-color: rgba(255,255,255,.6); }
.cta-revamp .btn-outline:hover{ background: rgba(255,255,255,.08); }

/* Responsive: center actions on small screens */
@media (max-width: 700px){
  .cta-revamp .cta-wrap{ align-items: center; text-align:center; }
}


/* ===== Polish v7: CTA integrated on existing gradient (transparent), centered, refined buttons ===== */
#contact-cta.cta-on-gradient{ background: transparent !important; }
#contact-cta .cta-wrap.centered{
  max-width: 960px;
  margin: 0 auto;
  padding: 72px 16px;
  display:flex; flex-direction:column; align-items:center; text-align:center;
}
#contact-cta .cta-title.centered{
  margin:0 0 .35rem 0;
  font-weight:900; line-height:1.1;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  color: #0b1220; /* dark text since background is light */
  text-shadow: 0 1px 8px rgba(255,255,255,.35);
}
#contact-cta .cta-desc.centered{
  margin:0 0 1rem 0;
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  color:#0b1220; opacity:.85;
}
#contact-cta .cta-actions.centered{ display:flex; gap:.75rem; flex-wrap:wrap; justify-content:center; }

/* CTA buttons */
.btn-cta{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.8rem 1.1rem; border-radius:9999px; font-weight:900;
  background: linear-gradient(135deg, #7EC8F5, #A5B4FC); color:#0b1220;
  border:1px solid rgba(10,15,30,.12); text-decoration:none;
  box-shadow: 0 12px 24px rgba(15,23,42,.12);
  transition: transform .12s ease, box-shadow .2s ease, filter .2s ease;
}
.btn-cta:hover{ transform: translateY(-1px); box-shadow:0 16px 30px rgba(15,23,42,.16); }
.btn-cta:active{ transform: translateY(0); box-shadow:0 8px 18px rgba(15,23,42,.12); }
.btn-cta::after{ content:"→"; display:inline-block; transform: translateY(1px); }

.btn-cta-outline{
  background: transparent !important; color:#0b1220; 
  border:1.5px solid rgba(11,18,32,.35); box-shadow:none;
}
.btn-cta-outline:hover{ background: rgba(126,200,245,.10) !important; }

@media (max-width: 700px){
  #contact-cta .cta-wrap.centered{ padding: 56px 16px; }
}


/* ===== Polish v8: remove stray gradient strip, CTA on dark band, buttons isolated ===== */
#contact-cta.cta-banded{
  position:relative;
  background:
    radial-gradient(70% 100% at 15% 0%, rgba(126,200,245,.20), transparent 60%),
    radial-gradient(80% 120% at 90% 100%, rgba(165,180,252,.22), transparent 60%),
    linear-gradient(135deg, #0a1330, #122253 52%, #172968);
}
#contact-cta .cta-title.white, #contact-cta .cta-desc.white{ color:#fff; text-shadow: 0 2px 12px rgba(0,0,0,.28); }
#contact-cta .cta-actions.centered{ justify-content:center; }

/* Buttons: avoid color mixing with background */
.btn-cta, .btn-cta-outline{ position:relative; isolation:isolate; mix-blend-mode: normal; background-clip: padding-box; }
.btn-cta{ background: linear-gradient(135deg, #7EC8F5, #A5B4FC); color:#0b1220; border:1px solid rgba(10,15,30,.12); }
.btn-cta-outline{ background: transparent; color:#fff; border:1.5px solid rgba(255,255,255,.55); box-shadow:none; }
.btn-cta-outline:hover{ background: rgba(255,255,255,.08); }


/* ===== Polish v9: palette, header transparency, wow effects, spacing & mobile header fix ===== */
:root{
  --sm-sky: #7EC8F5;
  --sm-violet: #A5B4FC;
  --sm-ink: #0b1220;
  --sm-deep: #0a1330;
}
.site-header{
  position: sticky; top:0; z-index: 80;
  background: linear-gradient(to bottom, rgba(255,255,255,.78), rgba(255,255,255,.70));
  backdrop-filter: saturate(140%) blur(14px);
  border-bottom: 1px solid rgba(2,6,23,.06);
  transition: background .25s ease, box-shadow .25s ease, transform .25s ease;
}
.site-header.is-scrolled{ background: linear-gradient(to bottom, rgba(255,255,255,.92), rgba(255,255,255,.84)); box-shadow: 0 6px 24px rgba(2,6,23,.08); }
@media (max-max-width: 1024px; width: 100%){
  .site-header{ transform: none !important; }
  body.header-hide .site-header, body.scrolling-down .site-header{ transform:none !important; }
}
.section{ margin:0; padding: 56px 0; }
.cta-banded.cta-tight{ margin-top:0 !important; }
.section + .cta-banded{ margin-top: 0 !important; }
.case, .work, .features{ padding-bottom: 24px; }

.wow-shine{ position: relative; isolation:isolate; background:none; }
@keyframes shineSweep{
  0%{ transform: translateX(-120%); opacity:.0; }
  15%{ opacity:.35; }
  50%{ opacity:.45; }
  100%{ transform: translateX(120%); opacity:0; }
}
.wow-shine::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.55) 50%, rgba(255,255,255,0) 100%);
  mix-blend-mode: overlay; filter: blur(6px);
  transform: translateX(-120%); pointer-events:none;
}
.wow-shine.shine-in::after{ animation: shineSweep 1.8s cubic-bezier(.2,.6,.2,1) 0.2s 1; }
.hero-title{ text-shadow: 0 2px 0 rgba(255,255,255,.05), 0 18px 40px rgba(126,200,245,.18); }

#contact-cta.cta-banded{
  background:
    radial-gradient(60% 80% at 25% 10%, rgba(126,200,245,.16), transparent 60%),
    radial-gradient(60% 80% at 90% 100%, rgba(165,180,252,.18), transparent 60%),
    linear-gradient(135deg, #0b1534, #13235a 50%, #182a6e);
}
.btn-cta, .btn-cta-outline{ font-weight: 900; }
.btn-cta{ background: linear-gradient(135deg, var(--sm-sky), var(--sm-violet)); color: var(--sm-ink); }
.btn-cta-outline{ color:#fff; border-color: rgba(255,255,255,.6); }
@media (max-width: 700px){
  .section{ padding: 48px 0; }
}


/* Remove white gap between previous section and CTA */
.no-bottom-gap{ margin-bottom:0 !important; padding-bottom: 12px !important; }
#contact-cta.cta-banded.cta-tight{ margin-top:0 !important; padding-top:48px !important; }


/* Mobile header behaviour: fixed only over hero, then normal */
@media (max-width: 768px){
  .site-header{ position: static; }            /* default: not following */
  .site-header.mobile-fixed{ position: sticky; top:0; z-index:90; }
}


#contact-cta.cta-banded{
  background:
    radial-gradient(60% 80% at 25% 10%, color-mix(in srgb, var(--sm-sky) 22%, transparent), transparent 60%),
    radial-gradient(60% 80% at 90% 100%, color-mix(in srgb, var(--sm-violet) 22%, transparent), transparent 60%),
    linear-gradient(135deg, #0b1534, #13235a 50%, #182a6e);
}
.btn-cta{ background: linear-gradient(135deg, var(--sm-sky), var(--sm-violet)); }


/* v11: Mobile header not sticky (stays at top, does not follow while scrolling) */
@media (max-width: 768px){
  .site-header{ position: static !important; transform:none !important; box-shadow:none !important; }
  body.header-hide .site-header, body.header-show .site-header{ transform:none !important; }
}


/* v11: Smaller nav chips on mobile */
@media (max-width: 768px){
  .nav-segmented{ gap:.45rem !important; }
  .nav-segmented .nav-chip{
    padding:.42rem .78rem !important;
    font-size: .95rem !important;
    border-radius: 9999px !important;
    box-shadow: 0 4px 10px rgba(15,23,42,.06) !important;
  }
}


/* v11: tighter top spacing right after header on mobile */
@media (max-width: 768px){
  .hero, .hero-section, .section:first-of-type{ margin-top: 0 !important; }
}


/* v12: remove white gap above CTA (robust) */
.no-bottom-gap{ margin-bottom:0 !important; padding-bottom:8px !important; }
.section:has(+ #contact-cta),
div:has(+ #contact-cta),
main > *:has(+ #contact-cta){
  margin-bottom:0 !important;
  padding-bottom:8px !important;
}
#contact-cta{ margin-top:0 !important; }
@media (max-width: 768px){
  #contact-cta{ margin-top:-18px !important; padding-top:56px !important; }
}



/* === Heart beat animation for 🩵 === */
@keyframes sm-heartbeat {
  0%   { transform: scale(1); }
  14%  { transform: scale(1.20); }
  28%  { transform: scale(1); }
  42%  { transform: scale(1.25); }
  70%  { transform: scale(1); }
  100% { transform: scale(1); }
}
.heart-beat{
  display:inline-block;
  transform-origin: 70% 60%;
  animation: sm-heartbeat 1.15s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce){
  .heart-beat{ animation: none; }
}


/* Style for special bottom menu items */
.nav-menu .special-link {
  background-color: #007BFF; /* bleu principal */
  color: #fff !important;
  font-weight: bold;
  margin-top: 15px;
  border-radius: 12px;
  text-align: center;
}
.nav-menu .special-link:hover {
  background-color: #0056b3;
}
