/* Аккуратное обновление существующей вёрстки. */
:root { --ink:#30352d; --muted:#737569; --accent:#877647; --sand:#f4f2eb; --line:#e6e3d8; --paper:#fdfcf8; }
html { font-size:16px; scroll-padding-top:88px; }
body { opacity:1; color:var(--ink); background:var(--paper); line-height:1.55; overflow-x:clip; }
[data-aos] { opacity:1!important; transform:none!important; }
@font-face { font-family:MyriadPro; src:url('../fonts/MyriadProRegular.woff') format('woff'); font-weight:400; font-display:swap; }
@font-face { font-family:MyriadPro; src:url('../fonts/MyriadProSemiBold.woff') format('woff'); font-weight:500 600; font-display:swap; }
@font-face { font-family:Gilroy; src:url('../fonts/Gilroy-Light.woff') format('woff'); font-weight:300; font-display:swap; }
body .container { width:100%; max-width:1240px; padding-left:28px; padding-right:28px; }
h1,h2 { color:var(--ink); font:300 clamp(32px,3.5vw,48px)/1.15 Gilroy,sans-serif; letter-spacing:-1.1px; margin-bottom:32px; }
h3 { line-height:1.25; }
p { color:var(--ink); font-size:18px; line-height:1.8; }
a,button,input,textarea,summary { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible { outline:3px solid #877647!important; outline-offset:4px; }
.skip-link { position:fixed; left:16px; top:-100px; z-index:20000; padding:14px; background:white; }
.skip-link:focus { top:12px; }
.button,.room .button,.table_price .button,.modal-dialog .button,.modal_room .in_room .button { min-height:48px; height:auto; padding:13px 25px; font-size:15px; font-weight:500; line-height:1.2; letter-spacing:.3px; text-transform:none; border:1px solid var(--accent); border-radius:7px; background:var(--accent); color:white; justify-content:center; transition:background .2s,box-shadow .2s,transform .2s; }
.button:hover,.button:focus,.table_price .button:hover { color:white; background:#6d603c; border-color:#6d603c; box-shadow:0 5px 16px #5147291a; }
.button:active { transform:translateY(1px); }
.button:disabled { opacity:.6; cursor:wait; }
.main_header { padding:21px 0; background:var(--paper); }
.logo_header { width:140px; max-width:100%; }
.header_info { background:transparent; gap:8px; }
.header_info a { font-size:23px; letter-spacing:.3px; }
.header_info .mail { font-size:15px; color:var(--accent); text-decoration:none; }
.header_info_wrapper:before,.header_info_wrapper:after { display:none; }
.nav_bar,.nav_bar.is_active { display:flex!important; position:sticky; top:0; right:auto; transform:none; flex-direction:row; justify-content:center; align-items:center; gap:34px; padding:0 24px; margin-bottom:18px; height:58px; background:#fdfcf8f5; backdrop-filter:blur(14px); border-block:1px solid var(--line); z-index:100; overflow-x:auto; scrollbar-width:none; }
.nav_bar::-webkit-scrollbar { display:none; }
.nav_bar a { margin:0; padding:18px 0 16px; flex-shrink:0; color:#626658; font-size:15px; line-height:22px; border-bottom:2px solid transparent; }
.nav_bar a:before { display:none; }
.nav_bar a:hover,.nav_bar a.active { color:var(--accent); border-bottom-color:var(--accent); }
.hero { max-width:1600px; margin:0 auto; padding:0 28px; }
.hero .hero_wrapper { min-height:0; margin:0; overflow:hidden; border-radius:12px; position:relative; background:#c7d4c1; }
.hero_image { display:block; width:100%; height:auto; aspect-ratio:3/1; object-fit:cover; animation:hero-in 1s ease-out both; }
.hero_caption { position:absolute; bottom:0; left:0; right:0; padding:64px 32px 25px; background:linear-gradient(transparent,#162315b8); color:white; display:flex; align-items:center; justify-content:space-between; font-size:18px; gap:12px; }
.hero_caption span:first-child { font-size:12px; letter-spacing:3px; }
.about_wrapper { border:0; margin:0; padding:76px 0 82px; text-align:left; overflow:visible; }
.about_wrapper .col-12 { display:grid; grid-template-columns:.85fr 1.4fr; gap:70px; align-items:start; }
.about_wrapper h1 { color:var(--accent); margin:0; max-width:330px; }
.about_wrapper p { margin:0; }
.room,.infrastructure,.gallery,.reviews { margin:0 0 88px; }
.room .room_item { margin-bottom:30px; background:white; border:1px solid var(--line); border-radius:10px; overflow:hidden; box-shadow:0 4px 24px #3a3c2c05; transition:box-shadow .3s; }
.room .pic { overflow:hidden; margin:0; }
.room .pic:before { display:none; }
.room .pic:after { content:''; position:absolute; inset:40% 0 0; background:linear-gradient(transparent,#172114b3); pointer-events:none; }
.room .pic img { width:100%; aspect-ratio:635/390; object-fit:cover; transition:transform .65s cubic-bezier(.2,.7,.3,1); }
.room h3 { z-index:1; bottom:24px; left:24px; font-size:26px; text-transform:none; }
.room .room_footer { padding:22px 24px; gap:15px; flex-direction:row-reverse; justify-content:space-between; align-items:center; }
.room .button { margin:0; padding:12px 18px; flex-shrink:0; }
.room span { color:var(--muted); font-size:16px; margin:0; }
.infrastructure_wrapper { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:0; }
.infrastructure_wrapper .item { width:auto; min-height:154px; height:auto; padding:28px 12px 20px; border:1px solid var(--line); border-radius:8px; background:var(--sand); font-size:16px; line-height:1.4; }
.infrastructure_wrapper img { height:42px; max-width:56px; object-fit:contain; margin-bottom:18px; }
.infrastructure_wrapper .chargeable { width:auto; top:8px; left:8px; padding:4px 7px; border-radius:4px; background:#e5dfce; color:#685a36; font-size:11px; }
.price { background:#343c31!important; padding:64px 0; margin-bottom:88px; }
.price h2 { margin-bottom:16px; }
.price_hint { font-size:15px; color:#dfdfcf; margin-bottom:24px; }
.table-responsive-md { overflow-x:auto; border-radius:8px; scrollbar-color:#b5a779 #f1efe7; scrollbar-width:thin; }
.table_price { width:100%; max-width:none; min-width:970px; margin:0; }
.table_price .td_text { font-size:17px; padding:14px 18px; min-width:150px; }
.table_price tbody tr td { font-size:17px; height:70px; background:#e9e3d3; border-color:#d7d0bd; color:var(--ink); }
.table_price tbody tr:nth-child(even) td { background:#f3f0e7; }
.table_price thead tr th,.table_price thead tr th.date { font-size:16px; background:#6d654e; width:auto; }
.table_price thead tr:last-child th { font-size:14px; background:#93876b; }
.table_price .button { font-size:14px; min-height:44px; padding:10px 14px; }
.price .alert_price { margin-top:24px; text-align:left; font-size:15px; color:#e5e3d9; line-height:1.6; }
.price .alert_price span { padding:0; }
.price .alert_price span:before { display:none; }
.gallery { display:block!important; }
.section_heading { display:flex; justify-content:space-between; align-items:baseline; gap:20px; }
.section_heading span { color:var(--muted); font-size:16px; }
.gallery_grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.gallery_tile { display:block; overflow:hidden; border-radius:8px; background:var(--sand); }
.gallery_tile img { width:100%; height:100%; aspect-ratio:4/3; object-fit:cover; display:block; transition:transform .65s; }
.gallery_more summary { list-style:none; cursor:pointer; margin:24px auto; width:fit-content; padding:12px 24px; border:1px solid var(--line); border-radius:6px; color:var(--accent); font-size:16px; }
.gallery_more summary::-webkit-details-marker { display:none; }
.gallery_more summary span { padding-left:20px; }
.gallery_more[open] summary span { display:inline-block; transform:rotate(45deg); }
.about_hotel { background-attachment:scroll; padding:72px 0; min-height:430px; margin-bottom:88px; position:relative; isolation:isolate; }
.about_hotel:before { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#13251ce6,#13251c40); z-index:-1; }
.about_hotel h2 { margin:0 0 25px; padding:0; }
.about_hotel h2:before { display:none; }
.about_hotel p { font-size:18px; line-height:1.8; }
.reviews h2 { text-align:left; margin-bottom:32px; }
.reviews iframe { display:block; height:540px; border:1px solid var(--line); border-radius:10px; background:var(--sand); }
.contacts { max-width:1240px; padding:0 28px; margin:0 auto 80px; align-items:stretch; gap:48px; }
.contacts .contacts_item { width:50%; min-width:0; }
.contacts .contacts_form { padding:0; background:transparent; }
.contacts .contacts_form_wrapper { padding:0; margin:0; }
.contacts h2 { font-size:42px; margin-bottom:28px; }
.contacts h3 { font-size:26px; margin-bottom:24px; }
.contacts .address { margin-bottom:35px; line-height:1.7; }
.contacts .address .phone,.contacts .address .mail { margin-top:12px; }
.contacts .address .mail { color:var(--accent); }
input:not([type=hidden]),textarea { min-height:50px; height:auto; padding:13px 15px; font-size:16px; line-height:1.4; background:white; border:1px solid #d9d6ca; border-radius:6px; margin-bottom:16px; color:var(--ink); }
input::placeholder,textarea::placeholder { color:#78796e; }
input:focus,textarea:focus { border-color:var(--accent); box-shadow:0 0 0 3px #87764712; }
.form-status { margin:18px 0 0; color:#8a3c29; font-size:16px; line-height:1.5; text-align:left; }
.contacts .map_wrapper { min-height:400px; border-radius:10px; overflow:hidden; background:var(--sand); border:1px solid var(--line); }
.contacts .map_wrapper:before,.contacts .map_wrapper:after { display:none; }
.map { height:100%; min-height:480px; }
.map_link { position:absolute; bottom:20px; left:20px; right:20px; background:var(--paper); border:1px solid var(--line); border-radius:6px; padding:14px; text-align:center; color:var(--accent); box-shadow:0 3px 18px #0001; }
.main_footer { background:var(--sand); }
.main_footer .footer_wrapper { margin:0; padding:30px 0; border:0; font-size:14px; color:var(--muted); }
.main_footer .copy { margin:0; text-align:left; }
.main_footer .soc a { min-width:44px; min-height:44px; display:flex; align-items:center; justify-content:center; }
.modal-dialog { max-width:620px; width:calc(100% - 32px); margin:40px auto; }
.modal-dialog .modal-content { border-radius:12px; padding:60px 36px 36px; box-shadow:0 20px 80px #0002; }
.modal-dialog .modal_close { top:12px; right:12px; width:44px; height:44px; border-radius:50%; background:var(--sand); }
.modal-dialog .modal_close svg { width:16px; height:16px; }
.modal-dialog .modal_close svg path { fill:var(--ink); }
.modal-dialog h2 { text-transform:none; font-size:32px; line-height:1.2; letter-spacing:0; margin-bottom:28px; }
.modal-dialog .date_order { display:grid; grid-template-columns:1fr 1fr; gap:10px 16px; text-align:left; margin:24px 0; }
.date_order span:first-child { grid-area:1/1; }
.date_order span:nth-of-type(2) { grid-area:1/2; }
.modal-dialog .date_order input { width:100%; min-width:0; margin:0; font-size:16px; }
.modal-dialog .modal_desc { line-height:1.6; }
.modal_room .modal-dialog { max-width:1100px; }
.modal_room .modal-content { padding:60px 20px 24px; }
.modal_room p,.modal_room p span { font-size:16px!important; line-height:1.6; }
.modal_room .in_room_wrapper span { font-size:14px; line-height:1.4; }
.js_room_slider { display:block; }
.js_room_slider .slick-list { border-radius:8px; aspect-ratio:635 / 390; background:var(--sand); }
.js_room_slider .slick-slide img { display:block; width:100%; height:auto; aspect-ratio:635 / 390; object-fit:contain; }
.js_room_slider .slick-dots { gap:8px; margin:12px 0; justify-content:flex-start; }
.js_room_slider .slick-dots li { margin:0; width:calc(25% - 6px); }
.js_room_slider .slick-dots li img { width:100%; border-radius:4px; }
.js_room_slider .slick-dots button { display:block; width:100%; padding:0; border:2px solid transparent; border-radius:5px; cursor:pointer; }
.js_room_slider .slick-dots .slick-active button { border-color:var(--accent); }
.room-loading { padding:80px 20px; text-align:center; }
@media (hover:hover) { .room_item:hover { box-shadow:0 12px 30px #30352d12; } .room .pic:hover img,.gallery_tile:hover img { transform:scale(1.035); } }
@keyframes hero-in { from { opacity:.6; transform:scale(1.025); } to { opacity:1; transform:scale(1); } }
@keyframes reveal-in { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:translateY(0); } }
.reveal-in { animation:reveal-in .65s cubic-bezier(.2,.7,.3,1) both; }
@media (max-width:991px) {
  .nav_bar { gap:26px; }
  .about_wrapper .col-12 { gap:35px; }
  .room .room_footer { align-items:stretch; flex-direction:column-reverse; padding:20px; }
  .infrastructure_wrapper { grid-template-columns:repeat(3,1fr); }
  .contacts { gap:28px; }
  .hero_caption { padding:40px 24px 18px; }
}
@media (max-width:767px) {
  body .container { padding-left:20px; padding-right:20px; }
  .main_header { padding:16px 0 12px; }
  .logo_header { width:118px; }
  .main_header .button { font-size:14px; padding:12px 15px; min-height:44px; }
  .header_info_wrapper { margin-top:14px; }
  .header_info { flex-direction:row; justify-content:space-between; padding:0; width:100%; }
  .header_info a { font-size:17px; line-height:1.4; letter-spacing:0; }
  .header_info .mail { font-size:14px; }
  .nav_bar { justify-content:flex-start; padding:0 20px; gap:25px; height:54px; margin-bottom:14px; }
  .nav_bar a { font-size:14px; padding:15px 0; }
  .hero { padding:0 12px; }
  .hero .hero_wrapper { border-radius:8px; }
  .hero_image { aspect-ratio:1.35; object-position:56% center; }
  .hero_caption { flex-direction:column; align-items:flex-start; gap:7px; padding:50px 20px 18px; font-size:17px; }
  .hero_caption span:first-child { font-size:10px; letter-spacing:2px; }
  .about_wrapper { padding:40px 0 52px; }
  .about_wrapper .col-12 { display:block; }
  .about_wrapper h1 { max-width:none; margin-bottom:20px; }
  p { font-size:17px; line-height:1.7; }
  h1,h2 { font-size:34px; letter-spacing:-.7px; margin-bottom:25px; }
  .room,.infrastructure,.gallery,.reviews { margin-bottom:54px; }
  .room h3 { font-size:24px; bottom:20px; left:20px; }
  .room .room_item { margin-bottom:22px; }
  .room .button { width:100%; }
  .infrastructure_wrapper { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .infrastructure_wrapper .item { font-size:15px; min-height:145px; }
  .price { padding:40px 0; margin-bottom:54px; }
  .price h2 { text-align:left; }
  .price_hint { font-size:14px; }
  .section_heading { display:block; margin-bottom:24px; }
  .section_heading h2 { margin-bottom:10px; }
  .section_heading span { font-size:15px; }
  .gallery_grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .gallery_tile img { aspect-ratio:1; }
  .about_hotel { padding:44px 0; min-height:0; margin-bottom:54px; }
  .about_hotel p { font-size:17px; line-height:1.7; }
  .about_hotel h2 { font-size:34px; }
  .reviews iframe { height:360px; border-radius:8px; }
  .contacts { padding:0 20px; flex-direction:column; gap:30px; margin-bottom:48px; }
  .contacts .contacts_item { width:100%; }
  .contacts h2 { font-size:34px; }
  .contacts .map_wrapper,.map { min-height:320px; height:320px; }
  .contacts .button { width:100%; }
  .main_footer .copy { text-align:center; line-height:1.6; }
  .main_footer .soc { margin-top:10px; }
  .modal-dialog { margin:12px auto; width:calc(100% - 24px); max-width:620px; }
  .modal-dialog .modal-content { padding:64px 22px 28px; }
  .modal-dialog h2 { font-size:27px; }
  .modal_room .modal-content { padding:64px 6px 24px; }
  .modal_room .in_room .button { width:100%; }
  .modal_room .in_room_wrapper span { font-size:14px; }
}
@media (prefers-reduced-motion:reduce) {
  *,*:before,*:after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
