
:root { --ink:#17201b; --forest:#244437; --sage:#dbe2d9; --cream:#f4f1e9; --white:#fff; --line:rgba(23,32,27,.14); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:Inter, "Segoe UI", sans-serif; margin:0; background:var(--cream); color:var(--ink); line-height:1.6; }
.site-header { height:88px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 clamp(22px,5vw,72px); background:rgba(255,255,255,.94); position:sticky; top:0; z-index:20; border-bottom:1px solid var(--line); backdrop-filter:blur(14px); }
.brand { justify-self:start; display:flex; }
.logo { width:188px; height:58px; object-fit:contain; }
.main-nav { display:flex; gap:32px; }
.main-nav a { color:var(--ink); text-decoration:none; font-size:14px; font-weight:600; letter-spacing:.02em; }
.main-nav a:hover { color:var(--forest); }
.lang-switch { justify-self:end; display:flex; gap:5px; }
.lang-switch button { width:38px; height:38px; font-size:17px; background:transparent; border:1px solid transparent; border-radius:50%; cursor:pointer; }
.lang-switch button:hover { background:var(--cream); border-color:var(--line); }
main { padding:0; }
section { margin:0; }
.hero { padding:18px clamp(18px,3vw,44px) 0; }
.slider-container { min-height:calc(100vh - 124px); max-height:820px; border-radius:22px; overflow:hidden; position:relative; background:#26372f; }
#sliderImage { width:100%; height:100%; min-height:calc(100vh - 124px); max-height:820px; object-fit:cover; border-radius:0; display:block; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(12,24,18,.72) 0%,rgba(12,24,18,.4) 46%,rgba(12,24,18,.05) 78%); }
.hero-content { position:absolute; z-index:2; left:clamp(28px,7vw,108px); top:50%; transform:translateY(-50%); max-width:690px; color:white; text-align:left; }
.eyebrow,.section-label { text-transform:uppercase; letter-spacing:.18em; font-size:12px; font-weight:700; }
.hero-content h1 { font-family:Georgia, "Times New Roman", serif; font-size:clamp(44px,6vw,82px); font-weight:400; line-height:1.02; letter-spacing:-.035em; margin:18px 0 22px; }
.hero-copy { font-size:clamp(17px,1.5vw,21px); max-width:610px; color:rgba(255,255,255,.88); }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:34px; }
.button { display:inline-flex; min-height:52px; align-items:center; justify-content:center; padding:0 24px; border-radius:999px; text-decoration:none; font-weight:700; font-size:14px; transition:.2s ease; }
.button-primary { background:white; color:var(--ink); }
.button-primary:hover { transform:translateY(-2px); }
.button-ghost { color:white; border:1px solid rgba(255,255,255,.55); background:rgba(255,255,255,.07); }
.slider-btn { z-index:3; width:42px; height:42px; padding:0; font-size:18px; opacity:.78; }
.slider-btn { position:absolute; top:50%; transform:translateY(-50%); border:0; border-radius:50%; color:white; background:rgba(12,24,18,.48); cursor:pointer; }
.slider-btn.left { left:20px; }
.slider-btn.right { right:20px; }
.slider-btn:hover { background:rgba(12,24,18,.82); }
.quick-facts { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); padding:44px 32px; border-bottom:1px solid var(--line); }
.quick-facts div { display:flex; flex-direction:column; align-items:center; gap:1px; border-right:1px solid var(--line); }
.quick-facts div:last-child { border-right:0; }
.quick-facts strong { font-family:Georgia,serif; font-size:30px; font-weight:400; }
.quick-facts span { font-size:13px; color:#667068; }
.intro { max-width:1180px; margin:0 auto; padding:110px 32px; display:grid; grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr); gap:clamp(52px,8vw,110px); align-items:center; }
.intro h2 { font-family:Georgia,serif; font-size:clamp(38px,5vw,62px); font-weight:400; line-height:1.08; letter-spacing:-.025em; margin:15px 0 28px; }
.section-label { color:#6f7d72; }
.lead { font-size:18px; color:#536057; max-width:570px; }
.intro-image { position:relative; }
.intro-image img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:18px; display:block; }
.image-note { position:absolute; left:22px; bottom:22px; display:flex; flex-direction:column; padding:15px 20px; border-radius:12px; color:white; background:rgba(20,33,26,.82); backdrop-filter:blur(10px); }
.image-note strong { font-family:Georgia,serif; font-size:25px; font-weight:400; line-height:1.1; }
.image-note span { font-size:12px; color:rgba(255,255,255,.78); }
.film-section { max-width:1180px; margin:0 auto; padding:0 32px 110px; }
.film-heading { display:grid; grid-template-columns:1fr .75fr; gap:70px; align-items:end; margin-bottom:42px; }
.film-heading .section-label { color:#6f7d72; }
.film-heading h2 { font-family:Georgia,serif; font-size:clamp(42px,5vw,66px); font-weight:400; line-height:1.04; letter-spacing:-.03em; margin:14px 0 0; }
.film-heading>p:not(.section-label) { margin:0 0 8px; color:#657067; font-size:17px; }
.film-frame { position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; border-radius:18px; background:#14231b; box-shadow:0 24px 70px rgba(24,37,29,.14); }
.film-frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.amenities { background:var(--forest); color:white; padding:105px max(24px,calc((100vw - 1116px)/2)); }
.section-heading { display:grid; grid-template-columns:1.15fr .85fr; gap:70px; align-items:end; margin-bottom:54px; }
.section-heading h2 { font-family:Georgia,serif; font-size:clamp(38px,4.6vw,60px); font-weight:400; line-height:1.08; letter-spacing:-.025em; margin:12px 0 0; }
.amenities .section-label { color:#b7c7bc; }
.section-copy { font-size:17px; color:rgba(255,255,255,.7); margin:0 0 6px; max-width:510px; }
.amenities-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.17); border-left:1px solid rgba(255,255,255,.17); }
.amenity { min-height:245px; padding:30px 27px; border-right:1px solid rgba(255,255,255,.17); border-bottom:1px solid rgba(255,255,255,.17); transition:.25s ease; }
.amenity:hover { background:rgba(255,255,255,.07); }
.amenity-icon { display:flex; width:44px; height:44px; align-items:center; justify-content:center; border-radius:50%; background:rgba(255,255,255,.1); font-size:22px; margin-bottom:37px; }
.amenity h3 { font-size:18px; margin:0 0 8px; }
.amenity p { margin:0; font-size:14px; color:rgba(255,255,255,.62); line-height:1.5; }
.gallery-section { max-width:1180px; margin:0 auto; padding:110px 32px; }
.gallery-section .section-label { color:#6f7d72; }
.gallery-section .section-copy { color:#657067; }
.gallery-heading { margin-bottom:48px; }
.photo-grid { display:grid; grid-template-columns:1.25fr .75fr .75fr; grid-template-rows:280px 280px; gap:12px; }
.photo { padding:0; border:0; border-radius:14px; overflow:hidden; cursor:zoom-in; background:#d8ddd7; }
.photo-wide { grid-row:span 2; }
.photo-tall { grid-row:span 2; }
.photo img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .45s ease; }
.photo:hover img { transform:scale(1.035); }
.gallery-more { margin:25px auto 0; display:flex; align-items:center; gap:12px; padding:14px 20px; border:0; background:transparent; color:var(--ink); font-weight:700; cursor:pointer; }
.gallery-more span:last-child { font-size:20px; }
.gallery-data { display:none; }
.lightbox { width:min(1180px,94vw); height:min(820px,90vh); padding:0; border:0; border-radius:18px; overflow:hidden; background:#101411; }
.lightbox::backdrop { background:rgba(5,8,6,.88); backdrop-filter:blur(8px); }
.lightbox img { width:100%; height:100%; display:block; object-fit:contain; }
.lightbox-meta { position:absolute; left:20px; right:20px; bottom:16px; display:flex; justify-content:space-between; gap:20px; color:white; font-size:13px; text-shadow:0 1px 8px rgba(0,0,0,.9); }
.lightbox-close,.lightbox-prev,.lightbox-next { position:absolute; z-index:2; border:0; color:white; background:rgba(10,15,12,.62); cursor:pointer; }
.lightbox-close { right:18px; top:18px; width:44px; height:44px; border-radius:50%; font-size:28px; }
.lightbox-prev,.lightbox-next { top:50%; transform:translateY(-50%); width:46px; height:66px; font-size:38px; }
.lightbox-prev { left:15px; }.lightbox-next { right:15px; }
.location-section { display:grid; grid-template-columns:1fr 1fr; min-height:720px; background:#e7e3d8; }
.location-copy { padding:110px max(42px,calc((100vw - 1116px)/2)); padding-right:clamp(50px,7vw,120px); display:flex; flex-direction:column; justify-content:center; }
.location-copy h2 { font-family:Georgia,serif; font-size:clamp(42px,5vw,66px); font-weight:400; line-height:1.06; letter-spacing:-.03em; margin:14px 0 28px; }
.location-copy>p:not(.section-label) { color:#5d675f; font-size:17px; max-width:570px; }
.distance-list { display:grid; grid-template-columns:1fr 1fr; gap:0; margin-top:36px; border-top:1px solid var(--line); border-left:1px solid var(--line); }
.distance-list div { display:flex; flex-direction:column; padding:18px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.distance-list strong { font-family:Georgia,serif; font-size:24px; font-weight:400; }.distance-list span { font-size:12px; color:#69736b; }
.location-visual { position:relative; min-height:620px; }.location-visual img { width:100%; height:100%; display:block; object-fit:cover; }.location-visual>span { position:absolute; right:20px; bottom:20px; color:white; background:rgba(20,33,26,.75); padding:10px 14px; border-radius:8px; font-size:12px; }
.reviews-section { max-width:1180px; margin:0 auto; padding:110px 32px; }
.reviews-summary { display:grid; grid-template-columns:1fr auto; align-items:end; column-gap:40px; padding-bottom:45px; border-bottom:1px solid var(--line); }
.reviews-summary .section-label { grid-column:1/-1; color:#6f7d72; }.rating-line { display:flex; align-items:center; gap:22px; }.rating-line strong { font-family:Georgia,serif; font-size:84px; line-height:1; font-weight:400; }.rating-line span { color:#385244; letter-spacing:5px; }.reviews-summary>p:not(.section-label) { color:#657067; }
.rating-stats { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,1fr); max-width:600px; margin-top:30px; }.rating-stats span { display:flex; flex-direction:column; border-right:1px solid var(--line); padding-right:25px; margin-right:25px; }.rating-stats b { font-family:Georgia,serif; font-size:26px; }.rating-stats small { color:#6a746c; }
.review-cards { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:38px; }.review-card { display:flex; flex-direction:column; min-height:260px; padding:30px; border:1px solid var(--line); border-radius:14px; background:#f8f6f0; }.review-top { display:flex; justify-content:space-between; color:#31503f; font-size:13px; }.review-top time { color:#7a827c; }.review-card blockquote { font-family:Georgia,serif; font-size:20px; line-height:1.45; margin:25px 0; }.review-card footer { margin-top:auto; color:#6e766f; font-size:13px; }.airbnb-reviews-link { width:max-content; display:flex; gap:10px; margin:28px auto 0; color:var(--ink); text-decoration:none; font-weight:700; }
.booking-cta { display:flex; align-items:flex-end; justify-content:space-between; gap:50px; padding:90px max(32px,calc((100vw - 1116px)/2)); background:var(--forest); color:white; }.booking-cta .section-label { color:#b7c7bc; }.booking-cta h2 { max-width:760px; font-family:Georgia,serif; font-size:clamp(40px,5vw,64px); font-weight:400; line-height:1.05; margin:15px 0 0; }.booking-cta .button { flex-shrink:0; }
.site-footer { padding:70px max(32px,calc((100vw - 1116px)/2)) 24px; display:grid; grid-template-columns:1.4fr .8fr .8fr; gap:60px; background:#15231c; color:white; }.footer-brand img { width:188px; filter:brightness(0) invert(1); }.footer-brand p { color:rgba(255,255,255,.55); }.footer-links,.footer-contact { display:flex; flex-direction:column; gap:9px; }.site-footer a { color:rgba(255,255,255,.78); text-decoration:none; }.site-footer a:hover { color:white; }.footer-bottom { grid-column:1/-1; display:flex; justify-content:space-between; padding-top:25px; border-top:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.43); font-size:12px; }
form { display: flex; flex-direction: column; gap: 0.5rem; max-width: 500px; }
form input, form textarea { padding: 0.5rem; font-size: 1rem; }
form button { padding: 0.75rem; background: #2e3d29; color: #fff; border: none; cursor: pointer; }
iframe { width: 100%; height: 300px; border: none; margin-top: 1rem; }
.external a { display: inline-block; padding: 1rem; background: #2e3d29; color: white; text-decoration: none; }
@media (max-width:900px) {
  .site-header { grid-template-columns:1fr auto; height:74px; }
  .main-nav { display:none; }
  .logo { width:158px; height:50px; }
  .hero { padding:10px; }
  .slider-container,#sliderImage { min-height:calc(100svh - 94px); }
  .hero-content { left:28px; right:28px; }
  .quick-facts { grid-template-columns:repeat(2,1fr); row-gap:28px; }
  .quick-facts div:nth-child(2) { border-right:0; }
  .intro { grid-template-columns:1fr; padding:78px 24px; }
  .film-section { padding:0 24px 78px; }
  .film-heading { grid-template-columns:1fr; gap:20px; }
  .section-heading { grid-template-columns:1fr; gap:22px; }
  .amenities { padding:78px 24px; }
  .amenities-grid { grid-template-columns:repeat(2,1fr); }
  .photo-grid { grid-template-columns:1fr 1fr; grid-template-rows:340px 220px 280px; }
  .photo-wide { grid-column:span 2; grid-row:auto; }
  .photo-tall { grid-row:span 2; }
  .location-section { grid-template-columns:1fr; }.location-copy { padding:78px 24px; }.location-visual { min-height:520px; }
  .reviews-summary { grid-template-columns:1fr; }.rating-stats { grid-column:auto; }.review-cards { grid-template-columns:1fr; }
  .booking-cta { align-items:flex-start; flex-direction:column; padding:78px 24px; }
  .site-footer { grid-template-columns:1fr 1fr; }.footer-brand { grid-column:1/-1; }
}
@media (max-width:560px) {
  .hero-content h1 { font-size:43px; }
  .hero-copy { font-size:16px; }
  .button { width:100%; }
  .slider-btn { display:none; }
  .quick-facts { padding:34px 10px; }
  .quick-facts strong { font-size:25px; }
  .film-section { padding-left:14px; padding-right:14px; }
  .film-frame { border-radius:12px; }
  .amenities-grid { grid-template-columns:1fr; }
  .amenity { min-height:auto; padding:25px; }
  .amenity-icon { margin-bottom:22px; }
  .gallery-section { padding:78px 14px; }
  .photo-grid { grid-template-columns:1fr; grid-template-rows:300px repeat(4,220px); }
  .photo-wide,.photo-tall { grid-column:auto; grid-row:auto; }
  .distance-list { grid-template-columns:1fr; }
  .rating-line { align-items:flex-start; flex-direction:column; gap:5px; }.rating-line strong { font-size:68px; }.rating-stats { grid-template-columns:1fr; }.rating-stats span { border-right:0; border-bottom:1px solid var(--line); padding:12px 0; }
  .review-card { padding:24px; }.review-card blockquote { font-size:18px; }
  .site-footer { grid-template-columns:1fr; }.footer-brand,.footer-bottom { grid-column:auto; }.footer-bottom { flex-direction:column; gap:5px; }
}
