/* ── RESET ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; }
* { cursor: none !important; }

/* ── PALETTE — Travertine & Gold ── */
:root {
  /* Light surfaces (dominant) */
  --cream:     #f5f0e8;
  --linen:     #ede4d5;
  --sand:      #ddd0bc;
  --pebble:    #c4b59e;

  /* Dark (hero, gallery, footer, service cards) */
  --ink:       #141008;
  --deep:      #1e1710;
  --bark:      #2a1f13;

  /* Text */
  --text:      #1c1810;
  --body:      #584737;
  --mute:      #8a7060;

  /* Accent */
  --gold:      #9e6e22;
  --gold-hi:   #c8904a;
  --gold-pale: #e4c88a;
  --gold-rule: rgba(158,110,34,.18);

  /* Kept for hero dark-section text */
  --ivory:     #f2ebe0;
  --bronze:    #9e6e22;
  --amber:     #c8904a;
  --parchment: #a09080;
  --mist:      #6a5a4a;
  --rust:      #7a5222;
  --rule:      rgba(158,110,34,.18);
  --rule-soft: rgba(255,255,255,.06);

  --font-serif:'Cormorant Garamond','Playfair Display',Georgia,serif;
  --font-sans: 'DM Sans','Inter',system-ui,sans-serif;
  --max:       1200px;
  --gutter:    clamp(1.25rem,4vw,2.5rem);
}

/* ── BASE ── */
::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:var(--linen)}
::-webkit-scrollbar-thumb{background:var(--gold);border-radius:2px}

body {
  font-family:var(--font-sans);
  background:var(--cream);
  color:var(--body);
  font-size:16px;
  line-height:1.7;
  overflow-x:hidden;
}
h1,h2,h3,h4,h5{font-family:var(--font-serif);font-weight:600;line-height:1.12;color:var(--text)}

/* ── CURSOR ── */
#cursor-dot{position:fixed;pointer-events:none;z-index:9999;width:8px;height:8px;background:var(--gold);border-radius:50%;transform:translate(-50%,-50%);transition:transform .12s,background .2s;will-change:left,top}
#cursor-ring{position:fixed;pointer-events:none;z-index:9998;width:36px;height:36px;border:1px solid rgba(200,144,74,.4);border-radius:50%;transform:translate(-50%,-50%);will-change:left,top;transition:opacity .2s}
body.cursor-active #cursor-dot{transform:translate(-50%,-50%) scale(2.5);background:var(--text)}
body.cursor-active #cursor-ring{opacity:0}

/* ── LAYOUT ── */
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}

/* ── LABEL ── */
.label{display:inline-flex;align-items:center;gap:.75rem;font-family:var(--font-sans);font-size:.7rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:1.25rem}
.label::before{content:'';display:block;width:24px;height:1px;background:var(--gold);flex-shrink:0}

/* ── BUTTONS ── */
.btn-solid{display:inline-block;padding:.9rem 2.2rem;background:var(--gold);color:#fff;font-family:var(--font-sans);font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;transition:background .25s,transform .2s}
.btn-solid:hover{background:var(--gold-hi);transform:translateY(-2px)}
.btn-outline{display:inline-flex;align-items:center;gap:.7rem;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);transition:color .25s}
.btn-outline::before{content:'';width:32px;height:1px;background:var(--pebble);transition:width .3s,background .25s}
.btn-outline:hover{color:var(--gold)}
.btn-outline:hover::before{width:52px;background:var(--gold)}

/* ── REVEAL ── */
.reveal{opacity:0;transform:translateY(32px);transition:opacity .75s ease,transform .75s ease}
.reveal.in{opacity:1;transform:translateY(0)}
.reveal-left{opacity:0;transform:translateX(-32px);transition:opacity .75s ease,transform .75s ease}
.reveal-left.in{opacity:1;transform:translateX(0)}
.reveal-right{opacity:0;transform:translateX(32px);transition:opacity .75s ease,transform .75s ease}
.reveal-right.in{opacity:1;transform:translateX(0)}
.delay-1{transition-delay:.12s}.delay-2{transition-delay:.24s}.delay-3{transition-delay:.36s}.delay-4{transition-delay:.48s}

/* ── LIGHTBOX ── */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.97);z-index:8000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s}
.lightbox.open{opacity:1;pointer-events:all}
.lightbox img{max-width:90vw;max-height:85vh;object-fit:contain}
.lightbox-close{position:absolute;top:1.5rem;right:2rem;background:none;border:none;font-size:1.6rem;color:var(--gold-pale);line-height:1}

/* ── NAV ── */
#site-nav{position:fixed;top:0;left:0;right:0;z-index:500;padding:1.6rem var(--gutter);display:flex;align-items:center;justify-content:space-between;transition:all .4s}
#site-nav.scrolled{background:rgba(245,240,232,.96);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:1rem var(--gutter);border-bottom:1px solid var(--gold-rule);box-shadow:0 2px 24px rgba(30,24,16,.06)}
.nav-logo{font-family:var(--font-serif);font-size:1.5rem;font-weight:700;color:var(--ivory);letter-spacing:.04em}
.nav-logo em{font-style:normal;color:var(--gold-pale);letter-spacing:.04em}
#site-nav.scrolled .nav-logo{color:var(--text)}
#site-nav.scrolled .nav-logo em{color:var(--gold)}
.nav-links{display:flex;gap:2.5rem;list-style:none;align-items:center}
.nav-links a{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(242,235,224,.65);transition:color .25s;position:relative;padding-bottom:2px}
.nav-links a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--gold-pale);transition:width .3s}
.nav-links a:hover{color:var(--ivory)}
.nav-links a:hover::after{width:100%}
#site-nav.scrolled .nav-links a{color:var(--mute)}
#site-nav.scrolled .nav-links a:hover{color:var(--gold)}
#site-nav.scrolled .nav-links a::after{background:var(--gold)}
.nav-cta{padding:.5rem 1.4rem;border:1px solid rgba(242,235,224,.4)!important;color:var(--ivory)!important}
.nav-cta:hover{background:var(--ivory)!important;color:var(--text)!important}
#site-nav.scrolled .nav-cta{border-color:var(--gold)!important;color:var(--gold)!important}
#site-nav.scrolled .nav-cta:hover{background:var(--gold)!important;color:#fff!important}
.nav-cta::after{display:none!important}
@media(max-width:768px){.nav-links{display:none}}

/* ── HERO ── */
.hero{position:relative;height:100vh;min-height:700px;display:flex;align-items:flex-end;padding-bottom:8rem;overflow:hidden}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center 40%;transform:scale(1.05);transition:transform 7s ease}
.hero-bg.loaded{transform:scale(1)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,16,8,.92) 0%,rgba(20,16,8,.45) 45%,rgba(20,16,8,.15) 100%)}
.hero-content{position:relative;z-index:2}
.hero-eyebrow{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-pale);margin-bottom:1.4rem;opacity:0;transform:translateY(16px);animation:fu .8s .2s forwards}
.hero h1{font-size:clamp(2.8rem,6.5vw,5.4rem);font-weight:700;color:#faf6f0;line-height:1.06;max-width:680px;margin-bottom:1.5rem;opacity:0;transform:translateY(24px);animation:fu .9s .4s forwards}
.hero h1 i{font-style:italic;color:var(--gold-pale)}
.hero-sub{font-size:1.05rem;color:rgba(242,235,224,.72);font-weight:300;max-width:440px;margin-bottom:2.5rem;opacity:0;transform:translateY(16px);animation:fu .8s .6s forwards}
.hero-actions{display:flex;gap:1.6rem;align-items:center;opacity:0;transform:translateY(16px);animation:fu .8s .8s forwards}
.hero-actions .btn-outline{color:rgba(242,235,224,.7)}
.hero-actions .btn-outline:hover{color:var(--ivory)}
.hero-actions .btn-outline::before{background:rgba(242,235,224,.35)}
.hero-scroll{position:absolute;right:3rem;bottom:2.5rem;z-index:2;display:flex;flex-direction:column;align-items:center;gap:.5rem;opacity:0;animation:fi 1s 1.3s forwards}
.hero-scroll span{font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(242,235,224,.4);writing-mode:vertical-rl}
.scroll-bar{width:1px;height:44px;background:linear-gradient(to bottom,var(--gold-pale),transparent);animation:pulse 2s infinite}

/* ── STATS ── */
.stats{background:var(--linen);border-top:1px solid var(--gold-rule);border-bottom:1px solid var(--gold-rule);padding:3rem 0}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:1.5rem 2rem;text-align:center;border-right:1px solid var(--sand)}
.stat:last-child{border-right:none}
.stat-num{font-family:var(--font-serif);font-size:3.2rem;font-weight:700;color:var(--gold);line-height:1;margin-bottom:.3rem}
.stat-lbl{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mute)}
@media(max-width:768px){.stats-grid{grid-template-columns:repeat(2,1fr)}.stat{border-bottom:1px solid var(--sand)}.stat:nth-child(2){border-right:none}.stat:nth-child(3){border-bottom:none}.stat:last-child{border-bottom:none}}

/* ── ABOUT ── */
.about{padding:8rem 0;background:var(--cream)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:center}
.about-copy p{font-size:1rem;color:var(--body);line-height:1.85;font-weight:300;margin-bottom:1.2rem}
.about-signature{font-family:var(--font-serif);font-style:italic;font-size:1.5rem;color:var(--gold);margin-top:2rem}
.about-visual{position:relative;height:560px}
.about-img-main{position:absolute;right:0;top:0;width:84%;height:86%;object-fit:cover;box-shadow:0 24px 64px rgba(30,24,16,.12)}
.about-img-accent{position:absolute;left:0;bottom:0;width:50%;height:50%;object-fit:cover;border:4px solid var(--cream);box-shadow:0 8px 32px rgba(30,24,16,.10)}
.about-badge{position:absolute;right:-1.2rem;bottom:30%;width:108px;height:108px;border-radius:50%;background:var(--gold);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 0 8px rgba(158,110,34,.12)}
.about-badge strong{font-family:var(--font-serif);font-size:1.9rem;color:#fff;line-height:1}
.about-badge small{font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.8)}
@media(max-width:1024px){.about-grid{grid-template-columns:1fr}.about-visual{order:-1;height:400px}}

/* ── SERVICES ── */
.services{padding:8rem 0;background:var(--bark)}
.services-header{text-align:center;max-width:560px;margin:0 auto 4rem}
.services-header h2{color:var(--ivory)}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.srv-card{position:relative;overflow:hidden;aspect-ratio:3/4}
.srv-card img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease,filter .8s ease;filter:brightness(.48)}
.srv-card:hover img{transform:scale(1.06);filter:brightness(.32)}
.srv-inner{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:2.2rem 2rem;background:linear-gradient(to top,rgba(14,10,5,.9) 0%,transparent 58%)}
.srv-num{font-family:var(--font-serif);font-size:2.8rem;font-weight:700;color:rgba(200,144,74,.2);line-height:1;margin-bottom:.4rem;transition:color .3s}
.srv-card:hover .srv-num{color:rgba(200,144,74,.5)}
.srv-card h3{font-family:var(--font-serif);font-size:1.35rem;color:#faf6f0;margin-bottom:.6rem}
.srv-card p{font-size:.86rem;color:rgba(242,235,224,.6);font-weight:300;max-height:0;overflow:hidden;transition:max-height .5s ease}
.srv-card:hover p{max-height:80px}
.srv-icon{position:absolute;top:1.8rem;right:1.8rem;width:42px;height:42px;border:1px solid rgba(200,144,74,.35);display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(-6px);transition:all .3s}
.srv-card:hover .srv-icon{opacity:1;transform:translateY(0)}
@media(max-width:768px){.services-grid{grid-template-columns:1fr}.srv-card{aspect-ratio:16/9}}

/* ── SERVICES LIST ── */
.srv-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1px;margin-top:1px}
.srv-pill{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.8rem 1.2rem;background:var(--linen);border-bottom:2px solid transparent;transition:background .3s,border-color .3s;text-align:center}
.srv-pill:hover{background:var(--cream);border-bottom-color:var(--gold)}
.srv-pill-icon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;color:var(--gold);transition:transform .3s}
.srv-pill-icon svg{width:100%;height:100%}
.srv-pill:hover .srv-pill-icon{transform:scale(1.15)}
.srv-pill span{font-size:.78rem;letter-spacing:.06em;color:var(--body);font-weight:400;transition:color .3s;line-height:1.35}
.srv-pill:hover span{color:var(--text)}
@media(max-width:600px){.srv-list{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}}

/* ── GALLERY ── */
.gallery{padding:8rem 0;background:var(--ink)}
.gallery-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:2.5rem;flex-wrap:wrap;gap:1rem}
.gallery-header h2{color:var(--ivory)}
.gallery-header .btn-outline{color:rgba(242,235,224,.6)}
.gallery-header .btn-outline:hover{color:var(--gold-pale)}
.gallery-header .btn-outline::before{background:rgba(200,144,74,.4)}
.gallery-tabs{display:flex;gap:.4rem;margin-bottom:1.8rem;flex-wrap:wrap}
.tab-btn{padding:.42rem 1rem;border:1px solid rgba(255,255,255,.08);background:transparent;color:var(--parchment);font-family:var(--font-sans);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;transition:all .25s}
.tab-btn.active,.tab-btn:hover{border-color:var(--gold);color:var(--gold)}
.gallery-masonry{columns:3;column-gap:8px}
.gal-item{break-inside:avoid;margin-bottom:8px;overflow:hidden;position:relative}
.gal-item img{width:100%;display:block;transition:transform .6s ease,filter .35s;filter:brightness(.82)}
.gal-item:hover img{transform:scale(1.04);filter:brightness(1)}
.gal-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(14,10,5,.72) 0%,transparent 55%);opacity:0;transition:opacity .3s;display:flex;align-items:flex-end;padding:.9rem}
.gal-item:hover .gal-overlay{opacity:1}
.gal-label{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-pale)}
@media(max-width:768px){.gallery-masonry{columns:2}}
@media(max-width:480px){.gallery-masonry{columns:1}}

/* ── PROCESS ── */
.process{padding:8rem 0;background:var(--linen)}
.process-header{text-align:center;max-width:520px;margin:0 auto 5rem}
.process-steps{display:grid;grid-template-columns:repeat(4,1fr);position:relative}
.process-steps::before{content:'';position:absolute;top:26px;left:12.5%;right:12.5%;height:1px;background:linear-gradient(90deg,var(--gold) 0%,rgba(158,110,34,.1) 100%)}
.step{padding:0 1.2rem;text-align:center}
.step-dot{width:52px;height:52px;border-radius:50%;border:2px solid var(--gold);display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;background:var(--linen);position:relative;z-index:1}
.step-dot span{font-family:var(--font-serif);font-size:1.1rem;font-weight:700;color:var(--gold)}
.step h4{font-family:var(--font-serif);font-size:1.05rem;color:var(--text);margin-bottom:.5rem}
.step p{font-size:.83rem;color:var(--mute);line-height:1.6}
@media(max-width:1024px){.process-steps::before{display:none}.process-steps{grid-template-columns:1fr 1fr;gap:2.5rem}}
@media(max-width:480px){.process-steps{grid-template-columns:1fr}}

/* ── BEFORE/AFTER ── */
.ba{padding:8rem 0;background:var(--cream)}
.ba-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px;position:relative}
.ba-panel{position:relative;aspect-ratio:4/3;overflow:hidden;box-shadow:0 8px 40px rgba(30,24,16,.10)}
.ba-panel img{width:100%;height:100%;object-fit:cover}
.ba-tag{position:absolute;top:1.4rem;left:1.4rem;padding:.28rem .8rem;background:rgba(245,240,232,.94);border:1px solid var(--gold-rule);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.ba-divider{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:10;width:54px;height:54px;background:var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(158,110,34,.4)}
.ba-divider svg{stroke:#fff}
@media(max-width:768px){.ba-grid{grid-template-columns:1fr}}

/* ── TESTIMONIALS ── */
.testimonials{padding:8rem 0;background:var(--linen);overflow:hidden}
.testimonials-header{text-align:center;margin-bottom:3.5rem}
.testi-track{display:flex;gap:1.6rem;animation:marquee 32s linear infinite;width:max-content}
.testi-track:hover{animation-play-state:paused}
.testi-card{width:350px;flex-shrink:0;padding:1.8rem;border:1px solid var(--sand);background:var(--cream);box-shadow:0 2px 16px rgba(30,24,16,.04)}
.quote{font-family:var(--font-serif);font-size:3.5rem;color:var(--gold);line-height:.45;margin-bottom:.8rem;opacity:.3}
.testi-text{font-size:.88rem;color:var(--body);line-height:1.7;font-style:italic;margin-bottom:1.4rem}
.testi-author{display:flex;align-items:center;gap:.8rem}
.testi-avatar{width:36px;height:36px;border-radius:50%;background:var(--gold);display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-weight:700;color:#fff;font-size:.95rem}
.testi-name{font-size:.86rem;font-weight:700;color:var(--text)}
.testi-loc{font-size:.72rem;color:var(--mute)}

/* ── CONTACT ── */
.contact{padding:8rem 0;background:var(--cream)}
.contact-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:6rem;align-items:start}
.contact p{font-size:.98rem;color:var(--body);font-weight:300;line-height:1.8;margin-bottom:2.5rem}
.contact-detail{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.4rem}
.contact-icon{width:40px;height:40px;border:1px solid var(--gold-rule);background:var(--linen);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.95rem}
.contact-text dt{font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);margin-bottom:.15rem}
.contact-text dd{font-size:.9rem;color:var(--text)}
.contact-form{display:flex;flex-direction:column;gap:1rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-group{display:flex;flex-direction:column;gap:.32rem}
.form-group label{font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mute)}
.form-group input,.form-group select,.form-group textarea{background:var(--linen);border:1px solid var(--sand);color:var(--text);padding:.8rem 1rem;font-family:var(--font-sans);font-size:.9rem;outline:none;transition:border-color .25s,background .25s;width:100%}
.form-group input::placeholder,.form-group textarea::placeholder{color:var(--pebble)}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--gold);background:var(--cream)}
.form-group textarea{height:130px;resize:vertical}
.form-group select option{background:var(--linen);color:var(--text)}
.form-submit{padding:.95rem 2.6rem;background:var(--gold);border:none;color:#fff;font-family:var(--font-sans);font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;transition:background .25s,transform .2s;align-self:flex-start}
.form-submit:hover{background:var(--gold-hi);transform:translateY(-2px)}
@media(max-width:1024px){.contact-grid{grid-template-columns:1fr}}
@media(max-width:768px){.form-row{grid-template-columns:1fr}}

/* ── FOOTER ── */
footer{background:var(--bark);border-top:1px solid rgba(200,144,74,.12);padding:4.5rem 0 2rem}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;margin-bottom:3rem}
.footer-brand p{font-size:.82rem;color:var(--parchment);line-height:1.7;max-width:260px;margin-top:.8rem}
.footer-col h5{font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem}
.footer-col ul{list-style:none}
.footer-col li{font-size:.82rem;color:var(--parchment);margin-bottom:.5rem;transition:color .25s}
.footer-col li:hover{color:var(--ivory)}
.footer-col a{color:var(--parchment);transition:color .25s}
.footer-col a:hover{color:var(--gold-pale)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.06);padding-top:1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}
.footer-bottom p{font-size:.74rem;color:var(--mist)}
.footer-socials{display:flex;gap:.7rem}
.soc-link{width:32px;height:32px;border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;font-size:.75rem;color:var(--parchment);transition:all .25s}
.soc-link:hover{border-color:var(--gold);color:var(--gold)}
@media(max-width:1024px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.footer-grid{grid-template-columns:1fr}}

/* ── KEYFRAMES ── */
@keyframes fu{to{opacity:1;transform:translateY(0)}}
@keyframes fi{to{opacity:1}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
