/* ============================================================
   Modern Vision Painting — shared styles
   Brand: near-black #1A1A1A / brass-gold #C0894B / cream #F4F0E8
   Fonts: Montserrat (display) + Inter (body), Lora (article prose)
   ============================================================ */

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:'Inter',system-ui,-apple-system,sans-serif;color:#2A2A2A;background:#fff;-webkit-font-smoothing:antialiased;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;}
::selection{background:#C0894B;color:#1A1A1A;}
::-webkit-scrollbar{height:8px;width:8px;}
::-webkit-scrollbar-thumb{background:#C0894B;border-radius:8px;}

@keyframes mvpKenBurns{0%{transform:scale(1) translate(0,0);}100%{transform:scale(1.08) translate(1.5%,-1%);}}
@keyframes mvpSlideDown{from{opacity:0;transform:translateY(-14px);}to{opacity:1;transform:none;}}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
}

/* ---------- Header / responsive navigation ---------- */
.mvp-desktop-nav{display:flex;align-items:center;gap:24px;}
.mvp-hamburger{display:none;background:none;border:1px solid rgba(255,255,255,.25);border-radius:6px;padding:9px 11px;cursor:pointer;color:#fff;align-items:center;justify-content:center;}
.mvp-mobile-menu{display:none;position:absolute;top:100%;left:0;right:0;background:#1A1A1A;border-top:1px solid rgba(255,255,255,.07);padding:8px 24px 22px;flex-direction:column;box-shadow:0 24px 34px rgba(0,0,0,.45);}
.mvp-mobile-menu.open{display:flex;animation:mvpSlideDown .3s cubic-bezier(.16,.84,.34,1);}

@media (max-width:959px){
  .mvp-desktop-nav{display:none;}
  .mvp-hamburger{display:inline-flex;}
}
@media (min-width:960px){
  .mvp-mobile-menu{display:none !important;}
}

/* Desktop nav links — animated gold underline */
.nav-link{
  font-family:'Montserrat',sans-serif;font-weight:600;font-size:12px;letter-spacing:1.2px;color:#E8E8E8;
  padding-bottom:4px;background-image:linear-gradient(#C0894B,#C0894B);background-size:0% 2px;
  background-repeat:no-repeat;background-position:left bottom;transition:color .15s, background-size .25s;
}
.nav-link:hover{color:#C0894B;background-size:100% 2px;}
.nav-link.active{color:#C0894B;font-weight:700;background-size:100% 2px;}

/* ---------- Buttons ---------- */
.btn-gold{transition:all .22s cubic-bezier(.2,.7,.3,1);}
.btn-gold:hover{background:#A87538 !important;transform:translateY(-2px);box-shadow:0 12px 26px rgba(192,137,75,.4);}

.btn-outline{transition:all .15s;}
.btn-outline:hover{background:#fff !important;color:#1A1A1A !important;border-color:#fff !important;transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.3);}

.btn-dark{transition:all .15s;}
.btn-dark:hover{background:#000 !important;transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.3);}

/* ---------- Cards ---------- */
.card-lift{transition:transform .18s, box-shadow .18s;}
.card-lift:hover{transform:translateY(-4px);box-shadow:0 18px 38px rgba(0,0,0,.12);}
.card-feature{transition:box-shadow .2s;}
.card-feature:hover{box-shadow:0 22px 48px rgba(0,0,0,.13);}

/* ---------- Footer / social ---------- */
.footer-link{transition:color .15s;}
.footer-link:hover{color:#C0894B !important;}
.social-link{transition:all .15s;}
.social-link:hover{border-color:#C0894B !important;color:#C0894B !important;}
.terms-link{transition:color .15s;}
.terms-link:hover{color:#D9A566 !important;}

/* ---------- Gallery filter tabs ---------- */
.filter-tab{
  background:none;border:none;cursor:pointer;font-family:'Montserrat',sans-serif;font-weight:700;
  font-size:12.5px;letter-spacing:1.4px;padding:4px 0;transition:color .15s;color:#8A8577;
  border-bottom:2px solid transparent;
}
.filter-tab:hover{color:#A87538;}
.filter-tab.active{color:#A87538;border-bottom:2px solid #C0894B;}

/* ---------- Service-area city buttons ---------- */
.city-btn{
  display:flex;align-items:center;gap:9px;font-size:14px;padding:7px 10px;border:1px solid transparent;
  border-radius:7px;background:none;cursor:pointer;text-align:left;font-family:'Inter',sans-serif;
  line-height:1.2;transition:all .15s;color:#2A2A2A;
}
.city-btn:hover{background:#fff;border-color:#E3DED3;}
.city-btn.active{color:#A87538;font-weight:600;background:#fff;border-color:#E3DED3;box-shadow:0 4px 12px rgba(0,0,0,.05);}

/* ---------- Terms table-of-contents ---------- */
.toc-link{
  font-size:13px;line-height:1.35;color:#5A5A5A;padding:7px 0 7px 16px;margin-left:-2px;
  border-left:2px solid transparent;transition:all .15s;
}
.toc-link:hover{color:#A87538;border-left-color:#C0894B;}

/* ---------- Misc inline-link hover ---------- */
.link-gold{transition:color .15s;}
.link-gold:hover{color:#A87538 !important;}

/* ---------- Booking offer bar (all pages) ---------- */
.mvp-offer-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:60;
  background:#1A1A1A;border-top:2px solid #C0894B;
  box-shadow:0 -10px 30px rgba(0,0,0,.35);
  transform:translateY(110%);transition:transform .45s cubic-bezier(.16,.84,.34,1);
}
.mvp-offer-bar.show{transform:none;}
.mvp-offer-inner{
  max-width:1200px;margin:0 auto;padding:12px 52px 12px 20px;
  display:flex;align-items:center;justify-content:center;gap:10px 18px;flex-wrap:wrap;
}
.mvp-offer-chip{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:10px;letter-spacing:1.6px;
  text-transform:uppercase;color:#1A1A1A;background:#C0894B;border-radius:3px;padding:4px 8px;white-space:nowrap;
}
.mvp-offer-text{font-family:'Inter',sans-serif;font-size:14px;line-height:1.45;color:#EAEAEA;text-align:center;}
.mvp-offer-text strong{color:#E8B87D;font-weight:600;}
.mvp-offer-btn{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:12px;letter-spacing:1.2px;
  text-transform:uppercase;color:#1A1A1A;background:#C0894B;border-radius:5px;padding:11px 18px;
  white-space:nowrap;transition:background .15s,transform .15s;
}
.mvp-offer-btn:hover{background:#D09A5C;transform:translateY(-1px);}
.mvp-offer-close{
  position:absolute;top:50%;right:10px;transform:translateY(-50%);
  appearance:none;background:none;border:0;cursor:pointer;color:#9A9A9A;
  width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
}
.mvp-offer-close:hover{color:#fff;background:rgba(255,255,255,.08);}
.mvp-offer-close:focus-visible{outline:2px solid #C0894B;outline-offset:2px;}
@media (max-width:640px){
  .mvp-offer-inner{padding:10px 46px 12px 14px;gap:8px 12px;}
  .mvp-offer-text{font-size:13px;}
  .mvp-offer-btn{padding:10px 15px;font-size:11px;}
}
@media (prefers-reduced-motion: reduce){
  .mvp-offer-bar{transition:none;}
}

/* Offer note on the estimate form */
.mvp-form-offer{
  display:flex;gap:10px;align-items:flex-start;
  background:#FBF6EE;border:1px solid #E9D9BF;border-radius:8px;
  padding:12px 14px;margin:0 0 18px;
}
.mvp-form-offer svg{flex:0 0 auto;margin-top:1px;}
.mvp-form-offer p{font-size:13px;line-height:1.55;color:#5A5145;margin:0;}
.mvp-form-offer strong{color:#8A6A42;}


/* hidden must beat inline display (filter tabs on gallery + blog) */
[hidden]{display:none !important;}

/* ---------- Blog category chips ---------- */
.blog-chip{
  appearance:none;cursor:pointer;
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:11.5px;letter-spacing:1.4px;
  text-transform:uppercase;padding:8px 16px;border-radius:999px;
  border:1px solid #DAD2C2;color:#6B6355;background:#fff;
  transition:border-color .15s,color .15s,background .15s;
}
.blog-chip:hover{border-color:#C0894B;color:#1A1A1A;}
.blog-chip.active{border-color:#C0894B;color:#1A1A1A;background:#EBD9BE;}
.blog-chip:focus-visible{outline:2px solid #C0894B;outline-offset:2px;}


/* ---------- Stats bar: uniform single column on phones ---------- */
@media (max-width:719px){
  .stat-grid{row-gap:6px;padding-top:28px !important;padding-bottom:28px !important;}
  .stat-item{
    border-left:none !important;
    justify-content:flex-start !important;
    width:100%;max-width:320px;margin:0 auto;
    padding:12px 4px !important;
  }
  .stat-item svg{flex:0 0 34px;}
  .stat-item > div{max-width:none !important;}
}


/* ---------- GHL estimate form frame ----------
   form_embed.js sets the exact pixel height (as an inline style) once it
   measures the form, so there is no scrolling inside the box. These are
   only the pre-load / fallback heights used if that script is blocked;
   they are min-heights so the script can freely shrink the box to fit. */
.ghl-frame{width:100%;border:none;border-radius:6px;display:block;min-height:760px;}
@media (max-width:640px){
  .ghl-frame{min-height:900px;}
}

/* ---------- Welcome offer popup (modal) ---------- */
.mvp-popup-overlay{
  position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;
  padding:20px;background:rgba(15,14,13,.62);opacity:0;transition:opacity .3s ease;
}
.mvp-popup-overlay.show{opacity:1;}
.mvp-popup-card{
  position:relative;width:100%;max-width:400px;background:#1A1A1A;color:#fff;
  border:1px solid #2E2A24;border-top:3px solid #C0894B;border-radius:14px;
  padding:40px 30px 30px;text-align:center;box-shadow:0 30px 70px rgba(0,0,0,.5);
  transform:translateY(16px) scale(.97);transition:transform .3s cubic-bezier(.16,.84,.34,1);
}
.mvp-popup-overlay.show .mvp-popup-card{transform:none;}
.mvp-popup-close{
  position:absolute;top:12px;right:12px;appearance:none;background:none;border:0;cursor:pointer;
  color:#9A9A9A;width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
}
.mvp-popup-close:hover{color:#fff;background:rgba(255,255,255,.08);}
.mvp-popup-close:focus-visible,.mvp-popup-btn:focus-visible{outline:2px solid #C0894B;outline-offset:2px;}
.mvp-popup-chip{
  display:inline-block;font-family:'Montserrat',sans-serif;font-weight:700;font-size:10.5px;
  letter-spacing:1.8px;text-transform:uppercase;color:#1A1A1A;background:#C0894B;
  border-radius:3px;padding:5px 12px;margin-bottom:18px;
}
.mvp-popup-headline{
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:clamp(44px,12vw,58px);line-height:1;
  color:#E8B87D;letter-spacing:.5px;
}
.mvp-popup-sub{
  font-family:'Inter',sans-serif;font-size:15.5px;line-height:1.55;color:#DADADA;
  margin:14px auto 0;max-width:300px;
}
.mvp-popup-btn{
  display:block;margin:24px 0 0;background:#C0894B;color:#1A1A1A;
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;letter-spacing:1.2px;
  text-transform:uppercase;padding:15px 20px;border-radius:6px;transition:background .15s;
}
.mvp-popup-btn:hover{background:#D09A5C;}
.mvp-popup-fine{font-size:11.5px;color:#8A8A8A;margin-top:14px;letter-spacing:.2px;}
@media (prefers-reduced-motion: reduce){
  .mvp-popup-overlay,.mvp-popup-card{transition:none;}
}
