:root{
  --c-primary:#F5A623;
  --c-primary-dark:#C77F0F;
  --c-primary-soft:#FFF4E0;
  --c-navy:#0F2A44;
  --c-navy-2:#143A5C;
  --c-navy-3:#1B4A73;
  --c-text:#111E2B;
  --c-muted:#5A6A7A;
  --c-surface:#FFFFFF;
  --c-surface-2:#F6F8FB;
  --c-surface-3:#EDF1F6;
  --c-border:#DCE4EC;
  --c-border-strong:#C2CCD8;
  --c-dark-bg:#0B1E33;
  --c-dark-surface:#122A44;
  --c-dark-text:#E8EEF5;
  --c-dark-muted:#93A4B8;
  --c-success:#1E8E5A;
  --c-error:#C0392B;
  --radius-sm:2px;
  --radius-md:3px;
  --radius-lg:5px;
  --radius-xl:8px;
  --container:1200px;
  --container-narrow:820px;
  --shadow-sm:0 1px 2px rgba(15,42,68,.06);
  --shadow-md:0 8px 24px rgba(15,42,68,.08);
  --shadow-lg:0 24px 60px rgba(15,42,68,.14);
  --ff:'Manrope',system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  --t:.25s ease;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--ff);
  font-size:16px;
  line-height:1.65;
  color:var(--c-text);
  background:var(--c-surface);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg{max-width:100%;display:block;height:auto}
a{color:var(--c-navy-3);text-decoration:none;transition:color var(--t)}
a:hover{color:var(--c-primary-dark)}
h1,h2,h3,h4,h5{line-height:1.2;margin:0 0 .5em;color:var(--c-navy);letter-spacing:-.01em}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.25em}
hr{border:0;border-top:1px solid var(--c-border);margin:2em 0}
button{font-family:inherit;font-size:inherit}

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

.skip-link{
  position:absolute;top:-100px;left:8px;z-index:200;
  background:var(--c-navy);color:#fff;padding:10px 16px;border-radius:0 0 var(--radius-md) var(--radius-md);
  font-weight:600;
}
.skip-link:focus{top:0;color:#fff}

.topbar{background:var(--c-navy);color:#fff;font-size:13.5px}
.topbar__inner{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:8px 20px;flex-wrap:wrap}
.topbar__items{display:flex;gap:22px;flex-wrap:wrap}
.topbar__item{display:inline-flex;align-items:center;gap:8px;color:#fff;opacity:.9}
.topbar__item:hover{color:var(--c-primary);opacity:1}
.topbar__item i{color:var(--c-primary)}
.topbar__item--muted{opacity:.75}
.topbar__cta{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--c-primary);color:var(--c-navy);
  padding:6px 14px;border-radius:var(--radius-md);font-weight:700;
}
.topbar__cta:hover{background:#FFB93C;color:var(--c-navy)}
@media (max-width:720px){.topbar__item--muted{display:none}}

.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.98);
  border-bottom:1px solid var(--c-border);
  backdrop-filter:saturate(140%) blur(8px);
}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 20px}

.brand{display:flex;align-items:center;gap:14px;min-width:0}
.brand img{width:auto;height:auto;max-width:100%;max-height:64px}
.brand__text{display:flex;flex-direction:column;min-width:0}
.brand__name{font-weight:800;color:var(--c-navy);font-size:16px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand__sub{font-size:11.5px;color:var(--c-muted);letter-spacing:.14em;text-transform:uppercase;font-weight:600}

.nav-toggle{
  display:none;background:transparent;border:1px solid var(--c-border);
  border-radius:var(--radius-md);padding:10px 12px;cursor:pointer;
  align-items:center;gap:10px;color:var(--c-navy);font-weight:600;
}
.nav-toggle__bars{display:inline-flex;flex-direction:column;gap:4px}
.nav-toggle__bars span{display:block;width:22px;height:2px;background:var(--c-navy);border-radius:2px}
.nav-toggle__label{font-size:13px}

.primary-nav{display:flex;align-items:center;gap:26px}
.primary-nav__list{display:flex;list-style:none;margin:0;padding:0;gap:4px}
.primary-nav__link{
  display:inline-block;padding:10px 14px;border-radius:var(--radius-md);
  color:var(--c-text);font-weight:600;font-size:15px;
}
.primary-nav__link:hover{background:var(--c-surface-2);color:var(--c-navy)}
.primary-nav__link.is-active{color:var(--c-navy);background:var(--c-primary-soft)}

.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:12px 20px;border-radius:var(--radius-md);
  font-weight:700;font-size:15px;line-height:1;cursor:pointer;
  border:1px solid transparent;transition:all var(--t);
  text-align:center;justify-content:center;
}
.btn i{font-size:14px}
.btn--primary{background:var(--c-primary);color:var(--c-navy);border-color:var(--c-primary)}
.btn--primary:hover{background:var(--c-primary-dark);border-color:var(--c-primary-dark);color:#fff}
.btn--dark{background:var(--c-navy);color:#fff;border-color:var(--c-navy)}
.btn--dark:hover{background:var(--c-navy-3);border-color:var(--c-navy-3);color:#fff}
.btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn--ghost:hover{background:rgba(255,255,255,.14);color:#fff;border-color:#fff}
.btn--lg{padding:14px 24px;font-size:16px}
.primary-nav__cta{padding:10px 18px;font-size:14px}

@media (max-width:980px){
  .nav-toggle{display:inline-flex}
  .primary-nav{
    position:fixed;inset:auto 0 0 auto;
    top:0;right:0;height:100vh;width:min(88vw,360px);
    background:#fff;flex-direction:column;align-items:stretch;
    padding:90px 24px 40px;gap:8px;
    transform:translateX(105%);transition:transform .3s ease;
    box-shadow:-20px 0 60px rgba(15,42,68,.14);
    overflow-y:auto;
  }
  .primary-nav.is-open{transform:translateX(0)}
  .primary-nav__list{flex-direction:column;gap:2px}
  .primary-nav__link{display:block;padding:14px 12px;font-size:16px}
  .primary-nav__cta{margin-top:16px;padding:14px 18px;font-size:15px;justify-content:center}
}

.hero{
  position:relative;min-height:min(90vh,760px);
  display:flex;align-items:center;
  overflow:hidden;background:var(--c-navy);color:#fff;
  padding:80px 0 100px;
}
.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.6s ease;
}
.hero__slide.is-active{opacity:1}
.hero__overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(11,30,51,.88) 0%,rgba(11,30,51,.68) 45%,rgba(11,30,51,.35) 100%);
}
.hero__inner{position:relative;z-index:2}
.hero__content{max-width:660px}
.hero__eyebrow{
  display:inline-block;font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--c-primary);font-weight:700;margin:0 0 18px;
  padding:8px 14px;border:1px solid rgba(245,166,35,.35);border-radius:var(--radius-md);
  background:rgba(245,166,35,.08);
}
.hero__title{
  font-size:clamp(2rem,5vw,3.9rem);line-height:1.05;color:#fff;
  margin:0 0 22px;font-weight:800;letter-spacing:-.02em;
}
.hero__text{font-size:clamp(1rem,1.4vw,1.2rem);color:rgba(255,255,255,.88);max-width:560px;margin:0 0 32px}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:36px}
.hero__facts{list-style:none;margin:0;padding:0;display:flex;gap:26px;flex-wrap:wrap;font-size:14px;color:rgba(255,255,255,.78)}
.hero__facts li{display:flex;align-items:center;gap:8px}
.hero__facts i{color:var(--c-primary)}
.hero__dots{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:3;display:flex;gap:10px}
.hero__dots button{
  width:34px;height:3px;background:rgba(255,255,255,.35);border:0;border-radius:2px;
  padding:0;cursor:pointer;transition:background var(--t);
}
.hero__dots button.is-active{background:var(--c-primary)}

@media (min-width:769px){
  .hero__inner{margin-inline-start:0;padding-inline-start:10px}
}
@media (max-width:640px){
  .hero{min-height:auto;padding:64px 0 80px}
  .hero__actions{flex-direction:column;align-items:flex-start}
  .hero__actions .btn{width:100%}
}

.marquee{
  background:var(--c-navy-2);color:#fff;overflow:hidden;
  padding:14px 0;border-top:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.marquee__track{display:flex;gap:60px;animation:marquee 48s linear infinite;white-space:nowrap;width:max-content}
.marquee__list{list-style:none;margin:0;padding:0;display:flex;gap:60px}
.marquee__item{display:inline-flex;align-items:center;gap:12px;font-size:14px;font-weight:600;letter-spacing:.02em;opacity:.9}
.marquee__dot{width:6px;height:6px;border-radius:50%;background:var(--c-primary)}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.section{padding:88px 0;position:relative}
.section--alt{background:var(--c-surface-2)}
.section--dark{background:var(--c-dark-bg);color:var(--c-dark-text)}
.section--dark h1,.section--dark h2,.section--dark h3{color:#fff}
.section--dark .section__title{color:#fff}

.section__head{max-width:760px;margin:0 auto 56px;text-align:center}
.section__head--left{margin-left:0;text-align:left}
.section__title{font-size:clamp(1.6rem,3vw,2.4rem);margin:0 0 12px;font-weight:800}
.section__lead{color:var(--c-muted);font-size:17px;margin:0}
.section__foot{margin-top:48px;text-align:center}

.eyebrow{
  display:inline-block;font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--c-primary-dark);font-weight:700;margin:0 0 14px;
}
.eyebrow--light{color:var(--c-primary)}

/* ============ INTRO / WHO WE ARE ============ */
.section--intro{background:#fff;padding:104px 0}
.intro__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:84px;align-items:center}
.intro__title{
  font-size:clamp(1.75rem,3.4vw,2.6rem);
  margin:0 0 22px;font-weight:800;letter-spacing:-.02em;
  line-height:1.15;color:var(--c-navy);
}
.intro__lede{
  font-size:17.5px;color:var(--c-text);margin:0 0 18px;line-height:1.6;
}
.intro__body{color:var(--c-muted);font-size:16.5px;margin:0 0 26px}
.intro__points{
  list-style:none;padding:0;margin:0 0 34px;
  display:grid;grid-template-columns:1fr 1fr;gap:14px 22px;
}
.intro__points li{
  display:flex;align-items:center;gap:12px;
  font-size:14.5px;color:var(--c-text);font-weight:600;
}
.intro__points i{
  display:grid;place-items:center;flex:none;
  width:22px;height:22px;border-radius:var(--radius-sm);
  background:var(--c-primary-soft);color:var(--c-primary-dark);
  font-size:10px;
}
.intro__media{position:relative}
.intro__media-frame{
  position:relative;overflow:hidden;border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);background:var(--c-surface-3);
}
.intro__media-frame::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,transparent 55%,rgba(11,30,51,.32));
  pointer-events:none;
}
.intro__media-frame img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.intro__badge{
  position:absolute;left:-28px;bottom:36px;z-index:2;
  background:var(--c-primary);color:var(--c-navy);
  padding:20px 24px 18px;border-radius:var(--radius-lg);
  box-shadow:0 18px 40px rgba(245,166,35,.32);
  display:flex;flex-direction:column;gap:2px;
  min-width:158px;
}
.intro__badge i{font-size:20px;margin-bottom:8px}
.intro__badge-num{font-size:26px;font-weight:800;line-height:1;letter-spacing:-.01em}
.intro__badge-lbl{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;opacity:.72}

@media (max-width:900px){
  .section--intro{padding:80px 0}
  .intro__grid{grid-template-columns:1fr;gap:60px}
  .intro__media{max-width:520px;margin:0 auto;width:100%}
  .intro__badge{left:-12px;bottom:24px}
}
@media (max-width:520px){
  .intro__points{grid-template-columns:1fr}
  .intro__badge{left:14px;bottom:14px;padding:14px 18px;min-width:auto}
  .intro__badge-num{font-size:22px}
}

.section--stats{background:var(--c-dark-bg);color:#fff;padding:64px 0}
.stats__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;text-align:center}
.stat__num{display:block;font-size:clamp(2rem,4vw,3rem);font-weight:800;color:var(--c-primary);letter-spacing:-.02em;line-height:1}
.stat__label{display:block;margin-top:10px;color:var(--c-dark-muted);font-size:14px;letter-spacing:.04em}
@media (max-width:760px){.stats__grid{grid-template-columns:1fr 1fr;gap:32px 16px}}

.services__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
@media (max-width:960px){.services__grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.services__grid{grid-template-columns:1fr}}

.service-card{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-lg);
  overflow:hidden;display:flex;flex-direction:column;transition:all var(--t);
}
.service-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--c-border-strong)}
.service-card__media{position:relative;aspect-ratio:16/10;background:var(--c-surface-3)}
.service-card__media img{width:100%;height:100%;object-fit:cover;border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);transition:transform .5s ease}
.service-card:hover .service-card__media img{transform:scale(1.04)}
.service-card__icon{position:absolute;bottom:-22px;left:24px;z-index:3;width:52px;height:52px;border-radius:var(--radius-md);background:var(--c-primary);color:var(--c-navy);display:grid;place-items:center;font-size:20px;box-shadow:0 10px 24px rgba(245,166,35,.35)}
.service-card__body{padding:36px 26px 26px;display:flex;flex-direction:column;flex:1;position:relative;z-index:1}
.service-card__eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--c-primary-dark);font-weight:700;margin:0 0 8px}
.service-card__title{font-size:19px;margin:0 0 10px;font-weight:700}
.service-card__text{color:var(--c-muted);font-size:15px;margin:0 0 20px;flex:1}
.service-card__link{
  display:inline-flex;align-items:center;gap:8px;
  font-weight:700;color:var(--c-navy);font-size:14.5px;
}
.service-card__link:hover{color:var(--c-primary-dark)}
.service-card__link i{transition:transform var(--t)}
.service-card__link:hover i{transform:translateX(4px)}

.why__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media (max-width:960px){.why__grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.why__grid{grid-template-columns:1fr}}
.why__card{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-lg);
  padding:32px 24px;text-align:left;transition:all var(--t);
}
.why__card:hover{border-color:var(--c-primary);box-shadow:var(--shadow-md)}
.why__card i{
  display:inline-grid;place-items:center;
  width:52px;height:52px;border-radius:var(--radius-md);
  background:var(--c-primary-soft);color:var(--c-primary-dark);
  font-size:22px;margin-bottom:18px;
}
.why__card h3{font-size:17px;margin:0 0 8px}
.why__card p{color:var(--c-muted);font-size:14.5px;margin:0}

.projects__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:840px){.projects__grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.projects__grid{grid-template-columns:1fr}}

.tile{
  position:relative;aspect-ratio:1/1;border-radius:var(--radius-lg);
  overflow:hidden;margin:0;background:var(--c-navy);
}
.tile__bg{
  position:absolute;inset:0;
  background:linear-gradient(135deg,var(--c-navy) 0%,var(--c-navy-3) 100%);
  z-index:0;
}
.tile__img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  z-index:1;transition:transform .6s ease;
}
.tile:hover .tile__img{transform:scale(1.05)}

.articles__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
@media (max-width:960px){.articles__grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.articles__grid{grid-template-columns:1fr}}

.article-card{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-lg);
  overflow:hidden;display:flex;flex-direction:column;transition:all var(--t);
}
.article-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.article-card__media{position:relative;display:block;aspect-ratio:16/10;background:var(--c-surface-3);overflow:hidden}
.article-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.article-card:hover .article-card__media img{transform:scale(1.04)}
.article-card__cat{
  position:absolute;top:14px;left:14px;
  background:var(--c-primary);color:var(--c-navy);
  padding:5px 12px;border-radius:var(--radius-sm);font-size:11.5px;font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;
}
.article-card__body{padding:26px;display:flex;flex-direction:column;flex:1}
.article-card__meta{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--c-muted);font-weight:700;margin:0 0 10px}
.article-card__title{font-size:18px;margin:0 0 12px;font-weight:700;line-height:1.35}
.article-card__title a{color:var(--c-navy)}
.article-card__title a:hover{color:var(--c-primary-dark)}
.article-card__excerpt{color:var(--c-muted);font-size:14.5px;margin:0 0 18px;flex:1}
.article-card__link{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--c-navy);font-size:14px}
.article-card__link:hover{color:var(--c-primary-dark)}

.section--faq{background:var(--c-surface-2)}
.faq{max-width:840px;margin:0 auto;display:flex;flex-direction:column;gap:10px}
.faq__item{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-md);
  padding:0;overflow:hidden;
}
.faq__item[open]{border-color:var(--c-primary);box-shadow:var(--shadow-sm)}
.faq__q{
  list-style:none;cursor:pointer;
  padding:20px 22px;font-weight:700;font-size:16px;color:var(--c-navy);
  display:flex;justify-content:space-between;align-items:center;gap:16px;
}
.faq__q::-webkit-details-marker{display:none}
.faq__icon{color:var(--c-primary-dark);transition:transform var(--t);font-size:14px}
.faq__item[open] .faq__icon{transform:rotate(45deg)}
.faq__a{padding:0 22px 22px;color:var(--c-muted);font-size:15px}
.faq__a p{margin:0}

.cta-band{background:var(--c-dark-bg);color:#fff;padding:72px 0}
.cta-band__inner{display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap}
.cta-band__title{font-size:clamp(1.5rem,2.6vw,2rem);color:#fff;margin:0 0 8px;font-weight:800;max-width:560px}
.cta-band__sub{color:var(--c-dark-muted);margin:0;max-width:560px;font-size:16px}
.cta-band__actions{display:flex;gap:14px;flex-wrap:wrap}

.page-hero{position:relative;min-height:340px;display:flex;align-items:center;color:#fff;overflow:hidden;padding:80px 0}
.page-hero__bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}
.page-hero__overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(11,30,51,.85),rgba(11,30,51,.55))}
.page-hero__inner{position:relative;z-index:2}
.page-hero__title{font-size:clamp(2rem,4vw,3rem);color:#fff;margin:0 0 12px;font-weight:800;letter-spacing:-.02em}
.page-hero__text{color:rgba(255,255,255,.85);max-width:640px;font-size:17px;margin:0}
.page-hero--404{min-height:280px;background:var(--c-dark-bg)}
.page-hero--404 .page-hero__overlay{background:linear-gradient(135deg,var(--c-navy),var(--c-navy-3))}

.breadcrumbs{background:var(--c-surface-2);border-bottom:1px solid var(--c-border);padding:12px 0;font-size:13.5px}
.breadcrumbs__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.breadcrumbs__item{display:inline-flex;align-items:center;gap:6px;color:var(--c-muted)}
.breadcrumbs__item a{color:var(--c-muted)}
.breadcrumbs__item a:hover{color:var(--c-primary-dark)}
.breadcrumbs__item span[aria-current]{color:var(--c-navy);font-weight:600}
.breadcrumbs__sep{color:var(--c-border-strong)}

.prose{max-width:var(--container-narrow);margin:0 auto}
.prose--center{text-align:center}
.prose p{font-size:16.5px;color:var(--c-muted)}
.prose h2{margin-top:0}
.prose--center p{max-width:640px;margin-left:auto;margin-right:auto}

.error-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:28px}

.mv__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media (max-width:900px){.mv__grid{grid-template-columns:1fr}}
.mv__card{background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-lg);padding:32px 28px}
.mv__card i{
  display:inline-grid;place-items:center;width:54px;height:54px;border-radius:var(--radius-md);
  background:var(--c-primary-soft);color:var(--c-primary-dark);font-size:22px;margin-bottom:18px;
}
.mv__card h2{font-size:19px;margin:0 0 10px}
.mv__card p{color:var(--c-muted);margin:0}
.mv__list{padding-left:1em;color:var(--c-muted);margin:0}
.mv__list li{margin-bottom:6px}

.team__grid{display:grid;grid-template-columns:1fr;gap:32px}
.team__card{
  display:grid;grid-template-columns:260px 1fr;gap:34px;align-items:start;
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-lg);
  padding:32px;
}
@media (max-width:780px){.team__card{grid-template-columns:1fr;gap:22px}}
.team__media{border-radius:var(--radius-lg);overflow:hidden;background:var(--c-surface-3);aspect-ratio:1/1}
.team__media img{width:100%;height:100%;object-fit:cover}
.team__body h3{font-size:20px;margin:0 0 4px}
.team__role{color:var(--c-primary-dark);font-weight:700;font-size:13.5px;letter-spacing:.06em;text-transform:uppercase;margin:0 0 14px}
.team__body p{color:var(--c-muted);font-size:15.5px;margin:0 0 12px}

.service-group{margin-bottom:72px}
.service-group:last-child{margin-bottom:0}
.service-group__title{font-size:14px;letter-spacing:.22em;text-transform:uppercase;color:var(--c-primary-dark);font-weight:800;margin:0 0 32px;padding-bottom:14px;border-bottom:2px solid var(--c-primary)}
.service-group__list{display:flex;flex-direction:column;gap:32px}
.service-detail{
  display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-lg);
  padding:32px;scroll-margin-top:120px;
}
@media (max-width:900px){.service-detail{grid-template-columns:1fr;gap:24px;padding:24px}}
.service-detail__media{border-radius:var(--radius-md);overflow:hidden;background:var(--c-surface-3);aspect-ratio:4/3}
.service-detail__media img{width:100%;height:100%;object-fit:cover}
.service-detail__group{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--c-primary-dark);font-weight:700;margin:0 0 8px}
.service-detail__title{font-size:22px;margin:0 0 14px}
.service-detail__summary{color:var(--c-muted);font-size:15.5px;margin:0 0 18px}
.service-detail__list{list-style:none;margin:0 0 24px;padding:0;display:flex;flex-direction:column;gap:10px}
.service-detail__list li{display:flex;gap:12px;align-items:flex-start;font-size:15px;color:var(--c-text)}
.service-detail__list i{color:var(--c-primary-dark);margin-top:4px;font-size:13px}

.contact__grid{display:grid;grid-template-columns:1fr 1.15fr;gap:56px}
@media (max-width:900px){.contact__grid{grid-template-columns:1fr;gap:40px}}
.contact__list{list-style:none;padding:0;margin:28px 0 0;display:flex;flex-direction:column;gap:22px}
.contact__list li{display:flex;gap:16px;align-items:flex-start}
.contact__list i{
  flex:none;display:grid;place-items:center;
  width:44px;height:44px;border-radius:var(--radius-md);
  background:var(--c-primary-soft);color:var(--c-primary-dark);font-size:17px;
}
.contact__list strong{display:block;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--c-navy);margin-bottom:4px}
.contact__list span,.contact__list a{display:block;color:var(--c-muted);font-size:15px;line-height:1.5}
.contact__list a:hover{color:var(--c-primary-dark)}

.contact__form-wrap{background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-lg);padding:36px}
@media (max-width:600px){.contact__form-wrap{padding:24px}}
.contact-form{display:flex;flex-direction:column;gap:16px;margin-top:22px}
.field{display:flex;flex-direction:column;gap:8px}
.field label{font-weight:600;font-size:14px;color:var(--c-navy)}
.field__opt{font-weight:400;color:var(--c-muted);font-size:13px}
.field input,.field textarea{
  font-family:inherit;font-size:15px;
  padding:13px 14px;border-radius:var(--radius-md);
  border:1px solid var(--c-border-strong);background:#fff;
  transition:border var(--t),box-shadow var(--t);
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 4px rgba(245,166,35,.15)}
.field textarea{resize:vertical;min-height:130px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.contact-form__submit{margin-top:6px}
.contact-form__note{font-size:13.5px;color:var(--c-muted);margin:0}
.alert{border-radius:var(--radius-md);padding:14px 16px;font-size:14.5px;margin:14px 0}
.alert--success{background:#E8F5EE;color:var(--c-success);border:1px solid #B7E0C9}
.alert--error{background:#FBEEEC;color:var(--c-error);border:1px solid #EFC2BC}

.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:840px){.gallery{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.gallery{grid-template-columns:1fr}}
.gallery__item{margin:0;border-radius:var(--radius-md);overflow:hidden;background:var(--c-surface-3);aspect-ratio:4/3}
.gallery__item img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.gallery__item:hover img{transform:scale(1.05)}
.gallery__empty{text-align:center;color:var(--c-muted);padding:60px 0}
.gallery__empty code{background:var(--c-surface-2);padding:2px 6px;border-radius:var(--radius-sm)}

.article__header{padding:64px 0 44px;background:var(--c-surface-2);border-bottom:1px solid var(--c-border)}
.article__header-inner{max-width:var(--container-narrow)}
.article__meta{font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--c-primary-dark);font-weight:700;margin:0 0 16px}
.article__title{font-size:clamp(1.8rem,3.4vw,2.6rem);margin:0 0 18px;font-weight:800}
.article__lede{color:var(--c-muted);font-size:17px;margin:0}
.article__media{padding:0;margin:0 0 24px;background:var(--c-surface-3)}
.article__media .container{padding:0 20px}
.article__media img{width:100%;max-width:1100px;margin:0 auto;border-radius:0 0 var(--radius-lg) var(--radius-lg);aspect-ratio:16/9;object-fit:cover;display:block}
.article__body{max-width:var(--container-narrow);margin:0 auto;padding:48px 20px 72px}
.article__body p{font-size:17px;color:#2C3A4A;margin:0 0 1.2em}
.article__body h2{font-size:24px;margin:2em 0 .6em;color:var(--c-navy)}
.article__body h3{font-size:18px;margin:1.6em 0 .5em;color:var(--c-navy)}
.article__body ul,.article__body ol{color:#2C3A4A;font-size:16.5px;margin:0 0 1.4em;padding-left:1.4em}
.article__body li{margin-bottom:.5em}
.article__body strong{color:var(--c-navy)}
.article__cta{margin:44px 0;text-align:center}
.article__related{font-size:14.5px;color:var(--c-muted);border-top:1px solid var(--c-border);padding-top:24px;margin-top:36px}

.site-footer{background:var(--c-dark-bg);color:var(--c-dark-muted);padding:72px 0 24px;font-size:14.5px}
.site-footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:44px;margin-bottom:56px}
@media (max-width:900px){.site-footer__grid{grid-template-columns:1fr 1fr;gap:36px}}
@media (max-width:560px){.site-footer__grid{grid-template-columns:1fr}}
.brand--footer{color:#fff;margin-bottom:20px}
.brand--footer .brand__name{color:#fff}
.brand--footer .brand__sub{color:var(--c-dark-muted)}
.brand--footer img{max-height:56px}
.site-footer__blurb{color:var(--c-dark-muted);margin:0;font-size:14.5px;line-height:1.6}
.site-footer__heading{color:#fff;font-size:13px;letter-spacing:.18em;text-transform:uppercase;font-weight:800;margin:0 0 20px}
.site-footer__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.site-footer__list li{display:flex;gap:12px;align-items:flex-start;line-height:1.5}
.site-footer__list i{color:var(--c-primary);margin-top:5px;font-size:13px;width:14px;flex:none}
.site-footer__list a{color:var(--c-dark-muted)}
.site-footer__list a:hover{color:var(--c-primary)}
.site-footer__list--plain li{display:block}
.site-footer__list--hours li{justify-content:space-between;gap:12px}
.site-footer__list--hours strong{color:#fff;font-weight:600}
.site-footer__credit{
  border-top:1px solid rgba(255,255,255,.08);
  padding:22px 0;text-align:center;font-size:13.5px;color:var(--c-dark-muted);
}
.site-footer__credit a{color:var(--c-primary)}
.site-footer__base{
  border-top:1px solid rgba(255,255,255,.08);
  padding-top:20px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  font-size:13.5px;color:var(--c-dark-muted);
}
.site-footer__base p{margin:0}
.site-footer__legal a{color:var(--c-dark-muted);margin:0 4px}
.site-footer__legal a:hover{color:var(--c-primary)}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
  .marquee__track{animation:none}
  .hero__slide{transition:none}
}

/* Footer — Business Hours */
.site-footer__hours{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.site-footer__hours-row{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:10px}
.site-footer__hours-day{color:var(--c-dark-muted);font-size:13.5px;white-space:nowrap}
.site-footer__hours-dots{
  height:1px;align-self:center;margin-top:4px;
  background-image:radial-gradient(circle, rgba(255,255,255,.22) 1px, transparent 1.2px);
  background-size:6px 2px;
  background-repeat:repeat-x;
  background-position:center;
}
.site-footer__hours-time{color:#fff;font-weight:600;font-size:13.5px;white-space:nowrap;letter-spacing:.01em}

/* ============================================================
   MOBILE REPAIR LAYER — v1
   Fixes: horizontal overflow, oversized brand, tight spacing,
   long strings (emails/urls) breaking layouts on small screens.
   ============================================================ */

/* 1. Kill horizontal scroll at the source */
html { max-width: 100%; overflow-x: clip; }
body { max-width: 100%; overflow-x: clip; }
img, svg, video, iframe { max-width: 100%; }
*, *::before, *::after { min-width: 0; }
p, h1, h2, h3, h4, h5, li, a, td, th { overflow-wrap: break-word; }

/* 2. Container gutters tighten on small screens */
@media (max-width: 640px) {
  .container { padding-left: 16px; padding-right: 16px; }
}

/* 3. Header — brand shrinks and text truncates instead of pushing nav off */
@media (max-width: 980px) {
  .site-header__inner { gap: 12px; padding: 10px 16px; }
}
@media (max-width: 640px) {
  .brand { gap: 10px; min-width: 0; flex: 1 1 auto; }
  .brand img { max-height: 44px; width: auto; height: auto; }
  .brand__text { min-width: 0; max-width: 100%; }
  .brand__name {
    font-size: 14px;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 60vw;
  }
  .brand__sub { font-size: 10px; letter-spacing: .12em; }
  .nav-toggle { padding: 8px 10px; flex: 0 0 auto; }
  .nav-toggle__label { display: none; }
}
@media (max-width: 380px) {
  .brand img { max-height: 38px; }
  .brand__name { font-size: 13px; max-width: 52vw; }
  .brand__sub { display: none; }
}

/* 4. Topbar stacks and wraps cleanly */
@media (max-width: 720px) {
  .topbar__inner { padding: 8px 16px; gap: 10px; }
  .topbar__items { gap: 12px 16px; flex: 1 1 100%; }
  .topbar__item { font-size: 12.5px; }
  .topbar__cta { padding: 5px 12px; font-size: 12.5px; }
}
@media (max-width: 420px) {
  .topbar__items .topbar__item:nth-child(2) { display: none; }
}

/* 5. Hero — stop the fixed min-height forcing overflow on tiny screens */
@media (max-width: 640px) {
  .hero { min-height: auto; padding: 56px 0 72px; }
  .hero__title { font-size: clamp(1.65rem, 8vw, 2.2rem); line-height: 1.1; }
  .hero__text { font-size: 15.5px; }
  .hero__eyebrow { font-size: 11.5px; padding: 6px 10px; }
  .hero__facts { gap: 12px 18px; font-size: 13px; }
  .hero__dots { bottom: 14px; }
  .hero__actions .btn { width: 100%; }
}
@media (max-width: 380px) {
  .hero__title { font-size: 1.55rem; }
}

/* 6. Intro / Who-we-are section */
@media (max-width: 520px) {
  .section--intro { padding: 64px 0; }
  .intro__points { grid-template-columns: 1fr; gap: 10px; }
  .intro__badge {
    left: 12px; bottom: 12px;
    padding: 12px 16px; min-width: auto;
  }
  .intro__badge-num { font-size: 20px; }
  .intro__badge i { font-size: 16px; margin-bottom: 4px; }
  .intro__badge-lbl { font-size: 10.5px; }
}

/* 7. All sections: sane vertical rhythm on phones */
@media (max-width: 640px) {
  .section { padding: 56px 0; }
  .section__head { margin-bottom: 32px; }
  .section__title { font-size: clamp(1.35rem, 6vw, 1.75rem); }
  .section__lead { font-size: 15px; }
  .cta-band { padding: 48px 0; }
  .cta-band__actions { width: 100%; }
  .cta-band__actions .btn { width: 100%; justify-content: center; }
}

/* 8. Service cards stack; keep icon overlap correct */
@media (max-width: 620px) {
  .services__grid, .articles__grid, .why__grid, .mv__grid, .projects__grid, .gallery {
    grid-template-columns: 1fr;
  }
  .service-card__body { padding: 34px 20px 22px; }
  .service-card__title { font-size: 17.5px; }
}

/* 9. Stats grid — 2 columns, tight but readable */
@media (max-width: 480px) {
  .stats__grid { grid-template-columns: 1fr 1fr; gap: 24px 12px; }
  .stat__num { font-size: clamp(1.6rem, 8vw, 2rem); }
  .stat__label { font-size: 12.5px; }
}

/* 10. Projects grid tiles keep aspect ratio, no overflow */
@media (max-width: 520px) {
  .projects__grid { gap: 12px; }
  .tile { aspect-ratio: 4/3; }
}

/* 11. Page hero — reduce vertical whitespace and font on phones */
@media (max-width: 640px) {
  .page-hero { min-height: 220px; padding: 56px 0; }
  .page-hero__title { font-size: clamp(1.5rem, 7vw, 2rem); }
  .page-hero__text { font-size: 15px; }
}

/* 12. Breadcrumbs wrap */
.breadcrumbs__list { flex-wrap: wrap; row-gap: 2px; }
@media (max-width: 480px) {
  .breadcrumbs { font-size: 12.5px; padding: 10px 0; }
}

/* 13. Contact page */
@media (max-width: 640px) {
  .contact__grid { gap: 32px; }
  .contact__list li { gap: 12px; }
  .contact__list i { width: 38px; height: 38px; font-size: 15px; }
  .contact__form-wrap { padding: 20px; }
  .field input, .field textarea { font-size: 16px; } /* prevent iOS zoom */
}

/* 14. Service detail blocks */
@media (max-width: 900px) {
  .service-detail { padding: 22px; gap: 20px; }
}
@media (max-width: 640px) {
  .service-detail__title { font-size: 19px; }
  .service-group { margin-bottom: 48px; }
  .service-group__title { font-size: 12.5px; margin-bottom: 22px; }
}

/* 15. Team cards */
@media (max-width: 780px) {
  .team__card { padding: 22px; }
  .team__media { max-width: 220px; margin: 0 auto; }
}

/* 16. Article single page */
@media (max-width: 640px) {
  .article__header { padding: 44px 0 32px; }
  .article__title { font-size: clamp(1.4rem, 7vw, 1.85rem); }
  .article__lede { font-size: 15.5px; }
  .article__body { padding: 32px 16px 56px; }
  .article__body p { font-size: 16px; }
  .article__body h2 { font-size: 20px; }
  .article__body h3 { font-size: 17px; }
  .article__media img { aspect-ratio: 4/3; }
}

/* 17. Footer — stack, tame sizes, wrap long emails */
@media (max-width: 900px) {
  .site-footer__grid { grid-template-columns: 1fr 1fr; gap: 32px; }
}
@media (max-width: 640px) {
  .site-footer { padding: 56px 0 20px; }
  .site-footer__grid { grid-template-columns: 1fr; gap: 28px; margin-bottom: 40px; }
  .site-footer__list li { font-size: 14px; }
  .site-footer__list a, .site-footer__list span { word-break: break-word; }
  .site-footer__base { flex-direction: column; gap: 10px; text-align: left; }
  .site-footer__credit { font-size: 12.5px; line-height: 1.6; padding: 18px 0; }
}

/* 18. Footer hours — keep the grid simple on phones */
@media (max-width: 480px) {
  .site-footer__hours-row { grid-template-columns: 1fr auto; gap: 6px; }
  .site-footer__hours-dots { display: none; }
  .site-footer__hours-day { font-size: 13px; }
  .site-footer__hours-time { font-size: 13px; }
}

/* 19. Marquee — never spill */
.marquee { overflow: hidden; }

/* 20. Buttons — never overflow their containers */
.btn { max-width: 100%; }

/* 21. Forms — kill iOS zoom and 100% width */
input, textarea, select, button { font-size: 16px; max-width: 100%; }

/* 22. Prevent anchor-wrapped elements from blowing up columns */
a { overflow-wrap: break-word; }

/* 23. Gallery images */
@media (max-width: 480px) {
  .gallery__item { aspect-ratio: 1/1; }
}

/* 24. 404 / error actions stack */
@media (max-width: 520px) {
  .error-actions { flex-direction: column; align-items: stretch; }
  .error-actions .btn { width: 100%; }
}

/* ============================================================
   MOBILE REPAIR LAYER — v2
   Hide topbar on mobile, close button in nav, sticky-safe overflow
   ============================================================ */

/* Hide the top strip entirely on mobile */
@media (max-width: 980px) {
  .topbar { display: none; }
}

/* Sticky header — ensure it stays pinned */
.site-header { position: sticky; top: 0; z-index: 100; }

/* Close button inside mobile nav panel */
.primary-nav__close {
  display: none;
  position: absolute;
  top: 16px; right: 16px;
  width: 40px; height: 40px;
  border-radius: var(--radius-md);
  border: 1px solid var(--c-border);
  background: #fff;
  color: var(--c-navy);
  font-size: 18px;
  cursor: pointer;
  align-items: center; justify-content: center;
  transition: background var(--t), border-color var(--t);
}
.primary-nav__close:hover { background: var(--c-surface-2); border-color: var(--c-border-strong); }
.primary-nav__close i { pointer-events: none; }

@media (max-width: 980px) {
  .primary-nav__close { display: inline-flex; }
  .primary-nav { padding-top: 76px; }
}

/* ============================================================
   MOBILE REPAIR LAYER — v3
   Fixed header on mobile, marquee restored, scroll-lock safe
   ============================================================ */

/* Fixed header on mobile so it never leaves the viewport when
   the body is scroll-locked. Desktop keeps sticky. */
@media (max-width: 980px) {
  .site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 100; }
  body { padding-top: 66px; }
}
@media (max-width: 380px) {
  body { padding-top: 58px; }
}

/* Nav panel must sit above the fixed header */
@media (max-width: 980px) {
  .primary-nav { z-index: 120; }
  .primary-nav.is-open { z-index: 120; }
  .nav-toggle { position: relative; z-index: 130; }
}

/* Marquee — protect from word-break rules, tighten for mobile */
.marquee__item,
.marquee__item span,
.marquee__list,
.marquee__list li {
  word-break: normal;
  overflow-wrap: normal;
  white-space: nowrap;
}

@media (max-width: 640px) {
  .marquee { padding: 12px 0; }
  .marquee__track { gap: 32px; animation-duration: 32s; }
  .marquee__list { gap: 32px; }
  .marquee__item { font-size: 13px; gap: 8px; }
  .marquee__dot { width: 5px; height: 5px; }
}

/* ============================================================
   MOBILE REPAIR LAYER — v4
   Menu state: hide hamburger, show close. Marquee overflow fix.
   ============================================================ */

/* Hide hamburger when menu is open (both class-based and :has fallback) */
body.is-nav-open .nav-toggle { visibility: hidden; opacity: 0; pointer-events: none; }
.site-header:has(.primary-nav.is-open) .nav-toggle { visibility: hidden; opacity: 0; pointer-events: none; }

/* Close button positioning inside panel */
.primary-nav__close {
  display: none;
  position: absolute;
  top: 18px; right: 18px;
  width: 40px; height: 40px;
  border-radius: var(--radius-md);
  border: 1px solid var(--c-border);
  background: #fff;
  color: var(--c-navy);
  font-size: 18px;
  cursor: pointer;
  align-items: center; justify-content: center;
  transition: background var(--t), border-color var(--t);
  z-index: 130;
}
.primary-nav__close:hover { background: var(--c-surface-2); border-color: var(--c-border-strong); }
.primary-nav__close i { pointer-events: none; }
@media (max-width: 980px) {
  .primary-nav__close { display: inline-flex; }
}

/* Marquee — ensure track is never clamped and animation always runs */
.marquee { overflow: hidden; }
.marquee__track {
  width: max-content !important;
  max-width: none !important;
  display: flex;
  gap: 60px;
  animation: marquee 48s linear infinite;
  white-space: nowrap;
}
.marquee__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 60px; }
.marquee__item {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}

@media (max-width: 640px) {
  .marquee { padding: 12px 0; }
  .marquee__track { gap: 28px; animation-duration: 26s; }
  .marquee__list { gap: 28px; }
  .marquee__item { font-size: 13px; gap: 8px; }
  .marquee__dot { width: 5px; height: 5px; }
}
