
:root{
  --bg:#ffffff;
  --text:#0f172a;
  --muted:#64748b;
  --primary:#1e3a8a;
  --secondary:#1e3a8a;
  --card:#f1f5f9;
  --ring: rgba(14,165,233,.35);
  --radius:1.25rem;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--bg);line-height:1.65;}
h1,h2,h3{font-family:Poppins,Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.2;margin:0 0 .5rem}
h1{font-size:clamp(2rem,5vw,3rem)}
h2{font-size:clamp(1.5rem,3vw,2rem)}
h3{font-size:1.125rem}
p{margin:.5rem 0 1rem}
a{color:var(--primary);text-decoration:none}
img{max-width:100%;display:block;border-radius:calc(var(--radius) - .25rem)}
.container{max-width:1500px;margin:0 auto;padding:0 1rem}
.container2{max-width:1450px;margin:0 auto;padding:0 1rem}
.center{text-align:center}
.muted{color:var(--muted)}
.tiny{font-size:.85rem}
.pad{padding:3rem 0}
.pad-sm{padding:1rem 0}
.pad-hero{padding:4rem 0}
.grid-2{display:grid;grid-template-columns:1fr;gap:1.25rem}
.grid-3{display:grid;grid-template-columns:1fr;gap:10.25rem}
.v-center{align-items:center}
.gap-xl{gap:2rem}
.grid{display:grid;gap:1.25rem}
.grid.two{grid-template-columns:repeat(2, minmax(0,1fr))}
.grid.four{grid-template-columns:repeat(4, minmax(0,1fr))}
.grid.five{grid-template-columns:repeat(5, minmax(0,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:1.25rem;padding:1.2rem}
.card.emphasis{background:linear-gradient(180deg,#fff, #f8fbff)}
.feature{padding:1rem;border-radius:1rem;border:1px dashed var(--line);background:#fff}
.feature .icon{font-size:1.5rem}
@media(min-width:768px){.grid-2{grid-template-columns:1.1fr .9fr}.grid-3{grid-template-columns:1.2fr .8fr .8fr}}

.btn{display:inline-block;padding:.75rem 1rem;border-radius:999px;border:1px solid transparent;background:#e2e8f0;color:#111;font-weight:600;transition:.2s transform, .2s opacity, .2s box-shadow}
.btn2{display:inline-block;padding:.05rem 1rem;border-radius:999px;border:1px solid transparent;background:#e2e8f0;color:#111;font-weight:600;transition:.2s transform, .2s opacity, .2s box-shadow}
.btn:hover{transform:translateY(-1px)}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{box-shadow:0 10px 20px -10px var(--ring)}
.btn-secondary{background:var(--secondary);color:#fff}
.chip{border:1px solid #cbd5e1;background:#fff;border-radius:999px;padding:.5rem .8rem;margin:.25rem;cursor:pointer}
.chip.is-active{background:var(--secondary);border-color:var(--secondary);color:#fff}

.site-header{position:sticky;top:0;background:#fff;border-bottom:1px solid #e2e8f0;z-index:40}
.site-header .nav{display:flex;align-items:center;justify-content:space-between;padding: .75rem 2rem}
.logo{font-family:Poppins,Inter,sans-serif;color:var(--text)}
.site-header nav{display:inline;gap:.75rem;align-items:center}
.site-header nav a{padding:.6rem .75rem;border-radius: .5rem}
.nav-toggle{display:none}
.hamburger{display:none;font-size:1.5rem;cursor:pointer}
@media(max-width:840px){
  .site-header nav{position:absolute;inset:60px 0 auto 0;background:#fff;border-bottom:1px solid #e5e7eb;display:none;flex-direction:column;padding:2rem}
  .hamburger{display:block}
  .nav-toggle:checked ~ nav{display:flex}
}

.site-footer{background:#0b1220;color:#cbd5e1;margin-top:3rem;padding:2rem 0}
.site-footer h4{margin:5 0 .5rem;color:#fff}
.site-footer a{color:#cbd5e1}
.site-footer .muted{color:#94a3b8}
.background{background:linear-gradient(180deg,#1e3a8a,rgb(198, 232, 255))}
.card{background:var(--card);padding:1rem;border-radius:var(--radius);border:1px solid #e2e8f0}
.card-list{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(min-width:768px){.card-list{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.card-list{grid-template-columns:repeat(4,1fr)}}

.hero{position:relative}
.slider{position:relative;overflow:hidden;border-radius:var(--radius);}
.slide{position:relative;min-height:58vh;padding:5rem 1.25rem;display:none;align-items:center;background:linear-gradient(180deg,#1e3a8a,rgb(198, 232, 255)), var(--bg) center/cover no-repeat;border-radius:var(--radius)}
.slide::before{content:"";position:absolute;inset:0;background-image:var(--bg);background-size:cover;background-position:center;filter:brightness(.8);z-index:-2}
.slide.is-active{display:flex;animation:fade .6s ease both}
@keyframes fade{from{opacity:.2;transform:scale(.98)}to{opacity:1;transform:none}}
.slide-content{max-width:700px;color:#fff}
.slide .btn{margin-top:.5rem}

.slider-btn{position:absolute;top:50%;transform:translateY(-50%);border:none;background:rgba(255,255,255,.8);padding:.5rem .7rem;border-radius:999px;cursor:pointer}
.slider-btn:hover{background:#fff}
.slider-btn.prev{left:.5rem}
.slider-btn.next{right:.5rem}
.dots{position:absolute;bottom:.75rem;left:0;right:0;display:flex;justify-content:center;gap:.4rem}
.dots button{width:.55rem;height:.55rem;border-radius:999px;border:none;background:rgba(255,255,255,.7);cursor:pointer}
.dots button.is-active{background:#fff}

.tabs{display:flex;gap:.5rem;border-bottom:1px solid #e2e8f0;position:sticky;top:60px;background:#fff;padding:.5rem 0;z-index:10}
.tab{padding:.6rem .9rem;border:none;background:#f8fafc;border-radius:.75rem .75rem 0 0;font-weight:600;cursor:pointer}
.tab.is-active{background:#fff;border:1px solid #e5e7eb;border-bottom-color:#fff}
.tab-panels .panel{display:none;padding:1rem 0}
.tab-panels .panel.is-active{display:block;animation:fade .25s ease both}

details{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:.75rem;margin:.5rem 0}
summary{font-weight:600;cursor:pointer}

.filters{display:flex;flex-wrap:wrap;gap:.25rem;margin:1rem 0}
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(min-width:768px){.gallery{grid-template-columns:repeat(4,1fr)}}
.gallery .item{transition:.2s transform}
.gallery .item:hover{transform:translateY(-3px)}

.carousel{position:relative;max-width:800px;margin:1rem auto}
.carousel .quote{display:none}
.carousel .quote.is-active{display:block}
.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);border:none;background:#e2e8f0;padding:.5rem .7rem;border-radius:999px;cursor:pointer}
.carousel-btn.prev{left:-.5rem}
.carousel-btn.next{right:-.5rem}

.contact-form{display:grid;gap:1rem}
.contact-form label{display:grid;gap:.35rem;font-weight:600}
.contact-form input,.contact-form textarea,.contact-form select{padding:.7rem;border-radius:.6rem;border:1px solid #cbd5e1;font:inherit}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{outline:none;box-shadow:0 0 0 .25rem var(--ring);border-color:var(--secondary)}
.actions{display:flex;gap:.5rem;flex-wrap:wrap}
.map{margin-top:2rem;overflow:hidden}

ul.bullets{padding-left:1.1rem}
ul.bullets li{margin:.35rem 0}
ul.checklist{list-style:none;padding:0}
ul.checklist li{margin:.4rem 0;padding-left:1.6rem;position:relative}
ul.checklist li::before{content:"✔";position:absolute;left:.4rem;color:var(--secondary);font-weight:700}

@media (max-width: 900px) {
  nav ul { display: flex; flex-wrap: wrap; gap: 8px; padding-left: 0; }
  nav li { list-style: none; }
}
@media (max-width: 720px) {
  nav ul { flex-direction: column; align-items: flex-start; }
}

/* Generic grid helpers (non-destructive; only apply if these classes exist) */
@media (max-width: 1024px) {
  .grid-4, .grid-3, .grid-2, .cols-4, .cols-3, .cols-2 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: clamp(12px, 2.5vw, 24px);
  }
}
@media (max-width: 768px) {
  .row, .columns, .grid, .flex-row {
    display: flex;
    flex-wrap: wrap;
    gap: clamp(10px, 2vw, 20px);
  }
  .column, .col, [class*="col-"] { flex: 1 1 300px; min-width: min(100%, 300px); }
}

/* Hero banners scale content nicely */
.hero, .banner, .masthead {
  background-size: cover;
  background-position: center;
}
.hero img, .banner img { width: 100%; height: auto; display: block; }

/* Buttons wrap neatly */
.button, .btn { white-space: nowrap; }

/* Headings scale */
h1 { font-size: clamp(28px, 4.8vw, 44px); }
h2 { font-size: clamp(24px, 4vw, 36px); }
h3 { font-size: clamp(20px, 3.2vw, 28px); }

/* Spacing that adapts */
.section, section { padding-block: clamp(24px, 6vw, 72px); }

/* Footer stacks on mobile */
@media (max-width: 100%) {
  footer .row, footer .grid, footer .columns {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

/* Make carousels/sliders overflow-safe */
.slider, .carousel, .slides { overflow: hidden; }
.slides > * { flex: 0 0 100%; }