:root{
  --ivory:#f7f2ea;
  --warm:#fffaf3;
  --stone:#d7cdc0;
  --taupe:#8f8172;
  --charcoal:#211f1d;
  --soft:#6d6258;
  --bronze:#9b7a52;
  --line:rgba(33,31,29,.14);
  --serif:'Cormorant Garamond',serif;
  --sans:'Inter',sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--charcoal);font-family:var(--sans);font-weight:300;line-height:1.7}
a{color:inherit;text-decoration:none}
img{display:block;width:100%;height:100%;object-fit:cover}

h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:.95;margin:0}
h1{font-size:clamp(58px,9vw,132px);letter-spacing:-.045em;max-width:980px}
h2{font-size:clamp(42px,6vw,82px);letter-spacing:-.035em}
h3{font-size:clamp(28px,3vw,44px)}

.eyebrow,
.section-kicker,
.category{
  display:block;
  margin-bottom:18px;
  color:var(--bronze);
  font-size:11px;
  letter-spacing:.24em;
  text-transform:uppercase;
  font-weight:500;
}

.section{padding:120px 7vw}
.section-heading{max-width:980px;margin-bottom:clamp(48px,6vw,82px)}
.section-heading h2{margin-bottom:clamp(24px,3vw,42px)}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease}
.reveal.visible{opacity:1;transform:none}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 24px;
  border:1px solid currentColor;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:11px;
}

.btn.primary{background:var(--charcoal);color:var(--warm);border-color:var(--charcoal)}

/* WordPress / GeneratePress cleanup */
.modern-luxe-page #masthead,
.modern-luxe-page .main-navigation,
.modern-luxe-page .site-footer,
.modern-luxe-page .copyright-bar,
.modern-luxe-page .site-info,
.modern-luxe-page .inside-header,
.modern-luxe-page .generate-back-to-top{
  display:none!important;
}

.modern-luxe-page .site,
.modern-luxe-page #page,
.modern-luxe-page .site-content,
.modern-luxe-page .inside-article,
.modern-luxe-page .entry-content{
  max-width:none!important;
  width:100%!important;
  padding:0!important;
  margin:0!important;
}

/* Header */
.site-header{
  position:fixed;
  z-index:1000;
  top:0;
  left:0;
  right:0;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  padding:22px 42px;
  color:var(--warm);
  transition:.4s ease;
}

.site-header.scrolled,
.site-header.inner-header{
  background:rgba(247,242,234,.94);
  backdrop-filter:blur(18px);
  color:var(--charcoal);
  box-shadow:0 1px 0 var(--line);
}

.home .site-header,
.modern-luxe-page.home .site-header{
  background:transparent!important;
  color:var(--warm)!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
}

.home .site-header.scrolled,
.modern-luxe-page.home .site-header.scrolled{
  background:rgba(247,242,234,.94)!important;
  color:var(--charcoal)!important;
  backdrop-filter:blur(18px)!important;
  box-shadow:0 1px 0 var(--line)!important;
}

.brand{
  font-family:var(--serif);
  font-size:28px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.nav{
  display:flex;
  gap:24px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.18em;
}

.header-cta{
  justify-self:end;
  border-bottom:1px solid currentColor;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.menu-toggle{
  display:none;
  width:34px;
  height:24px;
  background:transparent;
  border:0;
  padding:0;
  cursor:pointer;
  color:inherit;
}

.menu-toggle span{
  display:block;
  width:34px;
  height:2px;
  background:currentColor;
  margin:6px 0;
  transition:all .3s ease;
}

.menu-toggle.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.menu-toggle.open span:nth-child(2){opacity:0}
.menu-toggle.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

.mobile-nav-cta{display:none}

/* Homepage hero */
.hero{
  min-height:100vh;
  position:relative;
  display:flex;
  align-items:flex-end;
  padding:140px 7vw 84px;
  overflow:hidden;
  color:var(--warm);
}

.hero-bg{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,.52)),
    url('https://static.wixstatic.com/media/11062b_8f14374b6fe149aab751d12c94c2676ff000.jpg/v1/fill/w_980%2Ch_551%2Cal_c%2Cq_85%2Cusm_0.66_1.00_0.01%2Cenc_avif%2Cquality_auto/11062b_8f14374b6fe149aab751d12c94c2676ff000.jpg') center/cover;
  transform:scale(1.04);
}

.hero-content{position:relative;max-width:850px}

.hero h1{
  font-size:clamp(52px,7.8vw,118px)!important;
  line-height:.95;
  max-width:900px;
  margin-bottom:32px!important;
}

.hero p:not(.eyebrow){
  max-width:560px;
  font-size:18px;
}

.hero .btn.primary{
  background:var(--warm);
  color:var(--charcoal);
  border-color:var(--warm);
}

.button-row{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:28px;
}

/* Homepage intro */
.intro-grid{
  display:grid;
  grid-template-columns:1.05fr .75fr;
  gap:8vw;
  align-items:start;
  padding-bottom:36px;
}

.intro-grid h2{margin-bottom:28px}
.intro-grid p{font-size:18px;color:var(--soft)}

.home .intro-grid + .section,
.intro-grid + .section{
  padding-top:54px;
}

/* Homepage Featured Projects */
.homepage-featured-mosaic{
  display:grid;
  grid-template-columns:1.2fr .9fr .9fr;
  grid-template-rows:340px 340px;
  gap:clamp(18px,2.5vw,34px);
}

.homepage-featured-tile{
  position:relative;
  display:block;
  overflow:hidden;
  text-decoration:none;
  color:#fffaf3;
  min-height:100%;
}

.homepage-featured-tile.tile-1{grid-column:1;grid-row:1 / span 2}
.homepage-featured-tile.tile-2{grid-column:2;grid-row:1}
.homepage-featured-tile.tile-3{grid-column:3;grid-row:1}
.homepage-featured-tile.tile-4{grid-column:2;grid-row:2}
.homepage-featured-tile.tile-5{grid-column:3;grid-row:2}

.homepage-featured-tile img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .75s ease;
}

.homepage-featured-tile::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(33,31,29,.04),rgba(33,31,29,.62));
}

.homepage-featured-tile:hover img{transform:scale(1.04)}

.homepage-featured-overlay{
  position:absolute;
  z-index:2;
  left:clamp(20px,2.6vw,38px);
  right:clamp(20px,2.6vw,38px);
  bottom:clamp(20px,2.6vw,38px);
  overflow:hidden;
}

.homepage-featured-overlay span,
.homepage-featured-overlay p{
  color:rgba(255,250,243,.82);
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:11px;
  margin:0;
}

.homepage-featured-overlay h3{
  color:#fffaf3;
  font-size:clamp(22px,2.4vw,44px);
  line-height:1;
  letter-spacing:-.035em;
  margin:10px 0 12px;
  max-width:100%;
  overflow-wrap:break-word;
}

.homepage-featured-overlay p{white-space:nowrap}

.section-link{
  text-align:center;
  margin-top:48px;
}

.section-link a{
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:12px;
  color:var(--charcoal);
  text-decoration:none;
  border-bottom:1px solid currentColor;
  padding-bottom:8px;
}

/* Homepage film */
.homepage-film{
  background:var(--warm);
  padding-top:110px;
  padding-bottom:120px;
}

.film-grid{
  display:grid;
  grid-template-columns:.88fr 1.12fr;
  gap:clamp(34px,6vw,88px);
  align-items:center;
  max-width:1440px;
  margin:0 auto;
}

.film-copy{max-width:620px}

.film-copy h2{
  font-size:clamp(42px,5.2vw,76px);
  line-height:.95;
  margin:16px 0 28px;
}

.film-copy p:not(.category){
  color:var(--soft);
  font-size:17px;
  line-height:1.9;
}

.film-video video{
  width:100%;
  display:block;
  aspect-ratio:16/9;
  object-fit:cover;
  border-radius:18px;
  box-shadow:0 30px 90px rgba(33,31,29,.14);
  background:var(--charcoal);
}

/* Services / Process */
.services{background:var(--warm)}

.service-list{border-top:1px solid var(--line)}

.service-list>div{
  display:grid;
  grid-template-columns:100px .7fr 1fr;
  gap:32px;
  padding:34px 0;
  border-bottom:1px solid var(--line);
  align-items:start;
}

.service-list span,
.timeline span,
.lux-row span{
  color:var(--bronze);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.22em;
}

.service-list p,
.timeline p,
.contact p,
.footer p{
  color:var(--soft);
}

.process{background:#eee6dc}

.timeline{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:18px;
}

.timeline>div{
  padding:28px;
  border-left:1px solid var(--bronze);
  background:rgba(255,250,243,.45);
}

.timeline h3{
  font-size:28px;
  line-height:1.05;
  margin-top:16px;
}

/* Quote / Journal */
.quote-band{
  padding:120px 11vw;
  background:var(--charcoal);
  color:var(--warm);
  text-align:center;
}

.quote-band blockquote{
  font-family:var(--serif);
  font-size:clamp(36px,5vw,72px);
  line-height:1;
  margin:0 auto 24px;
  max-width:1050px;
}

.journal-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}

.journal-grid article{
  padding:36px;
  min-height:320px;
  background:var(--warm);
  border:1px solid var(--line);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}

.journal-grid p{
  color:var(--bronze);
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:11px;
}

.journal-grid a{
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:11px;
  border-bottom:1px solid var(--bronze);
  width:max-content;
}

/* Forms */
.contact{
  display:grid;
  grid-template-columns:.8fr 1fr;
  gap:7vw;
  background:var(--warm);
}

.contact-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.contact-form input,
.contact-form textarea,
.contact-page input,
.contact-page textarea{
  width:100%;
  border:0;
  border-bottom:1px solid var(--line);
  background:transparent;
  padding:18px 0;
  font:inherit;
  color:var(--charcoal);
}

.contact-form input::placeholder,
.contact-form textarea::placeholder,
.contact-page input::placeholder,
.contact-page textarea::placeholder{
  color:rgba(33,31,29,.78);
  opacity:1;
}

.contact-form textarea{
  grid-column:1/-1;
  min-height:160px;
}

.contact-form button{
  width:max-content;
  margin-top:20px;
}

/* Inner page heroes */
.page-hero{
  min-height:72vh;
  position:relative;
  display:flex;
  align-items:flex-end;
  padding:150px 7vw 76px;
  color:var(--warm);
  overflow:hidden;
  background:var(--charcoal);
}

.page-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.56)),var(--hero-img) center/cover;
  transform:scale(1.035);
}

.page-hero-content{
  position:relative;
  max-width:980px;
  z-index:1;
}

.page-hero h1,
.page-hero-content h1{
  font-size:clamp(54px,8vw,118px);
  margin-bottom:32px!important;
}

.page-hero p:not(.eyebrow),
.page-hero-content p:not(.eyebrow){
  font-size:18px;
  max-width:680px;
  color:rgba(255,250,243,.82);
  margin-top:0!important;
  line-height:1.65!important;
}

.page-intro{
  display:grid;
  grid-template-columns:1.05fr .75fr;
  gap:8vw;
  align-items:start;
}

.page-intro h2{margin-bottom:28px}
.page-intro p{font-size:18px;color:var(--soft);margin-top:0;margin-bottom:18px}

/* Generic inner page elements */
.editorial-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
.editorial-card{background:var(--warm);border:1px solid var(--line);min-height:560px;display:flex;flex-direction:column}
.editorial-card .card-img{height:350px;background:var(--stone) center/cover}
.editorial-card .card-copy{padding:34px}
.editorial-card p{color:var(--soft)}

.lux-list{border-top:1px solid var(--line)}
.lux-list .lux-row{display:grid;grid-template-columns:90px .75fr 1fr;gap:32px;padding:42px 0;border-bottom:1px solid var(--line);align-items:start}
.lux-row h3{font-size:clamp(30px,4vw,54px);margin-bottom:18px}
.lux-row p{color:var(--soft);margin:0}

.image-band{
  min-height:520px;
  background:linear-gradient(180deg,rgba(0,0,0,.16),rgba(0,0,0,.28)),var(--band-img) center/cover;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:var(--warm);
  padding:80px 7vw;
}

.image-band h2{max-width:980px;font-size:clamp(44px,7vw,96px)}

/* Our Story */
.founder-feature{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(320px,.78fr);
  gap:clamp(42px,7vw,110px);
  align-items:center;
}

.founder-copy{max-width:720px}

.founder-copy h2,
.story-film-copy h2{
  font-size:clamp(3rem,5.4vw,6.4rem);
  line-height:.94;
  margin-bottom:28px;
}

.founder-copy p,
.story-film-copy p{
  color:var(--soft);
  line-height:1.9;
  font-size:1.02rem;
}

.founder-portrait{margin:0;position:relative}

.founder-portrait::before{
  content:"";
  position:absolute;
  inset:22px -22px -22px 22px;
  border:1px solid rgba(169,137,97,.38);
  z-index:0;
}

.founder-portrait img{
  position:relative;
  z-index:1;
  width:100%;
  min-height:560px;
  object-fit:cover;
  filter:saturate(.92) contrast(.98);
}

.founder-portrait figcaption{
  position:relative;
  z-index:2;
  margin-top:18px;
  color:var(--bronze);
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:.68rem;
  font-weight:500;
}

.story-film{
  display:grid;
  grid-template-columns:minmax(300px,.55fr) minmax(0,1fr);
  gap:clamp(38px,6vw,90px);
  align-items:center;
  padding-top:24px;
  padding-bottom:96px;
}

.story-film-copy{max-width:520px}

.film-frame{
  position:relative;
  background:#171512;
  padding:clamp(12px,1.5vw,20px);
  box-shadow:0 38px 95px rgba(28,27,25,.18);
}

.film-frame::before{
  content:"";
  position:absolute;
  inset:-18px 22px 22px -18px;
  border:1px solid rgba(154,139,120,.32);
  pointer-events:none;
}

.film-frame video{
  position:relative;
  z-index:1;
  width:100%;
  display:block;
  aspect-ratio:16/9;
  object-fit:cover;
  background:#171512;
}

/* Testimonials */
.compliment{
  padding:46px;
  border-left:1px solid var(--bronze);
  background:rgba(255,250,243,.55);
}

.compliment blockquote{
  font-family:var(--serif);
  font-size:clamp(30px,4vw,52px);
  line-height:1;
  margin:0 0 22px;
}

.compliment p{color:var(--soft)}

/* Blog */
.blog-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:42px}
.blog-feature,.blog-card{background:var(--warm);border:1px solid var(--line)}
.blog-feature .blog-img{height:560px;background:var(--stone) center/cover}
.blog-card .blog-img{height:250px;background:var(--stone) center/cover}
.blog-copy{padding:34px}
.blog-copy p{color:var(--soft)}
.blog-stack{display:grid;gap:24px}

/* Contact page */
.contact-page{
  display:grid;
  grid-template-columns:minmax(320px,.75fr) minmax(420px,1.15fr);
  gap:clamp(70px,8vw,130px);
  align-items:start;
}

.contact-info{
  background:var(--charcoal);
  color:var(--warm);
  padding:clamp(48px,5vw,76px);
}

.contact-info p{color:var(--stone)}

.contact-page h2{margin-bottom:32px!important}

.contact-page .contact-form{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
  margin-top:34px;
}

.contact-page .contact-form textarea{min-height:190px}
.contact-page .contact-form button{grid-column:1/-1;margin-top:8px}

.small-note{
  font-size:13px;
  color:var(--soft);
  margin-top:22px;
}

/* Portfolio gallery page */
.portfolio-feature-story{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:clamp(34px,6vw,90px);
  align-items:center;
}

.portfolio-feature-image{
  min-height:720px;
  background:center/cover no-repeat;
}

.portfolio-feature-copy p:not(.category),
.spread-copy p,
.material-copy p,
.residence-card p{
  color:var(--soft);
  font-size:17px;
  line-height:1.9;
}

.portfolio-feature-copy h2,
.spread-copy h2,
.material-copy h2{
  font-size:clamp(46px,6vw,86px);
  margin-bottom:28px;
}

.portfolio-editorial-spread{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:22px;
  align-items:stretch;
}

.spread-copy{
  grid-column:span 1;
  padding:44px;
  background:var(--warm);
  border:1px solid var(--line);
  display:flex;
  flex-direction:column;
  justify-content:end;
}

.spread-image{min-height:380px;background:center/cover no-repeat}
.spread-image.tall{grid-row:span 2;min-height:780px}
.spread-image.wide{grid-column:span 2}

.portfolio-dark-moment{
  padding:130px 7vw;
  background:var(--charcoal);
  color:var(--warm);
  text-align:center;
}

.portfolio-dark-moment div{max-width:1000px;margin:0 auto}
.portfolio-dark-moment h2{font-size:clamp(46px,7vw,96px)}

.portfolio-residence-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:34px;
}

.residence-card{
  background:var(--warm);
  border:1px solid var(--line);
  padding:0 0 32px;
}

.residence-card div{
  min-height:390px;
  background:center/cover no-repeat;
  margin-bottom:28px;
}

.residence-card.large{grid-row:span 2}
.residence-card.large div{min-height:820px}

.residence-card h3,
.residence-card p{
  padding-left:32px;
  padding-right:32px;
}

.material-study{
  display:grid;
  grid-template-columns:.85fr 1fr;
  gap:clamp(34px,6vw,90px);
  align-items:center;
  background:var(--warm);
}

.material-image{min-height:720px;background:center/cover no-repeat}

.mosaic-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:240px;
  gap:18px;
}

.mosaic-item{
  background:center/cover no-repeat;
  min-height:220px;
}

.mosaic-item.big{grid-column:span 2;grid-row:span 2}
.mosaic-item.wide{grid-column:span 2}
.mosaic-item.tall{grid-row:span 2}

/* Project detail pages */
.project-detail{background:var(--warm)}

.project-hero{
  min-height:70vh;
  position:relative;
  display:flex;
  align-items:end;
  padding:160px clamp(28px,7vw,96px) 96px;
  background-image:var(--hero-img);
  background-size:cover;
  background-position:center;
  overflow:hidden;
}

.project-hero-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(33,31,29,.18),rgba(33,31,29,.62)),
    linear-gradient(90deg,rgba(33,31,29,.42),rgba(33,31,29,.08));
}

.project-hero-content{
  position:relative;
  z-index:2;
  max-width:920px;
  color:#fffaf3;
}

.project-hero-content h1{
  color:#fffaf3;
  font-size:clamp(56px,9vw,132px);
  line-height:.86;
  letter-spacing:-.055em;
  margin:18px 0 28px;
}

.project-back-link{
  color:#fffaf3;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:12px;
  border-bottom:1px solid rgba(255,250,243,.55);
  padding-bottom:8px;
}

.project-intro{
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:clamp(46px,7vw,118px);
  align-items:start;
  padding-top:clamp(92px,10vw,150px);
  padding-bottom:clamp(76px,8vw,130px);
}

.project-intro h2{
  font-size:clamp(46px,6.5vw,96px);
  line-height:.9;
  letter-spacing:-.04em;
  margin:14px 0 28px;
}

.project-description{
  font-size:18px;
  line-height:1.9;
  color:var(--soft);
}

.project-description p{
  margin-top:0;
  margin-bottom:24px;
}

.project-gallery-section{padding-top:40px}

.project-gallery-wrap{
  width:100%;
}

.project-gallery-wrap .wp-block-gallery,
.project-gallery-wrap .wp-block-gallery.has-nested-images{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:clamp(18px,2.2vw,34px)!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}

.project-gallery-wrap figure.wp-block-image{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  overflow:hidden!important;
}

.project-gallery-wrap figure.wp-block-image img{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  height:clamp(320px,34vw,560px)!important;
  object-fit:cover!important;
  transition:transform .55s ease,filter .55s ease;
}

.project-gallery-wrap figure:nth-child(1),
.project-gallery-wrap figure:nth-child(7),
.project-gallery-wrap figure:nth-child(13),
.project-gallery-wrap figure:nth-child(19){
  grid-column:span 2;
}

.project-gallery-wrap figure:nth-child(1) img,
.project-gallery-wrap figure:nth-child(7) img,
.project-gallery-wrap figure:nth-child(13) img,
.project-gallery-wrap figure:nth-child(19) img{
  height:clamp(460px,48vw,760px)!important;
}

.project-gallery-wrap figure:hover img{
  transform:scale(1.03);
  filter:brightness(.96);
}

.project-cta-band{
  margin:clamp(80px,10vw,150px) clamp(28px,7vw,96px) clamp(90px,10vw,150px);
  padding:clamp(58px,7vw,98px);
  background:#211f1d;
  color:#fffaf3;
  text-align:center;
}

.project-cta-band h2{
  color:#fffaf3;
  font-size:clamp(40px,5.8vw,82px);
  line-height:.92;
  letter-spacing:-.04em;
  max-width:980px;
  margin:14px auto 24px;
}

.project-cta-band p:not(.eyebrow){
  color:rgba(255,250,243,.78);
  max-width:720px;
  margin:0 auto 30px;
}

.project-cta-band .btn.primary{
  background:#fffaf3;
  color:#211f1d;
}

/* CTA pages */
.page-cta{
  background:var(--charcoal);
  color:var(--warm);
  text-align:center;
  padding:100px 7vw;
}

.page-cta p{
  color:var(--stone);
  max-width:680px;
  margin:18px auto 30px;
}

.page-cta .btn.primary{
  background:var(--warm);
  color:var(--charcoal);
  border-color:var(--warm);
}

/* Footer */
.footer{
  padding:70px 7vw;
  background:var(--charcoal);
  color:var(--warm);
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:40px;
}

.footer h2{font-size:44px}
.footer p{color:var(--soft)}
.footer a{display:block;color:var(--stone);margin-bottom:8px}

/* Mobile */
@media(max-width:900px){
  .site-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:18px 24px;
  }

  .menu-toggle{
    display:flex!important;
    flex-direction:column;
    justify-content:center;
    width:34px!important;
    min-width:34px!important;
    max-width:34px!important;
    height:24px!important;
    flex:0 0 34px!important;
    gap:5px;
    margin-left:auto;
    z-index:1002;
  }

  .menu-toggle span{
    width:34px!important;
    max-width:34px!important;
    height:2px!important;
    margin:0!important;
  }

  .site-header .nav{
    position:fixed;
    top:70px;
    left:0;
    right:0;
    display:none;
    flex-direction:column;
    gap:0;
    padding:28px 24px;
    background:rgba(247,242,234,.98);
    color:var(--charcoal);
    box-shadow:0 18px 50px rgba(33,31,29,.12);
    z-index:1001;
  }

  .site-header .nav.open{
    display:flex;
  }

  .site-header .nav a{
    color:var(--charcoal);
    padding:14px 0;
    border-bottom:1px solid rgba(33,31,29,.12);
  }

  .header-cta{display:none}

  .mobile-nav-cta{
    display:flex;
    flex-direction:column;
    gap:12px;
    margin-top:24px;
  }

  .mobile-consultation-btn,
  .mobile-call-btn{
    display:block;
    text-align:center;
    padding:14px 18px!important;
    border-radius:999px;
    font-size:.85rem;
    letter-spacing:.12em;
    text-transform:uppercase;
  }

  .mobile-consultation-btn{
    background:#211f1d!important;
    color:#fff!important;
    border:1px solid #211f1d!important;
  }

  .mobile-call-btn{
    border:1px solid rgba(33,31,29,.2)!important;
    color:#211f1d!important;
    background:transparent!important;
  }

  h1{font-size:58px}
  .hero{padding:120px 24px 64px}
  .section{padding:82px 24px}
  .page-hero{min-height:66vh;padding:120px 24px 62px}
  .project-hero{min-height:62vh;padding:132px 24px 72px}

  .intro-grid,
  .page-intro,
  .editorial-grid,
  .service-list>div,
  .timeline,
  .journal-grid,
  .contact,
  .footer,
  .lux-list .lux-row,
  .founder-feature,
  .story-film,
  .film-grid,
  .contact-page,
  .blog-layout,
  .portfolio-feature-story,
  .portfolio-editorial-spread,
  .portfolio-residence-grid,
  .material-study,
  .project-intro{
    grid-template-columns:1fr;
  }

  .homepage-featured-mosaic{
    grid-template-columns:1fr;
    grid-template-rows:auto;
  }

  .homepage-featured-tile,
  .homepage-featured-tile.tile-1,
  .homepage-featured-tile.tile-2,
  .homepage-featured-tile.tile-3,
  .homepage-featured-tile.tile-4,
  .homepage-featured-tile.tile-5{
    grid-column:auto;
    grid-row:auto;
    min-height:430px;
  }

  .homepage-featured-overlay h3{
    font-size:clamp(28px,8vw,46px);
  }

  .contact-form{
    grid-template-columns:1fr;
  }

  .contact-form input,
  .contact-form textarea,
  .contact-page input,
  .contact-page textarea{
    font-size:16px;
  }

  .project-gallery-wrap .wp-block-gallery,
  .project-gallery-wrap .wp-block-gallery.has-nested-images{
    grid-template-columns:1fr!important;
  }

  .project-gallery-wrap figure,
  .project-gallery-wrap figure:nth-child(1),
  .project-gallery-wrap figure:nth-child(7),
  .project-gallery-wrap figure:nth-child(13),
  .project-gallery-wrap figure:nth-child(19){
    grid-column:auto!important;
  }

  .project-gallery-wrap figure.wp-block-image img,
  .project-gallery-wrap figure:nth-child(1) img,
  .project-gallery-wrap figure:nth-child(7) img,
  .project-gallery-wrap figure:nth-child(13) img,
  .project-gallery-wrap figure:nth-child(19) img{
    height:auto!important;
  }

  .project-cta-band{
    margin:60px 24px 80px;
    padding:46px 24px;
  }

  .footer{
    padding:52px 24px;
  }

  .portfolio-feature-image,
  .spread-image,
  .spread-image.tall,
  .material-image,
  .residence-card.large div,
  .residence-card div{
    min-height:360px;
  }

  .spread-image.wide,
  .spread-image.tall,
  .residence-card.large{
    grid-column:auto;
    grid-row:auto;
  }

  .mosaic-grid{
    grid-template-columns:1fr 1fr;
    grid-auto-rows:190px;
  }

  .mosaic-item.big,
  .mosaic-item.wide,
  .mosaic-item.tall{
    grid-column:auto;
    grid-row:auto;
  }
}

@media(max-width:560px){
  .mosaic-grid{
    grid-template-columns:1fr;
  }
}
/* Stable custom project gallery */
.mlx-project-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 2.2vw, 34px);
  width: 100%;
}

.mlx-project-gallery-item {
  margin: 0;
  overflow: hidden;
}

.mlx-project-gallery-item img {
  width: 100%;
  height: clamp(320px, 34vw, 560px);
  object-fit: cover;
  display: block;
  transition: transform .55s ease, filter .55s ease;
}

.mlx-project-gallery-item:nth-child(1),
.mlx-project-gallery-item:nth-child(7),
.mlx-project-gallery-item:nth-child(13),
.mlx-project-gallery-item:nth-child(19) {
  grid-column: span 2;
}

.mlx-project-gallery-item:nth-child(1) img,
.mlx-project-gallery-item:nth-child(7) img,
.mlx-project-gallery-item:nth-child(13) img,
.mlx-project-gallery-item:nth-child(19) img {
  height: clamp(460px, 48vw, 760px);
}

.mlx-project-gallery-item:hover img {
  transform: scale(1.03);
  filter: brightness(.96);
}

@media (max-width: 900px) {
  .mlx-project-gallery {
    grid-template-columns: 1fr;
  }

  .mlx-project-gallery-item,
  .mlx-project-gallery-item:nth-child(1),
  .mlx-project-gallery-item:nth-child(7),
  .mlx-project-gallery-item:nth-child(13),
  .mlx-project-gallery-item:nth-child(19) {
    grid-column: auto;
  }

  .mlx-project-gallery-item img,
  .mlx-project-gallery-item:nth-child(1) img,
  .mlx-project-gallery-item:nth-child(7) img,
  .mlx-project-gallery-item:nth-child(13) img,
  .mlx-project-gallery-item:nth-child(19) img {
    height: auto;
  }
}
/* Final stable project gallery display fix */
.project-gallery-section {
  overflow: visible !important;
}

.project-gallery-wrap {
  width: 100% !important;
  max-width: none !important;
  overflow: visible !important;
}

.project-gallery-wrap .wp-block-gallery,
.project-gallery-wrap .wp-block-gallery.has-nested-images {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(18px, 2.2vw, 34px) !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  align-items: stretch !important;
}

.project-gallery-wrap .wp-block-gallery figure,
.project-gallery-wrap .wp-block-gallery figure.wp-block-image,
.project-gallery-wrap .wp-block-gallery.has-nested-images figure.wp-block-image {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  flex: none !important;
  overflow: hidden !important;
}

.project-gallery-wrap .wp-block-gallery img,
.project-gallery-wrap figure.wp-block-image img {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: clamp(320px, 34vw, 560px) !important;
  object-fit: cover !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.project-gallery-wrap figure:nth-child(1),
.project-gallery-wrap figure:nth-child(7),
.project-gallery-wrap figure:nth-child(13),
.project-gallery-wrap figure:nth-child(19) {
  grid-column: span 2 !important;
}

.project-gallery-wrap figure:nth-child(1) img,
.project-gallery-wrap figure:nth-child(7) img,
.project-gallery-wrap figure:nth-child(13) img,
.project-gallery-wrap figure:nth-child(19) img {
  height: clamp(460px, 48vw, 760px) !important;
}

@media (max-width: 900px) {
  .project-gallery-wrap .wp-block-gallery,
  .project-gallery-wrap .wp-block-gallery.has-nested-images {
    grid-template-columns: 1fr !important;
  }

  .project-gallery-wrap figure,
  .project-gallery-wrap figure:nth-child(1),
  .project-gallery-wrap figure:nth-child(7),
  .project-gallery-wrap figure:nth-child(13),
  .project-gallery-wrap figure:nth-child(19) {
    grid-column: auto !important;
  }

  .project-gallery-wrap img,
  .project-gallery-wrap figure:nth-child(1) img,
  .project-gallery-wrap figure:nth-child(7) img,
  .project-gallery-wrap figure:nth-child(13) img,
  .project-gallery-wrap figure:nth-child(19) img {
    height: auto !important;
  }
}
/* Final stable project gallery display fix */
.project-gallery-section {
  overflow: visible !important;
}

.project-gallery-wrap {
  width: 100% !important;
  max-width: none !important;
  overflow: visible !important;
}

.project-gallery-wrap .wp-block-gallery,
.project-gallery-wrap .wp-block-gallery.has-nested-images {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(18px, 2.2vw, 34px) !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  align-items: stretch !important;
}

.project-gallery-wrap .wp-block-gallery figure,
.project-gallery-wrap .wp-block-gallery figure.wp-block-image,
.project-gallery-wrap .wp-block-gallery.has-nested-images figure.wp-block-image {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  flex: none !important;
  overflow: hidden !important;
}

.project-gallery-wrap .wp-block-gallery img,
.project-gallery-wrap figure.wp-block-image img {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: clamp(320px, 34vw, 560px) !important;
  object-fit: cover !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.project-gallery-wrap figure:nth-child(1),
.project-gallery-wrap figure:nth-child(7),
.project-gallery-wrap figure:nth-child(13),
.project-gallery-wrap figure:nth-child(19) {
  grid-column: span 2 !important;
}

.project-gallery-wrap figure:nth-child(1) img,
.project-gallery-wrap figure:nth-child(7) img,
.project-gallery-wrap figure:nth-child(13) img,
.project-gallery-wrap figure:nth-child(19) img {
  height: clamp(460px, 48vw, 760px) !important;
}

@media (max-width: 900px) {
  .project-gallery-wrap .wp-block-gallery,
  .project-gallery-wrap .wp-block-gallery.has-nested-images {
    grid-template-columns: 1fr !important;
  }

  .project-gallery-wrap figure,
  .project-gallery-wrap figure:nth-child(1),
  .project-gallery-wrap figure:nth-child(7),
  .project-gallery-wrap figure:nth-child(13),
  .project-gallery-wrap figure:nth-child(19) {
    grid-column: auto !important;
  }

  .project-gallery-wrap img,
  .project-gallery-wrap figure:nth-child(1) img,
  .project-gallery-wrap figure:nth-child(7) img,
  .project-gallery-wrap figure:nth-child(13) img,
  .project-gallery-wrap figure:nth-child(19) img {
    height: auto !important;
  }
}
/* Hero eyebrow text only */
.hero .eyebrow,
.page-hero .eyebrow,
.project-hero .eyebrow {
    color: #fffaf3 !important;
}
/* Single journal post */
.journal-hero .page-hero-content {
  max-width: 1080px;
}

.journal-hero h1 {
  font-size: clamp(48px, 7vw, 112px);
}

.journal-article-wrap {
  background: var(--warm);
  padding-top: clamp(80px, 9vw, 140px);
  padding-bottom: clamp(80px, 9vw, 140px);
}

.journal-article {
  max-width: 860px;
  margin: 0 auto;
  color: var(--charcoal);
}

.journal-article p {
  font-size: 19px;
  line-height: 1.95;
  color: var(--soft);
  margin: 0 0 30px;
}

.journal-article h2 {
  font-size: clamp(38px, 5vw, 72px);
  line-height: .95;
  margin: 72px 0 28px;
}

.journal-article h3 {
  font-size: clamp(30px, 3.5vw, 48px);
  line-height: 1;
  margin: 52px 0 22px;
}

.journal-article img {
  width: 100%;
  height: auto;
  margin: 54px 0;
}

.journal-article blockquote {
  margin: 64px 0;
  padding-left: 34px;
  border-left: 1px solid var(--bronze);
  font-family: var(--serif);
  font-size: clamp(32px, 4vw, 58px);
  line-height: 1.05;
  color: var(--charcoal);
}

.journal-post-nav {
  padding-top: 0;
  background: var(--warm);
}

.journal-nav-grid {
  max-width: 960px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 28px;
  align-items: center;
  border-top: 1px solid var(--line);
  padding-top: 34px;
}

.journal-nav-grid div:nth-child(2) {
  text-align: center;
}

.journal-nav-grid div:nth-child(3) {
  text-align: right;
}

.journal-nav-grid a {
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: 11px;
  color: var(--charcoal);
  border-bottom: 1px solid currentColor;
  padding-bottom: 8px;
}

@media (max-width: 900px) {
  .journal-article {
    max-width: none;
  }

  .journal-article p {
    font-size: 17px;
  }

  .journal-nav-grid {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .journal-nav-grid div:nth-child(3) {
    text-align: center;
  }
}
/* Editorial blog listing */
.editorial-blog-section {
  background: var(--ivory);
}

.editorial-featured-post {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: clamp(34px, 6vw, 90px);
  align-items: stretch;
  margin-bottom: clamp(90px, 10vw, 150px);
}

.editorial-featured-image {
  min-height: 620px;
  background-size: cover;
  background-position: center;
}

.editorial-featured-copy {
    background: var(--warm);
    padding: clamp(42px,5vw,74px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 18px;
    border: 1px solid var(--line);
}

.editorial-featured-copy h2 {
  font-size: clamp(42px, 5.8vw, 82px);
  line-height: .92;
  margin-bottom: 28px;
}

.editorial-featured-copy p:not(.category) {
  color: var(--soft);
  font-size: 18px;
  line-height: 1.85;
  margin: 0 0 28px;
}

.editorial-blog-heading {
  max-width: 900px;
  margin-bottom: clamp(44px, 5vw, 72px);
}

.editorial-blog-heading h2 {
  margin-bottom: 0;
}

.editorial-blog-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(28px, 4vw, 56px);
}

.editorial-blog-card {
  background: var(--warm);
  border: 1px solid var(--line);
}

.editorial-blog-image {
  display: block;
  height: clamp(320px, 32vw, 520px);
  background-size: cover;
  background-position: center;
}

.editorial-blog-copy {
  padding: clamp(28px, 3vw, 42px);
}

.editorial-blog-copy h3 {
  font-size: clamp(30px, 3.4vw, 52px);
  line-height: .98;
  margin: 0 0 24px;
}

.editorial-read-link {
  display: inline-block;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: 11px;
  border-bottom: 1px solid currentColor;
  padding-bottom: 8px;
  color: var(--charcoal);
}

@media (max-width: 900px) {
  .editorial-featured-post,
  .editorial-blog-grid {
    grid-template-columns: 1fr;
  }

  .editorial-featured-image,
  .editorial-blog-image {
    min-height: 360px;
    height: 360px;
  }
}
/* Blog page visibility safety fix */
.editorial-blog-section,
.editorial-blog-section.reveal,
.editorial-featured-post,
.editorial-blog-heading,
.editorial-blog-grid,
.editorial-blog-card {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
/* Blog article content should always be visible */
.journal-article-wrap,
.journal-article-wrap.reveal,
.journal-article,
.journal-article.reveal {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}