
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --cream:#f8f4ee;--warm-white:#fdfaf6;--charcoal:#1c1a18;--brown:#6b4f3a;
  --gold:#c9a96e;--gold-light:#e8d5b0;--text-muted:#7a7167;--border:rgba(107,79,58,.15);
}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{font-family:'DM Sans',sans-serif;background:var(--warm-white);color:var(--charcoal);font-size:16px;line-height:1.6;overflow-x:hidden}
img{max-width:100%}
em{font-style:italic}
/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1.2rem 4%;background:rgba(253,250,246,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);transition:box-shadow .3s}
nav.scrolled{box-shadow:0 4px 30px rgba(0,0,0,.07)}
.nav-logo{font-family:'Cormorant Garamond',serif;font-size:1.45rem;font-weight:600;letter-spacing:.02em;color:var(--charcoal);text-decoration:none}
.nav-logo span{color:var(--gold)}
.nav-links{display:flex;gap:2rem;align-items:center;list-style:none}
.nav-links a{text-decoration:none;color:var(--charcoal);font-size:.85rem;font-weight:400;letter-spacing:.05em;text-transform:uppercase;opacity:.75;transition:opacity .2s}
.nav-links a:hover{opacity:1}
.nav-links a.active{opacity:1;color:var(--gold)}
.nav-cta{background:var(--charcoal);color:#fff!important;padding:.6rem 1.4rem;border-radius:2px;opacity:1!important;letter-spacing:.08em;transition:background .2s!important}
.nav-cta:hover{background:var(--brown)!important}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;border:none;background:none;padding:4px}
.hamburger span{display:block;width:24px;height:1.5px;background:var(--charcoal);transition:all .3s}
.mobile-menu{display:none;position:fixed;top:60px;left:0;right:0;background:var(--warm-white);padding:1.5rem 2rem 2rem;border-bottom:1px solid var(--border);z-index:99;flex-direction:column;gap:1.2rem}
.mobile-menu.open{display:flex}
.mobile-menu a{text-decoration:none;color:var(--charcoal);font-size:1rem;letter-spacing:.04em;text-transform:uppercase;padding:.4rem 0;border-bottom:1px solid var(--border)}
/* BUTTONS */
.btn-primary,.btn-outline,.btn-gold,.btn-ghost{display:inline-block;text-decoration:none;font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;border-radius:2px;transition:all .2s;cursor:pointer;text-align:center}
.btn-primary{background:var(--charcoal);color:#fff;padding:.9rem 2rem}
.btn-primary:hover{background:var(--brown)}
.btn-outline{background:transparent;color:var(--charcoal);padding:.9rem 2rem;border:1px solid var(--charcoal)}
.btn-outline:hover{background:var(--charcoal);color:#fff}
.btn-gold{background:var(--gold);color:var(--charcoal);padding:1rem 2.2rem;white-space:nowrap}
.btn-gold:hover{background:var(--gold-light)}
.btn-ghost{background:transparent;color:rgba(255,255,255,.65);padding:1rem 2.2rem;border:1px solid rgba(255,255,255,.2);white-space:nowrap}
.btn-ghost:hover{border-color:rgba(255,255,255,.5);color:#fff}
/* SECTION HEADERS */
.section-header{text-align:center;margin-bottom:4rem}
.section-eyebrow{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:1rem;display:block}
.section-header h2{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,3.5vw,3rem);font-weight:300;line-height:1.2;color:var(--charcoal)}
.section-cta{text-align:center;margin-top:3.5rem}
/* HERO (home) */
#hero{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;padding-top:72px}
.hero-content{display:flex;flex-direction:column;justify-content:center;padding:5rem 5% 5rem 6%}
.hero-eyebrow{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:1.5rem;display:flex;align-items:center;gap:.8rem}
.hero-eyebrow::before{content:'';display:block;width:32px;height:1px;background:var(--gold)}
.hero-content h1{font-family:'Cormorant Garamond',serif;font-size:clamp(2.8rem,4.5vw,4.2rem);font-weight:300;line-height:1.12;margin-bottom:1.4rem}
.hero-content h1 em{color:var(--brown)}
.hero-content p{font-size:1rem;color:var(--text-muted);max-width:400px;line-height:1.75;margin-bottom:2.5rem}
.hero-btns{display:flex;gap:1rem;flex-wrap:wrap}
.hero-img{position:relative;overflow:hidden}
.hero-img img{width:100%;height:100%;object-fit:cover;display:block}
.hero-badge{position:absolute;bottom:2.5rem;left:2.5rem;background:rgba(253,250,246,.95);backdrop-filter:blur(8px);padding:1.2rem 1.6rem;border-radius:2px;border-left:3px solid var(--gold)}
.hero-badge strong{display:block;font-size:1.5rem;font-family:'Cormorant Garamond',serif}
.hero-badge span{font-size:.75rem;color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase}
/* SERVICES (home cards) */
#services{padding:7rem 6%;background:var(--cream)}
.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5px;background:var(--border)}
.service-card{background:var(--warm-white);padding:2.5rem 2rem;transition:background .3s;text-decoration:none;display:block}
.service-card:hover{background:var(--charcoal)}
.service-card:hover *{color:#fff!important}
.service-icon{width:44px;height:44px;border:1px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:1.4rem;font-size:1.1rem}
.service-card h3{font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:400;color:var(--charcoal);margin-bottom:.6rem;line-height:1.3}
.service-card p{font-size:.875rem;color:var(--text-muted);line-height:1.7;margin-bottom:1rem}
.card-link{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);font-weight:500}
/* ABOUT */
#about{display:grid;grid-template-columns:1fr 1fr;min-height:520px}
.about-img{position:relative;overflow:hidden}
.about-img img{width:100%;height:100%;object-fit:cover;display:block}
.about-content{background:var(--charcoal);color:#fff;padding:5rem 6%;display:flex;flex-direction:column;justify-content:center}
.about-content h2{font-family:'Cormorant Garamond',serif;font-size:clamp(1.8rem,3vw,2.6rem);font-weight:300;line-height:1.25;margin-bottom:1.4rem}
.about-content p{font-size:.925rem;opacity:.75;line-height:1.8;margin-bottom:1rem}
.owner-frame{display:flex;align-items:center;gap:1.1rem;margin:1.5rem 0 .5rem}
.owner-frame img{width:96px;height:120px;object-fit:cover;border-radius:3px;border:2px solid var(--gold);flex-shrink:0}
.owner-cap{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.about-stats{display:flex;gap:3rem;margin-top:2.5rem;flex-wrap:wrap}
.stat strong{display:block;font-family:'Cormorant Garamond',serif;font-size:2.4rem;font-weight:300;color:var(--gold)}
.stat span{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;opacity:.6}
/* GALLERY */
#gallery{padding:7rem 6%;background:var(--warm-white)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:1rem}
.gallery-item{position:relative;overflow:hidden;border-radius:2px;margin:0}
.gallery-item img{width:100%;height:280px;object-fit:cover;display:block;transition:transform .5s ease}
.gallery-item:hover img{transform:scale(1.04)}
.gallery-caption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(28,26,24,.85));padding:2rem 1.4rem 1.2rem;transform:translateY(100%);transition:transform .35s ease}
.gallery-item:hover .gallery-caption{transform:translateY(0)}
.gallery-caption h4{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:400;color:#fff;margin-bottom:.3rem}
.gallery-caption p{font-size:.78rem;color:rgba(255,255,255,.7)}
.gallery-page{padding-top:3rem}
.gallery-filters{display:flex;justify-content:center;gap:.8rem;flex-wrap:wrap;padding:2.5rem 6% 0;background:var(--warm-white)}
.filter-btn{background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:.6rem 1.4rem;border-radius:2px;font-family:'DM Sans',sans-serif;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .2s}
.filter-btn:hover{border-color:var(--gold);color:var(--charcoal)}
.filter-btn.active{background:var(--charcoal);color:#fff;border-color:var(--charcoal)}
.gallery-item.hide{display:none}
/* TESTIMONIALS */
#reviews{padding:7rem 6%;background:var(--cream)}
.testimonials-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:1rem}
.testimonial-card{background:var(--warm-white);padding:2rem 1.8rem;border-top:2px solid var(--gold);border-radius:2px}
.stars{color:var(--gold);font-size:.9rem;margin-bottom:1rem;letter-spacing:2px}
.testimonial-card blockquote{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.05rem;line-height:1.6;margin-bottom:1.4rem}
.testimonial-meta strong{display:block;font-size:.85rem;font-weight:500}
.testimonial-meta span{font-size:.75rem;color:var(--text-muted);letter-spacing:.05em}
/* PAGE HERO (services/gallery/estimate/404) */
#page-hero{padding-top:72px;background:var(--charcoal);color:#fff;text-align:center;padding-bottom:5rem;position:relative;overflow:hidden}
#page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 60% 0%,rgba(201,169,110,.12) 0%,transparent 65%);pointer-events:none}
.page-hero-inner{max-width:680px;margin:0 auto;padding:5rem 5% 0;position:relative;z-index:1}
#page-hero h1{font-family:'Cormorant Garamond',serif;font-size:clamp(2.6rem,5vw,4rem);font-weight:300;line-height:1.12;color:#fff;margin-bottom:1.2rem}
#page-hero h1 em{color:var(--gold)}
#page-hero .hero-eyebrow{justify-content:center}
#page-hero .hero-eyebrow::after{content:'';display:block;width:32px;height:1px;background:var(--gold)}
#page-hero p{font-size:1rem;color:rgba(255,255,255,.6);line-height:1.8;max-width:500px;margin:0 auto}
.hero-divider{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:3rem}
.hero-divider-line{flex:1;max-width:120px;height:1px;background:rgba(201,169,110,.3)}
.hero-divider-icon{color:var(--gold)}
/* INTRO STRIP */
#intro-strip{background:var(--cream);padding:4rem 6%;display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--border)}
.intro-stat{padding:1.5rem 2rem;border-right:1px solid var(--border);text-align:center}
.intro-stat:last-child{border-right:none}
.intro-stat strong{display:block;font-family:'Cormorant Garamond',serif;font-size:2.4rem;font-weight:300;color:var(--brown);margin-bottom:.3rem}
.intro-stat span{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}
/* SERVICE SECTIONS */
.service-section{display:grid;grid-template-columns:1fr 1fr;min-height:520px}
.service-section.reverse{direction:rtl}
.service-section.reverse>*{direction:ltr}
.service-img{position:relative;overflow:hidden}
.service-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s ease}
.service-section:hover .service-img img{transform:scale(1.03)}
.service-tag{position:absolute;top:2rem;left:2rem;background:var(--charcoal);color:var(--gold);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:500;padding:.45rem 1rem;border-radius:2px}
.service-section.reverse .service-tag{left:auto;right:2rem}
.service-content{display:flex;flex-direction:column;justify-content:center;padding:5rem 6%;background:var(--warm-white)}
.service-section:nth-child(even) .service-content{background:var(--cream)}
.service-number{font-family:'Cormorant Garamond',serif;font-size:5rem;font-weight:300;color:var(--gold-light);line-height:1;margin-bottom:.5rem;user-select:none}
.service-content h2{font-family:'Cormorant Garamond',serif;font-size:clamp(1.9rem,3vw,2.6rem);font-weight:300;line-height:1.2;margin-bottom:1rem}
.service-content h2 em{color:var(--brown)}
.service-content p{font-size:.925rem;color:var(--text-muted);line-height:1.85;margin-bottom:1rem;max-width:440px}
.service-features{list-style:none;margin:1.5rem 0 2rem;display:flex;flex-direction:column;gap:.6rem}
.service-features li{font-size:.875rem;display:flex;align-items:center;gap:.7rem}
.service-features li::before{content:'';display:block;width:20px;height:1px;background:var(--gold);flex-shrink:0}
.btn-primary{align-self:flex-start}
/* PROCESS */
#process{padding:7rem 6%;background:var(--charcoal)}
#process .section-eyebrow{color:var(--gold)}
#process h2{color:#fff;font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,3.5vw,3rem);font-weight:300}
.process-steps{display:grid;grid-template-columns:repeat(4,1fr);position:relative}
.process-steps::before{content:'';position:absolute;top:34px;left:10%;right:10%;height:1px;background:rgba(201,169,110,.3)}
.process-step{text-align:center;padding:0 1.5rem;position:relative;z-index:1}
.step-circle{width:68px;height:68px;border-radius:50%;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;background:var(--charcoal);font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--gold)}
.process-step h3{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:400;color:#fff;margin-bottom:.6rem}
.process-step p{font-size:.845rem;color:rgba(255,255,255,.5);line-height:1.7}
/* CTA BANNER */
#cta-banner{padding:7rem 6%;background:var(--charcoal);display:grid;grid-template-columns:1fr auto;align-items:center;gap:4rem}
#cta-banner h2{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,4vw,3.2rem);font-weight:300;line-height:1.15;color:#fff}
#cta-banner h2 em{color:var(--gold)}
#cta-banner p{font-size:.9rem;color:rgba(255,255,255,.55);margin-top:.8rem}
.cta-actions{display:flex;flex-direction:column;gap:1rem;align-items:flex-end;flex-shrink:0}
/* ESTIMATE / FORM */
#estimate{padding:7rem 6%;background:var(--warm-white)}
.contact-wrapper{display:grid;grid-template-columns:1fr 1.3fr;gap:6rem;align-items:start}
.contact-info h2{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,3vw,2.8rem);font-weight:300;line-height:1.2;margin-bottom:1rem}
.contact-info p{font-size:.925rem;color:var(--text-muted);line-height:1.8;margin-bottom:2.5rem}
.contact-detail{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.8rem}
.contact-icon{width:42px;height:42px;flex-shrink:0;border:1px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--gold);margin-top:2px}
.contact-detail strong{display:block;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.2rem}
.contact-detail a,.contact-detail span{font-size:.9rem;color:var(--text-muted);text-decoration:none}
.contact-detail a:hover{color:var(--brown)}
.contact-img{margin-top:2.5rem;border-radius:3px;overflow:hidden;max-width:330px;border:1px solid var(--border)}
.contact-img img{width:100%;height:auto;display:block}
.contact-form-wrap h3{font-family:'Cormorant Garamond',serif;font-size:1.7rem;font-weight:400;margin-bottom:.5rem}
.contact-form-wrap>p{font-size:.875rem;color:var(--text-muted);margin-bottom:2rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}
.form-group label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem 1rem;border:1px solid var(--border);border-radius:2px;background:var(--cream);color:var(--charcoal);font-family:'DM Sans',sans-serif;font-size:.9rem;outline:none;transition:border-color .2s,box-shadow .2s;appearance:none}
.form-group select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b4f3a' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem;cursor:pointer}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,169,110,.12)}
.form-group textarea{resize:vertical;min-height:110px}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form-note{font-size:.8rem;color:var(--text-muted);background:var(--cream);border-left:3px solid var(--gold);padding:.7rem 1rem;border-radius:2px;margin:.4rem 0 1rem}
.form-submit{width:100%;padding:1rem;background:var(--charcoal);color:#fff;border:none;border-radius:2px;font-family:'DM Sans',sans-serif;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;cursor:pointer;transition:background .2s}
.form-submit:hover{background:var(--brown)}
.form-submit:disabled{opacity:.6;cursor:not-allowed}
.form-msg{display:none;padding:1rem;border-radius:2px;font-size:.88rem;margin-top:1rem;text-align:center}
.form-msg.success{background:#edf7ee;color:#2d6a35;border:1px solid #a8d5ac;display:block}
.form-msg.error{background:#fdf0f0;color:#b84040;border:1px solid #f0b8b8;display:block}
/* FOOTER */
footer{background:var(--charcoal);color:rgba(255,255,255,.75);padding:4rem 6% 2.5rem;border-top:1px solid rgba(255,255,255,.06)}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:4rem;margin-bottom:3rem}
.footer-brand p{font-size:.875rem;margin-top:1rem;line-height:1.75;max-width:280px}
.footer-phone{display:inline-block;margin-top:1rem;color:var(--gold);text-decoration:none;font-size:1.05rem;letter-spacing:.03em}
footer h4{font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:1.2rem}
footer ul{list-style:none;display:flex;flex-direction:column;gap:.6rem}
footer ul a{color:rgba(255,255,255,.65);text-decoration:none;font-size:.875rem;transition:color .2s}
footer ul a:hover{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:2rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}
.footer-bottom p{font-size:.78rem}
.footer-links{display:flex;gap:1.5rem}
.footer-links a{color:rgba(255,255,255,.5);text-decoration:none;font-size:.78rem;transition:color .2s}
.footer-links a:hover{color:#fff}
/* MOBILE CALL BAR */
.mobile-callbar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:90;background:var(--gold);color:var(--charcoal);text-align:center;padding:.9rem;text-decoration:none;font-weight:500;font-size:.9rem;letter-spacing:.04em;box-shadow:0 -4px 20px rgba(0,0,0,.15)}
/* ANIMATIONS */
.fade-up{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.fade-up.visible{opacity:1;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.fade-up{opacity:1;transform:none;transition:none}*{scroll-behavior:auto}}
/* RESPONSIVE */
@media(max-width:1024px){
 .services-grid{grid-template-columns:repeat(2,1fr)}
 .testimonials-grid{grid-template-columns:repeat(2,1fr)}
 #intro-strip{grid-template-columns:repeat(2,1fr)}
 .intro-stat:nth-child(2){border-right:none}
 .process-steps{grid-template-columns:repeat(2,1fr);gap:3rem}
 .process-steps::before{display:none}
 #cta-banner{grid-template-columns:1fr;gap:2.5rem}
 .cta-actions{flex-direction:row;align-items:center}
 .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
 #hero{grid-template-columns:1fr}
 .hero-img{height:55vw;min-height:280px}
 .hero-content{padding:3.5rem 5%}
 #about{grid-template-columns:1fr}
 .about-img{height:55vw}
 .service-section{grid-template-columns:1fr}
 .service-section.reverse{direction:ltr}
 .service-img{height:55vw;min-height:280px}
 .service-tag{left:1.5rem!important;right:auto!important}
 .contact-wrapper{grid-template-columns:1fr;gap:3rem}
 .form-row{grid-template-columns:1fr}
 .gallery-grid{grid-template-columns:1fr 1fr}
 .footer-grid{grid-template-columns:1fr;gap:2.5rem}
 .nav-links{display:none}
 .hamburger{display:flex}
 #cta-banner{text-align:center}
 .cta-actions{align-items:center}
 .about-stats{gap:2rem}
 .mobile-callbar{display:block}
 footer{padding-bottom:5rem}
}
@media(max-width:520px){
 .services-grid{grid-template-columns:1fr}
 .testimonials-grid{grid-template-columns:1fr}
 .gallery-grid{grid-template-columns:1fr}
 #intro-strip{grid-template-columns:1fr 1fr}
 .intro-stat{border-right:none;border-bottom:1px solid var(--border)}
 .process-steps{grid-template-columns:1fr}
 .cta-actions{flex-direction:column;width:100%}
 .btn-gold,.btn-ghost{width:100%}
}
