/* Imom Bukhari Grand Hotel
   ------------------------------------------------------------------
   Cormorant Garamond в заголовках — шрифт мемориального комплекса,
   Jost в тексте: геометрический гротеск, спокойный рядом с антиквой.
   Палитра оттуда же: слоновая кость, ночь, приглушённое золото.
   Рамок почти нет — вещи разделяет воздух и золотой волосок. */

:root{
  --ivory:#faf8f3;
  --paper:#ffffff;
  --sand:#f2ede2;
  --night:#0b1a2b;
  --night-deep:#06111d;
  --ink:#14202b;
  --ink-soft:#5d6773;
  --ink-mute:#8b939d;
  --gold:#b9922f;
  --gold-soft:#dfc07a;
  --gold-deep:#8a6a1c;
  --hair:rgba(20,32,43,.13);
  --hair-gold:rgba(185,146,47,.34);
  --hair-light:rgba(255,255,255,.16);

  --display:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --body:"Jost","Helvetica Neue",Arial,sans-serif;
  --arabic:"Amiri",serif;

  --gap:clamp(64px,9vw,132px);      /* воздух между разделами */
  --arch:180px 180px 8px 8px;       /* арка комплекса в маске фотографий */
  --ease:cubic-bezier(.22,1,.36,1);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font:300 17px/1.7 var(--body);
  color:var(--ink);
  background:var(--ivory);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit}
::selection{background:var(--gold-soft);color:var(--night)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

.wrap{width:min(1240px,100% - clamp(32px,7vw,96px));margin-inline:auto}
.skip{position:absolute;left:-9999px;top:0;z-index:30;background:var(--gold);
  color:var(--night);padding:12px 20px;font-weight:500;text-decoration:none}
.skip:focus{left:0}

/* --- типографика ------------------------------------------------- */
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.08;letter-spacing:.005em}
.display{font-family:var(--display)}

/* Микро-подпись: разрядка вместо жирности — так спокойнее */
.label{
  display:inline-flex;align-items:center;gap:12px;
  font:500 11px/1 var(--body);letter-spacing:.24em;text-transform:uppercase;
  color:var(--gold-deep);
}
.label::before{content:"";width:34px;height:1px;background:var(--hair-gold)}
.label.plain::before{display:none}
.label.light{color:var(--gold-soft)}
.label.light::before{background:var(--hair-light)}

.lead{font-size:clamp(18px,1.6vw,21px);line-height:1.65;color:var(--ink-soft);max-width:60ch;font-weight:300}
p{text-wrap:pretty}

.btn{
  --btn-bg:var(--gold);--btn-ink:var(--night);
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:52px;padding:0 34px;
  background:var(--btn-bg);color:var(--btn-ink);
  font:500 12.5px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;
  text-decoration:none;border:0;border-radius:0;cursor:pointer;
  transition:background .35s var(--ease),color .35s var(--ease),transform .35s var(--ease);
}
.btn:hover{background:var(--gold-soft)}
.btn:active{transform:translateY(1px)}
.btn.ghost{
  background:transparent;color:var(--ink);
  box-shadow:inset 0 0 0 1px var(--hair);
}
.btn.ghost:hover{background:var(--ink);color:var(--ivory);box-shadow:none}
.hero .btn.ghost,.svc-cta .btn.ghost{color:#fff;box-shadow:inset 0 0 0 1px var(--hair-light)}
.hero .btn.ghost:hover,.svc-cta .btn.ghost:hover{background:#fff;color:var(--night)}

/* Ссылка-стрелка: подчёркивание уезжает вправо */
.arrow{
  display:inline-flex;align-items:center;gap:10px;position:relative;
  font:500 12px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold-deep);text-decoration:none;padding-bottom:6px;
}
.arrow::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;
  background:var(--hair-gold);transform-origin:left;
  transition:transform .45s var(--ease);
}
.arrow:hover::after{transform:scaleX(.35)}

/* --- шапка -------------------------------------------------------- */
header.site{
  position:fixed;inset:0 0 auto;z-index:1000;
  padding-block:clamp(14px,2vw,26px);
  transition:background .4s var(--ease),padding .4s var(--ease),box-shadow .4s var(--ease);
}
header.site .wrap{display:flex;align-items:center;gap:clamp(16px,3vw,40px)}
body.scrolled header.site{
  background:rgba(11,26,43,.94);
  padding-block:12px;
  box-shadow:0 1px 0 var(--hair-light);
  backdrop-filter:blur(10px);
}
/* На внутренних страницах шапка сразу на тёмной подложке */
body.inner header.site{background:var(--night)}

.brand{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:#fff;flex:none}
.brand .mark{
  font-family:var(--display);font-style:italic;font-weight:500;
  font-size:clamp(21px,2.2vw,27px);line-height:1;color:var(--gold-soft);
}
.brand .sub{
  font:500 8.5px/1 var(--body);letter-spacing:.42em;text-transform:uppercase;
  color:rgba(255,255,255,.6);padding-left:2px;
}

nav.main{display:flex;gap:clamp(16px,2.4vw,34px);margin-left:auto}
nav.main a{
  position:relative;text-decoration:none;color:rgba(255,255,255,.82);
  font:400 13px/1 var(--body);letter-spacing:.1em;text-transform:uppercase;
  padding-block:6px;transition:color .3s var(--ease);
}
nav.main a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--gold-soft);transform:scaleX(0);transform-origin:right;
  transition:transform .4s var(--ease);
}
nav.main a:hover,nav.main a.active{color:#fff}
.call-in-menu{display:none}
nav.main a:hover::after,nav.main a.active::after{transform:scaleX(1);transform-origin:left}

/* Переключатель языка: свёрнут до кода, разворачивается списком с названиями */
.lang{position:relative;flex:none}
.lang summary{
  display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;
  padding:8px 12px;color:rgba(255,255,255,.72);
  font:400 11.5px/1 var(--body);letter-spacing:.16em;
  box-shadow:inset 0 0 0 1px transparent;
  transition:color .3s var(--ease),box-shadow .3s var(--ease);
}
.lang summary::-webkit-details-marker{display:none}
.lang summary:hover{color:#fff;box-shadow:inset 0 0 0 1px var(--hair-light)}
.lang summary svg{opacity:.75;flex:none}
.lang summary i{
  width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;
  transform:rotate(45deg) translate(-2px,-2px);transition:transform .3s var(--ease);
}
.lang[open] summary{color:#fff;box-shadow:inset 0 0 0 1px var(--hair-light)}
.lang[open] summary i{transform:rotate(-135deg) translate(-3px,-3px)}

.lang ul{
  position:absolute;top:calc(100% + 10px);right:0;z-index:22;
  min-width:210px;list-style:none;
  background:rgba(11,26,43,.98);backdrop-filter:blur(12px);
  box-shadow:0 1px 0 var(--hair-light) inset,0 24px 60px rgba(6,17,29,.45);
  padding:8px;
  animation:langIn .28s var(--ease);
}
@keyframes langIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.lang li + li{border-top:1px solid rgba(255,255,255,.07)}
.lang ul a{
  display:flex;align-items:baseline;justify-content:space-between;gap:18px;
  padding:12px 14px;text-decoration:none;color:rgba(255,255,255,.72);
  transition:background .25s var(--ease),color .25s var(--ease);
}
.lang ul a:hover{background:rgba(255,255,255,.06);color:#fff}
.lang ul .name{font:300 15px/1 var(--body);letter-spacing:.01em}
.lang ul .code{font:400 10.5px/1 var(--body);letter-spacing:.2em;color:var(--ink-mute)}
.lang ul a.on{color:var(--gold-soft)}
.lang ul a.on .code{color:var(--gold-deep)}

header.site .btn{min-height:42px;padding:0 22px;font-size:11px}

.nav-toggle{position:absolute;opacity:0;pointer-events:none}
.burger{display:none;margin-left:auto;padding:12px 0 12px 12px;cursor:pointer}
.burger span,.burger span::before,.burger span::after{
  content:"";display:block;width:24px;height:1px;background:#fff;
  transition:transform .35s var(--ease),opacity .2s;
}
.burger span::before{transform:translateY(-7px)}
.burger span::after{transform:translateY(6px)}
.nav-toggle:checked+.burger span{background:transparent}
.nav-toggle:checked+.burger span::before{transform:rotate(45deg)}
.nav-toggle:checked+.burger span::after{transform:rotate(-45deg) translateY(-1px)}

/* --- герой -------------------------------------------------------- */
.hero{
  position:relative;min-height:min(100svh,860px);
  display:flex;align-items:flex-end;
  padding-block:200px clamp(72px,10vw,130px);
  color:#fff;overflow:hidden;
}
.hero .bg{
  position:absolute;inset:0;
  background-position:center;background-size:cover;background-repeat:no-repeat;
  transform:scale(1.06);
  animation:drift 26s var(--ease) forwards;
}
@keyframes drift{to{transform:scale(1)}}
.hero .bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(6,17,29,.8) 0%,rgba(6,17,29,.3) 34%,rgba(6,17,29,.62) 62%,rgba(6,17,29,.92) 100%);
}
.hero .wrap{position:relative;z-index:1}
.hero h1{
  font-size:clamp(40px,6.4vw,86px);
  margin:22px 0 20px;max-width:19ch;
  text-wrap:balance;
}
.hero .sub{font-size:clamp(16px,1.5vw,19px);color:rgba(255,255,255,.82);max-width:52ch;font-weight:300}
.hero .cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:38px}

/* Подсказка «листайте»: тонкая линия, которая сама себя протягивает */
.scroll-cue{
  position:absolute;left:50%;bottom:26px;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:12px;z-index:1;
  font:500 9.5px/1 var(--body);letter-spacing:.3em;text-transform:uppercase;
  color:rgba(255,255,255,.55);
}
.scroll-cue i{display:block;width:1px;height:54px;background:rgba(255,255,255,.25);position:relative;overflow:hidden}
.scroll-cue i::after{
  content:"";position:absolute;inset:0;background:var(--gold-soft);
  animation:trickle 2.6s var(--ease) infinite;
}
@keyframes trickle{0%{transform:translateY(-100%)}60%,100%{transform:translateY(100%)}}

/* --- полоса поиска ------------------------------------------------ */
.book{background:var(--night);color:#fff;position:relative;z-index:2}
.book form{display:grid;grid-template-columns:1fr 1fr 1fr auto;align-items:end;gap:0}
.book .field{padding:26px 28px;border-right:1px solid var(--hair-light)}
.book label{
  display:block;font:500 10px/1 var(--body);letter-spacing:.24em;text-transform:uppercase;
  color:var(--gold-soft);margin-bottom:12px;
}
.book input,.book select{
  width:100%;font:300 16px var(--body);color:#fff;background:transparent;
  border:0;outline:none;
}
.book input::-webkit-calendar-picker-indicator{filter:invert(1) opacity(.5)}
.book select option{color:var(--ink)}
.book .go{display:flex}
.book .go button{
  height:100%;min-height:92px;padding:0 44px;border:0;cursor:pointer;
  background:var(--gold);color:var(--night);
  font:500 12px/1 var(--body);letter-spacing:.18em;text-transform:uppercase;
  transition:background .35s var(--ease);
}
.book .go button:hover{background:var(--gold-soft)}
.book .pms{
  padding:14px 28px;font-size:12.5px;color:rgba(255,255,255,.45);
  border-top:1px solid var(--hair-light);letter-spacing:.02em;
}
.book-stub{display:flex;align-items:center;justify-content:space-between;gap:28px;
  flex-wrap:wrap;padding:32px 28px}
.book-stub b{font-family:var(--display);font-size:28px;font-weight:400;display:block}
.book-stub p{color:rgba(255,255,255,.6);font-size:14.5px;max-width:56ch}

/* --- цифры о гостинице -------------------------------------------- */
.facts{border-bottom:1px solid var(--hair)}
.facts .wrap{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));
  padding-block:clamp(38px,5vw,64px);gap:32px;
}
.facts div{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.facts b{font-family:var(--display);font-size:clamp(36px,4.2vw,58px);font-weight:400;line-height:1}
.facts span{font:400 12px/1.4 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute)}

/* --- разделы ------------------------------------------------------ */
section{padding-block:var(--gap)}
.sec-head{margin-bottom:clamp(36px,5vw,64px);max-width:66ch}
.sec-head h2{font-size:clamp(32px,4.4vw,58px);margin:18px 0 16px;text-wrap:balance}
.sec-head .lead{margin-top:4px}

/* Рядом со святыней: текст и фотография в арке */
.about .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,96px);align-items:center}
.about h2{font-size:clamp(30px,3.8vw,50px);margin:18px 0 18px}
.about ul{list-style:none;margin-top:32px;display:grid;gap:0}
.about li{
  display:flex;gap:16px;align-items:baseline;padding-block:14px;
  border-top:1px solid var(--hair);color:var(--ink-soft);font-size:16px;
}
.about li:last-child{border-bottom:1px solid var(--hair)}
.about li::before{content:"";width:5px;height:5px;flex:none;background:var(--gold);transform:translateY(-3px)}
.photo-arch{position:relative;overflow:hidden;border-radius:var(--arch)}
.photo-arch img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform 1.2s var(--ease)}
.photo-arch:hover img{transform:scale(1.05)}

/* Что продумано: список без карточек */
.feats{background:var(--sand)}
.feats .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair)}
.feat{background:var(--sand);padding:clamp(26px,3vw,40px)}
.feat h3{font-size:24px;margin-bottom:10px}
.feat p{font-size:15px;color:var(--ink-soft);font-weight:300}
.feats .grid.three{grid-template-columns:repeat(3,1fr)}

/* --- номера ------------------------------------------------------- */
.rooms .grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(28px,4vw,56px)}
.room{display:flex;flex-direction:column}
.room .ph{
  position:relative;aspect-ratio:4/3;overflow:hidden;
  background:radial-gradient(circle at 32% 22%,rgba(185,146,47,.2),transparent 58%),var(--night);
}
.room .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform 1.2s var(--ease)}
.room:hover .ph img{transform:scale(1.05)}
.room .ph .pattern{position:absolute;inset:0;opacity:.4}
.room .ph .cap{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  padding:0 28px;text-align:center;color:rgba(223,192,122,.75);
  font-family:var(--display);font-style:italic;font-size:19px;
}
.room .body{padding-top:24px;display:flex;flex-direction:column;gap:10px;flex:1}
.room h3{font-size:30px}
.room p{color:var(--ink-soft);font-size:15.5px;font-weight:300;flex:1}
.room .row{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding-top:18px;margin-top:6px;border-top:1px solid var(--hair);
}
.room .price{font-family:var(--display);font-size:28px;line-height:1}
.room .price small{font:400 11.5px var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
.room .more{
  font:500 12px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold-deep);text-decoration:none;border-bottom:1px solid var(--hair-gold);padding-bottom:4px;
}
.room .more:hover{color:var(--gold)}
.more-row{margin-top:clamp(32px,4vw,52px)}

/* Страница номеров: чередующиеся полосы с номером раздела */
.room-list{display:grid;gap:clamp(56px,7vw,104px);padding-block:var(--gap)}
.room-full{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.room-full:nth-child(even) .ph{order:2}
.room-full .ph{
  position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:var(--arch);
  background:radial-gradient(circle at 32% 22%,rgba(185,146,47,.2),transparent 58%),var(--night);
}
.room-full .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.room-full .ph .pattern{position:absolute;inset:0;opacity:.4}
.room-full .ph .cap{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  padding:0 30px;text-align:center;color:rgba(223,192,122,.75);
  font-family:var(--display);font-style:italic;font-size:20px;
}
.room-full h3{font-size:clamp(32px,4vw,48px);margin:14px 0 16px}
.room-full .desc{color:var(--ink-soft);font-size:17px;font-weight:300;margin-bottom:26px;max-width:46ch}
.room-full .tags{display:flex;flex-wrap:wrap;gap:10px 26px;margin-bottom:32px}
.room-full .tags span{
  font:400 12px/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);
}
.room-full .foot{display:flex;align-items:center;gap:28px;flex-wrap:wrap;
  padding-top:24px;border-top:1px solid var(--hair)}
.room-full .price{font-family:var(--display);font-size:38px;line-height:1}
.room-full .price small{font:400 11.5px var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
.note-line{color:var(--ink-mute);font-size:14.5px;max-width:70ch;padding-top:8px}

/* --- хадис -------------------------------------------------------- */
.hadith{background:var(--night);color:#fff;text-align:center;position:relative;overflow:hidden}
.hadith .pattern{position:absolute;inset:0;opacity:.22}
.hadith .wrap{position:relative;max-width:860px}
.hadith .ar{
  font-family:var(--arabic);font-size:clamp(26px,3.6vw,42px);line-height:1.95;
  color:var(--gold-soft);direction:rtl;margin-bottom:26px;
}
.hadith .ru{
  font-family:var(--display);font-style:italic;font-weight:300;
  font-size:clamp(21px,2.6vw,31px);line-height:1.5;color:rgba(255,255,255,.92);
}
.hadith .src{
  margin-top:24px;font:500 10.5px/1 var(--body);letter-spacing:.26em;text-transform:uppercase;
  color:rgba(255,255,255,.42);
}

/* --- комплекс ----------------------------------------------------- */
.complex .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,96px);align-items:center}
.complex .photos{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.complex .photos img{
  width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--arch);
}
.complex .photos img:first-child{margin-top:44px;border-radius:8px 8px 180px 180px}
.complex h2{font-size:clamp(30px,3.8vw,50px);margin:18px 0 18px}
/* Наведение не должно менять отступы: текст перескакивал на другую строку.
   Двигаем карточку целиком — transform не вызывает перевёрстку. */
.complex .link-card{
  margin-top:34px;display:flex;align-items:center;gap:22px;text-decoration:none;
  padding:24px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  transition:transform .4s var(--ease),border-color .4s var(--ease);
}
.complex .link-card:hover{transform:translateX(6px);border-color:var(--hair-gold)}
.complex .link-card .t{flex:1}
.complex .link-card .t b{
  display:block;font:500 13px/1 var(--body);letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold-deep);margin-bottom:6px;
}
.complex .link-card .t span{font-size:15px;color:var(--ink-soft);font-weight:300}
.complex .link-card .arr{font-size:22px;color:var(--gold);transition:transform .4s var(--ease)}
.complex .link-card:hover .arr{transform:translateX(4px)}

/* --- контакты ----------------------------------------------------- */
.contact-strip{background:var(--sand)}
.contact-strip .wrap{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(36px,5vw,72px);align-items:start}
.contact-strip h2{font-size:clamp(30px,3.6vw,46px);margin-bottom:28px}
.item{padding-block:16px;border-top:1px solid var(--hair)}
.item:last-of-type{border-bottom:1px solid var(--hair)}
.item b{
  display:block;font:500 10.5px/1 var(--body);letter-spacing:.22em;text-transform:uppercase;
  color:var(--ink-mute);margin-bottom:8px;
}
.item a,.item span{font-size:18px;font-weight:300;text-decoration:none;color:var(--ink)}
.item a:hover{color:var(--gold-deep)}
/* --- карта -------------------------------------------------------- */
.map{position:relative;z-index:0;isolation:isolate}
#map{width:100%;height:clamp(340px,36vw,500px);background:var(--sand)}
.leaflet-container{font-family:var(--body);background:var(--sand)}
/* Плитки OSM пёстрые: приглушаем цвет и подсвечиваем, чтобы карта стала
   подложкой, а не самым ярким пятном страницы */
.leaflet-tile-pane{filter:saturate(.42) brightness(1.06) contrast(.94)}

/* Метки: золотая точка и подпись рядом. Гостиница — залитая, комплекс — контурный */
.pin{display:flex;align-items:center;gap:9px;white-space:nowrap}
.pin span{
  display:block;width:12px;height:12px;flex:none;border-radius:50%;
  background:var(--gold);box-shadow:0 0 0 4px rgba(185,146,47,.25),0 2px 8px rgba(6,17,29,.35);
}
.pin b{
  font:500 11.5px/1 var(--body);letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink);background:rgba(255,255,255,.9);padding:5px 9px;
}
.pin.main span{width:16px;height:16px;box-shadow:0 0 0 6px rgba(185,146,47,.22),0 2px 10px rgba(6,17,29,.4)}
.pin.main b{background:var(--night);color:#fff}

/* Подпись на пунктире между двумя метками */
.walk{
  display:flex;align-items:center;justify-content:center;
  font:500 11px/1 var(--body);letter-spacing:.08em;
  color:var(--gold-deep);background:rgba(255,255,255,.92);
  padding:5px 0;box-shadow:0 2px 10px rgba(6,17,29,.12);
}

.map-actions{
  position:absolute;left:0;right:0;bottom:0;z-index:500;
  display:flex;gap:10px;flex-wrap:wrap;padding:18px;
}
.map-actions .btn{min-height:46px;padding:0 24px;box-shadow:0 8px 26px rgba(6,17,29,.22)}
.map-actions .btn.ghost{background:rgba(255,255,255,.94);color:var(--ink);box-shadow:0 8px 26px rgba(6,17,29,.18)}
.map-actions .btn.ghost:hover{background:var(--ink);color:var(--ivory)}
.leaflet-control-attribution{
  background:rgba(255,255,255,.75) !important;
  font:400 10px/1.4 var(--body) !important;letter-spacing:.06em;
  color:rgba(20,32,43,.5) !important;padding:4px 8px !important;
}
.leaflet-control-attribution a{color:rgba(20,32,43,.6) !important;text-decoration:none}

.contact-page{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(36px,5vw,72px);
  align-items:start;padding-block:var(--gap)}

/* --- услуги ------------------------------------------------------- */
.services{padding-block:var(--gap)}
.svc-group{margin-bottom:clamp(48px,6vw,88px)}
.svc-group h2{font-size:clamp(28px,3.4vw,42px);padding-bottom:18px;
  border-bottom:1px solid var(--hair-gold);margin-bottom:0}
.svc-group .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair)}
.svc-group .feat{background:var(--ivory)}
.svc-cta{
  display:flex;align-items:center;justify-content:space-between;gap:34px;flex-wrap:wrap;
  background:var(--night);color:#fff;padding:clamp(36px,5vw,64px);
}
.svc-cta h2{font-size:clamp(28px,3.4vw,42px)}
.svc-cta .lead{color:rgba(255,255,255,.68);margin-top:10px}

/* --- галерея ------------------------------------------------------ */
.gallery{padding-block:var(--gap)}
.gallery .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,26px)}
.gallery figure{overflow:hidden}
.gallery figure:nth-child(3n+1){grid-row:span 1}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1.2s var(--ease)}
.gallery figure:hover img{transform:scale(1.05)}
.gallery figcaption{padding-top:12px;font-size:13.5px;color:var(--ink-mute);letter-spacing:.02em}

/* --- бронирование ------------------------------------------------- */
.booking{display:grid;grid-template-columns:1.55fr .85fr;gap:clamp(32px,5vw,64px);
  align-items:start;padding-block:var(--gap)}
.booking-stub{background:var(--paper);padding:clamp(40px,6vw,72px);text-align:center;
  box-shadow:inset 0 0 0 1px var(--hair)}
.booking-stub h2{font-size:clamp(28px,3.4vw,42px)}
.booking-stub p{color:var(--ink-soft);margin:14px auto 30px;max-width:44ch;font-weight:300}
.booking-why{background:var(--sand);padding:clamp(30px,4vw,44px)}
.booking-why h2{font-size:27px;margin-bottom:20px}
.booking-why ul{list-style:none;display:grid;gap:0}
.booking-why li{
  display:flex;gap:14px;padding-block:14px;border-top:1px solid var(--hair);
  font-size:15.5px;color:var(--ink-soft);font-weight:300;
}
.booking-why li:last-child{border-bottom:1px solid var(--hair)}
.booking-why li::before{content:"";width:5px;height:5px;flex:none;background:var(--gold);margin-top:9px}

/* --- шапка внутренних страниц ------------------------------------- */
.page-hero{
  background:var(--night);color:#fff;position:relative;overflow:hidden;
  padding-block:clamp(140px,15vw,190px) clamp(56px,7vw,86px);
}
.page-hero .pattern{position:absolute;inset:0;opacity:.2}
.page-hero .wrap{position:relative}
.page-hero h1{font-size:clamp(38px,5.6vw,74px);text-wrap:balance;max-width:20ch}
.page-hero p{color:rgba(255,255,255,.7);margin-top:18px;max-width:56ch;font-weight:300}

/* --- новости ------------------------------------------------------ */
.news-strip{background:var(--sand)}
.news-strip .head{display:flex;align-items:baseline;justify-content:space-between;
  gap:24px;flex-wrap:wrap;margin-bottom:clamp(30px,4vw,52px)}
.news-strip .head h2{font-size:clamp(30px,3.6vw,46px)}
.news{padding-block:var(--gap)}
.news-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:clamp(24px,3vw,42px)}
.story{display:flex;flex-direction:column}
.story .shot{display:block;position:relative;aspect-ratio:16/11;overflow:hidden;
  background:radial-gradient(circle at 32% 22%,rgba(185,146,47,.2),transparent 58%),var(--night)}
.story .shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform 1.2s var(--ease)}
.story:hover .shot img{transform:scale(1.05)}
.story .shot .pattern{position:absolute;inset:0;opacity:.34}
.story .body{padding-top:20px;display:flex;flex-direction:column;gap:10px;flex:1}
.story time{font:500 10.5px/1 var(--body);letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep)}
.story h2,.story h3{font-size:26px}
.story h2 a,.story h3 a{text-decoration:none}
.story h2 a:hover,.story h3 a:hover{color:var(--gold-deep)}
.story p{color:var(--ink-soft);font-size:15px;font-weight:300;flex:1}
.story .read{
  align-self:flex-start;margin-top:6px;text-decoration:none;
  font:500 11.5px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);
}
.story .read:hover{color:var(--gold)}
.story.small{padding-top:20px;border-top:1px solid var(--hair-gold)}
.story.small h3{font-size:22px;margin:8px 0}

/* --- статья ------------------------------------------------------- */
.article{padding-block:clamp(120px,14vw,170px) var(--gap)}
.article > .wrap{max-width:min(760px,100% - clamp(32px,7vw,96px))}
.article header time{font:500 10.5px/1 var(--body);letter-spacing:.22em;
  text-transform:uppercase;color:var(--gold-deep)}
.article h1{font-size:clamp(34px,5vw,62px);margin:18px 0 22px;text-wrap:balance}
.article .dek{font-size:clamp(19px,2vw,23px);line-height:1.6;color:var(--ink-soft);font-weight:300}
.article figure.shot{margin-block:clamp(36px,5vw,56px) 0}
.article figure.shot img{width:100%;border-radius:8px}
.article .body{margin-top:clamp(32px,4vw,48px)}
.article .body h2{font-size:clamp(26px,3vw,34px);margin:clamp(34px,4vw,46px) 0 14px}
.article .body p{font-size:17.5px;line-height:1.8;color:var(--ink-soft);margin-bottom:18px;font-weight:300}
.article .more-stories{margin-top:clamp(56px,7vw,88px)}
.article .more-stories > h2{font-size:28px;margin-bottom:8px}
.article .more-stories .news-grid{grid-template-columns:1fr 1fr}

/* --- подвал ------------------------------------------------------- */
footer.site{background:var(--night-deep);color:rgba(255,255,255,.55);padding-block:clamp(48px,6vw,76px)}
footer.site .wrap{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:start}
footer.site nav{display:flex;gap:26px;flex-wrap:wrap;justify-content:flex-end}
footer.site nav a{
  text-decoration:none;color:rgba(255,255,255,.55);
  font:400 12.5px/1 var(--body);letter-spacing:.1em;text-transform:uppercase;
}
footer.site nav a:hover{color:var(--gold-soft)}
footer.site .made{
  grid-column:1/-1;display:flex;gap:26px;flex-wrap:wrap;align-items:baseline;
  padding-top:28px;margin-top:8px;border-top:1px solid rgba(255,255,255,.1);
  font-size:12.5px;color:rgba(255,255,255,.32);
}
footer.site .made a{color:rgba(255,255,255,.6);text-decoration:none;font-size:15px}

/* --- гирих -------------------------------------------------------- */
.pattern{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='84' viewBox='0 0 84 84'%3E%3Cg fill='none' stroke='%23b9922f' stroke-width='1' opacity='.55'%3E%3Crect x='22' y='22' width='40' height='40'/%3E%3Crect x='22' y='22' width='40' height='40' transform='rotate(45 42 42)'/%3E%3Ccircle cx='42' cy='42' r='5'/%3E%3C/g%3E%3C/svg%3E");
  background-size:84px 84px;
}

/* --- появление при прокрутке -------------------------------------- */
html.js .reveal{opacity:0;transform:translateY(26px);
  transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--delay,0ms)}
html.js .reveal.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;scroll-behavior:auto !important}
  html.js .reveal{opacity:1;transform:none}
  .hero .bg{transform:none}
}

/* --- узкие экраны -------------------------------------------------- */
@media(max-width:1040px){
  .burger{display:block}
  header.site .wrap{flex-wrap:wrap;row-gap:0}
  body:not(.inner) header.site{background:linear-gradient(180deg,rgba(6,17,29,.9),transparent)}
  nav.main{
    display:none;order:5;width:100%;flex-direction:column;gap:0;margin:0;
    padding-block:8px 16px;border-top:1px solid var(--hair-light);
  }
  .nav-toggle:checked~nav.main{display:flex}
  nav.main a{padding-block:14px}
  nav.main a::after{display:none}
  .lang{order:3;margin-left:auto}
  .lang summary{padding:8px 6px}
  header.site > .wrap > .btn{display:none}
  .call-in-menu{display:block;color:var(--gold-soft) !important;letter-spacing:.08em}
  .about .wrap,.complex .wrap,.contact-strip .wrap,.contact-page,.booking,
  .room-full,.rooms .grid,.news-grid{grid-template-columns:1fr}
  .room-full:nth-child(even) .ph{order:0}
  .feats .grid,.svc-group .grid,.gallery .grid,.feats .grid.three{grid-template-columns:1fr 1fr}
  .facts .wrap{grid-template-columns:1fr 1fr;gap:28px}
  .book form{grid-template-columns:1fr 1fr}
  .book .field:nth-child(2){border-right:0}
  .book .go{grid-column:1/-1}
  .book .go button{width:100%;min-height:64px}
  .complex .photos img:first-child{margin-top:0}
  footer.site .wrap{grid-template-columns:1fr}
  footer.site nav{justify-content:flex-start}
}
@media(max-width:640px){
  body{font-size:16px}
  .hero{padding-block:170px 90px;min-height:min(94svh,760px)}
  .facts .wrap,.feats .grid,.svc-group .grid,.gallery .grid,
  .article .more-stories .news-grid,.feats .grid.three{grid-template-columns:1fr}
  .book form{grid-template-columns:1fr}
  .book .field{border-right:0;border-bottom:1px solid var(--hair-light)}
  .scroll-cue{display:none}
  .svc-cta,.book-stub{flex-direction:column;align-items:flex-start}
}
