:root{
  --sand:#f6efe5; --sand2:#efe5d6; --paper:#fffaf3; --ink:#2b2622; --muted:#7b6f64;
  --sun:#c9794b; --sun2:#a95e34; --gold:#b9924f; --dark:#241e19; --line:rgba(43,38,34,.14);
  --r:18px; --wrap:1160px;
  --ff:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --ffd:'Cormorant Garamond',Georgia,'Times New Roman',serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{font-family:var(--ff);color:var(--ink);background:var(--paper);line-height:1.65;font-size:17px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
ul{list-style:none}
button{font:inherit}
.wrap{width:min(var(--wrap),100% - 40px);margin-inline:auto}
.rub{font-family:var(--ff);font-weight:600}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:15px 30px;border-radius:999px;background:var(--sun);color:#fff;font:600 16px/1 var(--ff);text-decoration:none;border:2px solid var(--sun);cursor:pointer;transition:background .2s,transform .2s,color .2s,border-color .2s;box-shadow:0 8px 22px rgba(201,121,75,.3)}
.btn:hover{background:var(--sun2);border-color:var(--sun2);transform:translateY(-2px)}
.btn--sm{padding:11px 20px;font-size:15px}
.btn--big{width:100%;padding:18px 28px;font-size:18px}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--ink);box-shadow:none}
.btn--ghost:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.sec--dark .btn--ghost{color:#fff;border-color:#fff}
.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}

/* шапка */
.top{position:sticky;top:0;z-index:50;background:rgba(246,239,229,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.top__in{display:flex;align-items:center;gap:22px;min-height:76px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto}
.brand img{width:56px;height:56px}
.brand__t{font-family:var(--ffd);font-weight:700;font-size:28px;line-height:1;display:flex;flex-direction:column}
.brand__t small{font:500 12px/1.3 var(--ff);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.nav{display:flex;gap:26px}
.nav a{text-decoration:none;font-weight:500;font-size:15px;position:relative;padding:6px 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--sun);transform:scaleX(0);transition:transform .25s}
.nav a:hover::after{transform:scaleX(1)}
.nav__book{display:none}
.top__tel{font-weight:600;text-decoration:none;font-size:16px;white-space:nowrap}
.burger{display:none;width:44px;height:44px;border:0;background:transparent;cursor:pointer;position:relative}
.burger span{position:absolute;left:10px;right:10px;height:2px;background:var(--ink);border-radius:2px;transition:transform .25s,opacity .2s,top .25s}
.burger span:nth-child(1){top:14px}.burger span:nth-child(2){top:21px}.burger span:nth-child(3){top:28px}
.burger[aria-expanded="true"] span:nth-child(1){top:21px;transform:rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){top:21px;transform:rotate(-45deg)}

/* первый экран */
.hero{background:linear-gradient(180deg,var(--sand),var(--paper));padding:clamp(40px,6vw,84px) 0 clamp(48px,6vw,90px);overflow:hidden}
.hero__in{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,72px);align-items:center}
.kicker{font-size:13px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--sun2);margin-bottom:14px}
h1,h2,h3{font-family:var(--ffd);font-weight:600;line-height:1.05}
h1{font-size:clamp(46px,7vw,92px);margin-bottom:22px;letter-spacing:-.01em}
h1 em{font-style:italic;color:var(--sun2);font-weight:600}
h2{font-size:clamp(36px,4.6vw,56px);margin-bottom:16px}
h3{font-size:27px}
.hero__s{font-size:clamp(18px,1.8vw,21px);max-width:30em;margin-bottom:30px;color:#4d433b}
.hero__btns{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:34px}
.badges{display:flex;gap:30px;flex-wrap:wrap;padding-top:26px;border-top:1px solid var(--line)}
.badges li{display:flex;flex-direction:column;max-width:160px}
.badges b{font:700 38px/1 var(--ffd);color:var(--sun2)}
.badges span{font-size:14px;color:var(--muted);line-height:1.35;margin-top:6px}
.hero__ph{position:relative;height:clamp(380px,46vw,560px)}
.hp{position:absolute;border-radius:20px;object-fit:cover;box-shadow:0 24px 50px rgba(43,38,34,.25);border:6px solid #fff}
.hp--1{width:46%;height:62%;left:0;top:8%}
.hp--2{width:48%;height:70%;right:0;top:0}
.hp--3{width:44%;height:52%;left:30%;bottom:0}

/* секции */
.sec{padding:clamp(56px,8vw,104px) 0}
.sec--sand{background:var(--sand)}
.sec--dark{background:var(--dark);color:#f1e8dc}
.head{margin-bottom:44px;max-width:60ch}
.sub{font-size:18px;color:var(--muted)}
.sec--dark .sub{color:#c9bcab}
.lead{font-size:19px;max-width:30em;color:#d8cbb9}

/* номера */
.rooms{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.room{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px 26px;display:flex;flex-direction:column;gap:8px;transition:transform .25s,box-shadow .25s}
.room:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(43,38,34,.12)}
.room__n{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--sun2);font-weight:600}
.room h3{font-size:25px;min-height:2.3em}
.room__p{margin-top:auto;padding-top:18px;border-top:1px solid var(--line);display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.room__p b{font:600 44px/1 var(--ffd);letter-spacing:-.01em}
.room__p .rub{font-size:24px}
.room__p small{font-size:14px;color:var(--muted);margin-left:4px}
.room--top{background:var(--dark);color:#f1e8dc;border-color:var(--dark)}
.room--top .room__n{color:var(--gold)}
.room--top .room__p{border-color:rgba(255,255,255,.18)}
.room--top .room__p small{color:#c9bcab}

/* удобства */
.am{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.am li{background:var(--paper);border-radius:var(--r);padding:26px 26px 24px;border:1px solid var(--line);display:flex;flex-direction:column;gap:6px}
.am b{font:600 24px/1.15 var(--ffd)}
.am span{font-size:15.5px;color:var(--muted)}
.ic{width:46px;height:46px;border-radius:14px;background:var(--sand2);margin-bottom:10px;position:relative}
.ic::before{content:"";position:absolute;inset:0;background:var(--sun2);-webkit-mask:var(--m) center/24px no-repeat;mask:var(--m) center/24px no-repeat}
.ic--p{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3h8a5 5 0 010 10H9v8H5V3zm4 4v2h4a1 1 0 000-2H9z'/%3E%3C/svg%3E")}
.ic--c{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18a1 1 0 011 1v7a1 1 0 01-1 1H3a1 1 0 01-1-1V6a1 1 0 011-1zm1 2v5h16V7H4zm1 9h14v2H5v-2zm3 3h2v2H8v-2zm6 0h2v2h-2v-2z'/%3E%3C/svg%3E")}
.ic--w{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 18a2 2 0 100 4 2 2 0 000-4zM4.9 14.1l1.4 1.4a8 8 0 0111.4 0l1.4-1.4a10 10 0 00-14.2 0zM1.4 10.6L2.8 12a13 13 0 0118.4 0l1.4-1.4a15 15 0 00-21.2 0z'/%3E%3C/svg%3E")}
.ic--k{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18a1 1 0 011 1v12a1 1 0 01-1 1H3a1 1 0 01-1-1V6a1 1 0 011-1zm1 4v8h16V9H4zm0-2h16V7H4v0zm2 8h5v2H6v-2z'/%3E%3C/svg%3E")}
.ic--v{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l10 8h-3v10H5V10H2l10-8zm0 3.2L8 8.4V18h8V8.4l-4-3.2z'/%3E%3C/svg%3E")}
.ic--n{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 100 20 10 10 0 000-20zm-7.6 10A7.6 7.6 0 0112 4.4c1.7 0 3.2.5 4.5 1.5L5.9 16.5A7.600 7.600 0 014.4 12zm7.6 7.6c-1.7 0-3.2-.5-4.5-1.5L18.100 7.500a7.600 7.600 0 01-6.100 12.100z'/%3E%3C/svg%3E")}
.ic--m{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 3h18v18H3V3zm2 2v14h14V5H5zm1 1h5v5H6V6zm7 0h5v5h-5V6zm-7 7h5v5H6v-5zm7 0h5v5h-5v-5z'/%3E%3C/svg%3E")}
.ic--s{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a3 3 0 013 3c0 1.200-.7 2.200-1.700 2.700L22 18v2H2v-2l8.700-10.300A3 3 0 0112 2zm0 2a1 1 0 100 2 1 1 0 000-2zM5.500 18h13L12 10.400 5.500 18z'/%3E%3C/svg%3E")}
.ic--t{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 100 20 10 10 0 000-20zm0 2a8 8 0 110 16 8 8 0 010-16zm-1 3v6l4.500 2.700.9-1.600L13 12.200V7h-2z'/%3E%3C/svg%3E")}
.ic--u{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5h13v7a5 5 0 01-5 5H9a5 5 0 01-5-5V5zm13 1h2a2 2 0 010 4h-2V8h2V8h-2V6zM4 19h13v2H4v-2z'/%3E%3C/svg%3E")}
.ic--b{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 10h18v2H3v-2zm2 3h14v7h-2v-5H7v5H5v-7zM8 3h2v5H8V3zm6 0h2v5h-2V3z'/%3E%3C/svg%3E")}
.ic--d{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a3 3 0 110 6 3 3 0 010-6zM6 21v-7a6 6 0 0112 0v7h-2v-7a4 4 0 00-8 0v7H6z'/%3E%3C/svg%3E")}
.ic--z{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.500 4a2 2 0 110 4 2 2 0 010-4zm11 0a2 2 0 110 4 2 2 0 010-4zM3 10a2 2 0 110 4 2 2 0 010-4zm18 0a2 2 0 110 4 2 2 0 010-4zM12 11c3 0 6 3 6 6 0 2-2 3-3.500 2.400-.8-.3-1.600-.4-2.500-.4s-1.700.1-2.500.4C8 20 6 19 6 17c0-3 3-6 6-6z'/%3E%3C/svg%3E")}
.ic--f{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3l9 6v12H3V9l9-6zm0 2.400L5 10.100V19h4v-5h6v5h4v-8.900L12 5.400z'/%3E%3C/svg%3E")}

/* галерея */
.gal{columns:4;column-gap:14px}
.gal__i{display:block;width:100%;margin:0 0 14px;padding:0;border:0;background:none;cursor:zoom-in;border-radius:14px;overflow:hidden;break-inside:avoid;position:relative}
.gal__i img{width:100%;transition:transform .5s}
.gal__i:hover img{transform:scale(1.04)}
.gal__i:focus-visible{outline:3px solid var(--gold);outline-offset:3px}

/* отзывы */
.rev{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.rev__c{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:34px 34px 28px;position:relative}
.rev__c::before{content:"“";font:700 90px/1 var(--ffd);color:var(--sun);opacity:.35;position:absolute;left:24px;top:8px}
.rev__c blockquote{font-size:18px;line-height:1.65;padding-top:30px}
.rev__c figcaption{margin-top:18px;font-weight:600}
.rev__c figcaption span{display:block;font-weight:400;font-size:14px;color:var(--muted)}
.rev__more{margin-top:30px;text-align:center}
.btn--dk{color:var(--ink);border-color:var(--ink)}

/* бронирование */
.book{display:block}
.sec--dark h2{color:#fff}
.sec--dark .kicker{color:var(--gold)}
.tel{text-decoration:none;font-weight:600}
.tel--big{display:inline-block;margin-top:28px;font:600 clamp(30px,3.6vw,44px)/1.1 var(--ffd);color:#fff;border-bottom:2px solid var(--gold)}
.book__note{margin-top:12px;color:#c9bcab;font-size:15px}
.book__side{max-width:680px;margin-bottom:clamp(28px,4vw,44px)}
.bm{background:var(--paper);color:var(--ink);border-radius:24px;padding:clamp(14px,2.2vw,26px);box-shadow:0 26px 60px rgba(0,0,0,.4);min-height:120px}
.bm__f{display:grid;gap:16px}
.bm__row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bm label{display:flex;flex-direction:column;gap:7px;min-width:0}
.bm label span{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.bm input,.bm select{width:100%;padding:14px 16px;border:1.5px solid rgba(43,38,34,.22);border-radius:12px;background:#fff;font:500 16px/1.3 var(--ff);color:var(--ink);min-height:52px;appearance:none;-webkit-appearance:none}
.bm select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23a95e34' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}
.bm input:focus,.bm select:focus{border-color:var(--sun);outline:0;box-shadow:0 0 0 4px rgba(201,121,75,.18)}
.bm__msg{font-size:15px;min-height:1.2em;text-align:center;color:var(--sun2);font-weight:500}

/* контакты */
.cont{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,72px);align-items:center}
.cont__l{margin:22px 0 30px;border-top:1px solid var(--line)}
.cont__l li{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.cont__l span{font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.cont__l small{color:var(--muted);font-size:15px}
.tel--dk{color:var(--sun2);border-bottom:1px solid var(--sun2)}
.cont__btns{display:flex;gap:14px;flex-wrap:wrap}
.cont__ph img{border-radius:22px;box-shadow:0 24px 60px rgba(43,38,34,.22);aspect-ratio:4/3;object-fit:cover;width:100%}

.foot{background:var(--dark);color:#bdb0a0;font-size:14px;padding:26px 0}
.foot__in{display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap}

/* просмотр фото */
.lb{position:fixed;inset:0;z-index:100;background:rgba(20,15,12,.94);display:flex;align-items:center;justify-content:center;padding:24px}
.lb[hidden]{display:none}
.lb img{max-width:min(92vw,1100px);max-height:88vh;border-radius:10px;object-fit:contain}
.lb__x,.lb__n{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;border-radius:50%;width:48px;height:48px;font-size:28px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .2s}
.lb__x:hover,.lb__n:hover{background:rgba(255,255,255,.25)}
.lb__x{top:18px;right:18px}
.lb__n--p{left:18px;top:50%;transform:translateY(-50%)}
.lb__n--n{right:18px;top:50%;transform:translateY(-50%)}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}.btn,.room,.gal__i img{transition:none}}
.no-js .reveal{opacity:1;transform:none}

.doc__box{display:flex;gap:22px;align-items:flex-start;max-width:820px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:30px 32px}
.doc__box .ic{flex:none;margin:0}
.doc__box b{display:block;font:600 26px/1.2 var(--ffd);margin-bottom:8px}
.doc__box p{margin:0 0 8px;color:var(--muted)}
.doc__note{margin-top:14px!important;font-size:16px}
@media (max-width:620px){.doc__box{flex-direction:column;padding:24px 22px}}

/* адаптив */
@media (max-width:1180px){
  .nav{display:none}
  .burger{display:block}
  .top__cta,.top__tel{display:none}
  .nav.open{display:flex;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;background:var(--sand);border-bottom:1px solid var(--line);padding:8px 20px 18px}
  .nav.open a{padding:14px 0;border-bottom:1px solid var(--line);font-size:17px}
  .nav.open .nav__book{display:block;color:var(--sun2);font-weight:600}
}
@media (max-width:1020px){
  .rooms{grid-template-columns:repeat(2,1fr)}
  .am{grid-template-columns:repeat(2,1fr)}
  .gal{columns:3}
}
@media (max-width:820px){
  .hero__in,.book,.cont{grid-template-columns:1fr}
  .hero__ph{order:-1;height:420px;max-width:520px;width:100%;margin-inline:auto}
  .rev{grid-template-columns:1fr}
  .cont__ph{order:-1}
}
@media (max-width:620px){
  body{font-size:16.5px}
  .wrap{width:calc(100% - 32px)}
  .top__in{min-height:66px;gap:10px}
  .brand img{width:46px;height:46px}
  .brand__t{font-size:24px}
  .hero__ph{height:340px}
  .hero__btns .btn{flex:1 1 100%}
  .badges{gap:18px 24px}
  .badges li{max-width:46%}
  .rooms,.am{grid-template-columns:1fr}
  .room h3{min-height:0}
  .gal{columns:2;column-gap:10px}
  .gal__i{margin-bottom:10px}
  .bm__row{grid-template-columns:1fr}
  .cont__l li{grid-template-columns:1fr;gap:4px}
  .lb__n{width:42px;height:42px}
}




.cont__ph img{aspect-ratio:1/1;object-position:50% 38%}
.ybadge{margin-top:14px;min-height:50px}
.ybadge iframe{display:block;border:0}
.mapsec{padding:0 0 90px}
.mapsec iframe{display:block;width:100%;height:400px;border:0;border-radius:22px;box-shadow:0 24px 60px rgba(43,38,34,.18)}
@media (max-width:640px){.mapsec{padding-bottom:60px}.mapsec iframe{height:320px}}
