/* Z-129 v2 — /crew/: разворот «люди на борту». Система главной и /boat/: Playfair (имена, роли курсивом, цифры) + Onest,
   фото без скруглений, рамка карт-плиты у схемы коек, ночной navy — у вахт. Цвета только токенами tokens.css. */
.crew-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(28px,4vw,56px)}
.sec-lede{color:var(--muted);margin:14px 0 0;max-width:62ch}

/* ───────── шапка разворота ───────── */
.crew-head{max-width:var(--wrap);margin:0 auto;padding:clamp(40px,6vw,104px) var(--gutter) clamp(36px,5vw,72px);
  display:grid;gap:clamp(28px,4vw,56px)}
.crew-head h1{font-size:clamp(2.9rem,6.4vw,7rem);line-height:.95;max-width:12ch}
.crew-lede{font-size:clamp(1.08rem,.6vw + .95rem,1.35rem);line-height:1.5;margin:22px 0 0;max-width:44ch}
.free-trio{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.free-trio li{border-top:2px solid var(--ink);min-width:0}
.free-trio a{display:flex;flex-direction:column;gap:2px;padding-top:6px;text-decoration:none}
.free-trio a:hover .l b{text-decoration:underline;text-decoration-color:var(--accent)}
/* line-height 1.15: рамка текста цифры не наезжает на линию сверху (contrast.js меряет по рамке Range) */
.free-trio .n{font:900 clamp(3.4rem,8vw,7.5rem)/1.15 var(--font-display);letter-spacing:-.04em;color:var(--accent);
  font-variant-numeric:lining-nums tabular-nums}
.free-trio .l{font-size:.9rem;line-height:1.35;color:var(--muted);overflow-wrap:break-word}
.free-trio .l b{display:block;font-weight:600;color:var(--ink)}
.free-box{min-width:0}
.crew-approx{margin:14px 0 0;font-size:.9rem;line-height:1.4;color:var(--muted)}   /* Z-131: даты этапов — примерные */
@media (min-width:1000px){
  .crew-head{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:end}
}

/* ───────── экипаж: карточки с крупным портретом ───────── */
.crew-sec{padding:0 0 clamp(64px,9vw,140px)}
.roster{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(48px,6vw,80px) clamp(20px,2.4vw,40px)}
.roster>li{min-width:0}
.crew-card{display:flex;flex-direction:column;min-width:0}
.portrait{aspect-ratio:1;overflow:hidden;background:var(--navy);margin-bottom:18px}
.portrait img{width:100%;height:100%;object-fit:cover}
/* Владимир — инициал до фото, как .face на главной, но в полный рост портрета */
.portrait .initial{display:grid;place-items:center;width:100%;height:100%;color:var(--ink-on-navy);
  font:italic 500 clamp(9rem,26vw,17rem)/1 var(--font-display);letter-spacing:-.04em;
  background:radial-gradient(circle at 70% 25%,var(--navy-soft) 0%,var(--navy) 62%)}
.crew-role{font:italic 500 clamp(1.1rem,.5vw + 1rem,1.4rem)/1.2 var(--font-display);color:var(--muted);margin:0 0 4px}
.crew-card h3{font-size:clamp(2.2rem,2.4vw + 1rem,3.4rem);line-height:.95;letter-spacing:-.025em;font-weight:900}
.crew-stages{margin:18px 0 16px}
.stage-strip{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}
.stage-strip li{font-size:.8rem;line-height:1.2;padding-top:8px;min-width:0;overflow-wrap:break-word}
.stage-strip .on{border-top:6px solid var(--accent);color:var(--ink);font-weight:600}
.stage-strip .off{border-top:6px solid var(--line);color:var(--muted)}
.crew-stage{margin:8px 0 0;font:italic 400 1rem/1.35 var(--font-display);color:var(--muted)}
.crew-text{margin:0;max-width:52ch}

/* шестой слот — «+ ты»: пустой портрет пунктиром, ведёт к местам */
.roster-you a{display:flex;flex-direction:column;gap:10px;height:100%;text-decoration:none;color:var(--ink)}
.you-ring{display:grid;place-items:center;aspect-ratio:1;border:2px dashed var(--accent);color:var(--accent);
  font:italic 500 clamp(4rem,11vw,8rem)/1 var(--font-display);letter-spacing:-.03em;transition:background-color .3s var(--ease)}
.roster-you a:hover .you-ring{background:var(--tone-1)}
.you-slot-t{margin-top:8px;font:italic 500 clamp(1.1rem,.5vw + 1rem,1.4rem)/1.2 var(--font-display);color:var(--muted)}
.you-slot-n{font:900 clamp(2.2rem,2.4vw + 1rem,3.4rem)/.95 var(--font-display);letter-spacing:-.02em;font-variant-numeric:lining-nums}
.roster-you a:hover .you-slot-t{text-decoration:underline;text-decoration-color:var(--accent)}
@media (min-width:640px){.roster{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.roster{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ───────── «+ ты»: светлая бирюза Средиземки; акцент темнее — цифры ≥ 7:1 на тоне ───────── */
.you-sec{--accent:var(--accent-deep);background:var(--tone-1);padding:clamp(64px,9vw,140px) 0;scroll-margin-top:var(--header-h)}
.you-grid{display:grid;gap:clamp(40px,5vw,80px)}
.you-text h2{max-width:14ch}
.prices{list-style:none;margin:clamp(28px,3.5vw,44px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,2vw,20px);max-width:720px}
.prices li{border-top:2px solid var(--ink);padding-top:12px;min-width:0}
.prices .n{display:block;font:900 clamp(2.1rem,4.6vw,4.6rem)/.9 var(--font-display);letter-spacing:-.03em;color:var(--accent);
  font-variant-numeric:lining-nums tabular-nums}
.prices .l{display:block;margin-top:8px;color:var(--muted)}
.terms{margin:28px 0 0;max-width:62ch}
.terms>div{display:grid;gap:2px 24px;padding:12px 0;border-bottom:1px solid var(--navy-20)}
.terms>div:first-child{border-top:1px solid var(--navy-20)}
.terms dt{font:italic 500 1.05rem/1.3 var(--font-display)}
.terms dd{margin:0}
@media (min-width:600px){.terms>div{grid-template-columns:10rem minmax(0,1fr)}}
/* Z-168: судовая касса — состав + оценка на человека по этапам */
.kitty{margin:clamp(28px,3.5vw,44px) 0 0;max-width:62ch}
.kitty h3{margin:0 0 10px;font:italic 500 clamp(1.4rem,1vw + 1.1rem,1.8rem)/1.2 var(--font-display)}
.kitty p{margin:0}
.kitty-in{margin-top:14px!important;font:italic 500 1.05rem/1.3 var(--font-display)}
.kitty-items{margin:6px 0 0;padding-left:1.2em}
.kitty-per{margin-top:18px!important;color:var(--muted)}
.kitty-legs{list-style:none;margin:8px 0 0;padding:0;border-top:1px solid var(--navy-20)}
.kitty-legs li{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 16px;padding:10px 0;border-bottom:1px solid var(--navy-20)}
.kitty-legs .n{font:800 1.35rem/1.1 var(--font-display);color:var(--ink);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.kitty-total .l{font-weight:700}
.kitty-legs .kitty-total{border-bottom:2px solid var(--ink)}
.kitty-note{margin-top:12px!important;font-size:.92rem;color:var(--muted)}
.you-more{margin:18px 0 0;color:var(--muted)}
.you-more a{color:var(--ink)}
.you-cta{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:clamp(28px,3.5vw,44px)}
.alt-contact{padding:10px 0;font-weight:500}

/* готовое сообщение: цитата + кнопка; статус — не display:none (скринридер) */
.copy{margin-top:clamp(28px,3.5vw,40px);max-width:560px}
.copy-label{margin:0 0 8px;font-size:.9rem;color:var(--muted)}
.copy-msg{margin:0;padding:14px 18px;border-left:3px solid var(--accent);background:var(--paper)}
.copy-msg p{margin:0;font:italic 400 1.1rem/1.45 var(--font-display)}
.copy-btn{margin-top:14px;min-height:44px;padding:0 20px;border:1.5px solid var(--ink);border-radius:999px;background:var(--ink);color:var(--paper);
  font:600 .98rem/1 var(--font-text);cursor:pointer;transition:background-color .2s var(--ease),color .2s var(--ease)}
.copy-btn:hover{background:var(--paper);color:var(--ink)}
.copy-status{min-height:1.5em;margin:10px 0 0;font-size:.95rem}
.copy-status:empty{min-height:0;margin:0}
.copy-fallback{display:block;width:100%;margin-top:10px;padding:12px 14px;border:1.5px solid var(--ink);background:var(--paper);color:var(--ink);
  font:400 1rem/1.45 var(--font-text);resize:vertical}

/* схема коек: рамка карт-плиты, строка на этап, 8 кружков — лица экипажа и пунктир свободных */
.berths-fig{margin:0;min-width:0}
.berths-plate{position:relative;border:2px solid var(--ink);padding:clamp(20px,3vw,40px) clamp(16px,3vw,40px);background:var(--plate-paper)}
.berths-plate::before{content:"";position:absolute;inset:4px;border:1px solid var(--ink);pointer-events:none}
.berths-plate h3{font-size:clamp(1.5rem,1.4vw + 1rem,2.3rem);margin:0 0 clamp(18px,2.4vw,28px)}
.berth-rows{list-style:none;margin:0;padding:0;display:grid;gap:22px}
.berth-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name free" "seats seats";gap:10px 16px;align-items:end;
  padding-top:14px;border-top:1px solid var(--ink);scroll-margin-top:calc(var(--header-h) + 16px)}
.br-name{grid-area:name;margin:0}
.br-name b{display:block;font:800 1.25rem/1.1 var(--font-display)}
.br-name span{font-size:.9rem;color:var(--muted)}
.br-free{grid-area:free;margin:0;text-align:right;white-space:nowrap}
.br-free .n{font:900 clamp(2.2rem,3vw,3rem)/1 var(--font-display);color:var(--accent);font-variant-numeric:lining-nums tabular-nums}
.br-free .l{font-size:.9rem;color:var(--muted)}
.berths{grid-area:seats;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:clamp(5px,.8vw,10px);max-width:520px}
.berth{aspect-ratio:1;border-radius:50%;overflow:hidden;display:grid;place-items:center;min-width:0}
.berth--taken{background:var(--navy);box-shadow:0 0 0 2px var(--plate-paper),0 0 0 3px var(--ink)}
.berth--taken img{width:100%;height:100%;object-fit:cover}
.berth--taken .initial{color:var(--ink-on-navy);font:italic 600 clamp(1rem,2.2vw,1.35rem)/1 var(--font-display)}
.berth--free{border:2px dashed var(--accent);color:var(--accent);font:500 clamp(1rem,2vw,1.3rem)/1 var(--font-text)}
.berths-fig figcaption{margin-top:10px;font:italic 400 .95rem/1.4 var(--font-display);color:var(--muted)}
@media (min-width:1000px){
  .you-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
  .berths-fig{position:sticky;top:calc(var(--header-h) + 24px)}   /* схема рядом, пока читаются цена и условия */
}

/* ───────── вахты: ночной navy — вахты стоят ночью в море ───────── */
.watch-sec{--ink:var(--ink-on-navy);--muted:var(--muted-on-navy);--accent:var(--accent-navy);--line:var(--line-on-navy);background:var(--navy);color:var(--ink);
  padding:clamp(64px,9vw,140px) 0}
.roles{list-style:none;margin:0;padding:0;display:grid;gap:32px clamp(24px,3vw,56px)}
.role{border-top:2px solid var(--accent);padding-top:16px;min-width:0}
.role h3{font-size:clamp(1.6rem,1.4vw + 1rem,2.4rem);margin:0 0 12px}
.role p{margin:0;color:var(--muted)}
.watch-link{margin:clamp(32px,4vw,56px) 0 0}
.watch-link a{font:italic 500 clamp(1.15rem,.5vw + 1rem,1.45rem)/1.3 var(--font-display);color:var(--ink);
  text-decoration-color:var(--accent);text-decoration-thickness:2px}
.watch-sec :focus-visible{outline-color:var(--accent)}
@media (min-width:900px){.roles{grid-template-columns:repeat(3,minmax(0,1fr))}}
