/* ============================================================
   «Сосны» — глэмпинг в сосновом лесу
   Мягкое и органичное: арки, кроны, свет.
   Дисплей: Lora · текст: Onest
   День/ночь перекрашивают весь парк через CSS custom properties
   ============================================================ */

:root {
  /* ДЕНЬ */
  --bg: #eee7d8;
  --surface: #f6f1e4;
  --surface-2: #e7dfcc;
  --ink: #16241c;
  --muted: rgba(22, 36, 28, 0.64);
  --line: rgba(22, 36, 28, 0.14);
  --accent: #5f8260;
  --sage: #7fa07a;
  --gold: #b98a2e;
  --glow: rgba(224, 182, 79, 0.5);
  --sky: linear-gradient(180deg, #dde8d9 0%, #eee7d8 62%);
  --pine-far: #b9c9ae;
  --pine-mid: #93ac8a;
  --pine-near: #628261;
  --pill-bg: rgba(246, 241, 228, 0.97);
  --shadow: rgba(22, 36, 28, 0.16);
  --font-display: 'Lora', Georgia, serif;
  --font-body: 'Onest', sans-serif;
  --r-lg: 32px;
  --r-md: 22px;
}

html[data-mode="night"] {
  /* НОЧЬ */
  --bg: #16241c;
  --surface: #1d2f24;
  --surface-2: #233828;
  --ink: #eee7d8;
  --muted: rgba(238, 231, 216, 0.66);
  --line: rgba(238, 231, 216, 0.14);
  --accent: #9dbf97;
  --sage: #7fa07a;
  --gold: #e0b64f;
  --glow: rgba(224, 182, 79, 0.42);
  --sky: linear-gradient(180deg, #0d1a13 0%, #16241c 68%);
  --pine-far: #22392b;
  --pine-mid: #1b2f23;
  --pine-near: #132218;
  --pill-bg: rgba(29, 47, 36, 0.97);
  --shadow: rgba(0, 0, 0, 0.5);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: clamp(0.98rem, 1vw, 1.04rem);
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
  transition: background-color 0.65s ease, color 0.65s ease;
}

/* перелицовка всего парка на день/ночь */
.pill, .tent, .sheet, .services__list li, .reviews blockquote,
.contacts__cards > div, .foot, .day__time, .hero__chips span,
.kicker, .toggle, .toggle__knob, .canopy svg, .pines, .hero__sky,
.tent__price span, .lnk, .night__switch, .section-sub, .about__facts li {
  transition: background-color 0.65s ease, color 0.65s ease,
    border-color 0.65s ease, box-shadow 0.65s ease, fill 0.65s ease;
}

img { display: block; max-width: 100%; }

a { color: inherit; text-decoration: none; }

h1, h2, h3 { margin: 0; font-family: var(--font-display); }

p { margin: 0; }

ul, ol { margin: 0; padding: 0; list-style: none; }

button { font: inherit; color: inherit; }

::selection { background: var(--gold); color: #16241c; }

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

/* ---------- фото-контейнеры: тёплые подложки ---------- */
.photo {
  position: relative;
  overflow: hidden;
  aspect-ratio: var(--ar, 4 / 3);
  background: linear-gradient(168deg, var(--tint-a, #dfe6d4) 0%, var(--tint-b, #7fa07a) 100%);
}

.photo::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 40% at 70% 12%, rgba(255, 250, 235, 0.5), transparent 60%),
    repeating-linear-gradient(100deg, transparent 0 34px, rgba(22, 36, 28, 0.05) 34px 35px);
  pointer-events: none;
}

.photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity 0.35s linear, transform 0.9s cubic-bezier(0.2, 0.8, 0.3, 1);
}

.photo img.noimg { opacity: 0; }

/* ---------- шапка-капсула ---------- */
.pill {
  position: fixed;
  top: 1rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 70;
  width: min(1120px, calc(100% - 2rem));
  display: flex;
  align-items: center;
  gap: 1.4rem;
  padding: 0.55rem 0.7rem 0.55rem 1.4rem;
  border-radius: 999px;
  background: var(--pill-bg);
  border: 1px solid var(--line);
  backdrop-filter: blur(10px);
  box-shadow: 0 14px 40px -18px var(--shadow);
}

.pill__brand {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-right: auto;
}

.pill__pine {
  width: 22px;
  height: 26px;
  fill: var(--accent);
}

.pill__pine rect { fill: var(--gold); }

.pill__name {
  display: flex;
  flex-direction: column;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.25rem;
  line-height: 1;
}

.pill__name em {
  font-family: var(--font-body);
  font-style: normal;
  font-size: 0.55rem;
  font-weight: 600;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: 0.28rem;
}

.pill__nav {
  display: flex;
  gap: 1.4rem;
}

.pill__nav a {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--muted);
  padding: 0.4rem 0.2rem;
  position: relative;
  transition: color 0.3s ease;
}

.pill__nav a::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--gold);
  opacity: 0;
  transform: translate(-50%, 4px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.pill__nav a:hover { color: var(--ink); }
.pill__nav a:hover::after { opacity: 1; transform: translate(-50%, 2px); }

/* переключатель день/ночь */
.toggle {
  position: relative;
  flex: none;
  width: 88px;
  height: 40px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--surface-2);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 0.65rem;
}

.toggle svg {
  width: 16px;
  height: 16px;
  stroke: var(--muted);
  fill: none;
  stroke-width: 1.6;
  stroke-linecap: round;
  z-index: 1;
  transition: stroke 0.5s ease;
}

.toggle__moon { fill: var(--muted); stroke: none; }

.toggle__knob {
  position: absolute;
  top: 4px;
  left: 4px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: radial-gradient(circle at 32% 30%, #fff6dd, var(--gold));
  box-shadow: 0 4px 14px -2px var(--glow);
  transition: transform 0.5s cubic-bezier(0.3, 1.6, 0.5, 1), background 0.5s ease;
}

html[data-mode="night"] .toggle__knob {
  transform: translateX(48px);
  background: radial-gradient(circle at 65% 35%, #f2ead6, #b9b09a);
  box-shadow: 0 4px 18px -2px rgba(238, 231, 216, 0.35);
}

html[data-mode="night"] .toggle__moon { fill: #16241c; stroke: none; }
html:not([data-mode="night"]) .toggle__sun { stroke: #16241c; }

.pill__cta {
  flex: none;
  font-size: 0.82rem;
  font-weight: 600;
  color: #f6f1e4;
  background: var(--accent);
  border-radius: 999px;
  padding: 0.7rem 1.3rem;
  transition: background 0.35s ease, transform 0.35s ease, box-shadow 0.35s ease;
}

.pill__cta:hover {
  background: var(--gold);
  color: #16241c;
  transform: translateY(-2px);
  box-shadow: 0 10px 26px -10px var(--glow);
}

.pill__burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: transparent;
  cursor: pointer;
  padding: 0;
}

.pill__burger span {
  width: 18px;
  height: 2px;
  border-radius: 2px;
  background: var(--ink);
  margin: 0 auto;
  transition: transform 0.35s ease, opacity 0.3s ease;
}

.pill__burger[aria-expanded="true"] span:first-child { transform: translateY(7px) rotate(45deg); }
.pill__burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.pill__burger[aria-expanded="true"] span:last-child { transform: translateY(-7px) rotate(-45deg); }

/* мобильное меню-лист */
.sheet {
  position: fixed;
  top: 5.6rem;
  left: 50%;
  transform: translate(-50%, 8px);
  z-index: 65;
  width: min(420px, calc(100% - 2rem));
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 1.2rem 1.6rem 1.4rem;
  box-shadow: 0 24px 60px -20px var(--shadow);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s ease, transform 0.4s ease, visibility 0.4s,
    background-color 0.65s ease;
}

.sheet.is-open { opacity: 1; visibility: visible; transform: translate(-50%, 0); }

.sheet nav { display: flex; flex-direction: column; }

.sheet a {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.35rem;
  padding: 0.7rem 0.2rem;
  border-bottom: 1px dashed var(--line);
  transition: color 0.3s ease, padding-left 0.3s ease;
}

.sheet a:last-child { border-bottom: 0; }
.sheet a:hover { color: var(--gold); padding-left: 0.7rem; }

.sheet__phone {
  margin-top: 1rem;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--muted);
}

/* ---------- общие элементы ---------- */
.kicker {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 1.2rem;
}

.kicker--center { text-align: center; }

.section-h {
  font-weight: 600;
  font-size: clamp(1.9rem, 4.4vw, 3.2rem);
  line-height: 1.16;
  text-align: center;
  margin-bottom: 1.2rem;
}

.section-h i { color: var(--gold); }

.section-h--light { color: #eee7d8; }
.section-h--left { text-align: left; color: #eee7d8; }

.section-sub {
  max-width: 46rem;
  margin: 0 auto clamp(2.6rem, 6vh, 4.2rem);
  text-align: center;
  color: var(--muted);
}

section { padding: clamp(4.5rem, 10vh, 7.5rem) clamp(1.25rem, 5vw, 3rem); }

.lnk {
  border-bottom: 1px solid var(--line);
  transition: color 0.3s ease, border-color 0.3s ease;
}

.lnk:hover, .lnk:focus-visible { color: var(--gold); border-color: var(--gold); }

/* появление: мягкий подъём */
[data-reveal] {
  opacity: 0;
  transform: translateY(34px) scale(0.988);
  transition: opacity 0.85s ease, transform 0.85s cubic-bezier(0.2, 0.8, 0.3, 1);
}

[data-reveal].in { opacity: 1; transform: none; }

/* ---------- HERO ---------- */
.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  padding-top: 7.5rem;
  overflow: hidden;
  isolation: isolate;
}

.hero__sky {
  position: absolute;
  inset: 0;
  z-index: -3;
  background: var(--sky);
}

.hero__bugs {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}

.hero__pines {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  height: 300px;
  pointer-events: none;
}

.pines {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--pine-far);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 120'%3E%3Cpath d='M0 120 L18 58 L36 120 L58 34 L80 120 L98 66 L118 120 L142 26 L164 120 L182 62 L202 120 L224 42 L244 120 L264 70 L284 120 L306 32 L326 120 L344 58 L362 120 L382 48 L400 120 Z' fill='%23000'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 120'%3E%3Cpath d='M0 120 L18 58 L36 120 L58 34 L80 120 L98 66 L118 120 L142 26 L164 120 L182 62 L202 120 L224 42 L244 120 L264 70 L284 120 L306 32 L326 120 L344 58 L362 120 L382 48 L400 120 Z' fill='%23000'/%3E%3C/svg%3E");
  -webkit-mask-repeat: repeat-x;
  mask-repeat: repeat-x;
  -webkit-mask-position: bottom;
  mask-position: bottom;
  -webkit-mask-size: var(--ms, 500px) 100%;
  mask-size: var(--ms, 500px) 100%;
  will-change: transform;
}

.pines--far { height: 130px; background: var(--pine-far); --ms: 460px; }
.pines--mid { height: 200px; background: var(--pine-mid); --ms: 620px; }
.pines--near { height: 270px; background: var(--pine-near); --ms: 780px; }

.hero__inner {
  position: relative;
  z-index: 3;
  width: min(58rem, 100%);
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.6rem;
}

.hero__title {
  font-weight: 600;
  font-size: clamp(2.25rem, 6.6vw, 4.8rem);
  line-height: 1.08;
  margin: 0;
}

.hero__title i { font-style: italic; color: var(--gold); }

.hero__arch {
  width: min(640px, 100%);
  aspect-ratio: 4 / 3;
  border-radius: 999px 999px 36px 36px;
  box-shadow: 0 34px 80px -30px var(--shadow), 0 0 0 8px rgba(246, 241, 228, 0.35);
  animation: sway 11s ease-in-out infinite;
}

html[data-mode="night"] .hero__arch {
  box-shadow: 0 34px 80px -30px rgba(0, 0, 0, 0.6), 0 0 60px -18px var(--glow);
}

.hero__arch img { border-radius: inherit; }

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

.hero__lead {
  max-width: 34rem;
  color: var(--muted);
}

.hero__chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.6rem;
}

.hero__chips span {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--muted);
  background: var(--pill-bg);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 0.45rem 1rem;
}

/* ---------- кроны-переходы ---------- */
.canopy {
  margin: -1px 0;
  line-height: 0;
  position: relative;
  z-index: 4;
}

.canopy svg {
  display: block;
  width: 100%;
  height: clamp(44px, 6vw, 82px);
}

.canopy--into-cream svg { fill: var(--bg); }
.canopy--into-deep svg { fill: #1d3025; }
.canopy--into-night svg { fill: #16241c; }

/* ---------- 01 · о лесе ---------- */
.about { background: var(--bg); }

.about__grid {
  max-width: 72rem;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: clamp(2.5rem, 6vw, 5.5rem);
  align-items: center;
}

.about__h {
  font-weight: 600;
  font-size: clamp(1.8rem, 4vw, 2.9rem);
  line-height: 1.2;
  margin-bottom: 1.4rem;
}

.about__h i { font-style: italic; color: var(--gold); }

.about__text p { color: var(--muted); margin-bottom: 1.1rem; }

.about__facts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.1rem;
}

.about__facts li {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 1.4rem 1.2rem 1.2rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.3, 1), box-shadow 0.4s ease,
    background-color 0.65s ease;
}

.about__facts li:hover {
  transform: translateY(-5px);
  box-shadow: 0 18px 40px -18px var(--glow);
}

.about__facts b {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 2.4rem;
  line-height: 1;
  color: var(--accent);
}

.about__facts span { font-size: 0.82rem; color: var(--muted); }

/* ---------- 02 · шатры ---------- */
.tents { background: var(--bg); padding-top: 0; }

.tents__grid {
  max-width: 78rem;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1.4rem;
}

.tent {
  grid-column: span 2;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 1.1rem 1.1rem 1.5rem;
  display: flex;
  flex-direction: column;
  box-shadow: 0 16px 36px -22px var(--shadow);
  transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.3, 1), box-shadow 0.45s ease,
    background-color 0.65s ease, border-color 0.65s ease;
}

.tent:nth-child(4), .tent:nth-child(5) { grid-column: span 3; }

.tent:hover {
  transform: translateY(-7px);
  box-shadow: 0 30px 70px -26px var(--glow), 0 0 0 1px var(--gold);
}

html[data-mode="night"] .tent { box-shadow: 0 16px 36px -22px rgba(0, 0, 0, 0.6), 0 0 44px -14px var(--glow); }

.tent__photo {
  border-radius: 999px 999px 22px 22px;
  margin-bottom: 1.1rem;
}

.tent:hover .tent__photo img { transform: scale(1.05); }

.tent__name {
  font-weight: 600;
  font-size: 1.45rem;
  margin-bottom: 0.4rem;
  padding-left: 0.3rem;
}

.tent__meta {
  font-size: 0.86rem;
  color: var(--muted);
  margin-bottom: 1rem;
  padding-left: 0.3rem;
}

.tent__price {
  margin-top: auto;
  padding: 0.9rem 0.3rem 0;
  border-top: 1px dashed var(--line);
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.8rem;
}

.tent__price span {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.15rem;
  color: var(--gold);
}

.tent__price em {
  font-style: normal;
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  color: var(--muted);
  text-align: right;
}

/* ---------- 03 · распорядок (вечно тёмная просека) ---------- */
.day {
  background: #1d3025;
  color: #eee7d8;
}

.day .kicker { color: #9dbf97; }

.day__line {
  max-width: 46rem;
  margin: clamp(2rem, 5vh, 3.5rem) auto 0;
}

.day__line li {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 1.6rem;
  padding: 1.5rem 0;
  border-bottom: 1px solid rgba(238, 231, 216, 0.12);
}

.day__line li:last-child { border-bottom: 0; }

.day__time {
  align-self: start;
  font-weight: 600;
  font-size: 0.86rem;
  letter-spacing: 0.08em;
  text-align: center;
  color: #e0b64f;
  border: 1px solid rgba(224, 182, 79, 0.4);
  border-radius: 999px;
  padding: 0.4rem 0;
  background: rgba(224, 182, 79, 0.08);
}

.day__line h3 {
  font-weight: 600;
  font-size: 1.25rem;
  margin-bottom: 0.4rem;
}

.day__line p {
  font-size: 0.9rem;
  color: rgba(238, 231, 216, 0.68);
  max-width: 44ch;
}

/* ---------- 04 · ночь ---------- */
.night {
  background:
    radial-gradient(70% 90% at 85% 10%, rgba(224, 182, 79, 0.09), transparent 55%),
    #16241c;
  color: #eee7d8;
}

.night .kicker { color: #e0b64f; }

.night__grid {
  max-width: 72rem;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: clamp(2.5rem, 6vw, 5rem);
  align-items: center;
}

.night__text p { color: rgba(238, 231, 216, 0.7); margin-bottom: 1.6rem; }

.night__switch {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  border: 1px solid rgba(224, 182, 79, 0.5);
  border-radius: 999px;
  background: rgba(224, 182, 79, 0.1);
  color: #e0b64f;
  font-weight: 600;
  font-size: 0.86rem;
  padding: 0.85rem 1.5rem;
  cursor: pointer;
  transition: background 0.4s ease, transform 0.4s ease, box-shadow 0.4s ease;
}

.night__switch:hover {
  background: rgba(224, 182, 79, 0.2);
  transform: translateY(-2px);
  box-shadow: 0 14px 34px -14px var(--glow);
}

.night__switch-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #e0b64f;
  box-shadow: 0 0 14px 3px rgba(224, 182, 79, 0.7);
  animation: blink 2.6s ease-in-out infinite;
}

@keyframes blink {
  0%, 100% { opacity: 1; }
  45% { opacity: 0.25; }
}

.night__frame {
  position: relative;
  border-radius: var(--r-lg);
  box-shadow: 0 30px 80px -30px rgba(0, 0, 0, 0.7);
}

.night__bugs {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

/* ---------- 05 · услуги ---------- */
.services { background: var(--bg); }

.services__cols {
  max-width: 62rem;
  margin: clamp(2rem, 5vh, 3.5rem) auto 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: clamp(2rem, 5vw, 4.5rem);
  row-gap: 0.4rem;
}

.services__list li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1.2rem;
  padding: 1rem 0.6rem;
  border-bottom: 1px dashed var(--line);
  border-radius: 12px;
  transition: background 0.3s ease, padding-left 0.3s ease;
}

.services__list li:hover {
  background: var(--surface);
  padding-left: 1.1rem;
}

.services__list span { font-size: 0.94rem; }

.services__list b {
  flex: none;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1rem;
  color: var(--gold);
}

/* ---------- 06 · гости ---------- */
.reviews { background: var(--bg); padding-top: 0; }

.reviews__grid {
  max-width: 74rem;
  margin: clamp(2rem, 5vh, 3.5rem) auto 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.4rem;
}

.reviews blockquote {
  margin: 0;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-lg) var(--r-lg) var(--r-lg) 8px;
  padding: 2.4rem 1.6rem 1.6rem;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.3, 1), box-shadow 0.4s ease,
    background-color 0.65s ease, border-color 0.65s ease;
}

.reviews blockquote::before {
  content: "«";
  position: absolute;
  top: 0.1rem;
  left: 1.3rem;
  font-family: var(--font-display);
  font-size: 4.4rem;
  line-height: 1;
  color: var(--gold);
  opacity: 0.85;
}

.reviews blockquote:hover {
  transform: translateY(-6px);
  box-shadow: 0 26px 60px -26px var(--glow);
}

.reviews p { font-size: 0.94rem; color: var(--muted); }

.reviews footer { display: flex; flex-direction: column; gap: 0.15rem; margin-top: auto; }

.reviews footer b { font-size: 0.94rem; }

.reviews footer span {
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}

/* ---------- 07 · контакты ---------- */
.contacts { background: var(--bg); text-align: center; }

.contacts__h {
  font-weight: 600;
  font-size: clamp(2.2rem, 5.4vw, 3.8rem);
  margin-bottom: clamp(2.4rem, 6vh, 4rem);
}

.contacts__h i { font-style: italic; color: var(--gold); }

.contacts__cards {
  max-width: 66rem;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.4rem;
  text-align: left;
}

.contacts__cards > div {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 1.8rem 1.6rem;
}

.contacts__cards h3 {
  font-weight: 600;
  font-size: 1.05rem;
  margin-bottom: 0.8rem;
  color: var(--accent);
}

.contacts__cards p { font-size: 0.92rem; }

.contacts__cards .muted { color: var(--muted); font-size: 0.8rem; letter-spacing: 0.06em; }

/* ---------- подвал ---------- */
.foot {
  background: #14231a;
  color: #eee7d8;
  padding: 3.5rem clamp(1.25rem, 5vw, 3rem) 2.5rem;
  border-radius: 44px 44px 0 0;
}

.foot__inner {
  max-width: 72rem;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.4rem 2.5rem;
}

.foot__mark {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.3rem;
}

.foot__nav { display: flex; flex-wrap: wrap; gap: 1.4rem; }

.foot__nav a {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(238, 231, 216, 0.6);
  transition: color 0.3s ease;
}

.foot__nav a:hover { color: #e0b64f; }

.foot__fine {
  width: 100%;
  padding-top: 1.6rem;
  border-top: 1px solid rgba(238, 231, 216, 0.12);
  font-size: 0.76rem;
  color: rgba(238, 231, 216, 0.5);
}

/* ---------- адаптив ---------- */
@media (max-width: 1060px) {
  .tent { grid-column: span 3; }
  .tent:nth-child(5) { grid-column: span 6; }
  .tent:nth-child(5) .tent__photo { aspect-ratio: 16 / 7; border-radius: 999px; }
}

@media (max-width: 900px) {
  .pill__nav, .pill__cta { display: none; }
  .pill__burger { display: flex; }
  .pill { padding-right: 0.6rem; }
  .about__grid,
  .night__grid { grid-template-columns: minmax(0, 1fr); }
  .services__cols,
  .reviews__grid,
  .contacts__cards { grid-template-columns: 1fr; }
  .tent:nth-child(4) { grid-column: span 6; }
}

@media (max-width: 620px) {
  .tent { grid-column: span 6; }
  .day__line li { grid-template-columns: 76px minmax(0, 1fr); gap: 1rem; }
  .hero { padding-top: 6.5rem; }
  .toggle { width: 76px; }
  html[data-mode="night"] .toggle__knob { transform: translateX(36px); }
  .about__facts { grid-template-columns: 1fr 1fr; }
  .foot__inner { flex-direction: column; align-items: flex-start; }
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  [data-reveal] { opacity: 1; transform: none; }
  .pines { transform: none !important; }
}
