:root{--navy:#1f3a7a;--navy2:#142a5c;--red:#d62027;--blue:#2d5fc4;--light:#f3f5f9}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Montserrat,sans-serif;color:#1b2540;background:#fff;line-height:1.55}
a{color:var(--navy)}
.nav{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:8px 5vw;background:#fff;box-shadow:0 2px 10px #1f3a7a22;border-bottom:3px solid var(--red)}
.brand img{height:60px;width:auto;display:block}.nav nav{display:flex;gap:1.3rem;align-items:center}
.nav nav a:not(.btn){color:var(--navy);text-decoration:none;font-weight:700}.nav nav a:not(.btn):hover{color:var(--red)}
.btn{display:inline-block;font-weight:800;text-transform:uppercase;letter-spacing:.05em;background:var(--red);color:#fff;border:2px solid var(--red);padding:13px 26px;border-radius:40px;text-decoration:none;cursor:pointer;font-family:inherit;font-size:.95rem;transition:.2s}
.btn:hover,.btn:focus-visible{background:var(--navy);border-color:var(--navy);outline:3px solid #d6202755;outline-offset:2px}
.btn.sm{padding:9px 18px;font-size:.8rem}.btn.ghost{background:#fff;color:var(--navy);border-color:var(--navy)}.btn.ghost:hover{background:var(--navy);color:#fff}
.hero{position:relative;background-color:var(--light);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='98' viewBox='0 0 56 98'%3E%3Cpath d='M28 66L0 50V17L28 1l28 16v33L28 66zm0 32L0 82V66l28 16 28-16v16z' fill='none' stroke='%231f3a7a' stroke-opacity='.07' stroke-width='1.5'/%3E%3C/svg%3E");padding:2.5rem 5vw 0}
.hero-in{max-width:1150px;margin:0 auto;display:grid;grid-template-columns:minmax(220px,380px) 1fr;gap:3rem;align-items:center;padding-bottom:5.5rem}
.hero-logo img{width:100%;height:auto;display:block;border-radius:50%;background:#fff;border:10px solid var(--navy);box-shadow:0 0 0 6px #fff,0 12px 30px #1f3a7a44}
h1{margin:0;display:inline-flex;flex-direction:column;align-items:stretch;max-width:100%}
.word{font-weight:900;font-style:italic;color:var(--navy);font-size:clamp(3.2rem,8vw,6.2rem);line-height:.95;letter-spacing:-.02em;display:flex;align-items:center;gap:.15em}
.flake{width:.5em;height:.5em;fill:var(--navy)}.swoosh{width:100%;height:24px;display:block;margin:.2rem 0 .35rem}
.banner{background:var(--red);color:#fff;font-weight:800;font-size:clamp(1.2rem,2.9vw,2.2rem);padding:.25em .7em;text-align:center;clip-path:polygon(3% 0,100% 0,97% 100%,0 100%);letter-spacing:.02em}
.tag{font-family:Kalam,cursive;color:var(--navy);font-size:clamp(1.3rem,2.4vw,1.8rem);margin:.8rem 0 0;display:inline-block;border-bottom:3px solid var(--red);line-height:1.3}
.tag2{margin:.4rem 0 1rem;color:#4a5878;font-weight:600}
.rows{list-style:none;padding:0;margin:0 0 1.4rem;display:grid;gap:.6rem}
.rows li{display:flex;align-items:center;gap:.8rem;color:var(--navy);font-size:1.12rem}.rows a{text-decoration:none}.rows a:hover b{color:var(--red)}
.rows b{font-weight:800}.rows small{font-weight:700;text-transform:uppercase;font-size:.75rem;color:var(--navy);letter-spacing:.05em}
.ic{flex:none;width:40px;height:40px;border-radius:50%;background:var(--red);display:grid;place-items:center}.ic svg{width:22px;height:22px;fill:#fff}
.ctas{display:flex;gap:1rem;flex-wrap:wrap}
.wave{line-height:0}.wave svg{width:100%;height:90px;display:block}.wave .r{fill:var(--red)}.wave .n{fill:var(--navy)}
.hero .w1{position:absolute;left:0;right:0;bottom:-1px}.w1 .n{fill:var(--navy)}
.services{background:linear-gradient(var(--navy) 0 110px,#fff 110px);padding:1rem 5vw 4rem}
.services h2{color:#fff}h2{font-weight:900;font-size:clamp(1.9rem,4vw,2.6rem);text-align:center;margin:0 0 2rem;letter-spacing:-.01em}
.grid{max-width:1150px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.4rem}
.grid article{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 6px 22px #1f3a7a1f;border-top:5px solid var(--red);transition:.2s}
.grid article:hover{transform:translateY(-3px);box-shadow:0 10px 28px #1f3a7a33}
.grid h3{color:var(--navy);font-weight:800;font-size:1.05rem;margin:0 0 .5rem}.grid p{margin:0;font-size:.95rem;color:#3c4766}
.note{text-align:center;margin:2rem auto 0;color:var(--navy);font-weight:700;max-width:900px}
.contact{background:var(--light);padding:4rem 5vw}.contact h2{color:var(--navy);margin-bottom:.3rem}.contact>p{text-align:center;margin:0 0 2rem;color:var(--red);font-weight:700}
.contact-grid{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:1fr 1.2fr;gap:2.5rem;align-items:start}
form{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 6px 22px #1f3a7a1f;border-top:5px solid var(--navy)}
label{display:block;margin:0 0 1rem;font-weight:700;color:var(--navy)}input,textarea{display:block;width:100%;margin-top:.3rem;padding:12px;border:2px solid #c9d2e6;border-radius:8px;font:inherit}
input:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #2d5fc433}
.chk{font-weight:500;display:flex;gap:.5rem;align-items:center;color:#3c4766}.chk input{width:auto;margin:0}
.w2 svg{background:var(--light)}
footer{background:var(--navy);color:#dfe6f5;text-align:center;padding:1rem 5vw 2rem;font-size:.92rem}footer img{background:#fff;border-radius:50%;padding:3px}footer a{color:#fff;font-weight:700}footer p{margin:.4rem 0}
@media(max-width:860px){.hero-in{grid-template-columns:1fr;text-align:center;gap:1.5rem}.hero-logo{max-width:200px;margin:0 auto}h1{align-items:center}.word{justify-content:center}.rows{justify-items:center}.rows li{text-align:left}.ctas{justify-content:center}.contact-grid{grid-template-columns:1fr}}
@media(max-width:640px){.nav nav a:not(.btn):not(.phone){display:none}.hero-logo{max-width:150px}.wave svg{height:50px}.rows li{font-size:1rem}}
.rows li>span:not(.ic){font-weight:800}

.btn.navy{background:var(--navy);border-color:var(--navy)}.btn.navy:hover{background:var(--red);border-color:var(--red)}
@media(max-width:640px){.nav .btn.sm:not(.schedule){display:none}}

/* Header logo: fade/slide-in on load + hover lift and cool-air shimmer */
.brand{position:relative;display:inline-flex;align-items:center;flex:none;border-radius:50%;isolation:isolate;opacity:0;animation:brand-in .7s ease-out .12s forwards}
.brand::after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;z-index:1;background:linear-gradient(115deg,transparent 35%,rgba(173,216,255,.15) 42%,rgba(255,255,255,.75) 50%,rgba(173,216,255,.35) 58%,transparent 68%);background-size:220% 100%;background-position:-160% 0;opacity:0}
.brand:hover img,.brand:focus-visible img{transform:translateY(-2px) scale(1.06);filter:drop-shadow(0 4px 8px #1f3a7a40)}
.brand:hover::after,.brand:focus-visible::after{animation:brand-shimmer .85s ease-out}
.brand img{transition:transform .35s ease,filter .35s ease}
@keyframes brand-in{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:translateX(0)}}
@keyframes brand-shimmer{0%{opacity:1;background-position:-160% 0}100%{opacity:0;background-position:160% 0}}

/* Hero logo: complementary entrance, subtle hover scale */
.hero-logo{opacity:0;animation:hero-logo-in .85s ease-out .28s forwards}
.hero-logo img{transition:transform .4s ease,box-shadow .4s ease}
.hero-logo:hover img{transform:scale(1.03);box-shadow:0 0 0 6px #fff,0 16px 36px #1f3a7a55}
@keyframes hero-logo-in{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  .brand,.hero-logo{animation:none;opacity:1;transform:none}
  .brand img,.hero-logo img{transition:none}
  .brand:hover img,.brand:focus-visible img,.hero-logo:hover img{transform:none;filter:none}
  .brand:hover::after,.brand:focus-visible::after{animation:none;opacity:0}
  html{scroll-behavior:auto}
}

.welcome{background:#fff;padding:3rem 5vw 4rem;text-align:center}.welcome h2{color:var(--navy)}.vid{max-width:480px;margin:0 auto;border-radius:16px;overflow:hidden;box-shadow:0 12px 30px rgba(31,58,122,.25);border:4px solid var(--navy)}.vid video{display:block;width:100%;height:auto;background:#000}.vid-cap{margin:1.2rem auto 0;max-width:480px;color:var(--red);font-weight:700}
