@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap');

:root {
  --navy: #082d55;
  --navy-2: #0d4776;
  --gold: #b68a3a;
  --teal: #159b98;
  --cream: #f8f7f3;
  --white: #ffffff;
  --text: #263746;
  --muted: #687782;
  --line: #e3e8eb;
  --shadow: 0 18px 50px rgba(8,45,85,.10);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--text); font-family: "DM Sans", sans-serif; background: var(--white); line-height: 1.65; }
a { color: inherit; text-decoration: none; }
.site-header { position: sticky; top: 0; z-index: 20; display:flex; align-items:center; justify-content:space-between; padding: 10px 6vw; background: rgba(255,255,255,.96); backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); }
.brand img { width: 210px; height: 68px; object-fit: contain; mix-blend-mode: multiply; }
.nav { display:flex; gap: 28px; align-items:center; font-weight:600; font-size:.94rem; }
.nav a:hover { color: var(--teal); }
.menu-toggle { display:none; border:0; background:none; font-size:1.7rem; color:var(--navy); }

.hero { min-height: 650px; padding: 90px 8vw; display:grid; grid-template-columns: 1.2fr .8fr; gap: 70px; align-items:center; background: radial-gradient(circle at 85% 20%, rgba(21,155,152,.13), transparent 30%), linear-gradient(135deg, #fbfcfb 0%, #f4f8f7 100%); }
.eyebrow { display:inline-block; color:var(--gold); letter-spacing:.22em; font-size:.76rem; font-weight:700; }
h1,h2 { font-family:"Playfair Display", serif; color:var(--navy); line-height:1.1; margin: 12px 0 18px; }
h1 { font-size:clamp(3rem, 6vw, 5.4rem); max-width: 750px; }
h2 { font-size:clamp(2rem, 3.5vw, 3.1rem); }
.hero-subtitle { font-size:1.35rem; color:var(--navy-2); font-weight:600; max-width:620px; }
.hero-content > p:not(.hero-subtitle) { max-width:650px; color:var(--muted); font-size:1.06rem; }
.hero-actions { display:flex; gap:14px; margin-top:30px; flex-wrap:wrap; }
.btn { display:inline-flex; justify-content:center; align-items:center; min-height:50px; padding:0 25px; border-radius:999px; font-weight:700; border:1px solid transparent; cursor:pointer; font-family:inherit; }
.btn-primary { background:var(--navy); color:white; }
.btn-primary:hover { background:var(--navy-2); }
.btn-outline { border-color:var(--navy); color:var(--navy); background:white; }
.btn-outline:hover { background:var(--navy); color:white; }
.btn-light { background:white; color:var(--navy); }

.hero-card { background:white; border:1px solid rgba(8,45,85,.08); border-radius:28px; padding:45px; box-shadow:var(--shadow); position:relative; overflow:hidden; }
.hero-card:after { content:""; position:absolute; width:200px; height:200px; border:1px solid rgba(182,138,58,.35); border-radius:50%; right:-80px; bottom:-80px; }
.pulse { width:64px; height:64px; display:grid; place-items:center; border-radius:20px; background:rgba(21,155,152,.11); color:var(--teal); font-size:1.7rem; }
.hero-card h2 { font-size:2rem; margin-top:28px; }

.section { padding:100px 8vw; }
.section-heading { max-width:780px; margin-bottom:50px; }
.section-heading p { color:var(--muted); font-size:1.05rem; }
.cards { display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
.service-card { padding:32px; border:1px solid var(--line); border-radius:22px; background:white; transition:.25s; }
.service-card:hover { transform:translateY(-5px); box-shadow:var(--shadow); }
.service-card.featured { border-color:rgba(21,155,152,.4); background:linear-gradient(145deg,#fff,#f2fbfa); }
.icon { width:50px; height:50px; border-radius:15px; display:grid; place-items:center; background:#edf6f5; color:var(--teal); font-size:1.3rem; }
.service-card h3 { color:var(--navy); margin:22px 0 9px; font-size:1.15rem; }
.service-card p { color:var(--muted); margin:0; font-size:.96rem; }

.split { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; background:var(--cream); }
.split p { color:var(--muted); max-width:650px; }
.values { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.values div { background:white; border:1px solid var(--line); padding:25px; border-radius:18px; display:flex; gap:15px; align-items:center; }
.values strong { color:var(--gold); font-size:.8rem; letter-spacing:.12em; }
.values span { color:var(--navy); font-weight:700; }

.booking { background:#f7fbfb; }
.booking-form { max-width:900px; display:grid; grid-template-columns:1fr 1fr; gap:18px; padding:34px; background:white; border:1px solid var(--line); border-radius:26px; box-shadow:var(--shadow); }
.field { display:flex; flex-direction:column; gap:7px; }
.field.full, .booking-form > .btn.full, .form-note { grid-column:1 / -1; }
label { font-weight:700; color:var(--navy); font-size:.9rem; }
input,select,textarea { width:100%; border:1px solid #d7e0e4; border-radius:12px; padding:13px 14px; font:inherit; color:var(--text); background:#fff; outline:none; }
input:focus,select:focus,textarea:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(21,155,152,.10); }
.form-note { color:var(--muted); font-size:.82rem; margin:0; text-align:center; }

.cta { padding:65px 8vw; background:linear-gradient(100deg,var(--navy),#0a5670); color:white; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.cta h2 { color:white; margin-bottom:0; }
.footer { padding:60px 8vw 25px; background:#062442; color:#dce7ee; display:grid; grid-template-columns:1.2fr .8fr; gap:40px; }
.footer-brand img { width:240px; max-height:80px; object-fit:contain; object-position:left; filter:brightness(0) invert(1); opacity:.95; }
.footer-brand p { max-width:400px; color:#b9cbd6; }
.footer-contact { display:flex; flex-direction:column; gap:8px; }
.footer-contact h3 { color:white; margin-top:0; }
.footer-contact a:hover { color:#7dd6d3; }
.footer-bottom { grid-column:1/-1; border-top:1px solid rgba(255,255,255,.14); padding-top:20px; margin-top:10px; color:#94aab8; font-size:.85rem; }

@media (max-width: 850px) {
  .menu-toggle { display:block; }
  .nav { display:none; position:absolute; top:88px; left:0; right:0; padding:18px 6vw; background:white; flex-direction:column; align-items:flex-start; border-bottom:1px solid var(--line); }
  .nav.open { display:flex; }
  .hero, .split { grid-template-columns:1fr; }
  .hero { padding-top:65px; }
  .cards { grid-template-columns:1fr 1fr; }
  .cta { flex-direction:column; align-items:flex-start; }
}
@media (max-width: 560px) {
  .site-header { padding:8px 5vw; }
  .brand img { width:170px; height:58px; }
  .hero, .section { padding-left:5vw; padding-right:5vw; }
  h1 { font-size:3rem; }
  .cards, .booking-form, .values { grid-template-columns:1fr; }
  .field.full, .booking-form > .btn.full, .form-note { grid-column:auto; }
  .footer { grid-template-columns:1fr; padding-left:5vw; padding-right:5vw; }
  .footer-bottom { grid-column:auto; }
}
