:root{
  --navy:#08233b;
  --navy-2:#0a3557;
  --teal:#0aaabc;
  --teal-2:#13c5d7;
  --soft:#effafc;
  --line:#dfedf2;
  --text:#0a2239;
  --muted:#56717d;
  --white:#ffffff;
  --shadow:0 18px 40px rgba(7,35,59,.10);
  --container:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:#fff;line-height:1.5}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.container{width:min(var(--container),calc(100% - 40px));margin-inline:auto}

.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:30px;min-height:92px}
.brand img{height:60px;width:auto}
.nav-links{display:flex;gap:26px;margin-left:auto;font-weight:800;font-size:15px}
.nav-links a.active,.nav-links a:hover{color:var(--teal)}
.menu-toggle{display:none;border:0;background:transparent;font-size:28px;margin-left:auto}

.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:16px 28px;font-weight:800;transition:.25s ease;cursor:pointer;border:0}
.btn-primary{background:linear-gradient(180deg,var(--teal-2),var(--teal));color:#fff;box-shadow:0 12px 25px rgba(10,170,188,.25)}
.btn-primary:hover{transform:translateY(-1px)}
.btn-secondary{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.85)}
.nav-cta{padding:14px 22px}

.hero{position:relative;min-height:780px;overflow:hidden;background:#021c31}
.hero-bg{position:absolute;inset:0;background:url('../assets/img/hero-clean.png') center/cover no-repeat;transform:scale(1.02)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,27,46,.82) 0%,rgba(4,27,46,.62) 38%,rgba(4,27,46,.15) 100%)}
.hero-content{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;align-items:end;min-height:780px;padding:100px 0 80px}
.hero-copy{max-width:760px;color:#fff}
.eyebrow{display:block;font-size:13px;letter-spacing:.24em;font-weight:900;color:var(--teal);text-transform:uppercase}
.hero-eyebrow{margin-bottom:18px;color:#71f0ff}
.hero h1{margin:0 0 20px;font-size:74px;line-height:1.02;letter-spacing:-.045em;font-weight:900}
.hero p{margin:0 0 36px;max-width:660px;font-size:22px;color:#e8f6fb}
.hero-actions{display:flex;gap:18px;flex-wrap:wrap}
.hero-stats{margin-top:42px;display:flex;gap:18px;flex-wrap:wrap}
.hero-stats div{min-width:150px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(6px);padding:16px 18px;border-radius:20px}
.hero-stats strong{display:block;font-size:22px;color:#fff}
.hero-stats span{display:block;font-size:14px;color:#dbeef5}
.hero-card{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(8px);padding:24px;border-radius:24px;color:#fff;margin-bottom:30px;box-shadow:var(--shadow)}
.hero-card img{width:72px;height:72px;object-fit:contain;margin-bottom:14px}
.hero-card h3{margin:0 0 8px;font-size:22px}
.hero-card p{margin:0;color:#e5f2f7;font-size:15px}

.section{padding:88px 0}
.section-soft{background:linear-gradient(180deg,#f7fcfd,#eef8fb)}
.section-heading{text-align:center;margin-bottom:40px}
.section-heading h2{margin:10px 0 0;font-size:42px;line-height:1.08;letter-spacing:-.03em}

.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.service-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:26px;box-shadow:var(--shadow);text-align:left}
.service-icon{width:86px;height:86px;object-fit:contain;margin-bottom:18px}
.service-card h3{margin:0 0 10px;font-size:22px}
.service-card p{margin:0;color:var(--muted)}

.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:center}
.split-copy h2{margin:10px 0 18px;font-size:42px;line-height:1.08}
.split-copy p{margin:0 0 20px;color:var(--muted);font-size:18px}
.check-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.check-list li{position:relative;padding-left:28px;color:#15344e;font-weight:600}
.check-list li::before{content:'✓';position:absolute;left:0;top:0;color:var(--teal);font-weight:900}
.split-media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:28px;box-shadow:var(--shadow)}

.featured-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.experience-card{background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}
.experience-image{width:100%;height:260px;object-fit:cover}
.experience-body{padding:24px}
.experience-body h3{margin:0 0 10px;font-size:24px}
.experience-body p{margin:0;color:var(--muted)}

.gallery-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px}
.gallery-grid img{width:100%;height:320px;object-fit:cover;border-radius:24px;box-shadow:var(--shadow)}

.cta-box{background:linear-gradient(120deg,var(--navy),var(--navy-2));color:#fff;border-radius:30px;padding:36px 40px;display:flex;align-items:center;justify-content:space-between;gap:26px;box-shadow:var(--shadow)}
.cta-box h2{margin:10px 0 10px;font-size:38px;line-height:1.1}
.cta-box p{margin:0;color:#d8edf6}

.reservation-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:28px;align-items:start}
.contact-card{background:#f3fbfc;border:1px solid var(--line);border-radius:28px;padding:30px}
.contact-card h2{margin:10px 0 10px;font-size:38px}
.contact-card p{margin:0 0 20px;color:var(--muted)}
.contact-list{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.contact-list li{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 18px}
.contact-list strong{display:block;font-size:15px}
.contact-list span{display:block;color:var(--muted);margin-top:4px}

.booking-form{background:#fff;border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:var(--shadow);display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{font-weight:800;color:#13324b}
input,select,textarea{width:100%;margin-top:8px;border:1px solid #d6e6ec;border-radius:14px;padding:14px 16px;font:inherit;color:var(--text);background:#fff}
textarea{resize:vertical;min-height:130px}
.full{grid-column:1 / -1}
.form-status{min-height:24px;margin:0;color:#0b7ea1;font-weight:800}
.form-status[data-state="error"]{color:#b42318}

.site-footer{background:#071d31;color:#d7edf6;padding:48px 0}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:30px}
.footer-logo{height:54px;width:auto;filter:drop-shadow(0 6px 12px rgba(0,0,0,.18))}
.site-footer h3{margin:0 0 14px;color:#fff}
.site-footer a{display:block;margin:7px 0;color:#d7edf6}
.legal{font-size:13px;color:#93b6c4}

@media (max-width: 1080px){
  .nav-links,.nav-cta{display:none}
  .menu-toggle{display:block}
  .hero-content,.service-grid,.split-grid,.featured-grid,.gallery-grid,.reservation-grid,.footer-grid{grid-template-columns:1fr 1fr}
  .hero-content{align-items:end}
  .hero-card{display:none}
}
@media (max-width: 760px){
  .container{width:min(var(--container),calc(100% - 28px))}
  .hero{min-height:680px}
  .hero-content{grid-template-columns:1fr;min-height:680px;padding:80px 0 56px}
  .hero h1{font-size:44px}
  .hero p{font-size:18px}
  .hero-actions{flex-direction:column;align-items:stretch}
  .service-grid,.split-grid,.featured-grid,.gallery-grid,.reservation-grid,.footer-grid,.booking-form{grid-template-columns:1fr}
  .gallery-grid img{height:240px}
  .cta-box{padding:28px;flex-direction:column;align-items:flex-start}
  .brand img{height:48px}
  .section-heading h2,.split-copy h2,.contact-card h2,.cta-box h2{font-size:32px}
}
.scroll-to-top {
  position: fixed;
  bottom: 14px;
  left: 24px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(180deg, #13c5d7, #0aaabc);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s ease, visibility .3s ease, transform .3s ease;
  z-index: 999;
  box-shadow: 0 8px 24px rgba(10,170,188,.28);
  font-size: 24px;
  border: none;
  padding: 0;
}
.scroll-to-top:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(10,170,188,.38); }
.scroll-to-top.visible { opacity: 1; visibility: visible; }
