/* ─── RESET & ROOT ─── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --ivory:    #F5F0E8;
  --cream:    #EDE5D8;
  --cream-md: #DED3C0;
  --gold:     #C2A26A;
  --brown:    #7A6449;
  --text:     #4A3A2A;
  --muted:    #9B8A76;
  --dark:     #231B12;
  --dark-warm:#2E2218;
}

html { scroll-behavior: smooth; }
body {
  background: var(--ivory);
  color: var(--text);
  font-family: 'Jost', sans-serif;
  font-weight: 300;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
::-webkit-scrollbar { width: 3px; }
::-webkit-scrollbar-track { background: var(--ivory); }
::-webkit-scrollbar-thumb { background: var(--cream-md); border-radius: 2px; }

/* ─── REVEAL ─── */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity 0.85s ease, transform 0.85s ease; }
.reveal.in { opacity: 1; transform: none; }
.d1 { transition-delay: 0.12s; }
.d2 { transition-delay: 0.24s; }
.d3 { transition-delay: 0.36s; }
.d4 { transition-delay: 0.48s; }

/* ─── KEYFRAMES ─── */
@keyframes heroExpand {
  0%   { letter-spacing: -0.04em; opacity: 0; }
  25%  { opacity: 1; }
  100% { letter-spacing: 0.28em;  opacity: 1; }
}
@keyframes fadeIn  { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeUp  { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes growDown { from { height: 0; } to { height: 64px; } }
@keyframes marqueeRun { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes scrollPulse {
  0%, 100% { opacity: 0.35; height: 44px; }
  50%       { opacity: 1;    height: 56px; }
}

/* ─── NAV ─── */
.nav {
  position: fixed; top: 0; left: 0; right: 0;
  z-index: 300;
  padding: 28px 52px;
  display: flex; justify-content: space-between; align-items: center;
  opacity: 0;
  animation: fadeIn 0.8s ease 2.8s forwards;
  transition: background 0.4s, border-color 0.4s, backdrop-filter 0.4s;
}
.nav-logo { display: flex; align-items: center; gap: 13px; text-decoration: none; }
.nav-logo svg { width: 26px; height: 26px; color: var(--brown); flex-shrink: 0; }
.nav-logo-text {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 400; font-size: 13px;
  letter-spacing: 0.22em; color: var(--brown); text-transform: uppercase;
}
.nav-loc { font-size: 10.5px; letter-spacing: 0.32em; color: var(--muted); text-transform: uppercase; }

/* ─── HERO ─── */
.hero {
  position: relative;
  height: 100svh; min-height: 640px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  background-color: #EDE5D8;
  background-image: var(--img-007_KD_8W4A2727);
  background-size: cover;
  background-position: 65% center;
  overflow: hidden;
}
.hero::before {
  content: ''; position: absolute; inset: 0;
  background: rgba(245, 240, 232, 0.55);
  z-index: 1; pointer-events: none;
}
.hero::after {
  content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(circle at 75% 25%, rgba(194,162,106,0.12) 0%, transparent 48%),
    radial-gradient(circle at 22% 78%, rgba(194,162,106,0.07) 0%, transparent 38%);
  z-index: 1; pointer-events: none;
}
.hero-inner {
  text-align: center; display: flex; flex-direction: column; align-items: center;
  position: relative; z-index: 2;
}
.hero-mark {
  width: 50px; height: 50px; color: var(--brown);
  opacity: 0; animation: fadeUp 0.9s ease 0.3s forwards; margin-bottom: 34px;
}
.hero-title {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300; font-size: clamp(38px, 6.5vw, 88px);
  color: var(--brown); text-transform: uppercase;
  line-height: 1; letter-spacing: -0.04em;
  opacity: 0; animation: heroExpand 2s cubic-bezier(0.22, 0.1, 0.2, 1) 0.7s forwards;
}
.hero-divider {
  width: 1px; height: 0;
  background: linear-gradient(to bottom, var(--gold), transparent);
  margin: 38px 0; opacity: 0;
  animation: fadeIn 0.4s ease 2s forwards, growDown 1s ease 2s forwards;
}
.hero-tagline {
  font-size: clamp(9.5px, 1.1vw, 12.5px); letter-spacing: 0.38em;
  color: var(--muted); text-transform: uppercase;
  opacity: 0; animation: fadeIn 1s ease 2.2s forwards;
}
.hero-usovo {
  margin-top: 18px; font-size: 10.5px; letter-spacing: 0.44em;
  color: var(--gold); text-transform: uppercase;
  opacity: 0; animation: fadeIn 1s ease 2.4s forwards;
}
.hero-scroll {
  position: absolute; bottom: 38px; left: 50%; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  cursor: pointer; opacity: 0; animation: fadeIn 1s ease 3.2s forwards; z-index: 2;
}
.hero-scroll-line { width: 1px; background: var(--gold); animation: scrollPulse 2.2s ease-in-out 3.2s infinite; height: 44px; }
.hero-scroll-txt { font-size: 9.5px; letter-spacing: 0.38em; color: var(--muted); text-transform: uppercase; }

/* ─── MARQUEE ─── */
.marquee-strip {
  background: var(--cream);
  border-top: 1px solid var(--cream-md); border-bottom: 1px solid var(--cream-md);
  overflow: hidden; padding: 18px 0;
}
.marquee-track { display: flex; width: max-content; animation: marqueeRun 36s linear infinite; }
.marquee-track:hover { animation-play-state: paused; }
.marquee-item { display: flex; align-items: center; gap: 40px; padding: 0 40px; white-space: nowrap; flex-shrink: 0; }
.marquee-phrase { font-size: 11px; letter-spacing: 0.32em; color: var(--muted); text-transform: uppercase; }
.marquee-dot { width: 3px; height: 3px; background: var(--gold); border-radius: 50%; opacity: 0.6; flex-shrink: 0; }

/* ─── CONCEPT ─── */
.concept {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 80vh;
  overflow: hidden;
}
.concept-photo {
  position: relative;
  overflow: hidden;
  min-height: 560px;
}
.concept-photo img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 30%;
  display: block;
  transition: transform 0.8s ease;
}
.concept-photo:hover img { transform: scale(1.04); }

.concept-body {
  padding: 90px 64px;
  display: flex; flex-direction: column; justify-content: center;
  gap: 22px;
  background: var(--ivory);
}
.label {
  display: block; font-size: 10.5px; letter-spacing: 0.36em;
  color: var(--gold); text-transform: uppercase; margin-bottom: 8px;
}
.concept-h {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300; font-size: clamp(38px, 4.5vw, 64px);
  line-height: 1.06; color: var(--dark); letter-spacing: 0.02em;
}
.concept-h em { font-style: italic; color: var(--brown); }
.concept-p { font-size: 16px; line-height: 1.92; color: var(--muted); font-weight: 300; }
.concept-footer {
  display: flex; align-items: center; gap: 22px;
  padding-top: 28px; margin-top: 6px;
  border-top: 1px solid var(--cream-md);
}
.cf-place { font-size: 10.5px; letter-spacing: 0.26em; text-transform: uppercase; color: var(--brown); }
.cf-sep { width: 44px; height: 1px; background: var(--gold); flex-shrink: 0; }
.cf-style { font-family: 'Cormorant Garamond', serif; font-size: 15px; font-style: italic; color: var(--muted); }

/* ─── PHILOSOPHY PANELS ─── */
.philosophy { display: grid; grid-template-columns: repeat(3, 1fr); overflow: hidden; }

.phil-card {
  position: relative; height: 65vh; min-height: 460px;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 52px 44px; overflow: hidden;
  border-right: 1px solid rgba(161,143,118,0.2);
}
.phil-card:last-child { border-right: none; }

/* фото + fallback цвет */
.phil-card:nth-child(1) {
  background-color: #C8C0B0;
  background-image: var(--img-009_KD_8W4A2825);
  background-size: cover; background-position: center 20%;
}
.phil-card:nth-child(2) {
  background-color: #D5CFC4;
  background-image: var(--img-004_01_KD_8W4A3017);
  background-size: cover; background-position: 40% center;
}
.phil-card:nth-child(3) {
  background-color: #C4BDB0;
  background-image: var(--img-002_KD_8W4A3104);
  background-size: cover; background-position: 35% center;
}

/* кремовый оверлей — текст читается, фото видно */
.phil-card::before {
  content: ''; position: absolute; inset: 0;
  background: rgba(237, 229, 216, 0.50);
  z-index: 1; pointer-events: none;
  transition: background 0.5s;
}
.phil-card:hover::before { background: rgba(237, 229, 216, 0.36); }

.phil-brand {
  font-size: 9.5px; letter-spacing: 0.38em; color: var(--muted);
  text-transform: uppercase; margin-bottom: 14px; position: relative; z-index: 2;
}
.phil-rule { width: 38px; height: 1px; background: var(--gold); margin-bottom: 18px; position: relative; z-index: 2; }
.phil-h {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300; font-size: clamp(28px, 2.8vw, 44px);
  color: var(--dark); line-height: 1.15; position: relative; z-index: 2;
}

/* ─── INTERLUDE (full-bleed между философией и цифрами) ─── */
.interlude {
  position: relative;
  height: 78vh; min-height: 500px;
  overflow: hidden;
  display: flex; align-items: center;
}
.interlude-bg {
  position: absolute; inset: 0;
  background-color: #1A1612;
  background-image: var(--img-001_KD_8W4A3118);
  background-size: cover; background-position: center 35%;
  transform: scale(1.04);
  transition: transform 8s ease;
}
.interlude:hover .interlude-bg { transform: scale(1.0); }
.interlude-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(105deg, rgba(22,15,8,0.72) 0%, rgba(22,15,8,0.28) 65%, transparent 100%);
}
.interlude-content {
  position: relative; z-index: 2;
  padding: 0 72px;
  max-width: 680px;
}
.interlude-label {
  display: block; font-size: 10.5px; letter-spacing: 0.38em;
  color: var(--gold); text-transform: uppercase; margin-bottom: 28px;
}
.interlude-q {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300; font-size: clamp(34px, 4.8vw, 64px);
  color: #F2E8DA; line-height: 1.15; margin-bottom: 36px;
}
.interlude-rule { width: 52px; height: 1px; background: var(--gold); }

/* ─── STATS ─── */
.stats { padding: 130px 60px; background: var(--ivory); }
.stats-head { text-align: center; margin-bottom: 90px; }
.stats-title {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300; font-size: clamp(32px, 4vw, 58px);
  letter-spacing: 0.16em; color: var(--dark); text-transform: uppercase;
}
.stats-sub {
  display: block; font-size: 10.5px; letter-spacing: 0.4em; color: var(--gold);
  margin-top: 14px; font-family: 'Jost', sans-serif; font-weight: 400; text-transform: uppercase;
}
.stats-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  grid-template-rows: auto auto;
  max-width: 1200px; margin: 0 auto;
  border-top: 1px solid var(--cream-md);
  border-left: 1px solid var(--cream-md);
}
.stat { border-right: 1px solid var(--cream-md); border-bottom: 1px solid var(--cream-md); padding: 54px 44px; }
.stat-a { grid-column: 1; grid-row: 1; }
.stat-b { grid-column: 2; grid-row: 1; }
.stat-c { grid-column: 3; grid-row: 1; }
.stat-d { grid-column: 1 / 2; grid-row: 2; }
.stat-e { grid-column: 2 / 4; grid-row: 2; }
.stat-num {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300; font-size: clamp(58px, 7.5vw, 108px);
  color: var(--dark); line-height: 0.88; letter-spacing: -0.02em;
}
.stat-a .stat-num { font-size: clamp(72px, 9vw, 130px); }
.stat-sup { font-size: 0.3em; vertical-align: top; margin-top: 0.2em; color: var(--gold); letter-spacing: 0.08em; }
.stat-lbl { margin-top: 18px; font-size: 11px; letter-spacing: 0.24em; color: var(--muted); text-transform: uppercase; line-height: 1.7; }

/* ─── AMENITIES ─── */
.amenities { background: var(--cream); padding: 130px 60px; }
.amenities-inner { max-width: 1200px; margin: 0 auto; }
.amenities-top {
  display: grid; grid-template-columns: 1fr 1fr; gap: 80px;
  align-items: end; padding-bottom: 60px; margin-bottom: 60px;
  border-bottom: 1px solid var(--cream-md);
}
.amenities-h {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300; font-size: clamp(36px, 4.5vw, 62px);
  color: var(--dark); line-height: 1.1; margin-top: 22px;
}
.amenities-desc { font-size: 16px; line-height: 1.9; color: var(--muted); align-self: end; }
.amenities-list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
.am-col { padding: 0 36px 0 0; border-right: 1px solid var(--cream-md); margin-right: -1px; }
.am-col:last-child { border-right: none; }
.am-col:first-child { padding-left: 0; }
.am-title {
  font-size: 10px; letter-spacing: 0.34em; color: var(--brown);
  text-transform: uppercase; display: block; margin-bottom: 22px;
  padding-bottom: 14px; border-bottom: 1px solid rgba(194,162,106,0.3);
}
.am-col ul { list-style: none; }
.am-col li {
  font-family: 'Cormorant Garamond', serif; font-size: 21px; font-weight: 400;
  color: var(--dark); padding: 9px 0; border-bottom: 1px solid rgba(222,211,192,0.6); line-height: 1.3;
}
.am-col li:last-child { border-bottom: none; }

/* ─── GALLERY ─── */
.gallery { overflow: hidden; line-height: 0; }
.gallery-grid {
  display: grid;
  grid-template-columns: 1.25fr 1fr 1fr;
  grid-template-rows: 72vh;
  gap: 3px; min-height: 500px;
}
.g-img {
  position: relative; overflow: hidden;
  background-color: var(--cream-md);
  background-size: cover; background-position: center;
  cursor: zoom-in;
}
.g-inner {
  position: absolute; inset: 0;
  background: inherit; background-size: cover; background-position: center;
  transition: transform 0.8s cubic-bezier(0.25, 0.1, 0.25, 1);
}
.g-img:hover .g-inner { transform: scale(1.06); }
.g-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(18,12,6,0.55) 0%, transparent 55%);
  z-index: 1; pointer-events: none;
  opacity: 0; transition: opacity 0.5s;
}
.g-img:hover .g-scrim { opacity: 1; }
.g-label {
  position: absolute; bottom: 28px; left: 28px; z-index: 2;
  opacity: 0; transform: translateY(8px);
  transition: opacity 0.4s, transform 0.4s;
  line-height: 1.5;
}
.g-img:hover .g-label { opacity: 1; transform: none; }
.g-label-name { font-size: 9px; letter-spacing: 0.36em; color: rgba(242,232,218,0.65); text-transform: uppercase; display: block; }
.g-label-desc { font-family: 'Cormorant Garamond', serif; font-size: 22px; font-weight: 300; color: #F2E8DA; display: block; margin-top: 4px; }

/* ─── MANIFESTO ─── */
.manifesto {
  padding: 130px 60px;
  text-align: center;
  position: relative; overflow: hidden;
  background-color: var(--dark-warm);
  background-image: var(--img-008_03_KD_8W4A3463);
  background-size: cover; background-position: center;
}
.manifesto::before {
  content: ''; position: absolute; inset: 0;
  background: rgba(30, 20, 12, 0.88);
  z-index: 1; pointer-events: none;
}
.manifesto::after {
  content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(circle at 18% 48%, rgba(194,162,106,0.10) 0%, transparent 48%),
    radial-gradient(circle at 82% 52%, rgba(194,162,106,0.07) 0%, transparent 40%);
  z-index: 1; pointer-events: none;
}
.manifesto-inner { position: relative; z-index: 2; max-width: 860px; margin: 0 auto; }
.manifesto-mark { color: var(--gold); opacity: 0.65; margin-bottom: 50px; }
.manifesto-mark svg { width: 42px; height: 42px; }
.manifesto-q {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300; font-style: italic;
  font-size: clamp(30px, 4.5vw, 58px);
  color: #F2E8DA; line-height: 1.32; margin-bottom: 64px;
}
.manifesto-tags { display: flex; justify-content: center; align-items: center; gap: 20px; flex-wrap: wrap; }
.m-tag { font-size: 10.5px; letter-spacing: 0.34em; color: var(--gold); text-transform: uppercase; }
.m-sep { width: 4px; height: 4px; background: var(--gold); opacity: 0.4; border-radius: 50%; flex-shrink: 0; }

/* ─── FOOTER ─── */
footer { background: var(--dark); padding: 96px 60px 52px; }
.footer-inner { max-width: 1200px; margin: 0 auto; }
.footer-top {
  display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 60px;
  padding-bottom: 56px; margin-bottom: 40px;
  border-bottom: 1px solid rgba(194,162,106,0.18);
}
.f-brand-mark { margin-bottom: 22px; }
.f-brand-mark svg { width: 34px; height: 34px; color: var(--gold); }
.f-brand-name { font-family: 'Cormorant Garamond', serif; font-weight: 300; font-size: 26px; letter-spacing: 0.2em; color: #F2E8DA; text-transform: uppercase; display: block; }
.f-brand-type { font-size: 10.5px; letter-spacing: 0.3em; color: rgba(242,232,218,0.45); text-transform: uppercase; display: block; margin-top: 6px; }
.f-tagline { font-family: 'Cormorant Garamond', serif; font-size: 19px; font-style: italic; color: var(--gold); margin-top: 28px; line-height: 1.4; }
.f-col h4 { font-size: 10.5px; letter-spacing: 0.32em; color: var(--gold); text-transform: uppercase; margin-bottom: 22px; padding-bottom: 14px; border-bottom: 1px solid rgba(194,162,106,0.2); }
.f-col p, .f-col address { font-size: 15px; line-height: 1.88; color: rgba(242,232,218,0.6); font-style: normal; font-weight: 300; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; }
.footer-bottom span { font-size: 11.5px; color: rgba(242,232,218,0.28); letter-spacing: 0.08em; }

/* ─── RESPONSIVE ─── */
@media (max-width: 1080px) {
  .concept { grid-template-columns: 1fr; }
  .concept-photo { min-height: 55vw; max-height: 70vh; }
  .concept-body { padding: 64px 44px; }
  .amenities-top { grid-template-columns: 1fr; gap: 40px; }
  .philosophy { grid-template-columns: 1fr; }
  .phil-card { height: 380px; min-height: 380px; }
  .stats-grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto auto; }
  .stat-a { grid-column: 1 / -1; grid-row: 1; }
  .stat-b { grid-column: 1; grid-row: 2; }
  .stat-c { grid-column: 2; grid-row: 2; }
  .stat-d { grid-column: 1; grid-row: 3; }
  .stat-e { grid-column: 2; grid-row: 3; }
  .amenities-list { grid-template-columns: 1fr 1fr; }
  .am-col:nth-child(2) { border-right: none; padding-right: 0; }
  .am-col:nth-child(3) { border-right: 1px solid var(--cream-md); }
  .am-col:nth-child(1), .am-col:nth-child(2) { margin-bottom: 40px; padding-bottom: 40px; border-bottom: 1px solid var(--cream-md); }
  .gallery-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 50vw 50vw; }
  .gallery-grid .g-img:first-child { grid-column: 1 / -1; }
  .footer-top { grid-template-columns: 1fr; gap: 40px; }
  .interlude-content { padding: 0 44px; }
}

@media (max-width: 680px) {
  .nav { padding: 20px 24px; }
  .nav-loc { display: none; }
  .concept-body, .stats, .amenities, .manifesto, footer { padding-left: 28px; padding-right: 28px; }
  .stats, .amenities, .manifesto, footer { padding-top: 80px; padding-bottom: 80px; }
  .concept-body { padding-top: 52px; padding-bottom: 52px; }
  .stats-grid { grid-template-columns: 1fr; }
  .stat-a, .stat-b, .stat-c, .stat-d, .stat-e { grid-column: 1; grid-row: auto; }
  .amenities-list { grid-template-columns: 1fr; }
  .am-col { border-right: none; padding-right: 0; margin-bottom: 28px; }
  .am-col:nth-child(1), .am-col:nth-child(2) { border-bottom: 1px solid var(--cream-md); padding-bottom: 28px; }
  .gallery-grid { grid-template-columns: 1fr; grid-template-rows: 80vw 80vw 80vw; }
  .gallery-grid .g-img:first-child { grid-column: 1; }
  .manifesto-q { font-size: clamp(24px, 6vw, 36px); }
  .footer-bottom { flex-direction: column; gap: 12px; text-align: center; }
  .interlude { height: 65vw; min-height: 340px; }
  .interlude-content { padding: 0 28px; }
  .interlude-q { font-size: clamp(26px, 6vw, 40px); }
}

/* ════════════════════════════════════════
   АНИМАЦИИ
════════════════════════════════════════ */
:root { --ease-out: cubic-bezier(.16,1,.3,1); --ease-io: cubic-bezier(.77,0,.18,1); }

/* прогресс скролла */
.scroll-progress {
  position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 400;
  background: linear-gradient(90deg, var(--cream-md), var(--gold));
  transform-origin: 0 50%; transform: scaleX(0); pointer-events: none;
}

/* прорисовка логотипа-квадратов */
@keyframes draw { to { stroke-dashoffset: 0; } }
.hero-mark rect,
.manifesto-mark rect,
.f-brand-mark rect { stroke-dasharray: 1; stroke-dashoffset: 1; }
.hero-mark rect { animation: draw 1.6s var(--ease-io) .35s forwards; }
.hero-mark rect + rect { animation-delay: .75s; }
.manifesto-mark.in rect,
.f-brand-mark.in rect { animation: draw 1.6s var(--ease-io) .2s forwards; }
.manifesto-mark.in rect + rect,
.f-brand-mark.in rect + rect { animation-delay: .55s; }

/* HERO: медленный наезд + параллакс (translate ставит JS) */
.hero-bg {
  position: absolute; inset: -6% 0; z-index: 0;
  background: inherit; background-size: cover;
  scale: 1.14;
  animation: heroZoom 9s cubic-bezier(.2,.6,.2,1) forwards;
  will-change: transform;
}
@keyframes heroZoom { to { scale: 1; } }
.hero-inner { will-change: transform, opacity; }

/* строки заголовков выезжают снизу */
.ln { display: block; overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; }
.ln > * { display: inline-block; transform: translateY(105%); transition: transform 1.1s var(--ease-out); }
.in .ln > *, .ln.in > * { transform: none; }
.in .ln:nth-child(2) > * { transition-delay: .12s; }
.in .ln:nth-child(3) > * { transition-delay: .24s; }

/* CONCEPT: фото открывается шторкой */
.concept-photo.reveal { opacity: 1; transform: none; }
.concept-photo img {
  clip-path: inset(0 100% 0 0);
  transform: scale(1.22);
  transition: clip-path 1.5s var(--ease-io), transform 2.2s var(--ease-out);
}
.concept-photo.in img { clip-path: inset(0 0 0 0); transform: scale(1); }
.concept-photo.in:hover img { transform: scale(1.04); }
.concept-body .ln > * { transition-delay: .35s; }
.concept-body.in .ln:nth-child(2) > * { transition-delay: .47s; }
.concept-body.in .ln:nth-child(3) > * { transition-delay: .59s; }
.cf-sep { width: 0; transition: width 1.2s var(--ease-out) .9s; }
.concept-body.in .cf-sep { width: 44px; }

/* PHILOSOPHY: фон отъезжает, линия растёт */
.phil-bg {
  position: absolute; inset: 0; z-index: 0;
  background: inherit; background-size: cover;
  transform: scale(1.2);
  transition: transform 2.4s var(--ease-out);
}
.phil-card.in .phil-bg { transform: scale(1); }
.phil-card.in:hover .phil-bg { transform: scale(1.05); transition-duration: 1.4s; }
.phil-rule { width: 0; transition: width 1s var(--ease-out) .6s; }
.phil-card.in .phil-rule { width: 38px; }
.phil-card.in:hover .phil-rule { width: 96px; transition-delay: 0s; }
.phil-h { transition: transform .6s var(--ease-out); }
.phil-card:hover .phil-h { transform: translateY(-6px); }

/* INTERLUDE: параллакс фона (JS), без зума по наведению */
.interlude-bg { inset: -14% 0; transform: none; transition: none; will-change: transform; }
.interlude:hover .interlude-bg { transform: none; }
.interlude-content .ln > * { transition-delay: .25s; }
.interlude-content.in .ln:nth-child(2) > * { transition-delay: .4s; }
.interlude-rule { width: 0; transition: width 1.2s var(--ease-out) .8s; }
.interlude-content.in .interlude-rule { width: 52px; }

/* STATS: заголовок «раздвигается» как в hero */
.stats-head.in .stats-title { animation: statsExpand 1.8s var(--ease-out) both; }
@keyframes statsExpand { from { letter-spacing: -.02em; } to { letter-spacing: .16em; } }

/* AMENITIES: линия под заголовком колонки + пункты по очереди */
.am-title { position: relative; border-bottom-color: transparent; }
.am-title::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px;
  background: var(--gold); opacity: .55;
  transform: scaleX(0); transform-origin: 0 50%;
  transition: transform 1.1s var(--ease-out) .3s;
}
.am-col.in .am-title::after { transform: scaleX(1); }
.am-col li {
  opacity: 0; transform: translateX(-16px);
  transition: opacity .6s ease, transform .8s var(--ease-out), color .3s, padding-left .4s var(--ease-out);
  position: relative;
}
.am-col.in li { opacity: 1; transform: none; }
.am-col.in li:nth-child(1) { transition-delay: .35s, .35s, 0s, 0s; }
.am-col.in li:nth-child(2) { transition-delay: .47s, .47s, 0s, 0s; }
.am-col.in li:nth-child(3) { transition-delay: .59s, .59s, 0s, 0s; }
.am-col li::before {
  content: ''; position: absolute; left: 0; top: 50%; width: 0; height: 1px;
  background: var(--gold); transition: width .4s var(--ease-out);
}
.am-col li:hover { color: var(--brown); padding-left: 22px; }
.am-col li:hover::before { width: 14px; }

/* GALLERY: фото поднимаются шторкой по очереди */
.gallery .g-img { background-image: none !important; }
.g-inner { clip-path: inset(100% 0 0 0); transform: scale(1.25);
  transition: clip-path 1.4s var(--ease-io), transform 2s var(--ease-out); }
.g-img.in .g-inner { clip-path: inset(0 0 0 0); transform: scale(1); }
.g-img.in:hover .g-inner { transform: scale(1.06); transition: transform .8s cubic-bezier(.25,.1,.25,1); }
.g-img:nth-child(2) .g-inner { transition-delay: .15s; }
.g-img:nth-child(3) .g-inner { transition-delay: .3s; }
.g-img:focus-visible { outline: 1px solid var(--gold); outline-offset: -6px; }

/* на тач-экранах подписи галереи видны сразу */
@media (hover: none) {
  .g-img.in .g-scrim { opacity: 1; transition-delay: 1s; }
  .g-img.in .g-label { opacity: 1; transform: none; transition-delay: 1.1s; }
}

/* LIGHTBOX */
.lb {
  position: fixed; inset: 0; z-index: 500;
  display: flex; align-items: center; justify-content: center;
  background: rgba(22,15,8,.94);
  opacity: 0; visibility: hidden;
  transition: opacity .5s ease, visibility 0s linear .5s;
}
.lb.open { opacity: 1; visibility: visible; transition: opacity .5s ease, visibility 0s; }
.lb-fig { margin: 0; max-width: 88vw; max-height: 86vh; text-align: center;
  transform: scale(.94); transition: transform .7s var(--ease-out); }
.lb.open .lb-fig { transform: none; }
.lb-img { display: block; max-width: 88vw; max-height: 78vh; object-fit: contain; margin: 0 auto;
  transition: opacity .35s ease; }
.lb-img.swap { opacity: 0; }
.lb-cap { margin-top: 18px; font-family: 'Cormorant Garamond', serif; font-size: 20px; font-weight: 300; color: #F2E8DA; }
.lb-close, .lb-nav {
  position: absolute; background: none; border: 0; cursor: pointer;
  color: var(--gold); font-family: 'Cormorant Garamond', serif; line-height: 1;
  transition: color .25s, transform .3s var(--ease-out);
}
.lb-close { top: 22px; right: 28px; font-size: 42px; }
.lb-close:hover { color: #F2E8DA; transform: rotate(90deg); }
.lb-nav { top: 50%; font-size: 30px; padding: 20px; margin-top: -35px; }
.lb-prev { left: 12px; } .lb-next { right: 12px; }
.lb-prev:hover { transform: translateX(-4px); color: #F2E8DA; }
.lb-next:hover { transform: translateX(4px); color: #F2E8DA; }

/* MANIFESTO: цитата проявляется по словам */
.manifesto-q .w {
  display: inline-block; opacity: 0; filter: blur(8px); transform: translateY(14px);
  transition: opacity .9s ease, filter .9s ease, transform 1.1s var(--ease-out);
}
.manifesto-q.in .w { opacity: 1; filter: none; transform: none; }
.manifesto-q.reveal { transform: none; }
.m-sep { transform: scale(0); transition: transform .6s var(--ease-out) 1.2s; }
.manifesto-tags.in .m-sep { transform: scale(1); }

/* фирменный курсор (только мышь) */
.cursor { display: none; }
@media (hover: hover) and (pointer: fine) {
  .cursor {
    display: flex; align-items: center; justify-content: center;
    position: fixed; top: 0; left: 0; z-index: 450;
    width: 34px; height: 34px; margin: -17px 0 0 -17px;
    border: 1px solid var(--gold); border-radius: 50%;
    pointer-events: none; opacity: 0;
    transition: width .45s var(--ease-out), height .45s var(--ease-out), margin .45s var(--ease-out),
                background .35s, opacity .3s, border-color .3s;
  }
  .cursor.on { opacity: .9; }
  .cursor.link { width: 54px; height: 54px; margin: -27px 0 0 -27px; background: rgba(194,162,106,.12); }
  .cursor.view { width: 96px; height: 96px; margin: -48px 0 0 -48px; background: rgba(245,240,232,.92); border-color: transparent; }
  .cursor-txt { font-size: 9px; letter-spacing: .3em; text-transform: uppercase; color: var(--brown);
    opacity: 0; transition: opacity .3s; }
  .cursor.view .cursor-txt { opacity: 1; }
  .gallery .g-img { cursor: none; }
}

/* ═══ AMENITIES INDEX (новый дизайн инфраструктуры) ═══ */
.amenities-top { border-bottom: none; margin-bottom: 0; }
.am-index { position: relative; }
.am-row {
  position: relative; isolation: isolate;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) minmax(0, 1.25fr) 44px;
  align-items: center; gap: 32px;
  padding: 40px 28px;
  margin: 0 -28px;
  cursor: default;
}
/* верхняя линия прочерчивается */
.am-row::before {
  content: ''; position: absolute; left: 28px; right: 28px; top: 0; height: 1px;
  background: var(--cream-md);
  transform: scaleX(0); transform-origin: 0 50%;
  transition: transform 1.3s var(--ease-io);
}
.am-row.in::before { transform: scaleX(1); }
.am-row:last-child { box-shadow: inset 0 -1px 0 var(--cream-md); }
/* заливка при наведении поднимается снизу */
.am-row::after {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: var(--ivory);
  transform: scaleY(0); transform-origin: 50% 100%;
  transition: transform .6s var(--ease-out);
}
.am-row:hover::after { transform: scaleY(1); }

.am-row.reveal { transform: none; }               /* двигаем содержимое, а не строку */
.am-num {
  font-size: 11px; letter-spacing: .3em; color: var(--gold);
  opacity: 0; transition: opacity .8s ease .2s;
}
.am-row.in .am-num { opacity: 1; }
.am-name {
  font-family: 'Cormorant Garamond', serif; font-weight: 300;
  font-size: clamp(38px, 4.4vw, 64px); line-height: 1; color: var(--dark);
  overflow: hidden; padding-bottom: .1em; margin-bottom: -.1em;
}
.am-name span {
  display: inline-block;
  transform: translateY(105%);
  transition: transform 1.1s var(--ease-out) .15s, color .4s, letter-spacing .6s var(--ease-out);
}
.am-row.in .am-name span { transform: none; }
.am-row:hover .am-name span { color: var(--brown); font-style: italic; letter-spacing: .02em; }

.am-items { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 0; }
.am-items li {
  font-family: 'Cormorant Garamond', serif; font-size: 21px; font-weight: 400;
  color: var(--text); white-space: nowrap;
  opacity: 0; transform: translateY(12px);
  transition: opacity .7s ease, transform .9s var(--ease-out), color .3s;
}
.am-items li + li::before {
  content: ''; display: inline-block; width: 4px; height: 4px; border-radius: 50%;
  background: var(--gold); opacity: .55; margin: 0 18px; vertical-align: middle;
}
.am-row.in .am-items li { opacity: 1; transform: none; }
.am-row.in .am-items li:nth-child(1) { transition-delay: .35s, .35s, 0s; }
.am-row.in .am-items li:nth-child(2) { transition-delay: .45s, .45s, 0s; }
.am-row.in .am-items li:nth-child(3) { transition-delay: .55s, .55s, 0s; }
.am-row:hover .am-items li { color: var(--dark); }

.am-arr {
  width: 26px; height: 26px; justify-self: end; color: var(--gold);
  opacity: 0; transform: translate(-10px, 10px);
  transition: opacity .4s, transform .5s var(--ease-out);
}
.am-row.in .am-arr { opacity: .5; transform: none; transition-delay: .7s; }
.am-row:hover .am-arr { opacity: 1; transform: rotate(45deg); transition-delay: 0s; }

.am-thumb { display: none; }


/* планшет: фото справа в строке */
@media (max-width: 1080px), (hover: none) {
  .am-row {
    grid-template-columns: 48px minmax(0, 1fr) 210px;
    grid-template-areas: "num name thumb" "num items thumb";
    align-items: start; gap: 14px 24px;
    padding: 32px 0; margin: 0;
  }
  .am-row::before { left: 0; right: 0; }
  .am-row::after { display: none; }
  .am-num { grid-area: num; padding-top: 10px; }
  .am-name { grid-area: name; align-self: end; }
  .am-items { grid-area: items; align-self: start; }
  .am-items li { font-size: 18px; }
  .am-items li + li::before { margin: 0 12px; }
  .am-arr { display: none; }
  .am-thumb {
    display: block; grid-area: thumb; align-self: center;
    aspect-ratio: 4 / 3; overflow: hidden; border-radius: 2px;
  }
  .am-thumb img {
    width: 100%; height: 100%; object-fit: cover;
    clip-path: inset(0 0 0 100%); transform: scale(1.2);
    transition: clip-path 1.3s var(--ease-io) .2s, transform 1.9s var(--ease-out) .2s;
  }
  .am-row.in .am-thumb img { clip-path: inset(0 0 0 0); transform: scale(1); }
  /* на таче «наведение» = строка в центре экрана (класс ставит JS) */
  .am-row.is-active .am-name span { color: var(--brown); font-style: italic; }
}

/* телефон: фото над текстом */
@media (max-width: 680px) {
  .am-row {
    grid-template-columns: 34px minmax(0, 1fr);
    grid-template-areas: "thumb thumb" "num name" "items items";
    gap: 12px 10px; padding: 28px 0 30px;
  }
  .am-thumb { aspect-ratio: 16 / 10; margin-bottom: 10px; }
  .am-num { padding-top: 0; align-self: center; }
  .am-name { font-size: 40px; }
  .am-items { flex-direction: column; align-items: flex-start; gap: 0; }
  .am-items li { font-size: 19px; padding: 7px 0; }
  .am-items li + li::before { display: none; }
  .am-items li { padding-left: 18px; background: linear-gradient(var(--gold), var(--gold)) 0 50% / 8px 1px no-repeat; }
}

/* телефон */
.nav-right { display: flex; align-items: center; gap: 28px; }
.nav-tel {
  position: relative; font-size: 11px; letter-spacing: .22em; color: var(--brown);
  text-decoration: none; white-space: nowrap; padding: 6px 0;
}
.nav-tel::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: var(--gold); transform: scaleX(0); transform-origin: 100% 50%;
  transition: transform .5s var(--ease-out);
}
.nav-tel:hover::after { transform: scaleX(1); transform-origin: 0 50%; }
.f-tel {
  display: inline-block; margin-top: 18px;
  font-family: 'Cormorant Garamond', serif; font-size: 28px; font-weight: 300;
  color: #F2E8DA; text-decoration: none; letter-spacing: .02em;
  transition: color .3s;
}
.f-tel:hover { color: var(--gold); }
@media (max-width: 680px) { .nav-tel { font-size: 10px; letter-spacing: .14em; } }

/* ═══ CONCEPT QUOTE ═══ */
.concept-quote {
  font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 300;
  font-size: 22px; line-height: 1.4; color: var(--brown);
  padding-left: 22px; border-left: 1px solid var(--gold);
}

/* ═══ STATEMENT: слова проявляются на скролле ═══ */
.statement { background: var(--ivory); padding: 150px 60px; max-width: 1200px; margin: 0 auto; }
.st-line { font-family: 'Cormorant Garamond', serif; font-weight: 300; line-height: 1.12; }
.st-a { font-size: clamp(28px, 3.4vw, 48px); color: var(--muted); margin-bottom: 34px; }
.st-b { font-size: clamp(38px, 5.6vw, 82px); color: var(--dark); }
.st-b em { font-style: italic; color: var(--brown); }
.st-line .sw { opacity: .14; transition: opacity .25s linear; }
.st-line .sw.on { opacity: 1; }

/* ═══ LIFESTYLE ═══ */
.lifestyle { background: var(--ivory); padding: 40px 60px 140px; }
.lifestyle-inner { max-width: 1200px; margin: 0 auto; }
.lf-head { display: grid; grid-template-columns: 1fr; margin-bottom: 70px; }
.lf-h {
  font-family: 'Cormorant Garamond', serif; font-weight: 300;
  font-size: clamp(36px, 4.6vw, 64px); line-height: 1.08; color: var(--dark); margin-top: 18px;
}
.lf-h em { font-style: italic; color: var(--brown); }
.lf-h.reveal { transform: none; }
.lf-nums {
  display: grid; grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--cream-md); border-bottom: 1px solid var(--cream-md);
  margin-bottom: 70px;
}
.lf-num { padding: 44px 28px 40px; border-right: 1px solid var(--cream-md); }
.lf-num:first-child { padding-left: 0; }
.lf-num:last-child { border-right: none; }
.lf-num b {
  display: block; font-family: 'Cormorant Garamond', serif; font-weight: 300;
  font-size: clamp(56px, 6vw, 92px); line-height: .9; color: var(--dark); letter-spacing: -.01em;
}
.lf-num span {
  display: block; margin-top: 18px; font-size: 11px; letter-spacing: .24em;
  text-transform: uppercase; color: var(--muted); line-height: 1.7;
}
.lf-list { list-style: none; display: grid; grid-template-columns: 1fr 1fr; column-gap: 72px; counter-reset: lf; }
.lf-item {
  position: relative; display: grid; grid-template-columns: 44px 1fr; align-items: baseline;
  padding: 22px 0; border-bottom: 1px solid var(--cream-md);
}
.lf-item::after {
  content: ''; position: absolute; left: 0; bottom: -1px; height: 1px; width: 100%;
  background: var(--gold); transform: scaleX(0); transform-origin: 0 50%;
  transition: transform .7s var(--ease-out);
}
.lf-item:hover::after { transform: scaleX(1); }
.lf-n { font-size: 10.5px; letter-spacing: .3em; color: var(--gold); }
.lf-t {
  font-family: 'Cormorant Garamond', serif; font-size: 23px; font-weight: 400;
  color: var(--dark); line-height: 1.3; transition: transform .5s var(--ease-out), color .3s;
}
.lf-item:hover .lf-t { transform: translateX(10px); color: var(--brown); }
.lf-item:nth-child(even).reveal { transition-delay: .12s; }

/* ═══ HEART: фото раскрывается на весь экран ═══ */
.heart { position: relative; height: 230vh; background: var(--ivory); }
.heart-sticky { position: sticky; top: 0; height: 100vh; overflow: hidden; display: flex; align-items: flex-end; }
.heart-media {
  position: absolute; inset: 0;
  clip-path: inset(var(--ci, 14%) var(--cx, 22%) round var(--cr, 4px));
  will-change: clip-path;
}
.heart-media img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transform: scale(var(--hs, 1.18)); will-change: transform;
}
.heart-shade {
  position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to top, rgba(22,15,8,.9) 0%, rgba(22,15,8,.62) 40%, rgba(22,15,8,.18) 70%, transparent 88%);
  opacity: var(--ho, 0);
}
.heart-text {
  position: relative; z-index: 2; max-width: 760px; padding: 0 72px 90px;
  opacity: var(--ho, 0); transform: translateY(calc((1 - var(--ho, 0)) * 40px));
}
.heart-label { display: block; font-size: 10.5px; letter-spacing: .38em; color: var(--gold); text-transform: uppercase; margin-bottom: 18px; }
.heart-h {
  font-family: 'Cormorant Garamond', serif; font-weight: 300; text-transform: uppercase;
  font-size: clamp(52px, 8vw, 120px); line-height: 1; color: #F2E8DA;
  letter-spacing: calc(var(--ho, 0) * .22em - .02em); margin-bottom: 26px;
}
.heart-p { font-size: 16px; line-height: 1.85; color: rgba(242,232,218,.82); margin-bottom: 14px; max-width: 600px; }

/* ═══ MANIFESTO NOTE + CTA ═══ */
.m-note { margin: 56px auto 0; max-width: 620px; font-size: 15px; line-height: 1.85; color: rgba(242,232,218,.7); }
.m-cta {
  display: inline-flex; align-items: center; gap: 18px; margin-top: 38px;
  padding: 18px 34px; border: 1px solid rgba(194,162,106,.6);
  font-size: 11px; letter-spacing: .28em; text-transform: uppercase; color: var(--gold);
  text-decoration: none; position: relative; overflow: hidden; isolation: isolate;
  transition: color .45s, border-color .45s;
}
.m-cta::before {
  content: ''; position: absolute; inset: 0; z-index: -1; background: var(--gold);
  transform: scaleY(0); transform-origin: 50% 100%; transition: transform .55s var(--ease-out);
}
.m-cta:hover { color: var(--dark); border-color: var(--gold); }
.m-cta:hover::before { transform: scaleY(1); }
.m-cta i { width: 26px; height: 1px; background: currentColor; transition: width .45s var(--ease-out); }
.m-cta:hover i { width: 44px; }

@media (max-width: 1080px) {
  .statement { padding: 110px 44px; }
  .lifestyle { padding: 20px 44px 110px; }
  .lf-nums { grid-template-columns: 1fr 1fr; }
  .lf-num:nth-child(2) { border-right: none; }
  .lf-num:nth-child(-n+2) { border-bottom: 1px solid var(--cream-md); }
  .lf-num:nth-child(3) { padding-left: 0; }
  .lf-list { column-gap: 44px; }
  .heart-text { padding: 0 44px 70px; }
}
@media (max-width: 680px) {
  .statement { padding: 90px 28px; }
  .lifestyle { padding: 10px 28px 90px; }
  .lf-head, .lf-nums { margin-bottom: 48px; }
  .lf-num { padding: 30px 16px 26px; }
  .lf-num:nth-child(odd) { padding-left: 0; }
  .lf-num span { font-size: 10px; letter-spacing: .18em; }
  .lf-list { grid-template-columns: 1fr; }
  .lf-t { font-size: 20px; }
  .heart { height: 190vh; }
  .heart-text { padding: 0 28px 54px; }
  .heart-p { font-size: 14.5px; }
  .m-cta { flex-direction: column; gap: 10px; padding: 18px 26px; }
}

/* ═══ НОВЫЕ ФОТО ═══ */
.st-photo { margin: 90px 0 0; position: relative; overflow: hidden; }
.st-photo.reveal { opacity: 1; transform: none; }
.st-photo img {
  display: block; width: 100%; aspect-ratio: 16 / 8; object-fit: cover; object-position: center 62%;
  clip-path: inset(18% 22% 18% 22%); transform: scale(1.18);
  transition: clip-path 1.8s var(--ease-io), transform 2.4s var(--ease-out);
}
.st-photo.in img { clip-path: inset(0 0 0 0); transform: scale(1); }
.st-photo figcaption, .lf-photo figcaption {
  margin-top: 16px; font-size: 10.5px; letter-spacing: .32em; text-transform: uppercase; color: var(--muted);
  opacity: 0; transition: opacity 1s ease 1.2s;
}
.st-photo.in figcaption, .lf-photo.in figcaption { opacity: 1; }

.lf-body { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 72px; align-items: start; }
.lf-body .lf-list { grid-template-columns: 1fr; }
.lf-photo { position: sticky; top: 110px; margin: 0; }
.lf-photo.reveal { opacity: 1; transform: none; }
.lf-photo img {
  display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 38% center;
  clip-path: inset(100% 0 0 0); transform: scale(1.2);
  transition: clip-path 1.5s var(--ease-io), transform 2.2s var(--ease-out);
}
.lf-photo.in img { clip-path: inset(0 0 0 0); transform: scale(1); }
.lf-body .lf-item:nth-child(even).reveal { transition-delay: 0s; }

@media (max-width: 1080px) {
  .st-photo { margin-top: 64px; }
  .lf-body { gap: 44px; }
}
@media (max-width: 680px) {
  .st-photo { margin: 48px -28px 0; }
  .st-photo img { aspect-ratio: 4 / 3; clip-path: inset(10% 12% 10% 12%); }
  .st-photo figcaption { padding: 0 28px; }
  .lf-body { grid-template-columns: 1fr; gap: 36px; }
  .lf-photo { position: relative; top: auto; }
  .lf-photo img { aspect-ratio: 4 / 3; }
}

/* меньше движения */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0s !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
  .hero-bg { scale: 1; }
  .cursor { display: none !important; }
  .marquee-track { animation: none !important; }
  .st-line .sw { opacity: 1 !important; }
  .heart { height: auto; }
  .heart-sticky { position: relative; height: 90vh; }
}

  
/* WordPress admin bar */
.admin-bar .nav { top: 32px; }
.admin-bar .scroll-progress { top: 32px; }
@media (max-width: 782px) { .admin-bar .nav, .admin-bar .scroll-progress { top: 46px; } }

/* ═══ LOCATION ═══ */
.location { background: var(--cream); padding: 130px 60px; border-top: 1px solid var(--cream-md); }
.location-inner {
  max-width: 1200px; margin: 0 auto;
  display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 80px; align-items: center;
}
.loc-text.reveal { transform: none; }
.loc-h {
  font-family: 'Cormorant Garamond', serif; font-weight: 300;
  font-size: clamp(38px, 4.4vw, 62px); line-height: 1.08; color: var(--dark); margin: 18px 0 40px;
}
.loc-h em { font-style: italic; color: var(--brown); }
.loc-dist {
  display: flex; align-items: flex-end; gap: 16px;
  padding: 26px 0; border-top: 1px solid var(--cream-md); border-bottom: 1px solid var(--cream-md);
}
.loc-dist b {
  font-family: 'Cormorant Garamond', serif; font-weight: 300;
  font-size: clamp(72px, 8vw, 116px); line-height: .82; color: var(--dark);
}
.loc-dist span { font-size: 11px; letter-spacing: .26em; text-transform: uppercase; color: var(--muted); line-height: 1.7; padding-bottom: 6px; }
.loc-addr {
  font-style: normal; margin: 28px 0 36px;
  font-family: 'Cormorant Garamond', serif; font-size: 21px; line-height: 1.55; color: var(--text);
}
.loc-btns { display: flex; flex-wrap: wrap; gap: 14px; }
.loc-btn {
  position: relative; overflow: hidden; isolation: isolate;
  display: inline-flex; align-items: center; gap: 14px;
  padding: 16px 26px; border: 1px solid var(--gold);
  font-size: 10.5px; letter-spacing: .26em; text-transform: uppercase; color: var(--dark);
  text-decoration: none; transition: color .45s;
}
.loc-btn::before {
  content: ''; position: absolute; inset: 0; z-index: -1; background: var(--dark);
  transform: scaleY(0); transform-origin: 50% 100%; transition: transform .55s var(--ease-out);
}
.loc-btn:hover { color: #F2E8DA; }
.loc-btn:hover::before { transform: scaleY(1); }
.loc-btn i { width: 18px; height: 1px; background: currentColor; transition: width .45s var(--ease-out); }
.loc-btn:hover i { width: 32px; }
.loc-btn--ghost { border-color: var(--cream-md); color: var(--brown); }

.loc-map { position: relative; aspect-ratio: 5 / 4; min-height: 420px; overflow: hidden; background: var(--cream-md); }
.loc-map.reveal { transform: none; }
.loc-leaflet { position: absolute; inset: 0; z-index: 1; background: #EFE9DE; }
/* тон карты под палитру сайта */
.loc-leaflet .leaflet-tile-pane { filter: grayscale(1) sepia(.32) brightness(1.06) contrast(.82); transition: filter .8s ease; }
.loc-map:hover .loc-leaflet .leaflet-tile-pane { filter: grayscale(.55) sepia(.25) brightness(1.04) contrast(.88); }
.loc-leaflet .leaflet-container, .loc-leaflet { font-family: 'Jost', sans-serif; }
.loc-map .leaflet-control-zoom { border: 0 !important; box-shadow: none !important; margin: 18px !important; }
.loc-map .leaflet-control-zoom a {
  width: 38px !important; height: 38px !important; line-height: 36px !important;
  background: rgba(245,240,232,.94) !important; color: var(--brown) !important;
  border: 1px solid var(--cream-md) !important; border-radius: 0 !important;
  font-family: 'Cormorant Garamond', serif; font-size: 22px !important; font-weight: 300;
  transition: background .3s, color .3s;
}
.loc-map .leaflet-control-zoom a + a { border-top: 0 !important; }
.loc-map .leaflet-control-zoom a:hover { background: var(--dark) !important; color: #F2E8DA !important; }
.loc-map .leaflet-control-attribution {
  background: rgba(245,240,232,.8) !important; color: var(--muted) !important;
  font-size: 9px !important; letter-spacing: .04em; padding: 2px 8px !important;
}
.loc-map .leaflet-control-attribution a { color: var(--brown) !important; }

/* метка */
.atrium-pin { position: relative; width: 0; height: 0; }
.atrium-pin-mark {
  position: absolute; left: -22px; top: -22px; width: 44px; height: 44px;
  background: var(--dark); display: flex; align-items: center; justify-content: center;
  box-shadow: 0 14px 30px -10px rgba(35,27,18,.55);
  transform: rotate(45deg) scale(0); transition: transform .9s cubic-bezier(.2,1.4,.3,1) .4s;
}
.loc-map.in .atrium-pin-mark { transform: rotate(45deg) scale(1); }
.atrium-pin-mark svg { width: 22px; height: 22px; transform: rotate(-45deg); color: var(--gold); }
.atrium-pin-pulse {
  position: absolute; left: -22px; top: -22px; width: 44px; height: 44px;
  border: 1px solid var(--gold); transform: rotate(45deg);
  animation: pinPulse 2.6s ease-out 1.4s infinite; opacity: 0;
}
@keyframes pinPulse {
  0%   { opacity: .9; transform: rotate(45deg) scale(1); }
  100% { opacity: 0;  transform: rotate(45deg) scale(2.6); }
}
.atrium-pin-label {
  position: absolute; left: 38px; top: -17px; white-space: nowrap;
  background: rgba(245,240,232,.96); padding: 8px 14px 7px;
  font-family: 'Cormorant Garamond', serif; font-size: 17px; color: var(--dark); letter-spacing: .14em; text-transform: uppercase;
  box-shadow: 0 10px 24px -14px rgba(35,27,18,.5);
  opacity: 0; transform: translateX(-10px); transition: opacity .7s ease 1.1s, transform .9s var(--ease-out) 1.1s;
}
.atrium-pin-label small { display: block; font-family: 'Jost', sans-serif; font-size: 9px; letter-spacing: .26em; color: var(--muted); margin-top: 2px; }
.loc-map.in .atrium-pin-label { opacity: 1; transform: none; }
.leaflet-div-icon.atrium-icon { background: none; border: 0; }

/* шторка при появлении */
.loc-map::after {
  content: ''; position: absolute; inset: 0; z-index: 600; pointer-events: none;
  background: var(--cream-md);
  transform-origin: 100% 50%; transition: transform 1.4s var(--ease-io) .2s;
}
.loc-map.in::after { transform: scaleX(0); }
/* защита от «залипания» скролла на телефоне */
.loc-cover { display: none; }
@media (hover: none) {
  .loc-cover {
    display: flex; align-items: flex-end; justify-content: center;
    position: absolute; inset: 0; z-index: 500; padding-bottom: 18px;
    background: transparent; border: 0; cursor: pointer;
  }
  .loc-cover span {
    font-family: 'Jost', sans-serif; font-size: 10px; letter-spacing: .24em; text-transform: uppercase;
    color: var(--dark); background: rgba(245,240,232,.92); padding: 10px 16px;
  }
  .loc-map.active .loc-cover { display: none; }
}

@media (max-width: 1080px) {
  .location { padding: 100px 44px; }
  .location-inner { grid-template-columns: 1fr; gap: 50px; }
  .loc-map { aspect-ratio: 16 / 10; min-height: 360px; }
}
@media (max-width: 680px) {
  .location { padding: 80px 28px; }
  .loc-h { margin-bottom: 30px; }
  .loc-addr { font-size: 19px; }
  .loc-btns { flex-direction: column; }
  .loc-btn { justify-content: space-between; }
  .loc-map { margin: 0 -28px; aspect-ratio: 4 / 5; min-height: 0; }
}
.f-map-link { display: inline-block; margin-top: 10px; color: var(--gold); text-decoration: none; font-size: 13px; letter-spacing: .08em; transition: color .3s; }
.f-map-link:hover { color: #F2E8DA; }
@media (max-width: 680px) {
  .atrium-pin-label { left: 0; top: 36px; transform: translate(-50%, -8px); text-align: center; font-size: 15px; padding: 7px 12px 6px; }
  .loc-map.in .atrium-pin-label { transform: translate(-50%, 0); }
}

/* цифры без «римской» единицы */
.loc-dist b, .stat-num, .lf-num b { font-variant-numeric: lining-nums; font-feature-settings: "lnum" 1; }
