:root{
  --navy:#0e1a30;         /* base dark background */
  --navy-2:#13233f;       /* elevated surface / alt sections */
  --navy-3:#1b3055;       /* borders, hovers */
  --navy-deep:#0a1424;    /* darkest (footer) */
  --gold:#c4a15c;         /* logo gold accent */
  --gold-2:#d8bd82;       /* lighter gold (hover / highlights) */
  --gold-deep:#a9853f;    /* pressed / deep gold */
  --cream:#f6f2e9;        /* light surface (the form card) */
  --text:#e9edf5;         /* main light text on dark */
  --muted:#9aabc6;        /* muted light text on dark */
  --text-dark:#16233d;    /* text on cream/light surfaces */
  --muted-dark:#5c687d;   /* muted text on light surfaces */
  --white:#ffffff;
  --radius:14px;
  --shadow:0 14px 40px rgba(0,0,0,.45);
  --shadow-lg:0 26px 60px rgba(0,0,0,.6);
  --maxw:1160px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Open Sans',system-ui,sans-serif;
  color:var(--text);
  line-height:1.6;
  background:var(--navy);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.brand{font-family:'Montserrat',sans-serif;line-height:1.15}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.center{text-align:center;margin-top:34px}
.center-row{justify-content:center}

/* BUTTONS */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:16px;
  padding:14px 26px;border-radius:999px;cursor:pointer;border:0;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  white-space:nowrap;letter-spacing:.2px;
}
.btn:hover{transform:translateY(-3px)}
.btn:active{transform:translateY(-1px) scale(.98)}
.btn-lg{font-size:17px;padding:16px 32px}
.btn-block{width:100%}
.btn-ico{width:18px;height:18px;flex:0 0 auto}
.btn-primary{background:linear-gradient(180deg,var(--gold-2),var(--gold));color:#1a1305;box-shadow:0 10px 24px rgba(196,161,92,.35)}
.btn-primary:hover{background:linear-gradient(180deg,var(--gold),var(--gold-deep));box-shadow:0 14px 30px rgba(196,161,92,.45)}
.btn-ghost{background:transparent;color:var(--text);border:1.5px solid rgba(196,161,92,.55)}
.btn-ghost:hover{background:rgba(196,161,92,.12);border-color:var(--gold)}
.btn-ghost-dark{background:transparent;color:var(--gold-2);border:1.5px solid var(--gold);font-family:'Montserrat',sans-serif;font-weight:800;padding:13px 24px;border-radius:999px;display:inline-flex;align-items:center;gap:8px;margin-top:14px;transition:transform .15s ease, background .15s ease, color .15s ease}
.btn-ghost-dark:hover{background:var(--gold);color:#1a1305;transform:translateY(-2px)}

/* INTRO SPLASH */
.splash{
  position:fixed;inset:0;z-index:200;background:var(--navy-deep);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;
  transition:opacity .6s ease;
}
.splash-logo{
  height:118px;width:auto;
  animation:splashPop .7s cubic-bezier(.18,.89,.32,1.28), splashFloat 3s ease-in-out .7s infinite;
}
.splash.splash-hide{opacity:0;pointer-events:none}
@keyframes splashPop{from{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}
@keyframes splashFloat{0%,100%{transform:translateY(5px)}50%{transform:translateY(-7px)}}
@media(prefers-reduced-motion:reduce){.splash-logo{animation:none}}

/* HEADER — dark band with a clean typographic wordmark */
.site-header{position:sticky;top:0;z-index:50;background:rgba(11,20,36,.92);backdrop-filter:blur(10px);box-shadow:0 2px 20px rgba(0,0,0,.5);border-bottom:1px solid rgba(196,161,92,.22)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:13px;padding-bottom:13px}
.brand{display:inline-flex;align-items:center;gap:12px}
.brand-mark{height:46px;width:auto}
.brand-word{font-family:'Montserrat',sans-serif;font-weight:900;font-size:23px;letter-spacing:.5px;color:#fff;line-height:1}
.brand-word span{color:var(--gold-2)}
.nav{display:flex;align-items:center;gap:26px}
.nav a{font-weight:600;font-size:15px;color:var(--text);transition:color .15s}
.nav a:hover{color:var(--gold-2)}
.nav .nav-cta{background:linear-gradient(180deg,var(--gold-2),var(--gold));color:#1a1305;padding:10px 20px;border-radius:999px;font-family:'Montserrat',sans-serif;font-weight:800;transition:transform .15s ease, box-shadow .15s ease, background .15s ease}
.nav .nav-cta:hover{background:linear-gradient(180deg,var(--gold),var(--gold-deep));color:#1a1305;transform:translateY(-2px);box-shadow:0 8px 18px rgba(196,161,92,.35)}
.header-phone{
  display:none;align-items:center;gap:8px;white-space:nowrap;
  font-family:'Montserrat',sans-serif;font-weight:800;color:var(--gold-2);font-size:16px;
}
.header-phone svg{width:19px;height:19px;flex:0 0 auto}
.menu-toggle{display:none;background:none;border:0;font-size:28px;color:var(--gold-2);cursor:pointer}

/* HERO — single column, centered */
.hero{
  position:relative;overflow:hidden;background:var(--navy-deep);
  color:#fff;padding:96px 0 104px;text-align:center;
}
/* photo lives on its own layer so it can drift & zoom ever so slowly */
.hero:before{
  content:"";position:absolute;inset:0;z-index:0;
  background:
    linear-gradient(180deg, rgba(8,15,28,.72) 0%, rgba(8,15,28,.82) 60%, rgba(8,15,28,.96) 100%),
    url('RenoPhotos/hero-build.jpg');
  background-size:cover;
  background-position:center;
  animation:heroDrift 28s ease-in-out infinite alternate;
  will-change:transform;
}
.hero>.container{position:relative;z-index:1}
@keyframes heroDrift{
  from{transform:scale(1)}
  to{transform:scale(1.07) translateY(-10px)}
}
@media(prefers-reduced-motion:reduce){.hero:before{animation:none}}
.hero:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;z-index:1;background:linear-gradient(90deg,transparent,rgba(196,161,92,.5),transparent)}
.hero-copy{max-width:820px;margin:0 auto}
.eyebrow{color:var(--gold-2);font-weight:700;letter-spacing:.6px;margin-bottom:16px;font-size:14.5px}
.hero h1{font-size:52px;font-weight:900;letter-spacing:-.5px}
.hero h1 span{color:var(--gold-2)}
.hero-sub{font-size:18.5px;color:#c9d3e6;margin:20px auto 0;max-width:620px}
.hero-points{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 26px;margin:24px 0 30px;font-weight:600;color:#e6ecf7}
.hero-points li{display:flex;align-items:center;gap:8px}
.pt-check{width:16px;height:16px;flex:0 0 auto;color:var(--gold-2)}
.hero-cta-row{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.hero-trust{margin-top:18px;font-size:13.5px;color:#93a2bd}

/* LEAD CARD (kept light for form readability) */
.lead-card{background:var(--cream);color:var(--text-dark);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:30px 28px;border-top:5px solid var(--gold)}
.quote-section .lead-card{max-width:580px;margin:0 auto}

/* QUIZ FORM */
.quiz-progress{height:7px;background:#e4ddcc;border-radius:999px;overflow:hidden;margin-bottom:20px}
.quiz-progress-bar{display:block;height:100%;width:20%;background:linear-gradient(90deg,var(--gold),var(--gold-deep));border-radius:999px;transition:width .35s ease}
.quiz-step{display:none}
.quiz-step.is-active{display:block;animation:quizIn .3s ease}
@keyframes quizIn{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}
.quiz-options{display:grid;gap:10px;margin-top:6px}
.quiz-option{
  text-align:left;background:#fffdf8;border:1.5px solid #ddd3bd;border-radius:11px;
  padding:11px 14px;font-family:'Open Sans',sans-serif;font-size:15.5px;font-weight:600;color:var(--text-dark);
  cursor:pointer;transition:border .15s, background .15s, transform .12s;
  display:flex;align-items:center;gap:12px;
}
.quiz-option-icon{
  flex:0 0 34px;width:34px;height:34px;border-radius:50%;
  border:1.5px solid rgba(169,133,63,.4);background:rgba(196,161,92,.1);
  display:flex;align-items:center;justify-content:center;color:var(--gold-deep);
  transition:border-color .15s, background .15s;
}
.quiz-option-icon svg{width:18px;height:18px}
.quiz-option-text{flex:1}
.quiz-option:hover .quiz-option-icon{border-color:var(--gold-deep);background:rgba(196,161,92,.2)}
.quiz-option:after{content:"→";color:var(--gold-deep);font-weight:800;opacity:0;transform:translateX(-6px);transition:.15s}
.quiz-option:hover{border-color:var(--gold);background:#fbf5e7;transform:translateX(2px)}
.quiz-option:hover:after{opacity:1;transform:translateX(0)}
.quiz-back{background:none;border:0;color:var(--muted-dark);font-weight:700;font-size:14px;cursor:pointer;padding:0;margin-bottom:6px}
.quiz-back:hover{color:var(--text-dark)}
.quiz-chosen{background:#efe7d5;color:var(--gold-deep);font-weight:700;font-size:14px;padding:9px 13px;border-radius:9px;margin-bottom:16px}
.quiz-chosen:before{content:"Project: "}
.lead-title{font-size:25px;font-weight:900;color:var(--text-dark)}
.lead-subtitle{color:var(--muted-dark);font-size:14.5px;margin:4px 0 18px}
.lead-form .field{margin-bottom:13px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lead-form label{display:block;font-size:13px;font-weight:700;color:var(--text-dark);margin-bottom:5px}
.lead-form .opt{font-weight:400;color:var(--muted-dark)}
.lead-form input,.lead-form select,.lead-form textarea{
  width:100%;padding:12px 13px;border:1.5px solid #ddd3bd;border-radius:10px;
  font-size:15px;font-family:inherit;background:#fffdf8;color:var(--text-dark);transition:border .15s, box-shadow .15s;
}
.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus{
  outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(196,161,92,.25)
}
.form-fineprint{font-size:12px;color:var(--muted-dark);margin-top:12px;text-align:center}
.form-fineprint a{color:inherit;text-decoration:underline}
.fine-ico{width:12px;height:12px;vertical-align:-1.5px;color:var(--gold-deep)}
.form-success{background:#eef7ee;border:1.5px solid #5aa06a;color:#1c5a2c;padding:18px;border-radius:10px;text-align:center;font-weight:600}

/* TRUST BAR */
.trust-bar{background:var(--navy-2);padding:30px 0;border-top:1px solid rgba(196,161,92,.18);border-bottom:1px solid rgba(196,161,92,.18)}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;text-align:center}
.trust-item strong{display:block;font-family:'Montserrat',sans-serif;font-size:34px;font-weight:900;color:var(--gold-2)}
.trust-item span{font-size:14px;color:var(--muted);font-weight:600}

/* SECTIONS */
.section{padding:80px 0;background:var(--navy)}
.section-alt{background:var(--navy-2)}
.section-eyebrow{text-align:center;color:var(--gold-2);font-weight:800;letter-spacing:2px;text-transform:uppercase;font-size:13px}
.section-title{text-align:center;font-size:37px;font-weight:900;color:var(--white);margin-top:8px}
.section-lead{text-align:center;color:var(--muted);max-width:640px;margin:14px auto 44px;font-size:17px}

/* STRIP ARROWS (desktop) */
.strip-wrap{position:relative}
.strip-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:5;
  width:44px;height:44px;border-radius:50%;
  border:1.5px solid rgba(196,161,92,.5);
  background:rgba(11,20,36,.88);color:var(--gold-2);
  display:none;align-items:center;justify-content:center;cursor:pointer;
  box-shadow:0 8px 20px rgba(0,0,0,.45);
  transition:border-color .15s, background .15s, opacity .15s;
}
.strip-arrow svg{width:20px;height:20px}
.strip-prev{left:0}
.strip-next{right:0}
.strip-arrow:hover{border-color:var(--gold);background:var(--navy-3)}
.strip-arrow[disabled]{opacity:.3;cursor:default}
.strip-wrap.no-overflow .strip-arrow{display:none !important}
@media(min-width:921px){
  .strip-arrow{display:flex}
  /* side gutters keep the arrows off the cards' text */
  .strip-wrap{padding:0 58px}
}

/* SERVICES — compact swipeable strip, one row like the gallery */
.services-grid{
  display:flex;gap:18px;overflow-x:auto;padding:4px 4px 12px;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
}
.service-card{
  flex:0 0 272px;scroll-snap-align:center;
  background:var(--navy-2);border:1px solid rgba(196,161,92,.18);border-radius:var(--radius);padding:26px 22px;box-shadow:var(--shadow);transition:transform .18s, box-shadow .18s, border-color .18s
}
/* center the strip when it fits, scroll when it doesn't */
.service-card:first-child{margin-left:auto}
.service-card:last-child{margin-right:auto}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--gold)}
.service-icon{
  width:58px;height:58px;border-radius:50%;
  border:1.5px solid rgba(196,161,92,.45);
  display:flex;align-items:center;justify-content:center;
  color:var(--gold-2);margin-bottom:16px;
  background:rgba(196,161,92,.07);
  transition:border-color .18s, box-shadow .18s, background .18s;
}
.service-icon svg{width:28px;height:28px}
.service-card:hover .service-icon{
  border-color:var(--gold);background:rgba(196,161,92,.14);
  box-shadow:0 0 18px rgba(196,161,92,.25);
}
.service-card h3{font-size:21px;color:var(--white);margin-bottom:8px}
.service-card p{color:var(--muted);font-size:15px;margin-bottom:14px}
.link-cta{color:var(--gold-2);font-weight:800;font-family:'Montserrat',sans-serif;font-size:15px}
.link-cta:hover{color:var(--gold);text-decoration:underline}
.section-alt .service-card{background:var(--navy);border-color:rgba(196,161,92,.2)}
/* let the services strip outgrow the 1160px container on wide screens;
   1846px = 6 cards + gaps + strip padding, where everything fits uncut */
@media(min-width:1160px){
  #services .strip-wrap{
    width:min(100vw - 48px, 1846px);
    margin-left:calc((100% - min(100vw - 48px, 1846px))/2);
  }
}

/* BEFORE / AFTER SLIDER */
.ba-caption{
  text-align:center;font-family:'Montserrat',sans-serif;font-weight:800;
  font-size:20px;color:var(--gold-2);margin:0 auto 16px;letter-spacing:.3px;
}
.ba-slider + .ba-caption{margin-top:46px}
.ba-slider{
  position:relative;max-width:940px;margin:0 auto 46px;
  border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow-lg);border:1px solid rgba(196,161,92,.3);
  user-select:none;-webkit-user-select:none;
  aspect-ratio:16/9;background:var(--navy-2);
}
.ba-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba-left-wrap{
  position:absolute;inset:0;overflow:hidden;
  /* shows the BEFORE photo on the left of the divider; width driven by --ba-pos */
  clip-path:inset(0 calc(100% - var(--ba-pos,50%)) 0 0);
}
.ba-handle{
  position:absolute;top:0;bottom:0;left:var(--ba-pos,50%);width:3px;
  background:linear-gradient(180deg,var(--gold-2),var(--gold));
  transform:translateX(-50%);pointer-events:none;
  box-shadow:0 0 14px rgba(196,161,92,.6);
}
.ba-handle span{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:46px;height:46px;border-radius:50%;
  background:linear-gradient(180deg,var(--gold-2),var(--gold));color:#1a1305;
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:15px;letter-spacing:-2px;
  box-shadow:0 6px 18px rgba(0,0,0,.45);
}
.ba-label{
  position:absolute;top:14px;z-index:2;pointer-events:none;
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:13px;
  letter-spacing:1.5px;text-transform:uppercase;
  padding:6px 14px;border-radius:999px;color:#fff;
  background:rgba(10,20,36,.72);border:1px solid rgba(196,161,92,.5);
}
.ba-label-before{left:14px}
.ba-label-after{right:14px;background:rgba(169,133,63,.85);color:#fff}
.ba-range{
  position:absolute;inset:0;width:100%;height:100%;margin:0;
  opacity:0;cursor:ew-resize;-webkit-appearance:none;appearance:none;
}

/* GALLERY — compact thumbnail strip; tap a photo to view it full-screen */
.gallery{
  display:flex;gap:14px;overflow-x:auto;padding:4px 4px 10px;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
}
.gallery-photo{
  height:200px;aspect-ratio:4/3;width:auto;flex:0 0 auto;
  object-fit:cover;border-radius:var(--radius);cursor:pointer;
  scroll-snap-align:center;
  box-shadow:var(--shadow);transition:transform .2s, box-shadow .2s;
  border:1px solid rgba(196,161,92,.18);
}
/* center the strip when it fits, scroll when it doesn't */
.gallery-photo:first-child{margin-left:auto}
.gallery-photo:last-child{margin-right:auto}
.gallery-photo:hover{transform:translateY(-4px) scale(1.015);box-shadow:var(--shadow-lg)}

/* GALLERY PAGE — full photo grid on gallery.html */
.gallery-page-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;
}
.gallery-page-grid .gallery-photo{
  width:100%;height:auto;aspect-ratio:4/3;margin:0;
}

/* LIGHTBOX */
.lightbox{
  position:fixed;inset:0;z-index:110;background:rgba(6,11,20,.93);
  display:flex;align-items:center;justify-content:center;padding:26px;
  animation:fadeIn .2s ease;
}
.lightbox[hidden]{display:none}
.lightbox img{
  max-width:100%;max-height:88vh;border-radius:12px;
  box-shadow:0 30px 80px rgba(0,0,0,.7);border:1px solid rgba(196,161,92,.3);
}
.lightbox-close{
  position:absolute;top:14px;right:20px;background:none;border:0;
  font-size:40px;line-height:1;color:#cbd6ea;cursor:pointer;z-index:1;
}
.lightbox-close:hover{color:var(--gold-2)}

/* WHY US */
.why-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.why-grid .section-title,.why-grid .section-eyebrow{text-align:left}
.why-list{list-style:none;margin:24px 0 30px}
.why-list li{position:relative;padding-left:34px;margin-bottom:16px;color:var(--muted);font-size:16px}
.why-list li:before{content:"✔";position:absolute;left:0;top:0;color:#1a1305;background:linear-gradient(180deg,var(--gold-2),var(--gold));width:23px;height:23px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}
.why-list strong{color:var(--white)}
.why-callout{background:linear-gradient(135deg,var(--navy-3),var(--navy-2));border:1px solid rgba(196,161,92,.3);border-radius:var(--radius);padding:40px 34px;color:#d6deed;box-shadow:var(--shadow-lg)}
.big-quote{font-family:'Montserrat',sans-serif;font-size:26px;font-weight:800;color:var(--gold-2);margin-bottom:14px;line-height:1.3}

/* GET ESTIMATE SECTION */
.quote-section{border-top:1px solid rgba(196,161,92,.18);border-bottom:1px solid rgba(196,161,92,.18)}

/* REVIEWS — compact swipeable strip */
.reviews-grid{
  display:flex;gap:18px;overflow-x:auto;padding:4px 4px 12px;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
}
.review{
  flex:0 0 320px;scroll-snap-align:center;
  background:var(--navy-2);border-radius:var(--radius);padding:26px 24px;box-shadow:var(--shadow);border:1px solid rgba(196,161,92,.18)
}
.review:first-child{margin-left:auto}
.review:last-child{margin-right:auto}
.stars{color:var(--gold);font-size:19px;letter-spacing:2px;margin-bottom:12px}
.review p{font-size:15.5px;color:var(--text);margin-bottom:14px;font-style:italic}
.review cite{font-weight:700;color:var(--gold-2);font-style:normal;font-size:14.5px}

/* FINAL CTA */
.final-cta{background:linear-gradient(135deg,var(--navy-deep),var(--navy-2));color:#fff;text-align:center;padding:76px 0;border-top:1px solid rgba(196,161,92,.25)}
.final-cta h2{font-size:37px;font-weight:900;color:var(--white)}
.final-cta p{color:#c4cede;font-size:18px;margin:14px 0 30px}

/* FOOTER */
.site-footer{background:var(--navy-deep);color:#93a2bd;padding:56px 0 0;border-top:1px solid rgba(196,161,92,.2)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:34px}
.footer-mark{height:66px;width:auto;margin-bottom:14px}
.footer-brand{font-family:'Montserrat',sans-serif;font-weight:900;font-size:26px;letter-spacing:.5px;color:#fff;margin-bottom:4px}
.footer-brand span{color:var(--gold-2)}
.footer-tag{font-family:'Montserrat',sans-serif;font-weight:600;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.site-footer h4{color:var(--gold-2);font-size:16px;margin-bottom:12px}
.site-footer p{font-size:14.5px;margin-bottom:8px}
.footer-line,.footer-line a{display:flex;align-items:center;gap:8px}
.f-ico{width:15px;height:15px;flex:0 0 auto;color:var(--gold-2)}
.footer-license{font-size:13px;color:#aebbcf;margin-bottom:4px}
.footer-license:first-of-type{margin-top:12px;padding-top:12px;border-top:1px solid rgba(196,161,92,.2)}
.footer-license strong{color:var(--gold-2);font-weight:700}
.site-footer a:hover{color:var(--gold-2)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);margin-top:40px;padding-top:18px;padding-bottom:24px;font-size:13px;text-align:center}
.footer-privacy{text-decoration:underline}
.footer-privacy:hover{color:var(--gold-2)}

/* STICKY MOBILE BAR */
.mobile-bar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:60;box-shadow:0 -4px 20px rgba(0,0,0,.5)}
.mobile-bar a{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;padding:15px;font-family:'Montserrat',sans-serif;font-weight:800;font-size:16px}
.mobile-bar-call{background:var(--navy-2);color:var(--gold-2)}
.mobile-bar-quote{background:linear-gradient(180deg,var(--gold-2),var(--gold));color:#1a1305}

/* FLOATING TEXT US BUTTON */
.text-us{
  position:fixed;right:20px;bottom:24px;z-index:55;
  display:inline-flex;align-items:center;gap:9px;
  background:var(--navy-2);color:var(--gold-2);font-family:'Montserrat',sans-serif;font-weight:800;
  padding:13px 20px;border-radius:999px;box-shadow:0 10px 26px rgba(0,0,0,.5);
  border:1.5px solid var(--gold);
  transition:transform .15s, box-shadow .15s;
}
.text-us:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(196,161,92,.4)}
.text-us-icon{display:flex;align-items:center}
.text-us-icon svg{width:18px;height:18px}

/* EXIT-INTENT MODAL */
.modal-overlay{
  position:fixed;inset:0;z-index:100;background:rgba(6,11,20,.78);
  display:flex;align-items:center;justify-content:center;padding:20px;
  animation:fadeIn .25s ease;
}
.modal-overlay[hidden]{display:none}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal{
  background:var(--cream);border-radius:18px;max-width:440px;width:100%;
  padding:40px 32px 30px;text-align:center;position:relative;
  box-shadow:var(--shadow-lg);border-top:6px solid var(--gold);
  animation:popIn .3s cubic-bezier(.18,.89,.32,1.28);
}
@keyframes popIn{from{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}
.modal-close{position:absolute;top:12px;right:16px;background:none;border:0;font-size:30px;line-height:1;color:#9a8f79;cursor:pointer}
.modal-close:hover{color:var(--text-dark)}
.modal-badge{display:inline-block;background:#efe7d5;color:var(--gold-deep);font-weight:800;font-size:13px;padding:6px 14px;border-radius:999px;margin-bottom:14px;text-transform:uppercase;letter-spacing:.5px}
.modal h2{font-size:30px;font-weight:900;color:var(--text-dark);margin-bottom:12px}
.modal p{color:var(--muted-dark);font-size:16px;margin-bottom:20px}
.modal-cta{margin-bottom:12px}
.modal-phone{display:block;font-weight:700;color:var(--text-dark);margin-bottom:14px}
.modal-phone:hover{text-decoration:underline}
.modal-fine{font-size:12px;color:#9a8f79;margin-bottom:0}

/* RESPONSIVE */
@media(max-width:920px){
  .why-grid{grid-template-columns:1fr;gap:34px}
  .hero h1{font-size:40px}
  .nav{display:none}
  .header-phone{display:flex}
  .menu-toggle{display:block}
  .nav.open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--navy-2);padding:18px 22px;gap:14px;box-shadow:0 10px 24px rgba(0,0,0,.5);border-bottom:1px solid rgba(196,161,92,.25)}
  .nav.open a{color:var(--text)}
}
@media(max-width:620px){
  .hero{padding:64px 0 72px}
  .hero h1{font-size:32px}
  .section{padding:56px 0}
  .section-title,.final-cta h2{font-size:28px}
  .trust-grid{grid-template-columns:repeat(2,1fr);gap:24px 12px}
  .gallery-photo{height:140px}
  .service-card{flex-basis:244px;padding:22px 20px}
  .review{flex-basis:282px}
  .field-row{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  /* Compact header: smaller brand, icon-only phone button — everything on one straight line */
  .brand-mark{height:36px}
  .brand-word{font-size:16.5px}
  .brand{gap:9px}
  .header-inner{gap:12px}
  .header-phone{
    width:40px;height:40px;justify-content:center;gap:0;flex:0 0 40px;
    border:1.5px solid rgba(196,161,92,.5);border-radius:50%;
    background:rgba(196,161,92,.1);
  }
  .header-phone-num{display:none}
  .mobile-bar{display:flex}
  body{padding-bottom:54px}
  .text-us{bottom:66px;right:14px;padding:11px 16px}
  .text-us-label{display:none}
}

/* SCROLL REVEAL — headings, cards, and photos drift up gently the first
   time they enter the viewport. Classes are applied by script.js, and only
   when the visitor hasn't asked for reduced motion. Uses an animation (not a
   transition) so it never interferes with each element's own hover effects. */
.reveal{opacity:0}
.reveal-in{opacity:1;animation:revealUp .6s ease}
@keyframes revealUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* FAQ — quiet accordions that match the card language of the site */
.faq-list{max-width:760px;margin:0 auto;display:grid;gap:12px}
.faq-list details{
  background:var(--navy);border:1px solid rgba(196,161,92,.18);
  border-radius:var(--radius);padding:18px 22px;box-shadow:var(--shadow);
  transition:border-color .18s;
}
.faq-list details[open],.faq-list details:hover{border-color:rgba(196,161,92,.45)}
.faq-list summary{
  cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:14px;
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:16.5px;color:var(--white);
}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:after{content:"+";color:var(--gold-2);font-size:22px;font-weight:700;line-height:1;transition:transform .2s}
.faq-list details[open] summary:after{transform:rotate(45deg)}
.faq-list details p{color:var(--muted);font-size:15.5px;margin-top:10px}
