@font-face{font-family:"Bropella";src:url("../fonts/bropella.otf") format("opentype");font-display:swap}
@font-face{font-family:"Avo";src:url("../fonts/svn-avo.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Avo";src:url("../fonts/svn-avo-bold.ttf") format("truetype");font-weight:700;font-display:swap}

:root{
  --navy:#1e3a8a;
  --blue:#2453a8;
  --blue-2:#2b6cd2;
  --ink:#1b1f2a;
  --muted:#4a5468;
  --tint:#eaf2fc;
  --line:#d8e3f3;
  --grad:linear-gradient(90deg,#2a5fb4 0%,#21407f 100%);
  --grad-v:linear-gradient(180deg,#2a5fb4 0%,#1f3a7a 100%);
  --radius:28px;
  --max:1180px;
  --header-h:96px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Avo",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.65;font-size:17px}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,.display{font-family:"Bropella",Georgia,"Times New Roman",serif;color:var(--navy);font-weight:400;line-height:1.3;margin:0;letter-spacing:.2px}
p{margin:0 0 .6em}
.container{width:100%;max-width:var(--max);margin:0 auto;padding:0 24px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:#fff;box-shadow:0 1px 0 rgba(30,58,138,.06)}
.site-header .container{display:flex;align-items:center;justify-content:space-between;height:var(--header-h);max-width:1240px}
.brand img{height:62px;width:auto}
.nav{display:flex;align-items:center;gap:56px}
.nav-list{display:flex;gap:56px;list-style:none;margin:0;padding:0}
.nav-item{position:relative}
.nav-link{display:flex;align-items:center;gap:6px;font-weight:700;font-size:20px;color:var(--blue);padding:30px 0;cursor:pointer;background:none;border:0;font-family:inherit}
.nav-link svg{width:12px;height:12px;transition:transform .2s}
.nav-item:hover .nav-link svg,.nav-item.open .nav-link svg{transform:rotate(180deg)}
.dropdown{position:absolute;top:100%;left:-18px;min-width:280px;background:#fff;border-radius:16px;box-shadow:0 18px 40px rgba(30,58,138,.16);padding:10px;list-style:none;margin:0;opacity:0;visibility:hidden;transform:translateY(8px);transition:.2s}
.nav-item:hover .dropdown,.nav-item:focus-within .dropdown{opacity:1;visibility:visible;transform:none}
.dropdown a{display:block;padding:10px 14px;border-radius:10px;color:var(--navy);font-size:16px}
.dropdown a:hover,.dropdown a[aria-current="page"]{background:var(--tint);color:var(--blue)}
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--grad);color:#fff;font-weight:700;border-radius:999px;padding:12px 30px;font-size:17px;border:0;cursor:pointer;font-family:inherit;transition:filter .2s,transform .2s;box-shadow:0 6px 16px rgba(33,64,127,.25)}
.btn:hover{filter:brightness(1.12);transform:translateY(-1px)}
.btn svg{width:18px;height:18px}
.menu-toggle{display:none;background:none;border:0;padding:8px;cursor:pointer}
.menu-toggle span{display:block;width:40px;height:4px;border-radius:4px;background:var(--navy);margin:7px 0;transition:.25s}
.menu-open .menu-toggle span:nth-child(1){transform:translateY(11px) rotate(45deg)}
.menu-open .menu-toggle span:nth-child(2){opacity:0}
.menu-open .menu-toggle span:nth-child(3){transform:translateY(-11px) rotate(-45deg)}

/* ---------- Generic sections ---------- */
.section{padding:72px 0}
.section-title{text-align:center;font-size:44px;margin-bottom:44px}
.eyebrow{display:block;text-align:center;color:var(--blue);font-weight:700;font-size:22px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}
.lead{max-width:1000px;margin:0 auto;text-align:center;font-size:20px;color:var(--ink)}
.banner img{width:100%}
.prose{font-size:21px;line-height:1.95;max-width:1030px;margin:0 auto}
.prose p{margin:0 0 1.1em}

/* ---------- Home ---------- */
.hero-split{display:grid;grid-template-columns:1fr 1fr;background:var(--tint)}
.hero-split .text{padding:56px 52px 56px max(24px,calc((100vw - 1240px)/2 + 56px));align-self:center}
.hero-split h1{font-size:42px;line-height:1.55;margin-bottom:18px}
.hero-split p{font-size:19px;text-align:justify;line-height:1.75}
.hero-split .media img{width:100%;height:100%;object-fit:cover}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;max-width:1240px}
.card{background:var(--grad-v);border-radius:var(--radius);padding:20px 20px 26px;color:#fff;text-align:center;transition:transform .25s,box-shadow .25s;box-shadow:0 10px 26px rgba(30,58,138,.18)}
.card:hover{transform:translateY(-6px);box-shadow:0 18px 36px rgba(30,58,138,.28)}
.card img{width:100%;aspect-ratio:1.1/1;object-fit:cover;border-radius:22px}
.card h3{font-family:"Avo",sans-serif;font-weight:700;color:#fff;font-size:32px;letter-spacing:1px;margin:24px 0 6px;text-transform:uppercase}
.card .more{display:inline-flex;align-items:center;gap:22px;font-weight:700;font-size:19px;text-transform:uppercase}
.card .more svg{width:16px;height:16px;transition:transform .2s}
.card:hover .more svg{transform:translateX(5px)}

.stats{display:grid;grid-template-columns:repeat(4,1fr);max-width:1100px;margin:0 auto;padding:30px 24px}
.stat{text-align:center;padding:8px 10px}
.stat+.stat{border-left:3px solid var(--blue)}
.stat b{display:block;font-size:56px;line-height:1.1;color:var(--blue);font-weight:700;letter-spacing:-1px}
.stat span{display:block;color:var(--blue);font-weight:700;font-size:20px;line-height:1.4;margin-top:8px}

.feature{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.feature h2{font-size:44px;line-height:1.55;margin-bottom:10px}
.feature p{font-size:18px;line-height:2;color:var(--ink)}
.feature .btn{margin-top:22px}
.gallery-3{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gallery-3 img{width:100%;height:100%;object-fit:cover;border-radius:22px;aspect-ratio:1.45/1}
.gallery-3 img:first-child{grid-column:1/-1;aspect-ratio:1.5/1}
.feature .photo img{border-radius:22px;width:100%;aspect-ratio:1.22/1;object-fit:cover}

/* ---------- Timelines ---------- */
.timeline{max-width:1100px;margin:0 auto;position:relative}
.tl-row{display:grid;grid-template-columns:300px 1fr;gap:0;position:relative}
.tl-year{text-align:center;padding-top:30px}
.tl-year b{display:block;font-family:"Bropella",serif;font-weight:400;color:var(--navy);font-size:88px;line-height:1;background:linear-gradient(180deg,#2a5fb4,#1f3a7a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.tl-year span{display:block;color:var(--blue);font-weight:700;font-size:30px}
.tl-body{border-left:3px solid var(--blue);padding:28px 0 60px 68px;position:relative}
.tl-item{position:relative;margin-bottom:56px}
.tl-item:last-child{margin-bottom:0}
.tl-item::before{content:"";position:absolute;left:-90px;top:14px;width:44px;height:44px;border-radius:50%;background:var(--grad-v);box-shadow:0 4px 10px rgba(30,58,138,.25)}
.tl-item h3{font-size:38px;line-height:1.6;margin-bottom:10px}
.tl-item p{font-size:20px;line-height:1.55;margin:0}

.steps{max-width:1060px;margin:0 auto}
.step{display:grid;grid-template-columns:180px 1fr;position:relative}
.step-num{font-family:"Bropella",serif;font-size:88px;line-height:1;text-align:center;padding-top:4px;background:linear-gradient(180deg,#2a5fb4,#1f3a7a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.step-body{border-left:3px solid var(--blue);padding:0 0 70px 68px;position:relative;margin-left:30px}
.step:last-child .step-body{padding-bottom:10px}
.step:first-child .step-body{border-image:linear-gradient(transparent 30px,var(--blue) 30px) 1}
.step:last-child .step-body{border-image:linear-gradient(var(--blue) 30px,transparent 30px) 1}
.step-body::before{content:"";position:absolute;left:-24px;top:6px;width:44px;height:44px;border-radius:50%;background:var(--grad-v);box-shadow:0 4px 10px rgba(30,58,138,.25)}
.step-body h3{font-size:38px;line-height:1.55;margin-bottom:8px}
.step-body p{font-size:20px;line-height:1.55;margin:0}

.quote{max-width:1100px;margin:0 auto;text-align:center;color:var(--blue);font-weight:700;font-size:26px;line-height:1.7;padding:24px}
.tagline{text-align:center;color:var(--blue);font-weight:700;font-size:28px;text-transform:uppercase;padding:16px 24px 56px}

/* ---------- Service pages ---------- */
.svc{max-width:1030px;margin:0 auto}
.svc-block{padding:56px 0 12px}
.svc-block h2{font-size:48px;margin-bottom:18px}
.svc-block h2 small{font-size:inherit}
.svc-block .subhead{font-weight:700;font-size:22px;margin-bottom:6px}
.svc-block p{font-size:22px;line-height:1.95}
.infographic{max-width:1240px;margin:0 auto}
.infographic img{width:100%}

/* ---------- Facilities ---------- */
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;max-width:1030px;margin:0 auto}
.photo-grid img{width:100%;aspect-ratio:1.34/1;object-fit:cover;cursor:zoom-in;transition:transform .3s}
.photo-grid img:hover{transform:scale(1.02)}
.license{max-width:1030px;margin:0 auto}
.license img{width:100%;box-shadow:0 10px 30px rgba(0,0,0,.08);cursor:zoom-in}

/* ---------- Footer ---------- */
.site-footer{background:var(--grad);color:#fff;padding:56px 0 46px}
.site-footer .container{display:grid;grid-template-columns:1.35fr 1fr;gap:40px;max-width:1240px;align-items:end}
.footer-brand img{width:220px;margin:0 0 16px 8px}
.footer-brand p{font-size:15px;line-height:1.95;max-width:620px;margin:0}
.site-footer h4{font-family:"Avo",sans-serif;font-weight:700;font-size:30px;margin:0 0 10px}
.site-footer ul{list-style:none;margin:0 0 26px;padding:0}
.site-footer li{display:flex;gap:28px;font-size:18px;line-height:2.3}
.site-footer li::before{content:"-"}
.site-footer a:hover{text-decoration:underline}
.site-footer ul:last-child{margin-bottom:0}

/* ---------- Booking modal & lightbox ---------- */
.modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(14,26,58,.55);backdrop-filter:blur(3px)}
.modal.show{display:flex}
.modal-box{background:#fff;border-radius:24px;max-width:440px;width:100%;padding:34px 30px 30px;text-align:center;position:relative;box-shadow:0 30px 60px rgba(0,0,0,.25)}
.modal-box h3{font-size:32px;margin-bottom:8px}
.modal-box p{color:var(--muted);margin-bottom:22px}
.modal-actions{display:grid;gap:12px}
.modal-actions .btn{justify-content:center}
.btn-outline{background:#fff;color:var(--blue);border:2px solid var(--blue);box-shadow:none}
.modal-close{position:absolute;top:12px;right:14px;background:none;border:0;font-size:30px;line-height:1;color:var(--muted);cursor:pointer}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.85);display:none;align-items:center;justify-content:center;padding:20px;cursor:zoom-out}
.lightbox.show{display:flex}
.lightbox img{max-height:92vh;max-width:96vw;border-radius:8px}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .nav,.nav-list{gap:30px}
  .nav-link{font-size:18px}
  .brand img{height:52px}
  .card h3{font-size:26px}
  .stat b{font-size:44px}
}
@media (max-width:900px){
  :root{--header-h:72px}
  body{font-size:16px}
  .brand img{height:44px}
  .menu-toggle{display:block}
  .nav{position:fixed;top:var(--header-h);left:0;right:0;bottom:0;background:#fff;flex-direction:column;align-items:stretch;gap:0;padding:12px 24px 40px;overflow-y:auto;transform:translateX(100%);transition:transform .3s ease;visibility:hidden}
  .menu-open .nav{transform:none;visibility:visible}
  .menu-open{overflow:hidden}
  .nav-list{flex-direction:column;gap:0}
  .nav-item{border-bottom:1px solid var(--line)}
  .nav-link{width:100%;justify-content:space-between;padding:18px 0;font-size:19px}
  .nav-item:hover .nav-link svg{transform:none}
  .nav-item.open .nav-link svg{transform:rotate(180deg)}
  .dropdown{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;padding:0 0 12px;display:none;min-width:0}
  .nav-item.open .dropdown{display:block}
  .nav .btn{margin-top:24px;justify-content:center}

  .section{padding:48px 0}
  .section-title{font-size:32px;margin-bottom:28px}
  .hero-split{grid-template-columns:1fr}
  .hero-split .text{padding:28px 20px 24px}
  .hero-split h1{font-size:26px;text-align:center;line-height:1.4}
  .hero-split p{font-size:15px;line-height:1.6}
  .cards{grid-template-columns:1fr;gap:28px;max-width:480px}
  .stats{grid-template-columns:1fr 1fr;row-gap:22px}
  .stat:nth-child(3){border-left:0}
  .stat b{font-size:38px}
  .stat span{font-size:16px}
  .feature{grid-template-columns:1fr;gap:26px}
  .feature h2{font-size:30px;line-height:1.45}
  .feature p{font-size:16px;line-height:1.8}
  .feature.reverse .photo{order:2}
  .eyebrow{font-size:16px}
  .lead{font-size:15px}
  .tl-row{grid-template-columns:110px 1fr}
  .tl-year b{font-size:44px}
  .tl-year span{font-size:16px}
  .tl-body{padding:20px 0 40px 34px}
  .tl-item::before{left:-47px;width:24px;height:24px;top:8px}
  .tl-item h3{font-size:22px;line-height:1.5}
  .tl-item p{font-size:15px}
  .step{grid-template-columns:60px 1fr}
  .step-num{font-size:48px}
  .step-body{margin-left:10px;padding:0 0 40px 30px}
  .step-body::before{left:-13.5px;width:24px;height:24px;top:8px}
  .step:first-child .step-body{border-image:linear-gradient(transparent 16px,var(--blue) 16px) 1}
  .step:last-child .step-body{border-image:linear-gradient(var(--blue) 16px,transparent 16px) 1}
  .step-body h3{font-size:24px;line-height:1.45}
  .step-body p{font-size:15px}
  .quote{font-size:18px}
  .tagline{font-size:18px}
  .svc-block{padding:36px 0 8px}
  .svc-block h2{font-size:28px}
  .svc-block .subhead{font-size:17px}
  .svc-block p,.prose{font-size:16px;line-height:1.8}
  .photo-grid{grid-template-columns:1fr 1fr;gap:12px}
  .site-footer{padding:40px 0 34px}
  .site-footer .container{grid-template-columns:1fr;gap:28px}
  .footer-brand img{width:160px;margin-left:0}
  .site-footer h4{font-size:22px}
  .site-footer li{font-size:15px;gap:14px;line-height:2}
}
