:root{
  --night:#27342b; --night-2:#34443a; --night-3:#4a5a4e;
  --snow:#f5f1ea; --paper:#fffdf9; --ink:#2a2620; --muted:#6b6358; --line:#e6dfd3;
  --amber:#d6a35a; --amber-deep:#8a5a22; --amber-soft:#f4e7d2;
  --pine:#5b7a4f; --pine-soft:#e8eee2;
  --booked:#3d4654; --danger:#9c3d2b;
  --cal-xmas:#f7b6d2; --cal-early:#b9ddf6; --cal-ski:#ffe28a;
  --cal-spring:#b9e2b5; --cal-ruska:#efaf7d; --cal-snow:#d4c4f3; --cal-base:#ece7df;
  --cal-arrival:#19643b; --cal-selected:#174ea6; --cal-edge:#103775;
  --radius:14px; --shadow:0 10px 30px -14px rgba(52,44,34,.28);
  --display:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --wrap:1160px;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;background:var(--snow);color:var(--ink);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block;height:auto}
a{color:var(--amber-deep)}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.15;letter-spacing:-.01em;margin:0 0 .5em}
h2{font-size:clamp(1.7rem,3.2vw,2.4rem)}
h3{font-size:1.2rem}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.eyebrow{font:600 .78rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--amber-deep);margin-bottom:.9rem;display:block}
.lead{font-size:1.1rem;color:var(--muted);max-width:62ch}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;z-index:99;background:#fff;padding:8px 12px}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.5em;border:0;border-radius:999px;padding:.85em 1.5em;font:600 1rem/1 var(--sans);text-decoration:none;cursor:pointer;transition:transform .15s,background .15s}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--amber);color:#2a1d0c}
.btn-primary:hover{background:#e2b571}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.35)}
.btn-dark{background:var(--night);color:#fff}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(32,42,35,.92);backdrop-filter:blur(8px);color:#fff}
.site-header .wrap{display:flex;align-items:center;gap:24px;height:64px}
.brand{font-family:var(--display);font-size:1.35rem;font-weight:600;color:#fff;text-decoration:none;white-space:nowrap}
.brand small{font:500 .72rem var(--sans);opacity:.7;margin-left:.5em;letter-spacing:.06em}
.nav{display:flex;gap:20px;margin-left:auto}
.nav a{color:#e6e0d4;text-decoration:none;font-size:.95rem}
.nav a:hover{color:#fff}
.lang{color:#fff;text-decoration:none;font-size:.85rem;border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:.35em .8em}
.site-header .btn{padding:.6em 1.1em;font-size:.92rem}
@media (max-width:900px){.nav{display:none}.site-header .btn{margin-left:auto}}

/* Hero */
.hero{position:relative;color:#fff;background:var(--night);overflow:hidden}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(32,42,35,.92) 0%,rgba(32,42,35,.65) 45%,rgba(32,42,35,.15) 100%)}
.hero .wrap{position:relative;z-index:1;padding-top:clamp(70px,11vw,140px);padding-bottom:clamp(70px,10vw,130px)}
.hero h1{font-size:clamp(2.2rem,5.4vw,4rem);max-width:15ch;margin-bottom:.35em}
.hero p{font-size:1.15rem;max-width:44ch;color:#efe9de}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:1.6rem 0 1.4rem}
.hero-rating{display:inline-flex;align-items:center;gap:.6em;font-size:.95rem;color:#efe9de}
.stars{color:var(--amber);letter-spacing:.08em}
@media (max-width:700px){.hero::after{background:linear-gradient(180deg,rgba(32,42,35,.55),rgba(32,42,35,.9))}}

/* Facts strip */
.facts{background:var(--night-2);color:#fff}
.facts ul{list-style:none;margin:0;padding:22px 20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:18px;max-width:var(--wrap);margin:0 auto}
.facts li{display:flex;flex-direction:column}
.facts b{font-family:var(--display);font-size:1.5rem;font-weight:600;color:var(--amber)}
.facts span{font-size:.88rem;color:#d4cdbf}

/* Sections */
section{padding:clamp(60px,8vw,100px) 0}
.section-head{margin-bottom:2.2rem}
.alt{background:var(--paper)}
.dark{background:var(--night);color:#fff}
.dark .lead{color:#d4cdbf}

/* Benefits */
.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.benefit{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:26px}
.benefit .ico{width:44px;height:44px;border-radius:12px;background:var(--amber-soft);display:grid;place-items:center;font-size:1.4rem;margin-bottom:14px}
.benefit p{color:var(--muted);margin:0}
@media (max-width:860px){.benefits{grid-template-columns:1fr}}

/* Gallery */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:10px}
.gallery button{all:unset;cursor:zoom-in;border-radius:10px;overflow:hidden;position:relative}
.gallery button:focus-visible{outline:3px solid var(--amber)}
.gallery button[hidden]{display:none}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.gallery button:hover img{transform:scale(1.04)}
.gallery .big{grid-column:span 2;grid-row:span 2}
.gallery .more{position:absolute;inset:0;background:rgba(32,42,35,.6);color:#fff;display:grid;place-items:center;font-weight:600}
@media (max-width:760px){.gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}}
.lightbox{position:fixed;inset:0;background:rgba(24,28,24,.95);z-index:100;display:none;align-items:center;justify-content:center;padding:20px}
.lightbox.open{display:flex}
.lightbox figure{margin:0;max-width:1000px;width:100%;text-align:center;color:#e6e0d4}
.lightbox img{max-height:78vh;margin:0 auto;border-radius:8px}
.lightbox figcaption{margin-top:12px;font-size:.95rem}
.lb-btn{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;width:48px;height:48px;border-radius:50%;font-size:1.5rem;cursor:pointer}
.lb-prev{left:16px;top:50%}.lb-next{right:16px;top:50%}.lb-close{right:16px;top:16px}

/* Amenities */
.amen-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.amen-grid h3{font-size:1.05rem;font-family:var(--sans);font-weight:700}
.amen-grid ul{list-style:none;padding:0;margin:0}
.amen-grid li{padding:.35em 0 .35em 1.6em;position:relative;border-bottom:1px dashed var(--line)}
.amen-grid li::before{content:"✓";position:absolute;left:0;color:var(--pine);font-weight:700}
.amen-grid li.no::before{content:"–";color:var(--muted)}
.amen-grid li.no{color:var(--muted)}
@media (max-width:900px){.amen-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.amen-grid{grid-template-columns:1fr}}

/* Booking */
.booking{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:28px;align-items:start}
@media (max-width:960px){.booking{grid-template-columns:1fr}}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}
.cal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.cal-top button{border:1px solid var(--line);background:#fff;width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:1.1rem}
.cal-top button:disabled{opacity:.35;cursor:default}
.cal-hint{font-size:.9rem;color:var(--muted);margin:0}
.months{display:grid;grid-template-columns:1fr 1fr;gap:26px}
@media (max-width:620px){.months{grid-template-columns:1fr}.months .month:nth-child(2){display:none}}
.month h3{font-family:var(--sans);font-size:1rem;font-weight:700;text-transform:capitalize;margin-bottom:8px;text-align:center}
.calendar-grid{display:grid;grid-template-columns:26px repeat(7,minmax(0,1fr));gap:3px}
.week-number{display:grid;place-items:center;font-size:.72rem;font-weight:600;color:var(--muted);border-right:1px solid var(--line);font-variant-numeric:tabular-nums}
.week-heading{border-right:1px solid var(--line)}
.dow{font-size:.72rem;color:var(--muted);text-align:center;padding:4px 0;font-weight:600}
.day{aspect-ratio:1;display:grid;place-items:center;font-size:.88rem;border-radius:8px;border:0;background:transparent;color:var(--ink);position:relative;font-family:inherit}
.day.empty{visibility:hidden}
.day.s-xmas,.legend .s-xmas{background:var(--cal-xmas)}
.day.s-early,.legend .s-early{background:var(--cal-early)}
.day.s-ski,.legend .s-ski{background:var(--cal-ski)}
.day.s-spring,.legend .s-spring{background:var(--cal-spring)}
.day.s-ruska,.legend .s-ruska{background:var(--cal-ruska)}
.day.s-snow,.legend .s-snow{background:var(--cal-snow)}
.day.s-base,.legend .s-base{background:var(--cal-base)}
.day.past{background:transparent;color:#81796e}
.day.booked,.legend .is-booked{background:repeating-linear-gradient(135deg,transparent 0 5px,rgba(255,255,255,.12) 5px 7px),var(--booked);color:#fff;text-decoration:line-through;text-decoration-thickness:2px}
.day.start,.legend .is-arrival{box-shadow:inset 0 0 0 3px var(--cal-arrival)}
.day.start{cursor:pointer;font-weight:700}
.day.start:hover{background:var(--cal-arrival);color:#fff}
.day.sel,.day.start.sel,.legend .is-selected{background:var(--cal-selected);color:#fff;text-decoration:none;box-shadow:none}
.day.sel.edge{background:var(--cal-edge);box-shadow:inset 0 0 0 2px var(--cal-edge)}
.day.start:focus-visible{outline:3px solid var(--cal-selected);outline-offset:2px}
.legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:16px;font-size:.8rem;color:var(--ink)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:18px;height:18px;border-radius:4px;display:inline-block;flex-shrink:0}
.availability-error .months{opacity:.35;pointer-events:none}
.availability-error .cal-hint{color:var(--danger);max-width:75%;text-align:center}
.site-review-score{grid-column:1/-1;font-weight:600;color:var(--ink)}

.summary h3{font-family:var(--sans);font-weight:700;font-size:1.05rem}
.summary .empty-state{color:var(--muted);font-size:.95rem;background:var(--snow);border-radius:10px;padding:16px}
.sum-row{display:flex;justify-content:space-between;gap:10px;padding:.45em 0;border-bottom:1px solid var(--line);font-size:.95rem}
.sum-row.total{border:0;font-weight:700;font-size:1.15rem;padding-top:.8em}
.sum-row small{color:var(--muted)}
.form{display:grid;gap:12px;margin-top:18px}
.form .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form label{display:grid;gap:4px;font-size:.85rem;font-weight:600;color:var(--muted)}
.form input,.form select,.form textarea{font:inherit;font-size:1rem;color:var(--ink);padding:.65em .8em;border:1px solid #d6cec1;border-radius:10px;background:#fff;width:100%}
.form textarea{min-height:84px;resize:vertical}
.form .check{display:flex;gap:8px;align-items:flex-start;font-weight:400;font-size:.85rem}
.form .check input{width:auto;margin-top:.25em}
.form-note{font-size:.82rem;color:var(--muted);margin:0}
.form-msg{padding:12px 14px;border-radius:10px;font-size:.92rem;display:none}
.form-msg.ok{display:block;background:var(--pine-soft);color:var(--pine)}
.form-msg.err{display:block;background:#f5e1da;color:var(--danger)}

.price-table{width:100%;border-collapse:collapse;margin-top:28px;font-size:.95rem;background:var(--paper);border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}
.price-table th,.price-table td{padding:.7em 1em;text-align:left;border-bottom:1px solid var(--line)}
.price-table th{background:var(--night-2);color:#fff;font-weight:600}
.price-table td:last-child,.price-table th:last-child{text-align:right;white-space:nowrap}
.price-table i{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:8px}
@media (max-width:520px){.price-table th,.price-table td{padding:.7em .55em}.price-table th:last-child{white-space:normal}}
.included{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px;font-size:.9rem;color:var(--muted)}

/* Reviews */
.rating-wrap{display:grid;grid-template-columns:300px 1fr;gap:36px;align-items:start}
@media (max-width:820px){.rating-wrap{grid-template-columns:1fr}}
.score{background:var(--night-2);border-radius:var(--radius);padding:28px;text-align:center}
.score b{display:block;font-family:var(--display);font-size:4rem;line-height:1;color:var(--amber)}
.score .stars{font-size:1.3rem;margin:.4em 0}
.score p{font-size:.9rem;color:#d4cdbf;margin:0}
.score a{color:#fff}
.bars{display:grid;gap:12px;margin-bottom:28px}
.bar{display:grid;grid-template-columns:110px 1fr 36px;gap:12px;align-items:center;font-size:.92rem}
.bar .track{height:8px;background:var(--night-3);border-radius:99px;overflow:hidden}
.bar .fill{height:100%;background:var(--amber);border-radius:99px}
.reviews{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.review{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);padding:22px;margin:0}
.review blockquote{margin:0 0 12px;font-size:1rem;color:#f3eee5}
.review figcaption{font-size:.85rem;color:#b9b1a3}
.invite{border:1px dashed rgba(255,255,255,.3);border-radius:var(--radius);padding:22px;color:#d4cdbf}
.invite a{color:var(--amber)}

/* Location */
.loc{display:grid;grid-template-columns:1fr 1.2fr;gap:32px;align-items:start}
@media (max-width:860px){.loc{grid-template-columns:1fr}}
.dist{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.dist li{display:flex;justify-content:space-between;padding:.55em 0;border-bottom:1px solid var(--line)}
.dist b{font-variant-numeric:tabular-nums}
.map{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);aspect-ratio:4/3;background:#e4ded3}
.map iframe{width:100%;height:100%;border:0}
.addr{margin-top:18px;font-style:normal}

/* Seasons */
.seasons{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.season{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.season h3{font-size:1.05rem}
.season p{font-size:.9rem;color:var(--muted);margin:0 0 .6em}
.season .when{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--amber-deep)}
@media (max-width:1000px){.seasons{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.seasons{grid-template-columns:1fr}}

/* FAQ */
.faq{max-width:820px}
.faq details{border-bottom:1px solid var(--line);padding:4px 0}
.faq summary{cursor:pointer;list-style:none;padding:16px 36px 16px 0;font-weight:600;font-size:1.05rem;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:12px;font-size:1.5rem;color:var(--amber-deep)}
.faq details[open] summary::after{content:"–"}
.faq details p{color:var(--muted);margin:0 0 16px}

.terms{columns:2;column-gap:36px;font-size:.92rem;color:var(--muted)}
.terms h3{font-family:var(--sans);font-size:1rem;font-weight:700;color:var(--ink);break-after:avoid}
@media (max-width:760px){.terms{columns:1}}

/* Footer */
.site-footer{background:var(--night);color:#d4cdbf;padding:50px 0 90px;font-size:.92rem}
.site-footer .wrap{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}
.site-footer a{color:#fff}
.site-footer h2{font-size:1.4rem;color:#fff}
@media (max-width:760px){.site-footer .wrap{grid-template-columns:1fr}}

/* Mobile sticky CTA */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--paper);border-top:1px solid var(--line);display:none;align-items:center;justify-content:space-between;padding:10px 16px;gap:12px;box-shadow:0 -6px 20px rgba(0,0,0,.08)}
.mbar b{font-size:1.05rem}.mbar small{display:block;color:var(--muted);font-size:.78rem}
@media (max-width:760px){.mbar{display:flex}}

/* Review pages */
.rv-body{min-height:100vh;display:flex;flex-direction:column}
.rv-page{flex:1;padding:clamp(32px,6vw,70px) 0}
.rv-page .wrap{max-width:720px}
.rv-card h1{font-size:clamp(1.7rem,4vw,2.3rem)}
.rv-card fieldset{border:0;padding:0;margin:0}
.rv-card legend{font-size:.85rem;font-weight:600;color:var(--muted);margin-bottom:4px}
.stars-input{display:flex;gap:4px}
.stars-input button{border:0;background:none;font-size:2.4rem;line-height:1;color:var(--line);cursor:pointer;padding:0 2px;transition:transform .1s,color .1s}
.stars-input button.on{color:var(--amber)}
.stars-input button:hover{transform:scale(1.12)}
.rv-verified{display:inline-block;margin:0;padding:.45em .9em;border-radius:999px;background:var(--pine-soft);color:var(--pine);font-weight:700;font-size:.9rem;justify-self:start}
.rv-count{justify-self:end;font-weight:400}
.rv-thanks{font-size:1.15rem;background:var(--pine-soft);color:var(--pine);padding:18px;border-radius:12px}
.rv-foot{font-size:.88rem;color:var(--muted);margin-top:18px}
.rv-steps{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:22px}
.rv-steps h3{font-family:var(--sans);font-size:1rem;font-weight:700}
.rv-code{font:700 1.6rem/1.2 ui-monospace,Consolas,monospace;letter-spacing:.06em;background:var(--amber-soft);padding:14px 16px;border-radius:10px;margin:0 0 6px}
.rv-copy{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px}
.rv-copy pre{flex:1;min-width:0;margin:0;white-space:pre-wrap;word-break:break-all;font:.85rem/1.5 ui-monospace,Consolas,monospace;background:var(--snow);border:1px solid var(--line);border-radius:10px;padding:12px}
.btn-ghost-dark{background:transparent;border:1px solid var(--line);color:var(--ink);padding:.6em 1em;font-size:.88rem;flex:none}
code{font:.9em ui-monospace,Consolas,monospace;background:var(--amber-soft);padding:.1em .35em;border-radius:5px}
.verified-badge{display:inline-block;font-size:.75rem;font-weight:700;color:#cfe0c4;background:rgba(207,224,196,.12);border:1px solid rgba(207,224,196,.3);border-radius:999px;padding:.15em .6em;margin-left:.4em}
.review .stars{margin-bottom:8px}
.review-cta{margin-top:16px;font-size:.92rem}
.review-cta a{color:var(--amber)}
