/* SeaLux Miami - static rebuild. White/black base, blue CTA buttons. */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700;800&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --black:#0d0d0d;
  --white:#ffffff;
  --gray-light:#f4f4f5;
  --gray-lighter:#fafafb;
  --gray-mid:#8a8a8e;
  --gray-border:#e6e6e9;
  --blue:#1a56ff;
  --blue-dark:#0f3fd1;
  --serif:"Playfair Display",Georgia,serif;
  --sans:"Inter","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box;}
body{margin:0;font-family:var(--sans);color:var(--black);background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:var(--serif);font-weight:700;line-height:1.18;margin:0 0 .5em;letter-spacing:-.01em;}
h1{font-size:2.8rem;}
h2{font-size:2.1rem;}
h3{font-size:1.25rem;font-family:var(--sans);font-weight:700;}
h4{font-size:1.05rem;font-family:var(--sans);font-weight:600;}
p{margin:0 0 1em;color:#333;}
.btn{display:inline-block;padding:.8rem 1.8rem;border-radius:30px;font-weight:600;cursor:pointer;border:none;transition:all .18s ease;font-size:.95rem;}
.btn-primary{background:var(--blue);color:var(--white);box-shadow:0 6px 16px rgba(26,86,255,.25);}
.btn-primary:hover{background:var(--blue-dark);transform:translateY(-1px);}
.btn-outline{background:transparent;color:var(--black);border:1.5px solid var(--black);}
.btn-outline:hover{background:var(--black);color:var(--white);}
.btn-dark{background:var(--black);color:#fff;border-radius:30px;}
.btn-dark:hover{background:#2a2a2a;}

/* header */
.site-header{position:sticky;top:0;background:var(--black);z-index:50;box-shadow:0 1px 0 rgba(255,255,255,.06);}
.header-top{display:flex;align-items:center;justify-content:space-between;padding:.9rem 4vw;gap:1.5rem;}
.logo{display:flex;align-items:center;}
.logo img{height:52px;width:auto;}
.main-nav{display:flex;gap:1.6rem;flex-wrap:wrap;}
.nav-link{font-size:.92rem;font-weight:500;color:#f2f2f2;}
.nav-link:hover{color:#5b8bff;}
.subnav{display:flex;gap:1.6rem;flex-wrap:wrap;align-items:flex-start;padding:.7rem 4vw;background:#131313;font-size:.72rem;border-top:1px solid rgba(255,255,255,.07);}
.subnav-link{display:flex;flex-direction:column;align-items:center;gap:.25rem;color:#d8d8d8;text-align:center;min-width:44px;}
.subnav-link .icon{font-size:1.15rem;line-height:1;display:flex;align-items:center;justify-content:center;}
.subnav-link .icon svg{width:22px;height:22px;display:block;}
.subnav-link:hover{color:#5b8bff;}

/* language switcher */
.lang-switcher{display:flex;gap:.4rem;flex-shrink:0;}
.lang-switcher a{font-size:.75rem;font-weight:700;color:#9a9a9a;padding:.3rem .5rem;border-radius:6px;letter-spacing:.03em;}
.lang-switcher a:hover{color:#fff;}
.lang-switcher a.active{color:#fff;background:rgba(255,255,255,.12);}
.mobile-lang-switcher{display:flex;gap:.6rem;padding:.9rem 1.2rem;border-bottom:1px solid rgba(255,255,255,.08);}
.mobile-lang-switcher a{font-size:.85rem;font-weight:700;color:#9a9a9a;padding:.3rem .6rem;border-radius:6px;}
.mobile-lang-switcher a.active{color:#fff;background:rgba(255,255,255,.12);}
@media (max-width:860px){
  .lang-switcher{display:none;}
}

/* hamburger button (mobile only) */
.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px;background:none;border:none;cursor:pointer;padding:0;flex-shrink:0;}
.hamburger span{display:block;width:100%;height:2px;background:#fff;border-radius:2px;}

/* mobile drawer */
.mobile-drawer-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:98;opacity:0;transition:opacity .2s ease;}
.mobile-drawer-backdrop.open{display:block;opacity:1;}
.mobile-drawer{position:fixed;top:0;right:0;bottom:0;width:82%;max-width:340px;background:var(--black);color:#fff;z-index:99;transform:translateX(100%);transition:transform .25s ease;overflow-y:auto;padding-bottom:1.5rem;}
.mobile-drawer.open{transform:translateX(0);}
.mobile-drawer-top{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.2rem;border-bottom:1px solid rgba(255,255,255,.1);}
.mobile-drawer-top .logo img{height:40px;}
.mobile-drawer-close{background:none;border:none;color:#fff;font-size:1.8rem;line-height:1;cursor:pointer;}
.mobile-nav-group{display:flex;flex-direction:column;padding:.6rem 0;border-bottom:1px solid rgba(255,255,255,.08);}
.mobile-nav-link{padding:.85rem 1.2rem;color:#f2f2f2;font-size:.98rem;display:flex;align-items:center;gap:.6rem;}
.mobile-nav-link:hover{color:#5b8bff;}
.mobile-nav-icons .mobile-nav-link .icon{font-size:1.1rem;display:inline-flex;align-items:center;justify-content:center;}
.mobile-nav-icons .mobile-nav-link .icon svg{width:20px;height:20px;display:block;}
body.no-scroll{overflow:hidden;}

/* map + google rating */
.map-block{position:relative;}
.map-block iframe{display:block;}
.map-rating-badge{position:absolute;left:.8rem;bottom:.8rem;background:#fff;color:var(--black);border-radius:10px;padding:.5rem .8rem;display:flex;align-items:center;gap:.5rem;box-shadow:0 8px 20px rgba(0,0,0,.25);font-size:.82rem;font-weight:600;}
.map-rating-badge .stars{color:#f5a623;letter-spacing:.05em;font-size:.8rem;}
.map-rating-badge .score{font-weight:700;}
.map-rating-badge .label{color:var(--gray-mid);font-weight:500;}
.map-block-large .map-rating-badge{left:1.2rem;bottom:1.2rem;padding:.7rem 1.1rem;font-size:.9rem;}

/* hero */
.hero{position:relative;color:var(--white);text-align:center;padding:7rem 4vw 5.5rem;background:var(--black);overflow:hidden;}
.hero img.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5;z-index:0;}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.15) 40%,rgba(0,0,0,.75) 100%);z-index:0;}
.hero-content{position:relative;z-index:1;max-width:780px;margin:0 auto;}
.hero-eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;color:#9db8ff;font-weight:600;margin-bottom:1rem;}
.hero h1{font-size:3.2rem;color:#fff;}
.hero h2{font-family:var(--sans);font-weight:400;font-size:1.15rem;color:#e8e8e8;margin-bottom:2rem;}

/* perks / stat strip */
.perks{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;background:var(--gray-lighter);border-radius:16px;margin:-3.5rem max(4vw,calc((100% - 1400px)/2)) 0;position:relative;z-index:2;padding:2rem 1.5rem;box-shadow:0 12px 30px rgba(0,0,0,.08);}
.perks-item{text-align:center;}
.perks-item .icon{font-size:1.8rem;display:flex;justify-content:center;margin-bottom:.5rem;color:var(--blue);}
.perks-item .icon svg{width:30px;height:30px;display:block;}
.perks-item h4{font-size:.92rem;margin:0;}

/* generic section */
section{padding:3.5rem 4vw;}
.section-title{text-align:center;margin-bottom:.4rem;}
.section-subtitle{text-align:center;color:var(--gray-mid);margin-bottom:2.2rem;font-size:1rem;}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.7rem;}
.card{border:1px solid var(--gray-border);border-radius:14px;overflow:hidden;background:var(--white);transition:transform .2s ease,box-shadow .2s ease;position:relative;}
.card:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(0,0,0,.1);}
.card img{aspect-ratio:4/3;object-fit:cover;width:100%;}
.card-body{padding:1.2rem;}
.card-body h3{margin-bottom:.3rem;}
.card-body h3 a:hover{color:var(--blue);}
.card-price{font-weight:700;color:var(--black);font-size:1.05rem;}
.badge{position:absolute;top:.9rem;right:.9rem;background:#fff;color:var(--black);font-size:.68rem;font-weight:700;padding:.35rem .3rem;border-radius:50%;width:2.4rem;height:2.4rem;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(0,0,0,.18);letter-spacing:.02em;}
.show-more-wrap{text-align:center;margin-top:2.2rem;}

/* reviews */
.reviews{background:var(--gray-lighter);border-radius:20px;margin:0 max(4vw,calc((100% - 1400px)/2));padding:3rem 2rem;}
.review-badges{display:flex;justify-content:center;gap:2.2rem;flex-wrap:wrap;margin-top:1.4rem;}
.review-badge{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--black);font-size:.82rem;font-weight:600;text-align:center;}
.review-badge svg{box-shadow:0 4px 12px rgba(0,0,0,.15);border-radius:50%;transition:transform .15s ease;}
.review-badge:hover svg{transform:translateY(-3px);}

/* Instagram follow card */
.insta-card{display:flex;align-items:center;gap:2rem;flex-wrap:wrap;background:var(--gray-lighter);border-radius:20px;padding:2rem;max-width:1400px;margin:0 auto;}
.insta-card-shot{flex-shrink:0;display:block;border-radius:16px;overflow:hidden;box-shadow:0 10px 26px rgba(0,0,0,.18);width:220px;height:340px;background:var(--gray-lighter);}
.insta-card-shot img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;}
.insta-card-handle{display:flex;align-items:center;gap:.7rem;margin-bottom:.5rem;}
.insta-card-handle svg{flex-shrink:0;box-shadow:0 4px 14px rgba(0,0,0,.15);border-radius:50%;}
.insta-card h4{margin:0;}
.insta-card p{color:var(--gray-mid);margin:0 0 .6rem;font-size:.92rem;}
.insta-card-promo{background:#fff;border:1px solid var(--gray-border);border-radius:10px;padding:.7rem .9rem;color:var(--black) !important;font-size:.88rem !important;}
.insta-card > div{flex:1;min-width:220px;}
@media (max-width:600px){
  .insta-card{padding:1.4rem;text-align:center;justify-content:center;}
  .insta-card-handle{justify-content:center;}
  .insta-card > div{flex:0 0 100%;}
  .insta-card-shot{width:100%;max-width:260px;height:auto;aspect-ratio:220/340;margin:0 auto;}
}

/* Instagram guest-tag screenshot carousel (real stories/posts tagging SeaLux) - same
   220:340 proportions as the profile screenshot in .insta-card-shot, so every Instagram
   image on the page reads as one consistent size/shape. */
.insta-tag-shot{border-radius:16px;overflow:hidden;box-shadow:0 10px 26px rgba(0,0,0,.14);background:var(--gray-lighter);max-width:220px;margin:0 auto;}
.insta-tag-shot img{width:100%;display:block;aspect-ratio:220/340;object-fit:cover;object-position:top;}

/* "Tagged by our guests" heading above the carousel - give it clear breathing room from
   the follow-card above and the photo row below so it reads as its own section, not a
   cramped label squeezed between two blocks. */
h3.section-title{margin:2.5rem 0 1.5rem;font-size:1.5rem;}
@media (max-width:600px){
  h3.section-title{margin:2rem 0 1.2rem;font-size:1.3rem;}
}

/* Persistent floating WhatsApp button - fixed on every page, above all content */
.whatsapp-float{position:fixed;right:1.4rem;bottom:1.4rem;width:58px;height:58px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.28);z-index:999;transition:transform .15s ease;}
.whatsapp-float:hover{transform:scale(1.08);}
@media (max-width:600px){
  .whatsapp-float{right:1rem;bottom:1rem;width:52px;height:52px;}
}

/* carousel (yachts / cars / reviews / videos) */
.carousel{position:relative;padding:0 2.6rem;}
.carousel-viewport{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;}
.carousel-viewport::-webkit-scrollbar{display:none;}
.carousel-track{display:flex;gap:1.7rem;}
.carousel-track>*{flex:0 0 calc(33.333% - 1.14rem);scroll-snap-align:start;min-width:0;}
.carousel-arrow{position:absolute;top:38%;width:46px;height:46px;border-radius:50%;background:#fff;box-shadow:0 6px 18px rgba(0,0,0,.16);display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;font-size:1.3rem;z-index:5;transition:background .15s ease;}
.carousel-arrow:hover{background:var(--gray-light);}
.carousel-arrow.prev{left:-4px;}
.carousel-arrow.next{right:-4px;}
@media (max-width:900px){
  .carousel-track>*{flex:0 0 100%;}
  .carousel{padding:0 2.2rem;}
}

/* review cards */
.review-card{background:#fff;border:1px solid var(--gray-border);border-radius:14px;padding:1.6rem;text-align:center;}
.review-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;margin:0 auto .8rem;}
.review-avatar-initials{width:64px;height:64px;border-radius:50%;background:var(--blue);color:#fff;font-weight:700;font-size:1.2rem;display:flex;align-items:center;justify-content:center;margin:0 auto .8rem;}
.review-stars{color:#f5a623;letter-spacing:.15em;margin-bottom:.5rem;}
.review-quote{color:#333;font-size:.95rem;font-style:italic;}
.review-name{font-weight:700;margin-top:.6rem;}

/* video cards */
.video-card{display:block;}
.video-embed{position:relative;padding-top:56.25%;border-radius:14px;overflow:hidden;background:#000;box-shadow:0 12px 30px rgba(0,0,0,.12);}
.video-embed img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .25s ease;}
.video-card:hover .video-embed img{transform:scale(1.05);}
.video-embed .play-badge{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--black);display:flex;align-items:center;justify-content:center;font-size:1.3rem;box-shadow:0 6px 20px rgba(0,0,0,.3);}
.video-meta{padding:.8rem .1rem 0;}
.video-title{font-family:var(--sans);font-size:.95rem;font-weight:600;color:var(--black);margin:0 0 .4rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.3;}
.video-stats{display:flex;gap:1rem;font-size:.8rem;color:var(--gray-mid);}
.video-stats span{display:inline-flex;align-items:center;gap:.35rem;}
.video-stats svg{width:15px;height:15px;flex-shrink:0;}

/* whatsapp-style review screenshots */
.review-shot{border-radius:16px;overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.12);background:var(--gray-lighter);height:380px;display:flex;align-items:center;justify-content:center;}
.review-shot img{width:auto;height:100%;max-width:100%;object-fit:contain;display:block;}

/* why-us photo gallery (brand story slides) */
.whyus-slide{border-radius:16px;overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.12);background:var(--gray-lighter);}
.whyus-slide img{width:100%;display:block;aspect-ratio:9/16;object-fit:cover;}

/* prominent map band, shown on every page just above the footer */
.map-section{background:var(--gray-lighter);padding:3.2rem 4vw;}
.map-section-inner{display:grid;grid-template-columns:1fr 1.4fr;gap:2.6rem;align-items:center;max-width:1200px;margin:0 auto;}
.map-section-text h2{margin-bottom:.6rem;}
.map-section-text p{color:#333;margin-bottom:.5rem;}
.map-section-text .btn{margin-top:.6rem;}
@media (max-width:820px){
  .map-section-inner{grid-template-columns:1fr;}
  .map-section{padding:2.4rem 5vw;}
}

/* why choose us */
.why-us-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.2rem;margin-bottom:2.2rem;}
.why-us-stat{background:var(--gray-lighter);border-radius:16px;padding:1.6rem 1.4rem;text-align:center;}
.why-us-stat h3{font-family:var(--serif);font-size:1.8rem;margin-bottom:.3rem;color:var(--blue);}
.why-us-stat p{color:var(--gray-mid);font-size:.9rem;margin:0;}
.why-us-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.8rem;}
.why-us-item{text-align:center;padding:1.5rem 1rem;}
.why-us-item .icon{font-size:2.2rem;display:flex;justify-content:center;margin-bottom:.7rem;color:var(--blue);}
.why-us-item .icon svg{width:36px;height:36px;display:block;}
.why-us-item h4{margin-bottom:.4rem;}
.why-us-item p{color:var(--gray-mid);font-size:.9rem;}

/* brand partners */
.partners-block{display:grid;grid-template-columns:1.1fr 1fr;gap:2.5rem;align-items:center;margin:2.6rem 0;background:var(--gray-lighter);border-radius:20px;padding:2rem;}
.partners-text h3{margin-bottom:.5rem;}
.partners-text p{color:var(--gray-mid);margin-bottom:1.1rem;}
.brand-pills{display:flex;flex-wrap:wrap;gap:.6rem;}
.brand-pills span{background:var(--white);border:1px solid var(--gray-border);border-radius:999px;padding:.4rem 1rem;font-size:.82rem;font-weight:600;}
.partners-img{width:100%;border-radius:14px;box-shadow:0 10px 26px rgba(0,0,0,.12);object-fit:cover;max-height:340px;}

/* booking steps */
.booking-steps{margin-top:2.6rem;}
.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.6rem;margin-top:1.2rem;}
.step-item{text-align:center;padding:1.4rem 1.1rem;border:1px solid var(--gray-border);border-radius:16px;}
.step-num{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:var(--blue);color:#fff;font-weight:700;margin-bottom:.7rem;}
.step-item h4{margin-bottom:.4rem;}
.step-item p{color:var(--gray-mid);font-size:.88rem;margin:0;}

@media (max-width:820px){
  .partners-block{grid-template-columns:1fr;}
  .partners-img{max-height:220px;}
}

/* brochure showcase (entertainment / catering / decoration pages) */
.brochure-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.7rem;margin-bottom:2rem;}
.brochure-grid img{border-radius:14px;box-shadow:0 10px 26px rgba(0,0,0,.1);}
.pro-card{text-align:center;}
.pro-card img{border-radius:14px;aspect-ratio:3/4;object-fit:cover;width:100%;box-shadow:0 10px 26px rgba(0,0,0,.1);}
.pro-card h4{margin:.8rem 0 .1rem;}
.pro-card p{color:var(--gray-mid);font-size:.85rem;margin:0;}

/* faq */
.faq{display:grid;grid-template-columns:280px 1fr;gap:2.5rem;align-items:start;}
/* top offset must clear the real sticky header height (header-top ~81px + subnav ~67px
   ~= 148px) - it was set to 120px, ~28px short, so on desktop the sticky FAQ aside card
   scrolled up partly behind/under the black header bar instead of stopping below it. */
.faq-aside{background:var(--gray-lighter);border-radius:16px;padding:2rem;text-align:center;position:sticky;top:158px;}
.faq-list{grid-column:2;}
.faq-item{border-bottom:1px solid var(--gray-border);padding:1.1rem 0;cursor:pointer;}
.faq-item h4{margin-bottom:0;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-weight:600;}
.faq-item h4::after{content:"+";font-size:1.3rem;color:var(--gray-mid);font-weight:400;transition:transform .15s ease;}
.faq-item.open h4::after{transform:rotate(45deg);}
.faq-item p{margin-top:.8rem;display:none;color:#444;}
.faq-item.open p{display:block;}

/* booking form */
.booking-form{display:flex;flex-direction:column;gap:.8rem;}
.booking-form input{padding:.8rem .9rem;border:1px solid var(--gray-border);border-radius:8px;font-size:1rem;font-family:var(--sans);}
.contact-method{display:flex;gap:1rem;font-size:.9rem;}
.consent{font-size:.75rem;color:var(--gray-mid);}

/* modal */
.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:100;align-items:center;justify-content:center;}
.modal.open{display:flex;}
.modal-content{background:#fff;padding:2.2rem;border-radius:16px;max-width:420px;width:92%;position:relative;max-height:90vh;overflow:auto;}
.modal-content h2{font-size:1.6rem;}
.modal-close{position:absolute;top:.8rem;right:1rem;background:none;border:none;font-size:1.5rem;cursor:pointer;}

/* footer */
.site-footer{background:var(--black);color:#e6e6e6;padding:3rem 4vw 1rem;}
.footer-inner{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2rem;max-width:1400px;margin-left:auto;margin-right:auto;}
.site-footer h4{color:#fff;margin-top:1.2rem;font-family:var(--sans);}
.site-footer a:hover{color:#5b8bff;}
.footer-bottom{grid-column:1/-1;border-top:1px solid #292929;margin-top:1rem;padding-top:1rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.8rem;color:#999;}
.footer-bottom img{height:34px;}
.footer-bottom nav{display:flex;gap:1rem;flex-wrap:wrap;}

/* contact info strip (about/contact pages) */
.info-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;background:var(--gray-lighter);border-radius:16px;padding:2rem;margin-bottom:2rem;}
.info-strip .icon{color:var(--blue);font-size:1.3rem;margin-right:.4rem;}

/* yacht/car detail */
.detail-hero{display:grid;grid-template-columns:1.2fr 1fr;gap:2.5rem;align-items:start;margin:2rem max(4vw,calc((100% - 1400px)/2)) 0;}
.detail-hero img{border-radius:14px;box-shadow:0 12px 30px rgba(0,0,0,.1);}
.spec-table{width:100%;border-collapse:collapse;margin:1rem 0;}
.spec-table td,.spec-table th{border:1px solid var(--gray-border);padding:.6rem;text-align:left;}
/* 2-column label/value spec tables (water sports) - always narrow, never need the
   horizontal-scroll treatment the wide multi-column yacht/car spec tables need. */
.kv-table th{width:42%;background:var(--gray-lighter);}
.detail-hero h1{font-size:2.4rem;}
.price-tabs{display:flex;gap:1rem;margin:1rem 0;flex-wrap:wrap;}
.price-tab{border:1px solid var(--gray-border);border-radius:12px;padding:.9rem 1.3rem;background:var(--gray-lighter);}
.breadcrumb{padding:1rem 4vw 0;font-size:.82rem;color:var(--gray-mid);}
.breadcrumb a:hover{color:var(--blue);}

/* responsive */
@media (max-width:900px){
  .perks{grid-template-columns:repeat(2,1fr);}
  .faq{grid-template-columns:1fr;}
  .faq-aside{position:static;}
  /* .faq-list is pinned to column 2 in the desktop 2-column grid; once the grid
     collapses to a single column above, that explicit column index would create
     a stray extra implicit column and push the whole FAQ list off-screen with a
     horizontal-scroll gap. Reset it to the (only) first column on mobile. */
  .faq-list{grid-column:1;}
}
@media (max-width:860px){
  .main-nav,.subnav{display:none;}
  .hamburger{display:flex;}
  .header-top{flex-wrap:nowrap;padding:.8rem 4vw;gap:.6rem;}
  .logo img{height:36px;}
  .book-btn{padding:.55rem .85rem;font-size:.76rem;white-space:nowrap;}
}
/* Below ~380px even a shrunk logo + "Book a Yacht" pill + hamburger can outgrow the
   viewport width. The same CTA already lives at the bottom of the mobile drawer, so
   it's safe to drop the header pill here rather than risk horizontal overflow. */
@media (max-width:380px){
  .book-btn{display:none;}
}
@media (min-width:861px){
  .mobile-drawer,.mobile-drawer-backdrop{display:none !important;}
}
@media (max-width:820px){
  h1{font-size:2.2rem;}
  h2{font-size:1.7rem;}
  .detail-hero{grid-template-columns:1fr;}
  .detail-hero h1{font-size:1.9rem;}
  .hero{padding:5rem 5vw 4rem;}
  .hero h1{font-size:2.1rem;}
  .hero h2{font-size:1rem;}
  section{padding:2.6rem 5vw;}
  .why-us-stats,.why-us-grid,.steps-grid{gap:1.1rem;}
  .spec-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .spec-table{min-width:480px;}
  .kv-table{min-width:0;}
}
@media (max-width:520px){
  h1{font-size:1.9rem;}
  h2{font-size:1.5rem;}
  .perks{grid-template-columns:repeat(2,1fr);gap:1rem;padding:1.4rem 1rem;margin:-2.6rem 4vw 0;}
  .perks-item .icon{font-size:1.5rem;}
  .hero h1{font-size:1.7rem;}
  .detail-hero h1{font-size:1.6rem;}
  .hero-eyebrow{font-size:.66rem;}
  .carousel{padding:0 1.8rem;}
  .carousel-arrow{width:38px;height:38px;font-size:1.1rem;}
  .carousel-track>*{flex:0 0 100%;}
  .review-shot{height:300px;}
  .partners-block{padding:1.3rem;}
  .modal-content{padding:1.6rem;}
  .site-footer{padding:2.2rem 5vw 1rem;}
}

/* Keep content readable on very wide desktop monitors (1600px+). These containers
   already get their side gutter from a padded parent (section/header), so capping
   and centering them here has no effect until the viewport is wider than ~1400px
   plus the existing gutter - no regression on normal laptop/desktop widths. */
.header-top,.subnav,.grid,.why-us-grid,.why-us-stats,.steps-grid,.faq,.brochure-grid,.carousel{
  max-width:1400px;margin-left:auto;margin-right:auto;
}
