/* ===========================================================
   layout.css — header, nav, hero, footer, бургер, адаптив
   =========================================================== */

/* ---------- Header ---------- */
.header {
  position: sticky; top: 0; z-index: 60;
  background: rgba(251, 253, 252, .82);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line);
}
.header__inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px;
  height: 74px;
}

.logo { display: inline-flex; align-items: center; gap: 11px; font-family: var(--font-display); font-weight: 800; font-size: 1.28rem; color: var(--ink); }
.logo__mark {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 12px;
  background: var(--ink); color: var(--lime-500);
}
.logo__dot { color: var(--aqua-500); }
.logo--light { color: #fff; }
.logo--light .logo__mark { background: linear-gradient(135deg, var(--aqua-500), var(--lime-500)); color: var(--ink); }

.nav { display: flex; align-items: center; gap: 4px; }
.nav__link {
  padding: 9px 15px; border-radius: var(--r-pill);
  font-weight: 600; font-size: .96rem; color: var(--ink-2);
}
.nav__link:hover { background: var(--soft); color: var(--aqua-600); }
.nav__link[aria-current="page"] { background: var(--ink); color: #fff; }

.header__actions { display: flex; align-items: center; gap: 12px; }
.header__phone {
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 700; color: var(--ink); font-size: .98rem;
}
.header__phone:hover { color: var(--aqua-600); }
.header__phone svg { color: var(--aqua-600); }

/* Бургер */
.burger {
  display: none;
  width: 44px; height: 44px;
  border: 1px solid var(--line); border-radius: 12px;
  background: var(--surface);
  position: relative;
}
.burger span {
  position: absolute; left: 11px; right: 11px; height: 2.5px;
  background: var(--ink); border-radius: 2px;
  transition: transform .25s, opacity .2s;
}
.burger span:nth-child(1) { top: 15px; }
.burger span:nth-child(2) { top: 21px; }
.burger span:nth-child(3) { top: 27px; }
.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* ---------- Hero ---------- */
.hero {
  position: relative;
  padding: clamp(40px, 6vw, 80px) 0 clamp(50px, 7vw, 96px);
  background:
    radial-gradient(900px 420px at 88% -10%, rgba(159,240,62,.16), transparent 60%),
    radial-gradient(760px 460px at -5% 30%, rgba(31,214,163,.14), transparent 60%);
}
.hero__grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: clamp(28px, 5vw, 60px);
  align-items: center;
}
.hero__title { margin-bottom: .35em; }
.hero__lead { font-size: clamp(1.02rem, 1.7vw, 1.18rem); color: var(--slate); max-width: 540px; margin-bottom: 30px; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 36px; }

.hero__trust {
  display: flex; flex-wrap: wrap; gap: clamp(18px, 4vw, 40px);
  padding-top: 26px; border-top: 1px solid var(--line);
}
.hero__trust li { display: flex; flex-direction: column; }
.hero__trust strong { font-family: var(--font-display); font-size: 1.3rem; color: var(--ink); }
.hero__trust span { font-size: .86rem; color: var(--slate); }

/* Візуал hero — фото в рамці + плаваючі картки */
.hero__visual { position: relative; }
.hero__frame {
  position: relative;
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  border: 6px solid var(--surface);
  aspect-ratio: 4 / 5;
}
.hero__frame img { width: 100%; height: 100%; object-fit: cover; }

.float-card {
  position: absolute;
  display: flex; align-items: center; gap: 12px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 12px 16px;
  box-shadow: var(--shadow-md);
}
.float-card strong { display: block; font-size: .95rem; color: var(--ink); font-family: var(--font-display); }
.float-card small { color: var(--slate); font-size: .8rem; }
.float-card__icon {
  width: 38px; height: 38px; flex: none;
  display: flex; align-items: center; justify-content: center;
  border-radius: 11px;
  background: linear-gradient(135deg, var(--aqua-500), var(--lime-500));
  color: var(--ink);
}
.float-card--1 { left: -22px; bottom: 42px; animation: floaty 5s ease-in-out infinite; }
.float-card--2 { right: -16px; top: 38px; animation: floaty 6s ease-in-out infinite .8s; }
@keyframes floaty { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

/* ---------- Стрічка брендів ---------- */
.brands { border-block: 1px solid var(--line); background: var(--surface); overflow: hidden; }
.brands__track {
  display: flex; gap: 56px; align-items: center;
  padding: 22px 0;
  width: max-content;
  animation: marquee 28s linear infinite;
}
.brands__track span { font-family: var(--font-display); font-weight: 700; font-size: 1.15rem; color: var(--slate); opacity: .7; white-space: nowrap; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---------- Footer ---------- */
.footer { background: var(--night); color: #aec4be; padding-top: clamp(48px, 7vw, 80px); }
.footer__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
  gap: clamp(24px, 4vw, 48px);
  padding-bottom: 44px;
}
.footer__col h4 { color: #fff; font-size: 1rem; margin-bottom: 16px; }
.footer__col a, .footer__col span { display: block; color: #aec4be; font-size: .94rem; margin-bottom: 9px; }
.footer__col a:hover { color: var(--lime-400); }
.footer__col--brand p { color: #8ba49d; font-size: .92rem; max-width: 300px; margin-top: 14px; }
.footer__msgr { display: flex; gap: 10px; margin-top: 16px; }
.footer__msgr a {
  width: 40px; height: 40px; margin: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid rgba(255,255,255,.14); border-radius: 11px; color: #d9e8e3;
}
.footer__msgr a:hover { border-color: var(--lime-400); color: var(--lime-400); }
.footer__bottom {
  display: flex; flex-wrap: wrap; gap: 14px; justify-content: space-between; align-items: center;
  border-top: 1px solid rgba(255,255,255,.1);
  padding: 22px 0 30px;
  font-size: .86rem; color: #8ba49d;
}
.footer__legal { display: flex; gap: 22px; }
.footer__legal a { color: #8ba49d; }
.footer__legal a:hover { color: var(--lime-400); }

/* ---------- Адаптив ---------- */
@media (max-width: 920px) {
  .hero__grid { grid-template-columns: 1fr; }
  .hero__visual { max-width: 460px; margin: 0 auto; }
  .footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
  .nav {
    position: fixed; inset: 74px 0 auto 0;
    flex-direction: column; align-items: stretch; gap: 4px;
    background: var(--surface);
    border-bottom: 1px solid var(--line);
    padding: 14px clamp(16px, 4vw, 40px) 22px;
    box-shadow: var(--shadow-md);
    transform: translateY(-130%);
    transition: transform .3s ease;
    visibility: hidden;
  }
  .nav.is-open { transform: translateY(0); visibility: visible; }
  .nav__link { padding: 13px 16px; }
  .burger { display: block; }
  .header__phone { display: none; }
  .header__actions .btn { display: none; }
  .fab { display: flex; }
}

@media (max-width: 520px) {
  .footer__grid { grid-template-columns: 1fr; }
  .float-card--1 { left: -8px; bottom: 16px; }
  .float-card--2 { right: -6px; top: 18px; }
  .hero__cta .btn { flex: 1 1 auto; }
}
