:root { --ink:#23303a; --muted:#61707b; --line:rgba(35,48,58,.1); --navy:#073768; --shadow:0 24px 70px rgba(55,47,18,.12); }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); font-family:'Manrope',system-ui,sans-serif; background:radial-gradient(circle at top left,rgba(255,223,160,.35),transparent 32%),radial-gradient(circle at 90% 10%,rgba(160,222,255,.24),transparent 24%),linear-gradient(180deg,#fffdf8 0%,#fbf8f1 60%,#f8f4eb 100%); }
a { color:inherit; }
.site-header { background:#fff; box-shadow:0 10px 35px rgba(17,50,83,.08); }
.utility-bar { padding:.65rem 0; color:#fff; background:var(--navy); }
.utility-email,.social-links a { color:#fff; text-decoration:none; }
.utility-email { font-size:.92rem; }
.social-links { display:flex; gap:.9rem; font-size:1rem; }
.social-links a { display:inline-flex; align-items:center; justify-content:center; width:1.6rem; height:1.6rem; border-radius:50%; transition:transform .16s,color .16s; }
.social-links a:hover { color:#f4c566; transform:translateY(-2px); }
.main-nav-bar { padding:1rem 0; background:#fff; }
.main-nav-bar .container { min-height:4.6rem; }
.main-nav-bar .container { flex-wrap:nowrap; }
.brand-mark { display:inline-flex; align-items:center; flex:0 0 auto; text-decoration:none; }
.brand-mark img { display:block; width:auto; height:80px; max-width:18rem; }
.desktop-nav { display:flex; align-items:center; justify-content:center; gap:clamp(1rem,1.6vw,1.75rem); margin-left:auto; }
.desktop-nav a { position:relative; padding:.65rem .05rem; color:#102d50; font-size:.88rem; font-weight:700; text-decoration:none; white-space:nowrap; }
.desktop-nav a:after { content:''; position:absolute; right:0; bottom:0; left:0; height:2px; background:#d69f39; transform:scaleX(0); transform-origin:left; transition:transform .16s; }
.desktop-nav a:hover:after,.desktop-nav a:focus-visible:after,.desktop-nav a.active:after { transform:scaleX(1); }
.desktop-nav a.active { color:#0b5fc1; }
.btn-gold { color:#2a1a02; background:linear-gradient(135deg,#f2c66b,#d99f3b); border:1px solid rgba(149,96,0,.12); box-shadow:0 10px 24px rgba(198,142,28,.2); }
.header-cta { flex:0 0 auto; border-radius:999px; padding:.9rem 1.65rem; font-weight:800; }
.menu-toggle,.menu-close { border:0; background:transparent; color:#0b3869; font-size:1.8rem; line-height:1; }
.mobile-menu-backdrop { position:fixed; inset:0; z-index:1040; background:rgba(4,28,54,.42); opacity:0; pointer-events:none; transition:opacity .22s; }
.mobile-menu-backdrop.is-open { opacity:1; pointer-events:auto; }
.mobile-menu { position:fixed; z-index:1050; top:0; right:0; bottom:0; width:min(88vw,23rem); padding:1.5rem; background:#fff; box-shadow:-18px 0 50px rgba(3,30,61,.18); transform:translateX(100%); transition:transform .24s; }
.mobile-menu.is-open { transform:translateX(0); }
.mobile-menu-title { color:var(--navy); font-family:'Fraunces',Georgia,serif; font-size:1.25rem; font-weight:700; }
.mobile-nav { display:grid; gap:.1rem; }
.mobile-nav a { padding:.85rem 0; color:#102d50; border-bottom:1px solid rgba(16,45,80,.1); text-decoration:none; font-weight:700; }
.section-pad { padding:4.5rem 0; }
.section-kicker { display:inline-flex; text-transform:uppercase; letter-spacing:.16em; font-size:.77rem; color:#9b6a18; font-weight:800; }
.hero-title,.section-title { font-family:'Fraunces',Georgia,serif; color:var(--ink); }
.hero-title { max-width:11ch; font-size:clamp(2.8rem,5vw,4.8rem); line-height:1.02; letter-spacing:-.03em; }
.hero-card,.panel,.info-card,.destination-card { background:rgba(255,255,255,.82); border:1px solid var(--line); border-radius:1.75rem; box-shadow:var(--shadow); }
.hero-card { position:relative; padding:1rem; }
.hero-image,.family-image,.destination-image { width:100%; object-fit:cover; }
.hero-image { height:min(34rem,72vw); border-radius:1.2rem; }
.hero-float,.family-quote { position:absolute; right:1.2rem; bottom:1.2rem; left:1.2rem; padding:1rem 1.1rem; background:rgba(255,255,255,.9); border:1px solid rgba(255,255,255,.85); border-radius:1.2rem; }
.panel,.info-card { padding:1.5rem; }
.info-card h3,.destination-card h3,.site-footer h2 { font-weight:700; }
.info-card p,.destination-card p { color:var(--muted); margin:0; }
.stack-list { display:grid; gap:1rem; }
.stack-item { display:flex; gap:.85rem; }
.stack-dot { width:.95rem; height:.95rem; flex:0 0 auto; margin-top:.35rem; border-radius:999px; background:linear-gradient(135deg,#ffd67e,#dc9d2f); }
.destination-card { overflow:hidden; }
.destination-image { height:14.5rem; }
.support-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem; }
.support-grid span { padding:.9rem 1rem; text-align:center; font-weight:600; background:rgba(255,255,255,.72); border:1px solid var(--line); border-radius:999px; }
.family-frame { position:relative; padding-top:1.8rem; }
.family-image { height:min(36rem,78vw); border-radius:1rem; }
.cta-section { padding-top:2rem; padding-bottom:4.5rem; }
.cta-card { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:clamp(1.5rem,4vw,3rem); color:#fff; background:linear-gradient(120deg,#073768,#0b5d9e); border-radius:1.75rem; box-shadow:0 22px 60px rgba(7,55,104,.2); }
.cta-card .section-kicker { color:#f5c969; }
.cta-card .section-title { color:#fff; }
.cta-contact-list { display:grid; gap:.65rem; min-width:min(100%,25rem); }
.cta-contact-list a,.cta-contact-list span,.footer-contact a,.footer-contact span { color:inherit; text-decoration:none; }
.cta-contact-list i { margin-right:.55rem; color:#f5c969; }
.site-footer { border-top:1px solid rgba(35,48,58,.08); background:rgba(255,252,246,.82); }
.footer-links,.footer-contact { display:grid; gap:.6rem; }
.footer-links a,.footer-contact { color:var(--muted); text-decoration:none; }
.footer-links a:hover { color:var(--ink); }
.footer-contact address { margin:0; line-height:1.6; }
@media(max-width:1199.98px) { .desktop-nav { display:none !important; } .header-cta { display:none !important; } .menu-toggle { display:block !important; } .brand-mark img { height:80px; max-width:18rem; } }
@media(max-width:991.98px) { .hero-title { max-width:none; } .section-pad { padding:3.75rem 0; } .family-quote,.hero-float { position:static; margin-top:1rem; } .cta-card { align-items:flex-start; flex-direction:column; } }
@media(max-width:575.98px) { .brand-mark img { height:80px; max-width:15rem; } .utility-email { font-size:.78rem; } .social-links { gap:.45rem; font-size:.9rem; } .support-grid { grid-template-columns:1fr; } .btn-gold,.btn-dark,.btn-outline-dark { width:100%; } }
