
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Marcellus&display=swap');

:root{
  --ink:#0d0d0b;
  --paper:#f4eee3;
  --soft:#7a7064;
  --line:rgba(13,13,11,.14);
  --gold:#b89462;
  --white:#fff;
  --container:1320px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--paper);
  color:var(--ink);
  overflow-x:hidden;
}
a{text-decoration:none;color:inherit}
img{display:block;width:100%}
.container{width:min(var(--container),calc(100% - 56px));margin:auto}
h1,h2,h3,.logo-word{font-family:Marcellus,Georgia,serif;font-weight:400;letter-spacing:-.035em}

.header{
  position:fixed;
  left:0;
  right:0;
  top:0;
  z-index:100;
  padding:22px 0;
  color:#fff;
}
.nav{
  width:min(var(--container),calc(100% - 56px));
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:0 18px;
  min-height:66px;
  background:rgba(13,13,11,.36);
  backdrop-filter:blur(18px);
  border:1px solid rgba(255,255,255,.16);
}
.logo{
  display:flex;
  align-items:center;
  gap:14px;
}
.logo-mark{
  width:42px;
  height:42px;
  border:1px solid rgba(255,255,255,.7);
  border-radius:50%;
  display:grid;
  place-items:center;
  font-family:Marcellus,Georgia,serif;
  font-size:22px;
}
.logo-word{
  font-size:30px;
}
.menu{
  display:flex;
  align-items:center;
  gap:28px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.menu a{opacity:.82}
.menu a:hover{opacity:1}
.burger{
  display:none;
  border:1px solid rgba(255,255,255,.7);
  background:transparent;
  color:#fff;
  border-radius:999px;
  padding:12px 18px;
  font-weight:800;
}
.mobile-menu{
  display:none;
  width:min(var(--container),calc(100% - 56px));
  margin:14px auto 0;
  background:rgba(13,13,11,.92);
  color:#fff;
  padding:18px 22px;
}
.mobile-menu a{
  display:block;
  padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,.12);
  font-weight:700;
}

.hero{
  height:100vh;
  min-height:760px;
  position:relative;
  overflow:hidden;
  color:white;
  background:#111;
}
.hero-media{
  position:absolute;
  inset:0;
}
.hero-media img{
  height:100%;
  object-fit:cover;
  filter:saturate(.82) contrast(1.04);
}
.hero-media:after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,.18) 50%,rgba(0,0,0,.32)),
    linear-gradient(90deg,rgba(0,0,0,.52),transparent 65%);
}
.hero-content{
  position:absolute;
  left:0;
  right:0;
  bottom:70px;
  z-index:2;
}
.eyebrow{
  font-size:11px;
  font-weight:800;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:rgba(255,255,255,.72);
  margin-bottom:18px;
}
.hero h1{
  font-size:clamp(72px,11vw,176px);
  line-height:.82;
  max-width:1000px;
}
.hero p{
  margin-top:28px;
  max-width:620px;
  font-size:18px;
  line-height:1.8;
  color:rgba(255,255,255,.74);
}
.actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:36px;
}
.btn{
  min-height:58px;
  padding:0 28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:0;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:800;
  border:1px solid transparent;
}
.btn-light{background:#fff;color:#111}
.btn-line{border-color:rgba(255,255,255,.58);color:#fff}
.btn-dark{background:#0d0d0b;color:#fff}
.btn-border{border-color:var(--line);color:var(--ink)}

.intro{
  padding:140px 0;
}
.intro-grid{
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:70px;
  align-items:start;
}
.section-label{
  font-size:11px;
  font-weight:800;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--gold);
}
.intro h2,.split-copy h2,.section-title{
  font-size:clamp(52px,7vw,112px);
  line-height:.86;
}
.intro p{
  max-width:780px;
  color:var(--soft);
  font-size:19px;
  line-height:1.9;
  margin-top:28px;
}

.full-image{
  height:auto;
  min-height:0;
  position:relative;
  overflow:hidden;
}
.full-image img{
  display:block;
  width:100%;
  height:auto;
  filter:saturate(.88) contrast(1.04);
}

.venues{
  padding:140px 0;
}
.venue-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  margin-top:70px;
}
.venue{
  position:relative;
  height:760px;
  overflow:hidden;
  color:white;
}
.venue img{
  height:100%;
  object-fit:cover;
  filter:saturate(.86) contrast(1.04);
  transition:.8s ease;
}
.venue:hover img{transform:scale(1.045)}
.venue:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.78),transparent 64%);
}
.venue-copy{
  position:absolute;
  z-index:2;
  left:38px;
  right:38px;
  bottom:38px;
}
.venue-copy span{
  font-size:11px;
  font-weight:800;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(255,255,255,.7);
}
.venue-copy h3{
  font-size:86px;
  line-height:.88;
  margin-top:10px;
}
.venue-copy p{
  max-width:520px;
  margin-top:18px;
  color:rgba(255,255,255,.74);
  line-height:1.75;
}

.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:820px;
}
.split-media img{
  height:100%;
  object-fit:cover;
}
.split-copy{
  padding:110px 10vw;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.split-copy p{
  color:var(--soft);
  font-size:18px;
  line-height:1.9;
  margin-top:28px;
}
.split-copy ul{
  margin-top:32px;
  display:grid;
  gap:18px;
  list-style:none;
}
.split-copy li{
  border-top:1px solid var(--line);
  padding-top:18px;
  color:var(--soft);
  line-height:1.7;
}
.split-copy b{color:var(--ink)}

.services{
  padding:140px 0;
  background:#0d0d0b;
  color:white;
}
.services .section-label{color:var(--gold)}
.services-grid{
  margin-top:70px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(255,255,255,.16);
  border-left:1px solid rgba(255,255,255,.16);
}
.service{
  min-height:390px;
  padding:34px;
  border-right:1px solid rgba(255,255,255,.16);
  border-bottom:1px solid rgba(255,255,255,.16);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.service small{
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(255,255,255,.48);
  font-weight:800;
}
.service > div{
  width:100%;
  min-height:150px;
}
.service h3{
  font-size:48px;
  line-height:.96;
}
.service p{
  color:rgba(255,255,255,.62);
  line-height:1.8;
}

.gallery{
  padding:140px 0;
}
.gallery-grid{
  margin-top:70px;
  display:grid;
  grid-template-columns:repeat(12,1fr);
  grid-template-rows:repeat(4,230px);
  gap:22px;
}
.gallery-grid a{
  overflow:hidden;
}
.gallery-grid a:nth-child(1){grid-column:1 / 8;grid-row:1 / 3}
.gallery-grid a:nth-child(2){grid-column:8 / 13;grid-row:1}
.gallery-grid a:nth-child(3){grid-column:8 / 13;grid-row:2}
.gallery-grid a:nth-child(4){grid-column:1 / 5;grid-row:3 / 5}
.gallery-grid a:nth-child(5){grid-column:5 / 9;grid-row:3}
.gallery-grid a:nth-child(6){grid-column:9 / 13;grid-row:3}
.gallery-grid a:nth-child(7){grid-column:5 / 9;grid-row:4}
.gallery-grid a:nth-child(8){grid-column:9 / 13;grid-row:4}
.gallery-grid img{
  height:100%;
  object-fit:cover;
  filter:saturate(.88);
  transition:.7s ease;
}
.gallery-grid a:hover img{transform:scale(1.05)}
.gallery-actions{
  display:flex;
  justify-content:center;
  margin-top:52px;
}

.gallery-page{
  padding:120px 0 150px;
}
.gallery-page .section-title{margin-top:18px}
.gallery-intro{
  max-width:760px;
  margin-top:24px;
  color:var(--soft);
  font-size:18px;
  line-height:1.8;
}
.gallery-page-grid{
  columns:3;
  column-gap:20px;
  margin-top:64px;
}
.gallery-page-grid a{
  display:inline-block;
  width:100%;
  margin:0 0 20px;
  overflow:hidden;
  break-inside:avoid;
  cursor:zoom-in;
  background:#ddd6ca;
}
.gallery-page-grid img{
  display:block;
  width:100%;
  height:auto;
  filter:saturate(.9) contrast(1.02);
  transition:transform .65s ease,filter .65s ease;
}
.gallery-page-grid a:hover img{
  transform:scale(1.025);
  filter:saturate(1) contrast(1.02);
}
.lightbox{
  position:fixed;
  inset:0;
  z-index:1000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:36px 90px 58px;
  background:rgba(8,8,7,.96);
  color:white;
}
.lightbox.open{display:flex}
.lightbox figure{
  margin:0;
  max-width:min(1320px,90vw);
  max-height:88vh;
  text-align:center;
}
.lightbox figure img{
  display:block;
  max-width:100%;
  max-height:80vh;
  width:auto;
  height:auto;
  margin:auto;
  object-fit:contain;
}
.lightbox figcaption{
  margin-top:14px;
  color:rgba(255,255,255,.68);
  font-size:14px;
}
.lightbox button{
  position:absolute;
  border:0;
  color:white;
  background:rgba(255,255,255,.08);
  cursor:pointer;
  transition:background .25s ease;
}
.lightbox button:hover{background:rgba(255,255,255,.18)}
.lightbox-close{
  top:22px;
  right:24px;
  width:52px;
  height:52px;
  font-size:34px;
}
.lightbox-prev,.lightbox-next{
  top:50%;
  width:58px;
  height:76px;
  margin-top:-38px;
  font-size:50px;
}
.lightbox-prev{left:20px}
.lightbox-next{right:20px}
.lightbox-counter{
  position:absolute;
  bottom:22px;
  left:50%;
  transform:translateX(-50%);
  color:rgba(255,255,255,.62);
  font-size:13px;
  letter-spacing:.14em;
}
body.lightbox-open{overflow:hidden}

.blog-listing{padding:130px 0 150px}
.blog-listing .section-title{margin-top:18px;max-width:960px}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:70px}
.blog-card{background:#fff}
.blog-card-image{display:block;height:360px;overflow:hidden}
.blog-card-image img{height:100%;object-fit:cover;transition:transform .7s ease}
.blog-card:hover .blog-card-image img{transform:scale(1.04)}
.blog-card-copy{padding:30px}
.blog-card time{color:var(--gold);font-size:11px;font-weight:800;letter-spacing:.16em}
.blog-card h2{font-size:38px;line-height:1.02;margin:16px 0}
.blog-card h2 a{color:var(--ink)}
.blog-card p{color:var(--soft);line-height:1.75}
.blog-more{display:inline-block;margin-top:22px;color:var(--ink);font-weight:800}
.article{padding-top:170px}
.article-head{padding-top:80px;padding-bottom:70px}
.article-back{display:inline-block;margin-bottom:54px;color:var(--soft)}
.article-head h1{max-width:1150px;font-size:clamp(62px,9vw,136px);line-height:.88;margin-top:20px}
.article-lead{max-width:760px;margin-top:28px;color:var(--soft);font-size:20px;line-height:1.7}
.article-head time{display:block;margin-top:28px;color:var(--gold);font-size:12px;font-weight:800;letter-spacing:.14em}
.article-cover{width:min(1500px,calc(100% - 48px));margin:auto;max-height:800px;overflow:hidden}
.article-cover img{width:100%;height:min(70vw,800px);object-fit:cover}
.article-body{max-width:850px;padding-top:90px;padding-bottom:140px;font-size:19px;line-height:1.9}
.article-body h2,.article-body h3{margin:55px 0 18px;line-height:1.08}
.article-body h2{font-size:48px}.article-body h3{font-size:34px}
.article-body p,.article-body ul,.article-body ol,.article-body blockquote{margin:0 0 24px}
.article-body blockquote{padding:24px 30px;border-left:3px solid var(--gold);background:#fff;font:28px/1.45 Georgia,serif}
.reviews-listing{padding:130px 0 150px;background:var(--paper)}
.reviews-listing .section-title{max-width:900px;margin-top:18px}
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:70px}
.review-card{display:flex;flex-direction:column;min-height:410px;padding:42px;background:#fff;border:1px solid rgba(18,18,16,.1)}
.review-photo{width:72px;height:72px;border-radius:50%;object-fit:cover;margin-bottom:26px}
.review-stars{color:var(--gold);letter-spacing:.18em;font-size:16px}
.review-card blockquote{margin:28px 0 36px;font:26px/1.45 Georgia,serif;flex:1}
.review-author{display:grid;gap:6px;padding-top:22px;border-top:1px solid rgba(18,18,16,.12)}
.review-author strong{font-size:16px}.review-author span{color:var(--soft);font-size:13px}
.reviews-empty{grid-column:1/-1;color:var(--soft)}
.seo-copy{padding:110px 0;background:#f4eee3;border-top:1px solid rgba(18,18,16,.08)}
.seo-copy h2{max-width:1050px;margin:18px 0 52px;font-size:clamp(44px,5.5vw,82px);line-height:.98}
.seo-copy-columns{display:grid;grid-template-columns:repeat(2,1fr);gap:70px;max-width:1200px;margin-left:auto}
.seo-copy p{margin:0;color:var(--soft);font-size:17px;line-height:1.85}
.seo-copy a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px}

.page-hero{
  height:78vh;
  min-height:620px;
  position:relative;
  color:white;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:#111;
  padding:150px 0 70px;
}
.page-hero img{
  position:absolute;
  inset:0;
  height:100%;
  object-fit:cover;
  filter:saturate(.85) contrast(1.03);
}
.page-hero:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.76),rgba(0,0,0,.18) 56%,rgba(0,0,0,.35));
}
.page-hero .container{
  position:relative;
  z-index:2;
}
.page-hero h1{
  font-size:clamp(64px,10vw,150px);
  line-height:.82;
  max-width:1000px;
}
.page-hero p{
  margin-top:26px;
  max-width:720px;
  color:rgba(255,255,255,.76);
  font-size:18px;
  line-height:1.85;
}

.content{
  padding:130px 0;
}
.content-grid{
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:80px;
}
.content h2{
  font-size:clamp(48px,6vw,86px);
  line-height:.9;
}
.content p,.content li{
  color:var(--soft);
  font-size:18px;
  line-height:1.9;
}
.content p+p{margin-top:18px}
.content h3{
  font-size:42px;
  margin:46px 0 18px;
}

.food-gallery{
  padding:20px 0 140px;
}
.food-gallery .section-title{
  max-width:900px;
  margin-top:18px;
}
.food-gallery-grid{
  margin-top:70px;
  columns:3;
  column-gap:20px;
}
.food-gallery-item{
  display:inline-block;
  width:100%;
  margin:0 0 20px;
  overflow:hidden;
  background:#ddd6ca;
  break-inside:avoid;
}
.food-gallery-item img{
  display:block;
  width:100%;
  height:auto;
  filter:saturate(.9) contrast(1.02);
  transition:transform .7s ease;
}
.food-gallery-item:hover img{transform:scale(1.04)}
.content ul{
  display:grid;
  gap:14px;
  margin-top:18px;
  padding-left:22px;
}

.form-section{
  padding:130px 0;
}
.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
}
.form-card{
  background:#fff;
  padding:52px;
}
.form-card h2{
  font-size:64px;
  line-height:.9;
  margin-bottom:28px;
}
.form{
  display:grid;
  gap:14px;
}
.form input,.form select,.form textarea{
  width:100%;
  min-height:60px;
  border:0;
  border-bottom:1px solid var(--line);
  background:transparent;
  font:inherit;
  outline:none;
}
.form textarea{
  min-height:140px;
  resize:vertical;
  padding-top:18px;
}

.cta{
  height:84vh;
  min-height:620px;
  position:relative;
  color:white;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
}
.cta img{
  position:absolute;
  inset:0;
  height:100%;
  object-fit:cover;
}
.cta:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.82),rgba(0,0,0,.12));
}
.cta .container{
  position:relative;
  z-index:2;
  padding-bottom:70px;
}
.cta h2{
  font-size:clamp(60px,9vw,142px);
  line-height:.82;
  max-width:1050px;
}
.cta p{
  color:rgba(255,255,255,.72);
  max-width:680px;
  font-size:18px;
  line-height:1.85;
  margin-top:28px;
}

.footer{
  background:#0d0d0b;
  color:white;
  padding:80px 0 34px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr 1fr;
  gap:40px;
}
.footer-logo{
  font-family:Marcellus,Georgia,serif;
  font-size:50px;
}
.footer p,.footer a{
  color:rgba(255,255,255,.58);
  line-height:1.8;
}
.footer a{
  display:block;
  margin-bottom:10px;
}
.footer h4{
  margin-bottom:18px;
}
.footer-bottom{
  margin-top:48px;
  padding-top:26px;
  border-top:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.38);
}
.mobile-call{display:none}

@media(max-width:1100px){
  .menu{display:none}
  .burger{display:inline-flex}
  .mobile-menu.open{display:block}
  .intro-grid,.split,.content-grid,.form-grid{grid-template-columns:1fr}
  .venue-row,.services-grid,.footer-grid{grid-template-columns:1fr 1fr}
  .split{min-height:auto}
  .split-media{height:620px}
}
@media(max-width:720px){
  .container{width:min(100% - 32px,var(--container))}
  .header{padding:12px 0}
  .nav{width:min(100% - 24px,var(--container));height:62px}
  .logo-word{font-size:25px}
  .logo-mark{width:38px;height:38px}
  .hero{min-height:94vh}
  .hero h1{font-size:54px}
  .hero p,.page-hero p,.cta p{font-size:16px}
  .actions{flex-direction:column}
  .btn{width:100%}
  .intro,.venues,.services,.gallery,.content,.form-section{padding:76px 0}
  .intro h2,.split-copy h2,.section-title{font-size:48px}
  .venue-row,.services-grid,.footer-grid,.gallery-grid{grid-template-columns:1fr}
  .venue{height:560px}
  .venue-copy{left:24px;right:24px;bottom:24px}
  .venue-copy h3{font-size:54px}
  .split-media{height:420px}
  .split-copy{padding:70px 24px}
  .service{min-height:280px}
  .service > div{min-height:0}
  .gallery-grid a{height:360px;margin-top:0}
  .gallery-grid{
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:none;
  }
  .gallery-grid a:nth-child(n){grid-column:auto;grid-row:auto}
  .gallery-actions{margin-top:32px}
  .gallery-page{padding:76px 0}
  .gallery-page-grid{columns:2;column-gap:12px;margin-top:42px}
  .gallery-page-grid a{margin-bottom:12px}
  .lightbox{padding:70px 16px 68px}
  .lightbox-prev,.lightbox-next{width:46px;height:60px;font-size:40px;background:rgba(0,0,0,.34)}
  .lightbox-prev{left:8px}
  .lightbox-next{right:8px}
  .lightbox-close{right:12px;top:12px}
  .blog-listing,.reviews-listing{padding:76px 0}.blog-grid,.reviews-grid{grid-template-columns:1fr;margin-top:42px}.blog-card-image{height:320px}.review-card{min-height:auto;padding:30px}.review-card blockquote{font-size:23px}.seo-copy{padding:72px 0}.seo-copy h2{margin-bottom:34px}.seo-copy-columns{grid-template-columns:1fr;gap:22px}.seo-copy p{font-size:16px}
  .article{padding-top:100px}.article-head{padding-top:50px;padding-bottom:50px}.article-head h1{font-size:52px}.article-cover{width:100%}.article-body{padding-top:55px;padding-bottom:80px;font-size:17px}.article-body h2{font-size:38px}
  .page-hero{height:70vh;min-height:520px}
  .page-hero h1{font-size:54px}
  .content h2{font-size:46px}
  .food-gallery{padding:0 0 76px}
  .food-gallery-grid{
    margin-top:42px;
    columns:2;
    column-gap:12px;
  }
  .food-gallery-item{margin-bottom:12px}
  .form-card{padding:28px}
  .form-card h2{font-size:44px}
  .cta{height:76vh;min-height:560px}
  .cta h2{font-size:54px}
  .mobile-call{
    display:flex;
    position:fixed;
    left:14px;
    right:14px;
    bottom:14px;
    z-index:120;
    box-shadow:0 18px 60px rgba(0,0,0,.28)
  }
  body{padding-bottom:78px}
}
