:root{
  --blush:#F3DEE1;
  --charcoal:#241F21;
  --gold:#C9A66B;
  --cream:#FBF7F2;
  --white:#FFFFFF;
  --grey:#8A8078;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:"Jost", Arial, sans-serif;
  color:var(--charcoal);
  background:var(--cream);
}
h1,h2,h3{font-family:"Playfair Display", Georgia, serif;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.container{max-width:1180px;margin:0 auto;padding:0 32px;}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease, transform .9s ease;}
.reveal.in-view{opacity:1;transform:translateY(0);}

/* NAV */
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:26px 40px;position:fixed;top:0;left:0;right:0;z-index:100;
  transition:background .3s ease, padding .3s ease, box-shadow .3s ease;
}
.nav.solid{background:rgba(251,247,242,0.95);backdrop-filter:blur(6px);padding:16px 40px;box-shadow:0 4px 20px rgba(36,31,33,0.06);}
.nav-logo{font-family:"Playfair Display",serif;font-size:22px;font-style:italic;color:var(--white);letter-spacing:0.02em;transition:color .3s ease;}
.nav.solid .nav-logo{color:var(--charcoal);}
.nav-logo span{color:var(--gold);}
.nav-links{display:flex;align-items:center;gap:32px;font-size:13px;letter-spacing:0.06em;text-transform:uppercase;color:var(--white);transition:color .3s ease;}
.nav.solid .nav-links{color:var(--charcoal);}
.nav-links a{opacity:0.85;position:relative;}
.nav-links a::after{content:'';position:absolute;left:0;bottom:-5px;width:0;height:1px;background:var(--gold);transition:width .25s ease;}
.nav-links a:hover::after{width:100%;}
.nav-links a:hover{opacity:1;}

/* HERO */
.hero{
  position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;
  text-align:center;color:var(--white);overflow:hidden;
  background-size:cover;background-position:center;
}
.hero::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(36,31,33,0.35) 0%, rgba(36,31,33,0.68) 100%);
}
.hero-content{position:relative;z-index:2;max-width:760px;padding:0 32px;}
.hero .eyebrow{font-size:12px;letter-spacing:0.28em;text-transform:uppercase;color:var(--gold);margin-bottom:22px;}
.hero h1{font-size:58px;font-weight:400;font-style:italic;line-height:1.22;margin:0 0 22px;}
.hero p{font-size:16px;color:#F0E9E3;max-width:48ch;margin:0 auto 38px;line-height:1.7;}
.hero-rule{width:64px;height:1px;background:var(--gold);margin:0 auto 32px;}
.hero-ctas{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;}
.btn-gold{
  display:inline-block;background:var(--gold);color:var(--white);border:none;border-radius:2px;
  padding:15px 34px;font-family:"Jost",sans-serif;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;font-weight:600;cursor:pointer;
  transition:background .2s ease, transform .2s ease;
}
.btn-gold:hover{background:#b8935a;transform:translateY(-2px);}
.btn-outline-white{
  display:inline-block;background:transparent;color:var(--white);border:1px solid rgba(255,255,255,0.55);border-radius:2px;
  padding:14px 32px;font-family:"Jost",sans-serif;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;font-weight:600;cursor:pointer;
  transition:border-color .2s ease, background .2s ease;
}
.btn-outline-white:hover{background:rgba(255,255,255,0.12);border-color:var(--white);}

/* floating petals */
.petal{
  position:absolute;border-radius:50%;background:var(--gold);opacity:0.35;pointer-events:none;
  animation:floatUp linear infinite;
}
@keyframes floatUp{
  0%{transform:translateY(0) translateX(0) rotate(0deg);opacity:0;}
  10%{opacity:0.4;}
  90%{opacity:0.25;}
  100%{transform:translateY(-110vh) translateX(30px) rotate(200deg);opacity:0;}
}

/* SECTION HEADINGS */
.section{padding:110px 0;}
.section-head{text-align:center; max-width:640px; margin:0 auto 56px;}
.section-head .eyebrow{font-size:12px;letter-spacing:0.24em;text-transform:uppercase;color:var(--gold);margin-bottom:16px;}
.section-head h2{font-size:36px;font-weight:400;font-style:italic;margin:0 0 16px;}
.section-head p{font-size:15px;color:var(--grey);line-height:1.8;margin:0;}

/* MASONRY GALLERY — asymmetric, not a uniform grid */
.masonry{
  display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:110px;gap:20px;
}
.mason-card{position:relative;border-radius:4px;overflow:hidden;background-size:cover;background-position:center;}
.mason-card::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg, rgba(36,31,33,0) 40%, rgba(36,31,33,0.75) 100%);}
.mason-card .mason-label{
  position:absolute;left:20px;right:20px;bottom:18px;z-index:2;color:var(--white);
}
.mason-card .mason-label h3{font-size:19px;font-weight:400;font-style:italic;margin:0 0 4px;}
.mason-card .mason-label p{font-size:12px;color:#EADFD6;margin:0;letter-spacing:0.03em;}
.mason-card:hover .mason-img{transform:scale(1.06);}
.mason-img{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .6s ease;}
.m1{grid-column:1/4;grid-row:1/7;}
.m2{grid-column:4/7;grid-row:1/4;}
.m3{grid-column:4/7;grid-row:4/7;}

/* WHY US — asymmetric offset row, not equal 3-col */
.why-row{display:grid;grid-template-columns:0.85fr 1fr 0.9fr;gap:0;border-top:1px solid rgba(36,31,33,0.12);}
.why-item{padding:44px 32px;border-right:1px solid rgba(36,31,33,0.12);}
.why-item:last-child{border-right:none;}
.why-item:nth-child(2){padding-top:0;transform:translateY(-18px);}
.why-num{font-family:"Playfair Display",serif;font-style:italic;font-size:40px;color:var(--gold);margin-bottom:14px;}
.why-item h3{font-size:18px;font-weight:400;margin:0 0 12px;}
.why-item p{font-size:14px;color:var(--grey);line-height:1.8;margin:0;}

/* CTA */
.cta{background:var(--charcoal);color:var(--white);padding:110px 0;text-align:center;}
.cta .eyebrow{font-size:12px;letter-spacing:0.24em;text-transform:uppercase;color:var(--gold);margin-bottom:18px;}
.cta h2{font-size:34px;font-weight:400;font-style:italic;margin:0 0 18px;}
.cta p{font-size:15px;color:#C9C2BC;max-width:50ch;margin:0 auto 34px;line-height:1.8;}

footer{
  padding:34px 40px;font-size:12px;letter-spacing:0.04em;color:var(--grey);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;background:var(--charcoal);color:#B8B0A9;
}

@media (max-width:860px){
  .hero h1{font-size:38px;}
  .masonry{grid-template-columns:1fr;grid-auto-rows:220px;}
  .m1,.m2,.m3{grid-column:1;grid-row:auto;}
  .why-row{grid-template-columns:1fr;}
  .why-item{border-right:none;border-bottom:1px solid rgba(36,31,33,0.12);}
  .why-item:nth-child(2){transform:none;}
  .nav-links{display:none;}
}
