:root{
  --navy:#0e3a5c;
  --navy-dark:#082539;
  --teal:#1fae9b;
  --teal-dark:#168a7b;
  --mint:#e9f7f5;
  --ink:#1c2b36;
  --muted:#5b6b78;
  --line:#dbe4ea;
  --white:#fff;
  --radius:14px;
  --shadow:0 10px 30px rgba(14,58,92,.10);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Montserrat",system-ui,sans-serif;color:var(--ink);background:var(--white);line-height:1.6}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{width:min(1140px,92%);margin:0 auto}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px}
.brand{font-weight:900;font-size:1.35rem;letter-spacing:.06em;color:var(--navy);text-decoration:none}
.brand span{color:var(--teal)}
.nav-links{display:flex;gap:28px;list-style:none;align-items:center}
.nav-links a{text-decoration:none;font-weight:600;font-size:.95rem;color:var(--navy)}
.nav-links a:hover,.nav-links a.active{color:var(--teal)}
.nav-toggle{display:none;background:none;border:0;font-size:1.7rem;color:var(--navy);cursor:pointer}

/* Buttons */
.btn{display:inline-block;padding:14px 28px;border-radius:999px;font-weight:700;text-decoration:none;border:2px solid transparent;cursor:pointer;font-family:inherit;font-size:1rem;transition:.2s}
.btn-teal{background:var(--teal);color:#fff}
.btn-teal:hover{background:var(--teal-dark)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-dark)}
.btn-outline{border-color:var(--navy);color:var(--navy);background:transparent}
.btn-outline:hover{background:var(--navy);color:#fff}
.nav-links .btn{padding:10px 22px;color:#fff}
.nav-links .btn:hover{color:#fff}

/* Sections */
section{padding:84px 0}
.eyebrow{color:var(--teal);font-weight:800;letter-spacing:.18em;text-transform:uppercase;font-size:.8rem;margin-bottom:10px}
h1,h2,h3{color:var(--navy);line-height:1.15}
h1{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:900}
h2{font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:800;margin-bottom:14px}
h3{font-size:1.2rem;font-weight:800;margin-bottom:8px}
.lead{font-size:1.12rem;color:var(--muted);max-width:620px}
.center{text-align:center}
.center .lead{margin:0 auto}
.bg-mint{background:var(--mint)}
.bg-navy{background:var(--navy);color:#fff}
.bg-navy h2,.bg-navy h3{color:#fff}

/* Hero */
.hero{padding:56px 0 72px;background:linear-gradient(180deg,var(--mint),#fff)}
.hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}
.hero h1 span{color:var(--teal)}
.hero .lead{margin:16px 0 0}
.hero .tagline{margin:18px 0 30px;font-weight:800;font-size:1.15rem;color:var(--teal)}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.hero-logo{background:#fff;border-radius:24px;box-shadow:var(--shadow);padding:22px}
.pill-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.pill{background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:.88rem;font-weight:600;color:var(--navy)}

/* Page hero */
.page-hero{padding:64px 0 48px;background:var(--mint);text-align:center}
.page-hero .lead{margin:14px auto 0}

/* Cards */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:44px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px;box-shadow:var(--shadow)}
.card .icon{width:54px;height:54px;border-radius:12px;background:var(--mint);display:grid;place-items:center;margin-bottom:18px}
.card .icon svg{width:28px;height:28px;stroke:var(--teal);fill:none;stroke-width:2}
.card p{color:var(--muted)}
.card ul{margin-top:14px;padding-left:18px;color:var(--ink)}
.card li{margin-bottom:4px}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:44px;counter-reset:step}
.step{padding:28px;border-radius:var(--radius);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15)}
.step::before{counter-increment:step;content:counter(step);display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--teal);color:#fff;font-weight:800;margin-bottom:14px}
.step p{color:#cfe0ea}

/* Before / After slider */
.ba-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-top:44px}
.ba{position:relative;aspect-ratio:3/2;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);user-select:none;touch-action:pan-y;cursor:ew-resize;background:#ccc}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba .after-wrap{position:absolute;inset:0;clip-path:inset(0 0 0 50%)}
.ba .handle{position:absolute;top:0;bottom:0;left:50%;width:3px;background:#fff;transform:translateX(-50%);pointer-events:none}
.ba .handle::after{content:"\2194";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:#fff;color:var(--navy);display:grid;place-items:center;font-weight:900;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.ba .tag{position:absolute;top:14px;padding:5px 12px;border-radius:999px;font-size:.75rem;font-weight:800;letter-spacing:.1em;background:rgba(8,37,57,.8);color:#fff;pointer-events:none}
.ba .tag.b{left:14px}
.ba .tag.a{right:14px;background:var(--teal)}
.ba input[type=range]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.ba-caption{margin-top:12px;font-weight:700;color:var(--navy)}
.ba-caption small{display:block;font-weight:500;color:var(--muted)}

/* Reviews / social */
.social-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:30px}
.social-btn{display:inline-flex;align-items:center;gap:10px;padding:13px 22px;border-radius:999px;background:#fff;border:1px solid var(--line);text-decoration:none;font-weight:700;color:var(--navy);box-shadow:var(--shadow);transition:.2s}
.social-btn:hover{transform:translateY(-2px);border-color:var(--teal)}
.social-btn svg{width:22px;height:22px}
.stars{color:#f5b301;font-size:1.6rem;letter-spacing:4px}

/* CTA band */
.cta-band{background:var(--teal);color:#fff;text-align:center;padding:64px 0}
.cta-band h2{color:#fff}
.cta-band p{margin:8px 0 26px;font-size:1.1rem}

/* Form */
.form-wrap{display:grid;grid-template-columns:1.6fr 1fr;gap:40px;align-items:start}
form.booking{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px;box-shadow:var(--shadow)}
fieldset{border:0;margin-bottom:28px}
legend{font-weight:800;color:var(--navy);font-size:1.05rem;margin-bottom:14px;padding-bottom:8px;border-bottom:2px solid var(--mint);width:100%}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{margin-bottom:16px}
label{display:block;font-weight:600;font-size:.9rem;margin-bottom:6px;color:var(--ink)}
.req{color:var(--teal)}
input,select,textarea{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;font-family:inherit;font-size:1rem;color:var(--ink);background:#fff}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(31,174,155,.18)}
textarea{min-height:120px;resize:vertical}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.check{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1.5px solid var(--line);border-radius:10px;cursor:pointer;font-weight:500;margin:0}
.check input{width:auto;accent-color:var(--teal)}
.check:has(input:checked){border-color:var(--teal);background:var(--mint)}
.hint{font-size:.82rem;color:var(--muted);margin-top:5px}
.hidden{display:none}
.side-card{background:var(--navy);color:#fff;border-radius:var(--radius);padding:30px;position:sticky;top:96px}
.side-card h3{color:#fff}
.side-card ul{list-style:none;margin-top:14px}
.side-card li{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.12);color:#cfe0ea}
.side-card li strong{color:#fff;display:block}

/* Footer */
.site-footer{background:var(--navy-dark);color:#b9cad6;padding:56px 0 24px}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:32px}
.site-footer h4{color:#fff;margin-bottom:12px;font-size:.95rem;letter-spacing:.08em;text-transform:uppercase}
.site-footer a{text-decoration:none}
.site-footer a:hover{color:var(--teal)}
.site-footer ul{list-style:none}
.site-footer li{margin-bottom:8px}
.foot-social{display:flex;gap:12px;margin-top:14px}
.foot-social a{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.08);display:grid;place-items:center}
.foot-social svg{width:18px;height:18px;fill:#fff}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:40px;padding-top:20px;font-size:.85rem;text-align:center}
.placeholder{background:rgba(31,174,155,.18);border-radius:4px;padding:0 4px}

/* Responsive */
@media (max-width:900px){
  .hero-grid,.form-wrap{grid-template-columns:1fr}
  .hero-logo{max-width:340px;width:100%;margin:0 auto;order:-1;padding:16px}
  .hero-grid{gap:28px}
  .grid-3,.steps{grid-template-columns:1fr}
  .ba-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .side-card{position:static}
  .nav-toggle{display:block}
  .nav-links{display:none;position:absolute;top:72px;left:0;right:0;background:#fff;flex-direction:column;padding:20px;gap:18px;border-bottom:1px solid var(--line)}
  .nav-links.open{display:flex}
}
@media (max-width:560px){
  .row,.checks{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  form.booking{padding:22px}
  section{padding:60px 0}
}
