/* =========================================================
   Гостевой дом «Шоколад» — стили
   Палитра: шоколад #2a1c10 · терракота #c66a3d · крем #faf6ee · #e8c6a8
   Шрифт: Manrope
   ========================================================= */

html,body{margin:0;padding:0;background:#faf6ee;color:#2a1c10;font-family:'Manrope',system-ui,sans-serif;-webkit-font-smoothing:antialiased;}
*{box-sizing:border-box;}
img{max-width:100%;}
::selection{background:#c66a3d;color:#fff;}
a{color:inherit;}

@keyframes ch-fadeUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}

/* ===== Wide desktop (>1440px) — hero, nav, marquee full-bleed ===== */
@media (min-width: 1441px){
  #ch-nav, #ch-marquee{
    margin-left:calc((100vw - 100%) / -2) !important;
    margin-right:calc((100vw - 100%) / -2) !important;
  }
  #ch-nav{
    padding-left:calc((100vw - 1440px) / 2 + 56px) !important;
    padding-right:calc((100vw - 1440px) / 2 + 56px) !important;
  }
  #ch-hero{
    margin-left:calc((100vw - 100%) / -2) !important;
    margin-right:calc((100vw - 100%) / -2) !important;
  }
  #ch-hero > div:last-child{
    padding-left:calc((100vw - 1440px) / 2 + 56px) !important;
    padding-right:calc((100vw - 1440px) / 2 + 56px) !important;
  }
}

/* ===== Tablet & smaller-desktop (≤1280px) ===== */
@media (max-width: 1280px){
  #ch-root{max-width:100% !important;}
  #ch-nav{padding:18px 32px !important;}
  #ch-nav nav{gap:22px !important;}
  #ch-hero{padding:48px 32px 36px !important;}
  #ch-hero h1{font-size:64px !important;}
  #about, #infra, #rooms, #map, #reviews, #gallery, #book, #faq, #ch-footer{padding-left:32px !important;padding-right:32px !important;}
}

/* ===== Tablet (≤1024px) ===== */
@media (max-width: 1024px){
  #ch-nav{padding:16px 28px !important;}
  #ch-nav > nav{display:none !important;}
  #ch-nav .ch-nav-phone{display:none !important;}

  #ch-hero{height:auto !important;min-height:640px !important;padding:48px 28px 36px !important;}
  #ch-hero h1{font-size:54px !important;line-height:1.04 !important;}
  #ch-hero .ch-hero-p{font-size:18px !important;}

  #about{grid-template-columns:1fr !important;gap:56px !important;padding-top:80px !important;padding-bottom:80px !important;}
  #about h2{font-size:46px !important;}
  .ch-about-visual{max-width:560px;}

  #infra,#reviews{margin:0 16px !important;padding-top:64px !important;padding-bottom:64px !important;padding-left:32px !important;padding-right:32px !important;border-radius:28px !important;}
  #rooms,#map,#gallery,#faq{padding-top:96px !important;padding-bottom:64px !important;}
  #book{padding-top:0 !important;padding-bottom:64px !important;}

  #infra h2,#rooms h2,#map h2,#reviews h2,#gallery h2{font-size:46px !important;}
  #book h2{font-size:40px !important;}

  .ch-row-header{flex-direction:column !important;align-items:flex-start !important;gap:20px !important;}
  .ch-cols-3{grid-template-columns:repeat(2,1fr) !important;}

  .ch-reviews-card{flex:0 0 calc((100% - 24px) / 3) !important;}

  .ch-gallery-grid{grid-auto-rows:170px !important;}

  .ch-book-card{padding:48px !important;grid-template-columns:1fr !important;gap:48px !important;}

  .ch-faq-grid{grid-template-columns:1fr !important;gap:36px !important;}

  #ch-footer{margin:0 16px 16px !important;padding:64px 32px 32px !important;}
  .ch-footer-grid{grid-template-columns:repeat(2,1fr) !important;gap:40px !important;}
}

/* ===== Mobile (≤640px) ===== */
@media (max-width: 640px){
  #ch-nav{padding:12px 16px !important;}
  #ch-nav .ch-logo-sub{display:none !important;}
  #ch-nav .ch-logo-name{font-size:16px !important;}
  #ch-nav .ch-nav-cta{padding:9px 14px !important;font-size:12px !important;}

  #ch-hero{min-height:580px !important;padding:28px 18px 20px !important;gap:0 !important;}
  #ch-hero > div{padding:0 !important;gap:24px !important;}
  #ch-hero h1{font-size:34px !important;letter-spacing:-0.025em !important;margin-bottom:18px !important;}
  #ch-hero .ch-hero-eyebrow{font-size:11px !important;}
  #ch-hero .ch-hero-p{font-size:15px !important;margin-bottom:24px !important;}
  #ch-hero .ch-hero-ctas{flex-wrap:wrap !important;gap:10px !important;}
  #ch-hero .ch-hero-ctas a{padding:14px 20px !important;font-size:14px !important;}
  #ch-hero .ch-hero-badges{flex-direction:column !important;padding:8px !important;align-self:stretch !important;border-radius:16px !important;}
  #ch-hero .ch-hero-badges > div{border-right:none !important;border-bottom:1px solid #ece1cc;padding:10px 14px !important;width:100%;}
  #ch-hero .ch-hero-badges > div:last-child{border-bottom:none !important;}

  .ch-marquee-text{font-size:11px !important;letter-spacing:0.12em !important;gap:28px !important;}

  #about, #infra, #rooms, #map, #reviews, #gallery, #book, #faq, #ch-footer{padding-left:18px !important;padding-right:18px !important;}
  #about{padding-top:64px !important;padding-bottom:64px !important;gap:40px !important;}
  #infra,#reviews{margin:0 !important;border-radius:0 !important;padding-top:56px !important;padding-bottom:56px !important;}
  #rooms,#map,#gallery,#faq{padding-top:72px !important;padding-bottom:56px !important;}
  #book{padding-top:0 !important;padding-bottom:56px !important;}

  #about h2,#infra h2,#rooms h2,#map h2,#reviews h2,#gallery h2{font-size:32px !important;line-height:1.05 !important;}
  #book h2{font-size:28px !important;}
  #faq h2{font-size:32px !important;}

  .ch-about-visual{order:-1;}
  .ch-about-visual-mini{display:none !important;}
  .ch-about-visual-pill{right:-12px !important;top:18px !important;max-width:200px !important;padding:14px 16px !important;font-size:13px !important;}

  .ch-stats-grid{gap:12px !important;}
  .ch-stat-card{padding:18px !important;}
  .ch-stat-num{font-size:30px !important;}

  .ch-cols-3{grid-template-columns:1fr !important;gap:16px !important;}
  .ch-infra-card-img{height:200px !important;}

  .ch-reviews-card{flex:0 0 100% !important;padding:24px !important;}
  .ch-reviews-controls .ch-rating-block{display:none !important;}
  .ch-reviews-controls{gap:12px !important;}

  .ch-gallery-tabs{overflow-x:auto !important;flex-wrap:nowrap !important;max-width:100% !important;}
  .ch-gallery-tabs::-webkit-scrollbar{display:none;}
  .ch-gallery-tabs button{flex-shrink:0;}
  .ch-gallery-grid{grid-template-columns:repeat(2,1fr) !important;grid-auto-rows:130px !important;gap:10px !important;}
  .ch-gallery-grid > *{grid-column:auto !important;grid-row:auto !important;}
  .ch-gallery-grid > *:first-child{grid-column:span 2 !important;grid-row:span 2 !important;}

  .ch-book-card{padding:32px 22px !important;border-radius:24px !important;gap:36px !important;}
  .ch-book-card h2{font-size:30px !important;}
  .ch-book-form{padding:24px !important;}
  .ch-form-row{grid-template-columns:1fr !important;gap:14px !important;}

  .ch-faq-grid{gap:28px !important;}

  #ch-footer{margin:0 !important;border-radius:0 !important;padding:48px 20px 28px !important;}
  .ch-footer-grid{grid-template-columns:1fr !important;gap:32px !important;padding-bottom:28px !important;}
  .ch-footer-bottom{flex-direction:column !important;gap:14px !important;align-items:flex-start !important;text-align:left !important;}
  .ch-footer-bottom > div:last-child{flex-direction:column !important;gap:8px !important;}
  .ch-chat-fab{bottom:18px !important; right:18px !important; width:52px !important; height:52px !important;}
  .ch-rooms-grid{grid-template-columns:1fr !important;}
  .ch-season-toggle{flex-wrap:wrap !important;}

  /* mobile reviews slider → horizontal scroll-snap */
  #reviews .ch-slider{overflow-x:auto !important;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;margin:0 -18px;padding:0 18px;}
  #reviews .ch-slider::-webkit-scrollbar{display:none;}
  #reviews .ch-slider-track{transform:none !important;gap:12px !important;padding-right:18px;}
  #reviews .ch-reviews-card{scroll-snap-align:start;flex:0 0 86% !important;}
  #reviews .ch-slider-prev,#reviews .ch-slider-next{display:none !important;}
  #reviews .ch-dots{display:none !important;}
}

/* ===== Smooth scrolling ===== */
html{scroll-behavior:smooth;}

/* ===== Reveal-on-scroll ===== */
[data-reveal], [data-reveal-stagger] > *{
  opacity:0; transform:translateY(28px);
  transition:opacity 0.8s cubic-bezier(0.22,1,0.36,1), transform 0.8s cubic-bezier(0.22,1,0.36,1);
}
[data-reveal].is-in, [data-reveal-stagger].is-in > *{opacity:1; transform:none;}
[data-reveal-stagger].is-in > *:nth-child(1){transition-delay:0.05s;}
[data-reveal-stagger].is-in > *:nth-child(2){transition-delay:0.13s;}
[data-reveal-stagger].is-in > *:nth-child(3){transition-delay:0.21s;}
[data-reveal-stagger].is-in > *:nth-child(4){transition-delay:0.29s;}
[data-reveal-stagger].is-in > *:nth-child(5){transition-delay:0.37s;}
[data-reveal-stagger].is-in > *:nth-child(6){transition-delay:0.45s;}
[data-reveal-stagger].is-in > *:nth-child(7){transition-delay:0.53s;}
[data-reveal-stagger].is-in > *:nth-child(8){transition-delay:0.61s;}

/* ===== Nav micro-interactions ===== */
#ch-nav{transition:box-shadow 0.3s ease;}
#ch-nav > nav a{position:relative; transition:color 0.2s ease;}
#ch-nav > nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:-4px; height:1px;
  background:#c66a3d; transform:scaleX(0); transform-origin:left;
  transition:transform 0.35s cubic-bezier(0.22,1,0.36,1);
}
#ch-nav > nav a:hover{color:#2a1c10;}
#ch-nav > nav a:hover::after{transform:scaleX(1);}
#ch-nav .ch-nav-cta{transition:background 0.3s cubic-bezier(0.22,1,0.36,1), transform 0.18s cubic-bezier(0.22,1,0.36,1), box-shadow 0.3s cubic-bezier(0.22,1,0.36,1) !important; animation:ch-bookpulse 2.8s ease-in-out infinite;}
#ch-nav .ch-nav-cta:hover{background:#b35a30 !important; box-shadow:0 8px 22px rgba(198,106,61,0.42); animation-play-state:paused;}
#ch-nav .ch-nav-cta:active{transform:scale(0.95);}
@keyframes ch-bookpulse{0%,100%{box-shadow:0 4px 14px rgba(198,106,61,0.28), 0 0 0 0 rgba(198,106,61,0.42);}50%{box-shadow:0 7px 18px rgba(198,106,61,0.40), 0 0 0 9px rgba(198,106,61,0);}}
#ch-nav > div:first-child > div:first-child{transition:transform 0.4s cubic-bezier(0.22,1,0.36,1);}
#ch-nav > div:first-child:hover > div:first-child{transform:rotate(-8deg);}

/* ===== Hero parallax ===== */
#ch-hero > img{will-change:transform; transition:transform 0.1s linear;}

/* ===== CTA buttons ===== */
.ch-cta-primary{transition:box-shadow 0.25s ease, transform 0.12s ease, background 0.2s ease !important;}
.ch-cta-primary:hover{box-shadow:0 14px 32px rgba(198,106,61,0.42) !important; background:#b35a30 !important;}
.ch-cta-primary:active{transform:scale(0.96);}
.ch-cta-primary > span{display:inline-block; transition:transform 0.35s cubic-bezier(0.22,1,0.36,1);}
.ch-cta-primary:hover > span{transform:translateX(6px);}
.ch-cta-secondary{transition:background 0.25s ease, border-color 0.2s ease;}
.ch-cta-secondary:hover{background:rgba(250,246,238,0.14) !important; border-color:rgba(250,246,238,0.85) !important;}

/* ===== Trust badges hover ===== */
.ch-hero-badges > div{transition:background 0.25s ease;}
.ch-hero-badges > div:hover{background:rgba(244,233,214,0.55); border-radius:10px;}

/* ===== Marquee pause on hover ===== */
#ch-marquee:hover .ch-marquee-text{animation-play-state:paused;}

/* ===== Stat cards ===== */
.ch-stat-card{transition:transform 0.3s ease, border-color 0.25s ease, box-shadow 0.3s ease;}
.ch-stat-card:hover{transform:translateY(-3px); border-color:#c66a3d !important; box-shadow:0 12px 28px rgba(42,28,16,0.08);}

/* ===== Infra & map cards hover ===== */
#infra .ch-cols-3 > div, #map .ch-cols-3 > div{transition:transform 0.45s cubic-bezier(0.22,1,0.36,1), box-shadow 0.45s ease;}
#infra .ch-cols-3 > div:hover, #map .ch-cols-3 > div:hover{transform:translateY(-6px); box-shadow:0 22px 40px -18px rgba(42,28,16,0.22);}
.ch-infra-card-img{overflow:hidden;}
.ch-infra-card-img img{transition:transform 0.9s cubic-bezier(0.22,1,0.36,1);}
#infra .ch-cols-3 > div:hover .ch-infra-card-img img{transform:scale(1.07);}

/* ===== Gallery zoom ===== */
.ch-gallery-grid > div{overflow:hidden; position:relative;}
.ch-gallery-grid img{transition:transform 0.9s cubic-bezier(0.22,1,0.36,1);}
.ch-gallery-grid > div:hover img{transform:scale(1.08);}

/* ===== Reviews controls ===== */
.ch-slider-prev, .ch-slider-next{transition:transform 0.2s ease, background 0.2s ease;}
.ch-slider-prev:hover{transform:scale(1.08); background:rgba(250,246,238,0.18) !important;}
.ch-slider-next:hover{transform:scale(1.08); background:#b35a30 !important;}
.ch-dot{transition:width 0.3s ease, background 0.3s ease;}

/* ===== FAQ details ===== */
#faq details{transition:background 0.2s ease, border-color 0.25s ease;}
#faq details:hover{border-color:#c66a3d !important;}
#faq details[open]{background:#fffaf2;}
#faq details summary span:last-child{display:inline-block; transition:transform 0.35s cubic-bezier(0.22,1,0.36,1);}
#faq details[open] summary span:last-child{transform:rotate(45deg);}
#faq summary{list-style:none;}
#faq summary::-webkit-details-marker{display:none;}

/* ===== Form ===== */
.ch-book-form input, .ch-book-form textarea, .ch-book-form select{transition:border-color 0.2s ease, box-shadow 0.25s ease;}
.ch-book-form input:focus, .ch-book-form textarea:focus, .ch-book-form select:focus{border-color:#c66a3d !important; box-shadow:0 0 0 4px rgba(198,106,61,0.12);}
.ch-book-form button[type="button"]{transition:background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.12s ease;}
.ch-book-form button[type="button"]:hover{border-color:#c66a3d !important;}
.ch-book-form button[type="button"]:active{transform:scale(0.96);}
.ch-field-error{font-size:12px;color:#c0392b;min-height:14px;line-height:1.2;}
.ch-input-invalid{border-color:#c0392b !important;}

/* ===== Footer social ===== */
#ch-footer .ch-social-link{transition:background 0.2s ease, transform 0.2s cubic-bezier(0.22,1,0.36,1), color 0.2s ease;}
#ch-footer .ch-social-link:hover{background:#c66a3d !important; color:#fff !important; transform:translateY(-3px);}
#ch-footer .ch-footer-grid a:not(.ch-social-link){transition:color 0.2s ease;}
#ch-footer .ch-footer-grid a:not(.ch-social-link):hover{color:#e8c6a8 !important;}

/* ===== Rooms cards ===== */
#rooms .ch-rooms-grid > div{transition:transform 0.45s cubic-bezier(0.22,1,0.36,1), box-shadow 0.45s cubic-bezier(0.22,1,0.36,1), border-color 0.3s ease;}
#rooms .ch-rooms-grid > div:hover{transform:translateY(-6px); box-shadow:0 22px 44px -20px rgba(42,28,16,0.26); border-color:#e3d3b8 !important;}
#rooms .ch-rooms-grid .ch-room-bg{transition:transform 0.9s cubic-bezier(0.22,1,0.36,1), background-image 0.3s ease; }
/* #rooms .ch-rooms-grid > div:hover .ch-room-bg{transform:scale(1.07);} */
.ch-room-book{transition:background 0.3s cubic-bezier(0.22,1,0.36,1), transform 0.18s cubic-bezier(0.22,1,0.36,1) !important;}
.ch-room-book:hover{background:#b35a30 !important;}
.ch-room-book:active{transform:scale(0.95);}
.ch-season-btn{transition:background 0.3s cubic-bezier(0.22,1,0.36,1), color 0.3s ease, border-color 0.3s ease !important;}
.ch-room-price{transition:color 0.3s ease;}
.ch-room-dot{transition:width 0.35s cubic-bezier(0.22,1,0.36,1), background 0.35s ease;}

/* ===== Gallery expand tile ===== */
.ch-gallery-more{transition:background 0.3s ease, transform 0.18s cubic-bezier(0.22,1,0.36,1);}
.ch-gallery-more:hover{background:#3a2818 !important;}
.ch-gallery-more:active{transform:scale(0.97);}
.ch-gallery-extra{animation:ch-fadeUp 0.7s cubic-bezier(0.22,1,0.36,1) backwards;}

/* ===== Floating chat bubble ===== */
.ch-chat-fab{
  position:fixed; bottom:24px; right:24px; width:60px; height:60px; border-radius:50%;
  background:#c66a3d; color:#fff; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 32px rgba(198,106,61,0.4); z-index:40;
  transition:transform 0.25s cubic-bezier(0.22,1,0.36,1), box-shadow 0.25s ease;
  animation:ch-fab-in 0.6s 0.4s cubic-bezier(0.22,1,0.36,1) backwards;
}
.ch-chat-fab::before{
  content:""; position:absolute; inset:0; border-radius:50%;
  background:#c66a3d; z-index:-1;
  animation:ch-pulse 2.4s ease-out infinite;
}
@keyframes ch-pulse{0%{transform:scale(1); opacity:0.55;} 100%{transform:scale(1.7); opacity:0;}}
@keyframes ch-fab-in{from{transform:scale(0); opacity:0;} to{transform:scale(1); opacity:1;}}
.ch-chat-fab:hover{transform:scale(1.08); box-shadow:0 18px 40px rgba(198,106,61,0.55);}
.ch-chat-fab:active{transform:scale(0.96);}

/* ===== Reduced-motion fallback ===== */
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;}
  [data-reveal], [data-reveal-stagger] > *{opacity:1 !important; transform:none !important;}
  #ch-hero > img{transform:none !important;}
  html{scroll-behavior:auto;}
}

/* ============ RESET & BASE ============ */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Manrope', sans-serif;
    background: #faf6ee;
    color: #2a1c10;
    -webkit-font-smoothing: antialiased;
}

#ch-root {
    max-width: 1440px;
    margin: 0 auto;
    background: #faf6ee;
}

/* ============ NAVIGATION ============ */
#ch-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 22px 56px;
    border-bottom: 1px solid #ece1cc;
    position: sticky;
    top: 0;
    background: rgba(250, 246, 238, 0.92);
    backdrop-filter: blur(10px);
    z-index: 50;
}

.nav-logo {
    display: flex;
    align-items: center;
    gap: 12px;
}

.nav-logo-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #2a1c10;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #faf6ee;
    font-weight: 700;
    font-size: 18px;
    letter-spacing: -0.02em;
}

.nav-logo-text {
    display: flex;
    flex-direction: column;
    line-height: 1;
}

.ch-logo-name {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: #2a1c10;
}

.ch-logo-sub {
    font-size: 11px;
    color: #8a7256;
    margin-top: 3px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.nav-links {
    display: flex;
    gap: 34px;
    font-size: 14px;
    color: #5e4632;
    font-weight: 500;
}

.nav-links a {
    text-decoration: none;
    color: #5e4632;
    transition: color 0.2s;
}

.nav-links a:hover {
    color: #c66a3d;
}

.nav-actions {
    display: flex;
    align-items: center;
    gap: 18px;
}

.ch-nav-phone {
    font-size: 14px;
    color: #2a1c10;
    text-decoration: none;
    font-weight: 600;
    letter-spacing: -0.01em;
}

.ch-nav-cta {
    background: #c66a3d;
    color: #fff;
    padding: 11px 20px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    letter-spacing: 0.01em;
    box-shadow: 0 4px 14px rgba(198, 106, 61, 0.28);
    transition: all 0.3s ease;
}

.ch-nav-cta:hover {
    background: #b05a32;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(198, 106, 61, 0.35);
}

/* ============ HERO ============ */
#ch-hero {
    position: relative;
    height: 760px;
    overflow: hidden;
}

.hero-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(95deg, rgba(42, 28, 16, 0.78) 0%, rgba(42, 28, 16, 0.42) 48%, rgba(42, 28, 16, 0.05) 75%);
}

.hero-content {
    position: relative;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 64px 56px 56px;
}

.ch-hero-eyebrow {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #faf6ee;
    font-size: 13px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    opacity: 0.85;
}

.hero-line {
    width: 32px;
    height: 1px;
    background: #faf6ee;
    display: inline-block;
}

.hero-text {
    max-width: 720px;
    color: #faf6ee;
}

.hero-text h1 {
    font-size: 84px;
    line-height: 0.98;
    letter-spacing: -0.035em;
    font-weight: 600;
    margin: 0 0 26px;
    text-wrap: balance;
}

.hero-text h1 span {
    font-style: italic;
    font-weight: 400;
    color: #e8c6a8;
}

.ch-hero-p {
    font-size: 20px;
    line-height: 1.5;
    font-weight: 400;
    margin: 0 0 38px;
    max-width: 520px;
    opacity: 0.92;
}

.ch-hero-ctas {
    display: flex;
    gap: 14px;
    align-items: center;
}

.ch-cta-primary {
    background: #c66a3d;
    color: #fff;
    padding: 18px 32px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    letter-spacing: -0.005em;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
    transition: all 0.3s ease;
}

.ch-cta-primary:hover {
    background: #b05a32;
    transform: translateY(-2px);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25);
}

.ch-cta-secondary {
    color: #faf6ee;
    padding: 18px 26px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 500;
    text-decoration: none;
    border: 1px solid rgba(250, 246, 238, 0.45);
    backdrop-filter: blur(4px);
    transition: all 0.3s ease;
}

.ch-cta-secondary:hover {
    background: rgba(250, 246, 238, 0.1);
}

.ch-hero-badges {
    display: flex;
    gap: 8px;
    background: rgba(250, 246, 238, 0.94);
    padding: 14px;
    border-radius: 18px;
    backdrop-filter: blur(8px);
    align-self: flex-start;
    max-width: 820px;
    flex-wrap: wrap;
}

.badge-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 18px 10px 14px;
    border-right: 1px solid #ece1cc;
}

.badge-item.last {
    border-right: none;
}

.badge-icon {
    width: 32px;
    height: 32px;
    border-radius: 9px;
    background: #f4e9d6;
    display: flex;
    align-items: center;
    justify-content: center;
}

.badge-title {
    font-size: 13px;
    font-weight: 600;
    color: #2a1c10;
}

.badge-desc {
    font-size: 11px;
    color: #8a7256;
}

/* ============ MARQUEE ============ */
#ch-marquee {
    background: #2a1c10;
    color: #e8c6a8;
    overflow: hidden;
    padding: 18px 0;
    border-top: 1px solid #1a1108;
}

.ch-marquee-text {
    display: flex;
    gap: 48px;
    white-space: nowrap;
    font-size: 14px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 500;
    will-change: transform;
}

/* ============ ABOUT ============ */
#about {
    padding: 120px 56px 100px;
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    gap: 80px;
    align-items: start;
}

.section-label {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #c66a3d;
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    margin-bottom: 28px;
}

.label-line {
    width: 24px;
    height: 1px;
    background: #c66a3d;
    display: inline-block;
}

.section-label.gold {
    color: #e8c6a8;
}

.section-label.gold .label-line {
    background: #e8c6a8;
}

#about h2 {
    font-size: 62px;
    line-height: 1.02;
    letter-spacing: -0.03em;
    font-weight: 600;
    margin: 0 0 32px;
    text-wrap: balance;
    color: #2a1c10;
}

#about h2 span {
    font-style: italic;
    font-weight: 400;
    color: #c66a3d;
}

.about-text {
    font-size: 17px;
    line-height: 1.6;
    color: #5e4632;
    margin: 0 0 22px;
    max-width: 520px;
}

.about-text:last-of-type {
    margin-bottom: 40px;
}

.ch-stats-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    max-width: 520px;
}

.ch-stat-card {
    background: #fff;
    padding: 22px;
    border-radius: 18px;
    border: 1px solid #ece1cc;
}

.ch-stat-num {
    font-size: 38px;
    line-height: 1;
    font-weight: 700;
    color: #c66a3d;
    letter-spacing: -0.04em;
}

.stat-desc {
    font-size: 13px;
    color: #5e4632;
    margin-top: 6px;
    line-height: 1.4;
}

.ch-about-visual {
    position: relative;
}

.about-image-main {
    position: relative;
    border-radius: 24px;
    overflow: hidden;
    aspect-ratio: 4/5;
}

.about-image-main img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ch-about-visual-mini {
    position: absolute;
    bottom: -32px;
    left: -32px;
    width: 240px;
    height: 240px;
    border-radius: 24px;
    overflow: hidden;
    border: 8px solid #faf6ee;
}

.ch-about-visual-mini img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ch-about-visual-pill {
    position: absolute;
    top: 32px;
    right: -24px;
    background: #fff;
    padding: 18px 22px;
    border-radius: 18px;
    box-shadow: 0 16px 40px rgba(42, 28, 16, 0.12);
    max-width: 240px;
}

.pill-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.pill-header span:first-child {
    font-size: 14px;
}

.pill-header span:last-child {
    font-size: 11px;
    color: #8a7256;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 600;
}

.pill-text {
    font-size: 14px;
    color: #2a1c10;
    line-height: 1.4;
    font-weight: 500;
}

/* ============ INFRASTRUCTURE ============ */
#infra {
    padding: 100px 56px;
    background: #f4e9d6;
    border-radius: 36px;
    margin: 0 24px;
}

.ch-row-header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    margin-bottom: 64px;
    gap: 48px;
}

.ch-row-header h2 {
    font-size: 62px;
    line-height: 1.02;
    letter-spacing: -0.03em;
    font-weight: 600;
    margin: 0;
    text-wrap: balance;
    color: #2a1c10;
}

.ch-row-header h2 span {
    font-style: italic;
    font-weight: 400;
    color: #c66a3d;
}

.row-desc {
    font-size: 16px;
    color: #5e4632;
    line-height: 1.55;
    max-width: 340px;
    margin: 0 0 18px;
}

.ch-cols-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.infra-card {
    background: #fff;
    border-radius: 24px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.infra-card-img {
    height: 240px;
    overflow: hidden;
}

.infra-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.infra-card-body {
    padding: 28px;
}

.card-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}

.card-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: #f4e9d6;
    display: flex;
    align-items: center;
    justify-content: center;
}

.card-number {
    font-size: 11px;
    color: #8a7256;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
}

.infra-card-body h3 {
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.02em;
    margin: 0 0 10px;
    color: #2a1c10;
}

.infra-card-body p {
    font-size: 14px;
    line-height: 1.55;
    color: #5e4632;
    margin: 0;
}

.infra-card.dark {
    background: #2a1c10;
    color: #faf6ee;
    padding: 32px;
    justify-content: space-between;
    min-height: 380px;
}

.infra-card.dark .card-icon {
    background: rgba(250, 246, 238, 0.1);
}

.infra-card.dark .card-number {
    color: #b9a48a;
}

.infra-card.dark h3 {
    color: #faf6ee;
}

.dark-text {
    font-size: 14px;
    line-height: 1.55;
    color: #d9c8af;
    margin: 0;
}

.card-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #e8c6a8;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    margin-top: 24px;
    border-top: 1px solid rgba(250, 246, 238, 0.18);
    padding-top: 18px;
}

/* ============ ROOMS ============ */
#rooms {
    padding: 140px 56px 100px;
}

.season-control {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
}

.season-label {
    font-size: 13px;
    color: #8a7256;
    font-weight: 600;
    letter-spacing: 0.04em;
}

.ch-season-toggle {
    display: flex;
    gap: 8px;
    background: #fff;
    padding: 6px;
    border-radius: 26px;
    border: 1px solid #ece1cc;
}

.ch-season-btn {
    padding: 10px 16px;
    border-radius: 999px;
    border: 1px solid #ece1cc;
    background: transparent;
    color: #5e4632;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.3s ease;
}

.ch-season-btn.active {
    border-color: #2a1c10;
    background: #2a1c10;
    color: #faf6ee;
}

.ch-season-btn:hover {
    border-color: #2a1c10;
}

.ch-rooms-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.room-card {
    background: #fff;
    border: 1px solid #ece1cc;
    border-radius: 24px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.room-card-img {
    height: 260px;
    overflow: hidden;
    position: relative;
}

.ch-room-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
}

.room-badge {
    position: absolute;
    top: 16px;
    padding: 7px 13px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    z-index: 2;
}

.room-badge.left {
    left: 16px;
    background: rgba(250, 246, 238, 0.94);
    backdrop-filter: blur(6px);
    color: #2a1c10;
}

.room-badge.right {
    right: 16px;
    background: rgba(42, 28, 16, 0.78);
    backdrop-filter: blur(6px);
    color: #faf6ee;
    display: flex;
    align-items: center;
    gap: 7px;
}

.room-dots {
    position: absolute;
    bottom: 14px;
    left: 0;
    right: 0;
    display: flex;
    gap: 6px;
    justify-content: center;
    z-index: 3;
}

.ch-room-dot {
    width: 7px;
    height: 7px;
    border-radius: 99px;
    background: rgba(255, 255, 255, 0.55);
    cursor: pointer;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
    border: none;
    padding: 0;
    transition: width 0.3s ease, background 0.3s ease;
}

.ch-room-dot.active {
    width: 20px;
    background: #fff;
}

.room-card-body {
    padding: 30px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.room-card-body h3 {
    font-size: 25px;
    font-weight: 600;
    letter-spacing: -0.02em;
    margin: 0 0 12px;
    color: #2a1c10;
}

.room-features {
    font-size: 14px;
    line-height: 1.55;
    color: #8a7256;
    margin: 0 0 24px;
}

.room-footer {
    margin-top: auto;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    padding-top: 22px;
    border-top: 1px solid #f0e6d3;
}

.ch-room-season {
    font-size: 12px;
    color: #8a7256;
    margin-bottom: 4px;
}

.room-price {
    display: flex;
    align-items: baseline;
    gap: 4px;
}

.ch-room-price {
    font-size: 32px;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: #c66a3d;
}

.currency {
    font-size: 15px;
    font-weight: 600;
    color: #c66a3d;
}

.per-night {
    font-size: 13px;
    color: #8a7256;
    margin-left: 2px;
}

.ch-room-book {
    background: #c66a3d;
    color: #fff;
    padding: 12px 20px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    border: none;
    cursor: pointer;
    font-family: inherit;
    white-space: nowrap;
    box-shadow: 0 4px 14px rgba(198, 106, 61, 0.28);
    transition: all 0.3s ease;
}

.ch-room-book:hover {
    background: #b05a32;
    transform: scale(1.02);
}

/* ============ MAP ============ */
#map {
    padding: 140px 56px 100px;
}

.map-card {
    background: #fff;
    border: 1px solid #ece1cc;
    border-radius: 24px;
    padding: 32px;
    display: flex;
    flex-direction: column;
}

.map-card.dark {
    background: #2a1c10;
    color: #faf6ee;
    border-color: #2a1c10;
}

.map-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
}

.map-card-header > div {
    display: flex;
    align-items: center;
    gap: 10px;
}

.dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #c66a3d;
}

.dot.gold {
    background: #e8c6a8;
}

.map-label {
    font-size: 11px;
    color: #8a7256;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
}

.map-label.gold {
    color: #b9a48a;
}

.map-number {
    font-size: 14px;
    color: #8a7256;
    font-weight: 500;
}

.map-number.gold {
    color: #b9a48a;
}

.map-card h3 {
    font-size: 24px;
    font-weight: 600;
    letter-spacing: -0.02em;
    margin: 0 0 24px;
    color: #2a1c10;
}

.map-card.dark h3 {
    color: #faf6ee;
}

.map-list {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.map-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 0;
    border-bottom: 1px solid #f0e6d3;
}

.map-item.last {
    border-bottom: none;
}

.map-item span:first-child {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 15px;
    color: #2a1c10;
    font-weight: 500;
}

.map-item span:last-child {
    font-size: 13px;
    color: #8a7256;
    font-weight: 500;
}

.map-card.dark .map-item {
    border-bottom: 1px solid rgba(250, 246, 238, 0.12);
}

.map-card.dark .map-item span:first-child {
    color: #faf6ee;
}

.map-card.dark .map-item span:last-child {
    color: #b9a48a;
}

.map-note {
    margin-top: 18px;
    padding: 16px;
    background: rgba(250, 246, 238, 0.06);
    border-radius: 14px;
    font-size: 13px;
    color: #d9c8af;
    line-height: 1.5;
}

/* ============ REVIEWS ============ */
#reviews {
    padding: 100px 56px;
    background: #2a1c10;
    color: #faf6ee;
    border-radius: 36px;
    margin: 0 24px;
}

#reviews h2 span {
    font-style: italic;
    font-weight: 400;
    color: #e8c6a8;
}

.ch-reviews-controls {
    display: flex;
    align-items: center;
    gap: 24px;
}

.ch-rating-block {
    text-align: right;
}

.ch-rating-block div:first-child {
    font-size: 42px;
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1;
}

.ch-rating-block div:last-child {
    font-size: 12px;
    color: #b9a48a;
    margin-top: 6px;
    letter-spacing: 0.06em;
}

.ch-slider-prev,
.ch-slider-next {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: none;
    font-size: 18px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.ch-slider-prev {
    background: rgba(250, 246, 238, 0.08);
    border: 1px solid rgba(250, 246, 238, 0.18);
    color: #faf6ee;
}

.ch-slider-prev:hover {
    background: rgba(250, 246, 238, 0.15);
}

.ch-slider-next {
    background: #c66a3d;
    border: 1px solid #c66a3d;
    color: #faf6ee;
}

.ch-slider-next:hover {
    background: #b05a32;
}

.ch-slider {
    overflow: hidden;
}

.ch-slider-track {
    display: flex;
    gap: 24px;
    transition: transform 0.55s cubic-bezier(0.4, 0, 0.2, 1);
}

.ch-reviews-card {
    flex: 0 0 calc((100% - 48px) / 3);
    background: #3a2818;
    border-radius: 24px;
    padding: 32px;
    display: flex;
    flex-direction: column;
}

.reviewer {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 22px;
}

.reviewer img {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #e8c6a8;
}

.reviewer-name {
    font-size: 15px;
    font-weight: 600;
}

.reviewer-meta {
    font-size: 12px;
    color: #b9a48a;
    margin-top: 3px;
}

.stars {
    color: #e8c6a8;
    font-size: 14px;
    margin-bottom: 14px;
    letter-spacing: 0.1em;
}

.ch-reviews-card p {
    font-size: 15px;
    line-height: 1.6;
    color: #d9c8af;
    margin: 0;
    flex: 1;
}

.ch-reviews-card p mark {
    background: rgba(232, 198, 168, 0.18);
    color: #e8c6a8;
    padding: 1px 6px;
    border-radius: 4px;
}

.ch-dots {
    display: flex;
    gap: 8px;
    margin-top: 36px;
    justify-content: center;
}

.ch-dot {
    width: 8px;
    height: 4px;
    border-radius: 2px;
    background: rgba(250, 246, 238, 0.25);
    cursor: pointer;
    transition: all 0.3s ease;
}

.ch-dot.active {
    width: 24px;
    background: #e8c6a8;
}

/* Reviews arrows in controls */
.ch-reviews-arrows {
    display: flex;
    gap: 8px;
}
.ch-reviews-arrows .ch-slider-prev,
.ch-reviews-arrows .ch-slider-next {
    position: static;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ch-reviews-arrows .ch-slider-prev {
    background: rgba(250,246,238,0.1);
    border: 1px solid rgba(250,246,238,0.2);
    color: #faf6ee;
}
.ch-reviews-arrows .ch-slider-next {
    background: #c66a3d;
    border: none;
    color: #faf6ee;
}

/* Reviews responsive: 2 cards at 720px, 1 card at 450px */
@media (max-width: 720px) {
    .ch-reviews-card {
        flex: 0 0 calc((100% - 24px) / 2) !important;
    }
}
@media (max-width: 450px) {
    .ch-reviews-card {
        flex: 0 0 100% !important;
    }
}

/* ============ GALLERY ============ */
#gallery {
    padding: 140px 56px 100px;
}

.ch-gallery-tabs {
    display: flex;
    gap: 8px;
    background: #fff;
    padding: 6px;
    border-radius: 999px;
    border: 1px solid #ece1cc;
}

.ch-gallery-tabs button {
    padding: 10px 18px;
    border-radius: 999px;
    border: none;
    background: transparent;
    color: #5e4632;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.3s ease;
}

.ch-gallery-tabs button.active {
    background: #2a1c10;
    color: #faf6ee;
}

.ch-gallery-tabs button:hover:not(.active) {
    background: #f4e9d6;
}

.ch-gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 200px;
    gap: 14px;
}

.gallery-item {
    border-radius: 20px;
    overflow: hidden;
}

.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gallery-item.tall {
    grid-column: span 2;
    grid-row: span 2;
}

.gallery-item.wide {
    grid-column: span 2;
}

.ch-gallery-more {
    border-radius: 20px;
    overflow: hidden;
    position: relative;
    background: #2a1c10;
    color: #faf6ee;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 24px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.ch-gallery-more:hover {
    background: #3a2818;
}

.ch-gallery-more div:first-child {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: -0.03em;
}

.ch-gallery-more div:last-child {
    font-size: 13px;
    color: #b9a48a;
    margin-top: 6px;
}

/* ============ BOOK ============ */
#book {
    padding: 0 56px 100px;
}

.ch-book-card {
    background: #fff;
    border-radius: 36px;
    padding: 80px;
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 80px;
    border: 1px solid #ece1cc;
    align-items: start;
}

.book-info h2 {
    font-size: 54px;
    line-height: 1.02;
    letter-spacing: -0.03em;
    font-weight: 600;
    margin: 0 0 28px;
    color: #2a1c10;
    text-wrap: balance;
}

.book-info h2 span {
    font-style: italic;
    font-weight: 400;
    color: #c66a3d;
}

.book-info p {
    font-size: 17px;
    line-height: 1.6;
    color: #5e4632;
    margin: 0 0 36px;
    max-width: 440px;
}

.contact-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-bottom: 36px;
}

.contact-item {
    display: flex;
    align-items: center;
    gap: 14px;
}

.contact-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: #f4e9d6;
    display: flex;
    align-items: center;
    justify-content: center;
}

.contact-label {
    font-size: 12px;
    color: #8a7256;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 600;
}

.contact-item a {
    font-size: 18px;
    color: #2a1c10;
    text-decoration: none;
    font-weight: 600;
}

.messenger-links {
    display: flex;
    gap: 14px;
    margin-top: 4px;
}

.messenger-links a {
    font-size: 14px;
    color: #2a1c10;
    text-decoration: none;
    font-weight: 600;
}

.messenger-links a:hover {
    color: #c66a3d;
}

.gift-box {
    background: #f4e9d6;
    border-radius: 18px;
    padding: 20px;
    display: flex;
    gap: 14px;
    align-items: start;
}

.gift-box > span {
    font-size: 22px;
    display: inline-flex;
}

.gift-box div:first-of-type {
    font-size: 14px;
    font-weight: 600;
    color: #2a1c10;
    margin-bottom: 4px;
}

.gift-box div:last-of-type {
    font-size: 13px;
    color: #5e4632;
    line-height: 1.5;
}

.ch-book-form {
    display: flex;
    flex-direction: column;
    gap: 18px;
    background: #faf6ee;
    padding: 36px;
    border-radius: 24px;
    border: 1px solid #ece1cc;
}

.ch-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.ch-book-form label {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ch-book-form label span {
    font-size: 12px;
    color: #5e4632;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ch-book-form input,
.ch-book-form select,
.ch-book-form textarea {
    padding: 14px 16px;
    border-radius: 12px;
    border: 1px solid #ece1cc;
    background: #fff;
    font-size: 15px;
    font-family: inherit;
    color: #2a1c10;
    outline: none;
    transition: border-color 0.3s ease;
}

.ch-book-form input:focus,
.ch-book-form select:focus,
.ch-book-form textarea:focus {
    border-color: #c66a3d;
}

.ch-field-error {
    font-size: 12px;
    color: #d32f2f;
    margin-top: 4px;
}

.guests-group span {
    font-size: 12px;
    color: #5e4632;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    display: block;
    margin-bottom: 10px;
}

.guests-group > div {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.ch-guest-btn {
    padding: 10px 18px;
    border-radius: 999px;
    border: 1px solid #ece1cc;
    background: #fff;
    color: #2a1c10;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.3s ease;
}

.ch-guest-btn.active {
    border-color: #2a1c10;
    background: #2a1c10;
    color: #faf6ee;
}

.ch-guest-btn:hover:not(.active) {
    border-color: #2a1c10;
}

.ch-book-form .ch-cta-primary {
    padding: 18px;
    border-radius: 14px;
    border: none;
    justify-content: center;
    cursor: pointer;
}

.form-note {
    font-size: 12px;
    color: #8a7256;
    line-height: 1.5;
    text-align: center;
}

/* ============ FAQ ============ */
#faq {
    padding: 0 56px 120px;
}

.ch-faq-grid {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 80px;
    align-items: start;
}

.ch-faq-grid h2 {
    font-size: 48px;
    line-height: 1.02;
    letter-spacing: -0.03em;
    font-weight: 600;
    margin: 0 0 22px;
    color: #2a1c10;
    text-wrap: balance;
}

.ch-faq-grid p {
    font-size: 16px;
    line-height: 1.6;
    color: #5e4632;
    margin: 0 0 28px;
}

.faq-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #c66a3d;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid #c66a3d;
    padding-bottom: 4px;
}

details {
    background: #fff;
    border: 1px solid #ece1cc;
    border-radius: 16px;
    padding: 22px 26px;
}

details summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    font-size: 17px;
    font-weight: 600;
    color: #2a1c10;
}

details summary span {
    font-size: 22px;
    color: #c66a3d;
    font-weight: 400;
}

details p {
    font-size: 15px;
    line-height: 1.6;
    color: #5e4632;
    margin: 16px 0 0;
}

details[open] summary span {
    transform: rotate(45deg);
}

/* ============ FOOTER ============ */
#ch-footer {
    background: #2a1c10;
    color: #d9c8af;
    padding: 80px 56px 40px;
    margin: 0 24px 24px;
    border-radius: 36px;
}

.ch-footer-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1fr;
    gap: 48px;
    padding-bottom: 56px;
    border-bottom: 1px solid rgba(250, 246, 238, 0.12);
}

.footer-logo {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 22px;
}

.footer-logo-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #faf6ee;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #2a1c10;
    font-weight: 700;
    font-size: 18px;
    letter-spacing: -0.02em;
}

.footer-logo div {
    display: flex;
    flex-direction: column;
    line-height: 1;
}

.footer-logo div span:first-child {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: #faf6ee;
}

.footer-logo div span:last-child {
    font-size: 11px;
    color: #b9a48a;
    margin-top: 3px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ch-footer-grid p {
    font-size: 14px;
    line-height: 1.6;
    color: #b9a48a;
    margin: 0 0 22px;
    max-width: 300px;
}

.social-links {
    display: flex;
    gap: 10px;
}

.ch-social-link {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(250, 246, 238, 0.08);
    color: #faf6ee;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-size: 14px;
    transition: all 0.3s ease;
}

.ch-social-link:hover {
    background: rgba(250, 246, 238, 0.15);
}

.footer-title {
    font-size: 12px;
    color: #b9a48a;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
    margin-bottom: 18px;
}

.footer-contacts {
    display: flex;
    flex-direction: column;
    gap: 10px;
    font-size: 14px;
    color: #faf6ee;
}

.footer-contacts div:last-child {
    color: #b9a48a;
    line-height: 1.5;
}

.footer-links {
    display: flex;
    flex-direction: column;
    gap: 10px;
    font-size: 14px;
}

.footer-links a {
    color: #faf6ee;
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-links a:hover {
    color: #e8c6a8;
}

.footer-hours {
    display: flex;
    flex-direction: column;
    gap: 10px;
    font-size: 14px;
    color: #faf6ee;
}

.footer-hours div {
    display: flex;
    justify-content: space-between;
}

.footer-hours div span:first-child {
    color: #b9a48a;
}

.ch-footer-bottom {
    display: flex;
    justify-content: space-between;
    padding-top: 32px;
    font-size: 12px;
    color: #b9a48a;
}

.ch-footer-bottom > div:last-child {
    display: flex;
    gap: 24px;
}

.ch-footer-bottom a {
    color: #b9a48a;
    text-decoration: none;
    transition: color 0.3s ease;
}

.ch-footer-bottom a:hover {
    color: #faf6ee;
}

/* ============ CHAT FAB ============ */
.ch-chat-fab {
    position: fixed;
    bottom: 32px;
    right: 32px;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: #c66a3d;
    color: #fff;
    border: none;
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(198, 106, 61, 0.4);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 100;
}

.ch-chat-fab:hover {
    transform: scale(1.05);
    box-shadow: 0 12px 32px rgba(198, 106, 61, 0.5);
}

/* ============ RESPONSIVE ============ */
@media (max-width: 1200px) {
    .hero-text h1 {
        font-size: 64px;
    }

    #about {
        grid-template-columns: 1fr;
        gap: 60px;
    }

    .ch-about-visual-mini {
        width: 180px;
        height: 180px;
        bottom: -24px;
        left: -24px;
    }

    .ch-about-visual-pill {
        right: -16px;
        max-width: 200px;
    }

    .ch-cols-3 {
        grid-template-columns: repeat(2, 1fr);
    }

    .ch-rooms-grid {
        grid-template-columns: 1fr;
    }

    .ch-book-card {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .ch-faq-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .ch-footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
    }
}

@media (max-width: 768px) {
    #ch-nav {
        padding: 16px 24px;
        flex-wrap: wrap;
        gap: 16px;
    }

    .nav-links {
        order: 3;
        width: 100%;
        justify-content: center;
        gap: 20px;
        flex-wrap: wrap;
    }

    .hero-content {
        padding: 32px 24px;
    }

    .hero-text h1 {
        font-size: 44px;
    }

    .ch-hero-p {
        font-size: 16px;
    }

    .ch-hero-badges {
        flex-direction: column;
        width: 100%;
        padding: 12px;
    }

    .badge-item {
        border-right: none;
        border-bottom: 1px solid #ece1cc;
        padding: 8px 0;
    }

    .badge-item.last {
        border-bottom: none;
    }

    #about {
        padding: 60px 24px;
    }

    #about h2 {
        font-size: 38px;
    }

    .ch-stats-grid {
        grid-template-columns: 1fr;
    }

    .ch-about-visual-mini {
        width: 120px;
        height: 120px;
        bottom: -16px;
        left: -16px;
    }

    .ch-about-visual-pill {
        display: none;
    }

    #infra {
        padding: 60px 24px;
        margin: 0 12px;
    }

    .ch-row-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 24px;
        margin-bottom: 40px;
    }

    .ch-row-header h2 {
        font-size: 38px;
    }

    .ch-cols-3 {
        grid-template-columns: 1fr;
    }

    #rooms {
        padding: 60px 24px;
    }

    .ch-rooms-grid {
        grid-template-columns: 1fr;
    }

    #map {
        padding: 60px 24px;
    }

    .map-card {
        padding: 24px;
    }

    #reviews {
        padding: 60px 24px;
        margin: 0 12px;
    }

    .ch-reviews-card {
        flex: 0 0 calc(100% - 24px);
    }

    .ch-reviews-controls {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .ch-rating-block {
        text-align: left;
    }

    #gallery {
        padding: 60px 24px;
    }

    .ch-gallery-grid {
        grid-template-columns: 1fr 1fr;
        grid-auto-rows: 150px;
    }

    .gallery-item.tall {
        grid-column: span 1;
        grid-row: span 1;
    }

    .gallery-item.wide {
        grid-column: span 1;
    }

    #book {
        padding: 0 24px 60px;
    }

    .ch-book-card {
        padding: 32px 24px;
    }

    .book-info h2 {
        font-size: 36px;
    }

    .ch-book-form {
        padding: 24px;
    }

    .ch-form-row {
        grid-template-columns: 1fr;
    }

    #faq {
        padding: 0 24px 60px;
    }

    .ch-faq-grid h2 {
        font-size: 36px;
    }

    #ch-footer {
        padding: 40px 24px;
        margin: 0 12px 12px;
    }

    .ch-footer-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .ch-footer-bottom {
        flex-direction: column;
        gap: 16px;
        align-items: center;
        text-align: center;
    }

    .ch-footer-bottom > div:last-child {
        flex-direction: column;
        gap: 8px;
    }

    .ch-chat-fab {
        bottom: 20px;
        right: 20px;
        width: 52px;
        height: 52px;
    }
}

@media (max-width: 480px) {
    #ch-hero {
        height: 640px;
    }

    .hero-text h1 {
        font-size: 34px;
    }

    .ch-hero-ctas {
        flex-direction: column;
        width: 100%;
    }

    .ch-hero-ctas a {
        width: 100%;
        justify-content: center;
    }
}

/* ============ ADDITIONAL HELPERS ============ */
.badge-text {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.faq-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.slider-buttons {
    display: flex;
    gap: 10px;
}

.reviewer-info {
    display: flex;
    flex-direction: column;
}

.contact-info {
    display: flex;
    flex-direction: column;
}

.gift-box-text {
    display: flex;
    flex-direction: column;
}

.footer-logo-text {
    display: flex;
    flex-direction: column;
    line-height: 1;
}

.footer-address {
    color: #b9a48a;
    line-height: 1.5;
}

.field-error-dates {
    margin-top: -12px;
}

.ch-book-form button.ch-cta-primary {
    padding: 18px;
    border-radius: 14px;
    border: none;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    letter-spacing: -0.005em;
    justify-content: center;
}