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

:root{
  --bg:#f4eee6;
  --paper:#fffdfb;
  --ink:#1e1712;
  --muted:#6d6258;
  --gold:#b98a61;
  --gold-soft:#e8cfb8;
  --line:#e7d9ca;
  --max:1200px;
  --shadow-sm:0 10px 24px rgba(22,16,10,.08);
  --shadow-lg:0 28px 64px rgba(18,13,9,.18);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.65;
}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
.container{max-width:var(--max);margin:0 auto;padding:0 24px}

/* Header */
.top{
  position:sticky;top:0;z-index:70;
  background:linear-gradient(180deg,rgba(244,238,230,.82),rgba(244,238,230,.72));
  backdrop-filter:blur(12px);
  border-bottom:1px solid transparent;
  transition:all .35s ease;
}
.top.scrolled{border-bottom-color:var(--line);box-shadow:var(--shadow-sm);background:rgba(248,243,237,.94)}
.nav{display:flex;justify-content:space-between;align-items:center;padding:13px 0}
.brand{
  display:flex;align-items:center;gap:11px;
  font-family:'Cormorant Garamond',serif;
  letter-spacing:.11em;
  font-size:1.15rem;
}
.monogram{
  width:36px;height:36px;border-radius:50%;
  display:grid;place-items:center;
  border:1px solid #2b2019;
  background:radial-gradient(circle at 30% 25%,#fff,#f0dfcf);
  font-weight:700;font-size:.78rem;
}
.menu{display:flex;gap:22px;color:var(--muted);font-size:.79rem;letter-spacing:.15em;text-transform:uppercase}
.menu a{position:relative;padding:4px 0}
.menu a:after{content:'';position:absolute;left:0;bottom:-2px;height:1px;width:0;background:var(--ink);transition:.24s}
.menu a:hover:after,.menu a.active:after{width:100%}
.mobile-toggle{display:none;border:1px solid var(--line);background:#fff;padding:6px 10px;border-radius:8px}

/* Shared */
.section{padding:88px 0;border-bottom:1px solid var(--line)}
.section.alt{background:linear-gradient(180deg,#f8f3ed,#f4eee6)}
h1,h2,h3{margin:0}
.section h2{
  font-family:'Cormorant Garamond',serif;
  font-weight:600;
  letter-spacing:.01em;
  font-size:clamp(2rem,3.2vw,3rem);
  line-height:1.05;
  margin-bottom:.42em;
}
.lead{max-width:760px;color:var(--muted)}
.grid{display:grid;gap:18px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}

.tag{
  display:inline-block;
  border:1px solid var(--line);
  background:rgba(255,255,255,.65);
  color:var(--muted);
  font-size:.7rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  border-radius:999px;
  padding:5px 10px;
}
.card{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:16px;
  padding:24px;
  box-shadow:var(--shadow-sm);
}
.card h3{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:600;margin:.35rem 0 .4rem}
.muted{color:var(--muted)}

.btn{
  position:relative;overflow:hidden;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:12px 22px;border-radius:999px;
  border:1px solid #1f1712;
  font-size:.74rem;letter-spacing:.15em;text-transform:uppercase;
  transition:transform .23s ease, box-shadow .23s ease, background .23s ease;
}
.btn:before{
  content:'';position:absolute;left:-130%;top:0;width:120%;height:100%;
  background:linear-gradient(110deg,transparent 0,rgba(255,255,255,.45) 52%,transparent 100%);
  transition:left .62s ease;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 16px 28px rgba(22,13,7,.16)}
.btn:hover:before{left:130%}
.btn.primary{background:linear-gradient(180deg,#2a2018,#17110d);border-color:#120d09;color:#fff}
.btn.soft{background:linear-gradient(180deg,#fff,#f6efe8);border-color:var(--line)}

/* HERO */
.hero{
  position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;
  border-bottom:1px solid var(--line);
}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media img,
.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-media img{z-index:1;filter:saturate(.9) contrast(1.02)}
.hero-media video{z-index:2;opacity:0;transition:opacity .6s ease}
.hero-media.video-ready video{opacity:.92}
.hero-overlay{
  position:absolute;inset:0;z-index:3;
  background:
    radial-gradient(1200px 400px at 10% 10%,rgba(255,226,197,.25),transparent 60%),
    radial-gradient(900px 320px at 90% 12%,rgba(216,165,121,.25),transparent 58%),
    linear-gradient(180deg,rgba(13,9,7,.2) 8%,rgba(12,9,7,.76) 88%);
}
.hero-content{
  position:relative;z-index:4;color:#f8efe8;padding:0 0 72px;
  display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:end;
}
.eyebrow{font-size:.74rem;letter-spacing:.19em;text-transform:uppercase;color:#e6c8ad;font-weight:600}
.hero-copy h1{
  margin-top:.32em;
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2.5rem,5.7vw,5.3rem);
  line-height:.97;
  max-width:900px;
  font-weight:600;
}
.hero-copy p{max-width:680px;color:#ecdfd2;font-size:1.03rem;margin:1rem 0 0}
.actions{display:flex;gap:11px;flex-wrap:wrap;margin-top:22px}
.actions .btn{border-color:#f5e8db;color:#fff}
.actions .btn.primary{color:#1b130d;background:#fff;border-color:#fff}

.hero-panel{
  background:rgba(255,248,241,.12);
  border:1px solid rgba(255,230,208,.34);
  border-radius:18px;padding:18px;
  backdrop-filter:blur(9px);
}
.hero-panel h4{font-family:'Cormorant Garamond',serif;font-size:1.45rem;margin:0 0 8px}
.hero-panel .line{display:flex;justify-content:space-between;gap:10px;font-size:.88rem;color:#f1e3d6;padding:7px 0;border-bottom:1px solid rgba(255,232,210,.22)}
.hero-panel .line:last-child{border-bottom:0}

/* KPI */
.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px}
.kpi{background:rgba(255,255,255,.65);border:1px solid var(--line);border-radius:14px;padding:15px 16px}
.kpi strong{display:block;font-family:'Cormorant Garamond',serif;font-size:1.8rem;line-height:1}

/* Service cards hover */
.service-card{transition:transform .25s, box-shadow .25s}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}

/* Process */
.timeline{display:grid;gap:14px}
.step{display:grid;grid-template-columns:38px 1fr;gap:11px;align-items:start}
.dot{
  width:32px;height:32px;border-radius:50%;display:grid;place-items:center;
  border:1px solid var(--line);background:linear-gradient(180deg,#fff,#f2e8dd);
  font-size:.85rem;font-weight:600;
}

/* Testimonials */
.test-wrap{position:relative;min-height:210px}
.quote{
  position:absolute;inset:0;opacity:0;transition:opacity .5s ease;
  background:var(--paper);border:1px solid var(--line);border-radius:16px;
  padding:24px;box-shadow:var(--shadow-sm);
}
.quote.active{opacity:1}
.quote p{font-family:'Cormorant Garamond',serif;font-size:1.52rem;line-height:1.32;margin:0 0 10px}

/* Lightbox gallery */
.mosaic{display:grid;grid-template-columns:repeat(12,1fr);gap:13px;margin-top:20px}
.lightbox-item{
  position:relative;border-radius:14px;overflow:hidden;cursor:pointer;
  border:1px solid var(--line);box-shadow:var(--shadow-sm);
}
.lightbox-item:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(10,7,5,.6));pointer-events:none}
.lightbox-item img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease, filter .3s ease}
.lightbox-item:hover img{transform:scale(1.06);filter:saturate(1.05)}
.lightbox-item span{position:absolute;left:11px;bottom:10px;z-index:2;color:#fff;font-size:.8rem;letter-spacing:.04em}
.t1{grid-column:span 5;min-height:290px}
.t2{grid-column:span 7;min-height:290px}
.t3,.t4,.t5{grid-column:span 4;min-height:190px}

.lb{position:fixed;inset:0;background:rgba(6,4,3,.9);z-index:140;display:none;place-items:center;padding:22px}
.lb.open{display:grid}
.lb img{max-width:min(1280px,93vw);max-height:82vh;border-radius:12px;border:1px solid rgba(255,255,255,.2)}
.lb-cap{color:#fff;margin-top:10px;text-align:center}
.lb-close{position:absolute;top:16px;right:18px;color:#fff;border:1px solid rgba(255,255,255,.45);background:transparent;padding:6px 10px;border-radius:8px;cursor:pointer}

/* Footer CTA */
.cta{
  padding:86px 0;
  background:
    radial-gradient(900px 280px at 20% 10%,rgba(233,178,130,.2),transparent 58%),
    linear-gradient(180deg,#231913 0,#17110d 100%);
  color:#f4e8da;
}
.cta p{color:#e8d6c5}

/* Sticky inquiry + Calendly */
.inquiry-stick{
  position:fixed;left:0;right:0;bottom:0;z-index:100;
  background:linear-gradient(90deg,#1f1712,#2a1f18);
  border-top:1px solid rgba(255,255,255,.2);
  color:#f5e6d6;
}
.inquiry-inner{max-width:var(--max);margin:0 auto;padding:10px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.inquiry-inner small{opacity:.9;letter-spacing:.02em}
.inquiry-inner .btn{border-color:#f1dfcf;color:#f1dfcf;padding:9px 13px;background:transparent}

.calendly-drawer{position:fixed;left:0;right:0;bottom:-96vh;height:88vh;background:#fff;z-index:130;transition:bottom .36s ease;border-top:1px solid var(--line)}
.calendly-drawer.open{bottom:0}
.cal-head{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;border-bottom:1px solid var(--line)}
.cal-body{height:calc(100% - 50px)}

/* Footer */
.foot{padding:28px 0 92px;color:var(--muted);font-size:.9rem}

/* Reveals */
.reveal{opacity:0;transform:translateY(15px);transition:opacity .55s ease, transform .55s ease}
.reveal.on{opacity:1;transform:none}

/* responsive */
@media (max-width:1020px){
  .hero-content{grid-template-columns:1fr}
  .hero-panel{max-width:560px}
  .g3{grid-template-columns:1fr 1fr}
  .t1,.t2,.t3,.t4,.t5{grid-column:span 6}
}
@media (max-width:760px){
  .mobile-toggle{display:block}
  .menu{display:none;position:absolute;left:0;right:0;top:60px;background:var(--paper);border-bottom:1px solid var(--line);padding:12px 24px}
  .menu.open{display:grid;gap:10px}
  .g2,.g3,.kpis{grid-template-columns:1fr}
  .t1,.t2,.t3,.t4,.t5{grid-column:span 12}
  .hero{min-height:88svh}
  .hero-copy h1{font-size:clamp(2.2rem,10vw,3.4rem)}
}
