/* ============================================================
   Prospera Home Solutions — UX/UI Luxury Refinement V9
   Global polish layer: responsive header, modal, cards, hero,
   accessibility, spacing and premium interaction states.
============================================================ */
:root{
  --container: min(1540px, calc(100vw - clamp(32px, 6vw, 120px)));
  --header-height: clamp(74px, 5.6vw, 94px);
  --luxury-navy:#051F2A;
  --luxury-navy-2:#082B3B;
  --luxury-copper:#E08A5E;
  --luxury-copper-dark:#B9633D;
  --luxury-cream:#FBFAF7;
  --luxury-line:rgba(10,54,72,.12);
  --luxury-shadow:0 28px 80px rgba(5,31,42,.14);
  --luxury-shadow-soft:0 16px 44px rgba(5,31,42,.09);
  --luxury-ease:cubic-bezier(.2,.8,.2,1);
}
html{scroll-padding-top:calc(var(--header-height) + 18px);}
body{
  background:
    radial-gradient(circle at 8% 8%, rgba(224,138,94,.075), transparent 28rem),
    radial-gradient(circle at 92% 0%, rgba(10,54,72,.08), transparent 34rem),
    var(--off-white, #F8FAFC);
}
body.menu-open,
body.services-modal-open{overscroll-behavior:contain;}
.container,
.header-inner,
.hero .container,
.section-padding > .container,
footer .container{max-width:var(--container)!important;}
main,section{position:relative;}
section[id]{scroll-margin-top:calc(var(--header-height) + 18px);}
a,button,.btn,.ps-card,.service-card,.mega-menu-service-link,.services-catalog-link{transition:background-color .24s var(--luxury-ease), color .24s var(--luxury-ease), border-color .24s var(--luxury-ease), box-shadow .24s var(--luxury-ease), transform .24s var(--luxury-ease), opacity .24s var(--luxury-ease);} 
img{height:auto;content-visibility:auto;}
img[loading="lazy"]{background:linear-gradient(135deg, rgba(5,31,42,.045), rgba(224,138,94,.055));}

/* Header / menu */
.site-header{
  height:var(--header-height)!important;
  isolation:isolate;
  backdrop-filter:saturate(148%) blur(18px)!important;
  -webkit-backdrop-filter:saturate(148%) blur(18px)!important;
  border-bottom:1px solid rgba(255,255,255,.10)!important;
}
.site-header::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-1px;height:1px;
  background:linear-gradient(90deg, transparent, rgba(224,138,94,.36), transparent);
  opacity:.8;
  pointer-events:none;
}
.header-inner,.prospera-v6-header-inner{min-height:var(--header-height)!important;gap:clamp(14px,2vw,30px)!important;}
.header-logo{flex:0 0 auto;}
.header-logo img{width:clamp(154px, 12vw, 226px)!important;max-height:calc(var(--header-height) - 22px)!important;object-fit:contain!important;}
.header-nav{gap:clamp(8px,1vw,18px)!important;align-items:center!important;}
.header-nav > li > a,
.nav-dropdown-link{
  min-height:44px!important;
  display:inline-flex!important;
  align-items:center!important;
  white-space:nowrap!important;
  letter-spacing:.01em!important;
}
.header-nav a.active,
.header-nav a[aria-current="page"],
.header-nav a[aria-current="true"]{color:var(--copper-primary,#E08A5E)!important;}
.nav-dropdown{position:relative!important;}
.nav-dropdown-toggle{min-width:38px!important;min-height:38px!important;border-radius:999px!important;}
.services-mega-menu{
  width:min(96vw, 1380px)!important;
  max-height:min(78vh, 720px)!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
  border:1px solid rgba(255,255,255,.12)!important;
  box-shadow:0 38px 120px rgba(0,0,0,.30)!important;
  transform-origin:top center!important;
}
.nav-dropdown.mega-open .services-mega-menu,
.nav-dropdown:focus-within .services-mega-menu{opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:translateX(-50%) translateY(0) scale(1)!important;}
.mega-menu-inner{padding:clamp(18px,2.2vw,34px)!important;}
.mega-menu-categories,.prospera-v6-mega-grid{display:grid!important;grid-template-columns:repeat(auto-fit, minmax(min(260px,100%),1fr))!important;gap:clamp(14px,1.4vw,22px)!important;}
.mega-menu-category{border-radius:22px!important;background:linear-gradient(180deg, rgba(255,255,255,.095), rgba(255,255,255,.045))!important;border:1px solid rgba(255,255,255,.115)!important;box-shadow:0 16px 34px rgba(0,0,0,.12)!important;}
.mega-menu-service-link{border-radius:16px!important;min-height:64px!important;}
.mega-menu-view-all-link,.mobile-view-all-shortcut{font-weight:800!important;color:var(--copper-primary,#E08A5E)!important;}

/* Mobile drawer */
.mobile-nav-overlay{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
.mobile-nav,.prospera-v6-mobile-nav{
  width:min(440px, 92vw)!important;
  max-width:92vw!important;
  height:100dvh!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  box-shadow:-34px 0 90px rgba(0,0,0,.42)!important;
}
.mobile-nav-top{flex:0 0 auto!important;}
.mobile-nav-links{flex:1 1 auto!important;overflow:auto!important;overscroll-behavior:contain!important;padding-bottom:24px!important;}
.mobile-nav-link,.mobile-service-shortcut{min-height:48px!important;border-radius:16px!important;}
.mobile-nav-footer{flex:0 0 auto!important;}
.hamburger{width:48px!important;height:48px!important;border-radius:999px!important;}

/* Hero and page hero */
.hero{min-height:clamp(680px, 92svh, 960px)!important;padding-top:calc(var(--header-height) + clamp(34px,5vw,78px))!important;display:flex!important;align-items:center!important;}
.page-hero{min-height:clamp(520px, 70svh, 760px)!important;padding-top:calc(var(--header-height) + clamp(44px,6vw,96px))!important;}
.hero h1,.page-hero h1{font-size:clamp(2.35rem, 5.4vw, 6.35rem)!important;line-height:.98!important;letter-spacing:-.065em!important;text-wrap:balance;max-width:14ch;}
.hero p,.page-hero p,.section-copy{font-size:clamp(1rem, 1.05vw, 1.2rem)!important;line-height:1.72!important;text-wrap:pretty;}
.hero-btns,.btn-row{gap:clamp(12px,1.4vw,20px)!important;}
.btn{min-height:48px!important;border-radius:999px!important;font-weight:800!important;letter-spacing:.03em!important;}
.btn-primary{box-shadow:0 16px 34px rgba(224,138,94,.22)!important;}
.btn-primary:hover{box-shadow:0 22px 48px rgba(224,138,94,.32)!important;}
.hero-card,.stat-card{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);}

/* Section rhythm */
.section-padding{padding-block:clamp(72px, 8vw, 144px)!important;}
.section-kicker{letter-spacing:.14em!important;}
.section-title{font-size:clamp(2rem, 3.8vw, 4.65rem)!important;line-height:1.02!important;text-wrap:balance;}
.section-copy{max-width:76ch;margin-inline:auto;}
.services-section::before,.reviews-section::before,.locations-section::before,.contact-section::before{content:"";position:absolute;left:50%;top:0;width:min(1120px,86vw);height:1px;transform:translateX(-50%);background:linear-gradient(90deg, transparent, rgba(10,54,72,.16), rgba(224,138,94,.25), transparent);}

/* Services grid / cards */
.services-layout,.services-content{align-items:start!important;}
.ps-grid,.services-grid,.cards-grid{display:grid!important;grid-template-columns:repeat(auto-fit, minmax(min(265px,100%),1fr))!important;gap:clamp(18px,2vw,28px)!important;}
.ps-card,.service-card,.value-card,.process-card,.review-card,.location-card,.team-card,.feature-card{
  border:1px solid rgba(10,54,72,.10)!important;
  border-radius:24px!important;
  box-shadow:var(--luxury-shadow-soft)!important;
  overflow:hidden!important;
  transform:translateZ(0);
}
.ps-card:hover,.service-card:hover,.value-card:hover,.process-card:hover,.review-card:hover,.location-card:hover,.team-card:hover,.feature-card:hover{
  transform:translateY(-6px)!important;
  box-shadow:var(--luxury-shadow)!important;
  border-color:rgba(224,138,94,.35)!important;
}
.ps-card-title,.service-card h3,.value-card h3,.process-card h3{text-wrap:balance;}
.sidebar-btn{border-radius:20px!important;min-height:76px!important;}
.sidebar-btn.active{box-shadow:0 18px 44px rgba(10,54,72,.13)!important;}
.services-all-categories-cta{display:flex!important;justify-content:center!important;margin-top:clamp(28px,3.2vw,48px)!important;}
.services-modal-trigger{
  min-height:58px!important;
  padding:0 clamp(18px,2.6vw,34px)!important;
  border-radius:999px!important;
  box-shadow:0 18px 50px rgba(224,138,94,.20), inset 0 1px 0 rgba(255,255,255,.22)!important;
  isolation:isolate;
}
.services-modal-trigger::before{content:"";position:absolute;inset:1px;border-radius:inherit;background:linear-gradient(135deg, rgba(255,255,255,.16), transparent 40%, rgba(255,255,255,.10));pointer-events:none;}

/* Services modal */
.services-catalog-modal{z-index:99999!important;padding:clamp(12px,2vw,32px)!important;}
.services-catalog-backdrop{background:rgba(5,31,42,.72)!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);}
.services-catalog-dialog{
  width:min(1240px,96vw)!important;
  max-height:min(88dvh, 860px)!important;
  border-radius:30px!important;
  overflow:hidden!important;
  border:1px solid rgba(255,255,255,.16)!important;
  box-shadow:0 42px 130px rgba(0,0,0,.44)!important;
}
.services-catalog-head{position:sticky!important;top:0!important;z-index:2!important;background:linear-gradient(135deg, rgba(5,31,42,.98), rgba(10,54,72,.96))!important;}
.services-catalog-head h3{font-size:clamp(1.55rem,3vw,3.1rem)!important;line-height:1.04!important;text-wrap:balance;}
.services-catalog-body{max-height:calc(min(88dvh, 860px) - 164px)!important;overflow:auto!important;overscroll-behavior:contain!important;background:linear-gradient(180deg,#FBFAF7,#F5F7F8)!important;}
.services-catalog-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))!important;gap:clamp(14px,1.6vw,22px)!important;}
.services-catalog-group{min-height:100%!important;border-radius:24px!important;border:1px solid rgba(10,54,72,.10)!important;box-shadow:0 14px 36px rgba(5,31,42,.08)!important;}
.services-catalog-link{min-height:48px!important;border-radius:15px!important;}
.services-catalog-category-link{border-radius:999px!important;}
.services-catalog-close{border-radius:999px!important;}

/* Forms / footer */
input,select,textarea{font-size:16px!important;}
.contact-form-card,.form-card{border-radius:28px!important;box-shadow:var(--luxury-shadow)!important;}
.form-group input,.form-group select,.form-group textarea{border-radius:16px!important;}
footer{position:relative;overflow:hidden;}
footer::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 14% 0%, rgba(224,138,94,.14), transparent 28rem), radial-gradient(circle at 92% 8%, rgba(255,255,255,.06), transparent 24rem);pointer-events:none;}
footer .container{position:relative;z-index:1;}

/* Accessibility */
:focus-visible{outline:3px solid rgba(224,138,94,.62)!important;outline-offset:4px!important;}
.skip-link{position:absolute;left:14px;top:14px;z-index:100000;transform:translateY(-140%);background:#fff;color:#051F2A;padding:12px 16px;border-radius:999px;font-weight:800;box-shadow:0 12px 30px rgba(0,0,0,.22);}
.skip-link:focus{transform:translateY(0);}

/* Mobile */
@media (max-width: 1180px){
  .desktop-nav{display:none!important;}
  .mobile-toggle,.hamburger{display:inline-flex!important;}
  .hero{min-height:auto!important;padding-bottom:clamp(54px,8vw,90px)!important;}
  .hero-grid{grid-template-columns:1fr!important;gap:clamp(28px,6vw,54px)!important;}
  .hero h1,.page-hero h1{max-width:100%;}
}
@media (max-width: 768px){
  :root{--container:calc(100vw - 32px);} 
  .site-header .container{width:calc(100vw - 28px)!important;}
  .header-logo img{width:clamp(138px,42vw,180px)!important;}
  .hero,.page-hero{padding-top:calc(var(--header-height) + 28px)!important;}
  .hero h1,.page-hero h1{font-size:clamp(2.15rem, 13vw, 3.8rem)!important;line-height:1.02!important;letter-spacing:-.055em!important;}
  .hero-btns,.btn-row{flex-direction:column!important;align-items:stretch!important;}
  .btn{width:100%!important;justify-content:center!important;}
  .section-padding{padding-block:clamp(56px,14vw,88px)!important;}
  .section-title{font-size:clamp(1.85rem,9.5vw,3rem)!important;}
  .services-layout{grid-template-columns:1fr!important;}
  .services-sidebar{display:flex!important;overflow-x:auto!important;gap:10px!important;padding-bottom:10px!important;scroll-snap-type:x mandatory!important;}
  .sidebar-btn{flex:0 0 min(220px,72vw)!important;scroll-snap-align:start!important;min-height:68px!important;}
  .services-catalog-modal{align-items:flex-end!important;padding:0!important;}
  .services-catalog-dialog{width:100vw!important;max-height:92dvh!important;border-radius:26px 26px 0 0!important;}
  .services-catalog-body{max-height:calc(92dvh - 156px)!important;padding:16px!important;}
  .services-catalog-grid{grid-template-columns:1fr!important;}
  .services-catalog-head{padding:22px 18px!important;}
  .services-modal-trigger{width:100%!important;}
}
@media (min-width: 1800px){
  :root{--container:min(1720px, calc(100vw - 168px));}
  .hero h1{font-size:clamp(5.5rem, 5vw, 7.4rem)!important;}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important;}
}


/* ============================================================
   PROSPERA V10 — COMPLETE CONTENT MENU PATCH
   Desktop mega menu, mobile drawer, and services catalog now use
   the complete content map with every existing service page linked.
============================================================ */
@media (min-width: 1181px) {
  .services-mega-menu { width:min(1440px, calc(100vw - 32px))!important; left:50%!important; transform:translateX(-50%) translateY(10px)!important; }
  .nav-dropdown.mega-open .services-mega-menu,
  .nav-dropdown:focus-within .services-mega-menu { transform:translateX(-50%) translateY(0)!important; }
  .mega-menu-inner,
  .prospera-v6-mega-inner {
    max-width:1440px!important;
    max-height:calc(100dvh - var(--header-height, 92px) - 28px)!important;
    overflow:auto!important;
    overscroll-behavior:contain!important;
    padding:clamp(18px, 1.8vw, 28px)!important;
    gap:clamp(14px, 1.4vw, 22px)!important;
    border-radius:0 0 26px 26px!important;
  }
  .mega-menu-categories,
  .prospera-v6-mega-grid {
    display:grid!important;
    grid-template-columns:repeat(3, minmax(0, 1fr))!important;
    gap:clamp(10px, 1vw, 16px)!important;
    padding-bottom:0!important;
    border-bottom:0!important;
  }
  .mega-menu-category {
    border:1px solid rgba(255,255,255,.085)!important;
    border-radius:18px!important;
    padding:clamp(12px, 1vw, 16px)!important;
    background:linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.022))!important;
    min-width:0!important;
  }
  .mega-menu-category:hover { background:linear-gradient(180deg, rgba(224,138,94,.095), rgba(255,255,255,.026))!important; border-color:rgba(224,138,94,.20)!important; }
  .mega-menu-category-title { padding:0 0 8px!important; gap:10px!important; }
  .mega-menu-category-title > i:first-child { width:34px!important; height:34px!important; flex-basis:34px!important; border-radius:12px!important; }
  .mega-menu-category-title > span { font-size:clamp(.68rem, .62rem + .16vw, .80rem)!important; letter-spacing:.075em!important; }
  .mega-menu-column-subtitle { display:block!important; margin:0 0 10px 44px!important; max-width:none!important; color:rgba(255,255,255,.56)!important; font-size:.70rem!important; }
  .mega-menu-service-list { gap:4px!important; }
  .mega-menu-service-link { min-height:36px!important; padding:7px 8px!important; grid-template-columns:22px minmax(0,1fr) auto!important; border-radius:11px!important; }
  .mega-menu-service-link strong { font-size:clamp(.70rem, .66rem + .10vw, .78rem)!important; line-height:1.22!important; }
  .mega-menu-service-link span { display:block!important; font-size:.64rem!important; line-height:1.25!important; margin-top:1px!important; color:rgba(255,255,255,.46)!important; }
  .mega-menu-view-all-item { margin-top:5px!important; padding-top:6px!important; border-top:1px solid rgba(255,255,255,.075)!important; }
  .mega-menu-view-all-link { min-height:34px!important; border-radius:999px!important; background:rgba(224,138,94,.11)!important; border-color:rgba(224,138,94,.24)!important; color:var(--copper-primary,#E08A5E)!important; box-shadow:none!important; }
  .mega-menu-trust-strip { grid-template-columns:minmax(260px,1.25fr) repeat(3,minmax(120px,.55fr)) minmax(230px,.95fr)!important; border-radius:18px!important; }
  .mega-trust-feature,.mega-trust-item,.mega-menu-cta { min-height:64px!important; padding:12px 14px!important; text-decoration:none!important; }
}
@media (min-width:1181px) and (max-width:1360px) {
  .services-mega-menu { width:calc(100vw - 24px)!important; }
  .mega-menu-categories,.prospera-v6-mega-grid { grid-template-columns:repeat(3, minmax(0, 1fr))!important; }
  .mega-menu-column-subtitle,.mega-menu-service-link span { display:none!important; }
  .mega-menu-service-link strong { font-size:.69rem!important; }
  .mega-menu-trust-strip { grid-template-columns:1fr repeat(3,.55fr) .8fr!important; }
  .mega-trust-feature span,.mega-trust-item span,.mega-menu-cta span { display:none!important; }
}
@media (min-width:1700px) {
  .services-mega-menu { width:min(1580px, calc(100vw - 64px))!important; }
  .mega-menu-inner,.prospera-v6-mega-inner { max-width:1580px!important; }
  .mega-menu-categories,.prospera-v6-mega-grid { grid-template-columns:repeat(3, minmax(0, 1fr))!important; }
}
.mobile-services-panel { max-height:none!important; }
.mobile-service-group summary { min-height:50px!important; }
.mobile-services-grid { grid-template-columns:1fr!important; }
@media (max-width:480px) {
  .mobile-nav { width:100vw!important; max-width:100vw!important; }
  .mobile-nav-links { padding-inline:12px!important; }
  .mobile-service-shortcut { font-size:.84rem!important; }
}
.services-catalog-grid { grid-template-columns:repeat(auto-fit, minmax(min(310px, 100%), 1fr))!important; }
.services-catalog-group[data-menu-category="carpentry"] .services-catalog-links { gap:6px!important; }
