/*!
  Template:  Nautivo | Marina & Yacht Charter HTML Template
  Version:   1.0.0
  Author:    MOONSHOTS
  Website:   https://m00nshots.dev
  Contact:   build@m00nshots.dev
  Copyright: (c) 2026 m00nshots. All rights reserved.
*/
/* ==========================================================================
   NAUTIVO THEME — Marina & Yacht Charter
   Design language: refined nautical. Deep harbor navy, sailcloth, signal-flag
   red, brass and sea glass. Bellefair display serif, Hind body, Aboreto logo.
   Hairline rules, chart-grid backgrounds, rope dividers, compass dials,
   signal-flag chips, square buttons with a brass underline and porthole
   (circular, brass-bolted) image masks.
   --------------------------------------------------------------------------
   01. Tokens (sailcloth light / night-harbor dark / deep zones)
   02. Base & typography               12. Conditions widget
   03. Buttons, chips, fields          13. Home 1 — yacht charter
   04. Header, logo, drawer            14. Home 2 — marina
   05. Rope, chart grid, dial, flags   15. Home 3 — sailing school
   06. Porthole masks                  16. Home 4 — boat rental
   07. Shared blocks                   17. Courses, schedule, alphabet
   08. Fleet filter & spec cards       18. Booker (boarding pass) & trips
   09. Route map                       19. Inner pages
   10. Berth calculator                20. CTA, footer, 404
   11. Facilities, plans, quotes, FAQ
   ========================================================================== */

/* 01. Tokens ------------------------------------------------------------- */
:root {
  --navy: #0c2a3e; --sail: #f7f3ea; --red: #d6453d; --brass: #c79a4a; --glass: #8cc7c1;
  --bg: #f7f3ea; --bg-2: #efe8d9; --surface: #fcfaf5; --surface-2: #ebe3d1;
  --text: #0c2a3e; --muted: #4c5f6d; --line: rgba(12, 42, 62, .14); --line-strong: rgba(12, 42, 62, .38);
  --primary: #0c2a3e; --primary-2: #16435f; --on-primary: #f7f3ea; --accent: #c79a4a;
  --brass-ink: #8a6526; --red-ink: #b8352e; --glass-ink: #2f7d75;
  --flag-red: #d6453d; --flag-blue: #0f3a5a; --flag-yellow: #e3b54f; --flag-white: #fbf8f1; --flag-black: #10202b;
  --map-sea: #e4ecea; --map-land: #efe6d2; --map-land-line: #b89b62; --map-grid: rgba(12, 42, 62, .09); --map-text: #0c2a3e;
  --font-head: "Bellefair", "Times New Roman", serif;
  --font-body: "Hind", system-ui, sans-serif;
  --font-logo: "Aboreto", "Bellefair", serif; --logo-weight: 400; --logo-size: 1.3rem; --logo-tracking: .12em; --logo-case: uppercase;
  --head-weight: 400; --head-tracking: -0.005em;
  --radius-sm: 0; --radius: 0; --radius-lg: 0; --radius-btn: 0;
  --header-h: 78px;
  --gradient: linear-gradient(135deg, #c79a4a, #e2c07e 50%, #a8793a);
  --brass-metal: conic-gradient(from 20deg, #a8793a, #e7c98b, #b88a42, #f0d9a4, #9c6f33, #d9b26a, #a8793a);
  --shadow: 0 18px 40px -26px rgba(12, 42, 62, .45); --shadow-lg: 0 40px 80px -36px rgba(12, 42, 62, .55);
}
[data-theme="dark"] {
  --bg: #0a2132; --bg-2: #0d283c; --surface: #0f2d43; --surface-2: #153a55;
  --text: #f1ece0; --muted: #a6b8c3; --line: rgba(241, 236, 224, .13); --line-strong: rgba(241, 236, 224, .38);
  --primary: #c79a4a; --primary-2: #d9b26a; --on-primary: #0c2a3e;
  --brass-ink: #dcb46c; --red-ink: #ee6a61; --glass-ink: #8cc7c1;
  --flag-blue: #2a6d9c; --flag-white: #f3eee2; --flag-black: #0b1822;
  --map-sea: #0d2c43; --map-land: #1d4460; --map-land-line: #c79a4a; --map-grid: rgba(241, 236, 224, .07); --map-text: #f1ece0;
  --shadow: 0 18px 40px -22px rgba(0, 0, 0, .75); --shadow-lg: 0 40px 80px -32px rgba(0, 0, 0, .85);
}
.nv-deep {
  --bg: #0c2a3e; --bg-2: #0f3049; --surface: #113550; --surface-2: #174163;
  --text: #f4efe3; --muted: #aebfca; --line: rgba(244, 239, 227, .14); --line-strong: rgba(244, 239, 227, .4);
  --primary: #c79a4a; --primary-2: #d9b26a; --on-primary: #0c2a3e;
  --brass-ink: #dcb46c; --red-ink: #ee6a61; --glass-ink: #8cc7c1;
  --flag-blue: #2a6d9c;
  --map-sea: #0f324c; --map-land: #e9dfc9; --map-land-line: #c79a4a; --map-grid: rgba(244, 239, 227, .08); --map-text: #f4efe3;
  background-color: var(--bg); color: var(--text);
}

/* 02. Base & typography -------------------------------------------------- */
body { font-size: 16.5px; line-height: 1.7; font-weight: 400; }
ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4 { font-family: var(--font-head); font-weight: 400; }
.hero__title, .page-header h1, .h2 { line-height: 1.02; letter-spacing: -0.01em; }
.hero__title { font-size: clamp(2.8rem, 6.4vw, 5.9rem); }
.h2 { font-size: clamp(2.2rem, 4.4vw, 3.9rem); }
.h3 { font-size: clamp(1.5rem, 2.3vw, 2rem); }
h1 em, h2 em, h3 em { font-style: normal; color: var(--brass-ink); }
.lead { color: var(--muted); font-weight: 300; font-size: clamp(1.08rem, 1.4vw, 1.25rem); }
.eyebrow { font-family: var(--font-body); font-weight: 600; font-size: .74rem; letter-spacing: .24em; color: var(--brass-ink); gap: 12px; }
.eyebrow::before, .section-head--center .eyebrow::after {
  content: ""; flex: none; width: 16px; height: 11px; border-radius: 0;
  background: linear-gradient(90deg, var(--flag-white) 50%, var(--flag-red) 50%); box-shadow: 0 0 0 1px var(--line-strong);
}
.section-head--center .eyebrow::after { background: linear-gradient(90deg, var(--flag-yellow) 50%, var(--flag-blue) 50%); }
.section-head .h2 { margin-bottom: .35em; }
.section-head { position: relative; }
.section { padding-block: clamp(76px, 9vw, 132px); }
.section--alt { background: var(--bg-2); }
.section--alt + .section--alt { border-top: 1px solid var(--line); }
:focus-visible { border-radius: 0; outline-color: var(--brass); }
::selection { background: var(--brass); color: var(--navy); }
.nv-coord { font-family: var(--font-body); font-size: .74rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); font-weight: 500; }
.nv-num { font-family: var(--font-head); color: var(--brass-ink); font-size: 1.05rem; }
.nv-fine { color: var(--muted); font-size: .88rem; margin-top: 24px; }
.nv-center { justify-content: center; }
.nv-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; color: var(--text); padding-bottom: 3px; border-bottom: 1.5px solid var(--brass); white-space: nowrap; }
.nv-link .ti { transition: transform .35s var(--ease); color: var(--brass-ink); }
.nv-link:hover .ti { transform: translateX(4px); }
.nv-link--light { color: #f4efe3; }
.nv-list li { display: flex; gap: 12px; align-items: flex-start; padding: 7px 0; }
.nv-list .ti { flex: none; margin-top: 4px; width: 20px; height: 20px; display: grid; place-items: center; font-size: .78rem; color: var(--navy); background: var(--glass); border-radius: 50%; }
.nv-kicker { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-bottom: 26px; font-size: .76rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--brass-ink); }
.nv-kicker .nv-flag { width: 30px; height: 22px; }
.nv-kicker--light { color: #f0d9a4; }
.nv-kicker--center { justify-content: center; }
.nv-kicker--center span::before, .nv-kicker--center span::after { content: ""; display: inline-block; vertical-align: middle; width: 36px; height: 1px; background: currentColor; margin: 0 14px; }

/* 03. Buttons, chips, fields -------------------------------------------- */
.btn {
  --btn-bg: var(--primary); --btn-fg: var(--on-primary);
  border-radius: 0; font-weight: 600; font-size: .8rem; letter-spacing: .16em; text-transform: uppercase;
  box-shadow: inset 0 -3px 0 var(--brass); padding-inline: 28px;
}
.btn::after { background: var(--brass); }
.btn:hover { color: var(--navy); box-shadow: inset 0 -3px 0 var(--brass), 0 16px 30px -18px rgba(12, 42, 62, .6); }
.btn--lg { min-height: 58px; font-size: .84rem; }
.btn--sm { min-height: 42px; padding-inline: 18px; font-size: .74rem; }
.btn--ghost { --btn-bg: transparent; --btn-fg: var(--text); border-color: var(--line-strong); }
.btn--ghost::after { background: var(--surface-2); }
.btn--ghost:hover { color: var(--text); }
.btn--light { --btn-bg: #f7f3ea; --btn-fg: #0c2a3e; }
.nv-on-dark { --btn-fg: #f4efe3; border-color: rgba(244, 239, 227, .35); }
.nv-on-dark::after { background: rgba(244, 239, 227, .1); }
.nv-on-dark:hover { color: #f4efe3; }
.btn:disabled { opacity: .5; }
.nv-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.nv-chip { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border: 1px solid var(--line-strong); font-size: .8rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; transition: background .3s, color .3s, border-color .3s; }
.nv-chip small { font-size: .72rem; color: var(--muted); font-weight: 500; }
.nv-chip:hover { border-color: var(--brass); }
.nv-chip.is-active { background: var(--primary); color: var(--on-primary); border-color: var(--primary); box-shadow: inset 0 -2px 0 var(--brass); }
.nv-chip.is-active small { color: inherit; opacity: .7; }
.nv-field { display: grid; gap: 6px; min-width: 0; }
.nv-field > span { font-size: .7rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); display: flex; justify-content: space-between; gap: 8px; }
.nv-field output { color: var(--brass-ink); letter-spacing: .04em; text-transform: none; font-size: .82rem; }
.nv-select, .nv-input {
  width: 100%; min-height: 46px; padding: 10px 14px; border: 1px solid var(--line-strong); border-radius: 0;
  background: var(--surface); color: var(--text); font-size: .95rem;
}
.nv-select { appearance: none; -webkit-appearance: none; padding-right: 36px; background-image: linear-gradient(45deg, transparent 50%, var(--brass) 50%), linear-gradient(135deg, var(--brass) 50%, transparent 50%); background-position: calc(100% - 18px) 52%, calc(100% - 13px) 52%; background-size: 5px 5px; background-repeat: no-repeat; }
.nv-select:focus, .nv-input:focus { outline: none; border-color: var(--brass); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brass) 22%, transparent); }
input[type="range"] { accent-color: var(--brass); width: 100%; }
.nv-seg { display: flex; border: 1px solid var(--line-strong); }
.nv-seg label { flex: 1 1 0; position: relative; min-width: 0; }
.nv-seg label + label { border-left: 1px solid var(--line-strong); }
.nv-seg input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.nv-seg span { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 44px; padding: 8px 10px; text-align: center; font-size: .82rem; font-weight: 600; line-height: 1.2; transition: background .3s, color .3s; cursor: pointer; }
.nv-seg span small { font-weight: 400; font-size: .74rem; color: var(--muted); }
.nv-seg input:checked + span { background: var(--primary); color: var(--on-primary); box-shadow: inset 0 -2px 0 var(--brass); }
.nv-seg input:checked + span small { color: inherit; opacity: .75; }
.nv-seg input:focus-visible + span { outline: 2px solid var(--brass); outline-offset: -4px; }
.nv-seg--wrap { flex-wrap: wrap; }
.nv-seg--wrap label { flex: 1 1 45%; }
.nv-seg--wrap label + label { border-left: 0; }
.nv-seg--wrap label { border: 0; box-shadow: 0 0 0 .5px var(--line-strong); }
.nv-seg--col { flex-direction: column; }
.nv-seg--col label + label { border-left: 0; border-top: 1px solid var(--line-strong); }
.nv-seg--col span { flex-direction: row; justify-content: space-between; }
.nv-check { display: flex; gap: 10px; align-items: flex-start; font-size: .92rem; cursor: pointer; }
.nv-check input { accent-color: var(--brass); width: 18px; height: 18px; margin-top: 3px; flex: none; }
.nv-check small { color: var(--muted); }
.input, .select, .textarea { border-radius: 0; background: var(--surface); }
.input:focus, .select:focus, .textarea:focus { border-color: var(--brass); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brass) 22%, transparent); }

/* 04. Header, logo, drawer --------------------------------------------- */
.site-header { border-bottom: 1px solid transparent; }
.site-header.is-scrolled { border-bottom-color: var(--line); box-shadow: none; }
.logo__mark {
  width: 38px; height: 38px; border-radius: 50%; background: transparent; color: var(--brass-ink); font-size: 1.1rem;
  box-shadow: inset 0 0 0 1.5px var(--brass), inset 0 0 0 4px var(--bg), inset 0 0 0 5px var(--brass);
}
.site-header--light:not(.is-scrolled) .logo__mark { color: #f0d9a4; box-shadow: inset 0 0 0 1.5px #f0d9a4, inset 0 0 0 5px rgba(240, 217, 164, .5); }
.nav__link { font-size: .78rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; border-radius: 0; position: relative; }
.nav__link.is-active::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 4px; height: 1.5px; background: var(--brass); }
.nav__link:hover, .nav__link.is-active { color: var(--text); }
.site-header--light:not(.is-scrolled) .nav__link:hover { background: transparent; color: #fff; }
.dropdown { border-radius: 0; padding: 6px; border-top: 2px solid var(--brass); }
.dropdown a { border-radius: 0; font-size: .9rem; }
.dropdown a:hover { background: var(--surface-2); color: var(--text); }
.icon-btn { border-radius: 0; }
.nv-hdr-cta { min-height: 42px; }
.drawer__panel { border-left: 1px solid var(--line); }
.drawer__nav a { font-family: var(--font-head); font-size: 1.35rem; font-weight: 400; }
.drawer__nav .sub { font-family: var(--font-body); font-size: .95rem; }
.drawer .btn--gradient { background: var(--primary); }
.preloader__bar::after { background: var(--brass); }
.to-top { border-radius: 0; background: var(--navy); color: var(--sail); box-shadow: inset 0 -3px 0 var(--brass); }
[data-theme="dark"] .to-top { background: var(--brass); color: var(--navy); }
.cursor { background: var(--brass); }

/* 05. Rope, chart grid, dial, flags ------------------------------------- */
.nv-rope {
  height: 9px; width: 100%;
  background: repeating-linear-gradient(-62deg, #9c6f33 0 3px, #e3c07e 3px 8px, #c79a4a 8px 11px, #7d5724 11px 13px);
  box-shadow: inset 0 2px 1px rgba(255, 255, 255, .25), inset 0 -2px 2px rgba(0, 0, 0, .25);
}
.nv-rope--bottom { position: absolute; left: 0; right: 0; bottom: 0; }
.nv-chart {
  position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px),
                    linear-gradient(color-mix(in srgb, var(--line) 50%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--line) 50%, transparent) 1px, transparent 1px);
  background-size: 160px 160px, 160px 160px, 32px 32px, 32px 32px;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, rgba(0,0,0,.6) 60%, transparent 100%); mask-image: linear-gradient(180deg, #000 0%, rgba(0,0,0,.6) 60%, transparent 100%);
  opacity: .8;
}
.nv-dial { display: block; overflow: visible; }
.nv-dial circle { fill: none; stroke: var(--brass); stroke-width: 1; opacity: .7; }
.nv-dial line { stroke: var(--brass); stroke-width: 1; opacity: .7; }
.nv-dial line.is-long { stroke-width: 1.6; opacity: 1; }
.nv-dial text { fill: var(--brass-ink); font-family: var(--font-body); font-size: 10px; font-weight: 600; letter-spacing: .1em; text-anchor: middle; }
.nv-dial text.is-card { font-family: var(--font-head); font-size: 17px; fill: var(--text); }
@keyframes nv-spin { to { transform: rotate(360deg); } }
.nv-rose { display: block; }
.nv-rose__ring { fill: none; stroke: var(--brass); stroke-width: .8; }
.nv-rose__star { fill: color-mix(in srgb, var(--brass) 18%, transparent); stroke: var(--brass); stroke-width: .8; }
.nv-rose__n { fill: var(--red); }
.nv-rose circle:last-child { fill: var(--brass); }
.nv-flag { display: block; width: 40px; height: 30px; flex: none; }
.nv-flag__edge { stroke: var(--line-strong); stroke-width: 1; vector-effect: non-scaling-stroke; }
.nv-flagword { display: inline-flex; gap: 3px; }
.nv-flagword .nv-flag { width: 18px; height: 13px; }
.nv-flagword--lg { gap: 6px; margin-top: 8px; flex-wrap: wrap; }
.nv-flagword--lg .nv-flag { width: 44px; height: 33px; }

/* 06. Porthole masks ---------------------------------------------------- */
.nv-port { position: relative; aspect-ratio: 1; border-radius: 50%; padding: 0; background: var(--brass-metal); box-shadow: 0 0 0 1px rgba(12, 42, 62, .25), 0 26px 50px -28px rgba(12, 42, 62, .7); isolation: isolate; }
.nv-port::after {
  content: ""; position: absolute; inset: 0; border-radius: 50%; pointer-events: none; z-index: 2;
  background:
    radial-gradient(circle 4px at 50% 2.3%, #f6e3b2 0 2px, #6d4c1d 3px, transparent 4px),
    radial-gradient(circle 4px at 50% 97.7%, #f6e3b2 0 2px, #6d4c1d 3px, transparent 4px),
    radial-gradient(circle 4px at 2.3% 50%, #f6e3b2 0 2px, #6d4c1d 3px, transparent 4px),
    radial-gradient(circle 4px at 97.7% 50%, #f6e3b2 0 2px, #6d4c1d 3px, transparent 4px),
    radial-gradient(circle 4px at 16.2% 16.2%, #f6e3b2 0 2px, #6d4c1d 3px, transparent 4px),
    radial-gradient(circle 4px at 83.8% 16.2%, #f6e3b2 0 2px, #6d4c1d 3px, transparent 4px),
    radial-gradient(circle 4px at 16.2% 83.8%, #f6e3b2 0 2px, #6d4c1d 3px, transparent 4px),
    radial-gradient(circle 4px at 83.8% 83.8%, #f6e3b2 0 2px, #6d4c1d 3px, transparent 4px);
}
.nv-port__glass { position: absolute; inset: 4.6%; border-radius: 50%; overflow: hidden; box-shadow: 0 0 0 3px rgba(60, 40, 12, .55); }
.nv-port__glass::after { content: ""; position: absolute; inset: 0; border-radius: 50%; pointer-events: none; background: linear-gradient(140deg, rgba(255, 255, 255, .28), transparent 38%), radial-gradient(circle at 50% 50%, transparent 62%, rgba(12, 42, 62, .35) 100%); }
.nv-port img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.nv-port:hover img { transform: scale(1.05); }
.nv-port--xs { width: 52px; box-shadow: none; flex: none; }
.nv-port--xs::after, .nv-port--xs .nv-port__glass::after { display: none; }
.nv-port--xs .nv-port__glass { box-shadow: none; inset: 3px; }
.nv-port--md { width: min(100%, 260px); }
.nv-port--lg { width: min(100%, 420px); }
.nv-port--hero { width: 100%; }

/* 07. Shared blocks ----------------------------------------------------- */
.nv-stats { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); margin-top: 36px; }
.nv-stat { padding: 22px 18px 6px 0; min-width: 0; }
.nv-stat + .nv-stat { padding-left: 18px; border-left: 1px solid var(--line); }
.nv-stats--2 .nv-stat:nth-child(3) { border-left: 0; padding-left: 0; }
.nv-stats--2 .nv-stat:nth-child(n+3) { border-top: 1px solid var(--line); }
.nv-stat__num { font-family: var(--font-head); font-size: clamp(2.3rem, 4vw, 3.4rem); line-height: 1; }
.nv-stat__num em { font-style: normal; color: var(--brass-ink); font-size: .6em; margin-left: 2px; }
.nv-stat__label { font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-top: 10px; font-weight: 500; }
@media (min-width: 640px) {
  .nv-stats--3 { grid-template-columns: repeat(3, 1fr); }
  .nv-stats:not(.nv-stats--2):not(.nv-stats--3) { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 639px) {
  .nv-stats:not(.nv-stats--2) .nv-stat:nth-child(odd) { border-left: 0; padding-left: 0; }
  .nv-stats:not(.nv-stats--2) .nv-stat:nth-child(n+3) { border-top: 1px solid var(--line); }
}
.nv-rows { border-top: 1px solid var(--line-strong); }
.nv-row { display: grid; grid-template-columns: 40px 44px 1fr; gap: 6px 18px; align-items: start; padding: 26px 0; border-bottom: 1px solid var(--line); }
.nv-row__n { font-family: var(--font-head); color: var(--brass-ink); font-size: 1.1rem; padding-top: 4px; }
.nv-row__flag { width: 40px; height: 30px; margin-top: 4px; }
.nv-row h3 { font-size: clamp(1.45rem, 2vw, 1.8rem); margin: 0; }
.nv-row p { grid-column: 3; color: var(--muted); margin: 0; max-width: 58ch; }
@media (min-width: 1024px) { .nv-row { grid-template-columns: 50px 60px .9fr 1.3fr; } .nv-row p { grid-column: 4; } }
.nv-rows--tight .nv-row { padding: 18px 0; }
@media (min-width: 1024px) { .nv-rows--tight .nv-row { grid-template-columns: 44px 54px 1fr; } .nv-rows--tight .nv-row p { grid-column: 3; } }
.nv-svc, .nv-faq, .nv-facwrap, .nv-alphawrap, .nv-incl { display: grid; gap: 40px; }
@media (min-width: 1024px) {
  .nv-svc { grid-template-columns: .8fr 1.4fr; gap: 72px; }
  .nv-faq { grid-template-columns: .8fr 1.3fr; gap: 72px; }
  .nv-facwrap { grid-template-columns: .9fr 1.3fr; gap: 72px; align-items: start; }
  .nv-alphawrap { grid-template-columns: .8fr 1.5fr; gap: 72px; align-items: start; }
  .nv-incl { grid-template-columns: .7fr 1.5fr; gap: 72px; align-items: start; }
}
.nv-facimg img { width: 100%; aspect-ratio: 9/7; margin-top: 8px; }
.nv-ticker { border-block: 1px solid var(--line); padding-block: 22px; background: var(--bg); }
.nv-ticker .marquee__track { gap: 64px; padding-right: 64px; }
.nv-ticker span { display: inline-flex; align-items: center; gap: 18px; font-family: var(--font-head); font-size: clamp(1.5rem, 2.6vw, 2.2rem); white-space: nowrap; }
.nv-ticker .ti { color: var(--brass); font-size: .7em; }

/* 08. Fleet filter & spec cards ----------------------------------------- */
.nv-fleet__bar { display: grid; gap: 20px; padding: 22px; background: var(--surface); border: 1px solid var(--line); border-top: 2px solid var(--brass); margin-bottom: 18px; }
.nv-fleet__bar--compact { padding: 0; background: none; border: 0; }
.nv-fleet__ctrls { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; }
.nv-fleet__ctrls .nv-field--range { grid-column: 1 / -1; }
@media (min-width: 1024px) {
  .nv-fleet__bar { grid-template-columns: 1fr auto; align-items: end; }
  .nv-fleet__ctrls { grid-template-columns: 130px 240px 190px; }
  .nv-fleet__ctrls .nv-field--range { grid-column: auto; }
  .nv-fleet__ctrls:has(> :nth-child(2):last-child) { grid-template-columns: 150px 190px; }
}
.nv-fleet__count { color: var(--muted); font-size: .9rem; margin: 0 0 18px; }
.nv-fleet__count b { font-family: var(--font-head); font-size: 1.3rem; color: var(--text); font-weight: 400; }
.nv-fleet__grid { display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 768px) { .nv-fleet__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1280px) { .nv-fleet__grid { grid-template-columns: repeat(3, 1fr); } }
.nv-fleet__grid > * { min-width: 0; }
.nv-fleet__empty { padding: 28px; border: 1px dashed var(--line-strong); text-align: center; color: var(--muted); display: flex; gap: 10px; justify-content: center; align-items: center; }
.nv-fleet__empty[hidden] { display: none; }
.nv-yacht { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); transition: transform .5s var(--ease), box-shadow .5s var(--ease), border-color .4s; }
.nv-yacht:hover { transform: translateY(-5px); box-shadow: var(--shadow); border-color: color-mix(in srgb, var(--brass) 55%, var(--line)); }
.nv-yacht.is-hidden { display: none; }
.nv-yacht__img { position: relative; display: block; overflow: hidden; }
.nv-yacht__img img { width: 100%; aspect-ratio: 10/7; transition: transform 1.2s var(--ease); }
.nv-yacht:hover .nv-yacht__img img { transform: scale(1.05); }
.nv-yacht__type { position: absolute; left: 14px; top: 14px; display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px; background: #f7f3ea; color: #0c2a3e; font-size: .7rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.nv-yacht__type .nv-flag { width: 22px; height: 16px; }
.nv-yacht__body { padding: 22px 22px 0; display: flex; flex-direction: column; flex: 1; }
.nv-yacht__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.nv-yacht h3 { font-size: 1.85rem; margin: 0; line-height: 1.1; }
.nv-yacht__base { display: inline-flex; gap: 5px; align-items: center; font-size: .82rem; color: var(--muted); }
.nv-yacht__base .ti { color: var(--brass-ink); }
.nv-yacht__bld { color: var(--muted); font-size: .9rem; margin: 4px 0 18px; }
.nv-specs { display: grid; grid-template-columns: repeat(4, 1fr); border-block: 1px solid var(--line); }
.nv-specs--3 { grid-template-columns: repeat(3, 1fr); }
.nv-specs li { padding: 12px 6px 10px; text-align: center; min-width: 0; }
.nv-specs li + li { border-left: 1px solid var(--line); }
.nv-specs b { display: block; font-family: var(--font-head); font-weight: 400; font-size: 1.45rem; line-height: 1.1; white-space: nowrap; }
.nv-specs b small { font-size: .6em; color: var(--brass-ink); margin-left: 1px; }
.nv-specs span { font-size: .66rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); font-weight: 500; }
.nv-yacht__foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 18px 0 20px; margin-top: auto; }
.nv-yacht__foot small { display: block; font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.nv-yacht__foot b { font-family: var(--font-head); font-weight: 400; font-size: 1.5rem; }

/* 09. Route map --------------------------------------------------------- */
.nv-sec-map .section-head .lead { color: var(--muted); }
.nv-map { display: grid; gap: 24px; }
@media (min-width: 1024px) { .nv-map { grid-template-columns: 1.55fr 1fr; gap: 32px; align-items: start; } }
.nv-map > * { min-width: 0; }
.nv-map__chart { border: 1px solid var(--line-strong); background: var(--map-sea); position: relative; }
.nv-map__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 12px; padding: 18px 20px; border-bottom: 1px solid var(--line); background: var(--surface); }
.nv-map__head small { font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--brass-ink); font-weight: 600; }
.nv-map__head h3 { font-size: 1.7rem; margin: 0; }
.nv-map__facts { display: flex; gap: 22px; }
.nv-map__facts li { text-align: right; }
.nv-map__facts b { font-family: var(--font-head); font-weight: 400; font-size: 1.5rem; display: block; line-height: 1; }
.nv-map__facts span { font-size: .66rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.nv-map__svg { width: 100%; height: auto; display: block; }
.nv-map__sea { fill: var(--map-sea); }
.nv-map__grid line { stroke: var(--map-grid); stroke-width: 1; }
.nv-map__labels text { fill: var(--map-text); opacity: .45; font-size: 10px; font-family: var(--font-body); letter-spacing: .08em; }
.nv-map__shoal { fill: none; stroke: var(--glass); stroke-width: 1; stroke-dasharray: 3 4; opacity: .8; }
.nv-map__land { fill: var(--map-land); stroke: var(--map-land-line); stroke-width: 1.2; }
.nv-map__route-bg { fill: none; stroke: var(--brass); stroke-width: 1.5; stroke-dasharray: 2 6; opacity: .55; }
.nv-map__route { fill: none; stroke: var(--red); stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.nv-map__port { cursor: pointer; }
.nv-map__port circle { fill: var(--map-sea); stroke: var(--brass); stroke-width: 2.5; transition: all .35s var(--ease); }
.nv-map__port .nv-map__halo { fill: var(--red); stroke: none; opacity: 0; transform: scale(.4); transition: all .45s var(--ease); }
.nv-map__port.is-home circle:not(.nv-map__halo) { fill: var(--brass); }
.nv-map__port text { fill: var(--map-text); font-family: var(--font-body); font-size: 14px; font-weight: 600; letter-spacing: .02em; paint-order: stroke; stroke: var(--map-sea); stroke-width: 4px; stroke-linejoin: round; }
.nv-map__port.is-active .nv-map__halo { opacity: .28; transform: scale(1.6); }
.nv-map__port.is-active circle:not(.nv-map__halo) { fill: var(--red); stroke: var(--sail); }
.nv-map__rose circle { fill: none; stroke: var(--brass); stroke-width: 1; }
.nv-map__rose polygon { fill: color-mix(in srgb, var(--brass) 25%, transparent); stroke: var(--brass); stroke-width: 1; }
.nv-map__rose text { fill: var(--map-text); font-family: var(--font-head); font-size: 15px; }
.nv-map__scale path { stroke: var(--map-text); stroke-width: 1.4; fill: none; opacity: .7; }
.nv-map__scale text { fill: var(--map-text); font-size: 10px; opacity: .7; font-family: var(--font-body); }
.nv-map__note { margin: 0; padding: 12px 20px; font-size: .8rem; color: var(--muted); border-top: 1px solid var(--line); background: var(--surface); display: flex; gap: 8px; align-items: center; }
.nv-days { border-top: 1px solid var(--line-strong); }
.nv-day { width: 100%; display: grid; grid-template-columns: 58px 1fr auto; gap: 14px; align-items: start; padding: 16px 12px 16px 14px; text-align: left; border-bottom: 1px solid var(--line); border-left: 2px solid transparent; transition: background .3s, border-color .3s; }
.nv-day:hover { background: color-mix(in srgb, var(--surface) 70%, transparent); }
.nv-day.is-active { border-left-color: var(--red); background: var(--surface); }
.nv-day__d { font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--brass-ink); font-weight: 600; padding-top: 4px; }
.nv-day__main b { display: block; font-family: var(--font-head); font-weight: 400; font-size: 1.3rem; line-height: 1.2; }
.nv-day__main small { display: block; color: var(--muted); font-size: .88rem; line-height: 1.45; margin-top: 3px; }
.nv-day__nm { font-size: .78rem; color: var(--muted); white-space: nowrap; padding-top: 4px; }
.nv-map__yacht { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; margin-top: 20px; padding: 18px; border: 1px solid var(--line-strong); }
.nv-map__yacht small { display: block; font-size: .68rem; letter-spacing: .18em; text-transform: uppercase; color: var(--brass-ink); font-weight: 600; }
.nv-map__yacht b { font-family: var(--font-head); font-weight: 400; font-size: 1.4rem; display: block; line-height: 1.2; }
.nv-map__yacht span { color: var(--muted); font-size: .88rem; }
.nv-map--compact { display: block; }
.nv-map--compact .nv-map__port text { font-size: 17px; }
.nv-tabs .tabs__list { gap: 0; border: 1px solid var(--line-strong); display: inline-flex; flex-wrap: wrap; max-width: 100%; }
.nv-tab { display: inline-flex; align-items: center; gap: 10px; border: 0; border-radius: 0; padding: 12px 20px; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; }
.nv-tab + .nv-tab { border-left: 1px solid var(--line-strong); }
.nv-tab .nv-flag { width: 22px; height: 16px; }
.nv-tab.is-active, .nv-tab:hover { background: var(--primary); color: var(--on-primary); border-color: var(--line-strong); }
@media (max-width: 639px) { .nv-tabs .tabs__list { display: flex; flex-direction: column; } .nv-tab + .nv-tab { border-left: 0; border-top: 1px solid var(--line-strong); } }

/* 10. Berth calculator -------------------------------------------------- */
.nv-berth { display: grid; gap: 0; border: 1px solid var(--line-strong); background: var(--surface); }
@media (min-width: 1024px) { .nv-berth { grid-template-columns: 1.25fr .9fr; } .nv-berth__plan { grid-column: 1 / -1; } }
.nv-berth > * { min-width: 0; }
.nv-berth__form { padding: clamp(22px, 3vw, 36px); display: grid; gap: 18px; align-content: start; }
.nv-berth__h { display: flex; align-items: baseline; gap: 12px; border-bottom: 1px solid var(--line); padding-bottom: 10px; margin-top: 6px; }
.nv-berth__h h3 { font-size: 1.5rem; margin: 0; }
.nv-range { display: grid; gap: 4px; }
.nv-range > span { display: flex; justify-content: space-between; font-size: .72rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.nv-range output { font-family: var(--font-head); font-size: 1.25rem; letter-spacing: 0; color: var(--text); text-transform: none; font-weight: 400; }
.nv-berth__row { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .nv-berth__row { grid-template-columns: 1fr 1.4fr; } }
.nv-seg--sm span { min-height: 46px; font-size: .78rem; }
.nv-berth__out { padding: clamp(22px, 3vw, 36px); display: flex; flex-direction: column; gap: 18px; }
.nv-berth__rec small { font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--brass-ink); font-weight: 600; }
.nv-berth__rec b { display: block; font-family: var(--font-head); font-weight: 400; font-size: clamp(2.4rem, 4vw, 3.2rem); line-height: 1.05; }
.nv-berth__rec span { color: var(--muted); }
.nv-berth__dl { display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid var(--line); margin: 0; }
.nv-berth__dl div { padding: 12px 8px 10px 0; min-width: 0; }
.nv-berth__dl div + div { padding-left: 12px; border-left: 1px solid var(--line); }
.nv-berth__dl dt { font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.nv-berth__dl dd { margin: 2px 0 0; font-family: var(--font-head); font-size: 1.3rem; }
.nv-berth__total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.nv-berth__total span { font-size: .74rem; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.nv-berth__total b { font-family: var(--font-head); font-weight: 400; font-size: clamp(2rem, 3.4vw, 2.7rem); color: var(--brass-ink); }
.nv-berth__warn { margin: 0; padding: 10px 14px; border-left: 3px solid var(--red); background: color-mix(in srgb, var(--red) 14%, transparent); font-size: .9rem; }
.nv-berth__warn[hidden] { display: none; }
.nv-berth__incl { font-size: .92rem; }
.nv-berth__incl li { padding: 4px 0; }
.nv-berth__fine { font-size: .8rem; color: var(--muted); margin: 0; }
.nv-berth__plan { padding: clamp(22px, 3vw, 36px); border-top: 1px solid var(--line-strong); background: var(--bg-2); }
.nv-berth__planhead { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 18px; }
.nv-berth__planhead h3 { font-size: 1.5rem; margin: 0; }
.nv-legend { display: flex; flex-wrap: wrap; gap: 16px; margin: 0; font-size: .82rem; color: var(--muted); }
.nv-legend span { display: inline-flex; gap: 6px; align-items: center; }
.nv-legend i, .nv-pont__cells i { display: inline-block; width: 14px; height: 22px; border: 1px solid var(--line-strong); }
.nv-legend i { width: 10px; height: 16px; }
.nv-legend i.is-free, .nv-pont__cells i.is-free { background: color-mix(in srgb, var(--glass) 30%, transparent); border-color: var(--glass-ink); }
.nv-legend i.is-taken, .nv-pont__cells i.is-taken { background: var(--surface-2); border-color: var(--line-strong); background-image: repeating-linear-gradient(45deg, transparent 0 3px, var(--line) 3px 4px); }
.nv-legend i.is-fit { background: var(--brass); border-color: var(--brass-ink); }
.nv-ponts { display: grid; gap: 10px; }
.nv-pont { display: grid; grid-template-columns: 34px 1fr 70px; gap: 12px; align-items: center; padding: 8px 0; transition: opacity .4s; }
.nv-pont__k { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--line-strong); font-family: var(--font-head); font-size: 1.15rem; }
.nv-pont__cells { display: flex; flex-wrap: wrap; gap: 4px; padding-bottom: 6px; border-bottom: 3px solid var(--line-strong); min-width: 0; }
.nv-pont__sz { font-size: .8rem; color: var(--muted); text-align: right; white-space: nowrap; }
.nv-pont.is-dim { opacity: .45; }
.nv-pont.is-match .nv-pont__k { background: var(--primary); color: var(--on-primary); border-color: var(--primary); }
.nv-pont.is-match .nv-pont__cells { border-bottom-color: var(--brass); }
.nv-pont.is-match .nv-pont__cells i.is-free { background: var(--brass); border-color: var(--brass-ink); animation: nv-blink 2.4s ease-in-out infinite; }
@keyframes nv-blink { 50% { opacity: .55; } }
.nv-berth__quay { margin-top: 14px; padding: 10px 14px; background: var(--surface-2); font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); text-align: center; border-top: 3px solid var(--brass); }

/* 11. Facilities, plans, quotes, FAQ, crew, destinations ---------------- */
.nv-facs { display: grid; gap: 0; grid-template-columns: 1fr; border-top: 1px solid var(--line-strong); }
@media (min-width: 640px) { .nv-facs { grid-template-columns: 1fr 1fr; column-gap: 32px; } }
@media (min-width: 1280px) { .nv-facs--3 { grid-template-columns: repeat(3, 1fr); } }
.nv-facs li { display: flex; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--line); min-width: 0; }
.nv-fac__ic { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid var(--brass); color: var(--brass-ink); font-size: 1.3rem; }
.nv-facs h3 { font-size: 1.3rem; margin: 0 0 2px; }
.nv-facs p { margin: 0; color: var(--muted); font-size: .94rem; }
.nv-plans { display: grid; gap: 24px; grid-template-columns: 1fr; align-items: stretch; }
@media (min-width: 1024px) { .nv-plans { grid-template-columns: repeat(3, 1fr); } }
.nv-plan { position: relative; display: flex; flex-direction: column; gap: 14px; padding: clamp(26px, 3vw, 38px); background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--brass); }
.nv-plan h3 { font-size: 2rem; margin: 0; }
.nv-plan > p { color: var(--muted); margin: 0; }
.nv-plan__price { padding-block: 16px; border-block: 1px solid var(--line); }
.nv-plan__price b { font-family: var(--font-head); font-weight: 400; font-size: 2.5rem; display: block; line-height: 1; }
.nv-plan__price small { color: var(--muted); font-size: .85rem; }
.nv-plan .btn { margin-top: auto; }
.nv-plan__tag { position: absolute; top: -3px; right: 22px; padding: 6px 12px; background: var(--red); color: #fff; font-size: .68rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.nv-quotes { display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 768px) { .nv-quotes { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .nv-quotes { grid-template-columns: repeat(3, 1fr); } }
.nv-quote { position: relative; display: flex; flex-direction: column; gap: 22px; padding: 34px 28px 26px; background: var(--surface); border: 1px solid var(--line); min-width: 0; }
.nv-quote::before { content: ""; position: absolute; left: 28px; top: -1px; width: 56px; height: 3px; background: var(--brass); }
.nv-quote__mark { font-family: var(--font-head); font-size: 4.5rem; line-height: .5; color: var(--brass); height: 26px; }
.nv-quote blockquote { margin: 0; font-family: var(--font-head); font-size: 1.32rem; line-height: 1.4; }
.nv-quote figcaption { display: flex; align-items: center; gap: 14px; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line); flex-wrap: wrap; }
.nv-quote figcaption strong { display: block; font-weight: 600; }
.nv-quote figcaption span { font-size: .86rem; color: var(--muted); }
.nv-quote__stars { margin-left: auto; color: var(--brass); letter-spacing: 2px; font-size: .9rem; }
.accordion { border-top-color: var(--line-strong); }
.accordion__btn { font-family: var(--font-head); font-weight: 400; font-size: clamp(1.2rem, 1.8vw, 1.45rem); letter-spacing: 0; }
.accordion__icon { border-radius: 0; border-color: var(--line-strong); }
.accordion__item.is-open .accordion__icon { background: var(--primary); color: var(--on-primary); transform: none; }
.accordion__icon .ti { transition: transform .4s var(--ease); }
.accordion__item.is-open .accordion__icon .ti { transform: rotate(45deg); }
.nv-crews { display: grid; gap: 32px 24px; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 1024px) { .nv-crews { grid-template-columns: repeat(4, 1fr); } }
.nv-crew { text-align: center; min-width: 0; }
.nv-crew .nv-port { margin: 0 auto 18px; width: min(100%, 230px); }
.nv-crew h3 { font-size: 1.35rem; margin: 0 0 2px; }
.nv-crew p { margin: 0; color: var(--muted); font-size: .92rem; }
.nv-dests { display: grid; gap: 18px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .nv-dests { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1280px) { .nv-dests { grid-template-columns: repeat(4, 1fr); } }
.nv-dest { position: relative; display: block; overflow: hidden; color: #f7f3ea; min-width: 0; }
.nv-dest__img img { width: 100%; aspect-ratio: 7/8.4; transition: transform 1.2s var(--ease); }
.nv-dest:hover .nv-dest__img img { transform: scale(1.06); }
.nv-dest::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(8, 26, 39, .85)); pointer-events: none; }
.nv-dest__cap { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 22px; }
.nv-dest__cap small { font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: #f0d9a4; }
.nv-dest__cap h3 { font-size: 1.9rem; margin: 2px 0 8px; color: #f7f3ea; }
.nv-dest__cap span { display: inline-flex; gap: 6px; align-items: center; font-size: .82rem; padding-top: 8px; border-top: 1px solid rgba(247, 243, 234, .35); }

/* 12. Conditions widget ------------------------------------------------- */
.nv-cond { border: 1px solid var(--line-strong); background: var(--surface); }
.nv-cond__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 18px; padding: 22px clamp(20px, 3vw, 32px); border-bottom: 1px solid var(--line); }
.nv-cond__head h3 { font-size: 1.9rem; margin: 2px 0 0; }
.nv-cond__verdict { display: flex; gap: 14px; align-items: center; padding: 10px 16px 10px 10px; border: 1px solid var(--line-strong); max-width: 440px; }
.nv-cond__verdict .nv-flag { width: 44px; height: 33px; }
.nv-cond__verdict b { display: block; font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; }
.nv-cond__verdict small { display: block; color: var(--muted); font-size: .86rem; line-height: 1.4; }
.nv-cond__verdict.is-go { border-left: 4px solid var(--glass); }
.nv-cond__verdict.is-go b { color: var(--glass-ink); }
.nv-cond__verdict.is-caution { border-left: 4px solid var(--brass); }
.nv-cond__verdict.is-caution b { color: var(--brass-ink); }
.nv-cond__verdict.is-stay { border-left: 4px solid var(--red); }
.nv-cond__verdict.is-stay b { color: var(--red-ink); }
.nv-cond__grid { display: grid; grid-template-columns: 1fr; }
.nv-cond__grid > * { padding: 24px clamp(20px, 3vw, 32px); min-width: 0; }
.nv-cond__grid > * + * { border-top: 1px solid var(--line); }
@media (min-width: 768px) { .nv-cond__grid { grid-template-columns: 240px 1fr; } .nv-cond__grid > * + * { border-top: 0; border-left: 1px solid var(--line); } .nv-cond__stats { grid-column: 1 / -1; border-top: 1px solid var(--line) !important; border-left: 0 !important; } }
@media (min-width: 1280px) { .nv-cond__grid { grid-template-columns: 250px 1.4fr 1fr; } .nv-cond__stats { grid-column: auto; border-top: 0 !important; border-left: 1px solid var(--line) !important; } }
.nv-cond__wind { text-align: center; }
.nv-cond__dial { position: relative; width: 190px; margin: 0 auto; aspect-ratio: 1; }
.nv-cond__ring { width: 100%; height: 100%; }
.nv-cond__ring text:not(.is-card) { display: none; }
.nv-cond__arrow { position: absolute; left: 50%; top: 8%; bottom: 8%; width: 14px; margin-left: -7px; transform: rotate(var(--dir)); transition: transform 1s var(--ease); }
.nv-cond__arrow::before { content: ""; position: absolute; left: 0; top: 0; border-left: 7px solid transparent; border-right: 7px solid transparent; border-top: 18px solid var(--red); }
.nv-cond__arrow::after { content: ""; position: absolute; left: 6px; top: 16px; width: 2px; height: 22%; background: var(--red); }
.nv-cond__speed { position: absolute; inset: 30%; border-radius: 50%; display: grid; place-content: center; text-align: center; background: var(--surface); box-shadow: 0 0 0 1px var(--line-strong); }
.nv-cond__speed b { font-family: var(--font-head); font-weight: 400; font-size: 2.3rem; line-height: 1; }
.nv-cond__speed small { font-size: .64rem; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.nv-cond__dir { margin: 14px 0 0; font-size: .9rem; color: var(--muted); }
.nv-cond__dir span { color: var(--text); font-weight: 600; }
.nv-cond__tidehead { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 8px; }
.nv-cond__tidehead h4 { font-size: 1.35rem; margin: 0; }
.nv-cond__now { font-size: .8rem; color: var(--red-ink); font-weight: 600; }
.nv-cond__now[hidden] { display: none; }
.nv-cond__svg { width: 100%; height: auto; display: block; }
.nv-cond__area { fill: color-mix(in srgb, var(--glass) 30%, transparent); }
.nv-cond__line { fill: none; stroke: var(--glass-ink); stroke-width: 2.2; }
.nv-cond__nowline { stroke: var(--red); stroke-width: 1.5; stroke-dasharray: 3 3; }
.nv-cond__hours text { fill: var(--muted); font-size: 10px; font-family: var(--font-body); }
.nv-cond__tides { display: grid; grid-template-columns: repeat(auto-fit, minmax(84px, 1fr)); border-top: 1px solid var(--line); margin-top: 8px; }
.nv-cond__tides li { padding: 10px 6px 0; }
.nv-cond__tides span { display: block; font-size: .66rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.nv-cond__tides b { font-family: var(--font-head); font-weight: 400; font-size: 1.3rem; }
.nv-cond__tides em { font-style: normal; font-size: .82rem; color: var(--glass-ink); margin-left: 6px; }
.nv-cond__stats { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; margin: 0; align-content: start; }
.nv-cond__stats div { padding: 10px 0; border-bottom: 1px solid var(--line); min-width: 0; }
.nv-cond__stats dt { display: flex; align-items: center; gap: 6px; font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.nv-cond__stats dt .ti { color: var(--brass-ink); font-size: 1rem; }
.nv-cond__stats dd { margin: 2px 0 0; font-weight: 500; }
.nv-cond__strip { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--line); }
.nv-cond__strip li { min-width: 0; }
.nv-cond__strip li + li { border-left: 1px solid var(--line); }
.nv-cond__day { width: 100%; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 14px 4px; transition: background .3s; position: relative; }
.nv-cond__day small { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; }
.nv-cond__day .ti { font-size: 1.3rem; color: var(--brass-ink); }
.nv-cond__day b { font-family: var(--font-head); font-weight: 400; font-size: 1.2rem; }
.nv-cond__day b em { font-style: normal; font-size: .7rem; color: var(--muted); margin-left: 2px; }
.nv-cond__day:hover { background: var(--surface-2); }
.nv-cond__day.is-active { background: var(--primary); color: var(--on-primary); }
.nv-cond__day.is-active .ti, .nv-cond__day.is-active b em { color: inherit; }
.nv-cond__dot { width: 8px; height: 8px; border-radius: 50%; }
.nv-cond__dot.is-go { background: var(--glass); }
.nv-cond__dot.is-caution { background: var(--brass); }
.nv-cond__dot.is-stay { background: var(--red); }
.nv-cond__fine { margin: 0; padding: 12px clamp(20px, 3vw, 32px); font-size: .78rem; color: var(--muted); border-top: 1px solid var(--line); }

/* 13. Home 1 — yacht charter ------------------------------------------- */
.nv-h1 { padding-bottom: clamp(56px, 7vw, 96px); isolation: isolate; }
.nv-h1__grid { display: grid; gap: 48px; align-items: center; }
@media (min-width: 1024px) { .nv-h1__grid { grid-template-columns: 1.08fr .92fr; gap: 56px; } }
.nv-h1__grid > * { min-width: 0; }
.nv-h1 .hero__title { max-width: 12ch; }
.nv-h1__facts { display: flex; flex-wrap: wrap; gap: 0; margin-top: 40px; border-top: 1px solid var(--line); }
.nv-h1__facts li { padding: 16px 28px 0 0; margin-right: 28px; border-right: 1px solid var(--line); }
.nv-h1__facts li:last-child { border-right: 0; }
.nv-h1__facts b { font-family: var(--font-head); font-weight: 400; font-size: 2.2rem; line-height: 1; display: block; }
.nv-h1__facts span { font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.nv-h1__visual { position: relative; width: min(100%, 560px); margin-inline: auto; padding: 7%; }
.nv-h1__dial { position: absolute; inset: 0; width: 100%; height: 100%; animation: nv-spin 160s linear infinite; }
.nv-h1__card { position: absolute; left: 0; bottom: 4%; padding: 14px 18px; background: var(--surface); border: 1px solid var(--line); border-left: 3px solid var(--red); box-shadow: var(--shadow); max-width: 250px; }
.nv-h1__card small { display: block; font-size: .66rem; letter-spacing: .18em; text-transform: uppercase; color: var(--brass-ink); font-weight: 600; }
.nv-h1__card b { font-family: var(--font-head); font-weight: 400; font-size: 1.4rem; display: block; line-height: 1.2; }
.nv-h1__card span { font-size: .84rem; color: var(--muted); }
.nv-search { display: grid; grid-template-columns: 1fr; margin-top: clamp(40px, 6vw, 72px); background: var(--surface); border: 1px solid var(--line-strong); box-shadow: var(--shadow); position: relative; }
.nv-search::before { content: ""; position: absolute; left: -1px; right: -1px; top: -1px; height: 3px; background: var(--brass); }
.nv-search__f { display: grid; gap: 2px; padding: 14px 18px; border-bottom: 1px solid var(--line); min-width: 0; }
.nv-search__f > span { display: flex; align-items: center; gap: 6px; font-size: .66rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.nv-search__f .ti { color: var(--brass-ink); font-size: .95rem; }
.nv-search .nv-select, .nv-search .nv-input { border: 0; min-height: 36px; padding-left: 0; background-color: transparent; font-size: 1rem; box-shadow: none; }
.nv-search .btn { min-height: 64px; }
@media (min-width: 640px) { .nv-search { grid-template-columns: 1fr 1fr; } .nv-search__f:nth-child(odd) { border-right: 1px solid var(--line); } .nv-search .btn { grid-column: 1 / -1; } }
@media (min-width: 1280px) { .nv-search { grid-template-columns: repeat(4, 1fr) auto; } .nv-search__f { border-bottom: 0; border-right: 1px solid var(--line); } .nv-search .btn { grid-column: auto; min-height: 100%; } }
.nv-intro__media { position: relative; padding-bottom: 60px; padding-right: 40px; }
.nv-intro__img img { width: 100%; aspect-ratio: 5/6; }
.nv-intro__port { position: absolute; right: 0; bottom: 0; width: min(46%, 240px); }

/* 14. Home 2 — marina --------------------------------------------------- */
.nv-h2 { align-items: stretch; padding-top: calc(var(--header-h) + clamp(56px, 10vw, 140px)); padding-bottom: 0; min-height: 100svh; }
.nv-h2::before { background: linear-gradient(90deg, rgba(8, 26, 39, .82) 0%, rgba(8, 26, 39, .45) 60%, rgba(8, 26, 39, .3) 100%), linear-gradient(180deg, transparent 60%, rgba(8, 26, 39, .8)); }
.nv-h2 > .container { display: flex; flex-direction: column; justify-content: space-between; }
.nv-h2__grid { display: grid; gap: 40px; align-items: end; }
@media (min-width: 1024px) { .nv-h2__grid { grid-template-columns: 1.3fr .7fr; gap: 64px; } }
.nv-h2__grid > * { min-width: 0; }
.nv-h2 .hero__title { max-width: 11ch; }
.nv-h2 .btn--ghost { --btn-fg: #fff; border-color: rgba(255, 255, 255, .45); }
.nv-h2 .btn--ghost::after { background: rgba(255, 255, 255, .12); }
.nv-h2 .btn--ghost:hover { color: #fff; }
.nv-h2 .btn:not(.btn--ghost) { --btn-bg: #f7f3ea; --btn-fg: #0c2a3e; }
.nv-h2__office { padding: 22px 24px; background: rgba(8, 26, 39, .62); border: 1px solid rgba(247, 243, 234, .22); border-top: 3px solid var(--brass); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); color: #f4efe3; }
.nv-h2__ohead { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid rgba(247, 243, 234, .2); }
.nv-h2__ohead b { font-family: var(--font-head); font-weight: 400; font-size: 1.4rem; color: #f0d9a4; }
.nv-live { display: inline-flex; align-items: center; gap: 8px; font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; }
.nv-live i { width: 8px; height: 8px; border-radius: 50%; background: var(--glass); box-shadow: 0 0 0 4px rgba(140, 199, 193, .25); animation: nv-blink 2s infinite; }
.nv-h2__office dl { margin: 6px 0 14px; }
.nv-h2__office dl div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid rgba(247, 243, 234, .12); font-size: .94rem; }
.nv-h2__office dt { display: flex; gap: 8px; align-items: center; color: rgba(244, 239, 227, .72); }
.nv-h2__office dt .ti { color: #f0d9a4; }
.nv-h2__office dd { margin: 0; font-weight: 600; text-align: right; }
.nv-h2__band { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: clamp(48px, 7vw, 96px); border-top: 1px solid rgba(247, 243, 234, .3); }
.nv-h2__band li { padding: 20px 16px 26px 0; min-width: 0; }
.nv-h2__band li + li { padding-left: 16px; border-left: 1px solid rgba(247, 243, 234, .2); }
@media (max-width: 767px) { .nv-h2__band li:nth-child(3) { border-left: 0; padding-left: 0; } .nv-h2__band li:nth-child(n+3) { border-top: 1px solid rgba(247, 243, 234, .2); } }
@media (min-width: 768px) { .nv-h2__band { grid-template-columns: repeat(4, 1fr); } }
.nv-h2__band b { display: block; font-family: var(--font-head); font-weight: 400; font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1; }
.nv-h2__band span { font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: rgba(244, 239, 227, .75); }
.nv-village__imgs { position: relative; padding-bottom: 50px; padding-left: 40px; }
.nv-village__a img { width: 100%; aspect-ratio: 9/10; }
.nv-village__port { position: absolute; left: 0; bottom: 0; width: min(44%, 230px); }

/* 15. Home 3 — sailing school ------------------------------------------ */
.nv-h3 { text-align: center; padding-top: calc(var(--header-h) + 120px); }
.nv-bunting { position: absolute; left: 0; right: 0; top: calc(var(--header-h) + 6px); height: 110px; pointer-events: none; }
.nv-bunting__line { position: absolute; left: 0; top: 0; width: 100%; height: 60px; }
.nv-bunting__line path { fill: none; stroke: var(--muted); stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.nv-bunting ul { position: absolute; inset: 0 2% 0; display: flex; justify-content: space-between; }
.nv-bunting li { --t: calc(var(--i) / 11 * .96 + .02); transform-origin: 50% 0; margin-top: calc(4px + var(--t) * (1 - var(--t)) * 120px); animation: nv-swing 3.4s ease-in-out infinite alternate; animation-delay: calc(var(--i) * -.37s); }
.nv-bunting .nv-flag { width: clamp(18px, 4vw, 44px); height: clamp(14px, 3vw, 33px); }
@keyframes nv-swing { from { transform: rotate(-4deg); } to { transform: rotate(4deg); } }
@media (max-width: 639px) { .nv-bunting li:nth-child(even) { display: none; } .nv-bunting li { --t: calc(var(--i) / 11 * .96 + .02); } }
.nv-h3__copy { max-width: 900px; margin-inline: auto; }
.nv-h3 .hero__title { max-width: 14ch; margin-inline: auto; }
.nv-h3 .lead { margin-inline: auto; }
.nv-h3__imgs { display: grid; grid-template-columns: 1fr; gap: 24px; margin-top: clamp(48px, 7vw, 88px); align-items: end; }
.nv-h3__imgs figure { position: relative; margin: 0; }
.nv-h3__imgs figure img { width: 100%; aspect-ratio: 7/8.2; }
.nv-h3__imgs figcaption { position: absolute; left: 12px; bottom: 12px; display: inline-flex; gap: 8px; align-items: center; padding: 6px 12px 6px 6px; background: #f7f3ea; color: #0c2a3e; font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.nv-h3__imgs figcaption .nv-flag { width: 24px; height: 18px; }
.nv-h3__port { width: min(100%, 420px); margin-inline: auto; }
@media (max-width: 767px) { .nv-h3__a, .nv-h3__b { display: none; } }
@media (min-width: 768px) { .nv-h3__imgs { grid-template-columns: 1fr 1.25fr 1fr; gap: clamp(20px, 3vw, 44px); } .nv-h3__a { transform: translateY(-40px); } .nv-h3__b { transform: translateY(-80px); } }
.nv-h3__stats { text-align: left; margin-top: 56px; }
.nv-why__media { position: relative; }
.nv-why__img img { width: 100%; aspect-ratio: 9/10; }
.nv-why__tag { position: absolute; right: 16px; bottom: 16px; display: flex; gap: 12px; align-items: center; max-width: 280px; padding: 12px 16px; background: var(--surface); border-left: 3px solid var(--red); box-shadow: var(--shadow); font-size: .88rem; line-height: 1.35; }
.nv-why__tag .nv-flag { width: 36px; height: 27px; }

/* 16. Home 4 — boat rental --------------------------------------------- */
.nv-h4 { isolation: isolate; padding-bottom: clamp(48px, 6vw, 80px); }
.nv-h4__grid { display: grid; gap: 48px; align-items: center; }
@media (min-width: 1024px) { .nv-h4__grid { grid-template-columns: 1.05fr .95fr; gap: 64px; } }
.nv-h4__grid > * { min-width: 0; }
.nv-h4 .hero__title { max-width: 11ch; }
.nv-h4__ticks li { padding: 5px 0; }
.nv-film { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: clamp(48px, 6vw, 80px); position: relative; }
.nv-film::before { display: none; content: ""; position: absolute; left: 0; right: 0; top: -22px; height: 1px; background: repeating-linear-gradient(90deg, var(--line-strong) 0 6px, transparent 6px 12px); }
@media (min-width: 1024px) { .nv-film { grid-template-columns: repeat(4, 1fr); gap: 18px; } }
.nv-film__f { margin: 0; position: relative; min-width: 0; }
.nv-film__f img { width: 100%; aspect-ratio: 10/7; }
.nv-film__f figcaption { padding-top: 12px; font-size: .88rem; color: var(--muted); line-height: 1.4; }
.nv-film__f figcaption b { display: block; font-family: var(--font-head); font-weight: 400; font-size: 1.5rem; color: var(--text); }
.nv-film__f::before { display: none; content: ""; position: absolute; left: 0; top: -27px; width: 11px; height: 11px; border-radius: 50%; background: var(--brass); box-shadow: 0 0 0 4px var(--bg); }

/* 17. Courses, schedule, alphabet -------------------------------------- */
.nv-courses { display: grid; gap: 22px; grid-template-columns: 1fr; }
@media (min-width: 768px) { .nv-courses { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1280px) { .nv-courses { grid-template-columns: repeat(4, 1fr); align-items: start; } .nv-course:nth-child(2) { margin-top: 36px; } .nv-course:nth-child(3) { margin-top: 72px; } .nv-course:nth-child(4) { margin-top: 108px; } }
.nv-course { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 14px; padding: 28px 24px 22px; background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--brass); min-width: 0; }
.nv-course__top { display: flex; align-items: center; gap: 12px; }
.nv-course__top .nv-flag { width: 44px; height: 33px; }
.nv-course__lv { font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: var(--brass-ink); font-weight: 600; }
.nv-course h3 { font-size: 2rem; margin: 0; }
.nv-course__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0; font-size: .84rem; color: var(--muted); }
.nv-course__meta span { display: inline-flex; gap: 5px; align-items: center; }
.nv-course__meta .ti { color: var(--brass-ink); }
.nv-course .nv-list { font-size: .93rem; }
.nv-course .nv-list li { padding: 4px 0; }
.nv-course__foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 16px; margin-top: auto; border-top: 1px solid var(--line); }
.nv-course__foot small { display: block; font-size: .66rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.nv-course__foot b { font-family: var(--font-head); font-weight: 400; font-size: 1.6rem; }
.nv-course__step { position: absolute; right: -6px; top: -26px; font-family: var(--font-head); font-size: 8rem; line-height: 1; color: var(--text); opacity: .05; pointer-events: none; }
.nv-sched { overflow: hidden; }
.nv-sched table { width: 100%; border-collapse: collapse; }
.nv-sched thead th { font-size: .68rem; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); font-weight: 600; text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--line-strong); }
.nv-sched tbody th { font-family: var(--font-head); font-weight: 400; font-size: 1.25rem; text-align: left; }
.nv-sched td, .nv-sched tbody th { padding: 16px 14px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.nv-sched td:last-child { text-align: right; }
.nv-sched tr.is-full { opacity: .7; }
.nv-seats { display: block; width: 120px; height: 5px; background: var(--surface-2); margin-bottom: 4px; }
.nv-seats i { display: block; height: 100%; background: var(--brass); }
.nv-sched tr.is-full .nv-seats i { background: var(--red); }
.nv-sched small { font-size: .8rem; color: var(--muted); }
@media (max-width: 767px) {
  .nv-sched thead { display: none; }
  .nv-sched table, .nv-sched tbody, .nv-sched tr, .nv-sched td, .nv-sched tbody th { display: block; width: 100%; }
  .nv-sched tr { padding: 16px 0; border-bottom: 1px solid var(--line-strong); }
  .nv-sched td, .nv-sched tbody th { border: 0; padding: 4px 0; text-align: left !important; }
  .nv-sched td[data-l] { display: flex; justify-content: space-between; gap: 12px; }
  .nv-sched td[data-l]::before { content: attr(data-l); font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); padding-top: 3px; }
  .nv-sched td:last-child { padding-top: 10px; }
}
.nv-rates tbody th { font-size: 1.15rem; }
.nv-alpha { display: grid; gap: 0 28px; grid-template-columns: 1fr; border-top: 1px solid var(--line-strong); }
@media (min-width: 640px) { .nv-alpha { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1280px) { .nv-alpha { grid-template-columns: repeat(3, 1fr); } }
.nv-alpha li { display: flex; gap: 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--line); min-width: 0; }
.nv-alpha .nv-flag { width: 56px; height: 42px; box-shadow: 2px 3px 0 var(--line); }
.nv-alpha b { font-family: var(--font-head); font-weight: 400; font-size: 1.5rem; line-height: 1; display: block; }
.nv-alpha span { font-size: .88rem; color: var(--muted); line-height: 1.35; }

/* 18. Booker (boarding pass) & trips ----------------------------------- */
.nv-pass { display: grid; background: var(--surface); border: 1px solid var(--line-strong); box-shadow: var(--shadow-lg); position: relative; }
.nv-pass__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; padding: 14px 22px; background: #0c2a3e; color: #f4efe3; border-bottom: 3px solid var(--brass); font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; }
.nv-pass__logo { font-family: var(--font-logo); font-size: 1rem; letter-spacing: .14em; color: #f0d9a4; }
.nv-pass__head b { font-weight: 600; color: #f0d9a4; }
.nv-pass__body { padding: 22px; display: grid; gap: 18px; }
.nv-pass fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.nv-pass legend, .nv-est legend { font-size: .7rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; padding: 0; }
.nv-pass__row { display: grid; gap: 16px; }
@media (min-width: 640px) { .nv-pass__row { grid-template-columns: 1fr 1.4fr; } }
.nv-pass__stub { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; padding: 22px; border-top: 2px dashed var(--line-strong); background: var(--bg-2); }
.nv-pass__stub::before, .nv-pass__stub::after { content: ""; position: absolute; top: -12px; width: 22px; height: 22px; border-radius: 50%; background: var(--bg); border: 1px solid var(--line-strong); }
.nv-pass__stub::before { left: -12px; }
.nv-pass__stub::after { right: -12px; }
.nv-pass__stub small { display: block; font-size: .64rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.nv-pass__stub b { display: block; font-family: var(--font-head); font-weight: 400; font-size: 1.5rem; line-height: 1.1; }
.nv-pass__stub > div span { font-size: .8rem; color: var(--muted); }
.nv-pass__price b { color: var(--brass-ink); font-size: 1.9rem; }
.nv-pass__stub .btn, .nv-pass__stub .form-success { grid-column: 1 / -1; }
.nv-pass.is-sent .form-success { display: block; }
.form-success { border-radius: 0; background: color-mix(in srgb, var(--glass) 30%, transparent); color: var(--text); }
.nv-trips { display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 768px) { .nv-trips { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1280px) { .nv-trips { grid-template-columns: repeat(3, 1fr); } }
.nv-trip { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); min-width: 0; }
.nv-trip__map { border-bottom: 1px solid var(--line); background: var(--map-sea); }
.nv-trip__body { padding: 22px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.nv-trip__meta { display: flex; gap: 16px; font-size: .8rem; color: var(--muted); }
.nv-trip__meta span { display: inline-flex; gap: 5px; align-items: center; }
.nv-trip__meta .ti { color: var(--brass-ink); }
.nv-trip h3 { font-size: 1.8rem; margin: 0; }
.nv-trip p { color: var(--muted); margin: 0; }
.nv-trip__img { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line); }
.nv-how { display: grid; gap: 0; grid-template-columns: 1fr; border-top: 1px solid var(--line-strong); }
@media (min-width: 768px) { .nv-how { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1280px) { .nv-how { grid-template-columns: repeat(4, 1fr); } }
.nv-how li { padding: 28px 24px 28px 0; border-bottom: 1px solid var(--line); min-width: 0; }
@media (min-width: 768px) { .nv-how li:nth-child(even) { padding-left: 24px; border-left: 1px solid var(--line); } }
@media (min-width: 1280px) { .nv-how li + li { padding-left: 24px; border-left: 1px solid var(--line); } }
.nv-how .nv-flag { width: 48px; height: 36px; margin-bottom: 18px; }
.nv-how h3 { font-size: 1.55rem; margin: 6px 0 6px; }
.nv-how p { color: var(--muted); margin: 0; }

/* 19. Inner pages ------------------------------------------------------- */
.nv-ph { isolation: isolate; padding-bottom: clamp(56px, 7vw, 96px); }
.nv-ph h1 { font-size: clamp(3rem, 7.4vw, 6.4rem); letter-spacing: -0.015em; line-height: 1; }
.nv-ph h1 em { color: var(--brass-ink); }
.nv-ph__top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; padding-bottom: 18px; margin-bottom: clamp(28px, 4vw, 48px); border-bottom: 1px solid var(--line); }
.nv-ph .breadcrumb { margin: 0; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; }
.nv-ph__grid { display: grid; gap: 32px; align-items: end; }
@media (min-width: 1024px) { .nv-ph__grid { grid-template-columns: 1.4fr .6fr; } }
.nv-ph__grid > * { min-width: 0; }
.nv-ph__side { display: flex; justify-content: flex-end; }
.nv-ph__side .nv-port { width: min(100%, 250px); }
@media (max-width: 1023px) { .nv-ph__side { display: none; } }
.nv-ph__rose { position: absolute; right: -60px; top: 90px; width: 360px; opacity: .14; z-index: -1; }
.nv-ph--yacht .nv-ph__grid { grid-template-columns: 1fr; }
@media (min-width: 1024px) { .nv-ph--yacht .nv-ph__grid { grid-template-columns: 1fr auto; } }
.nv-specs--hero { border: 1px solid var(--line-strong); grid-template-columns: repeat(3, 1fr); }
@media (min-width: 640px) { .nv-specs--hero { grid-template-columns: repeat(5, 1fr); } }
@media (max-width: 639px) { .nv-specs--hero li:nth-child(4) { border-left: 0; } .nv-specs--hero li:nth-child(n+4) { border-top: 1px solid var(--line); } }
.nv-specs--hero li { padding: 14px 20px; }
.nv-specs--hero b { font-size: 1.8rem; }
.nv-gal { position: relative; display: grid; gap: 12px; margin-top: clamp(32px, 5vw, 56px); }
@media (min-width: 768px) { .nv-gal { grid-template-columns: 1.8fr 1fr; } }
.nv-gal img { width: 100%; height: 100%; }
.nv-gal__main img { aspect-ratio: 14/9; }
.nv-gal__side { display: grid; gap: 12px; }
.nv-gal__side img { aspect-ratio: 16/10; }
@media (max-width: 767px) { .nv-gal__side { grid-template-columns: 1fr 1fr; } }
.nv-gal__port { position: absolute; width: min(30%, 180px); left: 50%; bottom: -40px; transform: translateX(-50%); }
@media (min-width: 768px) { .nv-gal__port { left: auto; right: calc(35.7% - 60px); transform: none; bottom: -50px; } }
.nv-yd { display: grid; gap: 48px; }
@media (min-width: 1024px) { .nv-yd { grid-template-columns: 1fr 360px; gap: 64px; align-items: start; } .nv-est { position: sticky; top: 96px; } }
.nv-yd > * { min-width: 0; }
.nv-yd__h { font-size: 1.7rem; margin: 48px 0 16px; padding-top: 18px; border-top: 1px solid var(--line-strong); }
.nv-spec { display: grid; grid-template-columns: 1fr; margin: 0; }
@media (min-width: 640px) { .nv-spec { grid-template-columns: 1fr 1fr; column-gap: 32px; } }
.nv-spec div { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.nv-spec dt { color: var(--muted); font-size: .92rem; }
.nv-spec dd { margin: 0; font-weight: 500; text-align: right; }
.nv-cabins li { display: grid; gap: 2px 24px; padding: 14px 0; border-bottom: 1px solid var(--line); }
@media (min-width: 640px) { .nv-cabins li { grid-template-columns: 200px 1fr; } }
.nv-cabins b { font-family: var(--font-head); font-weight: 400; font-size: 1.3rem; }
.nv-cabins span { color: var(--muted); }
.nv-toys { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
@media (min-width: 768px) { .nv-toys { grid-template-columns: repeat(3, 1fr); } }
.nv-toys li { display: flex; gap: 12px; align-items: center; padding: 14px; border: 1px solid var(--line); background: var(--surface); font-size: .94rem; min-width: 0; }
.nv-toys .ti { font-size: 1.5rem; color: var(--brass-ink); flex: none; }
.nv-est { padding: 26px; background: var(--surface); border: 1px solid var(--line-strong); border-top: 3px solid var(--brass); display: grid; gap: 16px; }
.nv-est__head small { font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; color: var(--brass-ink); font-weight: 600; }
.nv-est__head h3 { font-size: 2rem; margin: 0; }
.nv-est fieldset { border: 0; padding: 0; margin: 0; }
.nv-est__dl { margin: 0; border-top: 1px solid var(--line); }
.nv-est__dl div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.nv-est__dl dt { font-size: .9rem; color: var(--muted); }
.nv-est__dl dt small { display: block; font-size: .76rem; }
.nv-est__dl dd { margin: 0; font-weight: 600; }
.nv-est__total { display: flex; justify-content: space-between; align-items: baseline; }
.nv-est__total span { font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.nv-est__total b { font-family: var(--font-head); font-weight: 400; font-size: 2.2rem; color: var(--brass-ink); }
.nv-est__fine { font-size: .8rem; color: var(--muted); margin: 0; }
.nv-months { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
@media (min-width: 768px) { .nv-months { grid-template-columns: repeat(3, 1fr); } }
.nv-months li { padding: 18px; background: var(--bg); min-width: 0; }
.nv-months b { display: block; font-family: var(--font-head); font-weight: 400; font-size: 1.8rem; }
.nv-months span { font-size: .88rem; color: var(--muted); }
.nv-months li::before { content: ""; display: block; height: 4px; width: 40%; margin-bottom: 12px; }
.nv-months .is-mid::before { background: var(--glass); }
.nv-months .is-high::before { background: var(--brass); width: 70%; }
.nv-months .is-peak::before { background: var(--red); width: 100%; }
.nv-story__img { position: relative; }
.nv-story__img img { width: 100%; aspect-ratio: 9/10; }
.nv-story__rose { position: absolute; width: 140px; right: -20px; bottom: -40px; background: var(--bg); border-radius: 50%; padding: 10px; }
@media (max-width: 767px) { .nv-story__rose { right: 10px; } }
.nv-tl { position: relative; max-width: 860px; margin-inline: auto; }
.nv-tl::before { content: ""; position: absolute; left: 86px; top: 8px; bottom: 8px; width: 1px; background: var(--line-strong); }
.nv-tl li { position: relative; display: grid; grid-template-columns: 70px 1fr; gap: 36px; padding: 20px 0; }
.nv-tl li::before { content: ""; position: absolute; left: 81px; top: 30px; width: 11px; height: 11px; background: var(--brass); transform: rotate(45deg); }
.nv-tl__y { font-family: var(--font-head); font-size: 1.6rem; color: var(--brass-ink); line-height: 1.2; }
.nv-tl h3 { font-size: 1.5rem; margin: 0 0 4px; }
.nv-tl p { margin: 0; color: var(--muted); }
.nv-contact { align-items: start; }
.nv-clist li { display: flex; gap: 16px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--line); }
.nv-clist strong { display: block; font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.nv-clist span { font-size: 1.05rem; }
.nv-hours { margin-top: 32px; padding: 22px; border: 1px solid var(--line-strong); border-top: 3px solid var(--brass); }
.nv-hours h3 { font-size: 1.4rem; margin-bottom: 8px; }
.nv-hours dl { margin: 0; }
.nv-hours dl div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: .94rem; }
.nv-hours dd { margin: 0; font-weight: 600; }
.nv-form { padding: clamp(24px, 4vw, 40px); background: var(--surface); border: 1px solid var(--line-strong); border-top: 3px solid var(--brass); }
.nv-form .h3 { margin-bottom: 4px; }
.field label { font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }

/* 20. CTA, footer, 404 --------------------------------------------------- */
.nv-cta { display: grid; gap: 40px; align-items: center; padding: clamp(32px, 6vw, 80px); position: relative; overflow: hidden; border-top: 3px solid var(--brass); }
@media (min-width: 1024px) { .nv-cta { grid-template-columns: 1.25fr .75fr; gap: 56px; } }
.nv-cta > * { min-width: 0; }
.nv-cta .h2 { max-width: 15ch; }
.nv-cta .nv-coord { display: block; margin-bottom: 18px; color: #f0d9a4; }
.nv-cta__media { position: relative; width: min(100%, 380px); margin-inline: auto; padding: 8%; }
.nv-cta__dial { position: absolute; inset: 0; width: 100%; height: 100%; animation: nv-spin 200s linear infinite reverse; }
.nv-cta .nv-port--lg { width: 100%; }
.nv-cta-sec { padding-top: clamp(40px, 5vw, 72px); }
.nv-foot { padding-top: 0; position: relative; overflow: hidden; }
.nv-foot > .container { padding-top: clamp(56px, 7vw, 96px); }
.nv-foot__top { display: grid; gap: 40px; padding-bottom: 48px; border-bottom: 1px solid var(--line); }
@media (min-width: 1024px) { .nv-foot__top { grid-template-columns: 1.2fr 1fr; gap: 72px; } }
.nv-foot__brand .nv-flagword { display: flex; margin-top: 18px; }
.nv-foot__brand p { color: var(--muted); max-width: 44ch; margin: 18px 0 0; }
.nv-foot .logo__mark { box-shadow: inset 0 0 0 1.5px var(--brass), inset 0 0 0 4px var(--bg), inset 0 0 0 5px var(--brass); }
.nv-foot__news { padding: clamp(22px, 3vw, 32px); border: 1px solid var(--line); border-top: 3px solid var(--brass); }
.nv-foot__news h4 { font-size: 1.6rem; margin-bottom: 6px; }
.nv-foot__news p { color: var(--muted); }
.newsletter { border-radius: 0; background: transparent; border-color: var(--line-strong); }
.newsletter .btn { box-shadow: none; }
.nv-foot__grid { display: grid; gap: 32px 24px; grid-template-columns: repeat(2, 1fr); padding-block: 48px; }
@media (min-width: 1024px) { .nv-foot__grid { grid-template-columns: repeat(3, 1fr) 1.4fr; } }
.nv-foot__col { min-width: 0; }
.nv-foot__col h4 { font-size: .72rem; font-family: var(--font-body); font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--brass-ink); margin-bottom: 14px; }
.nv-foot__col:last-child { grid-column: 1 / -1; }
@media (min-width: 1024px) { .nv-foot__col:last-child { grid-column: auto; } }
.nv-foot__col span { color: var(--muted); overflow-wrap: anywhere; }
.nv-foot__col a { overflow-wrap: anywhere; }
.socials a { border-radius: 0; }
.socials a:hover { background: var(--brass); color: var(--navy); }
.nv-foot__mega { font-family: var(--font-logo); font-weight: 400; letter-spacing: .08em; opacity: .07; font-size: clamp(3rem, 13vw, 13rem); }
.error-page { position: relative; }
.error-page .code { font-family: var(--font-head); font-weight: 400; letter-spacing: -0.02em; }
.error-page .btn--gradient { background: var(--primary); }
.nv-cond__vflags { flex: none; display: block; width: 44px; height: 33px; }
.nv-cond__vflags .nv-flag { display: none; }
.nv-cond__verdict.is-go .nv-vf--go, .nv-cond__verdict.is-caution .nv-vf--caution, .nv-cond__verdict.is-stay .nv-vf--stay { display: block; }
.hero--full h1 em, .nv-deep h1 em, .nv-deep h2 em { color: #e2c07e; }
.nv-berth__out .nv-list .ti { background: var(--glass); color: var(--navy); }
@media (min-width: 1024px) { .nv-film::before, .nv-film__f::before { display: block; } }
