/* Z-129 v2 — /boat/: лодка и жизнь на борту. Система главной (Playfair + Onest, фото с подписью вне фото),
   инфографика — язык карт-плит A в палитре C: чернильные линии, мелководье/суша тонами, ночь — navy, охра — акцент. */
.boat-kicker{font:italic 500 clamp(1.05rem,.5vw + .95rem,1.35rem)/1.2 var(--font-display);color:var(--muted);margin:0 0 14px}
.sec-head{max-width:70ch;margin-bottom:clamp(24px,3.5vw,48px)}
.sec-lede{color:var(--muted);margin:14px 0 0;max-width:62ch}
.credit{display:block;margin-top:6px;font-size:.85rem}
.boat-sec{padding:clamp(56px,8vw,128px) 0}
.boat-sec h2{margin:0}
.sw{display:inline-block;flex:none;width:14px;height:14px;margin-right:10px;vertical-align:-2px}

/* ───────── баннер ───────── */
.boat-head{max-width:var(--wrap);margin:0 auto;padding:clamp(40px,6vw,96px) var(--gutter) 0;display:grid;gap:clamp(24px,3vw,48px)}
.boat-head h1{font-size:clamp(2.9rem,6.4vw,7rem);line-height:.95;max-width:13ch}
.boat-lede{font-size:clamp(1.08rem,.6vw + .95rem,1.35rem);line-height:1.5;margin:22px 0 0;max-width:40ch}
.boat-banner .frame-img{aspect-ratio:4/3}
.boat-banner img{object-position:50% 55%}
@media (min-width:1000px){
  .boat-head{grid-template-columns:minmax(0,.8fr) minmax(0,1.35fr);align-items:end}
  .boat-banner .frame-img{aspect-ratio:3/2}
}

/* ───────── планировка + характеристики ───────── */
.spec-grid{display:grid;gap:clamp(48px,6vw,96px)}
/* ширины колонок 1.5 : 1 при кадрах 4:3 и 8:9 дают одинаковую высоту схем */
.plans-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:14px;margin-top:clamp(20px,3vw,36px);align-items:start}
.plan{margin:0;display:flex;flex-direction:column;gap:8px;min-width:0}
/* рамка карт-плиты: двойная чернильная линия на бумаге плиты */
.plan-frame{position:relative;border:2px solid var(--ink);padding:5px;background:#fff;aspect-ratio:4/3;display:grid;place-items:center;overflow:hidden}
.plan--deck .plan-frame{aspect-ratio:8/9}
.plan-frame::before{content:"";position:absolute;inset:4px;border:1px solid var(--ink);pointer-events:none;z-index:1}
.plan-frame img{width:100%;height:100%;object-fit:contain}
.plan--cabins .plan-frame img{transform:scale(1.6)}     /* у схемы кают широкие белые поля: крупнее без обрезки корпуса */
.plan figcaption{font:italic 400 .95rem/1.4 var(--font-display);color:var(--muted)}
.spec-list{margin:clamp(20px,3vw,36px) 0 0;border-top:2px solid var(--ink)}
.spec-list>div{display:grid;grid-template-columns:minmax(0,1fr);gap:2px 24px;padding:12px 0;border-bottom:1px solid var(--line)}
.spec-list dt{font-size:.9rem;color:var(--muted)}
.spec-list dd{margin:0;font-size:1.02rem;line-height:1.45}
@media (min-width:600px){.spec-list>div{grid-template-columns:10rem minmax(0,1fr)}}
@media (min-width:1100px){
  .spec-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
  .plans{position:sticky;top:calc(var(--header-h) + 24px)}    /* схемы остаются рядом, пока читаются 13 строк ТТХ */
}

/* ───────── галерея ───────── */
.gallery{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}
.gal-item figure{margin:0;display:flex;flex-direction:column;gap:8px}
.gal-link{display:block;overflow:hidden;aspect-ratio:4/3;background:var(--tone-1)}
.gal-link img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.gal-link:hover img{transform:scale(1.04)}
.gal-link:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.gal-item figcaption{font:italic 400 .92rem/1.35 var(--font-display);color:var(--muted)}
/* 24 фото без хвоста: 2 / 3 / 4 / 6 колонок делят 24 ровно */
@media (min-width:700px){.gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 18px}}
@media (min-width:1100px){.gallery{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1800px){.gallery{grid-template-columns:repeat(6,minmax(0,1fr))}}

/* ───────── что есть на борту ───────── */
.equip{display:grid;gap:28px 48px;margin-top:clamp(24px,3vw,40px)}
.equip h3{font:italic 500 1.35rem/1.2 var(--font-display);margin:0 0 12px}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips li{border:1px solid var(--ink);border-radius:999px;padding:6px 14px;font-size:.95rem;line-height:1.3}
@media (min-width:900px){.equip{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ───────── плечи: столбики на карт-плите ───────── */
.legs-sec{background:var(--tone-1)}
.legs-plate{position:relative;margin:0;border:2px solid var(--ink);padding:clamp(18px,3vw,44px) clamp(14px,3vw,44px);background:var(--plate-paper)}
.legs-plate::before{content:"";position:absolute;inset:4px;border:1px solid var(--ink);pointer-events:none}
.legs{list-style:none;margin:0;padding:0;display:grid;gap:clamp(18px,2.4vw,26px)}
.leg{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name num" "track track" "meta meta";gap:6px 12px;align-items:center}
.leg p{margin:0;max-width:none}
.leg-name{grid-area:name;font-weight:600;font-size:1rem}
.leg-track{grid-area:track;height:30px;
  background:repeating-linear-gradient(to right,rgba(10,37,64,.22) 0 1px,transparent 1px var(--step)) left/100% 100%,var(--plate-shallow-2)}
.leg-bar{display:flex;align-items:center;height:100%;background:var(--accent);overflow:hidden;min-width:4px}
.leg--night .leg-bar{background:var(--navy)}
.leg--ocean .leg-bar{background:repeating-linear-gradient(90deg,var(--navy) 0 14px,#11345a 14px 18px)}
.leg-in{padding:0 10px;font-size:.78rem;font-weight:500;line-height:1;color:#f4f7f9;white-space:nowrap}
.leg-num{grid-area:num;text-align:right;white-space:nowrap}
.leg-num b{font:900 clamp(1.7rem,2.4vw,2.6rem)/1 var(--font-display);letter-spacing:-.02em;font-variant-numeric:lining-nums tabular-nums;color:var(--accent)}
.leg--night .leg-num b{color:var(--navy)}
.leg-num .u,.leg-meta{font-size:.9rem;color:var(--muted)}
.leg-meta{grid-area:meta;font-variant-numeric:tabular-nums}
.legs-legend{list-style:none;margin:clamp(22px,3vw,34px) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 28px;font-size:.92rem;color:var(--muted)}
.sw--day{background:var(--accent)} .sw--sea{background:var(--navy)} .sw--shore{background:var(--plate-shallow);box-shadow:inset 0 0 0 1px rgba(10,37,64,.3)}
.legs-total{margin-top:12px;padding-top:12px;border-top:1px solid var(--ink);font-size:1rem}
.legs-total b{font:800 1.3rem/1 var(--font-display);font-variant-numeric:lining-nums}
@media (max-width:599px){.leg--night:not(.leg--ocean) .leg-in{display:none}}
@media (min-width:900px){
  .leg{grid-template-columns:minmax(12rem,15rem) minmax(0,1fr) 7.5rem 9rem;grid-template-areas:"name track num meta";gap:10px 22px}
  .leg-track{height:40px}
  .leg-num{text-align:right}
}

/* ───────── кольцо часов + полоса ночей ───────── */
.time-grid{display:grid;gap:clamp(56px,7vw,112px)}
.hours-body{display:flex;flex-wrap:wrap;align-items:center;gap:20px 36px;margin-top:clamp(20px,3vw,36px)}
.hours-ring{width:clamp(140px,20vw,260px);height:auto;flex:none}
.ring-bg{fill:none;stroke:var(--plate-shallow);stroke-width:18}
.ring-arc{fill:none;stroke:var(--accent);stroke-width:18}
.ring-pct{font:900 34px/1 var(--font-display);fill:var(--ink);font-variant-numeric:lining-nums}
.hours-num{margin:0;display:flex;flex-direction:column;gap:8px}
.hours-num .n,.nights-h .n,.star-sec h2 .n{font:900 clamp(4.2rem,8vw,8rem)/.85 var(--font-display);letter-spacing:-.04em;color:var(--accent);font-variant-numeric:lining-nums tabular-nums}
.hours-num .l{font-size:1.05rem;color:var(--muted)}
.hours-text{margin:24px 0 0;max-width:46ch;color:var(--muted)}
.nights-h{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 16px}
.nights-strip{list-style:none;margin:clamp(24px,3vw,40px) 0 0;padding:0;display:grid;grid-template-columns:repeat(21,minmax(0,1fr));gap:3px}
.night-cell{height:clamp(44px,5vw,72px);display:flex;align-items:flex-end;justify-content:center;padding-bottom:6px;
  background:var(--plate-shallow);color:var(--ink);font:600 clamp(.6rem,.8vw,.82rem)/1 var(--font-text);font-variant-numeric:tabular-nums}
.night-cell--sea{background:var(--navy);color:#f4f7f9}
.nights-ends{display:flex;justify-content:space-between;gap:12px;margin:8px 0 0;max-width:none;font-size:.85rem;color:var(--muted);font-variant-numeric:lining-nums}
.nights-legend{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:10px;font-size:1rem}
.nights-legend li{display:flex;align-items:baseline;gap:0}
.nights-legend b{font:800 1.5rem/1 var(--font-display);margin-right:10px;font-variant-numeric:lining-nums}
@media (min-width:1100px){.time-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start}}

/* ───────── жизнь на борту ───────── */
.life{list-style:none;margin:0;padding:0;display:grid;gap:32px 48px}
.life-fact{border-top:2px solid var(--ink);padding-top:16px}
.life-fact h3{font-size:clamp(1.35rem,1vw + 1rem,1.8rem);line-height:1.1;margin:0 0 10px}
.life-fact p{margin:0;max-width:60ch}
@media (min-width:800px){.life{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1800px){.life{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* ───────── колесо вахт (navy: ночь в море) ───────── */
.watch-sec{--ink:#f2f6f8;--muted:#b7c7d3;--accent:#8ed2e3;--line:#2a4a68;background:var(--navy);color:var(--ink)}
.watch-grid{display:grid;gap:clamp(40px,5vw,80px);align-items:center}
.watch-legend{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:10px;font-variant-numeric:tabular-nums}
.watch-legend li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.watch-legend span{color:var(--muted)}
.sw--p1,.sw-p1{background:#8ed2e3;stroke:#8ed2e3} .sw--p2,.sw-p2{background:#e0ae58;stroke:#e0ae58}
.sw--p3,.sw-p3{background:#f2f6f8;stroke:#f2f6f8} .sw--p4,.sw-p4{background:#9db8cc;stroke:#9db8cc}   /* все сектора ≥ 3:1 к navy, цифры navy на секторе ≥ 7:1 */
.sw--p5,.sw-p5{background:#ece4c8;stroke:#ece4c8}
.watch-fig{margin:0;display:flex;flex-direction:column;align-items:center;gap:16px}
.watch-wheel{width:min(100%,460px);height:auto;overflow:visible;font-family:var(--font-text)}
.wheel-bg{fill:none;stroke:rgba(242,246,248,.12);stroke-width:40}
.wheel-seg{fill:none;stroke-width:40}
.wheel-who{font-weight:700;font-size:13px;fill:#0a2540}
.wheel-tick{stroke:#b7c7d3;stroke-width:1.2}
.wheel-h{font-size:10px;font-weight:500;fill:#d3dde5;font-variant-numeric:tabular-nums}
.wheel-c{font:800 17px/1 var(--font-display);fill:#f2f6f8}
.wheel-c2{font:italic 400 12px/1 var(--font-display);fill:#b7c7d3}
.watch-fig figcaption{font:italic 400 1rem/1.45 var(--font-display);color:var(--muted);max-width:52ch;text-align:center}
@media (min-width:1000px){.watch-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

/* ───────── Starlink ───────── */
.star-sec h2{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 16px}
.star-strip{display:flex;gap:3px;height:clamp(36px,4vw,56px)}
.sl-seg{flex-basis:0;min-width:6px;box-shadow:inset 0 0 0 1px var(--ink)}   /* охра на белом 2:1 — граница чернилами */
.sl--coastal{background:var(--accent)}
.sl--offshore{background:var(--ochre)}
.sl--partial{background:repeating-linear-gradient(135deg,var(--ochre) 0 8px,var(--accent) 8px 16px)}
.star-legs{list-style:none;margin:clamp(24px,3vw,36px) 0 0;padding:0;display:grid;gap:0}
.star-legs li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"sw name nm" ". zone zone";gap:2px 0;padding:10px 0;border-bottom:1px solid var(--line);align-items:baseline}
.star-legs .sw{grid-area:sw;box-shadow:inset 0 0 0 1px var(--ink)}
.sl-name{grid-area:name;font-weight:600}
.sl-nm{grid-area:nm;font-variant-numeric:tabular-nums;color:var(--muted);padding-left:12px}
.sl-zone{grid-area:zone;color:var(--muted);font-size:.95rem}
.star-note{margin:22px 0 0;font:italic 400 1.05rem/1.45 var(--font-display);color:var(--muted)}
@media (min-width:900px){
  .star-legs li{grid-template-columns:auto minmax(12rem,18rem) 7rem minmax(0,1fr);grid-template-areas:"sw name nm zone"}
  .sl-nm{padding-left:0}
}

/* ───────── лайтбокс ───────── */
/* страница не скроллится под открытым диалогом и без Lenis (reduced-motion, нет vendor); .lb-open — фолбэк без :has */
:root:has(dialog.lb[open]),html.lb-open{overflow:hidden}
.lb{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:clamp(56px,6vh,72px) clamp(12px,5vw,96px) clamp(16px,3vh,32px);
  border:0;background:var(--navy);color:#f2f6f8}
.lb::backdrop{background:rgba(10,37,64,.6)}
.lb[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}
.lb-fig{margin:0;display:flex;flex-direction:column;align-items:center;gap:12px;min-height:0;flex:1 1 auto;justify-content:center}
.lb-img{max-width:100%;max-height:calc(100dvh - 190px);object-fit:contain;min-height:0}
.lb-cap{font:italic 400 1.1rem/1.4 var(--font-display);text-align:center;max-width:60ch}
.lb-count{margin:0;font-size:.9rem;color:#c9d6e0;font-variant-numeric:tabular-nums}
.lb-btn{position:absolute;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:1.5px solid #f2f6f8;background:rgba(10,37,64,.6);color:#f2f6f8;cursor:pointer}
.lb-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.lb-btn:hover{background:#f2f6f8;color:var(--navy)}
.lb-btn:focus-visible{outline:3px solid #8ed2e3;outline-offset:3px}
.lb-close{top:12px;right:12px}
.lb-prev{left:clamp(8px,2vw,28px);top:50%;transform:translateY(-50%)}
.lb-next{right:clamp(8px,2vw,28px);top:50%;transform:translateY(-50%)}
@media (max-width:699px){.lb-prev,.lb-next{top:auto;bottom:14px;transform:none}}
/* телефон: схемы друг под другом — план кают читается во всю ширину */
@media (max-width:599px){.plans-row{grid-template-columns:minmax(0,1fr)}.plan--deck{max-width:78%}}
.boat-priyomka{margin:12px 0 0;font:500 .95rem/1.4 var(--font-text)}
