/* ==========================================================================
   Diving David — Сириус · Сочи · Хоста · Адлер
   Палитра клиента: Deep Ocean / Blueberry / Bluebird / Clear Skies / Clouds
   Всё скруглено, ховеры со свечением, секции чередуются цветными полосами.
   ========================================================================== */

/* Шрифты подключены <link>-ом в <head>: из @import браузер узнаёт о них
   только после загрузки этого файла, и текст дольше ждёт своего шрифта. */

:root{
  /* ---- палитра клиента, один в один ---- */
  --ocean:#12284B;      /* Deep Ocean  */
  --berry:#0055A0;      /* Blueberry   */
  --bird:#438BC4;       /* Bluebird    */
  --sky:#8CC1E9;        /* Clear Skies */
  --cloud:#FFF8E7;      /* Clouds      */
  --brand:#033781;  /* синий из файла логотипа Давида */

  /* производные */
  --ocean-2:#1B3866;
  --ocean-3:#0C1C36;
  --ink:#12284B;
  --ink-soft:#41597D;
  --cream-2:#F6EDD9;
  --white:#FFFFFF;

  --line-dark:rgba(140,193,233,.22);
  --line-light:rgba(18,40,75,.14);
  --glow:rgba(67,139,196,.45);

  /* шрифты */
  --display:'Playfair Display',Georgia,'Times New Roman',serif;
  --body:'Manrope','Helvetica Neue',Arial,sans-serif;

  /* скругления — ничего квадратного */
  --r-xs:10px;
  --r-sm:16px;
  --r:22px;
  --r-lg:30px;
  --r-xl:40px;
  --pill:999px;

  /* ритм */
  --gut:clamp(1.25rem,5vw,3rem);
  --sec:clamp(4.5rem,10vw,8rem);
  --maxw:1200px;
  --hdr:72px;

  --ease:cubic-bezier(.22,.8,.28,1);
}

*,*::before,*::after{box-sizing:border-box}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--hdr) + 16px);
}

body{
  margin:0;
  background:var(--cloud);
  color:var(--ink);
  font:400 17px/1.65 var(--body);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

img,video{max-width:100%;display:block}
/* Контентным картинкам height обязан быть auto — иначе презентационный
   height="" из разметки ломает aspect-ratio. Фон hero исключён: он должен
   растягиваться на всю секцию, а не по пропорции файла. */
img[width][height]:not(.hero__img){height:auto}
a{color:inherit}

:focus-visible{outline:3px solid var(--bird);outline-offset:3px;border-radius:var(--r-xs)}

.skip{
  position:absolute;left:-9999px;top:0;z-index:300;
  background:var(--berry);color:#fff;border-radius:var(--pill);
  padding:14px 24px;font:600 15px var(--body);min-height:44px;
}
.skip:focus{left:12px;top:12px}

.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}

/* ---------------------------------------------------------- типографика */
.h1,.h2,.h3,.h4{font-family:var(--display);font-weight:500;margin:0}

.h1{
  font-size:clamp(2.15rem,7.2vw,5.2rem);
  line-height:1.03;
  letter-spacing:-.015em;
}
.h1 em{font-style:italic;font-weight:400}

.h2{
  font-size:clamp(2rem,4.6vw,3.3rem);
  line-height:1.1;
  letter-spacing:-.012em;
  margin-bottom:.45em;
}
.h3{font-size:clamp(1.2rem,2.4vw,1.5rem);line-height:1.25;font-weight:600}
.h4{font-size:1.05rem;line-height:1.3;font-weight:600}

.eyebrow{
  font-family:var(--body);
  font-size:.75rem;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;
  margin:0 0 1rem;
  display:inline-flex;align-items:center;gap:.6rem;
}
.eyebrow::before{content:"";width:26px;height:2px;border-radius:2px;background:currentColor;opacity:.55}

.lede{font-size:clamp(1.05rem,1.9vw,1.22rem);line-height:1.6;max-width:62ch;margin:0}
.small{font-size:.9rem;line-height:1.55}

/* ------------------------------------------------------------- полосы */
.band{padding-block:var(--sec);position:relative}
.band--tight{padding-block:calc(var(--sec)*.62)}

.band--cream{background:var(--cloud);color:var(--ink)}
.band--cream .eyebrow{color:var(--berry)}
.band--cream .lede{color:var(--ink-soft)}

.band--ocean{background:var(--ocean);color:var(--cloud)}
.band--ocean .eyebrow{color:var(--sky)}
.band--ocean .lede{color:var(--sky)}

.band--sky{background:var(--sky);color:var(--ocean)}
.band--sky .eyebrow{color:var(--ocean)}

/* Полосы секций — во всю ширину, без скруглений: скругляются карточки,
   кнопки, фото и поля, но не сами секции.
   Две одноцветные полосы подряд («Отзывы» → «Где ныряем», «Аренда» → FAQ)
   сливались в одно бесконечное пятно — разделяем их волосяной линией. */
.band--ocean + .band--ocean{border-top:1px solid var(--line-dark)}
.band--cream + .band--cream{border-top:1px solid var(--line-light)}

.head{margin-bottom:clamp(2.2rem,5vw,3.4rem);max-width:70ch}

/* ------------------------------------------------------------- кнопки */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  min-height:54px;padding:.9rem 2rem;
  font:600 1rem/1 var(--body);letter-spacing:.005em;
  text-decoration:none;border:2px solid transparent;border-radius:var(--pill);
  cursor:pointer;position:relative;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),
             background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease);
}.btn--primary{background:var(--berry);color:#fff;box-shadow:0 6px 20px rgba(0,85,160,.28)}.btn--ghost{background:rgba(255,255,255,.10);color:#fff;border-color:rgba(255,255,255,.55);backdrop-filter:blur(6px)}.btn--outline{background:transparent;color:var(--berry);border-color:var(--berry)}.btn--light{background:var(--cloud);color:var(--ocean)}.btn--wide{width:100%}

/* --------------------------------------------------------------- шапка */
.hdr{
  position:fixed;inset:0 0 auto;z-index:200;
  padding-top:14px;
  transition:padding .3s var(--ease);
}
.hdr__in{
  display:flex;align-items:center;gap:1rem;
  width:100%;max-width:var(--maxw);margin-inline:auto;
  padding:10px 14px 10px 18px;
  background:rgba(255,248,231,.82);
  backdrop-filter:saturate(1.6) blur(14px);
  border:1px solid rgba(18,40,75,.10);
  border-radius:var(--pill);
  box-shadow:0 6px 26px rgba(18,40,75,.10);
  transition:background .3s var(--ease),box-shadow .3s var(--ease);
}
.hdr.is-stuck .hdr__in{background:rgba(255,248,231,.95);box-shadow:0 10px 34px rgba(18,40,75,.16)}

.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;flex:0 0 auto;min-height:44px;padding-block:2px}
.brand svg{width:40px;height:40px;flex:0 0 auto;color:var(--brand)}
.brand__t{font-family:var(--display);font-weight:600;font-size:1.05rem;letter-spacing:.01em;line-height:1.05;color:var(--ocean)}
.brand__t i{display:block;font:500 .62rem/1.4 var(--body);font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}

/* пилюли-кнопки в навигации — как в референсе Diver Club */
.nav{display:none;margin-left:auto;gap:.28rem}
.nav a{
  display:inline-flex;align-items:center;min-height:42px;padding:.55rem .85rem;
  font:600 .82rem/1 var(--body);text-decoration:none;color:var(--ocean);
  border:1px solid rgba(18,40,75,.16);border-radius:var(--pill);
  background:transparent;white-space:nowrap;
  transition:background .25s var(--ease),color .25s var(--ease),
             border-color .25s var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease);
}.nav a.is-active{background:var(--berry);color:#fff;border-color:var(--berry);box-shadow:0 6px 18px rgba(0,85,160,.32)}

.hdr .hdr__cta{display:none;min-height:44px;padding:.7rem 1.35rem;font-size:.88rem}

.burger{
  margin-left:auto;width:46px;height:46px;display:grid;place-items:center;
  background:#fff;border:1px solid rgba(18,40,75,.16);border-radius:var(--pill);
  color:var(--ocean);cursor:pointer;transition:box-shadow .25s var(--ease),transform .25s var(--ease);
}.burger span{display:block;width:18px;height:2px;border-radius:2px;background:currentColor;position:relative;transition:background .15s}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:18px;height:2px;border-radius:2px;background:currentColor;transition:transform .25s var(--ease)}
.burger span::before{top:-6px}
.burger span::after{top:6px}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg)}

.menu{
  position:fixed;inset:0;z-index:190;background:var(--ocean);
  display:flex;flex-direction:column;justify-content:center;gap:.5rem;
  padding:calc(var(--hdr) + 2rem) var(--gut) var(--gut);
}
.menu[hidden]{display:none}
.menu a{
  font-family:var(--display);font-size:clamp(1.6rem,7vw,2.4rem);font-weight:500;
  text-decoration:none;color:var(--cloud);padding:.5rem 1.2rem;
  border-radius:var(--pill);transition:background .25s var(--ease),padding-left .25s var(--ease);
}/* ---------------------------------------------------------------- HERO */
.hero{
  position:relative;min-height:100svh;
  display:grid;place-items:center;
  text-align:center;overflow:hidden;
  padding:calc(var(--hdr) + 3rem) var(--gut) 4rem;
}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero__scrim{
  position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(125% 85% at 50% 44%,rgba(18,40,75,.24) 0%,rgba(18,40,75,.58) 60%,rgba(18,40,75,.80) 100%),
    linear-gradient(180deg,rgba(18,40,75,.58) 0%,rgba(18,40,75,.34) 34%,rgba(18,40,75,.50) 72%,rgba(18,40,75,.86) 100%);
}
.hero__in{position:relative;z-index:2;max-width:900px;color:#fff}
.hero .h1{color:#fff;text-shadow:0 2px 30px rgba(0,0,0,.35);margin-bottom:1.1rem;text-wrap:balance}
.hero .h1 em{color:var(--sky)}
.hero__sub{
  font-size:clamp(1.05rem,2.2vw,1.3rem);line-height:1.55;
  color:rgba(255,255,255,.92);max-width:52ch;margin:0 auto 2.3rem;
  text-shadow:0 1px 16px rgba(0,0,0,.4);
}
.hero__acts{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center}
.hero__meta{
  margin-top:2.6rem;display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center;
}
.hero__meta li{
  list-style:none;
  font:600 .78rem/1 var(--body);letter-spacing:.06em;text-transform:uppercase;
  color:#fff;background:rgba(255,255,255,.14);backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.3);border-radius:var(--pill);padding:.65rem 1.05rem;
}

/* --------------------------------------------------- полоса показателей */
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
.stat{
  background:rgba(255,255,255,.06);border:1px solid var(--line-dark);
  border-radius:var(--r);padding:1.5rem 1.1rem;text-align:center;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease);
}.stat b{display:block;font-variant-numeric:lining-nums;font-family:var(--display);font-size:clamp(1.7rem,4.5vw,2.5rem);font-weight:600;line-height:1.05;color:#fff}
.stat span{display:block;font-size:.85rem;line-height:1.4;color:var(--sky);margin-top:.4rem}

/* ------------------------------------------------------------ инструктор */
.about{display:grid;gap:clamp(2rem,5vw,3.5rem)}
/* фотографии Давида — строго одна под другой */
.about__media{display:flex;flex-direction:column;gap:1rem}
.about__media img{
  width:100%;border-radius:var(--r-lg);border:1px solid var(--line-light);
  box-shadow:0 16px 44px rgba(18,40,75,.14);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease);
}.about__story p{margin:0 0 1.1em;color:var(--ink-soft);font-size:1.04rem;line-height:1.72}
.about__story p:last-of-type{margin-bottom:0}
.about__story .sign{font-family:var(--display);font-style:italic;font-size:1.3rem;color:var(--ocean)}

.creds{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.9rem 0 0;padding:0}
.creds li{
  list-style:none;font:600 .78rem/1 var(--body);letter-spacing:.04em;
  color:var(--berry);background:rgba(67,139,196,.10);
  border:1px solid rgba(67,139,196,.28);border-radius:var(--pill);padding:.65rem .95rem;
  transition:background .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease);
}/* --------------------------------------------------------------- карточки */
.cards{display:grid;gap:1rem;grid-auto-flow:row dense}
.card{
  position:relative;display:flex;flex-direction:column;gap:.85rem;
  padding:clamp(1.5rem,3.5vw,2rem);
  border-radius:var(--r-lg);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease);
}/* карточка на кремовом фоне */
.band--cream .card{background:#fff;border:1px solid var(--line-light);box-shadow:0 8px 26px rgba(18,40,75,.07)}/* карточка на тёмном фоне */
.band--ocean .card{background:rgba(255,255,255,.055);border:1px solid var(--line-dark);backdrop-filter:blur(10px)}.card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:.9rem}
.card__tag{
  font:600 .72rem/1.3 var(--body);letter-spacing:.05em;text-transform:uppercase;
  border-radius:var(--pill);padding:.45rem .8rem;white-space:nowrap;flex:0 0 auto;
}
.band--cream .card__tag{background:rgba(0,85,160,.10);color:var(--berry)}
.band--ocean .card__tag{background:rgba(140,193,233,.16);color:var(--sky)}

.card p{margin:0;font-size:.97rem;line-height:1.62}
.band--cream .card p{color:var(--ink-soft)}
.band--ocean .card p{color:var(--sky)}

.card .card__price{
  margin-top:auto;padding-top:.9rem;
  font-family:var(--display);font-weight:600;font-size:clamp(1.5rem,3.4vw,1.85rem);line-height:1;
  font-variant-numeric:lining-nums tabular-nums;
}
.card .card__price--sm{font-size:clamp(1.2rem,2.4vw,1.42rem)}
.band--cream .card .card__price{color:var(--ocean)}
.band--ocean .card .card__price{color:#fff}

.out{margin:0;padding:0;list-style:none;display:grid;gap:.5rem}
.out li{position:relative;padding-left:1.5rem;font-size:.93rem;line-height:1.5}
.band--cream .out li{color:var(--ink-soft)}
.band--ocean .out li{color:var(--sky)}
.out li::before{
  content:"";position:absolute;left:0;top:.44em;
  width:9px;height:9px;border-radius:50%;
  background:var(--bird);box-shadow:0 0 0 3px rgba(67,139,196,.2);
}

/* --------------------------------------------------------------- мостик */
.bridge{
  margin-top:1.4rem;display:grid;gap:1.4rem;align-items:center;
  padding:clamp(1.7rem,4vw,2.6rem);
  background:linear-gradient(135deg,rgba(67,139,196,.16),rgba(140,193,233,.06));
  border:1px solid var(--line-dark);border-radius:var(--r-lg);
}
.band--cream .bridge{background:linear-gradient(135deg,rgba(0,85,160,.07),rgba(67,139,196,.03));border-color:var(--line-light)}
.bridge p{margin:.5rem 0 0;max-width:56ch}
.band--ocean .bridge p{color:var(--sky)}
.band--cream .bridge p{color:var(--ink-soft)}

/* --------------------------------------------------------------- галерея */
/* Галерея — колонками, а не жёсткой сеткой: раньше каждый кадр вгонялся в 4:3
   и терял от 15% до трети картинки (вертикальные — больше всех). Теперь
   фотография показывается целиком, своей пропорцией. */
.gal{columns:2;column-gap:.9rem}
.gal figure{
  margin:0 0 .9rem;break-inside:avoid;-webkit-column-break-inside:avoid;
  position:relative;border-radius:var(--r-lg);overflow:hidden;
  border:1px solid var(--line-light);box-shadow:0 8px 24px rgba(18,40,75,.10);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}.gal img{width:100%;height:auto;transition:transform .6s var(--ease)}.gal__more{margin:1.9rem 0 0;display:flex;justify-content:center}
.gal__more .btn{max-width:100%;line-height:1.35;text-align:center;padding-inline:1.6rem}
.gal__more .btn svg{width:20px;height:20px;flex:0 0 auto}
.gal__more .btn span{min-width:0}

/* ---------------------------------------------------- отзывы: бегущая лента */
.marquee{
  --gap:1rem;
  display:flex;gap:var(--gap);overflow:hidden;
  padding:.5rem 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.marquee__row{
  display:flex;gap:var(--gap);flex-shrink:0;
  animation:marquee var(--dur,52s) linear infinite;
  will-change:transform;
}@keyframes marquee{
  from{transform:translateX(0)}
  to{transform:translateX(calc(-100% - var(--gap)))}
}

/* «liquid glass» карточка отзыва — кликабельна целиком, открывает отзыв.
   Сама карточка не кнопка (внутри блочная разметка — blockquote, div,
   в кнопку по HTML5 их класть нельзя), кнопка — растянутый прозрачный
   слой поверх (.rev__b), как у ссылок-карточек. */
.rev{
  position:relative;
  flex:0 0 320px;width:320px;
  display:flex;flex-direction:column;gap:.9rem;
  padding:1.6rem;border-radius:var(--r-lg);
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.16);
  backdrop-filter:blur(14px) saturate(1.3);
  box-shadow:
    inset 1px 1px 1px -.5px rgba(255,255,255,.55),
    inset -1px -1px 1px -.5px rgba(255,255,255,.35),
    inset 0 0 8px 6px rgba(255,255,255,.05),
    0 10px 30px rgba(0,0,0,.22);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease);
}
.rev__b{
  position:absolute;inset:0;z-index:1;padding:0;margin:0;border:0;
  background:none;cursor:zoom-in;border-radius:inherit;
  -webkit-tap-highlight-color:transparent;
}
.rev__b:focus-visible{outline:3px solid var(--sky);outline-offset:3px}
.rev__h{display:flex;align-items:center;gap:.8rem}
.rev__av{
  width:44px;height:44px;border-radius:50%;flex:0 0 auto;
  display:grid;place-items:center;
  background:linear-gradient(140deg,var(--bird),var(--berry));
  color:#fff;font:700 1.05rem var(--body);
}
.rev__n{font-family:var(--display);font-weight:600;font-size:1.03rem;line-height:1.2;color:#fff}
.rev__stars{display:flex;gap:2px;color:#FFC85C}
.rev__stars svg{width:15px;height:15px}
.rev blockquote{margin:0;font-size:.93rem;line-height:1.6;color:rgba(255,255,255,.9)}

/* ------------------------------------------------------------- география */
.geo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}
.geo__i{
  display:flex;flex-direction:column;gap:.35rem;align-items:center;justify-content:center;text-align:center;
  padding:1.6rem 1rem;border-radius:var(--r-lg);
  background:rgba(255,255,255,.06);border:1px solid var(--line-dark);
  transition:transform .3s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease);
}.geo__i b{font-family:var(--display);font-weight:600;font-size:1.35rem;color:#fff}
.geo__i span{font:600 .72rem/1 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--sky);opacity:.85}

/* ------------------------------------------------------------------ FAQ */
.faq{display:grid;gap:.8rem}
.faq details{
  background:#fff;border:1px solid var(--line-light);border-radius:var(--r);
  overflow:hidden;transition:box-shadow .3s var(--ease),border-color .3s var(--ease);
}.faq details[open]{box-shadow:0 14px 36px rgba(18,40,75,.12)}
.faq summary{
  cursor:pointer;list-style:none;position:relative;
  padding:1.3rem 3.6rem 1.3rem 1.6rem;min-height:44px;
  font-family:var(--display);font-weight:600;font-size:clamp(1.05rem,2.2vw,1.22rem);
  display:flex;align-items:center;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";position:absolute;right:1.3rem;top:50%;transform:translateY(-50%);
  width:30px;height:30px;border-radius:50%;
  background:rgba(0,85,160,.10) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230055A0' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/16px no-repeat;
  transition:transform .3s var(--ease),background-color .3s var(--ease);
}
.faq details[open] summary::after{transform:translateY(-50%) rotate(180deg)}
.faq p{margin:0 1.6rem 1.4rem;color:var(--ink-soft);font-size:.98rem;line-height:1.66;max-width:70ch}

/* ------------------------------------------------------------------ форма */
.form{display:grid;gap:1.1rem}
.field{display:grid;gap:.45rem}
.field label{font:600 .85rem/1 var(--body);color:var(--ocean)}
.field label span{font-weight:400;color:var(--ink-soft)}
.field input,.field select,.field textarea{
  width:100%;min-height:56px;padding:1rem 1.2rem;
  background:#fff;border:1px solid var(--line-light);border-radius:var(--r-sm);
  color:var(--ink);font:400 1rem var(--body);
  transition:border-color .25s var(--ease),box-shadow .25s var(--ease);
}
.field textarea{min-height:110px;resize:vertical;line-height:1.55;border-radius:var(--r)}
.field select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230055A0' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1.1rem center;background-size:18px;padding-right:3rem;
}.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--berry);box-shadow:0 0 0 4px rgba(67,139,196,.2);outline-offset:1px;
}
.field input::placeholder,.field textarea::placeholder{color:#93A4BC}
.field--bad input{border-color:#D14343;box-shadow:0 0 0 4px rgba(209,67,67,.14)}
.err{font-size:.85rem;color:#C22B2B;min-height:0}
.form__alt{display:grid;gap:.7rem}
.form__note{margin:0;font-size:.85rem;color:var(--ink-soft);line-height:1.55}

/* --------------------------------------------------------------- футер */
.foot{background:var(--ocean);color:var(--cloud);padding-block:clamp(3rem,7vw,4.5rem) 2rem}
.foot__grid{display:grid;gap:2.6rem}
.foot h4{font-family:var(--display);font-weight:600;font-size:1.15rem;margin:0 0 1.1rem;color:#fff}
.foot__brand{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem}
.foot__brand svg{width:48px;height:48px;color:var(--cloud)}
.foot__brand span{font-family:var(--display);font-weight:600;font-size:1.25rem;line-height:1.1}
.foot__brand i{display:block;font:500 .66rem/1.5 var(--body);font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:var(--sky)}
.foot p{margin:0;color:var(--sky);font-size:.94rem;line-height:1.65}

.flinks{margin:0;padding:0;list-style:none;display:grid;gap:.15rem}
.flinks a{
  display:inline-flex;align-items:center;min-height:44px;padding:.4rem .9rem;margin-left:-.9rem;
  text-decoration:none;color:var(--sky);font-size:.95rem;border-radius:var(--pill);
  transition:color .25s var(--ease),background .25s var(--ease),padding-left .25s var(--ease);
}.fcontact{margin:0;padding:0;list-style:none;display:grid;gap:.15rem;font-style:normal}
.fcontact a,.fcontact li>span{
  display:flex;align-items:center;gap:.75rem;min-height:44px;
  text-decoration:none;color:var(--sky);font-size:.95rem;
  transition:color .25s var(--ease)}.fcontact svg{width:19px;height:19px;flex:0 0 auto;opacity:.9}

.fsoc{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.2rem}
.fsoc a{
  width:48px;height:48px;display:grid;place-items:center;
  border:1px solid var(--line-dark);border-radius:50%;color:var(--sky);
  transition:transform .3s var(--ease),color .25s var(--ease),border-color .25s var(--ease),box-shadow .3s var(--ease),background .25s var(--ease);
}.fsoc svg{width:20px;height:20px}

.foot__bar{
  margin-top:2.8rem;padding-top:1.6rem;border-top:1px solid var(--line-dark);
  display:flex;flex-direction:column;gap:.7rem;align-items:center;text-align:center;
  font-size:.85rem;color:var(--sky);opacity:.8;line-height:1.6;
}

/* ------------------------------------------------------- липкая CTA (моб.) */
.dock{
  position:fixed;left:12px;right:12px;bottom:12px;z-index:150;
  display:grid;grid-template-columns:1fr 1fr;gap:.5rem;
  padding:.55rem;border-radius:var(--pill);
  background:rgba(18,40,75,.9);backdrop-filter:blur(14px);
  border:1px solid rgba(140,193,233,.28);
  box-shadow:0 12px 34px rgba(0,0,0,.34);
  transform:translateY(160%);transition:transform .4s var(--ease);
  padding-bottom:calc(.55rem + env(safe-area-inset-bottom));
}
.dock.is-on{transform:translateY(0)}
.dock .btn{min-height:48px;padding-inline:.8rem;font-size:.88rem}

/* ------------------------------------------------------------- появление */
.rise{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rise.is-in{opacity:1;transform:none}

/* ==========================================================================
   ≥ 640
   ========================================================================== */
@media (min-width:640px){
  .stats{grid-template-columns:repeat(4,minmax(0,1fr))}
  .cards--2,.cards--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gal{columns:3}
  .geo{grid-template-columns:repeat(4,minmax(0,1fr))}
  .form__alt{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bridge{grid-template-columns:1fr auto}
  .foot__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ==========================================================================
   ≥ 980
   ========================================================================== */
@media (min-width:1180px){
  .about{grid-template-columns:.85fr 1.15fr;gap:clamp(2.5rem,5vw,4.5rem);align-items:start}
  .about__story{padding-top:.4rem}

  .cards--3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cards--4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .cards--5{grid-template-columns:repeat(3,minmax(0,1fr))}
  .gal{columns:4}
  .contact{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2.5rem,5vw,4rem);align-items:start}
  .foot__grid{grid-template-columns:1.3fr .8fr 1fr 1fr;gap:2rem}
  .foot__bar{flex-direction:row;justify-content:space-between;text-align:left}
  .rev{flex-basis:360px;width:360px}
}

/* ==========================================================================
   ≥ 1260 — момент, когда меню из шапки заменяет бургер.
   Порог поднят с 1180: в шапке теперь 9 разделов (добавлены «Галерея»
   и «Аренда», раньше они были только в мобильном меню), и на 1180 пилюли
   начинали наезжать на кнопку «Записаться». Липкая панель снизу живёт
   до этого же порога — пока кнопки «Записаться» нет в шапке.
   Порог продублирован в script.js (matchMedia) — менять в двух местах.
   ========================================================================== */
@media (min-width:1260px){
  .nav{display:flex}
  .hdr .hdr__cta{display:inline-flex;margin-left:.5rem}
  .burger{display:none}
  .menu{display:none !important}
  .dock{display:none}
}

/* ==========================================================================
   доступность
   ========================================================================== */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  .rise{opacity:1;transform:none}
  .marquee__row{animation:none}
  .marquee{overflow-x:auto}
  .gal figure:hover img,.about__media img:hover{transform:none}
}

@media print{
  .hdr,.dock,.menu,.hero__img,.hero__scrim{display:none !important}
  body{background:#fff;color:#000}
}


/* ==========================================================================
   Блоки полного прайса
   ========================================================================== */

/* Мелкая приписка о ценах. Без opacity: полупрозрачный текст давал контраст
   4,3:1 на тёмном и 3,6:1 на кремовом при 13,6px — ниже нормы 4,5:1. */
.note{
  margin:0 0 1rem;font-size:.85rem;line-height:1.5;
  font-style:italic;
}
.band--ocean .note{color:var(--sky)}
.band--cream .note{color:var(--ink-soft)}

/* подзаголовок внутри секции */
.sub{
  font-family:var(--display);font-weight:600;
  font-size:clamp(1.3rem,2.8vw,1.75rem);line-height:1.2;
  margin:clamp(2.4rem,5vw,3.4rem) 0 1.3rem;
}

/* ---------------------------------------------- индивидуальная программа */
.program{display:grid;gap:clamp(1.8rem,4vw,3rem)}
.program__team{
  margin:1.2rem 0 0;font-size:1.02rem;line-height:1.65;
  color:var(--ocean);opacity:.85;max-width:52ch;
}
.program__list{margin:0;padding:0;list-style:none;display:grid;gap:.6rem;align-content:start}
.program__list li{
  position:relative;padding:.95rem 1.2rem .95rem 3rem;
  background:rgba(255,255,255,.5);border:1px solid rgba(18,40,75,.12);
  border-radius:var(--r);font-size:.98rem;line-height:1.45;color:var(--ocean);
  transition:transform .3s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease);
}.program__list li::before{
  content:"";position:absolute;left:1.15rem;top:1.25rem;
  width:11px;height:11px;border-radius:50%;
  background:var(--berry);box-shadow:0 0 0 4px rgba(0,85,160,.16);
}

/* ------------------------------------------------------- широкая карточка */
.card--wide{width:100%}
.card__alias{font-size:.9rem;line-height:1.45;opacity:.85}
.band--cream .card__alias{color:var(--berry)}
.band--ocean .card__alias{color:var(--sky)}
.card__req{
  font-size:.88rem;line-height:1.5;border-radius:var(--r-sm);padding:.7rem .9rem;margin:0;
}
.band--cream .card__req{background:rgba(0,85,160,.07);color:var(--ink-soft)}
.band--ocean .card__req{background:rgba(140,193,233,.12);color:var(--sky)}

/* --------------------------------------------- сетка мастер-классов */
.mkgrid{display:grid;gap:.8rem}
.mkc{
  display:grid;gap:.35rem;
  padding:1.3rem 1.4rem;border-radius:var(--r-lg);
  background:rgba(255,255,255,.055);border:1px solid var(--line-dark);
  transition:transform .3s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);
}.mkc b{font-family:var(--display);font-weight:600;font-size:1.08rem;line-height:1.25;color:#fff}
.mkc__d{font:600 .72rem/1 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--sky);opacity:.8}
.mkc__p{
  font-family:var(--display);font-weight:600;font-size:1.3rem;color:#fff;margin-top:.35rem;
  font-variant-numeric:lining-nums tabular-nums;
}

/* ----------------------------------------------- раскрывающийся блок */
.disc{
  margin-top:1rem;border-radius:var(--r-lg);overflow:hidden;
  transition:box-shadow .3s var(--ease),border-color .3s var(--ease);
}
.band--ocean .disc{background:rgba(255,255,255,.055);border:1px solid var(--line-dark)}
.band--cream .disc{background:#fff;border:1px solid var(--line-light);box-shadow:0 8px 26px rgba(18,40,75,.07)}.disc summary{
  cursor:pointer;list-style:none;position:relative;min-height:44px;
  padding:1.3rem 3.8rem 1.3rem 1.6rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  font-family:var(--display);font-weight:600;font-size:clamp(1.05rem,2.2vw,1.25rem);
}
.disc summary::-webkit-details-marker{display:none}
.disc summary::after{
  content:"";position:absolute;right:1.3rem;top:50%;transform:translateY(-50%);
  width:30px;height:30px;border-radius:50%;
  background:rgba(0,85,160,.10) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230055A0' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/16px no-repeat;
  transition:transform .3s var(--ease);
}
.band--ocean .disc summary::after{
  background-color:rgba(140,193,233,.16);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238CC1E9' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
}
.disc[open] summary::after{transform:translateY(-50%) rotate(180deg)}
.disc__p{
  font-family:var(--display);font-weight:600;font-size:1.15rem;
  font-variant-numeric:lining-nums tabular-nums;margin-right:.6rem;
}
.band--ocean .disc__p{color:var(--sky)}
.band--cream .disc__p{color:var(--berry)}
.disc__b{padding:0 1.6rem 1.5rem}
.disc__b p{margin:0 0 .9rem;font-size:.96rem;line-height:1.6}
.band--ocean .disc__b p{color:var(--sky)}
.band--cream .disc__b p{color:var(--ink-soft)}

/* прайс-лист внутри раскрывашки */
.plist{margin:0;padding:0;list-style:none;display:grid;gap:0}
.plist li{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  padding:.75rem 0;font-size:.96rem;
}
.plist li + li{border-top:1px solid var(--line-light)}
.band--ocean .plist li + li{border-top-color:var(--line-dark)}
.plist b{
  font-family:var(--display);font-weight:600;font-size:1.05rem;white-space:nowrap;
  font-variant-numeric:lining-nums tabular-nums;
}
.band--cream .plist b{color:var(--berry)}
.band--ocean .plist b{color:var(--sky)}

/* ------------------------------------------------------ боковые карточки */
.sidebox{
  background:rgba(255,255,255,.55);border:1px solid rgba(18,40,75,.12);
  border-radius:var(--r-lg);padding:1.6rem;color:var(--ocean);
}
.sidebox .small{opacity:.82}

@media (min-width:640px){
  .mkgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .plist{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2.5rem}
  .plist li:nth-child(2){border-top:0}
}
@media (min-width:980px){
  .program{grid-template-columns:1.05fr .95fr;align-items:start}
  .mkgrid{grid-template-columns:repeat(4,minmax(0,1fr))}
}


/* ==========================================================================
   Раскрывающаяся карточка рэка «Перванш»
   ========================================================================== */

.wreck{padding:0;cursor:pointer}
.wreck[open]{cursor:default;grid-column:1/-1}

.wreck__sum{
  list-style:none;min-width:0;flex:1;display:flex;flex-direction:column;gap:.85rem;
  padding:clamp(1.5rem,3.5vw,2rem);border-radius:var(--r-lg);
  position:relative;min-height:44px;
}
.wreck__sum::-webkit-details-marker{display:none}
.wreck__sum:focus-visible{outline:3px solid var(--sky);outline-offset:-3px}

.wreck__head{display:flex;align-items:flex-start;justify-content:space-between;gap:.9rem}
.wreck__head .h3{font-family:var(--display);font-weight:600;font-size:clamp(1.2rem,2.4vw,1.5rem);line-height:1.25;color:#fff}

/* «Что за корабль» — кликабельная подсказка-пилюля */
.wreck__hint{
  display:inline-flex;align-items:center;gap:.5rem;align-self:flex-start;
  font:600 .8rem/1 var(--body);letter-spacing:.03em;
  color:var(--ocean);background:var(--sky);
  border-radius:var(--pill);padding:.65rem 1rem;
  transition:background .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease);
}
.wreck__hint::after{
  content:"";width:9px;height:9px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:translateY(-2px) rotate(45deg);transition:transform .3s var(--ease);
}.wreck[open] .wreck__hint::after{transform:translateY(1px) rotate(-135deg)}

/* --- раскрытое содержимое --- */
.wreck__body{
  padding:0 clamp(1.5rem,3.5vw,2rem) clamp(1.6rem,3.5vw,2.2rem);
  display:grid;gap:1.6rem;
}
.wreck__hook{
  margin:0;font-family:var(--display);font-style:italic;
  font-size:clamp(1.12rem,2.4vw,1.45rem);line-height:1.4;color:#fff;
  border-left:3px solid var(--sky);padding-left:1.1rem;max-width:56ch;
}
.wreck__cols{display:grid;gap:1.6rem}
.wreck__story p{margin:0 0 .9em;font-size:.97rem;line-height:1.7;color:var(--sky)}
.wreck__story p:last-child{margin-bottom:0}
.wreck .h4{color:#fff;margin:0 0 .8rem}
.wreck__mh{margin-top:.4rem}

.wreck__specs{
  background:rgba(140,193,233,.10);border:1px solid var(--line-dark);
  border-radius:var(--r);padding:1.3rem;align-self:start;
}
.spec{margin:0 0 1.1rem;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem 1rem}
.spec dt{font:600 .78rem/1.4 var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--sky);opacity:.75}
.spec dd{margin:0;font-family:var(--display);font-weight:600;font-size:1.02rem;color:#fff}
.spec__note{margin:0 0 .6rem;font-size:.85rem;color:var(--sky);opacity:.85}

/* фото: aspect-ratio держит место, поэтому при загрузке ничего не прыгает */
.wreck__shots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
.wreck__shots img{
  width:100%;aspect-ratio:4/3;object-fit:cover;
  border-radius:var(--r);border:1px solid var(--line-dark);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}/* экскурсия: горизонтальная лента роликов */
.tour{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(190px,1fr);
  gap:.7rem;overflow-x:auto;padding-bottom:.6rem;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
}
.tour__i{margin:0;scroll-snap-align:start;display:grid;gap:.5rem}
.tour__i video{
  width:100%;aspect-ratio:9/16;object-fit:cover;background:var(--ocean-3);
  border-radius:var(--r);border:1px solid var(--line-dark);
}
.tour__i--lead{grid-row:span 1}
.tour__i figcaption{
  font:600 .74rem/1.35 var(--body);color:var(--sky);opacity:.9;
}

/* «Потеряшки» — находки под карточкой «Поиск и подъём» */
.lost{margin-top:clamp(2.2rem,5vw,3.2rem);display:grid;gap:1.3rem}
.lost__head{display:grid;gap:1.1rem;align-items:end}
.lost__head .h3{color:#fff;margin-top:.5rem}
.lost__head p:not(.eyebrow){margin:.5rem 0 0;max-width:56ch;color:var(--sky)}
.lost__head .btn{justify-self:start}
/* на телефоне третий ролик выглядывает — видно, что ленту можно листать */
.lost__row{grid-auto-columns:minmax(150px,43%)}
.lost__row figcaption{font-size:.8rem}
.lost__i{
  position:relative;display:block;width:100%;padding:0;cursor:pointer;overflow:hidden;
  aspect-ratio:9/16;background:var(--ocean-3);
  border-radius:var(--r);border:1px solid var(--line-dark);
}
.lost__i img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}
.lost__play{
  position:absolute;left:50%;top:50%;translate:-50% -50%;
  width:56px;height:56px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.9);color:var(--ocean);box-shadow:0 8px 24px rgba(0,0,0,.35);
  transition:transform .3s var(--ease);
}
.lost__play svg{width:24px;height:24px;margin-left:3px}
.lost__i:active .lost__play{transform:scale(.94)}
@media (hover:hover){
  .lost__i:hover img{transform:scale(1.04)}
  .lost__i:hover .lost__play{transform:scale(1.08)}
}
/* плеер: вертикальный, размером с экран телефона — как в Instagram, не на весь экран */
.lb--vid .lb__stage{padding:3.6rem 1rem 3.4rem}
.vid{
  /* высота — меньшая из: 84% экрана, 860px, либо та, при которой ролик 9:16
     влезает по ширине; иначе на узком экране появляются чёрные полосы */
  display:block;width:auto;max-width:100%;
  height:min(84vh,860px,calc((100vw - 2rem) * 16 / 9));
  aspect-ratio:9/16;object-fit:contain;background:#000;
  border-radius:var(--r);box-shadow:0 24px 60px rgba(0,0,0,.5);
}
@media (prefers-reduced-motion:reduce){
  .lost__i img,.lost__play{transition:none}
}
@media (min-width:640px){
  .lost__head{grid-template-columns:1fr auto}
}
@media (min-width:980px){
  .lost__row{grid-auto-columns:minmax(0,1fr)}
}

/* видео в галерее — 1280×720, поэтому 16/9, иначе обрезались бока */
.gal__v video{
  width:100%;aspect-ratio:16/9;object-fit:cover;
  background:var(--ocean);display:block;
}

@media (min-width:640px){
  .wreck__shots{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (min-width:980px){
  /* Строкой шапка становится только у раскрытой карточки: в закрытом виде
     она шириной в четверть сетки, и заголовок с ценой туда не помещаются. */
  .wreck[open] .wreck__sum{flex-direction:row;align-items:center;justify-content:space-between;gap:1.4rem}
  .wreck[open] .wreck__head{flex:1 1 auto;align-items:center}
  .wreck__cols{grid-template-columns:1.35fr .65fr;gap:2.4rem}
  .tour{grid-auto-columns:minmax(210px,1fr)}
}

@media (prefers-reduced-motion:reduce){
  .wreck__shots img:hover{transform:none}
  .tour{scroll-snap-type:none}
}

/* ==================================================== раунд правок №3 */

/* --- снаряжение оплачивается отдельно: метка на карточках --- */
.card__note{margin:-.3rem 0 0;font-size:.82rem;line-height:1.4;opacity:.85}
.band--ocean .card__note{color:var(--sky)}
.band--cream .card__note{color:var(--ink-soft)}
.lnk{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}/* --- «Где ныряем» --- */
.geo__lead{margin:0 0 1rem;font-size:.95rem;color:var(--sky)}

/* --- как проходит погружение --------------------------------------- */
.how{display:grid;gap:1.8rem;margin-top:2rem}

.how__steps{margin:0;padding:0;list-style:none;counter-reset:st;position:relative}
/* одна непрерывная нить на весь список: по-шаговая рвалась на коротких пунктах,
   потому что они ниже кружка с номером */
.how__steps::before{
  content:"";position:absolute;left:1.2rem;top:1.2rem;bottom:1.2rem;
  width:2px;transform:translateX(-1px);
  background:linear-gradient(var(--bird),rgba(67,139,196,.16));
}
.how__steps li{counter-increment:st;position:relative;min-height:2.4rem;padding:0 0 1.6rem 3.7rem}
.how__steps li:last-child{padding-bottom:0}
.how__steps li::before{
  content:counter(st);position:absolute;left:0;top:0;
  width:2.4rem;height:2.4rem;border-radius:50%;
  display:grid;place-items:center;
  font:700 .95rem/1 var(--body);color:#fff;background:var(--berry);
}
.how__t{margin:.4rem 0 0;font:600 1.05rem/1.3 var(--body);color:var(--ink)}
.how__steps p{margin:.3rem 0 0;font-size:.95rem;line-height:1.55;color:var(--ink-soft)}

.how__dur{margin:1.9rem 0 0;max-width:64ch;font-size:.98rem;line-height:1.6;color:var(--ink-soft)}

.safe{
  margin:0;padding:clamp(1.4rem,3vw,1.8rem);
  border-radius:var(--r-lg);
  background:var(--cream-2);border:1px solid var(--line-light);
}
.safe__t{margin:0 0 .9rem;font:700 1.05rem/1.35 var(--body);color:var(--ink)}
.safe__l{margin:0;padding:0;list-style:none;display:grid;gap:.75rem}
.safe__l li{position:relative;padding-left:1.6rem;font-size:.95rem;line-height:1.5;color:var(--ink-soft)}
.safe__l li::before{
  content:"";position:absolute;left:0;top:.42em;
  width:9px;height:9px;border-radius:50%;
  background:var(--berry);box-shadow:0 0 0 3px rgba(0,85,160,.16);
}

@media (min-width:900px){
  .how{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:2.6rem;align-items:start}
}

/* --- галерея: фотография — настоящая кнопка ------------------------- */
.gal__b{
  display:block;width:100%;padding:0;margin:0;border:0;
  background:none;cursor:zoom-in;border-radius:inherit;
  -webkit-tap-highlight-color:transparent;
}
.gal__b:focus-visible{outline:3px solid var(--berry);outline-offset:4px;border-radius:var(--r-lg)}

/* --- лайтбокс ------------------------------------------------------- */
.lb{
  width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;
  margin:0;padding:0;border:0;background:transparent;
  overflow:hidden;color:var(--cloud);
}
.lb::backdrop{background:rgba(8,18,36,.95);backdrop-filter:blur(5px)}
.lb[open]{animation:lbIn .26s var(--ease)}
@keyframes lbIn{from{opacity:0}to{opacity:1}}

.lb__stage{position:absolute;inset:0;display:grid;place-items:center;
  padding:4.2rem clamp(.75rem,4vw,5rem) 5.6rem}
.lb__img{
  max-width:100%;max-height:100%;width:auto;height:auto;
  object-fit:contain;border-radius:var(--r);
  box-shadow:0 30px 80px rgba(0,0,0,.5);
}
.lb__n{
  position:absolute;left:0;right:0;bottom:1.95rem;margin:0;text-align:center;
  font:600 .78rem/1 var(--body);letter-spacing:.12em;color:rgba(255,248,231,.5);
}

.lb__x,.lb__a{
  position:absolute;z-index:2;display:grid;place-items:center;
  width:52px;height:52px;padding:0;border-radius:var(--pill);cursor:pointer;
  color:var(--cloud);background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.30);backdrop-filter:blur(8px);
  transition:background .25s var(--ease),transform .25s var(--ease);
}
.lb__x svg,.lb__a svg{width:24px;height:24px}.lb__x:focus-visible,.lb__a:focus-visible{outline:3px solid var(--sky);outline-offset:3px}
.lb__x{top:.85rem;right:clamp(.75rem,3vw,1.5rem)}
/* на телефоне стрелки уходят в нижнюю панель, чтобы не лежать на фото */
.lb__a{bottom:.85rem}
.lb__a--p{left:clamp(.75rem,4vw,1.5rem)}
.lb__a--n{right:clamp(.75rem,4vw,1.5rem)}

@media (min-width:700px){
  .lb__stage{padding:clamp(3.5rem,9vh,5rem) clamp(4.5rem,9vw,7rem) clamp(3.2rem,8vh,4.2rem)}
  .lb__a{top:50%;bottom:auto;transform:translateY(-50%)}
  .lb__a:hover{transform:translateY(-50%) scale(1.06)}
  .lb__n{bottom:1.1rem}
  @media (prefers-reduced-motion:reduce){
    .lb__a:hover{transform:translateY(-50%)}
  }
}

@media (prefers-reduced-motion:reduce){
  .lb[open]{animation:none}
  .lb__x,.lb__a{transition:none}
}

/* --- отзыв целиком: тот же лайтбокс, вместо фото — увеличенная карточка -- */
.lb--rev .lb__stage{padding:4.4rem clamp(1rem,6vw,3rem) 5.8rem}
.revCard{
  max-width:560px;width:100%;
  display:flex;flex-direction:column;gap:1.2rem;
  padding:clamp(1.8rem,4vw,2.6rem);border-radius:var(--r-lg);
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(14px) saturate(1.3);
  box-shadow:0 30px 80px rgba(0,0,0,.5);
}
.revCard .rev__av{width:56px;height:56px;font-size:1.25rem}
.revCard .rev__n{font-size:1.2rem}
.revCard .rev__stars svg{width:19px;height:19px}
.revCard blockquote{margin:0;font-size:1.15rem;line-height:1.75;color:rgba(255,255,255,.92)}


/* ==========================================================================
   Раунд правок №4 — разбор по дизайн-навыкам
   ========================================================================== */

/* --- шапка: пилюль стало 9, поэтому они компактнее -----------------------
   Ширина шапки упирается в --maxw (1200px), а не в экран, поэтому запас
   считается один раз: 9 пилюль + логотип + «Записаться» должны уложиться
   примерно в 1168px внутренней ширины. */
.nav{gap:.16rem}
.nav a{padding:.55rem .62rem;font-size:.78rem}

/* --- заголовок секции с кнопкой справа ----------------------------------- */
.head--row{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:1rem;flex-wrap:wrap;max-width:none;
}
.head--row .h2{margin-bottom:0}

/* --- кнопка «Остановить/Продолжить» у ленты отзывов ----------------------
   Ховер-пауза осталась, но она недоступна с телефона — нужна кнопка.
   Иконкам отключены события указателя: палец должен попадать в кнопку,
   а не в картинку внутри неё (на этом уже обжигались). */
.mqbtn{
  display:inline-flex;align-items:center;gap:.5rem;
  min-height:44px;padding:.6rem 1.1rem;
  font:600 .82rem/1 var(--body);color:var(--sky);
  background:rgba(255,255,255,.06);border:1px solid var(--line-dark);
  border-radius:var(--pill);cursor:pointer;
  transition:background .25s var(--ease),color .25s var(--ease),
             border-color .25s var(--ease),transform .15s var(--ease);
}.mqbtn__i{width:16px;height:16px;flex:0 0 auto;pointer-events:none}
.mqbtn__t{pointer-events:none}
.mqbtn__i--play{display:none}
.mqbtn[aria-pressed="true"] .mqbtn__i--pause{display:none}
.mqbtn[aria-pressed="true"] .mqbtn__i--play{display:inline-block}
.marquee.is-paused .marquee__row{animation-play-state:paused}

/* --- «Как проходит погружение»: правая колонка из двух карточек ---------- */
.how__side{display:grid;gap:1rem;align-content:start}
.safe--dur .how__dur{margin:0}
.how__dur{max-width:64ch;font-size:.98rem;line-height:1.6;color:var(--ink-soft)}

/* --- подсказки в полях: было 2,5:1 к белому, стало 4,7:1 ----------------- */
.field input::placeholder,.field textarea::placeholder{color:#64758F}

/* --- заголовки не переносятся «висячим» словом --------------------------- */
.h1,.h2,.h3,.sub,.safe__t,.how__t{text-wrap:balance}
.lede,.card p,.about__story p{text-wrap:pretty}

/* --- футер: адрес не курсивом, отступ снизу под липкую панель ------------ */
.foot address{font-style:normal;margin:0}
/* Панель «Telegram / Записаться» занимает снизу 80px и раньше накрывала
   строку с копирайтом — на телефоне футеру нужен запас. */
@media (max-width:1259px){
  .foot{padding-bottom:calc(2rem + 88px)}
}

/* --- нажатие: на телефоне ховера нет, отклик давало только «ничего» ------
   Одно значение на все кликабельные элементы, без разнобоя. */
.btn:active,
.nav a:active,
.burger:active,
.mqbtn:active,
.gal__b:active,
.faq summary:active,
.disc summary:active,
.wreck__sum:active,
.fsoc a:active,
.lb__x:active,
.lb__a:active{transform:scale(.96)}
.lb__a:active{transform:scale(.96)}

@media (prefers-reduced-motion:reduce){
  .btn:active,.nav a:active,.burger:active,.mqbtn:active,.gal__b:active,
  .faq summary:active,.disc summary:active,.wreck__sum:active,
  .fsoc a:active,.lb__x:active,.lb__a:active{transform:none}
}

/* ==========================================================================
   Ховеры — только там, где есть настоящая мышь.
   На тач-экране :hover срабатывает от тапа и «залипает»: карточка остаётся
   приподнятой, кнопка — залитой, пока не ткнёшь в другое место.
   ========================================================================== */
@media (hover:hover){
  .btn:hover{transform:translateY(-3px)}
  .btn--primary:hover{background:#0064BE;box-shadow:0 12px 34px rgba(0,85,160,.45),0 0 0 6px rgba(67,139,196,.18)}
  .btn--ghost:hover{background:rgba(255,255,255,.2);border-color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.22),0 0 0 6px rgba(255,255,255,.14)}
  .btn--outline:hover{background:var(--berry);color:#fff;box-shadow:0 12px 30px rgba(0,85,160,.32),0 0 0 6px rgba(67,139,196,.18)}
  .btn--light:hover{background:#fff;box-shadow:0 12px 30px rgba(0,0,0,.25),0 0 0 6px rgba(255,255,255,.16)}
  .nav a:hover{background:#fff;border-color:var(--bird);transform:translateY(-2px);box-shadow:0 6px 16px rgba(67,139,196,.28)}
  .burger:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(67,139,196,.3)}
  .menu a:hover{background:rgba(140,193,233,.16);padding-left:1.7rem}
  .stat:hover{transform:translateY(-4px);background:rgba(255,255,255,.11);box-shadow:0 14px 34px rgba(0,0,0,.22),0 0 0 1px var(--glow)}
  .about__media img:hover{transform:translateY(-5px) scale(1.008);box-shadow:0 24px 60px rgba(18,40,75,.24)}
  .creds li:hover{background:rgba(67,139,196,.2);transform:translateY(-2px);box-shadow:0 6px 16px rgba(67,139,196,.26)}
  .card:hover{transform:translateY(-6px)}
  .band--cream .card:hover{border-color:var(--bird);box-shadow:0 22px 52px rgba(18,40,75,.16),0 0 0 4px rgba(67,139,196,.14)}
  .band--ocean .card:hover{border-color:var(--sky);background:rgba(255,255,255,.10);box-shadow:0 22px 52px rgba(0,0,0,.3),0 0 0 4px rgba(140,193,233,.18)}
  .gal figure:hover{transform:translateY(-5px);box-shadow:0 22px 50px rgba(18,40,75,.22)}
  .gal figure:hover img{transform:scale(1.06)}
  .marquee:hover .marquee__row{animation-play-state:paused}
  .rev:hover{
    transform:translateY(-5px);border-color:rgba(140,193,233,.6);
    box-shadow:
      inset 1px 1px 1px -.5px rgba(255,255,255,.6),
      0 20px 46px rgba(0,0,0,.32),
      0 0 0 4px rgba(140,193,233,.16);
  }
  .geo__i:hover{transform:translateY(-5px);background:rgba(255,255,255,.11);box-shadow:0 16px 38px rgba(0,0,0,.26),0 0 0 4px rgba(140,193,233,.16)}
  .faq details:hover{border-color:var(--bird);box-shadow:0 12px 30px rgba(18,40,75,.10)}
  .field input:hover,.field select:hover,.field textarea:hover{border-color:var(--bird)}
  .flinks a:hover{color:#fff;background:rgba(140,193,233,.14);padding-left:1.3rem}
  .fcontact a:hover{color:#fff}
  .fsoc a:hover{transform:translateY(-3px);color:#fff;background:rgba(140,193,233,.14);border-color:var(--sky);box-shadow:0 10px 24px rgba(0,0,0,.3),0 0 0 4px rgba(140,193,233,.14)}
  .program__list li:hover{transform:translateX(5px);background:#fff;box-shadow:0 10px 26px rgba(18,40,75,.12)}
  .mkc:hover{
    transform:translateY(-5px);background:rgba(255,255,255,.1);border-color:var(--sky);
    box-shadow:0 18px 40px rgba(0,0,0,.28),0 0 0 4px rgba(140,193,233,.16);
  }
  .band--ocean .disc:hover{border-color:var(--sky)}
  .band--cream .disc:hover{border-color:var(--bird);box-shadow:0 14px 34px rgba(18,40,75,.13)}
  .wreck:hover .wreck__hint{background:#fff;transform:translateY(-2px);box-shadow:0 8px 22px rgba(140,193,233,.34)}
  .wreck__shots img:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,.34)}
  .lnk:hover{color:var(--white)}
  .lb__x:hover,.lb__a:hover{background:rgba(255,255,255,.22)}
  .mqbtn:hover{background:rgba(255,255,255,.12);border-color:var(--sky);color:#fff}
}

/* Сброс ховер-трансформов для «меньше движения» — после блока выше,
   иначе он их перебивает. */
@media (prefers-reduced-motion:reduce){
  .gal figure:hover img,.about__media img:hover,.wreck__shots img:hover{transform:none}
}
@media (hover:hover) and (min-width:700px) and (prefers-reduced-motion:reduce){
  .lb__a:hover{transform:translateY(-50%)}
}

/* Подсказка под кнопками формы (сообщение о копировании текста заявки) */
.form__hint{
  margin:-.3rem 0 0;font-size:.88rem;line-height:1.5;font-weight:600;
  color:var(--ocean);min-height:1.2em;
}

/* --- аренда в форме: компактное поле вместо высокого списка --------------- */
.field .field__l{font:600 .85rem/1 var(--body);color:var(--ocean)}
.field .field__l span{font-weight:400;color:var(--ink-soft)}
.pick{position:relative}
.pick__s{
  list-style:none;cursor:pointer;display:flex;align-items:center;
  min-height:56px;padding:1rem 3rem 1rem 1.2rem;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230055A0' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 1.1rem center/18px;
  border:1px solid var(--line-light);border-radius:var(--r-sm);
  color:var(--ink-soft);font:400 1rem var(--body);
  transition:border-color .25s var(--ease),box-shadow .25s var(--ease);
}
.pick__s::-webkit-details-marker{display:none}
.pick.is-set .pick__s{color:var(--ink)}
.pick[open] .pick__s,.pick__s:focus-visible{border-color:var(--berry);box-shadow:0 0 0 4px rgba(67,139,196,.2)}
.pick__list{
  margin-top:.45rem;padding:.4rem;display:grid;gap:2px;max-height:300px;overflow-y:auto;
  background:#fff;border:1px solid var(--line-light);border-radius:var(--r-sm);
  box-shadow:0 14px 36px rgba(18,40,75,.14);
}
.field .pick__i{
  display:flex;align-items:center;gap:.75rem;min-height:44px;padding:.55rem .8rem;
  border-radius:var(--r-xs);cursor:pointer;font:400 .95rem/1.3 var(--body);color:var(--ink);
}
.field .pick__i input{padding:0;border:0;width:18px;height:18px;min-height:0;margin:0;flex:0 0 auto;accent-color:var(--berry)}
.pick__i span{flex:1}
.pick__i b{font-weight:600;color:var(--berry);white-space:nowrap;font-variant-numeric:tabular-nums}
.pick__i:has(input:checked){background:rgba(67,139,196,.1)}
@media (hover:hover){
  .pick__s:hover{border-color:var(--bird)}
  .pick__i:hover{background:rgba(67,139,196,.08)}
  /* активная пилюля меню остаётся синей: белый ховер прятал белый текст */
  .nav a.is-active:hover{background:var(--berry);color:#fff;border-color:var(--berry)}
}

/* ==========================================================================
   Мобильное меню: раскрывается кругом из кнопки-бургера и сворачивается
   обратно в неё. Пункты выходят по одному снизу. Открытие длиннее и мягче,
   закрытие быстрее — человек уже решил уйти, ждать его не нужно.
   ========================================================================== */
.menu{
  justify-content:space-between;gap:1.4rem;overflow-y:auto;overscroll-behavior:contain;
  padding:calc(var(--hdr) + 1.6rem) var(--gut) calc(1.2rem + env(safe-area-inset-bottom));
  background:radial-gradient(110% 60% at 100% 0%,rgba(67,139,196,.26),transparent 62%),var(--ocean);
  clip-path:circle(0px at var(--cx,92%) var(--cy,44px));
  transition:clip-path .44s cubic-bezier(.77,0,.175,1);
}
.menu.is-open{
  clip-path:circle(160vmax at var(--cx,92%) var(--cy,44px));
  transition:clip-path .75s cubic-bezier(.32,.72,0,1);
}

.menu__links{display:grid;counter-reset:mi}
.menu .menu__links a{
  counter-increment:mi;display:flex;align-items:baseline;gap:1rem;
  padding:.42rem .1rem;border-radius:0;
  font-size:clamp(1.4rem,min(6.4vw,4.2vh),2.4rem);line-height:1.15;
  border-bottom:1px solid var(--line-dark);
}
.menu .menu__links a::before{
  content:counter(mi,decimal-leading-zero);
  font:600 .72rem/1 var(--body);letter-spacing:.14em;color:var(--sky);opacity:.75;
  min-width:1.6rem;translate:0 -.55em;
}
.menu .menu__links a.is-active{color:var(--sky)}

.menu__foot{display:grid;gap:.8rem}
.menu .menu__foot .btn{font:600 1rem/1 var(--body);padding:.9rem 2rem;color:#fff;border-radius:var(--pill)}
.menu__soc{display:flex;gap:.6rem}
.menu .menu__soc a{
  width:52px;height:52px;padding:0;display:grid;place-items:center;
  border:1px solid var(--line-dark);border-radius:50%;color:var(--sky);
}
.menu__soc svg{width:21px;height:21px}

/* пункты: выходят снизу по очереди, при закрытии гаснут разом и быстро */
.menu__links a,.menu__foot > *{
  opacity:0;translate:0 26px;
  transition:opacity .2s ease,translate .3s ease,color .25s var(--ease),background .25s var(--ease);
}
.menu.is-open .menu__links a,.menu.is-open .menu__foot > *{
  opacity:1;translate:0 0;
  transition:opacity .6s cubic-bezier(.23,1,.32,1),translate .8s cubic-bezier(.23,1,.32,1),color .25s var(--ease),background .25s var(--ease);
  transition-delay:calc(.14s + var(--i,0) * 40ms);
}

@media (hover:hover){
  .menu .menu__links a:hover{background:none;padding-left:.1rem;color:var(--sky)}
  .menu .menu__soc a:hover{color:#fff;border-color:var(--sky);background:rgba(140,193,233,.14)}
}
.menu .menu__links a:active,.menu .menu__soc a:active{transform:scale(.97)}

/* «меньше движения»: без круга и выезда, только мягкое проявление */
@media (prefers-reduced-motion:reduce){
  .menu,.menu.is-open{clip-path:none}
  .menu{opacity:0;transition:opacity .2s ease !important}
  .menu.is-open{opacity:1}
  .menu__links a,.menu__foot > *{translate:none}
}
