:root{
  --ink:#0a0a0a;
  --paper:#f1eee7;
  --muted:#aaa69d;
  --line:rgba(241,238,231,.16);
  --max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink)}
body{margin:0;background:var(--ink);color:var(--paper);font-family:Arial,Helvetica,sans-serif;line-height:1.5;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit}
.site-header{position:fixed;z-index:50;top:0;left:0;right:0;height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;border-bottom:1px solid rgba(255,255,255,.08);background:linear-gradient(to bottom,rgba(10,10,10,.94),rgba(10,10,10,.68),transparent);backdrop-filter:blur(8px)}
.brand{display:flex;align-items:center;gap:11px;font-size:11px;letter-spacing:.13em;line-height:1.2}.brand img{width:42px;height:42px;border-radius:50%;object-fit:cover;filter:grayscale(1)}.brand b{font-size:13px}
.desktop-nav{display:flex;gap:26px;align-items:center;font-size:12px;text-transform:uppercase;letter-spacing:.12em}.desktop-nav a{opacity:.82;transition:.2s}.desktop-nav a:hover{opacity:1}.nav-cta{border:1px solid rgba(255,255,255,.5);padding:9px 14px}.lang-toggle{background:transparent;color:var(--paper);border:0;border-left:1px solid var(--line);padding-left:18px;cursor:pointer;font-size:12px;letter-spacing:.12em}
.hero{min-height:100vh;position:relative;display:flex;align-items:flex-end;overflow:hidden;padding:130px 7vw 9vh}.hero-media{position:absolute;inset:0 0 0 42%;overflow:hidden}.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 42%;filter:grayscale(1) contrast(1.08);transition:filter .45s ease}.hero:hover .hero-media img{filter:grayscale(.25) contrast(1.04)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,#0a0a0a 0%,#0a0a0a 37%,rgba(10,10,10,.74) 56%,rgba(10,10,10,.12) 100%),linear-gradient(0deg,rgba(10,10,10,.78),transparent 44%)}.hero-content{position:relative;z-index:2;width:min(760px,72%)}
.eyebrow{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#c7c1b7;margin:0 0 18px}h1,h2,h3{margin:0;line-height:.95;font-weight:700;letter-spacing:-.035em}h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(64px,9vw,148px);font-weight:400;line-height:.82}h1 em{font-weight:400;color:#ded9cf}.hero-copy{font-size:clamp(16px,1.5vw,21px);max-width:610px;color:#cbc6bd;margin:28px 0 32px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border:1px solid transparent;text-transform:uppercase;letter-spacing:.11em;font-size:11px;font-weight:700;cursor:pointer;transition:transform .2s,background .2s,color .2s}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--paper);color:var(--ink)}.btn-primary:hover{background:#fff}.btn-ghost{border-color:rgba(255,255,255,.35);background:rgba(0,0,0,.15)}.btn-dark{background:var(--ink);color:var(--paper);margin-top:18px}.scroll-note{position:absolute;right:3vw;bottom:4vh;z-index:2;writing-mode:vertical-rl;font-size:9px;letter-spacing:.25em;color:#aaa}
.proof-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr)}.proof-strip>div{padding:28px 7vw;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:4px}.proof-strip>div:last-child{border-right:0}.proof-strip strong{font-family:Georgia,serif;font-size:21px;font-weight:400}.proof-strip span{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#8d8a84}
.section{padding:120px max(5vw,calc((100vw - var(--max))/2))}.section-heading{max-width:780px;margin-bottom:56px}.section-heading h2,.available-intro h2,.about-copy h2,.booking-copy h2{font-family:Georgia,serif;font-size:clamp(46px,6vw,86px);font-weight:400}.section-heading>p:last-child,.available-intro>p,.about-copy>p,.booking-copy>p{max-width:650px;color:#aaa59b;font-size:16px}
/* Natural-ratio masonry: no forced crops. */
.gallery{columns:4 250px;column-gap:10px}.gallery-item{margin:0 0 10px;break-inside:avoid;position:relative;overflow:hidden;background:#151515;cursor:zoom-in}.gallery-item img{width:100%;height:auto;filter:grayscale(1) contrast(1.03);transition:filter .34s ease,transform .45s ease}.gallery-item:hover img{filter:grayscale(0) contrast(1);transform:scale(1.012)}.center{text-align:center;margin-top:34px}.text-link{display:inline-block;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:4px;font-size:12px;text-transform:uppercase;letter-spacing:.12em}
.available{display:grid;grid-template-columns:.78fr 1.22fr;gap:7vw;background:var(--paper);color:var(--ink);align-items:center}.available .eyebrow{color:#77716a}.available-intro p{color:#5e5a54}.flash-stack{display:grid;grid-template-columns:1fr;gap:12px}.flash-card{background:#ddd7cc;overflow:hidden;cursor:zoom-in}.flash-card img{width:100%;height:auto;filter:grayscale(1) contrast(1.02);mix-blend-mode:multiply;transition:filter .35s ease,transform .45s ease}.flash-card:hover img{filter:grayscale(0);transform:scale(1.008)}
.location-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.location-card{padding:34px;border-right:1px solid var(--line);min-height:300px;display:flex;flex-direction:column}.location-card:last-child{border-right:0}.location-card>span{font-size:10px;color:#777;letter-spacing:.16em}.location-card h3{font-family:Georgia,serif;font-size:42px;font-weight:400;margin:45px 0 18px}.location-card p{color:#9c9991;max-width:310px}.location-card a{margin-top:auto;font-size:11px;text-transform:uppercase;letter-spacing:.11em}
.process{background:#111}.process-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.process-list li{display:grid;grid-template-columns:90px 1fr 1.3fr;gap:24px;align-items:start;padding:28px 0;border-bottom:1px solid var(--line)}.process-list b{font-size:11px;color:#777;letter-spacing:.12em}.process-list h3{font-family:Georgia,serif;font-size:28px;font-weight:400}.process-list p{margin:0;color:#9e9a92}
.about{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.about-image{max-height:700px;overflow:hidden;background:#111}.about-image img{width:100%;height:auto;filter:grayscale(1) contrast(1.04);transition:filter .35s}.about-image:hover img{filter:grayscale(0)}.about-copy .lead{font-family:Georgia,serif;font-size:23px;color:#d6d0c6;margin-top:28px}.about-copy .text-link{margin-top:18px}
.booking{display:grid;grid-template-columns:.85fr 1.15fr;gap:7vw;background:#171717}.booking-copy{position:sticky;top:120px;align-self:start}.booking-copy .booking-alt{margin-top:32px;padding-top:22px;border-top:1px solid var(--line);display:flex;gap:12px;flex-wrap:wrap;font-size:12px;text-transform:uppercase;letter-spacing:.1em}.booking-alt span{color:#777}.booking-alt a{border-bottom:1px solid #777}.booking-form{display:flex;flex-direction:column;gap:18px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.booking-form label{display:flex;flex-direction:column;gap:8px}.booking-form label>span{font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:#aaa}.booking-form input,.booking-form select,.booking-form textarea{width:100%;border:1px solid #333;background:#0f0f0f;color:#eee;border-radius:0;padding:13px 14px;outline:none}.booking-form textarea{resize:vertical}.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-color:#777}.booking-form .check{flex-direction:row;align-items:flex-start;gap:10px}.booking-form .check input{width:auto;margin-top:4px}.booking-form .check span{text-transform:none;letter-spacing:0;line-height:1.45}.submit{width:100%}.hidden{display:none}
.faq-list{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line);padding:24px 0}summary{cursor:pointer;font-family:Georgia,serif;font-size:25px;list-style:none;display:flex;justify-content:space-between;gap:20px}summary:after{content:'+';font-family:Arial;font-weight:300;color:#777}details[open] summary:after{content:'−'}details p{max-width:760px;color:#9c9991}
.footer{padding:50px 5vw 90px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}.footer-brand{display:flex;align-items:center;gap:14px}.footer-brand img{width:52px;border-radius:50%;filter:grayscale(1)}.footer-brand div{display:flex;flex-direction:column}.footer-brand strong{font-size:12px;letter-spacing:.13em}.footer-brand span{font-size:11px;color:#777}.footer-links{display:flex;gap:22px;font-size:10px;text-transform:uppercase;letter-spacing:.12em}.footer>p{grid-column:1/-1;font-size:10px;color:#555;margin:0}.mobile-book{display:none}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}.reveal.visible{opacity:1;transform:none}
.lightbox{position:fixed;z-index:100;inset:0;background:rgba(0,0,0,.94);display:none;align-items:center;justify-content:center;padding:32px}.lightbox.open{display:flex}.lightbox img{max-width:min(94vw,1500px);max-height:92vh;width:auto;height:auto;object-fit:contain}.lightbox-close{position:absolute;right:24px;top:18px;border:0;background:transparent;color:#fff;font:300 42px/1 Arial;cursor:pointer;padding:8px}.lightbox-close:hover{opacity:.7}
@media(max-width:900px){
  .site-header{height:66px;padding:0 18px}.desktop-nav a:not(.nav-cta){display:none}.desktop-nav{gap:12px}.nav-cta{display:none}.brand img{width:36px;height:36px}.brand span{font-size:9px}.brand b{font-size:11px}
  .hero{padding:110px 20px 80px;min-height:92svh;align-items:flex-end}.hero-media{inset:0}.hero-media img{object-position:50% 35%}.hero-overlay{background:linear-gradient(0deg,#0a0a0a 0%,rgba(10,10,10,.87) 36%,rgba(10,10,10,.28) 78%,rgba(10,10,10,.55) 100%)}.hero-content{width:100%}h1{font-size:clamp(56px,18vw,96px)}.hero-copy{font-size:15px;max-width:520px}.scroll-note{display:none}
  .proof-strip{grid-template-columns:1fr}.proof-strip>div{padding:18px 20px;border-right:0;border-bottom:1px solid var(--line)}.proof-strip>div:last-child{border-bottom:0}
  .section{padding:82px 20px}.section-heading{margin-bottom:36px}.gallery{columns:2 180px;column-gap:8px}.gallery-item{margin-bottom:8px}
  .available{grid-template-columns:1fr;gap:44px}.flash-stack{gap:8px}
  .location-grid{grid-template-columns:1fr}.location-card{border-right:0;border-bottom:1px solid var(--line);min-height:235px;padding:28px 0}.location-card:last-child{border-bottom:0}.location-card h3{margin:28px 0 12px}
  .process-list li{grid-template-columns:42px 1fr}.process-list li p{grid-column:2}
  .about{grid-template-columns:1fr;gap:42px}.about-image{max-height:none}
  .booking{grid-template-columns:1fr}.booking-copy{position:static}.field-row{grid-template-columns:1fr}
  .footer{grid-template-columns:1fr}.footer-links{flex-wrap:wrap}.footer>p{grid-column:auto}
  .mobile-book{display:flex;position:fixed;z-index:60;left:12px;right:12px;bottom:12px;height:50px;align-items:center;justify-content:center;background:var(--paper);color:var(--ink);font-size:11px;font-weight:700;letter-spacing:.13em;box-shadow:0 8px 30px rgba(0,0,0,.35)}
}
@media(max-width:560px){.gallery{columns:1}.hero-actions .btn{width:100%}.footer{padding-bottom:90px}.lightbox{padding:12px}.lightbox-close{right:8px;top:6px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.gallery-item img,.flash-card img,.btn,.hero-media img{transition:none}}


.location-actions{margin-top:auto;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.location-actions a{margin-top:0}

.guest-interest{display:grid;grid-template-columns:.85fr 1.15fr;gap:7vw;background:var(--paper);color:var(--ink)}
.guest-interest .eyebrow{color:#77716a}
.guest-interest-copy h2{font-family:Georgia,serif;font-size:clamp(46px,6vw,86px);font-weight:400}
.guest-interest-copy>p:last-child{max-width:650px;color:#5e5a54;font-size:16px}
.guest-form{display:flex;flex-direction:column;gap:18px}
.guest-form label{display:flex;flex-direction:column;gap:8px}
.guest-form label>span{font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:#69645d}
.guest-form input{width:100%;border:1px solid #b9b2a7;background:#faf8f2;color:#111;border-radius:0;padding:13px 14px;outline:none}
.guest-form input:focus{border-color:#4c4842}
.guest-form .btn-primary{background:var(--ink);color:var(--paper)}
.form-status{min-height:1.4em;margin:0;font-size:12px;letter-spacing:.02em;color:#aaa}
.guest-form .form-status{color:#5e5a54}
.form-status.success{color:#8eaa86}
.form-status.error{color:#c58e86}
.guest-form .form-status.success{color:#3d6a39}
.guest-form .form-status.error{color:#8d3329}
.privacy-note{margin:0;font-size:10px!important;color:#777!important;max-width:620px}
button:disabled{opacity:.55;cursor:wait}

@media(max-width:900px){
  .guest-interest{grid-template-columns:1fr;gap:44px}
}


/* Mobile navigation */
.menu-toggle{display:none;width:38px;height:38px;border:0;background:transparent;color:var(--paper);padding:8px;cursor:pointer}
.menu-toggle span{display:block;height:1px;background:currentColor;margin:6px 0;transition:transform .2s,opacity .2s}
.mobile-menu{display:none;position:fixed;z-index:49;left:0;right:0;top:66px;background:rgba(10,10,10,.98);border-bottom:1px solid var(--line);padding:14px 18px 18px}
.mobile-menu a{display:block;padding:13px 2px;border-bottom:1px solid rgba(255,255,255,.08);font-size:12px;text-transform:uppercase;letter-spacing:.12em}
.mobile-menu a:last-child{border-bottom:0}
.mobile-menu.open{display:block}
.menu-toggle.open span:first-child{transform:translateY(3.5px) rotate(45deg)}
.menu-toggle.open span:last-child{transform:translateY(-3.5px) rotate(-45deg)}

@media(max-width:900px){
  .site-header{background:rgba(10,10,10,.94);backdrop-filter:blur(10px)}
  .desktop-nav{margin-left:auto}
  .lang-toggle{padding-left:12px;border-left:0}
  .menu-toggle{display:block}
  .brand span{display:none}

  /* Keep mobile hero strong but substantially shorter. */
  .hero{min-height:72svh;padding:92px 18px 44px}
  .hero-media img{object-position:center 38%}
  .hero-content{max-width:680px}
  h1{font-size:clamp(52px,16vw,82px);line-height:.85}
  .hero-copy{margin:20px 0 22px;line-height:1.45}
  .hero-actions{gap:8px}
  .hero-actions .btn{min-height:44px;padding:0 15px}

  /* Reduce unnecessary vertical travel on phones. */
  .proof-strip{grid-template-columns:repeat(3,1fr)}
  .proof-strip>div{padding:14px 8px;text-align:center;border-right:1px solid var(--line);border-bottom:0}
  .proof-strip>div:last-child{border-right:0}
  .proof-strip strong{font-size:16px}
  .proof-strip span{font-size:8px;letter-spacing:.08em}

  .section{padding:58px 18px}
  .section-heading{margin-bottom:28px}
  .section-heading h2,.available-intro h2,.about-copy h2,.booking-copy h2,.guest-interest-copy h2{font-size:clamp(38px,11vw,58px)}
  .section-heading>p:last-child,.available-intro>p,.about-copy>p,.booking-copy>p,.guest-interest-copy>p:last-child{font-size:14px}

  /* Two-column portfolio on normal phones, one on very narrow screens. */
  .gallery{columns:2;column-gap:6px}
  .gallery-item{margin-bottom:6px}

  /* Available sheets scroll horizontally instead of becoming a very long stack. */
  .available{gap:28px}
  .flash-stack{display:flex;overflow-x:auto;gap:10px;scroll-snap-type:x mandatory;padding-bottom:6px;-webkit-overflow-scrolling:touch}
  .flash-card{flex:0 0 88%;scroll-snap-align:start}
  .flash-stack::-webkit-scrollbar{height:3px}

  .location-card{min-height:auto;padding:22px 0}
  .location-card h3{font-size:34px;margin:18px 0 8px}
  .location-card p{margin:0 0 14px}

  .guest-interest{gap:28px}
  .process-list li{padding:20px 0;gap:14px}
  .process-list h3{font-size:23px}
  .process-list p{font-size:13px}

  .about{gap:28px}
  .about-image{max-height:460px}
  .about-image img{height:100%;object-fit:cover;object-position:center}

  .booking{gap:30px}
  .booking-copy h2{max-width:12ch}
  .booking-copy .booking-alt{margin-top:20px;padding-top:15px}
  .booking-form{gap:14px}
  .booking-form input,.booking-form select,.booking-form textarea,.guest-form input{font-size:16px;padding:12px} /* prevents iOS zoom */

  .faq-list details{padding:18px 0}
  .faq-list summary{font-size:21px}

  .footer{padding:38px 18px 82px}
  .mobile-book{left:10px;right:10px;bottom:10px;height:48px}

  /* Anchor links should land below the fixed header. */
  section[id]{scroll-margin-top:76px}
}

@media(max-width:420px){
  .proof-strip strong{font-size:14px}
  .proof-strip span{font-size:7px}
  .gallery{columns:1}
  .flash-card{flex-basis:94%}
  .hero{min-height:68svh}
}
