/* ═══════════════════════════════════════════════

   RESET

═══════════════════════════════════════════════ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip;max-width:100%;}

body{

  background:#fff;

  color:var(--ink);

  overflow-x:hidden;

  -webkit-overflow-scrolling:touch;

  font-family:'DM Sans',sans-serif;

  font-weight:300;

  line-height:1.7;

  overflow-x:hidden;

  -webkit-font-smoothing:antialiased;

}

img{display:block;max-width:100%;height:auto;}

a{text-decoration:none;}

button{cursor:pointer;border:none;background:none;}



/* ═══════════════════════════════════════════════

   TOKENS

═══════════════════════════════════════════════ */

:root{

  --ink:#1a1916;

  --ink2:#5c5a55;

  --ink3:#9a9690;

  --cream:#faf8f4;

  --cream2:#f3f0e8;

  --white:#ffffff;

  --gold:#b8903a;

  --gold2:#d4aa52;

  --gold-pale:#fdf4e0;

  --border:#e5e2d8;

  --dark:#1a1916;

  --r:16px;

  --r2:24px;

  --r3:100px;

  --ease:cubic-bezier(0.25,0.46,0.45,0.94);

  --spring:cubic-bezier(0.16,1,0.3,1);

}



/* ═══════════════════════════════════════════════

   SKIP LINK (a11y)

═══════════════════════════════════════════════ */

.skip-link{

  position:absolute;left:-9999px;top:0;

  background:var(--gold);color:#fff;

  padding:10px 18px;border-radius:var(--r3);

  z-index:9999;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;letter-spacing:0.04em;

}

.skip-link:focus{left:16px;top:16px;}



/* ═══════════════════════════════════════════════

   TYPOGRAPHY PAIRS

═══════════════════════════════════════════════ */

.serif{font-family:'Cormorant Garamond',serif;}

h1,h2,h3,h4{font-family:'Cormorant Garamond',serif;font-weight:400;line-height:1.05;}

.display{font-size:clamp(54px,7vw,100px);font-weight:300;line-height:0.93;letter-spacing:-0.02em;}

.heading{font-size:clamp(38px,4.5vw,64px);line-height:1.0;letter-spacing:-0.02em;}

.subheading{font-size:clamp(26px,3vw,40px);line-height:1.1;letter-spacing:-0.01em;}

em{font-style:italic;color:var(--gold);}

.tag{

  display:inline-flex;align-items:center;gap:7px;

  padding:6px 16px;

  background:var(--gold-pale);

  border:1px solid rgba(184,144,58,0.2);

  border-radius:var(--r3);

  font-family:'DM Sans',sans-serif;

  font-size:11px;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;

  color:var(--gold);

}

.tag::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--gold);flex-shrink:0;}

.lede{font-size:clamp(16px,1.5vw,19px);color:var(--ink2);line-height:1.75;font-weight:300;}

p{color:var(--ink2);line-height:1.8;}



/* ═══════════════════════════════════════════════

   LAYOUT

═══════════════════════════════════════════════ */

.wrap{max-width:1280px;margin:0 auto;padding:0 56px;width:100%;}

section{overflow:hidden;width:100%;max-width:100%;position:relative;}



/* ═══════════════════════════════════════════════

   BUTTONS

═══════════════════════════════════════════════ */

.btn{

  display:inline-flex;align-items:center;gap:10px;

  padding:15px 32px;border-radius:var(--r3);

  font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;letter-spacing:0.04em;

  transition:all 0.3s var(--ease);

}

.btn svg{width:15px;height:15px;transition:transform 0.3s var(--spring);flex-shrink:0;}

.btn:hover svg{transform:translateX(4px);}

.btn-dark{background:var(--ink);color:#fff;}

.btn-dark:hover{background:var(--dark);box-shadow:0 8px 32px rgba(26,25,22,0.18);transform:translateY(-1px);}

.btn-gold{background:var(--gold);color:#fff;box-shadow:0 4px 20px rgba(184,144,58,0.3);}

.btn-gold:hover{background:var(--gold2);transform:translateY(-1px);box-shadow:0 8px 28px rgba(184,144,58,0.4);}

.btn-outline{background:transparent;color:var(--ink);border:1.5px solid var(--border);}

.btn-outline:hover{border-color:var(--ink);background:var(--ink);color:#fff;transform:translateY(-1px);}

.btn-ghost{background:rgba(255,255,255,0.12);color:#fff;border:1.5px solid rgba(255,255,255,0.3);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}

.btn-ghost:hover{background:rgba(255,255,255,0.85);color:var(--ink);}



/* ═══════════════════════════════════════════════

   HEADER

═══════════════════════════════════════════════ */

#site-header{

  position:fixed;top:0;left:0;right:0;z-index:9000;

  transition:background 0.5s var(--ease),box-shadow 0.5s,padding 0.4s var(--ease);

}

#site-header.on-hero{padding:28px 0;background:transparent;}

#site-header.scrolled{padding:14px 0;background:rgba(255,255,255,0.94);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);box-shadow:0 1px 0 var(--border);}

.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:0 56px;}

.site-logo{display:flex;flex-direction:column;gap:2px;}

.logo-name{font-family:'Cormorant Garamond',serif;font-size:21px;font-weight:500;letter-spacing:0.04em;line-height:1;transition:color 0.3s;}

.logo-name b{font-weight:600;}

.logo-sub{font-family:'DM Sans',sans-serif;font-size:8px;font-weight:500;letter-spacing:0.34em;text-transform:uppercase;transition:color 0.3s;}

#site-header.on-hero .logo-name{color:#fff;}

#site-header.on-hero .logo-sub{color:rgba(255,255,255,0.45);}

#site-header.scrolled .logo-name{color:var(--ink);}

#site-header.scrolled .logo-sub{color:var(--ink3);}

.nav-links{display:flex;align-items:center;gap:36px;}

.nav-links a{font-family:'DM Sans',sans-serif;font-size:12.5px;font-weight:400;letter-spacing:0.03em;transition:color 0.25s;}

#site-header.on-hero .nav-links a{color:rgba(255,255,255,0.75);}

#site-header.on-hero .nav-links a:hover{color:#fff;}

#site-header.scrolled .nav-links a{color:var(--ink2);}

#site-header.scrolled .nav-links a:hover{color:var(--gold);}

.nav-cta{padding:10px 24px;border-radius:var(--r3);font-family:'DM Sans',sans-serif;font-size:12.5px;font-weight:500;letter-spacing:0.03em;transition:all 0.3s var(--ease);}

#site-header.on-hero .nav-cta{background:rgba(255,255,255,0.15);color:#fff;border:1.5px solid rgba(255,255,255,0.3);}

#site-header.on-hero .nav-cta:hover{background:#fff;color:var(--ink);}

#site-header.scrolled .nav-cta{background:var(--gold);color:#fff;border:1.5px solid transparent;box-shadow:0 2px 12px rgba(184,144,58,0.3);}

#site-header.scrolled .nav-cta:hover{background:var(--ink);}

.burger{display:none;flex-direction:column;gap:5px;padding:8px;}

.burger span{display:block;width:22px;height:1.5px;border-radius:2px;transition:all 0.3s var(--ease);}

#site-header.on-hero .burger span{background:#fff;}

#site-header.scrolled .burger span{background:var(--ink);}



/* ═══════════════════════════════════════════════

   MOBILE NAV

═══════════════════════════════════════════════ */

#mob-nav{

  display:none;position:fixed;inset:0;z-index:8999;

  background:#fff;

  flex-direction:column;justify-content:center;align-items:center;

  padding:40px 32px;gap:0;

}

#mob-nav.open{display:flex;}

#mob-nav a{

  display:block;width:100%;text-align:center;

  font-family:'Cormorant Garamond',serif;

  font-size:30px;font-weight:400;letter-spacing:-0.01em;

  color:var(--ink);

  padding:16px 0;border-bottom:1px solid var(--border);

  transition:color 0.2s;

}

#mob-nav a:first-child{border-top:1px solid var(--border);}

#mob-nav a:hover{color:var(--gold);}

.mob-cta-link{

  margin-top:28px;

  background:var(--gold)!important;color:#fff!important;

  border:none!important;border-radius:var(--r3)!important;

  padding:16px 44px!important;

  font-family:'DM Sans',sans-serif!important;font-size:14px!important;font-weight:500!important;

  letter-spacing:0.04em!important;

}



/* ═══════════════════════════════════════════════

   FLOATING CALL

═══════════════════════════════════════════════ */

.call-btn{

  position:fixed;bottom:max(28px,env(safe-area-inset-bottom));right:28px;

  width:54px;height:54px;border-radius:50%;

  background:var(--gold);

  display:flex;align-items:center;justify-content:center;

  z-index:800;

  box-shadow:0 4px 20px rgba(184,144,58,0.4);

  transition:all 0.3s var(--spring);

}

.call-btn:hover{background:var(--ink);transform:scale(1.08);box-shadow:0 8px 32px rgba(26,25,22,0.25);}

.call-btn svg{width:20px;height:20px;stroke:#fff;fill:none;stroke-width:2;}



/* ═══════════════════════════════════════════════

   HERO — gallery slider

═══════════════════════════════════════════════ */

#hero{

  height:100svh;min-height:680px;position:relative;

  display:flex;align-items:flex-end;

  overflow:hidden;

  width:100%;max-width:100%;left:0;

}



/* Slides */

.slide-bg{position:absolute;inset:0;z-index:0;}

.slide{

  position:absolute;inset:0;

  opacity:0;

  transform:scale(1.035);

  transition:

    opacity 2.2s cubic-bezier(0.25,1,0.5,1),

    transform 2.8s cubic-bezier(0.25,1,0.5,1);

  will-change:opacity,transform;

}

.slide.active{opacity:1;transform:scale(1);}

.slide img{

  width:100%;height:100%;object-fit:cover;object-position:center 40%;

  will-change:transform;

}

/* Ken Burns per slide — each different direction */

.slide.active .slide-img-1{animation:kb1 9s ease-out forwards;}

.slide.active .slide-img-2{animation:kb2 9s ease-out forwards;}

.slide.active .slide-img-3{animation:kb3 9s ease-out forwards;}

@keyframes kb1{0%{transform:scale(1) translate(0,0);} 100%{transform:scale(1.14) translate(-1.5%,1%);}}

@keyframes kb2{0%{transform:scale(1.08) translate(1%,0);} 100%{transform:scale(1) translate(-0.5%,1%);}}

@keyframes kb3{0%{transform:scale(1) translate(-1%,1%);} 100%{transform:scale(1.12) translate(1.5%,-0.5%);}}



/* Overlay */

.hero-overlay{

  position:absolute;inset:0;z-index:1;

  background:linear-gradient(

    to top,

    rgba(20,19,16,0.82) 0%,

    rgba(20,19,16,0.38) 48%,

    rgba(20,19,16,0.15) 100%

  );

}



/* Slide counter */

.hero-counter{

  position:absolute;top:50%;right:56px;transform:translateY(-50%);

  z-index:3;display:flex;flex-direction:column;align-items:center;gap:12px;

}

.hero-counter-dot{

  width:5px;height:5px;border-radius:50%;

  background:rgba(255,255,255,0.35);

  transition:all 0.4s var(--ease);cursor:pointer;

}

.hero-counter-dot.active{background:#fff;transform:scale(1.4);}



/* Hero content */

.hero-content{

  position:relative;z-index:2;

  padding:0 56px 88px;

  width:100%;max-width:860px;

}

.hero-tag{

  display:inline-flex;align-items:center;gap:10px;

  padding:7px 18px;

  background:rgba(255,255,255,0.1);

  border:1px solid rgba(255,255,255,0.2);

  border-radius:var(--r3);

  backdrop-filter:blur(10px);

  margin-bottom:28px;

  opacity:0;animation:fadeUp 0.9s 0.2s var(--spring) both;

}

.hero-tag span{font-family:'DM Sans',sans-serif;font-size:11px;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;color:rgba(255,255,255,0.8);}

.hero-tag::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--gold2);flex-shrink:0;}

.hero-h1{color:#fff;margin-bottom:22px;opacity:0;animation:fadeUp 1s 0.35s var(--spring) both;}

.hero-h1 em{color:var(--gold2);}

.hero-desc{

  font-size:clamp(16px,1.4vw,19px);color:rgba(255,255,255,0.68);

  line-height:1.75;max-width:540px;

  margin-bottom:40px;font-weight:300;

  opacity:0;animation:fadeUp 0.9s 0.5s var(--spring) both;

}

.hero-btns{display:flex;gap:14px;flex-wrap:wrap;opacity:0;animation:fadeUp 0.9s 0.65s var(--spring) both;}

.hero-scroll{

  position:absolute;bottom:44px;right:180px;z-index:3;

  display:flex;align-items:center;gap:10px;

  opacity:0;animation:fadeUp 0.9s 1.1s var(--spring) both;

}

.hero-scroll span{font-family:'DM Sans',sans-serif;font-size:10px;font-weight:500;letter-spacing:0.22em;text-transform:uppercase;color:rgba(255,255,255,0.4);}

.hero-scroll-track{width:50px;height:1px;background:rgba(255,255,255,0.2);overflow:hidden;position:relative;}

.hero-scroll-track::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.7),transparent);animation:scan 2s ease-in-out infinite;}

@keyframes scan{0%{transform:translateX(-100%);} 100%{transform:translateX(100%);}}

@keyframes fadeUp{from{opacity:0;transform:translateY(30px);} to{opacity:1;transform:translateY(0);}}



/* ═══════════════════════════════════════════════

   STATS STRIP

═══════════════════════════════════════════════ */

#stats{background:var(--cream);padding:0;border-bottom:1px solid var(--border);overflow:hidden;}

.stats-row{display:grid;grid-template-columns:repeat(4,1fr);}

.stat-item{

  padding:52px 40px;

  border-right:1px solid var(--border);

  display:flex;flex-direction:column;gap:10px;

  transition:background 0.35s;

}

.stat-item:last-child{border-right:none;}

.stat-item:hover{background:var(--cream2);}

.stat-num{

  font-family:'Cormorant Garamond',serif;

  font-size:60px;font-weight:300;line-height:1;

  letter-spacing:-0.03em;color:var(--ink);

}

.stat-num sup{font-size:32px;color:var(--gold);vertical-align:super;line-height:0;font-weight:400;}

.stat-lbl{font-family:'DM Sans',sans-serif;font-size:11px;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink3);}



/* ═══════════════════════════════════════════════

   ABOUT — split

═══════════════════════════════════════════════ */

#about{background:#fff;padding:120px 0;}

.split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;max-width:100%;}

.split-photo{position:relative;overflow:hidden;border-radius:var(--r2);}

.split-photo img{width:100%;height:600px;object-fit:cover;border-radius:var(--r2);box-shadow:0 24px 80px rgba(0,0,0,0.1);transition:transform 0.7s cubic-bezier(0.25,0.46,0.45,0.94);will-change:transform;}

.split-chip{

  position:absolute;bottom:28px;left:24px;right:24px;

  background:rgba(255,255,255,0.94);backdrop-filter:blur(16px);

  border-radius:var(--r);padding:20px 24px;

  display:flex;gap:0;

  box-shadow:0 8px 32px rgba(0,0,0,0.1);

}

.chip-block{flex:1;text-align:center;padding:0 16px;border-right:1px solid var(--border);}

.chip-block:last-child{border-right:none;}

.chip-n{font-family:'Cormorant Garamond',serif;font-size:30px;font-weight:400;color:var(--ink);line-height:1;}

.chip-n em{font-style:normal;color:var(--gold);}

.chip-l{font-family:'DM Sans',sans-serif;font-size:9.5px;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink3);margin-top:4px;}

.split-text .tag{margin-bottom:22px;}

.split-text h2{margin-bottom:20px;color:var(--ink);}

.split-text p{font-size:16px;margin-bottom:16px;}

.split-text .btn{margin-top:12px;}

.feature-list{display:flex;flex-direction:column;gap:0;margin:28px 0;}

.feature-row{

  display:flex;align-items:center;gap:14px;

  padding:14px 0;border-bottom:1px solid var(--border);

  font-family:'DM Sans',sans-serif;font-size:14px;font-weight:400;color:var(--ink2);

  transition:color 0.25s;

}

.feature-row:first-child{border-top:1px solid var(--border);}

.feature-row:hover{color:var(--ink);}

.feature-row::before{content:'';width:20px;height:1px;background:var(--gold);flex-shrink:0;}



/* ═══════════════════════════════════════════════

   SERVICES

═══════════════════════════════════════════════ */

#services{background:var(--cream);padding:120px 0;}

.section-intro{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:60px;gap:40px;}

.section-intro-left .tag{margin-bottom:16px;}

.section-intro-left h2{color:var(--ink);}

.section-intro-right{max-width:340px;font-size:15px;color:var(--ink2);line-height:1.8;text-align:right;}

.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--border);border:2px solid var(--border);border-radius:var(--r2);overflow:hidden;}

.svc{background:#fff;padding:48px 40px;transition:background 0.3s;position:relative;overflow:hidden;will-change:transform;transform-style:preserve-3d;perspective:800px;}

.svc::after{

  content:'';position:absolute;bottom:0;left:0;right:0;height:2px;

  background:linear-gradient(90deg,var(--gold),var(--gold2));

  transform:scaleX(0);transform-origin:left;

  transition:transform 0.45s var(--spring);

}

.svc:hover{background:var(--cream);}

.svc:hover::after{transform:scaleX(1);}

.svc-n{font-family:'Cormorant Garamond',serif;font-size:13px;font-weight:400;letter-spacing:0.08em;color:var(--gold);margin-bottom:20px;display:block;}

.svc h3{font-family:'Cormorant Garamond',serif;font-size:26px;font-weight:400;color:var(--ink);margin-bottom:14px;line-height:1.15;}

.svc p{font-size:14.5px;color:var(--ink2);line-height:1.75;margin-bottom:28px;}

.svc-cta{

  display:inline-flex;align-items:center;gap:9px;

  font-family:'DM Sans',sans-serif;font-size:12px;font-weight:500;letter-spacing:0.08em;

  color:var(--ink);text-transform:uppercase;

  transition:all 0.3s var(--spring);

}

.svc-cta::after{content:'→';transition:transform 0.3s var(--spring);display:inline-block;}

.svc:hover .svc-cta{color:var(--gold);}

.svc:hover .svc-cta::after{transform:translateX(5px);}



/* ═══════════════════════════════════════════════

   PHOTO BAND — full bleed with text overlay

═══════════════════════════════════════════════ */

.photo-band{

  position:relative;height:520px;overflow:hidden;

  display:flex;align-items:center;justify-content:center;

}

.photo-band-img{position:absolute;inset:0;}

.photo-band-img img{

  width:100%;height:100%;object-fit:cover;object-position:center 35%;

  filter:brightness(0.55);

  transition:transform 12s ease;

}

.photo-band:hover .photo-band-img img{transform:scale(1.04);}

.photo-band-body{

  position:relative;z-index:2;text-align:center;padding:0 40px;

}

.photo-band-body h2{color:#fff;margin-bottom:14px;}

.photo-band-body h2 em{color:var(--gold2);}

.photo-band-body p{font-size:17px;color:rgba(255,255,255,0.68);max-width:520px;margin:0 auto 36px;}



/* ═══════════════════════════════════════════════

   COMMITMENT — split reversed

═══════════════════════════════════════════════ */

#commitment{background:#fff;padding:120px 0;}

.commit-checks{display:flex;flex-direction:column;gap:0;margin:28px 0 36px;}

.commit-check{

  display:flex;align-items:flex-start;gap:16px;

  padding:18px 0;border-bottom:1px solid var(--border);

}

.commit-check:first-child{border-top:1px solid var(--border);}

.cc-icon{

  width:32px;height:32px;border-radius:8px;

  background:var(--gold-pale);border:1px solid rgba(184,144,58,0.2);

  display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;

}

.cc-icon svg{width:14px;height:14px;stroke:var(--gold);fill:none;stroke-width:2;}

.cc-body strong{display:block;font-family:'DM Sans',sans-serif;font-size:14.5px;font-weight:500;color:var(--ink);margin-bottom:3px;}

.cc-body span{font-size:13.5px;color:var(--ink2);line-height:1.6;}



/* Warranty tiers callout */

.warranty-card{

  margin:0 0 28px;

  background:linear-gradient(135deg,var(--gold-pale),#fff);

  border:1px solid rgba(184,144,58,0.25);

  border-radius:var(--r2);

  padding:24px 28px;

  position:relative;

  overflow:hidden;

}

.warranty-card::before{

  content:'';position:absolute;top:0;right:0;width:180px;height:180px;

  background:radial-gradient(circle,rgba(184,144,58,0.12),transparent 65%);

  pointer-events:none;

}

.warranty-head{

  display:flex;align-items:center;gap:12px;margin-bottom:16px;

  font-family:'DM Sans',sans-serif;font-size:11px;font-weight:500;

  letter-spacing:0.16em;text-transform:uppercase;color:var(--gold);

}

.warranty-head::before{

  content:'';width:24px;height:1px;background:var(--gold);flex-shrink:0;

}

.warranty-tiers{

  display:grid;grid-template-columns:repeat(3,1fr);gap:0;

  position:relative;z-index:1;

}

.warranty-tier{

  padding:4px 16px;border-right:1px solid rgba(184,144,58,0.2);

}

.warranty-tier:first-child{padding-left:0;}

.warranty-tier:last-child{border-right:none;padding-right:0;}

.warranty-n{

  font-family:'Cormorant Garamond',serif;font-weight:400;

  font-size:42px;line-height:1;color:var(--ink);letter-spacing:-0.03em;

}

.warranty-n em{font-style:normal;color:var(--gold);font-size:22px;vertical-align:super;line-height:0;margin-left:2px;}

.warranty-l{

  font-family:'DM Sans',sans-serif;font-size:10.5px;font-weight:500;

  letter-spacing:0.14em;text-transform:uppercase;color:var(--ink3);margin-top:8px;

}

/* BC 2-5-10 credential badge beside the tier grid */

.warranty-body{

  display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;

  position:relative;z-index:1;

}

.warranty-badge-wrap{

  display:inline-block;line-height:0;flex-shrink:0;

  transition:transform 0.35s var(--ease-out-quart);

  outline:none;

}

.warranty-badge-wrap:hover,

.warranty-badge-wrap:focus-visible{transform:scale(1.04);}

.warranty-badge-wrap:focus-visible{box-shadow:0 0 0 3px rgba(184,144,58,0.35);border-radius:6px;}

.warranty-badge{

  width:140px;height:auto;display:block;

  filter:drop-shadow(0 2px 6px rgba(26,25,22,0.08));

}



/* ═══════════════════════════════════════════════

   PHOTO GRID — 3 up

═══════════════════════════════════════════════ */

.pgrid-section{background:var(--ink);padding:80px 0 0;overflow:hidden;}

.pgrid-header{text-align:center;padding-bottom:52px;}

.pgrid-header .tag{background:rgba(184,144,58,0.15);border-color:rgba(184,144,58,0.25);color:var(--gold2);margin-bottom:14px;}

.pgrid-header h2{color:#fff;}

.pgrid{display:grid;grid-template-columns:repeat(3,1fr);}

.pgrid-item{position:relative;height:420px;overflow:hidden;}

.pgrid-item img{width:100%;height:100%;object-fit:cover;filter:brightness(0.7);transition:transform 0.9s var(--ease),filter 0.6s;}

.pgrid-item:hover img{transform:scale(1.07);filter:brightness(0.85);}

.pgrid-caption{

  position:absolute;bottom:0;left:0;right:0;

  padding:80px 28px 28px;

  background:linear-gradient(to top,rgba(20,19,16,0.82),transparent);

}

.pgrid-tag{

  display:inline-block;

  padding:5px 14px;

  border-radius:var(--r3);

  background:rgba(184,144,58,0.2);border:1px solid rgba(184,144,58,0.35);

  font-family:'DM Sans',sans-serif;font-size:10px;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;

  color:var(--gold2);

}



/* ═══════════════════════════════════════════════

   PROCESS

═══════════════════════════════════════════════ */

#process{background:var(--cream);padding:120px 0;}

.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative;}

.process-grid::before{

  content:'';position:absolute;

  top:42px;left:10%;right:10%;

  height:1px;background:var(--border);

}

.proc-card{

  text-align:center;padding:0 20px;

  position:relative;z-index:1;

}

.proc-circle{

  width:84px;height:84px;border-radius:50%;

  background:#fff;border:1px solid var(--border);

  display:flex;align-items:center;justify-content:center;

  margin:0 auto 28px;

  transition:all 0.35s var(--ease);

  position:relative;

}

.proc-circle::after{

  content:'';position:absolute;inset:-5px;

  border-radius:50%;border:1px solid transparent;

  transition:border-color 0.35s;

}

.proc-card:hover .proc-circle{border-color:var(--gold);background:var(--gold-pale);}

.proc-card:hover .proc-circle::after{border-color:rgba(184,144,58,0.2);}

.proc-num-text{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:400;color:var(--gold);}

.proc-card h4{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:400;color:var(--ink);margin-bottom:12px;}

.proc-card p{font-size:14px;color:var(--ink2);line-height:1.75;}



/* ═══════════════════════════════════════════════

   TESTIMONIALS

═══════════════════════════════════════════════ */

#testimonials{padding:120px 0;position:relative;overflow:hidden;max-width:100%;}

.testi-photo{position:absolute;inset:0;z-index:0;}

.testi-photo img{width:100%;height:100%;object-fit:cover;filter:brightness(0.2);}

.testi-photo::after{content:'';position:absolute;inset:0;background:rgba(20,19,16,0.6);}

.testi-inner{position:relative;z-index:2;}

.testi-inner .section-intro{flex-direction:column;align-items:center;text-align:center;margin-bottom:56px;}

.testi-inner .section-intro h2{color:#fff;}

.testi-inner .tag{background:rgba(184,144,58,0.18);border-color:rgba(184,144,58,0.3);color:var(--gold2);}

.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}

.tcard{

  background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);

  border-radius:var(--r2);padding:38px 32px;

  backdrop-filter:blur(12px);

  transition:all 0.35s var(--ease);

}

.tcard:hover{background:rgba(255,255,255,0.1);border-color:rgba(184,144,58,0.4);transform:translateY(-4px);}

.tcard-qs{font-family:'Cormorant Garamond',serif;font-size:52px;line-height:0.6;color:var(--gold);margin-bottom:18px;display:block;}

.tcard p{font-style:italic;font-size:15.5px;color:rgba(255,255,255,0.78);line-height:1.75;margin-bottom:24px;}

.tcard-line{width:24px;height:1.5px;background:var(--gold);margin-bottom:16px;border-radius:2px;}

.tcard-name{font-family:'DM Sans',sans-serif;font-size:13.5px;font-weight:500;color:#fff;}

.tcard-role{font-family:'DM Sans',sans-serif;font-size:11px;font-weight:400;letter-spacing:0.1em;color:rgba(255,255,255,0.38);margin-top:4px;text-transform:uppercase;}



/* ═══════════════════════════════════════════════

   CTA BAND

═══════════════════════════════════════════════ */

#cta-band{position:relative;overflow:hidden;max-width:100%;}

.cta-photo{position:absolute;inset:0;z-index:0;}

.cta-photo img{width:100%;height:100%;object-fit:cover;filter:brightness(0.28);}

.cta-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(to right,rgba(20,19,16,0.85) 55%,rgba(20,19,16,0.4));}

.cta-body{position:relative;z-index:2;padding:110px 56px;max-width:720px;}

.cta-body .tag{background:rgba(184,144,58,0.18);border-color:rgba(184,144,58,0.3);color:var(--gold2);margin-bottom:20px;}

.cta-body h2{color:#fff;margin-bottom:0;}

.cta-phone{

  display:block;

  font-family:'Cormorant Garamond',serif;

  font-size:clamp(36px,4.5vw,60px);font-weight:300;

  letter-spacing:-0.02em;

  color:#fff;margin:28px 0 36px;

  transition:color 0.3s;

}

.cta-phone:hover{color:var(--gold2);}

.cta-actions{display:flex;gap:14px;flex-wrap:wrap;}



/* ═══════════════════════════════════════════════

   CONTACT

═══════════════════════════════════════════════ */

#contact{background:var(--cream2);padding:120px 0;}

.contact-grid{display:grid;grid-template-columns:1fr 1.45fr;gap:80px;align-items:start;}

.contact-info .tag{margin-bottom:22px;}

.contact-info h2{margin-bottom:18px;}

.contact-info h2 em{color:var(--gold);}

.contact-info p{font-size:16px;margin-bottom:36px;}

.cinfo-row{display:flex;align-items:center;gap:14px;margin-bottom:14px;}

.cinfo-icon{

  width:38px;height:38px;border-radius:10px;

  background:var(--gold-pale);border:1px solid rgba(184,144,58,0.2);

  display:flex;align-items:center;justify-content:center;flex-shrink:0;

}

.cinfo-icon svg{width:15px;height:15px;stroke:var(--gold);fill:none;stroke-width:1.8;}

.cinfo-row a,.cinfo-row span{font-size:14.5px;font-weight:400;color:var(--ink);transition:color 0.25s;}

.cinfo-row a:hover{color:var(--gold);}

.form-box{background:#fff;border-radius:var(--r2);padding:48px;border:1px solid var(--border);box-shadow:0 8px 40px rgba(0,0,0,0.05);}

.frow{display:grid;grid-template-columns:1fr 1fr;gap:16px;}

.fg{margin-bottom:18px;}

.fg label{display:block;font-family:'DM Sans',sans-serif;font-size:10.5px;font-weight:500;letter-spacing:0.13em;text-transform:uppercase;color:var(--ink3);margin-bottom:8px;}

.fg input,.fg select,.fg textarea{

  width:100%;background:var(--cream);

  border:1.5px solid var(--border);border-radius:var(--r);

  color:var(--ink);padding:13px 16px;

  font-family:'DM Sans',sans-serif;font-size:15px;font-weight:300;

  outline:none;-webkit-appearance:none;

  transition:all 0.25s;

}

.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--gold);background:#fff;box-shadow:0 0 0 4px rgba(184,144,58,0.08);}

.fg textarea{resize:none;min-height:120px;}

.fg select{

  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%23b8903a' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

  background-repeat:no-repeat;background-position:right 16px center;padding-right:42px;cursor:pointer;

}

.fg select option{background:#fff;}

.form-submit{

  width:100%;padding:17px;border-radius:var(--r3);

  background:var(--ink);color:#fff;

  font-family:'DM Sans',sans-serif;font-size:13.5px;font-weight:500;letter-spacing:0.06em;

  transition:all 0.3s var(--ease);

}

.form-submit:hover{background:var(--gold);box-shadow:0 6px 24px rgba(184,144,58,0.35);}

.form-note{text-align:center;font-size:12px;color:var(--ink3);margin-top:14px;font-weight:400;}



/* ═══════════════════════════════════════════════

   FOOTER

═══════════════════════════════════════════════ */

footer{background:var(--ink);padding:80px 0 36px;overflow:hidden;}

.footer-grid{display:grid;grid-template-columns:1.8fr 1fr 1fr 1.2fr;gap:52px;margin-bottom:52px;padding-bottom:52px;border-bottom:1px solid rgba(255,255,255,0.07);}

.footer-logo-name{font-family:'Cormorant Garamond',serif;font-size:21px;font-weight:500;color:#fff;letter-spacing:0.04em;}

.footer-logo-name b{font-weight:600;color:var(--gold);}

.footer-logo-sub{font-family:'DM Sans',sans-serif;font-size:8px;font-weight:500;letter-spacing:0.3em;text-transform:uppercase;color:rgba(255,255,255,0.28);margin-bottom:16px;}

.footer-blurb{font-size:14px;color:rgba(255,255,255,0.38);line-height:1.8;}

.footer-col h5{font-family:'DM Sans',sans-serif;font-size:9.5px;font-weight:500;letter-spacing:0.22em;text-transform:uppercase;color:rgba(255,255,255,0.25);margin-bottom:18px;}

.footer-links{list-style:none;display:flex;flex-direction:column;gap:9px;}

.footer-links a{font-size:13.5px;color:rgba(255,255,255,0.48);transition:color 0.25s;}

.footer-links a:hover{color:var(--gold);}

.footer-ci{display:flex;align-items:center;gap:10px;margin-bottom:10px;}

.footer-ci svg{width:13px;height:13px;stroke:var(--gold);fill:none;stroke-width:1.5;flex-shrink:0;}

.footer-ci a,.footer-ci span{font-size:13px;color:rgba(255,255,255,0.48);transition:color 0.25s;}

.footer-ci a:hover{color:var(--gold);}

.footer-base{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}

.footer-copy{font-size:12px;color:rgba(255,255,255,0.18);}

.footer-legal{display:flex;gap:20px;}

.footer-legal a{font-size:12px;color:rgba(255,255,255,0.18);transition:color 0.25s;}

.footer-legal a:hover{color:rgba(255,255,255,0.5);}





/* ═══════════════════════════════════════════════

   SCROLL REVEAL

═══════════════════════════════════════════════ */

.reveal{opacity:0;transition:opacity 0.85s cubic-bezier(0.16,1,0.3,1),transform 0.85s cubic-bezier(0.16,1,0.3,1);animation:force-visible 0s 3s both;}

.reveal.from-up    { transform:translateY(56px); }

.reveal.from-left  { transform:translateX(-60px); }

.reveal.from-right { transform:translateX(60px); }

.reveal.from-scale { transform:scale(0.92); }

.reveal.visible    { opacity:1; transform:none; animation:none; }



.up{opacity:0;transform:translateY(52px);transition:opacity 0.85s cubic-bezier(0.16,1,0.3,1),transform 0.85s cubic-bezier(0.16,1,0.3,1);animation:show-it 0s 2.5s both;}

.up.show{opacity:1;transform:none;animation:none;}



.delay-1,.d1{transition-delay:0.10s;}

.delay-2,.d2{transition-delay:0.20s;}

.delay-3,.d3{transition-delay:0.32s;}

.delay-4,.d4{transition-delay:0.46s;}

.delay-5    {transition-delay:0.60s;}



@keyframes force-visible{to{opacity:1;transform:none;}}

@keyframes show-it{to{opacity:1;transform:none;}}



/* ── Scroll progress bar ── */

#scroll-prog{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--gold),var(--gold2));z-index:9999;transition:width 0.08s linear;pointer-events:none;}



/* ── Parallax images ── */

.parallax-wrap{overflow:hidden;position:relative;}

.parallax-img{will-change:transform;transform:scale(1.1);}



/* ── FAQ Accordion ── */

.faq-item{border-bottom:1px solid var(--border);}

.faq-item:first-of-type{border-top:1px solid var(--border);}

.faq-q{

  display:flex;align-items:center;justify-content:space-between;

  width:100%;padding:22px 0;

  background:none;border:none;cursor:pointer;text-align:left;

  font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:400;

  color:var(--ink);gap:20px;

  transition:color 0.25s;

}

.faq-q:hover{color:var(--gold);}

.faq-q svg{width:18px;height:18px;flex-shrink:0;stroke:var(--gold);transition:transform 0.35s cubic-bezier(0.16,1,0.3,1);}

.faq-q[aria-expanded="true"] svg{transform:rotate(180deg);}

.faq-a{max-height:0;overflow:hidden;padding:0 0 0;max-width:680px;transition:max-height 0.5s cubic-bezier(0.16,1,0.3,1),padding 0.3s;}

.faq-a.open{max-height:600px;padding:0 0 22px;}

.faq-a p{font-size:15.5px;color:var(--ink2);line-height:1.8;}

.faq-a strong{color:var(--ink);font-weight:500;}

.faq-a a{color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(184,144,58,0.3);transition:border-color 0.25s;}

.faq-a a:hover{border-color:var(--gold);}



/* ── Address element ── */

address{font-style:normal;}





/* ══════════════════════════════════════════════

   RESPONSIVE — TABLET ≤960px

══════════════════════════════════════════════ */

@media (max-width:960px){

  /* Override horizontal reveals → vertical only */

  .reveal.from-left{transform:translateY(40px);}

  .reveal.from-right{transform:translateY(40px);}

  .reveal.from-left.visible,.reveal.from-right.visible{opacity:1;transform:none;}

  .wrap{padding:0 28px;}

  .nav-inner{padding:0 28px;}

  .nav-links{display:none;}

  .burger{display:flex;}

  #hero{min-height:600px;}

  .hero-content{padding:0 28px 60px;}

  .hero-scroll{display:none;}

  .hero-counter{

    top:auto;right:auto;bottom:28px;

    left:50%;transform:translateX(-50%);

    flex-direction:row;gap:10px;

  }

  .hero-h1{font-size:clamp(44px,8vw,72px);}

  .hero-desc{font-size:16px;max-width:100%;}

  .stats-row{grid-template-columns:1fr 1fr;}

  .stat-item{border-bottom:1px solid var(--border);padding:40px 28px;}

  .stat-item:nth-child(odd){border-right:1px solid var(--border);}

  #about,#commitment{padding:80px 0;}

  .split{grid-template-columns:1fr;gap:0;}

  .split-photo{order:-1 !important;border-radius:0;width:100%;}

  .split-photo img{height:340px;border-radius:0;box-shadow:none;}

  .split-chip{border-radius:0 0 var(--r) var(--r);bottom:0;left:0;right:0;}

  .split-text{padding:48px 28px;}

  .split-text h2{margin-bottom:16px;}

  .split-text p{font-size:15px;}

  #services{padding:80px 0;}

  .section-intro{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:40px;}

  .section-intro-right{text-align:left;max-width:100%;font-size:14px;}

  .services-grid{grid-template-columns:1fr 1fr;}

  .svc{padding:36px 28px;}

  .photo-band{height:400px;}

  .pgrid{grid-template-columns:1fr;}

  .pgrid-item{height:260px;}

  .pgrid-section{padding:60px 0 0;}

  .pgrid-header{padding-bottom:36px;}

  #process{padding:80px 0;}

  .process-grid{grid-template-columns:1fr 1fr;gap:28px;}

  .process-grid::before{display:none;}

  .proc-card{padding:0 8px;}

  .proc-circle{width:70px;height:70px;margin-bottom:20px;}

  #testimonials{padding:80px 0;}

  .testi-grid{grid-template-columns:1fr;gap:16px;}

  .tcard{padding:30px 24px;}

  .testi-inner .section-intro{margin-bottom:40px;}

  .cta-body{padding:80px 28px;max-width:100%;}

  .cta-phone{font-size:clamp(30px,7vw,48px);margin:20px 0 28px;}

  #faq{padding:80px 0;}

  .faq-q{font-size:18px;padding:18px 0;}

  #contact{padding:80px 0;}

  .contact-grid{grid-template-columns:1fr;gap:40px;}

  .form-box{padding:32px 24px;}

  footer{padding:60px 0 28px;}

  .footer-grid{grid-template-columns:1fr 1fr;gap:36px;margin-bottom:40px;padding-bottom:40px;}

  .warranty-tier{padding:4px 10px;}

  .warranty-n{font-size:36px;}

  .warranty-body{grid-template-columns:1fr;gap:16px;justify-items:center;}

  .warranty-badge{width:130px;}

}



/* ══════════════════════════════════════════════

   RESPONSIVE — MOBILE ≤600px

══════════════════════════════════════════════ */

@media (max-width:600px){

  body{-webkit-text-size-adjust:100%;}

  .reveal.from-left{transform:translateY(28px);}

  .reveal.from-right{transform:translateY(28px);}

  .wrap{padding:0 20px;}

  .nav-inner{padding:0 20px;}

  #hero{min-height:560px;}

  .hero-content{padding:0 20px 52px;}

  .hero-tag{padding:6px 14px;margin-bottom:18px;}

  .hero-tag span{font-size:10px;letter-spacing:0.10em;}

  .hero-h1{font-size:clamp(36px,10vw,54px);margin-bottom:14px;}

  .hero-desc{font-size:15px;margin-bottom:24px;}

  .hero-btns{flex-direction:column;align-items:stretch;gap:10px;}

  .hero-btns .btn{width:100%;justify-content:center;}

  .hero-counter-dot{width:4px;height:4px;}

  .display{font-size:clamp(34px,10vw,54px);}

  .heading{font-size:clamp(28px,8vw,44px);}

  .stats-row{grid-template-columns:1fr 1fr;}

  .stat-item{padding:28px 16px;}

  .stat-num{font-size:46px;}

  .stat-num sup{font-size:22px;}

  .stat-lbl{font-size:9.5px;}

  #about,#commitment{padding:56px 0;}

  .split-photo img{height:260px;}

  .split-chip{padding:14px 16px;}

  .chip-block{padding:0 10px;}

  .chip-n{font-size:20px;}

  .chip-l{font-size:8px;}

  .split-text{padding:32px 20px;}

  .split-text h2{font-size:clamp(28px,8vw,40px);}

  .feature-row{font-size:13px;padding:11px 0;}

  .commit-checks{margin:18px 0 24px;}

  .cc-icon{width:28px;height:28px;}

  .cc-body strong{font-size:13px;}

  .cc-body span{font-size:12.5px;}

  .warranty-card{padding:20px 22px;}

  .warranty-head{font-size:10px;margin-bottom:12px;}

  .warranty-tier{padding:2px 10px;}

  .warranty-n{font-size:32px;}

  .warranty-n em{font-size:18px;}

  .warranty-l{font-size:9.5px;margin-top:4px;}

  .warranty-body{grid-template-columns:1fr;gap:14px;justify-items:center;}

  .warranty-badge{width:115px;}

  #services{padding:56px 0;}

  .services-grid{grid-template-columns:1fr;gap:0;}

  .svc{padding:28px 20px;}

  .svc h3{font-size:21px;}

  .svc p{font-size:13.5px;}

  .photo-band{height:300px;}

  .photo-band-body{padding:0 20px;}

  .photo-band-body p{font-size:14px;margin-bottom:22px;}

  #process{padding:56px 0;}

  .process-grid{grid-template-columns:1fr;gap:28px;}

  .proc-card{display:flex;align-items:flex-start;gap:18px;text-align:left;padding:0;}

  .proc-circle{width:54px;height:54px;flex-shrink:0;margin:0;}

  .proc-num-text{font-size:18px;}

  .proc-card h3{font-size:19px;margin-bottom:6px;}

  .proc-card p{font-size:13.5px;}

  #testimonials{padding:56px 0;}

  .tcard{padding:22px 18px;}

  .tcard-qs{font-size:38px;margin-bottom:10px;}

  .tcard p{font-size:14px;}

  .cta-body{padding:60px 20px;}

  .cta-phone{font-size:clamp(26px,8vw,38px);margin:18px 0 24px;}

  .cta-actions{flex-direction:column;align-items:stretch;}

  .cta-actions .btn{width:100%;justify-content:center;}

  #faq{padding:56px 0;}

  .faq-q{font-size:16px;gap:10px;}

  .faq-a p{font-size:14px;}

  #contact{padding:56px 0;}

  .contact-info h2{font-size:clamp(26px,8vw,38px);}

  .form-box{padding:22px 18px;border-radius:var(--r);}

  .frow{grid-template-columns:1fr;}

  .fg{margin-bottom:13px;}

  .fg input,.fg select,.fg textarea{font-size:16px;}

  .fg label{font-size:9.5px;}

  .form-submit{font-size:13px;padding:15px;}

  footer{padding:44px 0 20px;}

  .footer-grid{grid-template-columns:1fr;gap:26px;margin-bottom:28px;padding-bottom:28px;}

  .footer-blurb{font-size:13px;}

  .footer-base{flex-direction:column;align-items:flex-start;gap:6px;}

  #mob-nav a{font-size:24px;padding:13px 0;}

  .call-btn{width:48px;height:48px;bottom:20px;right:20px;}

  .call-btn svg{width:18px;height:18px;}

  .btn{padding:13px 24px;}

  .pgrid-section{padding:44px 0 0;}

  .pgrid-item{height:210px;}

  .pgrid-header .heading{font-size:clamp(26px,8vw,38px);}

  .tag{font-size:10px;padding:5px 13px;}

  .reveal.from-up{transform:translateY(32px);}

  .reveal.from-left{transform:translateX(-32px);}

  .reveal.from-right{transform:translateX(32px);}

  .up{transform:translateY(32px);}

}



/* ══════════════════════════════════════════════

   TOUCH DEVICES — disable hover effects

══════════════════════════════════════════════ */

@media (hover:none){

  .svc:hover{transform:none !important;}

  .split-photo:hover img{transform:none !important;}

  .pgrid-item:hover img{transform:none !important;}

  .photo-band:hover .photo-band-img img{transform:none !important;}

  .tcard:hover{transform:none !important;}

  .stat-item:hover{background:var(--cream) !important;}

  .proc-card:hover .proc-circle{border-color:var(--border) !important;background:#fff !important;}

}



/* ══════════════════════════════════════════════

   REDUCED MOTION

══════════════════════════════════════════════ */

@media (prefers-reduced-motion:reduce){

  *,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important;}

  .reveal,.up{opacity:1 !important;transform:none !important;animation:none !important;}

  .slide{transition:none !important;}

  .slide img{animation:none !important;}

}



/* ══════════════════════════════════════════════

   ENHANCED MOTION + LAYOUT LAYER

══════════════════════════════════════════════ */

:root{

  --ease-out-quart:cubic-bezier(0.25,1,0.5,1);

  --ease-out-expo:cubic-bezier(0.16,1,0.3,1);

}

::selection{background:var(--gold-pale);color:var(--ink);}

.btn:active{transform:translateY(0) scale(0.97);}



/* Hero H1 — line-by-line clip reveal (replaces single fadeUp) */

.hero-h1{animation:none !important;opacity:1 !important;}

.h1-line{display:block;overflow:hidden;line-height:0.93;}

.h1-line > span{display:inline-block;transform:translateY(110%);animation:h1LineIn 1.1s var(--ease-out-expo) both;}

.h1-line:nth-child(1) > span{animation-delay:0.35s;}

.h1-line:nth-child(2) > span{animation-delay:0.55s;}

@keyframes h1LineIn{to{transform:translateY(0);}}

@media (prefers-reduced-motion:reduce){.h1-line > span{transform:none !important;animation:none !important;}}



/* Stats — hero tile + gold underline after count */

.stat-item--hero{background:var(--cream2);}

.stat-num{position:relative;display:inline-block;}

.stat-num::after{content:'';position:absolute;left:0;bottom:-10px;width:0;height:1.5px;background:var(--gold);transition:width 0.9s var(--ease-out-quart) 0.4s;}

.stat-item.counted .stat-num::after{width:28px;}

.stat-item--hero .stat-num::after{height:2px;background:var(--gold2);}

.stat-item--hero.counted .stat-num::after{width:44px;}



/* Services — asymmetric 4-col bento with featured tiles */

.services-grid{grid-template-columns:repeat(4,1fr);}

.svc--featured{grid-column:span 2;padding:40px 40px 36px;}

.svc--featured h3{font-size:32px;letter-spacing:-0.02em;}

.svc--featured p{max-width:42ch;}

.svc-thumb{width:100%;aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;margin:18px 0 4px;border:1px solid var(--border);position:relative;}

.svc-thumb img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-out-quart);}

.svc--featured:hover .svc-thumb img{transform:scale(1.05);}

.svc-n{transition:color 0.3s;}

.svc--featured .svc-n{color:var(--gold);}

.svc--featured .svc-n::after{content:' · Featured';font-style:italic;font-size:12px;color:var(--ink3);letter-spacing:0.04em;}

@media (max-width:960px){

  .services-grid{grid-template-columns:repeat(2,1fr);}

  .svc--featured{grid-column:span 2;padding:36px 28px;}

  .svc--featured h3{font-size:26px;}

}

@media (max-width:600px){

  .services-grid{grid-template-columns:1fr;}

  .svc--featured{grid-column:auto;padding:28px 20px;}

  .svc--featured h3{font-size:22px;}

  .svc-thumb{aspect-ratio:16/10;}

}



/* About — bucketed feature list */

.feature-bucket{margin:22px 0 0;}

.feature-bucket-head{

  font-family:'DM Sans',sans-serif;font-size:10px;font-weight:500;

  letter-spacing:0.22em;text-transform:uppercase;color:var(--gold);

  display:flex;align-items:center;gap:14px;margin-bottom:2px;padding-top:10px;

}

.feature-bucket-head::after{content:'';flex:1;height:1px;background:rgba(184,144,58,0.3);}

.feature-bucket .feature-row{padding:12px 0;}

.feature-bucket .feature-row:first-child{border-top:none;}

.feature-bucket:last-of-type .feature-row:last-child{border-bottom:1px solid var(--border);}



/* Warranty card — tier hover + stagger-in */

.warranty-tier{transition:transform 0.38s var(--ease-out-quart),background-color 0.3s;padding:6px 14px 8px;border-radius:10px;cursor:default;}

.warranty-tier:hover{transform:translateY(-3px);background:rgba(184,144,58,0.06);}

.warranty-tier:hover .warranty-n{color:var(--gold);}

.warranty-n{transition:color 0.3s;}

.warranty-card.is-visible .warranty-tier{animation:tierIn 0.7s var(--ease-out-expo) both;}

.warranty-card.is-visible .warranty-tier:nth-child(1){animation-delay:0.10s;}

.warranty-card.is-visible .warranty-tier:nth-child(2){animation-delay:0.20s;}

.warranty-card.is-visible .warranty-tier:nth-child(3){animation-delay:0.30s;}

@keyframes tierIn{from{opacity:0;transform:translateY(14px);} to{opacity:1;transform:translateY(0);}}

@media (prefers-reduced-motion:reduce){.warranty-tier{animation:none !important;}}



/* Process — animated hairline + circle + copy stagger */

.process-grid::before{width:0;transition:width 1.1s var(--ease-out-quart) 0.15s;}

.process-grid.is-drawn::before{width:80%;}

.proc-card .proc-circle{transform:scale(0.88);opacity:0;transition:transform 0.7s var(--ease-out-expo),opacity 0.7s var(--ease-out-expo),border-color 0.35s,background-color 0.35s;}

.process-grid.is-drawn .proc-card:nth-child(1) .proc-circle{transform:scale(1);opacity:1;transition-delay:0.25s;}

.process-grid.is-drawn .proc-card:nth-child(2) .proc-circle{transform:scale(1);opacity:1;transition-delay:0.42s;}

.process-grid.is-drawn .proc-card:nth-child(3) .proc-circle{transform:scale(1);opacity:1;transition-delay:0.60s;}

.process-grid.is-drawn .proc-card:nth-child(4) .proc-circle{transform:scale(1);opacity:1;transition-delay:0.78s;}

.proc-card h3,.proc-card p{opacity:0;transform:translateY(10px);transition:opacity 0.6s var(--ease-out-quart),transform 0.6s var(--ease-out-quart);}

.process-grid.is-drawn .proc-card:nth-child(1) :is(h3,p){opacity:1;transform:none;transition-delay:0.45s;}

.process-grid.is-drawn .proc-card:nth-child(2) :is(h3,p){opacity:1;transform:none;transition-delay:0.62s;}

.process-grid.is-drawn .proc-card:nth-child(3) :is(h3,p){opacity:1;transform:none;transition-delay:0.80s;}

.process-grid.is-drawn .proc-card:nth-child(4) :is(h3,p){opacity:1;transform:none;transition-delay:0.98s;}

@media (max-width:960px){

  .process-grid::before{display:none;}

  .proc-card .proc-circle,.proc-card h3,.proc-card p{opacity:1;transform:none;}

}

@media (prefers-reduced-motion:reduce){

  .process-grid::before{width:80% !important;transition:none !important;}

  .proc-card .proc-circle,.proc-card h3,.proc-card p{opacity:1 !important;transform:none !important;transition:none !important;}

}



/* Testimonials — avatar treatment */

.tcard-top{display:flex;align-items:center;gap:14px;margin-bottom:22px;}

.tcard-avatar{

  width:42px;height:42px;border-radius:50%;

  background:rgba(184,144,58,0.14);border:1px solid rgba(184,144,58,0.38);

  display:flex;align-items:center;justify-content:center;

  font-family:'Cormorant Garamond',serif;font-size:15px;font-weight:500;

  color:var(--gold2);letter-spacing:0.02em;flex-shrink:0;

  transition:transform 0.45s var(--ease-out-expo),background-color 0.3s;

}

.tcard:hover .tcard-avatar{transform:scale(1.08);background:rgba(184,144,58,0.22);}

.tcard-top .tcard-line{margin:0;flex:1;max-width:44px;}



/* FAQ — chevron circle + answer fade */

.faq-q-icon{

  width:38px;height:38px;border-radius:50%;

  background:var(--cream);border:1px solid var(--border);

  display:flex;align-items:center;justify-content:center;flex-shrink:0;

  transition:background-color 0.3s var(--ease-out-quart),border-color 0.3s;

}

.faq-q:hover .faq-q-icon{background:var(--gold-pale);border-color:rgba(184,144,58,0.3);}

.faq-q[aria-expanded="true"] .faq-q-icon{background:var(--gold-pale);border-color:rgba(184,144,58,0.35);}

.faq-q[aria-expanded="true"] svg{transform:rotate(180deg);}

.faq-a{transition:max-height 0.5s var(--ease-out-quart),padding 0.3s;}

.faq-a p{opacity:0;transform:translateY(6px);transition:opacity 0.4s var(--ease-out-quart) 0.08s,transform 0.4s var(--ease-out-quart) 0.08s;}

.faq-a.open p{opacity:1;transform:none;}



/* Hero slide dot — progress ring on active */

.hero-counter-dot{position:relative;}

.hero-counter-dot.active::after{

  content:'';position:absolute;inset:-8px;border-radius:50%;

  border:1.5px solid rgba(255,255,255,0.14);border-top-color:var(--gold2);

  animation:dotRing 6.5s linear forwards;

}

@keyframes dotRing{from{transform:rotate(0deg);} to{transform:rotate(360deg);}}

@media (max-width:960px){.hero-counter-dot.active::after{inset:-6px;}}

@media (prefers-reduced-motion:reduce){.hero-counter-dot.active::after{display:none;}}



/* Service card CTA — refined arrow */

.svc-cta{transition:color 0.3s var(--ease-out-quart),gap 0.3s var(--ease-out-quart);}

.svc:hover .svc-cta{gap:14px;}



/* Section tag — refine entrance */

.tag{transition:background-color 0.3s,border-color 0.3s;}



/* Form — submit button refinement */

.form-submit{position:relative;overflow:hidden;}

.form-submit::after{

  content:'';position:absolute;inset:0;

  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,0.12) 50%,transparent 70%);

  transform:translateX(-100%);transition:transform 0.6s var(--ease-out-quart);

}

.form-submit:hover::after{transform:translateX(100%);}



/* Skip link polish */

.skip-link{transition:left 0.25s var(--ease-out-quart),top 0.25s var(--ease-out-quart),background-color 0.2s;}



/* Commitment — make the credential block breathe */

#commitment .split-text{position:relative;}

.warranty-card{margin-top:8px;}



/* ═══════════════════════════════════════════════
   PERFORMANCE ENHANCEMENTS — scroll bar, hover effects, mobile
═══════════════════════════════════════════════ */
.scroll-bar{position:fixed;top:0;left:0;height:3px;z-index:99999;background:linear-gradient(90deg,var(--gold),var(--gold2),var(--gold));width:0%;transition:width 0.05s linear;pointer-events:none;}
.cursor-glow{position:fixed;width:400px;height:400px;background:radial-gradient(circle,rgba(184,144,58,0.07) 0%,transparent 70%);border-radius:50%;pointer-events:none;z-index:0;opacity:0;transition:opacity 0.3s;}
.svc{transition:opacity 0.9s,transform 0.4s,background 0.3s,box-shadow 0.4s !important;}
.svc:hover{transform:translateY(-6px) rotateX(1deg);box-shadow:0 0 0 1px rgba(184,144,58,0.2),0 20px 60px rgba(184,144,58,0.12);}
.tcard,.proc-card,.area-card{transition:opacity 0.9s,transform 0.85s,background 0.35s,border-color 0.35s,box-shadow 0.35s !important;}
.call-btn{animation:pulse-gold 2.8s ease-in-out infinite;}
@keyframes pulse-gold{0%,100%{box-shadow:0 4px 20px rgba(184,144,58,0.4);}50%{box-shadow:0 4px 36px rgba(184,144,58,0.65),0 0 0 8px rgba(184,144,58,0.1);}}
@media(hover:none){.svc:active{transform:scale(0.98);}.btn:active{transform:scale(0.96)!important;}}