:root{
  --navy:#0e4b68; --navy-2:#166287; --ink:#1c2b30;
  --gold:#1f8a8a; --gold-soft:#5cb8b2; --cream:#f7faf9; --white:#ffffff;
  --muted:#54696e; --line:#d9e6e4;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--white);line-height:1.6}
.serif{font-family:Georgia,'Times New Roman',serif;font-weight:400}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px}

/* Placeholder marker — REMOVE CLASS BEFORE PRODUCTION */
.ph{background:#fff3bf;outline:2px dashed #e0a800;outline-offset:2px;padding:0 4px;border-radius:3px;color:#5c4a00;font-style:normal}

/* utility bar */
.util{background:var(--navy);color:#dcebee;font-size:.85rem}
.util .wrap{display:flex;justify-content:space-between;align-items:center;padding:8px 24px;gap:16px;flex-wrap:wrap}
.util a{color:#dcebee;text-decoration:none;margin-right:4px}
.util a:hover{color:var(--gold-soft)}
.util .left{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.util svg{vertical-align:-2px;margin-right:6px}

/* header */
header{position:sticky;top:0;z-index:50;background:var(--white);box-shadow:0 2px 10px rgba(14,75,104,.08)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--navy)}
.brand-name{font-weight:700;font-size:1.02rem;letter-spacing:.04em;text-transform:uppercase;line-height:1.2;display:block}
.brand-sub{display:block;font-size:.66rem;letter-spacing:.22em;color:var(--gold);text-transform:uppercase;font-weight:600}
.brand-tag{display:block;font-size:.62rem;color:var(--muted);font-style:italic;font-family:Georgia,serif}
.nav-links{display:flex;gap:28px;list-style:none;align-items:center}
.nav-links a{color:var(--navy);text-decoration:none;font-size:.95rem;font-weight:600;padding-bottom:4px;border-bottom:2px solid transparent}
.nav-links a:hover,.nav-links a.active{border-bottom-color:var(--gold)}
.btn{display:inline-block;padding:13px 28px;border-radius:30px;text-decoration:none;font-weight:700;font-size:.95rem;cursor:pointer;border:none}
.btn-navy,.nav-links a.btn-navy{background:var(--navy);color:var(--white);border-bottom:none}
.btn-navy:hover{background:var(--navy-2)}
.btn-gold{background:var(--gold);color:#fff}
.btn-gold:hover{background:var(--gold-soft)}
.btn-outline{border:1.5px solid var(--white);color:var(--white);background:transparent}
.btn-outline:hover{background:rgba(255,255,255,.12)}
.nav .btn{padding:11px 24px}
.logo-mark{display:inline-block;flex:none;width:50px;height:50px;background:url("assets/logo.png") no-repeat;background-size:310% auto;background-position:48% 16%}
.nav-toggle{display:none;background:none;border:1px solid var(--line);color:var(--navy);font-size:1.4rem;padding:2px 10px;border-radius:4px}

/* heroes */
.hero{position:relative;color:var(--white);text-align:center;padding:120px 0 130px;background:
  linear-gradient(rgba(8,32,44,.78),rgba(8,32,44,.66)),
  url("assets/hero-ocean-run.jpg") center 40%/cover no-repeat,
  linear-gradient(160deg,#1f7ea6 0%,#166287 55%,#0e4b68 100%)}
.hero>.ph,.hero>span.ph{position:absolute;top:14px;right:14px;font-size:.75rem}
.hero h1{font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.15;max-width:880px;margin:0 auto}
.hero p{margin:20px auto 36px;max-width:640px;color:#d6e8ea;font-size:1.1rem}
.hero .ctas{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.page-hero{color:var(--white);text-align:center;padding:76px 0;background:
  linear-gradient(rgba(8,32,44,.82),rgba(8,32,44,.78)),
  url("assets/page-hero-miami.jpg") center 45%/cover no-repeat,
  linear-gradient(160deg,#1f7ea6 0%,#166287 55%,#0e4b68 100%)}
.page-hero h1{font-size:clamp(1.9rem,4vw,2.8rem);line-height:1.15}
.page-hero p{margin:14px auto 0;max-width:620px;color:#d6e8ea;font-size:1.05rem}
.page-hero .btn{margin-top:26px}

/* sections */
section{padding:80px 0}
.eyebrow{color:var(--gold);letter-spacing:.22em;text-transform:uppercase;font-size:.78rem;font-weight:700;margin-bottom:12px}
h2{font-size:clamp(1.7rem,3vw,2.3rem);color:var(--navy);margin-bottom:16px}
.sec-head{max-width:720px;margin:0 auto 48px;text-align:center}
.sec-head p{color:var(--muted)}

/* who we are */
.who .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.who p{color:var(--muted);margin-bottom:14px}
.who-img{min-height:280px;border-radius:12px;background:var(--cream);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;position:relative}
.who-img img{width:100%;height:100%;min-height:280px;object-fit:cover;display:block}
.who-img .ph{position:absolute;bottom:10px;right:10px;font-size:.72rem}
.checks{list-style:none;margin:20px 0 28px}
.checks li{padding-left:32px;position:relative;margin-bottom:12px;font-weight:600;color:var(--navy)}
.checks li::before{content:"\2713";position:absolute;left:0;top:0;width:22px;height:22px;border-radius:50%;background:var(--gold);color:var(--white);font-size:.8rem;display:flex;align-items:center;justify-content:center}

/* service cards */
.services{background:var(--cream)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.card{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:30px;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}
.card:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(14,75,104,.12)}
.card h3{font-size:1.15rem;color:var(--navy);margin-bottom:14px;padding-bottom:12px;border-bottom:2px solid var(--gold)}
.card ul{list-style:none;flex:1;margin-bottom:20px}
.card ul li{padding-left:24px;position:relative;margin-bottom:9px;font-size:.92rem;color:var(--muted)}
.card ul li::before{content:"\2713";position:absolute;left:0;color:var(--gold);font-weight:700}
.card .btn{align-self:flex-start;padding:10px 22px;font-size:.88rem}

/* CTA bands */
.band{background:linear-gradient(120deg,var(--navy) 0%,var(--navy-2) 100%);color:var(--white);text-align:center;padding:64px 0}
.band-photo{background:linear-gradient(rgba(8,32,44,.8),rgba(8,32,44,.8)),url("assets/family-sunset.jpg") center 55%/cover no-repeat}
.band-photo-2{background:linear-gradient(rgba(8,32,44,.8),rgba(8,32,44,.8)),url("assets/family-sunset.jpg") center 60%/cover no-repeat}
.band h2{color:var(--white);margin-bottom:26px}
.band p{color:#c9dfe3;max-width:620px;margin:0 auto 30px}
.mini-cta{background:var(--cream);border-block:1px solid var(--line)}
.mini-cta .wrap{display:flex;align-items:center;justify-content:center;gap:28px;padding:26px 24px;flex-wrap:wrap}
.mini-cta span{font-size:1.3rem;color:var(--navy)}

/* steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:32px;text-align:center}
.step .num{width:64px;height:64px;margin:0 auto 18px;border-radius:50%;background:var(--cream);border:2px solid var(--gold);color:var(--navy);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem}
.step h3{font-size:1.1rem;color:var(--navy);margin-bottom:8px}
.step p{font-size:.92rem;color:var(--muted)}
.steps-cta{text-align:center;margin-top:44px}

/* why us */
.why{background:var(--cream)}
.why .wrap{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.why p{color:var(--muted)}

/* mission & values */
.mission{background:var(--navy)}
.mission .eyebrow{color:var(--gold-soft)}
.mission h2{color:var(--white)}
.values{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.value{background:rgba(255,255,255,.06);border:1px solid rgba(92,184,178,.35);border-radius:10px;padding:26px;text-align:center}
.value h3{color:var(--gold-soft);font-size:1rem;font-weight:600}

/* why trust (about) */
.trust-items{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.trust-item{background:var(--white);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:10px;padding:26px}
.trust-item h3{color:var(--navy);font-size:1.05rem;margin-bottom:8px}
.trust-item p{color:var(--muted);font-size:.94rem}
.whytrust{background:var(--cream)}

/* FAQ */
.faq details{border:1px solid var(--line);border-radius:10px;margin-bottom:14px;background:var(--white);overflow:hidden}
.faq summary{padding:18px 22px;font-weight:700;color:var(--navy);cursor:pointer;list-style:none;position:relative;padding-right:48px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);color:var(--gold);font-size:1.4rem;font-weight:400}
.faq details[open] summary::after{content:"\2013"}
.faq details p{padding:0 22px 18px;color:var(--muted);font-size:.95rem}
.faq .inner{max-width:760px;margin:0 auto}

/* contact */
.contact{background:var(--cream)}
.contact .wrap{display:grid;grid-template-columns:1fr 1.1fr;gap:56px}
.contact-info>p{color:var(--muted);margin-bottom:26px}
.info-line{display:flex;gap:14px;margin-bottom:18px;align-items:flex-start}
.info-line .ic{width:40px;height:40px;flex:none;border-radius:50%;background:var(--navy);display:flex;align-items:center;justify-content:center}
.info-line b{display:block;color:var(--navy);font-size:.9rem}
.info-line span{color:var(--muted);font-size:.93rem}
form{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:34px}
form h3{color:var(--navy);margin-bottom:6px}
form .form-sub{font-size:.9rem;color:var(--muted);margin-bottom:8px}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{display:block;font-size:.8rem;font-weight:700;color:var(--navy);margin:14px 0 6px;letter-spacing:.04em}
input,select,textarea{width:100%;padding:11px 12px;border:1px solid #c4d8d5;border-radius:6px;font-size:.95rem;background:var(--cream);color:var(--ink);font-family:inherit}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);border-color:var(--gold)}
button[type=submit]{margin-top:22px;width:100%;padding:14px;background:var(--gold);color:#fff;border:none;border-radius:30px;font-size:1rem;font-weight:700;cursor:pointer}
button[type=submit]:hover{background:var(--gold-soft)}
.form-note{font-size:.78rem;color:var(--muted);margin-top:12px;text-align:center}
#form-status{margin-top:14px;font-size:.9rem;text-align:center;display:none}

/* newsletter */
.newsletter{background:var(--gold);padding:34px 0}
.newsletter .wrap{display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap}
.newsletter p{color:var(--navy);max-width:680px;font-weight:600}
.newsletter .btn{background:var(--navy);color:var(--white)}
.newsletter .btn:hover{background:var(--navy-2)}

/* footer */
footer{background:var(--navy);color:#a5c2c7;padding:52px 0 30px;font-size:.9rem}
footer .wrap{display:grid;grid-template-columns:1.6fr 1fr 1.4fr;gap:40px}
footer h4{color:var(--white);font-size:.92rem;margin-bottom:14px;letter-spacing:.06em}
footer a{color:#a5c2c7;text-decoration:none;display:block;margin-bottom:9px}
footer a:hover{color:var(--gold-soft)}
.footnote{border-top:1px solid #3d6b80;margin-top:36px;padding-top:20px;font-size:.78rem;color:#87a6ad;grid-column:1/-1;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.footnote .legal a{display:inline;margin-left:16px}

@media(max-width:860px){
  .nav-links{display:none}
  .nav-toggle{display:block}
  .nav-links.open{display:flex;position:absolute;top:100%;left:0;right:0;background:var(--white);flex-direction:column;padding:18px 24px;gap:16px;box-shadow:0 8px 16px rgba(14,75,104,.12)}
  .who .wrap,.why .wrap,.contact .wrap{grid-template-columns:1fr}
  .trust-items{grid-template-columns:1fr}
  footer .wrap{grid-template-columns:1fr 1fr}
  .f-row{grid-template-columns:1fr}
  .util .right-addr{display:none}
}

/* legal pages */
.legal-body{max-width:820px;margin:0 auto}
.legal-body h3{color:var(--navy);margin:30px 0 10px;font-size:1.15rem}
.legal-body h4{color:var(--navy);margin:18px 0 8px;font-size:1rem}
.legal-body p{color:var(--muted);margin-bottom:12px}
.legal-body ul{margin:0 0 14px 22px;color:var(--muted)}
.legal-body li{margin-bottom:6px}
.legal-body a{color:var(--gold);font-weight:600}
