/* ── NAVAWAVE STATS ── */
.nw-stats {
  display: flex;
  flex-direction: column;
  gap: 0;
  align-self: stretch;
}
.nws {
  flex: 1;
  padding: 32px 40px;
  border-left: 1px solid var(--gold-border);
  border-bottom: 1px solid rgba(198,161,91,.12);
  position: relative;
  transition: background .4s;
}
.nws:last-child { border-bottom: none; }
.nws::after {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 2px;
  background: var(--gold);
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform .5s ease;
}
.nws:hover::after { transform: scaleY(1); }
.nws:hover { background: rgba(198,161,91,.04); }
.nws-n {
  font-family: var(--font-serif);
  font-size: clamp(42px, 4vw, 58px);
  font-weight: 400;
  color: var(--white);
  line-height: 1;
  letter-spacing: -.02em;
  display: block;
  margin-bottom: 8px;
}
.nws-sup {
  font-size: .38em;
  color: var(--gold);
  vertical-align: super;
  font-weight: 300;
  letter-spacing: 0;
}
.nws-l {
  font-size: 10px;
  letter-spacing: .48em;
  text-transform: uppercase;
  color: var(--text-dim);
  line-height: 1;
}

@media(max-width:1024px) {
  .nw-stats { flex-direction: row; flex-wrap: wrap; }
  .nws { flex: 1 1 45%; border-left: none; border-bottom: 1px solid var(--gold-border); border-top: 1px solid rgba(198,161,91,.12); }
}
@media(max-width:600px) {
  .nw-stats { flex-direction: row; flex-wrap: wrap; }
  .nws { flex: 1 1 50%; padding: 24px 20px; border-left: none; border-right: none; }
  .nws-n { font-size: 38px; }
}

/* ============================================
   NAVAWAVE — SHARED STYLESHEET v2
   Luxury Yacht Charter & Concierge
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Jost:wght@200;300;400;500&display=swap');

:root {
  --navy:        #0D1B2A;
  --navy-mid:    #152236;
  --navy-light:  #1E3148;
  --white:       #FFFFFF;
  --off-white:   #F5F5F0;
  --gold:        #C6A15B;
  --gold-light:  #D4B578;
  --gold-faint:  rgba(198,161,91,.10);
  --gold-border: rgba(198,161,91,.28);
  --azure:       #4A9BAB;
  --azure-faint: rgba(74,155,171,.12);
  --text-dim:    rgba(255,255,255,.55);
  --text-dimmer: rgba(255,255,255,.28);
  --border:      rgba(255,255,255,.08);
  --border-mid:  rgba(255,255,255,.14);
  --card-bg:     #111C29;
  --section-alt: #0A1520;
  --font-serif:  'Playfair Display', Georgia, serif;
  --font-sans:   'Jost', 'Helvetica Neue', sans-serif;
  --section-pad: 90px;
  --section-pad-sm: 80px;
  --inner-max:   1320px;
  --inner-pad:   72px;
}

*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
img, video { display:block; max-width:100%; vertical-align:top; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  background:var(--navy);
  color:var(--white);
  font-family:var(--font-sans);
  font-weight:300;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
a { cursor: none; }

/* ── CUSTOM CURSOR ── */
body { cursor:none; }
.cursor-dot {
  position:fixed; width:6px; height:6px;
  background:var(--gold); border-radius:50%;
  pointer-events:none; z-index:99999;
  opacity:0;
  transform:translate(-50%,-50%);
  transition:width .2s,height .2s,background .2s;
}
.cursor-circle {
  position:fixed; width:38px; height:38px;
  border:1px solid rgba(198,161,91,.45); border-radius:50%;
  pointer-events:none; z-index:99998;
  transform:translate(-50%,-50%);
  transition:border-color .3s,transform .08s,opacity .3s;
  opacity:0;
}
body.cursor-hover .cursor-dot   { width:10px;height:10px;background:var(--azure); }
body.cursor-hover .cursor-circle{ border-color:rgba(74,155,171,.5);transform:translate(-50%,-50%) scale(1.6); }

/* ── PAGE LOADER ── */
#page-loader {
  position:fixed; inset:0; background:var(--navy);
  z-index:100000; display:flex; align-items:center;
  justify-content:center; flex-direction:column; gap:18px;
  transition:opacity .9s ease,visibility .9s ease;
}
#page-loader.out { opacity:0; visibility:hidden; }

/* ── LOADER WAVE MARK ── */
.loader-wave-mark {
  animation: loaderPulse 1.6s ease-in-out infinite;
}
.loader-wave-mark svg path {
  stroke-dasharray: 400;
  stroke-dashoffset: 400;
  animation: drawPath 1.5s ease forwards;
}
.loader-wave-mark svg path:nth-child(2) {
  animation-delay: 0.2s;
}
@keyframes drawPath {
  to { stroke-dashoffset: 0; }
}

@keyframes loaderPulse { 0%,100%{opacity:.4;transform:scale(.97)} 50%{opacity:1;transform:scale(1)} }
.loader-bar { width:0;height:1px;background:var(--gold);animation:growBar 1.7s ease forwards; }
@keyframes growBar { to{width:100px} }
.loader-name {
  font-family: var(--font-serif);
  font-weight: 400;
  font-style: italic;
  font-size: 24px;
  letter-spacing: .08em;
  text-transform: none;
  color: rgba(255,255,255,.45);
}

/* ── NAVBAR ── */
#nav {
  position:fixed;top:0;left:0;right:0;z-index:9000;
  padding:28px var(--inner-pad);
  display:flex;align-items:center;justify-content:space-between;
  transition:padding .5s,background .5s,backdrop-filter .5s;
}
#nav.scrolled {
  padding:16px var(--inner-pad);
  background:rgba(13,27,42,.95);
  backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
}
.nav-brand { display:flex;align-items:center;text-decoration:none;cursor:default; }
.nav-brand img { height: auto; }
.nav-brand-sub { font-size: 9px;letter-spacing:.42em;text-transform:uppercase;color:var(--text-dim); display:none; }

/* Transparent PNG logo — original brand colors on dark background */
.nav-logo-img {
  height: 46px;
  width: auto;
  max-width: 120px;
  padding: 10px 0;
  box-sizing: content-box;
  object-fit: contain;
  transition: opacity .3s;
  display: block;
  /* Slightly brighten the grey text so it pops on navy */
  filter: brightness(1.4) contrast(1.1);
}
.nav-logo-img:hover { opacity: .82; }

/* Footer logo */
.footer-logo-img {
  width: 130px;
  height: auto;
  object-fit: contain;
  margin-bottom: 14px;
  display: block;
  filter: brightness(1.4) contrast(1.1);
}

/* Loader wave image */
.loader-wave-img {
  width: 100px;
  height: auto;
  animation: loaderPulse 1.6s ease-in-out infinite;
  filter: brightness(1.3);
}
@keyframes loaderPulse {
  0%,100% { opacity:.3; transform:scale(.95); }
  50%      { opacity:1;  transform:scale(1);   }
}
.nav-links { display:flex;gap:38px;list-style:none; }
.nav-links a {
  font-size: 12px;font-weight:400;letter-spacing:.26em;text-transform:uppercase;
  color:var(--text-dim);text-decoration:none;position:relative;transition:color .3s;
}
.nav-links a::after { content:'';position:absolute;bottom:-5px;left:0;width:0;height:1px;background:var(--gold);transition:width .3s; }
.nav-links a:hover,.nav-links a.active { color:var(--white); }
.nav-links a:hover::after,.nav-links a.active::after { width:100%; }
.nav-right { display:flex;align-items:center;gap:20px; }
.nav-lang { font-size: 11px;letter-spacing:.25em;color:var(--text-dim);cursor:pointer;transition:color .3s;font-weight:400; }
.nav-lang.on { color:var(--gold); }
.nav-lang:hover { color:var(--white); }
.nav-sep { color:var(--border-mid);font-size: 14px; }
.nav-cta {
  font-size: 11px;letter-spacing:.32em;text-transform:uppercase;
  font-weight:500;color:var(--navy);background:var(--gold);
  padding:11px 24px;text-decoration:none;transition:background .3s;
}
.nav-cta:hover { background:var(--gold-light); }

/* ── MOBILE NAV BURGER ── */
#nav-burger { display:none;background:none;border:none;padding:4px;cursor:pointer; }
#mobile-menu {
  display:none;position:fixed;inset:0;background:rgba(13,27,42,.98);
  z-index:8999;flex-direction:column;align-items:center;justify-content:center;gap:28px;
  backdrop-filter:blur(10px);
}
#mobile-menu.open { display:flex; }
#mobile-menu a {
  font-size: 16px;letter-spacing:.3em;text-transform:uppercase;color:var(--white);
  text-decoration:none;opacity:.7;transition:opacity .3s;
}
#mobile-menu a:hover { opacity:1;color:var(--gold); }
.mobile-close {
  position:absolute;top:28px;right:28px;background:none;border:none;
  color:var(--white);font-size: 30px;cursor:pointer;opacity:.6;transition:opacity .3s;
}
.mobile-close:hover { opacity:1; }

/* ── HERO BASE ── */
.hero { position:relative;width:100%;height:100vh;min-height:680px;display:flex;align-items:center;justify-content:center;overflow:hidden; }
.hero-media { position:absolute;inset:0;z-index:0; }
.hero-media iframe,.hero-media video {
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:177.78vh;height:100vh;min-width:100%;min-height:56.25vw;
  pointer-events:none;border:none;
}
.hero-media img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover; }
.hero-grad {
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(to bottom,rgba(13,27,42,.38) 0%,rgba(13,27,42,.18) 40%,rgba(13,27,42,.65) 75%,rgba(13,27,42,1) 100%);
}
.hero-body { position:relative;z-index:2;text-align:center;padding:0 24px;max-width:900px; }
.hero-eyebrow { font-size: 11px;letter-spacing:.55em;text-transform:uppercase;color:var(--gold);margin-bottom:24px;font-weight:400;animation:fadeUp 1.2s ease .4s both; }
.hero-h1 { font-family:var(--font-serif);font-size:clamp(36px,4.8vw,72px);font-weight:400;line-height:1.12;color:var(--white);margin-bottom:24px;animation:fadeUp 1.2s ease .7s both; }
.hero-h1 em { font-style:italic;color:var(--azure); }
.hero-lead { font-size: 16px;letter-spacing:.12em;color:var(--text-dim);line-height:2.1;max-width:560px;margin:0 auto 44px;font-weight:300;animation:fadeUp 1.2s ease .95s both; }
.hero-actions { display:flex;gap:16px;justify-content:center;animation:fadeUp 1.2s ease 1.15s both; }
.hero-scroll-hint { position:absolute;bottom:36px;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:10px;animation:fadeUp 1.2s ease 1.5s both; }
.hero-scroll-hint span { font-size: 9px;letter-spacing:.5em;text-transform:uppercase;color:var(--text-dimmer); }
.scroll-needle { width:1px;height:54px;background:linear-gradient(var(--gold),transparent);animation:needlePulse 2.2s ease-in-out infinite; }
@keyframes needlePulse { 0%,100%{opacity:.3}50%{opacity:1} }

/* ── ANIMATIONS ── */
@keyframes fadeUp { from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)} }
.reveal { opacity:0;transform:translateY(36px);transition:opacity .85s ease,transform .85s ease; }
.reveal.in { opacity:1;transform:translateY(0); }
.reveal.d1{transition-delay:.1s}.reveal.d2{transition-delay:.22s}
.reveal.d3{transition-delay:.34s}.reveal.d4{transition-delay:.46s}
.reveal.d5{transition-delay:.58s}

/* ── SECTION WRAPPER ── */
.wrap { max-width:var(--inner-max);margin:0 auto;padding:0 var(--inner-pad); }
section.s-pad { padding:var(--section-pad) 0; }
section.s-pad-sm { padding:var(--section-pad-sm) 0; }
.s-alt { background:var(--section-alt); }
.s-card { background:var(--card-bg); }

/* Bilingual journal content: show only the block matching the current language.
   applyLang() sets <html lang="..">, so these rules follow the toggle. */
html[lang="it"] .nw-only-en { display:none !important; }
html:not([lang="it"]) .nw-only-it { display:none !important; }

/* Lightbox scroll-lock via class (NOT inline style): an inline "overflow:hidden"
   on <body> would match the [style*="overflow:hidden"] rule below and give the
   body a transform, which turns it into the containing block for the fixed
   lightbox overlay — breaking its centering. A class avoids that. */
body.nw-lb-open { overflow: hidden !important; }

/* ── Services grid (home + reused on About / other pages) ──
   Base rules live here (global) so the block renders as a grid everywhere,
   not only on the homepage where they used to be inlined. */
.svc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); border:1px solid var(--border); }
.svc-card { background:var(--navy); padding:44px 36px; position:relative; overflow:hidden; transition:background .4s; line-height:0; font-size:0; }
.svc-card::after { content:''; position:absolute; bottom:0; left:0; width:0; height:2px; background:var(--gold); transition:width .5s; }
.svc-card:hover { background:var(--gold-faint); }
.svc-card:hover::after { width:100%; }
.svc-icon { font-size:22px; margin-bottom:20px; display:block; opacity:.65; }
.svc-name { font-family:var(--font-serif); font-size:21px; font-weight:400; color:var(--white); margin-bottom:12px; }
.svc-desc { font-size:16px; letter-spacing:.04em; color:var(--text-dim); line-height:1.95; }
@media (max-width:1024px){ .svc-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){  .svc-grid{ grid-template-columns:1fr; } }
.divider { width:100%;height:1px;background:var(--border); }

/* ── SECTION LABELS ── */
.s-tag { font-size: 10px;letter-spacing:.55em;text-transform:uppercase;color:var(--gold);margin-bottom:18px;font-weight:400; }
.s-line { width:36px;height:1px;background:var(--gold);margin-bottom:28px; }
.s-title { font-family:var(--font-serif);font-size:clamp(32px,3.8vw,56px);font-weight:400;line-height:1.12;color:var(--white);margin-bottom:18px; }
.s-title em { font-style:italic;color:var(--azure); }
.s-title.large { font-size:clamp(38px,5vw,70px); }
.s-body { font-size: 16px;letter-spacing:.05em;color:var(--text-dim);line-height:2.1;font-weight:300; }
.s-body p { margin-bottom:20px; }

/* ── BUTTONS ── */
.btn-gold {
  display:inline-block;font-size: 11px;letter-spacing:.36em;text-transform:uppercase;
  font-weight:500;color:var(--navy);background:var(--gold);
  padding:15px 40px;text-decoration:none;transition:background .3s,transform .2s;
}
.btn-gold:hover { background:var(--gold-light);transform:translateY(-1px); }
.btn-primary {
  display:inline-block;font-size: 11px;letter-spacing:.36em;text-transform:uppercase;
  font-weight:500;color:var(--navy);background:var(--gold);
  padding:15px 40px;text-decoration:none;transition:background .3s,transform .2s;
}
.btn-primary:hover { background:var(--gold-light);transform:translateY(-1px); }
.btn-outline {
  display:inline-block;font-size: 11px;letter-spacing:.36em;text-transform:uppercase;
  font-weight:400;color:var(--white);border:1px solid var(--gold-border);
  padding:14px 38px;text-decoration:none;position:relative;overflow:hidden;
  transition:color .35s,border-color .35s;
}
.btn-outline::before { content:'';position:absolute;inset:0;background:var(--gold-faint);transform:translateX(-101%);transition:transform .35s ease;z-index:0; }
.btn-outline span { position:relative;z-index:1; }
.btn-outline:hover { color:var(--gold);border-color:var(--gold); }
.btn-outline:hover::before { transform:translateX(0); }
.btn-text { display:inline-flex;align-items:center;gap:10px;font-size: 11px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);text-decoration:none;font-weight:400;transition:gap .3s; }
.btn-text:hover { gap:16px; }
.btn-text::after { content:'→';font-size: 15px; }

/* ── FOOTER ── */
footer { background:var(--section-alt);border-top:1px solid var(--border);padding:80px 0 36px; }
.footer-grid { display:grid;grid-template-columns:2.2fr 1fr 1fr 1.1fr;gap:64px;margin-bottom:64px; }
.footer-brand-name { font-family:var(--font-sans);font-weight:200;font-size: 18px;letter-spacing:.38em;text-transform:uppercase;color:var(--white);margin:8px 0 3px; }
.footer-brand-sub { font-size: 9px;letter-spacing:.42em;text-transform:uppercase;color:var(--text-dim);margin-bottom:18px; }

.footer-about { font-size: 13px;color:var(--text-dim);line-height:1.9;max-width:280px; }
.footer-social { display:flex;gap:18px;margin-top:18px; }
.footer-social a { font-size: 10px;letter-spacing:.28em;text-transform:uppercase;color:var(--text-dim);text-decoration:none;border-bottom:1px solid var(--border);padding-bottom:3px;transition:color .3s,border-color .3s; }
.footer-social a:hover { color:var(--gold);border-color:var(--gold); }
.footer-col h4 { font-size: 10px;letter-spacing:.45em;text-transform:uppercase;color:var(--gold);margin-bottom:22px; }
.footer-col ul { list-style:none; }
.footer-col ul li { margin-bottom:11px; }
.footer-col ul li a { font-size: 13px;color:var(--text-dim);text-decoration:none;letter-spacing:.04em;transition:color .3s; }
.footer-col ul li a:hover { color:var(--white); }
.footer-col p { font-size: 13px;color:var(--text-dim);line-height:1.9;letter-spacing:.03em; }
.footer-bottom { border-top:1px solid var(--border);padding-top:26px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px; }
.footer-copy { font-size: 11px;letter-spacing:.15em;color:var(--text-dimmer); }
.footer-legal { display:flex;gap:22px; }
.footer-legal a { font-size: 11px;letter-spacing:.15em;color:var(--text-dimmer);text-decoration:none;transition:color .3s; }
.footer-legal a:hover { color:var(--text-dim); }

/* ── WHATSAPP ── */
/* ── LUXURY WHATSAPP ── */
.wa-float {
  position: fixed;
  bottom: 36px; right: 36px;
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(13,27,42,.92);
  backdrop-filter: blur(12px);
  border: 1px solid var(--gold-border);
  padding: 12px 20px 12px 14px;
  text-decoration: none;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .5s ease, transform .5s ease, border-color .3s, background .3s;
  pointer-events: none;
}
.wa-float.visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: all;
}
.wa-float:hover {
  border-color: var(--gold);
  background: rgba(13,27,42,.98);
}
.wa-float-icon {
  width: 20px; height: 20px;
  fill: var(--gold);
  flex-shrink: 0;
}
.wa-float-text {
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--white);
  font-family: var(--font-sans);
  font-weight: 400;
  white-space: nowrap;
}

/* ── GDPR COOKIE BANNER ── */
/* ══════════════════════════════════════════════════════
   GDPR COOKIE BANNER — NAVAWAVE
   Fully compliant, luxury design
   ══════════════════════════════════════════════════════ */

/* ── Main banner (bottom bar) ── */
#nw-cookie-banner {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 99990;
  background: rgba(10, 20, 32, 0.97);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-top: 1px solid rgba(198,161,91,.2);
  padding: 28px 40px;
  transform: translateY(110%);
  transition: transform .5s cubic-bezier(.22,.61,.36,1);
  font-size: 0; line-height: 0;
}
#nw-cookie-banner.nw-cb-show { transform: translateY(0); }

.nw-cb-inner {
  display: flex;
  align-items: center;
  gap: 40px;
  max-width: 1360px;
  margin: 0 auto;
  font-size: initial;
  line-height: normal;
}
.nw-cb-text-wrap { flex: 1; }
.nw-cb-title {
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 400;
  color: var(--white);
  margin: 0 0 8px;
  letter-spacing: .02em;
}
.nw-cb-text {
  font-size: 13px;
  color: var(--text-dim);
  line-height: 1.85;
  letter-spacing: .02em;
  margin: 0;
}
.nw-cb-text a {
  color: var(--gold);
  text-decoration: none;
  border-bottom: 1px solid rgba(198,161,91,.3);
  transition: border-color .2s;
}
.nw-cb-text a:hover { border-color: var(--gold); }

.nw-cb-actions {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
  align-items: center;
}
.nw-cb-btn {
  font-family: var(--font-sans);
  font-size: 10px;
  letter-spacing: .32em;
  text-transform: uppercase;
  font-weight: 400;
  cursor: pointer;
  border: 1px solid;
  padding: 11px 7px;
  transition: all .25s;
  white-space: nowrap;
  background: none;
}

/* Backdrop scuro fullscreen quando il banner cookie è attivo (forza scelta) */
body.nw-cb-active::before {
  content: '';
  position: fixed;
  inset: 0;
  background: rgba(13,27,42,.72);
  backdrop-filter: blur(2px);
  z-index: 9998;
  pointer-events: auto;
}
body.nw-cb-active #nw-cookie-banner { z-index: 9999; }
body.nw-cb-active { overflow: hidden; }
.nw-cb-btn-accept {
  background: var(--gold);
  color: var(--navy);
  border-color: var(--gold);
}
.nw-cb-btn-accept:hover {
  background: #d4b97a;
  border-color: #d4b97a;
}
.nw-cb-btn-reject {
  color: var(--text-dim);
  border-color: rgba(255,255,255,.15);
}
.nw-cb-btn-reject:hover {
  color: var(--white);
  border-color: rgba(255,255,255,.4);
}
.nw-cb-btn-settings {
  color: var(--gold);
  border-color: var(--gold);
  background: transparent;
}
.nw-cb-btn-settings:hover {
  background: var(--gold);
  color: var(--navy);
  border-color: var(--gold);
}

/* ── Preferences panel (overlay) ── */
#nw-cookie-prefs {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 99995;
  background: rgba(8, 16, 26, .85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  align-items: center;
  justify-content: center;
  padding: 24px;
}
#nw-cookie-prefs.nw-prefs-show { display: flex; }

.nw-prefs-panel {
  background: #0b1828;
  border: 1px solid rgba(198,161,91,.2);
  max-width: 600px;
  width: 100%;
  max-height: 88vh;
  overflow-y: auto;
  padding: 48px;
  position: relative;
  animation: nwPrefsIn .35s cubic-bezier(.22,.61,.36,1);
}
@keyframes nwPrefsIn {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
.nw-prefs-close {
  position: absolute;
  top: 20px; right: 24px;
  background: none;
  border: none;
  color: rgba(255,255,255,.4);
  font-size: 24px;
  cursor: pointer;
  line-height: 1;
  transition: color .2s;
}
.nw-prefs-close:hover { color: var(--white); }

.nw-prefs-logo {
  width: 60px;
  margin-bottom: 28px;
  opacity: .7;
}
.nw-prefs-title {
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 400;
  color: var(--white);
  margin: 0 0 10px;
}
.nw-prefs-subtitle {
  font-size: 13px;
  color: var(--text-dim);
  line-height: 1.85;
  margin: 0 0 36px;
}

/* Category rows */
.nw-cat {
  border-top: 1px solid rgba(255,255,255,.07);
  padding: 22px 0;
}
.nw-cat:last-of-type { border-bottom: 1px solid rgba(255,255,255,.07); }
.nw-cat-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.nw-cat-name {
  font-size: 13px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--white);
  font-weight: 400;
}
.nw-cat-badge {
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
  opacity: .7;
}
.nw-cat-desc {
  font-size: 12.5px;
  color: var(--text-dim);
  line-height: 1.85;
  margin: 0;
}

/* Toggle switch */
.nw-toggle {
  position: relative;
  width: 40px;
  height: 22px;
  flex-shrink: 0;
  margin-left: 16px;
}
.nw-toggle input { opacity: 0; width: 0; height: 0; position: absolute; }
.nw-toggle-track {
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 11px;
  cursor: pointer;
  transition: background .3s, border-color .3s;
}
.nw-toggle-track::after {
  content: '';
  position: absolute;
  width: 14px; height: 14px;
  top: 3px; left: 3px;
  background: rgba(255,255,255,.4);
  border-radius: 50%;
  transition: transform .3s, background .3s;
}
.nw-toggle input:checked + .nw-toggle-track {
  background: rgba(198,161,91,.25);
  border-color: rgba(198,161,91,.5);
}
.nw-toggle input:checked + .nw-toggle-track::after {
  transform: translateX(18px);
  background: var(--gold);
}
.nw-toggle input:disabled + .nw-toggle-track {
  opacity: .5;
  cursor: not-allowed;
}

/* Prefs footer */
.nw-prefs-footer {
  margin-top: 32px;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.nw-prefs-footer .nw-cb-btn { flex: 1 1 auto; text-align: center; min-width: max-content; padding-left: 16px; padding-right: 16px; }

/* Manage cookie link in footer */
.nw-manage-link {
  font-size: 10px;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--text-dim);
  text-decoration: none;
  cursor: pointer;
  background: none;
  border: none;
  font-family: var(--font-sans);
  padding: 0;
  transition: color .2s;
}
.nw-manage-link:hover { color: var(--gold); }

/* Responsive */
@media (max-width: 768px) {
  #nw-cookie-banner { padding: 24px 20px; }
  .nw-cb-inner { flex-direction: column; align-items: flex-start; gap: 20px; }
  .nw-cb-actions { width: 100%; flex-direction: column; }
  .nw-cb-btn { width: 100%; text-align: center; }
  .nw-prefs-panel { padding: 32px 24px; }
}


/* ── PAGE HERO (inner pages) ── */
.page-hero { position:relative;height:68vh;min-height:500px;display:flex;align-items:flex-end;overflow:hidden; }
.page-hero img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.5); }
.page-hero-grad { position:absolute;inset:0;background:linear-gradient(to bottom,rgba(13,27,42,.1) 0%,rgba(13,27,42,.98) 100%); }
.page-hero-body { position:relative;z-index:2;padding:0 var(--inner-pad) 70px;max-width:var(--inner-max);margin:0 auto;width:100%; }

/* ── SCROLL PROGRESS BAR ── */
#progress-bar { position:fixed;top:0;left:0;height:2px;background:var(--gold);z-index:99999;width:0;transition:width .1s linear; }

/* ============================================
   MOBILE FIXES — comprehensive
   ============================================ */

/* 1. Hide custom cursor on touch devices */
@media (hover: none), (pointer: coarse) {
  body { cursor: auto !important; }
  .cursor-dot, .cursor-circle { display: none !important; }
  a, button { cursor: pointer !important; }
}

/* 2. General mobile layout */
@media (max-width: 768px) {

  /* Navbar — tighten up */
  #nav { padding: 16px 20px; }
  #nav.scrolled { padding: 12px 20px; }
  .nav-logo-img { height: 38px; width: auto; max-width: 130px; }
  .nav-cta { padding: 9px 16px; font-size: 10px; letter-spacing: .22em; }
  .nav-sep { display: none; }
  /* Hide language switcher on very small screens to save space */
  @media (max-width: 380px) {
    .nav-lang { display: none; }
  }

  /* Hero */
  .hero-h1 { font-size: 32px; line-height: 1.12; }
  .hero-lead { font-size: 16px; letter-spacing: .06em; margin-bottom: 32px; }
  .hero-eyebrow { font-size: 10px; letter-spacing: .35em; margin-bottom: 16px; }
  .hero-actions { flex-direction: column; align-items: center; gap: 12px; }
  .hero-actions .btn-gold,
  .hero-actions .btn-outline { width: 80%; text-align: center; }

  /* Section spacing */
  section.s-pad { padding: 64px 0; }
  .wrap { padding: 0 20px; }
  .s-title { font-size: 28px; }
  .s-title.large { font-size: 32px; }
  .s-body { font-size: 16px; line-height: 1.9; }

  /* All 2-col grids -> 1 col */
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns: 1fr 1fr"],
  [style*="grid-template-columns:1fr 1.6fr"],
  [style*="grid-template-columns:1.4fr 1fr"],
  [style*="grid-template-columns:1fr 1.5fr"],
  [style*="grid-template-columns:2fr 1fr"],
  [style*="grid-template-columns:1fr 2fr"] {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }

  /* Stats grid — 2 col on mobile */
  

  /* Fleet */
  .fleet-row { grid-template-columns: 1fr !important; }
  .fleet-more { padding: 36px 24px; }
  .fleet-more-num { font-size: 52px; }

  /* Services grid */
  .svc-grid { grid-template-columns: 1fr !important; }

  /* Destinations mosaic */
  .dest-mosaic { 
    grid-template-columns: 1fr !important; 
    grid-template-rows: auto !important; 
    gap: 2px;
  }
  .dest-card:first-child { grid-row: auto !important; }
  .dest-card { min-height: 240px; }

  /* About section */
  .about-split { grid-template-columns: 1fr !important; gap: 40px !important; }
  .about-img-wrap img { aspect-ratio: 3/2; }
  .about-img-accent { display: none; }
  .about-badge { display: none; }

  /* Concierge banner */
  .cb-inner { flex-direction: column; gap: 32px; }
  .cb-icons { gap: 20px; }

  /* Events strip */
  .events-inner { grid-template-columns: 1fr !important; gap: 36px !important; }
  .events-types { grid-template-columns: 1fr 1fr; }

  /* Blog */
  .blog-row { grid-template-columns: 1fr !important; }

  /* Footer */
  .footer-grid { grid-template-columns: 1fr !important; gap: 36px; }
  .footer-bottom { flex-direction: column; text-align: center; gap: 12px; }
  .footer-legal { justify-content: center; }

  /* Page heroes */
  .page-hero { height: 50vh; min-height: 320px; }
  .page-hero-body { padding: 0 20px 40px; }

  /* Yacht cards */
  .yacht-card { aspect-ratio: 4/3; }
  .yc-link { opacity: 1; transform: translateY(0); }

  /* Spec table */
  .spec-cols { grid-template-columns: 1fr !important; gap: 40px !important; }

  /* Team grid */
  .team-grid { display:grid; grid-template-columns: repeat(4,1fr); gap:2px; margin-top:64px; }
  
  .team-founder .team-img-wrap { aspect-ratio:3/4; }

  /* Crew grid */
  .crew-grid { grid-template-columns: 1fr !important; }

  /* Services blocks */
  .svc-block { grid-template-columns: 1fr !important; gap: 36px !important; }
  .svc-block.reverse .svc-block-img { order: 0 !important; }
  .svc-block.reverse .svc-block-text { order: 0 !important; }
  .svc-block-img img { aspect-ratio: 16/9; }

  /* Destination full blocks */
  .dest-full { grid-template-columns: 1fr !important; }
  .dest-full:nth-child(even) .dest-full-img { order: 0 !important; }
  .dest-full:nth-child(even) .dest-full-text { order: 0 !important; }
  .dest-full-img { min-height: 280px !important; }
  .dest-full-text { padding: 40px 20px !important; }
  .dest-num { display: none; }

  /* Season grid */
  .season-grid { grid-template-columns: 1fr 1fr !important; }

  /* Contact */
  .contact-layout { grid-template-columns: 1fr !important; gap: 48px !important; }
  .cf-row { grid-template-columns: 1fr !important; }

  /* Blog article */
  .article-body { padding: 48px 20px; }
  .article-nav { flex-direction: column; gap: 16px; }

  /* Buttons full width on mobile */
  .btn-gold, .btn-outline {
    display: block;
    text-align: center;
    width: 100%;
    max-width: 320px;
  }

  /* Process steps */
  .ps { grid-template-columns: 50px 1fr; gap: 16px; }

  /* Chase strip */
  .chase-strip { grid-template-columns: 1fr !important; padding: 32px 20px !important; }
  .chase-stats-row { grid-template-columns: 1fr 1fr; }

  /* Rental grid */
  .rental-grid { grid-template-columns: 1fr !important; }

  /* Broker box */
  .broker-box { padding: 40px 20px; }

  /* Gallery */
  .gallery-3col { grid-template-columns: 1fr 1fr !important; }
  .gallery-tabs { flex-wrap: wrap; }
  .gtab { padding: 10px 16px; font-size: 10px; }

  /* WA float */
  .wa-float { bottom: 20px; right: 20px; width: 46px; height: 46px; }
  .wa-float svg { width: 22px; height: 22px; }
}

/* Extra small phones */
@media (max-width: 390px) {
  .hero-h1 { font-size: 28px; }
  .s-title { font-size: 24px; }
  .home-stats { grid-template-columns: 1fr 1fr; }
  .events-types { grid-template-columns: 1fr; }
  .season-grid { grid-template-columns: 1fr !important; }
}

/* ── NAVAWAVE STANDARD ── */
.standard-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  margin-top: 0;
}
.standard-card {
  background: var(--navy);
  padding: 48px 36px;
  position: relative;
  overflow: hidden;
  transition: background .4s;
}
.standard-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transition: transform .5s ease;
  transform-origin: left;
}
.standard-card:hover { background: var(--gold-faint); }
.standard-card:hover::before { transform: scaleX(1); }
.sc-num {
  font-family: var(--font-serif);
  font-size: 46px;
  color: var(--gold);
  font-style: italic;
  opacity: .2;
  line-height: 1;
  margin-bottom: 16px;
  display: block;
}
.sc-icon { font-size: 28px; margin-bottom: 18px; display: block; opacity: .65; }
.sc-title {
  font-family: var(--font-serif);
  font-size: 22px;
  color: var(--white);
  margin-bottom: 14px;
  font-weight: 400;
}
.sc-desc { font-size: 16px; color: var(--text-dim); line-height: 1.95; letter-spacing: .03em; }

@media(max-width:1024px) {
  .standard-grid { grid-template-columns: 1fr 1fr; }
}
@media(max-width:600px) {
  .standard-grid { grid-template-columns: 1fr; }
}

/* ── PREMIUM MAP ── */
.premium-map-wrap {
  position: relative;
  border: 1px solid var(--border);
  overflow: hidden;
}
#leaflet-map {
  filter: saturate(1.1) brightness(.9);
}
.pmap-panel {
  position: absolute;
  top: 20px; right: 20px;
  width: 280px;
  background: rgba(13,27,42,.94);
  backdrop-filter: blur(16px);
  border: 1px solid var(--gold-border);
  padding: 28px 26px;
  z-index: 999;
  transition: all .4s ease;
}
.pmap-tag {
  font-size: 9px; letter-spacing: .45em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 10px;
}
.pmap-title {
  font-family: var(--font-serif); font-size: 22px; color: var(--white);
  margin-bottom: 10px; line-height: 1.3; font-weight: 400;
}
.pmap-desc { font-size: 16px; color: var(--text-dim); line-height: 1.85; margin-bottom: 14px; }
.pmap-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.pmap-tag-item {
  font-size: 9px; letter-spacing: .24em; text-transform: uppercase;
  color: var(--azure); border: 1px solid rgba(74,155,171,.22); padding: 4px 10px;
}
.pmap-season {
  font-size: 10px; letter-spacing: .28em; text-transform: uppercase;
  color: var(--gold); padding-top: 12px; border-top: 1px solid var(--border);
}

/* ── LEAFLET CUSTOM PIN STYLE ── */
.nw-pin {
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
}
.nw-pin-inner {
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--gold); border: 2px solid white;
  box-shadow: 0 0 0 4px rgba(198,161,91,.3), 0 2px 8px rgba(0,0,0,.4);
  transition: all .3s;
}
.nw-pin:hover .nw-pin-inner {
  background: var(--azure);
  box-shadow: 0 0 0 6px rgba(74,155,171,.3), 0 2px 12px rgba(0,0,0,.5);
  transform: scale(1.3);
}

/* ── SERVICES PAGE ALIGNMENT FIX ── */
/* Ensure all service blocks have identical structure */
.svc-block {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 0 !important;
  align-items: stretch !important;
  border-bottom: 1px solid var(--border);
  margin-bottom: 0;
}
.svc-block:last-child { border-bottom: none; }
.svc-block-img {
  position: relative;
  overflow: hidden;
  min-height: 460px;
}
.svc-block-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: brightness(.72);
  transition: transform .9s, filter .9s;
  position: absolute; inset: 0;
}
.svc-block:hover .svc-block-img img { transform: scale(1.04); filter: brightness(.85); }
.svc-block-text {
  padding: 64px 60px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--navy);
}
.svc-block.reverse .svc-block-img { order: 2; }
.svc-block.reverse .svc-block-text { order: 1; }
.svc-num {
  font-family: var(--font-serif);
  font-size: 80px;
  color: var(--gold);
  opacity: .08;
  position: absolute;
  top: 20px; right: 28px;
  font-style: italic;
  line-height: 1;
  pointer-events: none;
}

/* Wine tasting collaboration box */
.collab-box {
  margin-top: 24px;
  padding: 20px 24px;
  border: 1px solid var(--gold-border);
  background: var(--gold-faint);
}
.collab-box-label { font-size: 10px; letter-spacing: .38em; text-transform: uppercase; color: var(--text-dim); margin-bottom: 6px; }
.collab-box-name { font-family: var(--font-serif); font-size: 21px; color: var(--gold); font-style: italic; text-decoration: none; display: block; margin-bottom: 4px; }
.collab-box-desc { font-size: 16px; color: var(--text-dim); line-height: 1.7; }

@media(max-width:1024px){
  .luxury-stats { grid-template-columns: 1fr 1fr; }
  .lstat { border-right: none; border-bottom: 1px solid var(--gold-border); }
  .lstat:nth-child(odd) { border-right: 1px solid var(--gold-border); }
  .pmap-panel { position:relative; top:auto; right:auto; width:100%; border-top:1px solid var(--gold-border); border-left:none; border-right:none; border-bottom:none; }
  .premium-map-wrap { display:flex; flex-direction:column; }
  .svc-block { grid-template-columns: 1fr !important; }
  .svc-block.reverse .svc-block-img { order: 0 !important; }
  .svc-block.reverse .svc-block-text { order: 0 !important; }
  .svc-block-img { min-height: 320px; }
  .svc-block-text { padding: 48px 36px; }
}
@media(max-width:600px){
  .luxury-stats { grid-template-columns: 1fr 1fr; }
  .lstat { padding: 32px 16px 24px; }
  .lstat-num { font-size: 44px; }
  .pmap-panel { padding: 20px 18px; }
  .svc-block-text { padding: 36px 20px; }
}

/* ── FLEET 2x2 GRID ── */
.fleet-2x2 {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

/* Top row: two yacht cards side by side, equal size */
.fleet-top-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  align-items: stretch;
}

.yacht-card-2 {
  position: relative;
  overflow: hidden;
  display: block;
  text-decoration: none;
  background: var(--navy-mid);
  height: 460px;
  cursor: pointer !important;
  pointer-events: all !important;
  -webkit-tap-highlight-color: transparent;
}

.yc2-img-wrap {
  width: 100%;
  height: 100%;
  overflow: hidden;
  line-height: 0;
  font-size: 0;
}

.yc2-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  filter: brightness(.75);
  transition: transform .9s, filter .9s;
}

.yacht-card-2:hover .yc2-img-wrap img {
  transform: scale(1.04);
  filter: brightness(1);
}

.yc2-overlay {
  position: absolute;
  inset: 0;
  font-size: initial;
  line-height: normal;
  pointer-events: none;
  background: linear-gradient(to top, rgba(13,27,42,.98) 0%, rgba(13,27,42,.7) 40%, rgba(13,27,42,.0) 65%, transparent 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0 32px 28px;
  transition: background .4s;
}

.yacht-card-2:hover .yc2-overlay {
  background: linear-gradient(to top, rgba(13,27,42,.95) 0%, rgba(13,27,42,.2) 60%);
}

.yc2-type {
  font-size: 10px;
  letter-spacing: .36em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 8px;
  display: block;
  margin-top: auto;
}

.yc2-name {
  font-family: var(--font-serif);
  font-size: 38px;
  color: var(--white);
  font-weight: 400;
  margin-bottom: 16px;
  line-height: 1;
}

/* Bottom row: 20+ full width */
.fleet-more-wide {
  background: var(--navy-mid);
  border: 1px solid var(--gold-border);
  padding: 40px 56px;
}

.fmw-inner {
  display: flex;
  align-items: center;
  gap: 48px;
}

.fmw-num {
  font-family: var(--font-serif);
  font-size: 82px;
  color: var(--white);
  font-weight: 400;
  line-height: 1;
  flex-shrink: 0;
  opacity: .5;
}

.fmw-divider {
  width: 1px;
  height: 60px;
  background: var(--gold-border);
  flex-shrink: 0;
}

.fmw-right { flex: 1; }

.fmw-desc {
  font-size: 16px;
  color: var(--text-dim);
  line-height: 1.85;
  margin-top: 6px;
}

/* Mobile */
@media(max-width: 768px) {
  .fleet-top-row { grid-template-columns: 1fr; }
  .yacht-card-2 { height: 300px; }
  .yc2-name { font-size: 30px; }
  .fmw-inner { flex-direction: column; gap: 24px; align-items: flex-start; }
  .fmw-num { font-size: 58px; }
  .fmw-divider { display: none; }
  .fleet-more-wide { padding: 32px 24px; }
}

/* ── PREMIUM MAP ── */
.premium-map-wrap { position:relative; border:1px solid var(--gold-border); overflow:hidden; }
.pmap-panel { position:absolute; top:20px; right:20px; width:280px; background:rgba(13,27,42,.92);
  border:1px solid var(--gold-border); backdrop-filter:blur(8px); z-index:1000; }
.pmap-panel-inner { padding:28px 24px; }
.pmap-tag { font-size: 9px; letter-spacing:.4em; text-transform:uppercase; color:var(--gold);
  margin-bottom:8px; }
.pmap-title { font-family:var(--font-serif); font-size: 20px; color:var(--white);
  margin-bottom:10px; line-height:1.3; }
.pmap-desc { font-size: 16px; color:var(--text-dim); line-height:1.8; margin-bottom:12px; }
.pmap-season { font-size: 11px; letter-spacing:.15em; color:var(--azure); margin-bottom:16px; }
.pmap-tags { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }


/* ── PHOTO MARQUEE STRIP ── */
.marquee-strip {
  width: 100%;
  overflow: hidden;
  background: var(--navy);
  border-top: 1px solid rgba(198,161,91,.15);
  border-bottom: 1px solid rgba(198,161,91,.15);
  position: relative;
}
.marquee-strip::before,
.marquee-strip::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 120px;
  z-index: 2;
  pointer-events: none;
}
.marquee-strip::before {
  left: 0;
  background: linear-gradient(to right, var(--navy) 0%, transparent 100%);
}
.marquee-strip::after {
  right: 0;
  background: linear-gradient(to left, var(--navy) 0%, transparent 100%);
}
.marquee-track {
  display: flex;
  width: max-content;
  animation: marqueeScroll 60s linear infinite;
}
@keyframes marqueeScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.marquee-item {
  flex-shrink: 0;
  width: 300px;
  height: 200px;
  overflow: hidden;
  margin-right: 3px;
  line-height: 0;
  font-size: 0;
}
.marquee-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(.92);
  display: block;
}
@media (max-width: 640px) {
  .marquee-item { width: 220px; height: 150px; }
}

/* ══════════════════════════════════════════
   GLOBAL IMAGE GAP FIX — DEFINITIVE
   Eliminates sub-pixel white lines on ALL
   images across the entire site.
   ══════════════════════════════════════════ */

/* 1. Universal: every img is block, no baseline gap */
img {
  display: block !important;
  vertical-align: top !important;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transform: translateZ(0);
  image-rendering: auto;
}

/* 2. Every overflow:hidden container forces integer pixel sizing */
*[class*="wrap"],
*[class*="card"],
*[class*="grid"],
*[class*="item"],
*[class*="panel"],
*[class*="hero"],
*[class*="strip"],
*[class*="block"] {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

/* 3. Img directly inside aspect-ratio containers:
   use absolute positioning to avoid sub-pixel rounding */
.team-img-wrap,
.crew-img-wrap,
.art-img-wrap,
.blog-thumb-wrap,
.about-img-wrap,
.yc2-img-wrap,
.svc-block-img,
.flagship-card,
.charter-card,
.dest-full-img,
.marquee-item,
.gallery-grid {
  position: relative !important;
  overflow: hidden !important;
  transform: translateZ(0);
}

/* 4. Gap-free inline style containers */
[style*="overflow:hidden"],
[style*="overflow: hidden"] {
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
[style*="overflow:hidden"] img,
[style*="overflow: hidden"] img {
  display: block !important;
  vertical-align: top !important;
}

/* ══ UNIVERSAL IMAGE GAP ELIMINATION ══
   Prevents all sub-pixel white lines between images
   ═══════════════════════════════════════════════ */
.flagship-grid,
.charter-grid,
.team-grid,
.art-grid,
.gallery-grid {
  gap: 0 !important;
  margin: 0;
  padding: 0;
  border: 0;
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

/* IMG-WRAP containers — font-size:0 safe (no text children) */
.gallery-3col,
.art-img-wrap,
.team-img-wrap,
.crew-img-wrap,
.marquee-track,
.marquee-item,
.yc2-img-wrap,
.blog-thumb-wrap,
.dest-full-img,
.about-img-wrap {
  gap: 0 !important;
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 0;
  line-height: 0;
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.flagship-grid img,
.flagship-card img,
.charter-card img,
.gallery-panel img,
.gallery-grid img,
.gallery-3col img,
.fleet-top-row img,
.art-img-wrap img,
.team-img-wrap img,
.crew-img-wrap img,
.marquee-item img,
.yc2-img-wrap img,
.blog-thumb-wrap img,
.dest-full-img img,
.about-img-wrap img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  vertical-align: top !important;
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
/* Ensure overlay content is still interactive */
.yc2-name, .yc2-type, .yc-specs, .yc-link {
  pointer-events: auto;
}

/* ── Fleet card text resets (prevent font-size:0 inheritance) ── */
.fc-bottom, .fc-name, .fc-specs, .fc-sv, .fc-sl, .fc-type, .fc-badge, .fc-link,
.cc-bottom, .cc-name, .cc-specs, .cc-sv, .cc-sl, .cc-link,
.yc2-overlay, .yc2-name, .yc2-type, .yc-specs, .yc-spec-v, .yc-spec-l, .yc-link {
  font-size: revert;
  line-height: revert;
}
.fc-name  { font-family: var(--font-serif); font-size: 38px !important; color: var(--white); line-height: 1 !important; }
.fc-sv    { font-size: 20px !important; }
.fc-sl    { font-size: 10px !important; }
.cc-name  { font-size: 21px !important; line-height: 1.2 !important; }
.cc-sv    { font-size: 14px !important; }
.cc-sl    { font-size: 9px !important; }
.yc2-name { font-family: var(--font-serif); font-size: 38px !important; line-height: 1 !important; }
.yc2-type { font-size: 10px !important; }

/* ═══════════════════════════════════════════════════════════════
   NAVAWAVE — RESPONSIVE OPTIMIZATION
   Tablet: max-width 1024px
   Mobile: max-width 767px
   Small:  max-width 480px
   ═══════════════════════════════════════════════════════════════ */

/* ── TABLET (≤1024px) ── */
@media (max-width: 1024px) {

  /* Layout */
  .wrap { padding: 0 32px; }
  .s-pad { padding: 80px 0; }

  /* Hero */
  .hero { min-height: 80vh; }
  .hero-h1 { font-size: clamp(36px, 5.5vw, 64px); }

  /* Page heroes */
  .page-hero { height: 56vh; }
  .yacht-hero { height: 70vh; }

  /* Grids */
  .home-stats { grid-template-columns: repeat(3, 1fr); }
  .fleet-top-row { grid-template-columns: 1fr 1fr; }
  .flagship-grid { grid-template-columns: 1fr 1fr; }
  .charter-grid { grid-template-columns: 1fr 1fr; }
  .art-grid { grid-template-columns: 1fr 1fr; }
  .crew-grid { grid-template-columns: 1fr 1fr; }
  .gallery-3col { grid-template-columns: 1fr 1fr; }
  .svc-block { gap: 48px; }

  /* Fleet cards */
  .yacht-card-2 { height: 380px; }

  /* Map panel */
  .pmap-panel { width: 240px; padding: 20px; }
}

/* ── MOBILE (≤767px) ── */
@media (max-width: 767px) {

  /* ── Base ── */
  html { font-size: 15px; }
  .wrap { padding: 0 18px; }
  .s-pad { padding: 56px 0; }
  .s-alt { padding: 56px 0; }
  .s-title { font-size: clamp(24px, 7vw, 34px); line-height: 1.2; }
  .s-title.large { font-size: clamp(28px, 8vw, 38px); }
  .s-tag { font-size: 10px; letter-spacing: .32em; }
  .s-body { font-size: 16px; line-height: 1.95; }
  .s-line { margin-bottom: 20px; }

  /* ── Navbar ── */
  #nav { padding: 14px 18px; }
  #nav.scrolled { padding: 10px 18px; }
  .nav-logo-img { height: 34px; width: auto; max-width: 120px; }
  .nav-links { display: none; }
  .nav-cta { display: none; }
  .nav-sep { display: none; }
  #nav-burger { display: flex; }
  .nav-right { gap: 14px; }

  /* ── Hero (homepage) ── */
  .hero { height: 100svh; min-height: 580px; }
  .hero-body { padding: 0 18px; }
  .hero-h1 { font-size: clamp(30px, 9vw, 46px); line-height: 1.12; }
  .hero-lead {
    font-size: 16px;
    letter-spacing: .06em;
    max-width: 100%;
    margin-bottom: 28px;
    line-height: 1.85;
  }
  .hero-eyebrow { font-size: 10px; margin-bottom: 14px; }
  .hero-actions { flex-direction: column; align-items: center; gap: 12px; }
  .hero-actions .btn-gold,
  .hero-actions .btn-outline { width: 100%; max-width: 280px; text-align: center; }
  .hero-scroll-hint { display: none; }

  /* ── Page heroes ── */
  .page-hero { height: 42vh; min-height: 260px; }
  .page-hero-body { padding: 0 18px 36px; }
  .page-hero-body .s-title { font-size: clamp(26px, 8vw, 38px); }
  .yacht-hero { height: 65vh; min-height: 480px; }
  .yacht-hero-body { padding: 0 18px 48px; }

  /* ── Stats row ── */
  .home-stats { grid-template-columns: 1fr 1fr; gap: 1px; }
  .lstat { padding: 28px 16px; }
  .lstat-n { font-size: 40px; }
  .lstat-l { font-size: 9px; }

  /* ── Fleet cards (homepage) ── */
  .fleet-2x2 { gap: 2px; }
  .fleet-top-row { grid-template-columns: 1fr; gap: 2px; }
  .yacht-card-2 { height: 320px; }
  .yc2-name { font-size: 28px; margin-bottom: 10px; }
  .yc2-type { font-size: 9px; }
  .yc2-overlay { padding: 0 20px 22px; }
  .yc-specs { gap: 16px; margin-bottom: 10px; }
  .yc-spec-v { font-size: 17px; }
  .yc-spec-l { font-size: 9px; }
  .fleet-more-wide { padding: 28px 18px; border-left: none; border-right: none; }
  .fmw-inner { flex-direction: column; gap: 20px; align-items: flex-start; }
  .fmw-num { font-size: 54px; }
  .fmw-divider { display: none; }
  .fmw-desc { font-size: 16px; }

  /* ── Fleet page grids ── */
  .flagship-grid { grid-template-columns: 1fr; gap: 2px; }
  .flagship-card { aspect-ratio: 4/3; }
  .fc-name { font-size: 28px; }
  .fc-specs { gap: 18px; }
  .fc-sv { font-size: 17px; }
  .charter-grid { grid-template-columns: 1fr 1fr; }
  .charter-card { aspect-ratio: 4/3; }
  .cc-name { font-size: 15px; }

  /* ── Yacht quick specs ── */
  .yacht-quick-specs { gap: 20px; flex-wrap: wrap; margin-top: 20px; }
  .qs-v { font-size: 26px; }
  .qs-l { font-size: 9px; }

  /* ── Gallery tabs ── */
  .gallery-tabs { flex-wrap: wrap; gap: 0; }
  .gtab { padding: 10px 14px; font-size: 10px; flex: 1; text-align: center; }
  .gallery-3col { grid-template-columns: 1fr 1fr; gap: 0; }
  .gallery-panel img { aspect-ratio: 4/3; }

  /* ── Spec table ── */
  .spec-cols { grid-template-columns: 1fr !important; gap: 32px !important; }
  .spec-table td { padding: 12px 0; font-size: 13px; }

  /* ── Crew section ── */
  .crew-grid { grid-template-columns: 1fr; }
  .crew-body { padding: 22px 18px 24px; }
  .crew-name { font-size: 21px; }
  .crew-bio { font-size: 16px; }

  /* ── About section ── */
  .tl-item { grid-template-columns: 40px 1fr; gap: 16px; }
  .tl-year { font-size: 11px; }

  /* ── Destinations ── */
  .dest-full { grid-template-columns: 1fr !important; }
  .dest-full:nth-child(even) .dest-full-img { order: 0 !important; }
  .dest-full:nth-child(even) .dest-full-text { order: 0 !important; }
  .dest-full-img { min-height: 260px !important; }
  .dest-full-text { padding: 36px 18px !important; }
  .dest-highlights { flex-wrap: wrap; gap: 6px; margin-top: 18px; }
  .dest-pill { font-size: 9px; padding: 5px 12px; }
  .dest-num { display: none; }
  .season-grid { grid-template-columns: 1fr 1fr; gap: 1px; }
  .season-box { padding: 24px 16px; }
  .season-name { font-size: 18px; }

  /* ── Services ── */
  .svc-block { grid-template-columns: 1fr !important; gap: 32px !important; }
  .svc-block.reverse .svc-block-img { order: 0 !important; }
  .svc-block.reverse .svc-block-text { order: 0 !important; }
  .svc-block-img img { aspect-ratio: 16/9 !important; }
  .svc-block-text { padding: 0 !important; }
  .svc-grid { grid-template-columns: 1fr !important; gap: 16px; }

  /* ── Contact ── */
  .contact-layout { grid-template-columns: 1fr !important; gap: 40px !important; }
  .cf-row { grid-template-columns: 1fr !important; gap: 0 !important; }
  .cf-group { margin-bottom: 20px; }
  .pmap-panel { position: relative; top: auto; right: auto;
    width: 100%; border-left: none; border-right: none;
    border-top: 1px solid var(--gold-border); border-bottom: none; }
  .premium-map-wrap { flex-direction: column; }
  #leaflet-map { height: 280px !important; }

  /* ── Blog ── */
  .blog-layout { grid-template-columns: 1fr !important; }
  .blog-sidebar { display: none; }
  .art-grid { grid-template-columns: 1fr !important; }
  .art-card { display: grid; grid-template-columns: 120px 1fr; gap: 0; }
  .art-img-wrap { aspect-ratio: 1/1 !important; height: 100%; }
  .art-body { padding: 16px; }
  .art-title { font-size: 15px; line-height: 1.4; }
  .art-exc { display: none; }
  .art-date { font-size: 10px; }
  .feat-img-wrap { aspect-ratio: 16/9; }

  /* ── Newsletter ── */
  .nl-row { flex-direction: column; border: none; gap: 0; }
  .nl-input {
    border: 1px solid var(--gold-border);
    margin-bottom: 10px;
    padding: 14px 16px;
  }
  .nl-btn { width: 100%; padding: 14px; }

  /* ── Footer ── */
  .footer-grid { grid-template-columns: 1fr !important; gap: 32px; padding: 0; }
  .footer-col h4 { margin-top: 0; }
  .footer-bottom { flex-direction: column; text-align: center; gap: 10px; }
  .footer-legal { justify-content: center; flex-wrap: wrap; gap: 14px; }
  .footer-logo-img { width: 110px; }
  .footer-about { font-size: 13px; }
  .nw-manage-link { font-size: 10px; }

  /* ── Itinerary form ── */
  .it-row { grid-template-columns: 1fr !important; }

  /* ── Marquee ── */
  .marquee-item { width: 220px; height: 160px; }

  /* ── Cookie banner ── */
  #nw-cookie-banner { padding: 20px 18px; }
  .nw-cb-inner { flex-direction: column; gap: 16px; }
  .nw-cb-actions { flex-direction: column; width: 100%; }
  .nw-cb-btn { width: 100%; text-align: center; padding: 12px; }
  .nw-prefs-panel { padding: 28px 18px; margin: 0; max-height: 92vh; }

  /* ── WA float ── */
  .wa-float { right: 16px; bottom: 16px; }
  .wa-float-text { display: none; }
  .wa-float { width: 48px; height: 48px; border-radius: 50%; padding: 0;
    display: flex; align-items: center; justify-content: center; }

  /* ── Buttons ── */
  .btn-gold, .btn-outline {
    font-size: 10px;
    padding: 12px 22px;
    letter-spacing: .28em;
  }

  /* ── Inline grids catch-all ── */
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns: 1fr 1fr"],
  [style*="grid-template-columns:1fr 1.5fr"],
  [style*="grid-template-columns:1fr 1.6fr"],
  [style*="grid-template-columns:1.4fr 1fr"],
  [style*="grid-template-columns:1.6fr 1fr"],
  [style*="grid-template-columns:2fr 1fr"],
  [style*="grid-template-columns:1fr 2fr"],
  [style*="grid-template-columns:1fr 1.2fr"],
  [style*="grid-template-columns:2.2fr 1fr"],
  [style*="grid-template-columns:1fr 1fr 1fr"],
  [style*="grid-template-columns: repeat(3"],
  [style*="grid-template-columns:repeat(3"],
  [style*="grid-template-columns: repeat(4"],
  [style*="grid-template-columns:repeat(4"] {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }

  /* Restore 2-col for specific small grids */
  [style*="grid-template-columns:1fr 1fr 1fr 1fr"] {
    grid-template-columns: 1fr 1fr !important;
  }

  /* Prevent horizontal scroll */
  body { overflow-x: hidden; }
  * { max-width: 100%; box-sizing: border-box; }
  img, video, iframe { max-width: 100% !important; height: auto; }
}

/* ── SMALL PHONES (≤480px) ── */
@media (max-width: 480px) {
  .s-title { font-size: clamp(22px, 7.5vw, 30px); }
  .hero-h1 { font-size: clamp(26px, 10vw, 38px); }
  .charter-grid { grid-template-columns: 1fr; }
  .gallery-3col { grid-template-columns: 1fr; }
  .home-stats { grid-template-columns: 1fr 1fr; }
  .season-grid { grid-template-columns: 1fr !important; }
  .lstat-n { font-size: 34px; }
  .art-card { grid-template-columns: 1fr; }
  .art-img-wrap { aspect-ratio: 16/9 !important; height: auto; }
  .art-exc { display: block; font-size: 16px; }
  .spec-cols { gap: 24px !important; }
  .crew-grid { gap: 16px; }
}

/* ── TOUCH DEVICES — disable hover effects ── */
@media (hover: none) {
  .yacht-card-2:hover .yc2-img-wrap img { transform: none; }
  .flagship-card:hover img { transform: none; filter: brightness(.78); }
  .charter-card:hover img { transform: none; }
  .crew-card:hover .crew-img { transform: none; }
  .dest-full-img:hover img { transform: none; }
  .yc-link { opacity: 1 !important; transform: none !important; }
  .fc-link { opacity: 1 !important; transform: none !important; }
}


/* ── Fix banda grigia: container immagini card avevano background:var(--card-bg)
   che emerge come striscia sottile per sub-pixel rounding. Allineo il bg al
   colore del body così non si vede nessuna banda. ── */
.flagship-card,
.charter-card,
.dest-full-img,
.art-card,
.feat-img-wrap,
.side-card,
.yacht-card-2 { background: var(--navy) !important; }

/* ── Sub-pixel anti-gap: il grid 1fr 1fr lascia uno spazio frazionato tra
   le 2 colonne su alcuni viewport. Sovrappongo di 1px la seconda card
   per coprire il gap. Funziona perché le card hanno overflow:hidden. ── */
.flagship-grid > *:nth-child(2) { margin-left: -1px; }
.charter-grid  > * + *           { margin-left: -1px; }
.featured      > *:nth-child(2) { margin-left: -1px; }
.fleet-top-row > *:nth-child(2)  { margin-left: -1px; }
