/* Мятный дом: mint leaves, warm paper, quiet architecture. */
:root { --forest:#193e33; --forest-2:#244e40; --mint:#bdd0bc; --mint-light:#e0e9d9; --cream:#f3f0e7; --paper:#f9f7f1; --ink:#233b31; --muted:#64756a; --line:#dbe0d5; --radius:16px; --shadow:0 18px 50px #193e3310; }
html { scroll-padding-top:110px; }
body { font-family:"Segoe UI",Arial,sans-serif; -webkit-font-smoothing:antialiased; }
h1,h2 { font-family:Georgia,"Times New Roman",serif; letter-spacing:-.045em; text-wrap:balance; white-space:pre-line; }
h2 { font-size:clamp(2.1rem,4.5vw,4.3rem); }
p { text-wrap:pretty; }
button,a,input,textarea,select { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid #b89959; outline-offset:4px; }
.skip-link { position:fixed; top:-80px; left:16px; z-index:200; padding:12px; background:white; }
.skip-link:focus { top:8px; }
.site-header { position:fixed; z-index:90; top:0; width:100%; margin:0; min-height:96px; padding:18px max(32px,calc((100% - 1320px)/2)); border:0; border-bottom:1px solid var(--line); border-radius:0; background:var(--paper); color:var(--forest); backdrop-filter:none; gap:20px; }
.site-header{background:#dce7da;border-bottom-color:#bdcdbd;box-shadow:0 2px 12px #193e3308}
.site-header .menu-toggle{border-color:#aebeae;background:#ffffff26}
.header-phones{display:flex;flex-direction:column;flex-shrink:0;order:3}
.header-phones a{color:var(--forest);font-size:12px;line-height:1.4;min-height:28px;display:flex;align-items:center;text-decoration:none;white-space:nowrap}
.header-phones svg{width:12px;height:12px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;margin-right:4px}
.main-nav{order:2}.menu-toggle{order:4}
.brand { gap:13px; flex-shrink:0; }
.brand-logo { width:66px; height:50px; padding:0; border:0; border-radius:0; background:transparent; object-fit:contain; }
.brand strong { font-family:Georgia,serif; font-size:1.6rem; font-weight:500; letter-spacing:-.04em; }
.brand small { margin-top:2px; font-size:.65rem; letter-spacing:.15em; color:var(--muted); text-transform:uppercase; }
.main-nav { gap:25px; font-size:.83rem; }
.nav-cta { background:var(--forest); color:var(--paper); border-radius:8px; padding:14px 20px; }
.menu-toggle { display:none; }
.hero { min-height:min(920px,100svh); padding-top:96px; background:var(--forest); isolation:isolate; }
.hero-photo { position:absolute; inset:96px 0 0; width:100%; height:calc(100% - 96px); object-fit:cover; object-position:50% 50%; z-index:-3; }
.hero-photo-second { opacity:0; z-index:-2; transition:opacity 1.5s ease; }
.hero-photo-second.is-visible { opacity:1; }
.hero-overlay { z-index:-1; inset:96px 0 0; background:linear-gradient(90deg,#102c25db,#102c2555 65%,#102c2515),linear-gradient(0deg,#102c25ad,transparent 70%); }
.hero-content { padding-top:110px; padding-bottom:48px; }
.hero h1 { font-size:clamp(3.5rem,7.4vw,7rem); max-width:900px; margin-bottom:24px; }
.hero .eyebrow { letter-spacing:.19em; font-size:.7rem; }
.hero-lead { font-size:1.05rem; max-width:550px; line-height:1.75; }
.button { border-radius:9px; font-weight:600; min-height:54px; font-size:.9rem; }
.button-primary { background:#e5edda; color:var(--forest); }
.hero-actions { margin-bottom:64px; }
.hero-actions .public-phone{flex:0 0 auto;width:auto;padding:0 22px;gap:10px;background:#193e3359;border-color:#ffffff80}
.hero-actions .public-phone-icon{flex:0 0 22px;width:22px;height:22px}
.hero-actions .public-phone:hover{background:#193e33a6;border-color:#fff}
.hero-facts { padding-top:24px; border-top:1px solid #ffffff40; gap:58px; }
.hero-facts strong { font-family:inherit; font-size:1.15rem; }
.hero-facts span { margin-top:4px; font-size:.76rem; }
.hero-pause { margin-top:16px; border:1px solid #ffffff60; border-radius:6px; padding:8px 12px; background:#193e3390; color:white; font:inherit; font-size:.72rem; }
.section { padding-top:100px; padding-bottom:100px; }
.intro { border-bottom:1px solid var(--line); gap:70px; }
.intro-text { line-height:1.9; font-size:1rem; }
.eyebrow.dark { color:#58705a; }
.features { gap:16px; }
.feature-card { box-shadow:none; border:1px solid var(--line); border-radius:14px; background:#eeefe5; }
.feature-icon { color:var(--forest); }
.outdoor-section { background:#edeee4; }
.outdoor-media img,.spa-media img,.interior-media img,.lake-media img { border-radius:12px; }
.spa-section { background:var(--forest); }
.spa-prices { border-color:#ffffff30; }
.lake-section { background:var(--paper); }
.lake-distance { background:var(--forest); color:var(--paper); border-radius:10px; }
.gallery-item { border-radius:10px; }
.gallery-open-all { margin-top:25px; }
.availability-section { background:#e8edde; }
.calendar-card,.booking-form { border-radius:18px; box-shadow:var(--shadow); border:1px solid var(--line); }
input,textarea,select { font:inherit; font-size:16px; border-radius:8px; }
.booking-note { background:#e8edde; border-radius:12px; }
.rules-section { background:#244639; }
.site-footer { background:var(--paper); color:var(--forest); border-top:1px solid var(--line); }
.footer-brand img { width:80px; height:60px; object-fit:contain; border-radius:0; background:transparent; }
.footer-brand strong { font:1.8rem Georgia,serif; }
.footer-brand p,.footer-note { color:var(--muted); }
.site-footer .footer-grid p{color:var(--muted)}
.site-footer .footer-grid a{color:var(--forest);display:inline-block;min-height:44px;padding-block:10px}
.mobile-booking-bar small{color:var(--muted)}
.calendar-toolbar button{color:var(--forest)}
.availability-grid>div{min-width:0}
.calendar-toolbar{gap:8px}.calendar-toolbar button{flex-shrink:0}
.calendar-toolbar strong{font-size:clamp(1rem,4.7vw,1.35rem);text-align:center}
.calendar-cta{white-space:normal;text-align:center}
.calendar-grid,.calendar-weekdays{grid-template-columns:repeat(7,minmax(0,1fr))}
@media(max-width:380px){.calendar-day{aspect-ratio:auto;min-width:0;min-height:39px}}
.owner-return { position:fixed; z-index:80; left:16px; bottom:16px; padding:12px 18px; border:1px solid #c6b079; border-radius:10px; box-shadow:0 4px 20px #0002; color:var(--forest); background:#fff9e6; font-size:.82rem; font-weight:700; text-decoration:none; }
.gentle-motion .hero-content { animation:arrive .65s ease-out both; }
@keyframes arrive { from { opacity:.7; transform:translateY(10px); } to { opacity:1; transform:none; } }
@media(min-width:1000px) { .gallery-grid { gap:16px; } }
@media(max-width:1000px) {
  .site-header { min-height:82px; padding:14px 24px; }
  .brand-logo { width:52px; height:40px; }.brand strong{font-size:1.35rem;}
  .hero { padding-top:82px; }.hero-photo{top:82px;height:calc(100% - 82px)}.hero-overlay{top:82px}
  .menu-toggle { display:flex; align-items:center; gap:12px; padding:10px 14px; min-height:44px; border:1px solid var(--line); border-radius:8px; color:var(--forest); background:transparent; font:inherit; }
  .main-nav { display:none; position:absolute; top:100%; left:0; right:0; padding:16px 24px 24px; background:#dce7da; border-bottom:1px solid #bdcdbd; box-shadow:0 14px 22px #0001; }
  .main-nav.is-open { display:grid; grid-template-columns:1fr 1fr; gap:8px; }.main-nav a{padding:14px;min-height:46px}
  .main-nav.is-open a:not([hidden]) { display:block; }
}
@media(max-width:620px) {
  html { scroll-padding-top:20px; }.shell{width:calc(100% - 36px)}
  .site-header { padding:calc(12px + env(safe-area-inset-top,0px)) 18px 12px; min-height:78px; }
  .brand { gap:8px; }.brand-logo{width:49px;height:38px}.brand strong{font-size:1.32rem}.brand small{font-size:.56rem;letter-spacing:.12em}
  .hero { min-height:780px; min-height:100svh; padding-top:calc(78px + env(safe-area-inset-top,0px)); }
  .hero-photo { top:calc(78px + env(safe-area-inset-top,0px)); height:calc(100% - 78px - env(safe-area-inset-top,0px)); }.hero-overlay{top:78px}
  .hero-content { padding-top:90px; padding-bottom:36px; }.hero h1{font-size:clamp(2.85rem,11vw,4.3rem);line-height:1.07}
  .hero-lead {font-size:.95rem;line-height:1.65;max-width:350px}.hero .eyebrow{font-size:.6rem;line-height:1.6}
  .hero-actions { gap:9px; margin-bottom:34px; }.hero-actions .button{min-height:50px;font-size:.82rem;padding:0 15px}.hero-actions .public-phone{padding:0}
  .hero-facts { gap:18px; justify-content:space-between; }.hero-facts strong{font-size:.95rem}.hero-facts span{font-size:.66rem}
  .section { padding-top:60px; padding-bottom:60px; }.intro{gap:24px}.intro-text{font-size:.95rem}
  .features{gap:10px}.feature-card{padding:20px 15px}.feature-card h3{font-size:1rem}
  .owner-return{bottom:calc(90px + env(safe-area-inset-bottom,0px));left:12px;padding:10px 13px;font-size:.74rem}
  .mobile-booking-bar{border-radius:16px 16px 0 0;background:var(--paper);color:var(--forest);box-shadow:0 -5px 25px #193e3315;border-top:1px solid var(--line)}
  .mobile-booking-bar .button{background:var(--forest);color:white}.site-footer{padding-bottom:120px}.footer-brand img{width:64px;height:48px}
}
.location-section{display:grid;grid-template-columns:1fr 1.2fr;gap:48px;align-items:center}
.location-copy p{line-height:1.7;white-space:pre-line}.location-copy .button{margin-top:18px;white-space:normal;text-align:center}
.location-map{min-height:360px;border-radius:24px;overflow:hidden;background:#e8eee4;border:1px solid var(--line)}
.location-map iframe{display:block;width:100%;height:400px;border:0}
.map-placeholder{min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;color:var(--forest)}
.map-placeholder>span{font-size:52px}.map-placeholder p{margin:0;font-size:22px}.map-placeholder small{max-width:240px;line-height:1.5}
html{scroll-padding-top:calc(var(--header-height,96px) + 20px)}
.hero{padding-top:var(--header-height,96px)}
.hero-photo{top:var(--header-height,96px);height:calc(100% - var(--header-height,96px))}
.hero-overlay{top:var(--header-height,96px)}
@media(max-width:1250px) and (min-width:1001px){.main-nav{gap:10px;font-size:.75rem}.site-header{padding-inline:20px;gap:12px}.nav-cta{padding:12px}.brand strong{font-size:1.35rem}}
@media(max-width:1000px){.site-header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center}.brand{grid-column:1;grid-row:1}.menu-toggle{grid-column:3;grid-row:1;order:0}.header-phones{grid-column:2;grid-row:1;flex-direction:column;gap:0;justify-content:center}.header-phones a{min-height:24px}.main-nav{max-height:calc(100svh - var(--header-height,96px));overflow:auto}}
@media(max-width:760px){.location-section{grid-template-columns:1fr;gap:24px}.location-map,.map-placeholder{min-height:300px}.location-map iframe{height:340px}}
.booking-form{font-size:15px;line-height:1.45}
.booking-form input,.booking-form select,.booking-form textarea{font-family:inherit;font-size:16px;font-weight:400}
.booking-form input::placeholder,.booking-form textarea::placeholder{font-weight:400;color:#737c76;opacity:1}
.booking-form label,.booking-form legend{font-size:14px;font-weight:600}
.booking-form label small{font-size:12px}
.price-box{gap:8px;font-size:14px}
.price-box>div{gap:12px;align-items:baseline}
.price-box span{color:#d2dfd8}
.price-total{font-size:15px;margin-top:4px;padding-top:12px}
.price-total strong{font-size:20px;white-space:nowrap;font-variant-numeric:tabular-nums}
.price-total .price-hint{font-size:14px;font-weight:500;white-space:normal;text-align:right}
.price-note{font-size:11px;line-height:1.4;color:#d2dfd8}
.availability-section>.booking-section{padding-top:40px;padding-bottom:0}
.availability-section>.booking-section .booking-copy h2{font-size:clamp(1.8rem,3vw,2.8rem)}
@media(max-width:620px){
  .hero-actions .public-phone{width:50px;flex-basis:50px;padding:0;gap:0}
  .public-phone-label{display:none}
  .booking-form .contact-fields{grid-template-columns:minmax(0,1fr);gap:14px}
  .booking-form .contact-fields label{grid-column:1}
  .booking-form .check-row span{font-size:12px;font-weight:600}
  .booking-form .check-row b{font-size:11px}
  .site-header{padding:calc(6px + env(safe-area-inset-top,0px)) 12px 6px;min-height:56px;gap:0 8px}
  .site-header .brand{padding:0;min-width:0;min-height:32px;gap:7px}
  .site-header .brand-logo{position:static;width:32px;height:32px;flex-shrink:0}
  .site-header .brand strong{font-size:1.125rem;white-space:nowrap}.site-header .brand small{display:none}
  .site-header .menu-toggle{min-height:40px;width:36px;padding:0;justify-content:center;font-size:0;gap:0;grid-row:1}
  .site-header .menu-toggle span{font-size:20px}
  .site-header .header-phones{padding:0;gap:0;grid-column:2;grid-row:1;min-width:0}
  .site-header .header-phones a{font-size:10px;min-height:22px;letter-spacing:-.15px}
  .site-header .header-phones svg{width:10px;height:10px;margin-right:3px}
  .availability-section{padding:36px 0}
  .availability-grid{gap:20px}.availability-grid h2{font-size:2rem;margin-bottom:12px}
  .availability-grid .eyebrow{margin-bottom:10px}.calendar-legend{margin-top:14px}
  .availability-section>.booking-section{padding-top:28px;gap:16px}
  .booking-copy h2{margin-bottom:10px}.booking-copy>p:not(.eyebrow){margin-bottom:12px}
  .booking-note{margin-top:12px;padding:12px 14px}
}
@media(max-width:360px){.site-header{padding-inline:9px;column-gap:6px}.site-header .brand{gap:5px}.site-header .brand-logo{width:28px;height:28px}.site-header .brand strong{font-size:1rem}.site-header .header-phones a{font-size:9.5px}.site-header .menu-toggle{width:32px}}
.site-header{min-height:64px;padding-block:8px}
.site-header .brand-logo{width:48px;height:36px}
.site-header .header-phones a{min-height:22px}
.site-header .nav-cta{padding:10px 16px}
.site-header .menu-toggle{height:32px;min-height:32px;padding:0 10px;gap:8px;font-size:13px;line-height:1;border-radius:6px}
.menu-toggle span{display:flex;align-items:center}
.menu-toggle svg{display:block;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
@media(max-width:1000px){.site-header{min-height:60px;padding-block:7px}}
@media(max-width:620px){.site-header{min-height:52px;padding-block:calc(4px + env(safe-area-inset-top,0px)) 4px}.site-header .brand-logo{width:32px;height:32px}.site-header .menu-toggle{width:32px;height:32px;min-height:32px;padding:0;font-size:0;gap:0}}
@media(max-width:360px){.site-header .brand-logo{width:28px;height:28px}}
.site-header .header-phones{flex-direction:row;flex-wrap:wrap;flex:1 1 auto;min-width:0;gap:0 12px;justify-content:flex-end;align-content:center}
.site-header .header-phones a{flex:0 0 auto}
@media(max-width:1000px){.site-header{display:flex}.site-header .brand,.site-header .menu-toggle{flex-shrink:0}.site-header .header-phones{order:2}.site-header .menu-toggle{order:3}}
@media(max-width:620px){.site-header .header-phones{gap:0 8px}}
@media(prefers-reduced-motion:reduce) { html{scroll-behavior:auto} *,*::before,*::after{animation:none!important;transition:none!important} }

.calendar-period,.extras-note{font-size:.82rem;line-height:1.5;color:var(--muted)}
.calendar-period:empty{display:none}
.extras-note{margin:0 0 20px}
.faq-list{max-width:860px;margin-inline:auto}
.faq-list details{border-bottom:1px solid var(--line);padding:20px 0}
.faq-list summary{cursor:pointer;font-size:1.05rem;font-weight:600;line-height:1.5;padding-right:12px}
.faq-list p{color:var(--muted);line-height:1.7;margin:12px 0 0}
.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.review-card{margin:0;padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}
.review-card blockquote{margin:0 0 18px;line-height:1.7;white-space:pre-line}
.review-card figcaption{font-weight:600;margin-bottom:10px}
.review-card a{color:var(--forest);font-size:.9rem}
@media(max-width:800px){.reviews-grid{grid-template-columns:1fr}}

.booking-form .extras-fieldset{min-width:0;grid-template-columns:repeat(3,minmax(0,1fr))}
.booking-form .check-row{min-width:0;min-height:52px;cursor:pointer}
.booking-form .check-row span{min-width:0;overflow-wrap:anywhere}
.booking-form .check-row b{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.booking-form .check-row input{accent-color:var(--forest)}
.booking-form .check-row:has(input:checked){border-color:var(--forest);background:#e8edde}
@media(max-width:620px){
  .booking-form .extras-fieldset{grid-template-columns:minmax(0,1fr);gap:8px}
  .booking-form .check-row{grid-template-columns:18px minmax(0,1fr);padding:12px 14px;column-gap:12px !important}
  .booking-form .check-row input{width:18px;height:18px}
  .booking-form .check-row span{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,max-content);align-items:center;gap:4px 12px;font-size:14px;line-height:1.5}
  .booking-form .check-row b{min-width:0;margin-top:0;font-size:13px}
}

/* Compact mobile sections; desktop spacing and the header stay unchanged. */
@media(max-width:620px){
  #top > section:not(.hero){padding-block:24px}
  #top > .intro{gap:16px;border-bottom:0}
  #top .intro-text{margin-bottom:0}
  #top > .interior-section,#top > .location-section{gap:20px}
  #top .outdoor-grid,#top .spa-grid,#top .lake-grid,#top .rules-grid{gap:20px}
  #top .section-heading{gap:10px;margin-bottom:20px}
  #top .outdoor-copy > p:last-of-type,#top .lake-copy > p:last-of-type{margin-bottom:0}
  #top > .lake-section + .section,#top > .section + .section{border-top:1px solid var(--line)}
  #top .availability-section > .booking-section{padding-top:24px}
  #top ~ .site-footer{padding-top:24px}
  #top ~ .site-footer .footer-grid{gap:20px}
}
