:root{
  --c-blue:#1C7EC0;
  --c-blue-deep:#125E96;
  --c-teal:#189690;
  --c-green:#48BB6E;
  --c-orange:#F5A427;
  --c-yellow:#FFCE45;
  --c-ink:#0F2430;
  --c-ink-soft:#3D5560;
  --c-paper:#F6FAF9;
  --c-paper-alt:#EDF5F3;
  --c-line:#DCE7E5;
  --c-white:#FFFFFF;
  --grad-brand: linear-gradient(100deg, var(--c-blue) 0%, var(--c-teal) 55%, var(--c-green) 100%);
  --grad-sun: linear-gradient(135deg, var(--c-orange), var(--c-yellow));
  --shadow-soft: 0 10px 30px rgba(15,36,48,0.08);
  --shadow-lift: 0 18px 45px rgba(15,36,48,0.14);
  --radius-lg: 22px;
  --radius-md: 14px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--c-paper);
  color:var(--c-ink);
  font-family:'Poppins', sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Poppins', sans-serif;
  color:var(--c-ink);
  margin:0 0 .5em;
  letter-spacing:-0.01em;
}
.mono{ font-family:'JetBrains Mono', monospace; }
p{ margin:0 0 1em; color:var(--c-ink-soft); }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
img{ max-width:100%; display:block; }
button{ font-family:inherit; cursor:pointer; }
:focus-visible{ outline:3px solid var(--c-orange); outline-offset:3px; border-radius:4px; }

.wrap{ max-width:1160px; margin:0 auto; padding:0 28px; }
.eyebrow{
  font-family:'JetBrains Mono', monospace;
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--c-teal);
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:14px;
}
.eyebrow::before{
  content:"";
  width:18px; height:2px;
  background:var(--c-orange);
  display:inline-block;
}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px 26px;
  border-radius:100px;
  font-weight:600;
  font-size:.95rem;
  border:2px solid transparent;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
  white-space:nowrap;
}
.btn-primary{
  background:var(--grad-sun);
  color:#2A1B00;
  box-shadow:var(--shadow-soft);
}
.btn-primary:hover{ transform:translateY(-2px); box-shadow:var(--shadow-lift); }
.btn-outline{
  background:transparent;
  border-color:var(--c-blue);
  color:var(--c-blue-deep);
}
.btn-outline:hover{ background:var(--c-blue); color:#fff; transform:translateY(-2px); }
.btn-ghost-white{
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.5);
  color:#fff;
}
.btn-ghost-white:hover{ background:rgba(255,255,255,.26); }

/* ============ HEADER / NAV ============ */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(246,250,249,.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--c-line);
}
.nav-row{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  padding:16px 28px;
  max-width:1160px; margin:0 auto;
  gap:16px;
}
.brandmark{ display:flex; align-items:center; gap:10px; font-family:'Poppins'; font-weight:700; font-size:1.25rem; }
.brandmark .sun-badge{ width:34px; height:34px; }
.brandmark span.grad{
  background:var(--grad-brand);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.brand-tag{ font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--c-ink-soft); display:block; font-family:'JetBrains Mono'; margin-top:-2px; }

.main-nav{ display:flex; gap:8px; justify-content:flex-end; flex-wrap:wrap; margin-left:auto; }
.main-nav a{
  background:none; border:none; padding:10px 12px; border-radius:100px;
  font-size:.92rem; font-weight:500; color:var(--c-ink-soft);
  transition:background .2s, color .2s;
  display:inline-block;
}
.main-nav a:hover{ background:var(--c-paper-alt); color:var(--c-ink); }
.main-nav a.is-active{
  background:var(--c-ink); color:#fff;
}
.header-cta{ display:flex; align-items:center; gap:10px; }
.icon-btn{
  width:42px; height:42px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--c-paper-alt); border:1px solid var(--c-line);
}
.nav-toggle{ display:none; background:none; border:1px solid var(--c-line); border-radius:10px; padding:8px 10px; }

@media (max-width:960px){
  .main-nav{
    position:fixed; inset:72px 16px auto 16px;
    flex-direction:column; background:#fff; border:1px solid var(--c-line);
    border-radius:var(--radius-md); padding:10px; box-shadow:var(--shadow-lift);
    display:none;
  }
  .main-nav.open{ display:flex; }
  .main-nav a{ text-align:left; width:100%; }
  .nav-toggle{ display:inline-flex; }
  .header-cta .btn span.long{ display:none; }
}

section{ padding:88px 0; }
section.tight{ padding:56px 0; }
.section-head{ max-width:640px; margin-bottom:48px; }
.section-head p{ font-size:1.05rem; }

/* ============ SUN BADGE (signature) ============ */
.sun-badge{ position:relative; }
.sun-badge svg{ width:100%; height:100%; }
.sun-spin{ transform-origin:center; animation:spin 22s linear infinite; }
@media (prefers-reduced-motion:reduce){ .sun-spin{ animation:none; } }
@keyframes spin{ to{ transform:rotate(360deg); } }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;} }
main .page-enter{ animation:fadeUp .5s var(--ease); }

/* ============ HOME: HERO SLIDER ============ */
.home-hero{
  position:relative;
  overflow:hidden;
  min-height:560px;
  display:flex;
  align-items:center;
  color:#fff;
}
.hero-slides{ position:absolute; inset:0; z-index:0; }
.hero-slide{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:0; transition:opacity 1.2s var(--ease);
}
.hero-slide.is-active{ opacity:1; }
.hero-slide::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(10,26,34,.86) 0%, rgba(10,26,34,.62) 45%, rgba(10,26,34,.28) 100%);
}
.home-hero__grid{
  position:relative; z-index:2;
  display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center;
  
}
.home-hero h1{ color:#fff; font-size:clamp(2.4rem, 5vw, 3.6rem); line-height:1.05; }
.home-hero h1 .grad{
  background:var(--grad-sun); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.home-hero__sub{ font-size:1.15rem; max-width:520px; color:rgba(255,255,255,.85); }
.home-hero .eyebrow{ color:var(--c-yellow); }
.home-hero .eyebrow::before{ background:var(--c-yellow); }
.home-hero__ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-top:28px; }

.hero-dots{ position:relative; z-index:2; display:flex; gap:10px; margin-top:44px; }
.hero-dots button{
  width:34px; height:5px; border-radius:6px; border:none; background:rgba(255,255,255,.3);
  transition:background .3s var(--ease);
}
.hero-dots button.is-active{ background:var(--c-yellow); }

.home-hero__readout{
  position:relative; z-index:2;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25); border-radius:var(--radius-md);
  padding:14px 18px; backdrop-filter:blur(6px);
  font-family:'JetBrains Mono'; font-size:.8rem; color:#fff;
  display:inline-flex; flex-direction:column; gap:2px; margin-top:20px; margin-right:12px;
}
.home-hero__readout b{ font-size:1.1rem; color:var(--c-yellow); }
.home-hero__readouts{ display:flex; gap:12px; flex-wrap:wrap; position:relative; z-index:2; }
@media (max-width:860px){
  .home-hero__grid{ grid-template-columns:1fr; }
  .home-hero{ min-height:640px; }
}

/* ============ HOME: PROBLEMS ============ */
.home-problems{ background:var(--c-white); }
.home-problems__list{
  display:grid; grid-template-columns:repeat(4,1fr); gap:2px;
  background:var(--c-line); border:1px solid var(--c-line); border-radius:var(--radius-lg); overflow:hidden;
}
.home-problems__item{
  background:#fff; padding:22px 20px; font-size:.92rem; font-weight:500;
  display:flex; align-items:flex-start; gap:10px;
}
.home-problems__item .mark{ color:var(--c-orange); font-family:'JetBrains Mono'; }
@media (max-width:860px){ .home-problems__list{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .home-problems__list{ grid-template-columns:1fr; } }

/* ============ HOME: SERVICES QUICK GRID ============ */
.home-services{ background:var(--c-paper); }
.home-services__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.home-services__card{
  background:#fff; border:1px solid var(--c-line); border-radius:var(--radius-md);
  overflow:hidden;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.home-services__card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-soft); }
.home-services__card .thumb{ height:160px; background-size:cover; position:relative; }
.home-services__card .thumb::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,36,48,0) 40%, rgba(15,36,48,.55) 100%); }
.home-services__card .thumb .num{
  position:absolute; bottom:10px; left:14px; font-family:'JetBrains Mono'; color:#fff; font-size:.8rem; z-index:1;
}
.home-services__card .body{ padding:20px 22px; }
@media (max-width:860px){ .home-services__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .home-services__grid{ grid-template-columns:1fr; } }

/* ============ HOME: LIFECYCLE WHEEL ============ */
.home-cycle{ background:var(--c-white); }
.home-cycle__layout{ display:grid; grid-template-columns:.9fr 1.1fr; gap:40px; align-items:center; }
.home-cycle__wheel{ position:relative; }
.home-cycle__wheel svg{ width:100%; height:auto; }
.home-cycle__node-label{ font-family:'JetBrains Mono'; font-size:.68rem; fill:var(--c-ink-soft); }
.home-cycle__steps{ display:flex; flex-direction:column; gap:6px; }
.home-cycle__step{
  display:flex; gap:16px; align-items:flex-start; padding:14px 4px; border-bottom:1px solid var(--c-line);
}
.home-cycle__step:last-child{ border-bottom:none; }
.home-cycle__step .idx{
  font-family:'JetBrains Mono'; font-weight:600; color:#fff; background:var(--c-teal);
  width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  flex-shrink:0; font-size:.8rem;
}
.home-cycle__step h4{ margin:0 0 2px; font-size:1rem; }
.home-cycle__step p{ margin:0; font-size:.9rem; }
@media (max-width:860px){ .home-cycle__layout{ grid-template-columns:1fr; } }

/* ============ HOME: INDUSTRIES ============ */
.home-industries{ background:var(--c-paper-alt); }
.home-industries__grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:16px; }
.home-industries__card{
  background:#fff; border-radius:var(--radius-md); overflow:hidden; text-align:left;
  border:1px solid var(--c-line);
}
.home-industries__card .thumb{ height:130px; background-size:cover; }
.home-industries__card .body{ padding:18px; }
.home-industries__card h4{ font-size:.98rem; }
.home-industries__card p{ font-size:.84rem; margin:0; }
@media (max-width:960px){ .home-industries__grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:640px){ .home-industries__grid{ grid-template-columns:repeat(2,1fr); } }

/* ============ HOME: WHY CHOOSE ============ */
.home-why{ background:var(--c-ink); color:#fff; }
.home-why .section-head h2, .home-why .section-head p{ color:#fff; }
.home-why .section-head p{ color:rgba(255,255,255,.7); }
.home-why__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:rgba(255,255,255,.12); border-radius:var(--radius-lg); overflow:hidden; }
.home-why__item{
  background:rgba(255,255,255,.04); padding:22px 20px; display:flex; gap:10px; align-items:flex-start; font-size:.92rem;
}
.home-why__item .check{ color:var(--c-green); flex-shrink:0; }
@media (max-width:860px){ .home-why__grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .home-why__grid{ grid-template-columns:1fr; } }

/* ============ HOME: PARTNER TEASER ============ */
.home-partner-teaser{
  background:var(--grad-brand); color:#fff; border-radius:var(--radius-lg);
  padding:48px; display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap;
  margin:0 auto; max-width:1104px;
}
.home-partner-teaser h3{ color:#fff; font-size:1.6rem; max-width:480px; }
.home-partner-teaser p{ color:rgba(255,255,255,.85); max-width:480px; }

/* Download app section: distinct color combination */
section.download-app{ padding:56px 0; }
section.download-app .home-partner-teaser{
  background: linear-gradient(100deg, #072F4F 0%, #0FA3A3 60%, #FFD166 100%);
  color:#08212a; /* dark text on light gradient stop */
  border-radius:var(--radius-lg);
  padding:44px;
}
section.download-app .home-partner-teaser h3{ color:#08212a; }
section.download-app .home-partner-teaser p{ color:rgba(8,33,42,.9); }
section.download-app .btn-ghost-white{
  background:rgba(255,255,255,.9);
  border-color:rgba(255,255,255,.9);
  color:#072F4F;
}
section.download-app .btn-ghost-white:hover{ background:#ffffff; transform:translateY(-2px); }

/* ============ HOME: FAQ ============ */
.home-faq{ background:var(--c-paper); }
.home-faq__item{ border-bottom:1px solid var(--c-line); }
.home-faq__q{
  width:100%; background:none; border:none; text-align:left; padding:20px 4px;
  display:flex; justify-content:space-between; align-items:center; font-weight:600; font-size:1.02rem; color:var(--c-ink);
}
.home-faq__plus{ transition:transform .3s var(--ease); color:var(--c-orange); font-size:1.3rem; }
.home-faq__item.open .home-faq__plus{ transform:rotate(45deg); }
.home-faq__a{ max-height:0; overflow:hidden; transition:max-height .35s var(--ease); }
.home-faq__a p{ padding:0 4px 20px; margin:0; }
.home-faq__item.open .home-faq__a{ max-height:200px; }

/* ============ HOME: FINAL CTA ============ */
.home-final{
  background:var(--c-ink); position:relative; overflow:hidden;
}
.home-final__inner{ text-align:center; position:relative; z-index:1; }
.home-final h2{ color:#fff; font-size:clamp(1.8rem,4vw,2.6rem); }
.home-final p{ color:rgba(255,255,255,.75); max-width:520px; margin:0 auto 30px; }
.home-final__glow{
  position:absolute; width:520px; height:520px; border-radius:50%;
  background:var(--grad-sun); opacity:.18; filter:blur(80px);
  top:-160px; left:50%; transform:translateX(-50%);
}

/* ============ ABOUT PAGE ============ */
.about-hero{ background:var(--c-paper-alt); }
.about-hero__grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:50px; align-items:center; }
.about-hero h1{ font-size:clamp(2rem,4vw,2.8rem); }
.about-hero__parent{
  font-family:'JetBrains Mono'; font-size:.82rem; color:var(--c-ink-soft);
  border:1px dashed var(--c-line); padding:14px 18px; border-radius:var(--radius-md); display:inline-block; margin-top:10px;
}
.about-hero__photo{
  border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lift);
  aspect-ratio:4/3; background-size:cover; background-position:center; position:relative;
}
.about-hero__photo::after{ content:""; position:absolute; inset:0; box-shadow:inset 0 0 0 1px rgba(255,255,255,.2); }
.about-promise{
  background:var(--c-white); text-align:center;
}
.about-promise blockquote{
  font-family:'Poppins'; font-size:clamp(1.6rem,4vw,2.4rem); font-weight:600; margin:0 auto; max-width:780px;
  background:var(--grad-brand); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.about-values{ background:var(--c-paper); }
.about-values__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.about-values__card{
  background:#fff; border:1px solid var(--c-line); border-radius:var(--radius-md); padding:26px;
  border-top:4px solid var(--c-teal);
}
.about-values__card:nth-child(3n+2){ border-top-color:var(--c-orange); }
.about-values__card:nth-child(3n+3){ border-top-color:var(--c-green); }
@media (max-width:860px){ .about-values__grid, .about-hero__grid{ grid-template-columns:1fr; } }
.about-approach{ background:var(--c-white); }
.about-approach__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.about-approach__step{ text-align:left; }
.about-approach__step .tag{ font-family:'JetBrains Mono'; color:var(--c-teal); font-size:.75rem; }
@media (max-width:860px){ .about-approach__grid{ grid-template-columns:repeat(2,1fr); } }

/* ============ SERVICES PAGE ============ */
.services-hero{ background:var(--c-paper-alt); }
.services-hero__grid{ display:grid; grid-template-columns:1.2fr .8fr; gap:40px; align-items:end; }
.services-catalog{ background:var(--c-white); }
.services-catalog__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.services-catalog__card{
  background:var(--c-paper); border-radius:var(--radius-md); overflow:hidden;
  border:1px solid var(--c-line); position:relative;
}
.services-catalog__card .thumb{ height:210px; background-size:cover; background-position:center; position:relative; }
.services-catalog__card .thumb::before{ content:""; position:absolute; top:0; left:0; width:5px; height:100%; background:var(--grad-brand); z-index:1; }
.services-catalog__card .body{ padding:20px 22px; }
.services-catalog__card h4{ font-size:1.02rem; margin-bottom:6px; }
.services-catalog__card p{ font-size:.86rem; margin:0; }
.services-catalog__index{ font-family:'JetBrains Mono'; font-size:.75rem; color:var(--c-ink-soft); opacity:.6; }
@media (max-width:960px){ .services-catalog__grid{ grid-template-columns:repeat(2,1fr); } .services-hero__grid{ grid-template-columns:1fr; } }
@media (max-width:560px){ .services-catalog__grid{ grid-template-columns:1fr; } }
.services-note{ background:var(--c-ink); color:#fff; text-align:center; }
.services-note p{ color:rgba(255,255,255,.8); max-width:560px; margin:0 auto; }

/* ============ PLANS PAGE ============ */
.plans-hero{ background:var(--c-paper-alt); text-align:center; }
.plans-hero .section-head{ margin:0 auto 20px; text-align:center; }
.plans-cards{ background:var(--c-white); }
.plans-cards__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.plans-cards__card{
  background:#fff; border:1.5px solid var(--c-line); border-radius:var(--radius-lg); padding:34px 28px;
  display:flex; flex-direction:column; transition:transform .25s var(--ease), border-color .25s;
}
.plans-cards__card:hover{ transform:translateY(-6px); border-color:var(--c-teal); }
.plans-cards__card.featured{ border-color:var(--c-orange); box-shadow:var(--shadow-lift); position:relative; }
.plans-cards__badge{
  position:absolute; top:-14px; right:24px; background:var(--grad-sun); color:#2A1B00;
  font-size:.7rem; font-weight:700; padding:6px 14px; border-radius:100px; font-family:'JetBrains Mono';
}
.plans-cards__card h3{ font-size:1.3rem; }
.plans-cards__card .for{ font-family:'JetBrains Mono'; font-size:.75rem; color:var(--c-teal); margin-bottom:16px; display:block; }
@media (max-width:960px){ .plans-cards__grid{ grid-template-columns:1fr; max-width:460px; margin:0 auto; } }
.plans-includes{ background:var(--c-paper-alt); }
.plans-includes__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.plans-includes__item{
  background:#fff; border:1px solid var(--c-line); border-radius:var(--radius-md); padding:18px 20px;
  display:flex; gap:10px; align-items:center; font-size:.9rem; font-weight:500;
}
@media (max-width:860px){ .plans-includes__grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .plans-includes__grid{ grid-template-columns:1fr; } }
.plans-cta{ text-align:center; background:var(--c-white); }

/* ============ PARTNER PAGE ============ */
.partner-hero{
  background:var(--grad-brand); color:#fff; text-align:center;
}
.partner-hero h1{ color:#fff; font-size:clamp(2.1rem,4.5vw,3rem); }
.partner-hero p{ color:rgba(255,255,255,.88); max-width:620px; margin:0 auto 26px; }
.partner-who{ background:var(--c-white); }
.partner-who__grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.partner-who__list li, .partner-why__list li{
  display:flex; gap:12px; padding:12px 0; border-bottom:1px solid var(--c-line); font-size:.95rem;
}
.partner-who__list li .b, .partner-why__list li .b{ color:var(--c-orange); font-family:'JetBrains Mono'; }
@media (max-width:860px){ .partner-who__grid{ grid-template-columns:1fr; } }
.partner-journey{ background:var(--c-paper); }
.partner-journey__track{
  display:flex; gap:0; overflow-x:auto; padding-bottom:14px; scrollbar-width:thin;
}
.partner-journey__step{
  flex:1 0 200px; padding:22px 20px; position:relative; background:#fff; border:1px solid var(--c-line);
}
.partner-journey__step:first-child{ border-radius:var(--radius-md) 0 0 var(--radius-md); }
.partner-journey__step:last-child{ border-radius:0 var(--radius-md) var(--radius-md) 0; background:var(--grad-brand); color:#fff; }
.partner-journey__step:last-child p{ color:rgba(255,255,255,.85); }
.partner-journey__step .n{ font-family:'JetBrains Mono'; font-size:.75rem; color:var(--c-teal); }
.partner-journey__step:last-child .n{ color:rgba(255,255,255,.8); }
.partner-journey__step h4{ font-size:1rem; margin:6px 0 4px; }
.partner-journey__step p{ font-size:.82rem; margin:0; }
.partner-apply{ background:var(--c-ink); color:#fff; text-align:center; }
.partner-apply p{ color:rgba(255,255,255,.75); max-width:520px; margin:0 auto 26px; }
.partner-photo-strip{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:40px; }
.partner-photo-strip div{ aspect-ratio:4/3; border-radius:var(--radius-md); background-size:cover; background-position:center; }
@media (max-width:760px){ .partner-photo-strip{ grid-template-columns:1fr; } }

/* ============ CONTACT PAGE ============ */
.contact-hero{ background:var(--c-paper-alt); }
.contact-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:50px; align-items:start; }
.contact-cards{ display:flex; flex-direction:column; gap:14px; }
.contact-card{
  background:#fff; border:1px solid var(--c-line); border-radius:var(--radius-md); padding:20px;
  display:flex; gap:14px; align-items:center;
}
.contact-card .ic{
  width:44px; height:44px; border-radius:50%; background:var(--c-paper-alt); color:var(--c-blue);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.contact-card h4{ margin:0 0 2px; font-size:.95rem; }
.contact-card span{ font-size:.85rem; color:var(--c-ink-soft); font-family:'JetBrains Mono'; }
.contact-form{
  background:#fff; border:1px solid var(--c-line); border-radius:var(--radius-lg); padding:32px;
}
.contact-form__row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.contact-form label{ display:block; font-size:.82rem; font-weight:600; margin-bottom:6px; color:var(--c-ink-soft); }
.contact-form input, .contact-form select, .contact-form textarea{
  width:100%; padding:12px 14px; border-radius:10px; border:1px solid var(--c-line); font-family:inherit; font-size:.95rem;
  background:var(--c-paper);
}
.contact-form textarea{ min-height:110px; resize:vertical; }
.contact-form .full{ margin-bottom:16px; }
.contact-note{ font-size:.78rem; color:var(--c-ink-soft); margin-top:10px; }
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; } .contact-form__row{ grid-template-columns:1fr; } }
.contact-map-note{
  background:var(--c-paper); border:1px dashed var(--c-line); border-radius:var(--radius-md);
  padding:20px; font-size:.85rem; color:var(--c-ink-soft); text-align:center; margin-top:14px;
}

/* ============ FOOTER ============ */
.site-footer{ background:var(--c-ink); color:rgba(255,255,255,.75); padding:60px 0 26px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px; margin-bottom:40px; }
.footer-brand .brandmark span.grad{ background:var(--grad-brand); -webkit-background-clip:text; background-clip:text; color:transparent; }
.footer-brand p{ color:rgba(255,255,255,.6); max-width:280px; font-size:.88rem; }
.footer-col h5{ color:#fff; font-family:'JetBrains Mono'; font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:14px; }
.footer-col li{ margin-bottom:10px; }
.footer-col a{ color:rgba(255,255,255,.7); font-size:.9rem; }
.footer-col a:hover{ color:#fff; }
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12); padding-top:22px; display:flex; justify-content:space-between;
  flex-wrap:wrap; gap:10px; font-size:.8rem; color:rgba(255,255,255,.5);
}
@media (max-width:860px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer-grid{ grid-template-columns:1fr; } }

/* ================================================================
   MOTION & INTERACTION LAYER — scroll reveals, hover, tilt, glow
   ================================================================ */

/* ---- Scroll reveal base classes ---- */
.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .8s var(--ease), transform .8s var(--ease);
  will-change:opacity, transform;
}
.reveal.in-view{ opacity:1; transform:none; }

.reveal-zoom{ opacity:0; transform:scale(.92); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal-zoom.in-view{ opacity:1; transform:scale(1); }

.reveal-left{ opacity:0; transform:translateX(-40px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal-left.in-view{ opacity:1; transform:none; }

.reveal-right{ opacity:0; transform:translateX(40px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal-right.in-view{ opacity:1; transform:none; }

@media (prefers-reduced-motion:reduce){
  .reveal, .reveal-zoom, .reveal-left, .reveal-right{ opacity:1 !important; transform:none !important; transition:none !important; animation:none !important; }
}

/* ---- Scroll progress bar ---- */
.scroll-progress{
  position:fixed; top:0; left:0; height:3px; background:var(--grad-sun); z-index:300; width:0%;
  transition:width .12s linear;
}

/* ---- Header: scroll state + logo + nav underline ---- */
.site-header{ transition:box-shadow .35s var(--ease), background .35s var(--ease); }
.site-header.is-scrolled{ box-shadow:0 8px 26px rgba(15,36,48,.12); background:rgba(246,250,249,.97); }
.site-header.is-scrolled .nav-row{ padding-top:10px; padding-bottom:10px; }
.nav-row{ transition:padding .3s var(--ease); }
.brand-logo{ transition:transform .4s var(--ease); }
.brandmark:hover .brand-logo{ transform:scale(1.05) rotate(-1.5deg); }

.main-nav a{ position:relative; }
.main-nav a::after{
  content:""; position:absolute; left:14px; right:14px; bottom:6px; height:2px;
  background:var(--c-orange); border-radius:2px; transform:scaleX(0); transform-origin:left;
  transition:transform .3s var(--ease);
}
.main-nav a:hover::after{ transform:scaleX(1); }
.main-nav a.is-active::after{ display:none; }

.icon-btn{ transition:transform .3s var(--ease), background .3s var(--ease); }
.icon-btn:hover{ transform:translateY(-2px); background:var(--c-teal); color:#fff; }

/* ---- Buttons: shimmer + ripple ---- */
.btn{ position:relative; overflow:hidden; }
.btn .ripple{
  position:absolute; border-radius:50%; background:rgba(255,255,255,.55);
  transform:scale(0); animation:rippleGrow .6s ease-out forwards; pointer-events:none;
}
.btn-outline .ripple{ background:rgba(28,126,192,.25); }
.btn-ghost-white .ripple{ background:rgba(255,255,255,.35); }
@keyframes rippleGrow{ to{ transform:scale(2.6); opacity:0; } }

.btn-primary{
  background-image:var(--grad-sun); background-size:180% auto; background-position:left center;
  transition:background-position .5s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease);
}
.btn-primary:hover{ background-position:right center; }
.btn-primary:active{ transform:translateY(0) scale(.97); }
.btn-outline:active, .btn-ghost-white:active{ transform:scale(.97); }

/* ---- Universal card hover system (lift + tilt + shine) ---- */
.home-services__card,
.services-catalog__card,
.home-industries__card,
.about-values__card,
.plans-cards__card,
.contact-card,
.partner-journey__step{
  will-change:transform;
}

.card-shine{ --mx:50%; --my:50%; position:relative; isolation:isolate; }
.card-shine::before{
  content:""; position:absolute; inset:0; z-index:3; pointer-events:none; opacity:0; border-radius:inherit;
  background:radial-gradient(200px circle at var(--mx) var(--my), rgba(255,255,255,.4), transparent 62%);
  transition:opacity .3s var(--ease);
}
.card-shine:hover::before{ opacity:1; }

.services-catalog__card, .home-industries__card{
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.services-catalog__card:hover, .home-industries__card:hover{
  transform:translateY(-8px); box-shadow:var(--shadow-lift); border-color:var(--c-teal);
}
.home-services__card .thumb, .services-catalog__card .thumb, .home-industries__card .thumb{
  transition:transform .55s var(--ease);
}
.home-services__card:hover .thumb, .services-catalog__card:hover .thumb, .home-industries__card:hover .thumb{
  transform:scale(1.09);
}
.services-catalog__card h4, .home-industries__card h4{ transition:color .3s var(--ease); }
.services-catalog__card:hover h4, .home-industries__card:hover h4{ color:var(--c-teal); }

.about-values__card{
  position:relative; overflow:hidden;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-top-width .3s var(--ease);
}
.about-values__card::after{
  content:""; position:absolute; inset:0; opacity:0; transition:opacity .3s var(--ease);
  background:linear-gradient(180deg, rgba(24,150,144,.06), transparent 45%);
}
.about-values__card:hover{ transform:translateY(-10px) scale(1.015); box-shadow:var(--shadow-lift); }
.about-values__card:hover::after{ opacity:1; }
.about-values__card h4{ transition:color .3s var(--ease); }
.about-values__card:hover h4{ color:var(--c-teal); }

.contact-card{ transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease); }
.contact-card:hover{ transform:translateX(8px); box-shadow:var(--shadow-soft); border-color:var(--c-teal); }
.contact-card .ic{ transition:transform .4s var(--ease), background .4s var(--ease), color .4s var(--ease); }
.contact-card:hover .ic{ transform:scale(1.18) rotate(-10deg); background:var(--c-teal); color:#fff; }

.partner-journey__step{ transition:transform .3s var(--ease), box-shadow .3s var(--ease); }
.partner-journey__step:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lift); z-index:2; }
.partner-journey__step .n{ transition:color .3s var(--ease); }
.partner-journey__step:hover .n{ color:var(--c-orange); }

.home-why__item, .home-problems__item, .plans-includes__item{
  transition:transform .3s var(--ease), background .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.home-why__item:hover{ transform:translateY(-4px); background:rgba(255,255,255,.1); }
.home-why__item .check{ display:inline-block; transition:transform .3s var(--ease); }
.home-why__item:hover .check{ transform:scale(1.3) rotate(-6deg); }
.home-problems__item:hover{ transform:translateY(-4px); background:var(--c-paper-alt); }
.home-problems__item .mark{ display:inline-block; transition:transform .3s var(--ease); }
.home-problems__item:hover .mark{ transform:translateX(4px); }
.plans-includes__item:hover{ transform:translateY(-4px) scale(1.02); border-color:var(--c-teal); box-shadow:var(--shadow-soft); }

.about-approach__step{ transition:transform .3s var(--ease); }
.about-approach__step:hover{ transform:translateY(-6px); }
.about-approach__step .tag{ transition:color .3s var(--ease); }
.about-approach__step:hover .tag{ color:var(--c-orange); }

.partner-who__list li, .partner-why__list li{ transition:transform .25s var(--ease), padding-left .25s var(--ease); }
.partner-who__list li:hover, .partner-why__list li:hover{ transform:translateX(6px); padding-left:6px; }
.partner-who__list li .b, .partner-why__list li .b{ transition:transform .3s var(--ease); }
.partner-who__list li:hover .b, .partner-why__list li:hover .b{ transform:translateX(4px) scale(1.15); }

/* Plans featured card: breathing glow */
.plans-cards__card.featured{ animation:featuredGlow 3.4s ease-in-out infinite; }
@keyframes featuredGlow{
  0%,100%{ box-shadow:var(--shadow-lift); }
  50%{ box-shadow:0 24px 58px rgba(245,164,39,.3); }
}

/* Home hero readouts */
.home-hero__readout{ transition:transform .3s var(--ease), background .3s var(--ease); }
.home-hero__readout:hover{ transform:translateY(-3px); background:rgba(255,255,255,.18); }
.home-hero__readout:first-child b{ position:relative; }
.home-hero__readout:first-child b::after{
  content:""; position:absolute; right:-14px; top:50%; width:7px; height:7px; margin-top:-3.5px;
  border-radius:50%; background:var(--c-green); animation:pulseDot 1.8s infinite;
}
@keyframes pulseDot{
  0%{ box-shadow:0 0 0 0 rgba(72,187,110,.55); }
  70%{ box-shadow:0 0 0 9px rgba(72,187,110,0); }
  100%{ box-shadow:0 0 0 0 rgba(72,187,110,0); }
}

/* Hero slideshow: subtle Ken Burns zoom */
.hero-slide.is-active{ animation:kenBurns 5.6s var(--ease) forwards; }
@keyframes kenBurns{ from{ transform:scale(1); } to{ transform:scale(1.07); } }

/* Home hero text entrance stagger */
.home-hero__grid > div > *{ opacity:0; transform:translateY(20px); animation:heroIn .7s var(--ease) forwards; }
.home-hero__grid .eyebrow{ animation-delay:.05s; }
.home-hero__grid h1{ animation-delay:.16s; }
.home-hero__grid .home-hero__sub{ animation-delay:.3s; }
.home-hero__grid .home-hero__ctas{ animation-delay:.44s; }
.home-hero__grid .home-hero__readouts{ animation-delay:.58s; }
.home-hero__grid .hero-dots{ animation-delay:.7s; }
@keyframes heroIn{ to{ opacity:1; transform:none; } }

/* Hero CTA buttons extra hover pop */
.home-hero__ctas .btn:hover{ transform:translateY(-3px) scale(1.02); }

/* FAQ */
.home-faq__q{ transition:color .25s var(--ease); }
.home-faq__q:hover{ color:var(--c-teal); }
.home-faq__item{ transition:background .3s var(--ease), border-radius .3s var(--ease); }
.home-faq__item.open{ background:var(--c-paper-alt); border-radius:var(--radius-md); }

/* Footer links */
.footer-col a{ position:relative; display:inline-block; transition:color .25s var(--ease), transform .25s var(--ease); }
.footer-col a:hover{ transform:translateX(5px); color:#fff; }

/* Partner photo strip + about hero photo hover zoom */
.partner-photo-strip div, .about-hero__photo{ overflow:hidden; transition:box-shadow .3s var(--ease); }
.partner-photo-strip div::after{ content:none; }
.partner-photo-strip div{ background-size:cover; transition:transform .6s var(--ease); }
.partner-photo-strip div:hover{ transform:scale(1.04); }
.about-hero__photo{ transition:transform .5s var(--ease); }
.about-hero__photo:hover{ transform:scale(1.015); }

/* Sun badge hover nudge */
.sun-badge:hover .sun-spin{ animation-duration:6s; }

/* Section headings: gentle underline sweep on view */
.section-head h2{ position:relative; display:inline-block; }

/* Smooth focus for cards using tilt */
.tilt-active{ transition:transform .15s var(--ease); }
