:root{
  --bs-primary:#231c70; --bs-secondary:#c79f5a;
  --big-navy:#103F5E; --big-gold:#c79f5a; --big-cream:#FEEBDF;
  --big-dark:#0B1B2B; --big-ivory:#FFFDF9;
  --big-gold-dark:#8a6d2b;
}
body{font-family:"Open Sans",system-ui,-apple-system,sans-serif;background:var(--big-ivory);color:#1a1a1a;}
h1,h2,h3,h4,h5,.navbar-brand{font-family:"Urbanist",sans-serif;font-weight:800;}
.topbar{background:var(--big-dark);color:#fff;font-size:.85rem;}
.topbar a{color:#ffe9c9;text-decoration:none;}
.navbar{background:#fff !important;box-shadow:0 2px 18px rgba(11,27,43,.08);}
.navbar .nav-link{font-weight:600;color:var(--big-navy);}
.navbar .nav-link.active,.navbar .nav-link:hover{color:var(--big-gold-dark);}
.btn-gold{background:var(--big-gold);border-color:var(--big-gold);color:#241a05;font-weight:700;border-radius:10px;padding:.8rem 1.6rem;}
.btn-gold:hover{background:var(--big-navy);border-color:var(--big-navy);color:#fff;}
.btn-navy{background:var(--big-navy);border-color:var(--big-navy);color:#fff;font-weight:700;border-radius:10px;padding:.8rem 1.6rem;}
.btn-navy:hover{background:var(--bs-primary);border-color:var(--bs-primary);}
.btn-outline-gold{border:2px solid var(--big-gold);color:var(--big-gold-dark);font-weight:700;border-radius:10px;}
.btn-outline-gold:hover{background:var(--big-gold);color:#fff;}
.hero{background:linear-gradient(120deg,#0B1B2B 0%,#103F5E 55%,#231c70 100%);color:#fff;position:relative;overflow:hidden;}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(600px 300px at 85% 20%,rgba(199,159,90,.35),transparent 60%);pointer-events:none;}
.hero>.container{position:relative;z-index:1;}
.hero .badge-pill{background:rgba(199,159,90,.18);border:1px solid rgba(199,159,90,.5);color:#ffe9c9;}
.hero-img{border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.35);border:4px solid rgba(255,255,255,.15);}
.stat-card{background:#fff;border:1px solid #f0e2c8;border-radius:16px;box-shadow:var(--sh-1);transition:transform .28s var(--ease-out),box-shadow .28s var(--ease-out);}
.stat-card:hover{transform:translateY(-3px);box-shadow:var(--sh-2);}
.stat-num{font-size:2.2rem;font-weight:800;color:var(--big-navy);}
.section-cream{background:var(--big-cream);}
.pillar-card,.svc-card,.prog-card{border-radius:18px;border:1px solid #eee;background:#fff;transition:transform .28s var(--ease-out),box-shadow .28s var(--ease-out),border-color .28s var(--ease-out);box-shadow:var(--sh-1);}
.pillar-card:hover,.svc-card:hover,.prog-card:hover{transform:translateY(-5px);box-shadow:var(--sh-2);border-color:var(--big-gold);}
.pillar-card .icon,.svc-card .icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--big-navy),var(--bs-primary));color:#fff;font-size:1.4rem;transition:transform .28s var(--ease-out);}
.pillar-card:hover .icon,.svc-card:hover .icon,.prog-card:hover .icon{transform:scale(1.08) rotate(-3deg);}
.svc-card a.fw-bold,.prog-card a.fw-bold{display:inline-block;transition:transform .2s var(--ease-out);}
.svc-card a.fw-bold:hover,.prog-card a.fw-bold:hover{transform:translateX(4px);}
.price-card{border-radius:20px;border:2px solid #eee;background:#fff;box-shadow:var(--sh-1);transition:transform .28s var(--ease-out),box-shadow .28s var(--ease-out),border-color .28s var(--ease-out);}
.price-card.popular{border-color:var(--big-gold);box-shadow:var(--sh-gold);position:relative;}
.price-card:hover{transform:translateY(-5px);box-shadow:var(--sh-2);}
.price-card.popular:hover{box-shadow:var(--sh-3);}
.price-card .price{font-size:2.4rem;font-weight:800;color:var(--big-navy);}
.cta-band{background:linear-gradient(120deg,var(--big-navy),var(--bs-primary));color:#fff;border-radius:24px;}
footer{background:var(--big-dark);color:#dfe7ee;}
footer a{color:#ffe9c9;text-decoration:none;}
footer a:hover{color:#fff;}
footer .foot-head{color:#fff;font-weight:800;}
.breadcrumb-band{background:var(--big-cream);border-bottom:1px solid #f0dcc0;}
.faq-btn{font-weight:700;color:var(--big-navy);}
.timeline{border-left:3px solid var(--big-gold);}
.img-cover{object-fit:cover;width:100%;height:100%;}
.gallery-img{height:240px;object-fit:cover;width:100%;}
.card-img-top-fixed{height:170px;object-fit:cover;width:100%;}
.rounded-4{border-radius:1.25rem !important;}
.table-premium thead{background:var(--big-navy);color:#fff;}
.skip-link{position:absolute;left:-9999px;}
.skip-link:focus{left:8px;top:8px;z-index:9999;background:#fff;padding:.5rem 1rem;border-radius:8px;}
@media(max-width:576px){.stat-num{font-size:1.7rem;}}

/* ============ Elevation tokens ============ */
:root{
  --ease-out:cubic-bezier(.2,.7,.2,1);
  --sh-1:0 1px 2px rgba(16,24,40,.06),0 6px 16px rgba(16,24,40,.06);
  --sh-2:0 2px 8px rgba(16,24,40,.08),0 16px 36px rgba(16,63,94,.12);
  --sh-3:0 8px 20px rgba(16,24,40,.10),0 28px 60px rgba(35,28,112,.18);
  --sh-gold:0 12px 32px rgba(199,159,90,.30);
}

/* ============ Hero entrance (CSS-only, visible without animation support) ============ */
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.hero .col-lg-7>*{animation:rise .7s var(--ease-out) backwards;}
.hero .col-lg-7>*:nth-child(2){animation-delay:.08s}
.hero .col-lg-7>*:nth-child(3){animation-delay:.16s}
.hero .col-lg-7>*:nth-child(4){animation-delay:.24s}
.hero .col-lg-7>*:nth-child(5){animation-delay:.32s}
.hero .col-lg-5{animation:rise .8s var(--ease-out) .2s backwards;}

/* ============ Scroll reveal (JS adds .js + .on; no-JS stays visible) ============ */
.js [data-rv]{opacity:0;transform:translateY(22px);transition:opacity .6s ease var(--rd,0ms),transform .6s var(--ease-out) var(--rd,0ms);}
.js [data-rv].on{opacity:1;transform:none;}

/* ============ Buttons & nav micro-interactions ============ */
.btn-gold,.btn-navy{transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out),background-color .2s,color .2s;}
.btn-gold:hover,.btn-navy:hover{transform:translateY(-2px);box-shadow:var(--sh-2);}
.dropdown-item{transition:background-color .15s,color .15s;}
.dropdown-item:hover,.dropdown-item:focus{background:#FEEBDF;color:#103F5E;}
.navbar .nav-link{transition:color .15s;}

/* ============ Stacking & media robustness ============ */
picture{display:block;}
main img{max-width:100%;}
main .card-body,main .pillar-card,main .svc-card{overflow-wrap:anywhere;}
.table-premium tbody tr{transition:background-color .15s;}
.table-premium tbody tr:hover{background:#FFF7EA;}
:focus-visible{outline:3px solid var(--big-gold);outline-offset:2px;border-radius:4px;}
::selection{background:#c79f5a;color:#0B1B2B;}

/* ============ Type color per background ============ */
.section-cream h2,.section-cream h3{color:var(--big-navy);}
.section-cream .text-muted,.breadcrumb-band .text-muted{color:#5c5546!important;}
.breadcrumb-band a{color:var(--big-navy);}
.breadcrumb-band a:hover{color:var(--big-gold-dark,#8a6d2b);}
.hero .text-muted,.cta-band .text-muted{color:rgba(255,255,255,.78)!important;}
footer .text-muted{color:#9fb0c0!important;}

/* ============ Back to top ============ */
.to-top{position:fixed;right:1.25rem;bottom:1.25rem;z-index:1040;width:48px;height:48px;border-radius:50%;border:0;background:var(--big-navy);color:#fff;font-size:1.2rem;box-shadow:var(--sh-2);transition:transform .2s var(--ease-out),background-color .2s,opacity .2s;}
.to-top:hover{background:var(--bs-primary);transform:translateY(-3px);color:#fff;}

@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth;}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
  .js [data-rv]{opacity:1;transform:none;}
  html{scroll-behavior:auto;}
}
