
:root{
  --bg:#f2efe9;
  --paper:#f8f5ef;
  --ink:#0b0b0b;
  --muted:#6c675f;
  --line:rgba(11,11,11,.16);
  --max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:"DM Sans",Arial,sans-serif;
  line-height:1.55;
}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
.site-header{
  position:sticky;top:0;z-index:40;
  height:82px;padding:0 max(22px,calc((100vw - var(--max))/2));
  display:flex;align-items:center;justify-content:space-between;
  background:rgba(242,239,233,.92);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.brand{
  font-family:"Oswald",Impact,sans-serif;font-weight:600;
  font-size:34px;letter-spacing:-1.5px;line-height:1;
}
.nav{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:500}
.nav>a:not(.btn):hover{opacity:.55}
.menu-btn{display:none;background:none;border:0;font:inherit;font-weight:600}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:52px;padding:0 24px;border:1px solid var(--ink);
  font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;
  transition:.2s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn-dark{background:var(--ink);color:white}
.btn-light{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.btn-outline{background:transparent}
.btn-small{min-height:42px;padding:0 18px}
.hero{
  max-width:var(--max);margin:auto;padding:42px 22px 96px;
  display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center;
}
.hero-media{height:min(76vh,760px);min-height:580px;overflow:hidden}
.hero-copy{padding-right:5%}
.eyebrow{
  font-size:12px;text-transform:uppercase;letter-spacing:.16em;font-weight:600;
  margin:0 0 20px;
}
h1,h2{margin:0;font-weight:500;letter-spacing:-.045em;line-height:.96}
h1{font-size:clamp(58px,7vw,112px)}
h2{font-size:clamp(42px,5.2vw,78px)}
.intro{max-width:540px;margin:32px 0 34px;font-size:18px;color:var(--muted)}
.hero-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.text-link{font-size:13px;font-weight:600;border-bottom:1px solid var(--ink);padding-bottom:3px}
.statement{
  max-width:var(--max);margin:0 auto;padding:120px 22px;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.statement h2{max-width:1050px}
.split{
  max-width:var(--max);margin:auto;padding:110px 22px;
  display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;
}
.split-image{height:720px}
.split-copy{max-width:500px}
.split-copy h2{font-size:clamp(42px,4.4vw,68px);margin-bottom:30px}
.split-copy p:not(.eyebrow),.service-text p{font-size:17px;color:var(--muted)}
.service{
  padding:110px max(22px,calc((100vw - var(--max))/2));
  background:var(--paper);
}
.service-alt{background:#e8e1d6}
.service-head{display:grid;grid-template-columns:.4fr 1.6fr;gap:30px;align-items:end;margin-bottom:70px}
.service-head .eyebrow{margin:0}
.service-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:70px;align-items:end}
.service-grid.reverse{grid-template-columns:.72fr 1.28fr}
.service-grid.reverse .service-text{order:2}
.service-grid.reverse .service-image{order:1}
.service-text{max-width:500px;padding-bottom:20px}
.service-text .btn{margin-top:22px}
.service-image{height:700px}
.gallery{
  max-width:var(--max);margin:auto;padding:110px 22px;
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;
}
.gallery img{height:520px}
.gallery img:nth-child(2){margin-top:70px}
.booking{
  background:#0b0b0b;color:#fff;text-align:center;
  padding:120px 22px 130px;
}
.booking h2{max-width:900px;margin:0 auto}
.booking>p:not(.eyebrow){color:#b8b8b8;max-width:560px;margin:28px auto 32px;font-size:17px}
footer{
  max-width:var(--max);margin:auto;padding:70px 22px 120px;
  display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:24px;align-items:start;
  font-size:14px;border-top:1px solid var(--line);
}
.footer-brand{font-size:46px}
footer p{margin:0;color:var(--muted)}
footer>a:not(.brand){text-decoration:underline;text-underline-offset:4px}
.copyright{grid-column:2/4;margin-top:40px!important;font-size:12px}
.mobile-book{display:none}
@media(max-width:900px){
  .site-header{height:70px}
  .nav{
    display:none;position:absolute;left:0;right:0;top:70px;
    background:var(--bg);padding:24px;flex-direction:column;align-items:stretch;
    border-bottom:1px solid var(--line)
  }
  .nav.open{display:flex}.menu-btn{display:block}
  .hero{grid-template-columns:1fr;padding-top:20px;gap:42px}
  .hero-media{height:60vh;min-height:440px}
  .hero-copy{padding:0}
  .statement,.split,.service,.gallery{padding-top:80px;padding-bottom:80px}
  .split{grid-template-columns:1fr;gap:45px}.split-image{height:560px}
  .service-head{grid-template-columns:1fr;gap:12px;margin-bottom:45px}
  .service-grid,.service-grid.reverse{grid-template-columns:1fr;gap:40px}
  .service-grid.reverse .service-text{order:1}.service-grid.reverse .service-image{order:2}
  .service-image{height:560px}
  .gallery{grid-template-columns:1fr 1fr}
  .gallery img{height:430px}.gallery img:nth-child(2){margin-top:0}.gallery img:nth-child(3){grid-column:1/3;height:520px}
  footer{grid-template-columns:1fr;gap:18px}.copyright{grid-column:auto;margin-top:26px!important}
  .mobile-book{
    display:flex;position:fixed;z-index:35;left:18px;right:18px;bottom:16px;
    min-height:52px;background:var(--ink);color:white;align-items:center;justify-content:center;
    text-transform:uppercase;letter-spacing:.08em;font-size:13px;font-weight:600;
    box-shadow:0 10px 35px rgba(0,0,0,.2)
  }
}
@media(max-width:560px){
  h1{font-size:58px}.hero{padding-bottom:70px}
  .hero-media{min-height:420px}
  .statement h2,.split-copy h2,.service-head h2{font-size:44px}
  .split-image,.service-image{height:460px}
  .gallery{grid-template-columns:1fr}.gallery img,.gallery img:nth-child(3){grid-column:auto;height:440px}
  .booking{padding:90px 22px 110px}
}
