@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');
:root{--cream:#f2eadc;--ink:#2a1217;--wine:#5c1727;--red:#9e2f3d;--sage:#707a63;--line:#cbbcab;--paper:#fbf7f0}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}button,input,select,textarea{font:inherit}.shell{width:min(1280px,calc(100% - 54px));margin:auto}.header{position:absolute;top:0;left:0;right:0;z-index:20;color:white}.navrow{height:92px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid rgba(255,255,255,.25)}.navleft,.navright{display:flex;gap:24px;align-items:center;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.navright{justify-content:flex-end}.brand{font:500 31px 'Playfair Display';letter-spacing:.12em}.brand i{font-style:italic;color:#e7b4a7}.navrow a:hover{opacity:.7}.menu{display:none;color:white;border:0;background:none;font-size:24px}.hero{height:100svh;min-height:720px;position:relative;color:white;overflow:hidden}.hero>img{position:absolute;inset:0}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(25,8,12,.44),rgba(25,8,12,.2) 35%,rgba(25,8,12,.72))}.hero-copy{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:62px}.hero-meta{display:flex;justify-content:space-between;gap:20px;align-items:end}.hero h1,.page-hero h1{font:500 clamp(64px,9.5vw,146px)/.78 'Playfair Display';letter-spacing:-.055em;margin:14px 0}.hero h1 em,.page-hero h1 em{font-style:italic;font-weight:500;color:#f0c2b2}.hero p{max-width:50ch;line-height:1.7;color:#f1e7df}.hero-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;justify-content:center;border:1px solid currentColor;border-radius:999px;padding:13px 18px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;transition:.25s}.pill:hover{background:white;color:var(--ink)}.opening{font-size:10px;text-transform:uppercase;letter-spacing:.1em;text-align:right}.ticker{background:var(--wine);color:#f5dcd3;overflow:hidden;white-space:nowrap;border-top:1px solid rgba(255,255,255,.15);border-bottom:1px solid rgba(255,255,255,.15)}.ticker-track{display:inline-block;padding:15px 0;font:500 12px 'DM Sans';letter-spacing:.12em;text-transform:uppercase;animation:marquee 24s linear infinite}.ticker-track span{margin:0 30px}@keyframes marquee{to{transform:translateX(-50%)}}.section{padding:115px 0}.intro{display:grid;grid-template-columns:.7fr 1.3fr;gap:90px}.label{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--red)}.intro h2,.menu-head h2,.story h2,.final h2{font:500 clamp(47px,5.7vw,82px)/.95 'Playfair Display';letter-spacing:-.045em;margin:0}.intro h2 em,.story h2 em{font-style:italic;color:var(--red)}.intro-copy{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:34px}.intro-copy p{font-size:13px;line-height:1.8;color:#6b5656}.editorial-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;height:720px}.editorial-main,.editorial-side>div{position:relative;overflow:hidden}.editorial-side{display:grid;grid-template-rows:1fr 1fr;gap:14px}.editorial-grid figure{margin:0}.editorial-grid figure:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(35,12,17,.62))}.editorial-grid figcaption{position:absolute;z-index:2;left:24px;bottom:22px;color:white}.editorial-grid small{font-size:9px;text-transform:uppercase;letter-spacing:.12em}.editorial-grid strong{font:500 27px 'Playfair Display';display:block;margin-top:5px}.menu-section{background:var(--paper)}.menu-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:48px}.menu-preview{display:grid;grid-template-columns:1fr 1fr;gap:14px}.dish{border-top:1px solid var(--line);padding:22px 0;display:grid;grid-template-columns:1fr auto;gap:16px}.dish h3{font:500 25px 'Playfair Display';margin:0}.dish p{font-size:11px;color:#7c6b65;margin:6px 0}.dish b{font:500 16px 'Playfair Display'}.story{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.story-media{height:620px;overflow:hidden}.story p{color:#6b5656;line-height:1.8;font-size:13px;max-width:52ch}.quote{font:italic 500 28px/1.35 'Playfair Display';color:var(--wine);border-left:2px solid var(--red);padding-left:20px;margin:32px 0}.final{background:var(--wine);color:white;padding:100px 0}.final .shell{display:grid;grid-template-columns:1fr auto;align-items:end;gap:40px}.final p{color:#d8b9b8}.footer{background:#1d0c11;color:white;padding:65px 0 25px}.footgrid{display:grid;grid-template-columns:1.1fr .7fr .9fr;gap:50px}.footer p,.footer a{font-size:11px;color:#a88f90;line-height:1.8}.footer nav{display:flex;flex-direction:column;gap:9px}.legal{border-top:1px solid #3c252b;margin-top:40px;padding-top:18px;color:#725c60;font-size:9px}.demo-badge{position:fixed;left:14px;bottom:14px;z-index:80;background:#f2d1c3;color:var(--wine);padding:9px 12px;font-size:9px;text-transform:uppercase;letter-spacing:.07em}.inner-header{position:sticky;top:0;background:rgba(42,18,23,.96);backdrop-filter:blur(14px)}.page-hero{background:var(--wine);color:white;padding:90px 0 70px}.page-hero .shell{display:grid;grid-template-columns:1fr .9fr;gap:60px;align-items:center}.page-hero-media{height:430px}.menu-list{display:grid;grid-template-columns:1fr 1fr;gap:0 70px}.menu-category{margin-bottom:65px}.menu-category h2{font:500 38px 'Playfair Display';margin:0 0 20px}.venue-grid{display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:390px 300px;gap:14px}.venue-grid figure{margin:0;position:relative;overflow:hidden}.venue-grid figure:first-child{grid-row:1/3}.venue-grid figcaption{position:absolute;left:18px;bottom:16px;background:var(--paper);padding:10px 13px;font-size:10px}.contact-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:70px;padding:85px 0 110px}.contact-card{background:var(--paper);border:1px solid var(--line);padding:34px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field.full{grid-column:1/-1}.field span{font-size:9px;text-transform:uppercase;letter-spacing:.1em}.field input,.field select,.field textarea{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:13px 2px;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--red)}.submit{background:var(--wine);color:white;border:0;border-radius:999px;padding:14px 18px;margin-top:18px;cursor:pointer}.form-success{font-size:11px;color:#577456}[data-reveal]{opacity:0;transform:translateY(22px);transition:.7s}[data-reveal].is-visible{opacity:1;transform:none}
@media(max-width:940px){.navrow{display:flex;justify-content:space-between}.navleft,.navright{position:fixed;left:0;right:0;background:var(--wine);padding:20px 28px;display:flex;flex-direction:column;align-items:flex-start;transform:translateY(-180%);transition:.3s}.navleft{top:92px}.navright{top:210px}.menu-open .navleft,.menu-open .navright{transform:none}.menu{display:block}.hero-meta,.menu-head,.final .shell{align-items:flex-start;flex-direction:column}.intro,.story,.page-hero .shell,.contact-layout{grid-template-columns:1fr}.editorial-grid{grid-template-columns:1fr;height:auto}.editorial-main{height:520px}.editorial-side{grid-template-columns:1fr 1fr;grid-template-rows:320px}.menu-preview,.menu-list{grid-template-columns:1fr}.footgrid{grid-template-columns:1fr}.venue-grid{grid-template-columns:1fr;grid-template-rows:430px 280px 280px}.venue-grid figure:first-child{grid-row:auto}.fields{grid-template-columns:1fr}.field.full{grid-column:auto}}
@media(max-width:620px){.shell{width:min(100% - 28px,1280px)}.navrow{height:74px}.navleft{top:74px}.navright{top:192px}.brand{font-size:25px}.hero{min-height:680px}.hero h1,.page-hero h1{font-size:clamp(58px,18vw,92px)}.hero-meta{display:flex;align-items:flex-start}.opening{text-align:left}.section{padding:75px 0}.intro-copy{grid-template-columns:1fr}.editorial-main{height:430px}.editorial-side{grid-template-columns:1fr;grid-template-rows:280px 280px}.story-media{height:460px}.contact-card{padding:22px}.demo-badge{font-size:8px}.ticker-track{animation-duration:18s}}

/* 2026-08 polish: targeted readability/overlap fixes */
.hero-copy{padding-bottom:92px}
.hero-meta>div:first-child{min-width:0;max-width:min(900px,78vw)}
.hero h1{font-size:clamp(58px,8.4vw,126px);line-height:.82;max-width:8.7ch;overflow-wrap:normal}
.hero h1 em{display:block;white-space:nowrap}
.hero p{position:relative;z-index:3;margin:24px 0 22px;text-shadow:0 2px 18px rgba(20,5,9,.65)}
.opening{flex:0 0 auto;min-width:180px;padding:12px 0 4px 24px;text-shadow:0 2px 16px rgba(20,5,9,.8)}
.hero-actions{position:relative;z-index:4}
.editorial-grid figure{position:relative;overflow:hidden;isolation:isolate}
.editorial-grid figcaption{right:20px;max-width:calc(100% - 44px);text-shadow:0 2px 12px rgba(20,5,9,.75)}
.editorial-grid strong{font-size:clamp(19px,2vw,27px);line-height:1.08;overflow-wrap:anywhere}
.menu-section{position:relative;z-index:2}
@media(max-width:940px){
 .hero{height:auto;min-height:760px}
 .hero-copy{padding-bottom:78px}
 .hero-meta>div:first-child{max-width:100%}
 .hero h1{font-size:clamp(58px,12vw,100px);max-width:9ch}
 .hero h1 em{white-space:normal}
 .opening{min-width:0;padding:0;margin-top:18px}
}
@media(max-width:620px){
 .hero-copy{padding-bottom:58px}
 .hero h1{font-size:clamp(52px,17vw,78px);line-height:.86}
 .hero p{font-size:13px;max-width:38ch}
 .editorial-grid strong{font-size:20px}
}

/* FINAL targeted fixes for NOA photo/text overlap */
.story{
  position:relative;
  z-index:3;
  align-items:center;
}
.story-media{
  position:relative;
  z-index:1;
  overflow:hidden;
}
.story>div:last-child{
  position:relative;
  z-index:4;
  background:var(--cream);
  padding:34px 38px;
  margin-left:-42px;
  box-shadow:0 18px 55px rgba(42,18,23,.10);
}
.story>div:last-child h2,
.story>div:last-child p,
.story>div:last-child .quote,
.story>div:last-child .label{
  position:relative;
  z-index:5;
}
.story>div:last-child p{
  color:#5f4a4c;
}
.story>div:last-child .quote{
  background:rgba(242,234,220,.94);
  padding:18px 20px;
  border-left:2px solid var(--red);
  margin:28px 0;
}
@media(max-width:940px){
  .story>div:last-child{
    margin-left:0;
    margin-top:-56px;
    width:calc(100% - 34px);
    margin-right:auto;
    padding:28px;
  }
}
@media(max-width:620px){
  .story>div:last-child{
    margin-top:-34px;
    width:calc(100% - 18px);
    padding:22px;
  }
}

/* FINAL targeted fixes from visual QA */
.hero-copy{padding-bottom:84px}
.hero-meta{position:relative;z-index:3}
.hero-meta>div:first-child{width:min(820px,72vw);min-width:0}
.hero h1{font-size:clamp(56px,7.6vw,112px);line-height:.84;max-width:none;margin:16px 0 20px}
.hero h1 em{display:block;white-space:normal}
.hero p{max-width:620px;margin:0 0 22px;color:#fff;font-size:14px;line-height:1.55;text-shadow:0 2px 14px #18070c}
.opening{position:absolute;right:0;bottom:4px;width:220px;padding:14px;background:rgba(28,8,14,.58);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.22);border-radius:8px;line-height:1.65}
.editorial-grid{position:relative;isolation:isolate}
.editorial-grid figure{position:relative;overflow:hidden;isolation:isolate}
.editorial-grid figure:after{z-index:1}
.editorial-grid figcaption{z-index:3;left:22px;right:22px;bottom:20px;max-width:none}
.editorial-grid figcaption small,.editorial-grid figcaption strong{position:relative;z-index:4;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.9)}
.editorial-grid strong{font-size:clamp(18px,1.8vw,26px);line-height:1.08;white-space:normal;overflow-wrap:break-word}
.editorial-side>figure{min-width:0;min-height:0}
@media(max-width:940px){
 .hero-meta>div:first-child{width:100%}
 .opening{position:static;width:auto;margin-top:20px}
 .hero h1{font-size:clamp(56px,11vw,92px)}
}
@media(max-width:620px){
 .hero h1{font-size:clamp(50px,16vw,74px)}
 .hero p{font-size:13px}
}


/* ============================================================
   MOBILE OVERFLOW HARDENING — demo pages
   ============================================================ */
html,body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}
*,*::before,*::after{box-sizing:border-box}
img,video,svg,canvas{
  display:block;
  max-width:100%;
  height:auto;
}
main,section,header,footer,nav,div,article,figure,form{
  min-width:0;
}
h1,h2,h3,h4,p,span,a,button,label,strong,small{
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:normal;
}
.container,.wrap,.shell,.inner{
  max-width:100%;
}
@media(max-width:680px){
  body{overflow-x:hidden}
  .navrow,.hero-grid,.hero-meta,.hero-actions,.actions,.page-hero,.page-title,
  .grid,.cards,.projects,.rooms,.spaces,.gallery,.editorial,.editorial-grid{
    min-width:0;
    max-width:100%;
  }
  .hero h1,.page-hero h1,.page-title h1,
  .hero h2,.page-hero h2,.section h2{
    max-width:100%;
    overflow-wrap:anywhere;
  }
  input,textarea,select,button{max-width:100%}
}

@media(max-width:680px){
  .hero h1 em{
    display:block;
    white-space:normal!important;
    overflow-wrap:anywhere;
  }
  .hero-meta>div:first-child{
    width:100%!important;
    max-width:100%!important;
  }
  .opening{
    width:100%;
    max-width:100%;
  }
}
