/* ============================================================
   MEDVEDEF — одностраничный лендинг Алексея Медведева
   Палитра и типографика
============================================================ */
:root{
  --green:#123c35;
  --deep:#0c2a25;
  --ivory:#f4f1ea;
  --ivory-2:#efeae1;
  --gold:#b89b62;
  --graphite:#27332f;
  --muted:#5f6a64;
  --line:#d8d2c6;
  --white:#fff;

  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;

  --pad:7vw;
  --radius:2px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--ivory);
  color:var(--graphite);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.65;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,ul,ol{margin:0}
ul,ol{padding:0;list-style:none}

:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--green);color:var(--ivory);padding:12px 18px;z-index:200}
.skip-link:focus{left:12px;top:12px}

.wrap{max-width:1220px;margin:0 auto;padding:0 var(--pad)}
.section{padding-top:clamp(56px,7vw,104px);padding-bottom:clamp(56px,7vw,104px)}

.kicker{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:16px}
.kicker-light{color:#d9c48d}

.h2{font-family:var(--serif);font-weight:600;font-size:clamp(30px,3.6vw,50px);line-height:1.06;color:var(--green);letter-spacing:-.01em}
.h2-wide{max-width:22ch;margin-bottom:clamp(28px,3.4vw,48px)}
.h2-light{color:var(--ivory)}

/* ---------- Шапка ---------- */
.header{position:sticky;top:0;z-index:60;background:rgba(244,241,234,.94);backdrop-filter:saturate(150%) blur(8px);border-bottom:1px solid rgba(39,51,47,.1)}
.header-inner{max-width:1220px;margin:0 auto;padding:12px var(--pad);display:flex;align-items:center;gap:20px;min-height:78px}
.brand-logo{height:42px;width:auto}
.nav{display:flex;gap:22px;margin-left:auto;flex-wrap:wrap}
.nav a{font-size:13px;color:var(--graphite);padding:6px 2px;border-bottom:1px solid transparent}
.nav a:hover,.nav a:focus-visible{color:var(--gold);border-bottom-color:var(--gold)}
.header-phone{font-size:13px;font-weight:600;white-space:nowrap;margin-left:6px}
.header-phone:hover{color:var(--gold)}

.nav-toggle{display:none;margin-left:auto;background:none;border:1px solid var(--line);width:46px;height:42px;cursor:pointer;align-items:center;justify-content:center}
.nav-toggle-bars{display:block;width:20px;height:2px;background:var(--green);position:relative}
.nav-toggle-bars::before,.nav-toggle-bars::after{content:'';position:absolute;left:0;width:20px;height:2px;background:var(--green)}
.nav-toggle-bars::before{top:-6px}
.nav-toggle-bars::after{top:6px}

/* ---------- Кнопки ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:52px;padding:0 26px;border:1px solid transparent;border-radius:var(--radius);
  font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.02em;
  cursor:pointer;text-align:center;transition:background .2s,color .2s,border-color .2s
}
.btn-sm{min-height:46px;padding:0 20px;font-size:12px}
.btn-dark{background:var(--green);color:var(--ivory)}
.btn-dark:hover{background:#0f332d}
.btn-line{border-color:#b5a586;color:var(--green);background:transparent}
.btn-line:hover{border-color:var(--gold);color:var(--gold)}
.btn-gold{background:var(--gold);color:var(--deep)}
.btn-gold:hover{background:#c9ab74}

/* ---------- Первый экран ---------- */
.hero{
  display:grid;grid-template-columns:1.02fr .98fr;
  gap:clamp(28px,4vw,64px);align-items:center;
  padding:clamp(40px,5vw,72px) var(--pad) clamp(48px,6vw,88px);
  max-width:1220px;margin:0 auto;
}
.eyebrow{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:20px}
.hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(36px,5.4vw,68px);line-height:.98;color:var(--green);letter-spacing:-.015em;margin-bottom:22px}
.hero h1 em{font-style:italic;color:var(--gold)}
.hero-lead{max-width:52ch;color:var(--muted);font-size:17px}
.hero-name{margin-top:14px;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--green);font-weight:600}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 18px}
.hero-links{display:flex;gap:10px;align-items:center;font-size:13px}
.hero-links a{border-bottom:1px solid var(--gold);padding-bottom:2px}
.hero-links a:hover{color:var(--gold)}
.hero-links span{color:var(--gold)}

.hero-visual{position:relative;display:flex;justify-content:center}
.portrait-shell{position:relative;width:100%;max-width:460px;aspect-ratio:460/560}
.portrait-frame{position:absolute;top:22px;right:-16px;width:74%;height:82%;border:1px solid var(--gold);z-index:0}
.portrait{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;object-position:center top;background:linear-gradient(150deg,#17332e,#8f7750)}
.portrait-tag{position:absolute;left:0;bottom:-14px;z-index:2;background:var(--gold);color:var(--deep);font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;padding:9px 14px}
.portrait-fallback{display:none}
.no-photo .portrait-fallback{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  position:absolute;inset:0;z-index:1;background:linear-gradient(150deg,#17332e,#8f7750);color:#e8e2d4;text-align:center;padding:20px
}
.no-photo .portrait-fallback span{font-family:var(--serif);font-size:26px}
.no-photo .portrait-fallback small{font-size:11px;color:#cbbf9f;letter-spacing:.06em}

/* ---------- Статуэтка ---------- */
.trophy{
  position:absolute;z-index:5;right:-6px;top:-6px;
  width:clamp(104px,11vw,152px);
  background:none;border:0;padding:0;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:6px;
  transition:transform .38s cubic-bezier(.2,.7,.3,1),filter .38s
}
.trophy img{width:100%;height:auto;filter:drop-shadow(0 14px 16px rgba(0,0,0,.34))}
.trophy-caption{display:block;text-align:center;line-height:1.4}
.trophy-caption b{display:block;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--green);font-weight:600}
.trophy-caption i{display:block;font-style:normal;font-size:11px;font-weight:700;color:var(--gold);letter-spacing:.08em}
.trophy:hover,.trophy:focus-visible{transform:translateY(-5px) scale(1.16);filter:drop-shadow(0 0 18px rgba(184,155,98,.32))}
.trophy:active{transform:translateY(-2px) scale(1.08)}

/* ---------- Полоса доверия ---------- */
.trustbar{background:var(--ivory-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.trustbar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
.trustbar-grid>div{background:var(--ivory-2);padding:24px 26px}
.trustbar-grid b{display:block;color:var(--green);font-size:14px;margin-bottom:6px}
.trustbar-grid span{font-size:13px;color:var(--muted)}

/* ---------- Сценарии ---------- */
.scenario-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.scenario{background:var(--ivory);padding:clamp(26px,3vw,44px)}
.scenario-tag{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:14px}
.scenario h2{font-family:var(--serif);font-weight:600;font-size:clamp(24px,2.4vw,34px);line-height:1.1;color:var(--green);margin-bottom:22px}
.list li{position:relative;padding-left:22px;margin-bottom:11px;font-size:15px;color:var(--muted)}
.list li::before{content:'';position:absolute;left:0;top:.62em;width:9px;height:1px;background:var(--gold)}
.scenario .btn{margin-top:14px}

/* ---------- Обо мне ---------- */
.about{background:var(--green);color:var(--ivory);padding:clamp(56px,7vw,104px) 0}
.about .kicker{color:#d9c48d}
.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,4vw,64px)}
.about .h2{color:var(--ivory)}
.about-text p{color:#c6cfc8;margin-bottom:16px;font-size:16px}
.about-text p:last-child{margin-bottom:0}

/* ---------- Почему ---------- */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.why{background:var(--ivory);padding:clamp(22px,2.4vw,32px);min-height:186px}
.why h3{font-family:var(--serif);font-weight:600;font-size:23px;line-height:1.15;color:var(--green);margin-bottom:12px}
.why p{font-size:14px;color:var(--muted)}

/* ---------- Награды ---------- */
.awards{background:var(--ivory-2);padding:clamp(56px,7vw,104px) 0}
.award-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.award{background:var(--ivory);border:1px solid var(--line);display:flex;flex-direction:column}
.award-media{aspect-ratio:16/11;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#e6e1d6}
.award-media-dark{background:linear-gradient(180deg,#11312b,#0d2621)}
.award-media img{height:82%;width:auto;object-fit:contain;filter:drop-shadow(0 16px 18px rgba(0,0,0,.42))}
.award-media video{width:100%;height:100%;object-fit:cover;background:#0d2621}
.award-body{padding:22px 26px 28px}
.award-year{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:8px}
.award-body h3{font-family:var(--serif);font-weight:600;font-size:26px;line-height:1.1;color:var(--green);margin-bottom:10px}
.award-body p{font-size:14px;color:var(--muted)}

/* ---------- Доп. услуги ---------- */
.extra-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.extra{background:var(--white);border:1px solid var(--line);padding:clamp(22px,2.4vw,32px)}
.extra h3{font-family:var(--serif);font-weight:600;font-size:25px;color:var(--green);margin-bottom:12px}
.extra p{font-size:14px;color:var(--muted)}

/* ---------- Процесс ---------- */
.process{background:var(--deep);color:var(--ivory);padding:clamp(56px,7vw,104px) 0}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid rgba(244,241,234,.22);margin-top:44px}
.steps li{padding:26px 22px 4px;border-right:1px solid rgba(244,241,234,.22)}
.steps li:last-child{border-right:0}
.steps h3{font-family:var(--serif);font-weight:600;font-size:21px;margin-bottom:10px;color:var(--ivory)}
.steps p{font-size:13px;color:#b8c4bb}
.steps li{counter-increment:step}
.steps li::before{content:'0' counter(step);display:block;font-size:12px;font-weight:700;color:var(--gold);margin-bottom:10px;letter-spacing:.1em}
.steps{counter-reset:step}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  cursor:pointer;list-style:none;padding:20px 44px 20px 0;position:relative;
  font-family:var(--serif);font-weight:600;font-size:clamp(18px,1.7vw,22px);color:var(--green)
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:22px;color:var(--gold);font-family:var(--sans);font-weight:400}
.faq details[open] summary::after{content:'–'}
.faq summary:hover{color:var(--gold)}
.faq p{padding:0 0 22px;max-width:76ch;font-size:15px;color:var(--muted)}

/* ---------- Контакт ---------- */
.contact{background:var(--deep);color:var(--ivory);padding:clamp(56px,7vw,104px) 0}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,64px)}
.contact-copy>p{color:#c1cac2;max-width:44ch;margin-bottom:18px}
.contact-links{display:flex;flex-direction:column;gap:6px;margin-top:26px}
.contact-phone{font-family:var(--serif);font-size:clamp(26px,2.8vw,34px);font-weight:600;color:var(--gold)}
.contact-mail{font-size:15px;color:var(--gold)}
.contact-phone:hover,.contact-mail:hover{text-decoration:underline}

.form{display:grid;gap:16px;align-content:start}
.form-note{font-size:12px;color:#9fada4;border-left:2px solid var(--gold);padding-left:12px;margin-bottom:6px}
.field{display:block}
.field span{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#a6b2a8;margin-bottom:7px}
.field i{font-style:normal;text-transform:none;letter-spacing:0;color:#7f8d85}
.field input,.field select,.field textarea{
  display:block;width:100%;padding:11px 0;border:0;border-bottom:1px solid #6d7d72;
  background:transparent;color:var(--ivory);font-family:var(--sans);font-size:15px;border-radius:0
}
.field textarea{resize:vertical;min-height:76px}
.field input:focus,.field select:focus,.field textarea:focus{border-bottom-color:var(--gold);outline:none}
.field select option{color:var(--graphite)}
.consent{display:flex;gap:11px;align-items:flex-start;font-size:12.5px;color:#aeb9b0}
.consent input{width:18px;height:18px;flex:0 0 18px;margin-top:2px;accent-color:var(--gold)}
.form-status{font-size:13.5px;color:var(--gold);min-height:20px}

/* ---------- Подвал ---------- */
.footer{background:#081c18;color:#9dab9f;font-size:13px;padding:34px 0}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1.2fr;gap:24px}
.footer-brand{color:var(--ivory);font-weight:600;margin-bottom:4px}
.footer a:hover{color:var(--gold)}
.footer-copy{margin-top:4px;color:#78877c}

/* ---------- Модальное окно ---------- */
.modal{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:20px}
.modal[hidden]{display:none}
.modal-backdrop{position:absolute;inset:0;background:rgba(8,28,24,.82)}
.modal-box{
  position:relative;background:var(--ivory);max-width:440px;width:100%;padding:34px 30px 30px;
  text-align:center;box-shadow:0 30px 60px rgba(0,0,0,.4);max-height:92vh;overflow:auto
}
.modal-box img{height:min(46vh,300px);width:auto;margin:0 auto 20px;filter:drop-shadow(0 14px 18px rgba(0,0,0,.28))}
.modal-box h2{font-family:var(--serif);font-weight:600;font-size:27px;color:var(--green);margin-bottom:10px}
.modal-box p{font-size:14px;color:var(--muted)}
.modal-close{
  position:absolute;top:8px;right:10px;width:40px;height:40px;border:0;background:none;
  font-size:28px;line-height:1;color:var(--green);cursor:pointer
}
.modal-close:hover{color:var(--gold)}

/* ---------- Адаптив ---------- */
@media (max-width:1024px){
  .hero{grid-template-columns:1fr;gap:52px}
  .hero-visual{order:-1;max-width:460px;margin:0 auto}
  .about-grid{grid-template-columns:1fr;gap:22px}
  .why-grid{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
  .steps li{border-right:0;border-bottom:1px solid rgba(244,241,234,.22);padding-bottom:22px}
  .extra-grid{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:820px){
  .nav{
    display:none;position:absolute;left:0;right:0;top:100%;
    background:var(--ivory);border-bottom:1px solid var(--line);
    flex-direction:column;gap:0;padding:10px var(--pad) 18px;margin-left:0
  }
  .nav.open{display:flex}
  .nav a{padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}
  .nav-toggle{display:inline-flex}
  .header-phone{display:none}
  .trustbar-grid,.scenario-grid,.award-grid,.extra-grid,.contact-grid,.footer-grid{grid-template-columns:1fr}
  .why-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .portrait-shell{aspect-ratio:460/520;max-width:100%}
  .portrait-frame{right:0;width:66%}
  .trophy{right:-2px;top:-10px}
}
@media (max-width:480px){
  body{font-size:15px}
  .brand-logo{height:34px}
  .hero-actions .btn{width:100%}
  .trophy{width:112px}
  .modal-box{padding:26px 20px 22px}
}

/* ---------- Снижение анимации ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  .trophy:hover,.trophy:focus-visible{transform:none}
}

@media print{
  .header,.trophy,.modal{display:none}
  body{background:#fff}
}
.header-inner {
  max-width: 1440px;
  min-height: 96px;
  padding: 16px clamp(20px, 4vw, 64px);
  gap: 24px;
}

.brand-logo {
  height: 62px;
  width: auto;
  max-width: 240px;
  object-fit: contain;
}

.nav {
  gap: clamp(12px, 1.5vw, 24px);
  flex-wrap: nowrap;
}

.nav a {
  font-size: 15px;
  font-weight: 500;
}

.header-phone {
  font-size: 19px;
  font-weight: 700;
  letter-spacing: -.03em;
}

/* ---------- Портрет как часть фона первого экрана ---------- */

.hero {
  position: relative;
  isolation: isolate;
  max-width: 1440px;
  min-height: 730px;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 64px);
  padding: 60px clamp(24px, 5vw, 72px) 70px;
  align-items: center;
}

.hero-copy {
  position: relative;
  z-index: 2;
  min-width: 0;
  max-width: 620px;
}

.hero h1 {
  font-size: clamp(42px, 4.8vw, 72px);
  line-height: 1.02;
}

.hero-lead {
  max-width: 44ch;
  font-size: 18px;
  line-height: 1.75;
}

.hero-name {
  line-height: 1.6;
}

.hero-visual {
  position: relative;
  z-index: 1;
  order: initial;
  align-self: stretch;
  width: 100%;
  max-width: none;
  min-width: 0;
  min-height: 600px;
  margin: 0;
  display: block;
}

.portrait-shell {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  aspect-ratio: auto;
}

.portrait {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 20%;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

/* Рамка и плашка больше не нужны */
.portrait-frame,
.portrait-tag {
  display: none;
}

/* Мягко растворяем края фотографии, не затрагивая текст */
@supports (
  (mask-image: linear-gradient(black, transparent)) or
  (-webkit-mask-image: linear-gradient(black, transparent))
) {
  .hero-visual:not(.no-photo) .portrait-shell:not(.no-photo) {
    -webkit-mask-image:
      linear-gradient(
        to right,
        transparent 0%,
        #000 14%,
        #000 90%,
        transparent 100%
      );
    mask-image:
      linear-gradient(
        to right,
        transparent 0%,
        #000 14%,
        #000 90%,
        transparent 100%
      );
  }
}

.hero-links {
  display: none;
}

.hero-actions {
  gap: 12px;
  margin-top: 30px;
}

.hero-actions .btn {
  border-radius: 12px;
}

/* ---------- Современные карточки преимуществ ---------- */

.trustbar {
  background: transparent;
  border: 0;
  padding: 12px 0 52px;
}

.trustbar-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  background: transparent;
}

.trustbar-grid > div {
  position: relative;
  min-width: 0;
  padding: 30px;
  border: 1px solid rgba(18, 60, 53, .12);
  border-radius: 22px;
  background:
    linear-gradient(145deg, #fff, #f1eee6);
  box-shadow: 0 12px 32px rgba(12, 42, 37, .045);
  transition:
    transform .25s ease,
    box-shadow .25s ease,
    border-color .25s ease;
}

.trustbar-grid > div::before {
  content: "01";
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  margin-bottom: 22px;
  border-radius: 14px;
  background: rgba(184, 155, 98, .14);
  color: var(--green);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
}

.trustbar-grid > div:nth-child(2)::before {
  content: "02";
}

.trustbar-grid > div:nth-child(3)::before {
  content: "03";
}

.trustbar-grid b {
  font-size: 19px;
  line-height: 1.3;
  letter-spacing: -.025em;
  margin-bottom: 12px;
}

.trustbar-grid span {
  display: block;
  font-size: 14px;
  line-height: 1.75;
}

@media (hover: hover) {
  .trustbar-grid > div:hover {
    transform: translateY(-5px);
    border-color: rgba(184, 155, 98, .55);
    box-shadow: 0 20px 44px rgba(12, 42, 37, .09);
  }
}

/* ---------- Парящая статуэтка при прокрутке ---------- */

/* JS перенесёт блок непосредственно в body */
.award-dock {
  position: fixed;
  right: max(14px, env(safe-area-inset-right, 0px));
  bottom: calc(18px + env(safe-area-inset-bottom, 0px));
  z-index: 55;
  width: 116px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.award-dock .trophy {
  position: relative;
  inset: auto;
  width: 100%;
  margin: 0;
  transform: none;
  transition: filter .2s ease;
}

.award-dock .trophy img {
  width: 100%;
  height: auto;
  max-height: 172px;
  object-fit: contain;
  animation: medvedef-award-float 5s ease-in-out infinite;
  filter: drop-shadow(0 12px 12px rgba(0, 0, 0, .2));
}

.award-dock .trophy-caption {
  padding: 7px 8px;
  border: 1px solid rgba(184, 155, 98, .3);
  border-radius: 10px;
  background: var(--ivory);
}

.award-dock .trophy:hover,
.award-dock .trophy:focus-visible {
  transform: none;
  filter: brightness(1.04);
}

.award-dock-controls {
  display: flex;
  gap: 4px;
}

.award-dock-controls button {
  min-height: 34px;
  padding: 5px 8px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--ivory);
  color: var(--green);
  font: 11px var(--sans);
  cursor: pointer;
}

.award-dock.is-paused .trophy img {
  animation-play-state: paused;
}

.award-dock.is-collapsed .trophy,
.award-dock.is-collapsed .award-motion-toggle {
  display: none;
}

@keyframes medvedef-award-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-9px); }
}

/* Запас внизу, чтобы награда не закрывала конец страницы */
.footer {
  padding-bottom: 260px;
}

/* ---------- Адаптивная шапка ---------- */

@media (max-width: 1199px) {
  .header-inner {
    min-height: 84px;
    gap: 16px;
  }

  .brand-logo {
    height: 54px;
    max-width: 190px;
  }

  .header-phone {
    display: block;
    margin-left: auto;
    font-size: 17px;
  }

  .nav-toggle {
    display: inline-flex;
    margin-left: 0;
    flex-shrink: 0;
  }

  .nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin: 0;
    padding: 14px 5vw 22px;
    background: var(--ivory);
    border-bottom: 1px solid var(--line);
    flex-direction: column;
    gap: 0;
  }

  .nav.open {
    display: flex;
  }

  .nav a {
    padding: 12px 0;
    font-size: 17px;
    border-bottom: 1px solid var(--line);
  }
}

/* ---------- Планшеты ---------- */

@media (max-width: 1024px) {
  .hero {
    grid-template-columns: minmax(0, 1fr) minmax(0, .85fr);
    min-height: 650px;
    gap: 24px;
  }

  .hero-visual {
    order: initial;
    min-height: 550px;
    max-width: none;
    margin: 0;
  }

  .hero h1 {
    font-size: clamp(40px, 5vw, 56px);
  }

  .trustbar-grid > div {
    padding: 24px;
  }
}

/* ---------- Телефоны: лицо и текст в разных зонах ---------- */

@media (max-width: 820px) {
  .hero {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    padding: 32px 6vw 40px;
    gap: 28px;
  }

  .hero-copy {
    max-width: none;
  }

  .hero-visual {
    order: initial;
    min-height: 0;
    height: clamp(370px, 72vw, 560px);
    width: 100%;
    max-width: 580px;
    margin: 0 auto;
  }

  .hero h1 {
    font-size: clamp(40px, 8vw, 60px);
  }

  .hero-lead {
    font-size: 16px;
  }

  .trustbar-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  .trustbar-grid > div {
    padding: 24px;
  }

  .award-dock {
    width: 80px;
    right: 10px;
    bottom: calc(12px + env(safe-area-inset-bottom, 0px));
  }

  .award-dock .trophy img {
    max-height: 112px;
  }

  .award-dock .trophy-caption {
    display: none;
  }

  .award-dock-controls {
    flex-direction: column;
  }
}

@media (max-width: 480px) {
  .header-inner {
    min-height: 78px;
    padding: 12px 14px;
    gap: 10px;
  }

  .brand-logo {
    height: 46px;
    max-width: 122px;
  }

  .header-phone {
    font-size: 14px;
    letter-spacing: -.04em;
    margin-left: auto;
  }

  .nav-toggle {
    width: 40px;
    height: 40px;
  }

  .hero-actions .btn {
    width: 100%;
  }
}

/* На самых узких экранах телефон занимает отдельную строку */
@media (max-width: 359px) {
  .header-inner {
    flex-wrap: wrap;
  }

  .nav-toggle {
    margin-left: auto;
  }

  .header-phone {
    order: 3;
    width: 100%;
    margin: 0;
    text-align: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .award-dock .trophy img {
    animation: none;
  }

  .trustbar-grid > div:hover {
    transform: none;
  }
}

@media print {
  .award-dock {
    display: none;
  }

  .footer {
    padding-bottom: 34px;
  }
}
.insurance-partners {
  padding: 44px max(20px, 5vw);
  overflow: hidden;
  background: #f4f1ea;
  color: #123c35;
  border-top: 1px solid rgba(18, 60, 53, .16);
  border-bottom: 1px solid rgba(18, 60, 53, .16);
}

.insurance-partners-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 26px;
}

.insurance-partners-head h2 {
  margin: 0 0 8px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(32px, 4vw, 46px);
}

.insurance-partners-head p {
  margin: 0;
  font-size: 13px;
  color: #53645e;
}

.insurance-partners-toggle {
  padding: 9px 14px;
  border: 1px solid rgba(18, 60, 53, .25);
  border-radius: 10px;
  background: transparent;
  color: #123c35;
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}

.insurance-partners-toggle[hidden] {
  display: none;
}

.insurance-partners-window {
  overflow-x: auto;
}

.insurance-partners-track {
  display: flex;
  width: max-content;
}

.insurance-partners-list {
  display: flex;
  align-items: center;
  gap: 48px;
  flex-shrink: 0;
  width: max-content;
  margin: 0;
  padding: 16px 48px 16px 0;
  list-style: none;
}

.insurance-partners-list li {
  white-space: nowrap;
  font-family: "Inter", sans-serif;
  font-size: 19px;
  font-weight: 600;
}

.insurance-partners.is-ready .insurance-partners-window {
  overflow: hidden;
}

.insurance-partners.is-ready .insurance-partners-track {
  animation: insurance-partners-scroll 70s linear infinite;
}

.insurance-partners.is-paused .insurance-partners-track,
.insurance-partners:hover .insurance-partners-track,
.insurance-partners:focus-within .insurance-partners-track {
  animation-play-state: paused;
}

@keyframes insurance-partners-scroll {
  to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
  .insurance-partners.is-ready .insurance-partners-track {
    animation: none;
    transform: none;
  }

  .insurance-partners.is-ready .insurance-partners-window {
    overflow-x: auto;
  }

  .insurance-partners-list[aria-hidden="true"] {
    display: none;
  }

  .insurance-partners-toggle {
    display: none;
  }
}