@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display&display=swap');
:root{--ink:#1b352d;--green:#2e5748;--muted:#69776e;--cream:#fbf8f2;--sage:#e9eee6;--line:#dfe7df}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}h1,h2,h3,.logo{font-family:'DM Serif Display',Georgia,serif;font-weight:400}h1{font-size:clamp(3.8rem,7vw,7rem);line-height:1;margin:13px 0 22px}h2{font-size:clamp(2.1rem,4vw,3.5rem);line-height:1.1;margin:10px 0 18px}h3{font-size:1.45rem;margin:0 0 10px}p{line-height:1.7}a{color:inherit;text-decoration:none}header{position:sticky;top:0;z-index:30;background:#fbf8f4ec;backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.head{max-width:1280px;margin:auto;display:flex;align-items:center;gap:24px;justify-content:space-between;padding:14px 28px}.logo{font-size:1.85rem;white-space:nowrap}.links{display:flex;gap:24px;align-items:center}.links a{font-size:.86rem}.langs{display:flex;gap:4px}.langs a{font-size:.82rem;border-radius:6px;padding:9px 8px}.langs .active{background:#dfe9df;font-weight:700}.btn{background:var(--green);border:1px solid var(--green);border-radius:7px;color:white;display:inline-block;padding:14px 23px;font-weight:700;font-size:.92rem;cursor:pointer}.btn:hover{background:#193b30}.btn-outline{background:transparent;color:var(--green)}.menu{display:none}main{overflow:hidden}.hero{min-height:550px;display:grid;grid-template-columns:46% 54%;background:#f5f2eb}.hero-copy{padding:115px 6vw 85px max(28px,calc((100vw - 1280px)/2 + 28px));align-self:center}.kicker{font-size:.74rem;font-weight:700;letter-spacing:.19em;text-transform:uppercase;color:var(--green)}.hero-copy p{font-size:1.14rem;max-width:460px;margin:0 0 28px}.hero-image{position:relative;overflow:hidden}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center 50%;display:block}.hero-image:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#f5f2eb 0%,transparent 23%);pointer-events:none}.hero-foot{margin-top:16px;color:#567063;font-size:.86rem}.features{max-width:1280px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);padding:28px 26px;gap:12px;border-bottom:1px solid var(--line)}.features div{font-size:.89rem;text-align:center;border-right:1px solid var(--line)}.features div:last-child{border:0}.wrap{max-width:1280px;margin:auto;padding:88px 28px}.split{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.split img{width:100%;border-radius:9px;aspect-ratio:4/3;object-fit:cover}.split p{color:#4e6259;max-width:540px}.gallery{background:#eef1eb}.section-header{max-width:750px;margin-bottom:28px}.section-header p{color:#587166}.photos{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.photo{border:0;background:transparent;padding:0;cursor:pointer;display:block;overflow:hidden;border-radius:8px;aspect-ratio:4/3}.photo.large{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}.photo img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.photo:hover img{transform:scale(1.04)}.region{background:#fbf8f2}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.item{padding:28px;border:1px solid #e0e4dc;background:white;border-radius:9px}.num{font-family:Georgia,serif;color:#8fa49b;font-size:1.45rem}.item p{font-size:.91rem;color:#56685e;margin:0}.booking{background:#e9eee6}.booking-panel{background:#fcfbf7;border-radius:14px;padding:36px;box-shadow:0 10px 30px #22433711}.booking-panel p{color:#5d7066}.booking-widget{margin-top:25px;padding:16px;border:1px solid var(--line);border-radius:9px;min-height:180px;overflow:auto;background:#fff}.notice{font-size:.82rem;color:#7b6644!important;background:#faf3df;padding:12px 15px;border-radius:7px;margin-top:18px}.foot{background:#19372c;color:#e4eee7;padding:35px 28px}.foot .inner{max-width:1280px;margin:auto;display:flex;justify-content:space-between;gap:20px;align-items:center}.foot p{font-size:.8rem;color:#c5d1ca}.lightbox{position:fixed;inset:0;background:#091a16eb;z-index:100;display:none;align-items:center;justify-content:center;padding:30px}.lightbox.on{display:flex}.lightbox img{max-width:min(95vw,1100px);max-height:85vh;object-fit:contain}.lightbox button{position:absolute;top:18px;right:22px;border:0;background:#fff;color:#122b22;border-radius:50%;height:42px;width:42px;cursor:pointer;font-size:26px}.lightbox .hint{position:absolute;bottom:14px;color:white;font-size:.8rem}.noscript{padding:1rem;color:red}@media(max-width:960px){.links{display:none}.head{gap:12px}.hero{grid-template-columns:1fr}.hero-copy{padding:68px 28px 36px}.hero-image{min-height:390px}.hero-image:after{display:none}.split{gap:28px}.photos{grid-template-columns:repeat(3,1fr)}.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.logo{font-size:1.45rem}.head{padding:12px 16px}.head>.btn{display:none}.langs a{padding:9px 6px}.hero-copy{padding:48px 20px 30px}.hero-image{min-height:350px}.features{grid-template-columns:repeat(2,1fr);gap:22px;padding:25px 18px}.features div:nth-child(2){border-right:0}.wrap{padding:62px 18px}.split{grid-template-columns:1fr}.photos{grid-template-columns:repeat(2,1fr);gap:8px}.photo.large{grid-column:span 2;grid-row:span 1;aspect-ratio:4/3}.cards{grid-template-columns:1fr}.booking-panel{padding:20px}.foot .inner{flex-direction:column;align-items:flex-start}}
/* V2 gallery navigation */
body.lightbox-open{overflow:hidden}
.lightbox button.lightbox-arrow{top:50%;right:auto;transform:translateY(-50%);height:58px;width:44px;border-radius:8px;background:#fffdf0df;font-size:42px;line-height:1;z-index:2}
.lightbox button.previous{left:12px}.lightbox button.next{left:auto;right:12px}
.lightbox #closeLightbox{z-index:3}.lightbox img{max-width:min(90vw,1100px);max-height:82vh}.lightbox .hint{font-variant-numeric:tabular-nums}
@media(max-width:620px){.lightbox{padding:8px}.lightbox img{max-width:100%;max-height:80vh}.lightbox button.lightbox-arrow{height:48px;width:36px;font-size:32px}.lightbox button.previous{left:4px}.lightbox button.next{right:4px}}


/* V3: regional recommendations — full-width heading and subtle card highlight */
.region .section-header {max-width:none}
.region #regionHeading {font-size:clamp(2rem,3.45vw,3.55rem);letter-spacing:-.025em;text-wrap:balance}
.region .section-header p {max-width:760px}
.region .item {box-shadow:0 3px 12px rgba(27,53,45,.025);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background-color .22s ease}
@media (hover:hover) and (pointer:fine) {.region .item:hover {transform:translateY(-5px);box-shadow:0 14px 32px rgba(27,53,45,.11);border-color:#9db8a7;background-color:#fffefa}}
@media (min-width:1100px) {.region #regionHeading {white-space:nowrap}}
@media (max-width:620px) {.region #regionHeading {font-size:clamp(2rem,8.2vw,2.75rem)}}
@media (prefers-reduced-motion:reduce) {.region .item {transition:none}}

/* V5 — explicit gallery layout: 5 featured tiles + 12 photos in 3 rows x 4 columns */
.photos{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:row;grid-auto-rows:auto}
.photo{min-width:0}
.photo.large{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
/* Feature block: image 1 occupies 2x2; images 2–5 fill its right-hand cells.
   Remaining 12 images occupy exactly three full four-column rows. */
@media(max-width:960px) and (min-width:621px){
 .photos{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:620px){
 .photos{grid-template-columns:repeat(2,minmax(0,1fr))}
 .photo.large{grid-column:span 2;grid-row:span 1;aspect-ratio:4/3}
}
/* Region cards: make hover visible in Safari and other pointer-equipped browsers */
.region .item{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background-color .22s ease;will-change:transform}
.region .item:hover{transform:translateY(-7px);box-shadow:0 17px 34px rgba(27,53,45,.19);border-color:#7d9e8c;background:#fffefa}
@media(prefers-reduced-motion:reduce){.region .item{transition:none}}

/* V6: editorial equipment and review sections */
.amenities .section-header{max-width:960px}.amenities-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.amenity-card{border:1px solid #dfe7df;border-radius:13px;background:#fdfcf8;padding:26px 29px}
.amenity-card h3,.useful h3,.hosts h3{font-family:Georgia,serif;font-size:1.4rem;margin:0 0 16px;color:#19392e}
.amenity-card ul,.useful ul{padding:0;margin:0;list-style:none}.amenity-card li{padding:8px 0 8px 23px;position:relative;border-bottom:1px solid #e7ebe5;color:#496154;font-size:.93rem}
.amenity-card li:last-child{border-bottom:0}.amenity-card li::before{content:'✓';position:absolute;left:0;color:#36745a}
.useful{margin-top:22px;display:flex;gap:30px;align-items:baseline;padding:20px 26px;border-radius:10px;background:#edf3eb}
.useful h3{font-size:1.2rem;white-space:nowrap;margin:0}.useful ul{display:flex;flex-wrap:wrap;gap:8px 25px}.useful li{font-size:.85rem;color:#486154}
.stay-detail{font-size:.92rem;color:#52695f;line-height:1.8;margin-top:20px}
.reviews{background:#f0f4ef}.review-panel{border-radius:16px;background:#fff;padding:40px;display:grid;grid-template-columns:1fr 250px;gap:50px;box-shadow:0 10px 35px rgba(25,55,44,.055)}
.review-panel h2{margin:10px 0 20px}.review-panel p{color:#4e675a}.review-link{display:inline-block;color:#245b45;text-decoration:underline;text-underline-offset:5px;font-weight:650;margin-top:12px}
.score{display:flex;align-items:center;justify-content:center;flex-direction:column;border-left:1px solid #e5ede6;padding-left:30px;text-align:center;gap:6px}
.score .stars{font-size:1.45rem;letter-spacing:3px;color:#b08439}.score strong{font-family:Georgia,serif;color:#19392e;font-size:3.35rem;line-height:1.1}
.score strong small{font-size:1.15rem;color:#5b7165}.score span{color:#637970;font-size:.88rem}.score .top-one{background:#e4efe4;border-radius:30px;padding:7px 14px;color:#2b5a42;font-weight:700}
.review-foot{font-size:.76rem;color:#687c70;margin:14px 0 24px}.hosts{padding:0 10px}.hosts h3{margin:0 0 8px}.hosts p{max-width:750px;color:#587063}
@media(max-width:920px){.amenities-grid{grid-template-columns:1fr 1fr}.review-panel{grid-template-columns:1fr 190px;gap:15px}.useful{display:block}.useful h3{margin-bottom:10px}}
@media(max-width:640px){.amenities-grid{grid-template-columns:1fr}.review-panel{grid-template-columns:1fr;padding:25px}.score{border-left:0;border-top:1px solid #e5ede6;padding:24px 0 0}.useful ul{display:block}.useful li{margin:8px 0}}

/* V7 — four amenities groups and two independent source ratings */
.amenities-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.amenity-card{min-height:100%}
.ratings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.rating-card{background:#fff;border:1px solid #dae4d9;border-radius:16px;padding:34px 36px;box-shadow:0 9px 25px rgba(27,53,45,.035)}
.rating-source{font-weight:700;letter-spacing:.04em;color:#355d4a;font-size:.9rem}
.rating-number{font-family:Georgia,serif;font-size:3.6rem;line-height:1.15;margin-top:10px;color:#1a382d}
.rating-number small{font-size:1.2rem;color:#697d72}
.rating-stars{color:#a88034;font-size:1.05rem;letter-spacing:.04em;margin:9px 0}
.rating-count{font-size:.91rem;color:#5a7064}
.rating-card .review-link{margin-top:22px}
.reviews .section-header{max-width:850px}
.review-foot{margin:22px 0 35px}
.hosts{border-top:1px solid #dce6da;padding:26px 0 0}
@media(max-width:680px){.amenities-grid,.ratings-grid{grid-template-columns:1fr}.rating-card{padding:26px}.rating-number{font-size:3rem}}


/* V8: direct-booking rate promise and source-labelled guest feedback */
.price-promise{border:1px solid #cbdccf;border-radius:12px;background:#eaf1e8;padding:20px 23px;max-width:690px}
.price-promise strong{display:block;font-family:Georgia,serif;font-size:clamp(1.05rem,1.8vw,1.4rem);line-height:1.3;color:#204e3c}
.price-promise p{font-size:.87rem;line-height:1.6;color:#365a49;margin:8px 0 0;max-width:680px}
.hero-price-promise{margin:28px 0 6px;background:#eaf1e8e8}
.hero-copy .hero-price-promise p{font-size:.86rem;margin:7px 0 0}
.booking-price-promise{max-width:none;margin:24px 0 6px;background:#e8f2e7}
.booking-panel .booking-price-promise p{color:#365a49}
.guest-voices{margin-top:48px}
.guest-voices h3{font-size:clamp(1.6rem,2.5vw,2.25rem);margin:0 0 12px}
.guest-voices-intro{color:#587166;max-width:870px;margin:0 0 22px;font-size:.92rem}
.guest-voices-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.guest-voice-card{background:#fffefa;border:1px solid #dbe5da;border-radius:13px;padding:24px 26px;display:flex;flex-direction:column;gap:12px}
.guest-voice-source{letter-spacing:.1em;text-transform:uppercase;color:#46725b;font-weight:750;font-size:.72rem}
.guest-voice-card p{color:#334f41;font-size:1.02rem;line-height:1.65;margin:0;flex:1}
.guest-voice-card span{font-weight:650;color:#577064;font-size:.84rem}
.guest-voices-disclaimer{font-size:.77rem;color:#6c7c72;margin-top:14px}
@media(max-width:700px){.guest-voices-grid{grid-template-columns:1fr}.hero-price-promise{margin-top:24px}.guest-voices{margin-top:32px}}

/* V9 — Name story */
.name-story{background:#f2eee5;border-top:1px solid #e5e5d9}
.name-story-inner{display:grid;grid-template-columns:minmax(140px,260px) 1fr;gap:clamp(28px,6vw,88px);align-items:center;padding-top:76px;padding-bottom:76px}
.name-story-art{display:flex;align-items:center;justify-content:center;min-height:190px;background:#e8e8d9;border-radius:50% 48% 50% 46%;aspect-ratio:1;max-width:240px;margin:auto;box-shadow:inset 0 0 0 1px rgba(41,82,62,.06)}
.fox-mark{width:78%;height:auto;filter:drop-shadow(0 5px 8px rgba(64,48,35,.06))}
.name-story-copy{max-width:725px}
.name-story h2{font-size:clamp(2rem,3.6vw,3.25rem);margin:12px 0 23px}
.name-story p{font-size:1.05rem;line-height:1.8;color:#4d6558;margin:0 0 13px}
.name-story em{font-style:italic;color:#244d3c}
@media(max-width:650px){.name-story-inner{grid-template-columns:1fr;gap:20px;padding-top:58px;padding-bottom:58px}.name-story-art{max-width:150px;min-height:150px}.name-story h2{margin-top:9px}}
