/* =================== THEME =================== */
:root{
  --bg:#f7fafc;
  --panel:#ffffff;
  --ink:#0d1b22;
  --muted:#546e7a;
  --brand:#00FDFF;     /* cyan */
  --brand-d:#10A8A9;   /* teal */
  --brand-deep:#0B1579;/* ocean blue */

  --line:#e3edf2;
}
.section-alt{
  background:
    linear-gradient(180deg, rgba(11,21,121,.06), rgba(16,168,169,.06));
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

/* =================== GLOBAL =================== */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font:16px/1.55 Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--ink);
  background:var(--bg);
}
h1,h2,h3{margin:0 0 .4rem}
h2{font-size:clamp(22px,3.4vw,32px)}
a{color:inherit}

/* containers */
.container{ max-width:1100px; margin:0 auto; padding:0 20px; }
.container.narrow{ max-width:780px; }
.pad-y{ padding:72px 0; }

/* buttons */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 16px; border-radius:14px; text-decoration:none;
  border:1px solid var(--line); background:#fff; color:var(--ink)
}
.btn-primary{ background:linear-gradient(135deg, var(--brand), var(--brand-d)); color:#002024; border-color:transparent; font-weight:600 }
.btn-ghost{ background:#fff }
.btn:hover{ transform:translateY(-1px) }

/* =================== NAV =================== */
.nav{
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:14px 20px;
  background:rgba(255,255,255,.92); backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--line);
}
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; padding:2px 0; }
.brand-word{ display:block; height:104px; width:auto; max-width:720px; } /* bigger logo */
.nav-links{ display:flex; gap:22px }
.nav a{ color:var(--muted); text-decoration:none }
.nav a:hover{ color:var(--ink) }
.nav-toggle{ display:none; background:none; border:1px solid var(--line); color:var(--ink); padding:6px 10px; border-radius:8px }

@media (max-width:760px){
  .brand-word{ height:32px; }
  .nav-links{ display:none }
  .nav-toggle{ display:inline-block }
  .nav.open .nav-links{
    display:flex; position:absolute; top:56px; right:14px;
    background:var(--panel); border:1px solid var(--line);
    border-radius:12px; padding:10px 12px; flex-direction:column;
  }
}

@media (max-width:768px){
  body{ font-size:15px; }
  .nav{ flex-wrap:wrap; }
  .footer-inner,
  .nav{ align-items:flex-start; gap:12px; flex-direction:column; }
  .footer-nav ul{ justify-content:flex-start; flex-wrap:wrap; }
  .contact-section{ padding:60px 0; }
  .contact-card{ padding:28px 22px; }
  .contact-form{ grid-template-columns:1fr; }
  .site-footer{ padding:20px 20px; }
}

/* =================== HERO =================== */
.hero{ background:linear-gradient(180deg,#ffffff,#f4fbfc); border-bottom:1px solid var(--line); }
.hero-inner{ padding:84px 0 24px; }
.hero h1{ font-size:clamp(28px,5vw,44px); line-height:1.1; }
.sub{ color:#49626d; max-width:820px; margin:10px 0 18px; }
.cta-row{ display:flex; gap:12px; flex-wrap:wrap }

/* =================== PAGE TITLES & INTRO =================== */
.page-intro{ max-width:760px; color:#2b4953; }

/* =================== CAROUSEL =================== */
.carousel{
  position:relative; margin:18px auto 24px; max-width:1100px;
  border-radius:18px; overflow:hidden; border:1px solid var(--line); background:#000;
}

/* NEW — reset default <figure> margins so each slide is exactly 100% wide */
.carousel figure,
.slide { margin:0; }            /* ← add this line */

.car-track{ display:flex; transition:transform .6s ease; will-change:transform; }
.slide{ flex:0 0 100%; min-width:100%; position:relative; aspect-ratio:16/9; background:#000; }
.slide img{ width:100%; height:100%; object-fit:cover; }
.slide figcaption{
  position:absolute; left:16px; right:16px; bottom:16px;
  background:rgba(0,0,0,.52); color:#f2fbfd; border-radius:12px; padding:10px 12px; font-size:14px;
}
.slide figcaption strong{ display:block; font-size:16px; margin-bottom:2px; }

.car-btn{
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(255,255,255,.9); color:#0d1b22; border:1px solid var(--line);
  padding:8px 12px; border-radius:12px;
}
.prev{ left:10px } .next{ right:10px }

/* =================== WHAT WE DO =================== */
.grid{ display:grid; gap:16px; }
.cards{ grid-template-columns:repeat(4,1fr); }
@media (max-width:1024px){ .cards{ grid-template-columns:repeat(2,1fr) } }
@media (max-width:560px){ .cards{ grid-template-columns:1fr } }

.card{
  display:grid;
  grid-template-rows: auto auto 1fr auto auto;  /* icon | title | list (flex) | outcome | CTA */
  gap:8px;
  background:var(--panel); border:1px solid var(--line); border-top:3px solid var(--brand);
  padding:18px; border-radius:16px; text-decoration:none; color:inherit;
  box-shadow:0 1px 0 rgba(0,0,0,.02);
}
.card:hover{ box-shadow:0 8px 24px rgba(0,0,0,.08) }
.card h3{ margin:4px 0 2px; font-size:18px; align-self:start }
.mini{ margin:2px 0 6px 0; padding-left:0 }
.mini li{ list-style:none; position:relative; padding-left:18px; margin:4px 0; color:#2b4953; }
.mini li::before{ content:""; position:absolute; left:0; top:.6em; width:8px; height:8px; border-radius:50%; background:var(--brand); }
.outcome{ color:#2b4953; margin:6px 0 0; align-self:end }
.card-cta{ margin-top:0; align-self:end; color:#2b4953; font-weight:700 } /* bolded */
.card-icon{
  width:40px; height:40px; border-radius:12px; display:grid; place-items:center;
  background:rgba(0,253,255,.12); color:#10A8A9;  /* uses new brand colors */
}

.mini{ margin:2px 0 6px 0; padding-left:0 }
.mini li{
  list-style:none; position:relative; padding-left:18px; margin:4px 0; color:#2b4953;
}
.mini li::before{
  content:""; position:absolute; left:0; top:.6em; width:8px; height:8px;
  border-radius:50%; background:var(--brand);
}
.outcome{ color:#2b4953; margin:6px 0 0 }
.card-cta{ margin-top:auto; color:#2b4953 }

/* =================== SERVICES =================== */
.service-block{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px 24px; box-shadow:0 4px 16px rgba(0,0,0,.04); }
.service-block + .service-block{ margin-top:22px; }
.service-block h2{ margin-bottom:10px; font-size:22px; }
.service-block h4{ margin:12px 0 6px; color:#0d1b22; font-size:17px; }
.service-block ul{ margin:0 0 4px 18px; color:#2b4953; }
.note{ margin-top:18px; padding:12px 14px; background:#eef6fb; border:1px solid #d6e6f0; border-radius:12px; color:#2b4953; }

/* =================== CONTACT =================== */
.contact-section{ padding:80px 0; }
.contact-card{
  max-width:720px;
  margin:0 auto;
  padding:40px;
  background:#fff;
  border-radius:18px;
  border:1px solid #e6eef3;
  box-shadow:0 12px 40px rgba(0,0,0,.06);
}
.contact-card h1,
.contact-card h2{ text-align:center; margin-bottom:10px; }
.contact-card .lead{ color:#2b4953; text-align:center; margin:0 0 24px; }
.contact-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
.contact-form .full{ grid-column:1/-1; }
.contact-form label{ display:block; font-size:15px; color:#222; margin-bottom:6px; }
.contact-form input,
.contact-form textarea{
  width:100%;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid #d5dde3;
  font:inherit;
  color:#111;
  background:#fff;
}
.contact-form textarea{ min-height:140px; resize:vertical; }
.contact-form .btn{ justify-self:flex-start; border-radius:999px; padding:12px 22px; font-weight:700; }
.privacy-note{
  grid-column:1/-1;
  margin:6px 0 0;
  font-size:13px;
  color:#5a6a73;
}
.alt-contact{ margin-top:18px; color:#2b4953; }

/* =================== FOOTER =================== */
.site-footer{ background:#ffffff; border-top:1px solid #e5e5e5; padding:24px 24px; margin-top:60px; }
.footer-inner{
  max-width:1100px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.footer-left{ display:flex; align-items:center; gap:12px; }
.footer-logo{ height:32px; width:auto; }
.footer-copy{ font-size:14px; color:#555; }
.footer-nav ul{
  display:flex; align-items:center; justify-content:flex-end;
  gap:20px;
  list-style:none; margin:0; padding:0;
}
.footer-nav a{ font-size:15px; color:#333; text-decoration:none; }
.footer-nav a:hover,
.footer-nav a:focus{ text-decoration:underline; }
