/* Small interactions that replace the homepage's React-only UI. */
.php-nav-item { position: relative; }
.php-dropdown { display: none; position: absolute; top: 100%; left: 0; width: 285px; padding-top: 8px; z-index: 60; }
.php-nav-item:hover .php-dropdown, .php-nav-item:focus-within .php-dropdown { display: block; }
.php-nav-item:hover > a, .php-nav-item:focus-within > a { background: #174A7E; color: white; }
.php-dropdown-panel { max-height: 72vh; overflow-y: auto; padding: 8px; border: 1px solid #e2e8f0; border-radius: 16px; background: rgba(255,255,255,.98); color: #0f172a; box-shadow: 0 20px 50px rgba(15,23,42,.18); }
.php-dropdown-panel::before { content: ''; display: block; height: 2px; margin: -8px -8px 8px; background: linear-gradient(90deg,#174A7E,#2D78B7,#174A7E); }
.php-dropdown-panel a { display: block; padding: 10px 14px; border-radius: 12px; font-size: 12px; font-weight: 700; text-transform: none; letter-spacing: normal; color: #334155; }
.php-dropdown-panel a:hover, .php-dropdown-panel a:focus-visible { background: #eff6ff; color: #174A7E; }
.php-mobile-menu[hidden] { display: none !important; }
.php-mobile-menu { display: none; max-height: 80vh; overflow-y: auto; padding: 16px 20px 24px; border-bottom: 1px solid #e2e8f0; background: #fff; box-shadow: 0 20px 40px rgba(15,23,42,.18); }
.php-mobile-menu > a, .php-mobile-menu summary { display: block; padding: 13px 16px; border-radius: 12px; color: #174A7E; font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .02em; cursor: pointer; }
.php-mobile-menu > a:hover, .php-mobile-menu summary:hover { background: #f1f5f9; }
.php-mobile-menu details { border-bottom: 1px solid #f1f5f9; }
.php-mobile-menu details a { display: block; margin: 2px 8px; padding: 9px 18px; border-radius: 8px; color: #475569; font-size: 12px; font-weight: 700; }
.php-mobile-menu details a:hover { background: #eff6ff; color: #174A7E; }
.php-mobile-menu summary::marker { color: #2D78B7; }
.php-service-map { width: 100%; height: 100%; min-height: 500px; background: #0f172a; }
.php-service-map .leaflet-container { width: 100%; height: 100%; }
.estimate-option { display: block; overflow: hidden; border: 2px solid #e2e8f0; border-radius: 18px; background: white; cursor: pointer; box-shadow: 0 12px 30px rgba(15,23,42,.05); }
.estimate-option:has(input:checked) { border-color: #245F94; box-shadow: 0 12px 30px rgba(36,95,148,.15); }
.estimate-option input { position: absolute; opacity: 0; }
.estimate-option img { display: block; width: 100%; height: 180px; object-fit: cover; }
.estimate-option span { display: block; padding: 20px; }
.estimate-option strong { display: block; color: #0f172a; font-size: 17px; }
.estimate-option small { display: block; margin-top: 8px; color: #64748b; line-height: 1.5; }
.estimate-field { color: #334155; font-size: 12px; font-weight: 800; }
.estimate-field input, .estimate-field select { display: block; width: 100%; margin-top: 8px; padding: 12px 14px; border: 1px solid #cbd5e1; border-radius: 10px; background: white; font-size: 14px; font-weight: 500; }
.estimate-field input:focus, .estimate-field select:focus { border-color: #245F94; outline: 2px solid #BFDBFE; }
#estimate-app { min-height: calc(100svh - 80px); }
.estimate-progress-bar { position: sticky; top: 0; z-index: 45; }
.estimate-progress-scroll { overflow-x: auto; scrollbar-width: none; }
.estimate-progress-scroll::-webkit-scrollbar { display: none; }
#estimate-progress { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); width: 100%; min-width: 460px; align-items: center; }
#estimate-progress span { position: relative; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 4px 2px 10px; border-bottom: 3px solid transparent; }
#estimate-progress span::before { content: attr(data-number); display: inline-flex; width: 34px; height: 34px; align-items: center; justify-content: center; flex: 0 0 34px; border: 2px solid #e2e8f0; border-radius: 999px; background: #fff; color: #94a3b8; font-size: 11px; }
#estimate-progress span[data-status="active"]::before { border-color: #245F94; background: #245F94; color: #fff; box-shadow: 0 8px 20px rgba(36,95,148,.25); }
#estimate-progress span[data-status="complete"]::before { border-color: #10b981; background: #10b981; color: #fff; }
.address-autocomplete-box { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 100; max-height: 260px; overflow-y: auto; border: 1px solid #e2e8f0; border-radius: 14px; background: #fff; padding: 5px; color: #334155; box-shadow: 0 15px 40px rgba(15,23,42,.2); }
.address-autocomplete-box[hidden] { display: none !important; }
.address-autocomplete-box button { display: block; width: 100%; padding: 11px 12px; border: 0; border-radius: 10px; background: transparent; color: #334155; text-align: left; font-size: 12px; font-weight: 700; }
.address-autocomplete-box button:hover, .address-autocomplete-box button:focus { background: #EFF6FF; color: #1E4F7A; outline: none; }
.address-autocomplete-box small { display: block; border-top: 1px solid #f1f5f9; padding: 7px 12px 3px; color: #94a3b8; font-size: 9px; }
.php-site-scrolled .php-utility-bar { display: block; }
.php-utility-bar { display:block !important; min-height:46px !important; background:#062b50 !important; color:#fff !important; border-color:#174a7e !important; }
.php-utility-bar > div { min-height:46px !important; padding-top:0 !important; padding-bottom:0 !important; }
.php-utility-bar > div > div { min-height:46px !important; }
.php-utility-bar .ml-auto { margin-left:0 !important; }
@media (min-width:1280px) { .php-utility-bar p.hidden { display:block !important; } }
.php-main-bar { background: #fff !important; }
.php-site-scrolled .php-main-bar { background: #fff !important; border-color: #e2e8f0 !important; backdrop-filter: none !important; box-shadow: 0 4px 14px rgba(15,23,42,.08); }
.php-site-scrolled > div:nth-child(2) nav { color: #0f172a; }
.php-site-scrolled > div:nth-child(2) nav > a { color: #0f172a; }
.php-site-scrolled > div:nth-child(2) nav .php-nav-item > a { color: #0f172a; }
.php-site-scrolled > div:nth-child(2) nav .php-nav-item:hover > a,
.php-site-scrolled > div:nth-child(2) nav .php-nav-item:focus-within > a { color: white; }
@media (max-width: 1023px) { .php-mobile-menu:not([hidden]) { display: block; } }
@media (max-width: 639px) { #estimate-progress span { display: flex; white-space: nowrap; font-size: 7px; gap: 4px; } #estimate-progress span::before { margin: 0; width: 28px; height: 28px; flex-basis: 28px; } }
@media (prefers-reduced-motion: reduce) { .php-dropdown-panel { scroll-behavior: auto; } }

/* Keep every desktop estimate step inside one viewport. */
@media (min-width: 1024px) and (min-height: 700px) {
  body.estimate-page { height: 100svh; min-height: 0; overflow: hidden; }
  body.estimate-page > header .php-utility-bar > div { padding-top: 5px; padding-bottom: 5px; }
  body.estimate-page > header .php-main-bar img { height: 48px !important; }
  body.estimate-page > header .php-main-bar .origin-left { padding-top: 5px !important; padding-bottom: 5px !important; }
  body.estimate-page #estimate-app { min-height: 0; flex: 1 1 auto; overflow: hidden; }
  body.estimate-page .estimate-progress-bar { position: relative; }
  body.estimate-page .estimate-progress-scroll { padding-top: 7px; padding-bottom: 7px; }
  body.estimate-page #estimate-progress span { padding-top: 1px; padding-bottom: 4px !important; }
  body.estimate-page #estimate-progress span::before { width: 28px; height: 28px; flex-basis: 28px; }
  body.estimate-page #estimate-form { padding-top: 16px; padding-bottom: 12px; }
  body.estimate-page .estimate-step > h1 { margin-top: 6px; font-size: clamp(1.8rem, 3vw, 2.7rem); line-height: 1.05; }
  body.estimate-page .estimate-step > h1 + p { margin-top: 8px; }
  body.estimate-page .estimate-step > .mt-8 { margin-top: 16px; }
  body.estimate-page .estimate-step > .mt-6 { margin-top: 12px; }
  body.estimate-page .estimate-step[data-step="1"] .min-h-\[300px\] { min-height: 210px; height: min(30vh, 260px); }
  body.estimate-page .estimate-option img { height: min(22vh, 160px); }
  body.estimate-page .estimate-option span { padding: 14px; }
  body.estimate-page .estimate-actions { margin-top: 14px; }
}

/* AD Solar brand palette: panel blue, steel blue, pale blue, and soft navy. */
:root {
  --color-amber-50: #eff6ff;
  --color-amber-100: #dbeafe;
  --color-amber-200: #bfdbfe;
  --color-amber-300: #93c5fd;
  --color-amber-400: #60a5fa;
  --color-amber-500: #3b82f6;
  --color-amber-600: #2563eb;
  --color-amber-700: #1d4ed8;
  --color-amber-800: #1e40af;
  --color-amber-900: #1e3a8a;
  --color-amber-950: #172554;
  --color-orange-50: #f0f7ff;
  --color-orange-100: #dcecff;
  --color-orange-200: #bddcff;
  --color-orange-300: #8fc3f4;
  --color-orange-400: #5a9ed5;
  --color-orange-500: #367eb8;
}

/* Homepage hero refinement for the AD Solar rebrand. */
.hero-overlay-base {
  background: rgba(20, 55, 86, .28) !important;
}
.hero-overlay-side {
  background: linear-gradient(90deg, rgba(16, 42, 67, .62) 0%, rgba(16, 42, 67, .34) 48%, rgba(16, 42, 67, .06) 100%) !important;
}
.hero-overlay-bottom {
  background: linear-gradient(0deg, rgba(16, 42, 67, .28) 0%, rgba(16, 42, 67, .05) 52%, transparent 100%) !important;
}
.hero-construction-title {
  color: #60a5fa !important;
  text-shadow: 0 2px 10px rgba(7, 17, 31, .38);
}
.hero-estimate-badge {
  border-color: #bfdbfe !important;
  background: rgba(255, 255, 255, .96) !important;
  box-shadow: 0 8px 22px rgba(15, 23, 42, .12) !important;
}
.hero-estimate-badge span { color: #334155 !important; }
.hero-estimate-card {
  border-color: rgba(203, 213, 225, .95) !important;
  background: rgba(255, 255, 255, .96) !important;
  box-shadow: 0 18px 42px rgba(15, 23, 42, .18) !important;
  backdrop-filter: blur(14px);
}
.hero-estimate-card h2 { color: #0f172a !important; }
.hero-estimate-card p,
.hero-estimate-card label,
.hero-estimate-card .text-slate-400,
.hero-estimate-card .text-slate-500 { color: #64748b !important; }
.hero-estimate-card .mb-3.flex.items-center.gap-2 > div:first-child {
  border-color: #bfdbfe !important;
  background: #eff6ff !important;
}
.hero-estimate-card .mb-3.flex.items-center.gap-2 > div:first-child svg {
  color: #174a7e !important;
}
.hero-estimate-card .mb-3.flex.items-center.gap-2 > div:last-child > div:first-child {
  color: #111827 !important;
  font-weight: 900;
}
.hero-estimate-card .mb-3.flex.items-center.gap-2 > div:last-child > div:last-child {
  color: #475569 !important;
  font-weight: 600;
}
.hero-estimate-field {
  border-color: #cbd5e1 !important;
  background: #f8fafc !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .03);
}
.hero-estimate-field:focus-within {
  border-color: #2d78b7 !important;
  box-shadow: 0 0 0 3px rgba(45, 120, 183, .12);
}
.hero-estimate-field input {
  border-color: #cbd5e1 !important;
  background: transparent !important;
  color: #0f172a !important;
}
.hero-estimate-field input::placeholder { color: #94a3b8 !important; }
.hero-estimate-submit {
  color: #fff !important;
  background: linear-gradient(135deg, #2d78b7 0%, #174a7e 100%) !important;
  box-shadow: 0 10px 24px rgba(23, 74, 126, .22) !important;
}
.hero-estimate-submit:hover {
  background: linear-gradient(135deg, #256da8 0%, #10375f 100%) !important;
  box-shadow: 0 14px 28px rgba(23, 74, 126, .26) !important;
}
@media (max-width: 1023px) {
  .hero-overlay-base { background: rgba(20, 55, 86, .36) !important; }
  .hero-overlay-side { background: linear-gradient(90deg, rgba(16, 42, 67, .7), rgba(16, 42, 67, .28)) !important; }
}

/* Complete estimate workflow */
.estimate-shell { --estimate-blue:#174a7e; --estimate-bright:#2d78b7; --estimate-ink:#10233f; --estimate-green:#10b981; display:flex; min-height:0; flex:1; flex-direction:column; overflow:hidden; background:#f5f7fa; color:var(--estimate-ink); }
.estimate-shell .hidden { display:none !important; }
.estimate-progress-bar { position:relative; z-index:45; flex:0 0 auto; border-bottom:1px solid #dbe3ec; background:#fff; box-shadow:none; }
.estimate-progress-scroll { max-width:1800px; width:100%; margin:auto; padding:10px 42px; overflow-x:auto; }
#estimate-progress { display:grid !important; grid-template-columns:repeat(5,minmax(150px,1fr)); min-width:850px; gap:24px; }
#estimate-progress span { position:relative; display:grid; grid-template-columns:44px 1fr; grid-template-rows:1fr 1fr; align-items:center; justify-content:start; gap:0 12px; min-width:0; padding:0 0 0 0 !important; border:0 !important; color:#94a3b8; text-align:left; }
#estimate-progress span::before { content:attr(data-number); grid-row:1/3; display:flex; width:42px; height:42px; align-items:center; justify-content:center; border:2px solid #dce5ef; border-radius:50%; background:#fff; color:#94a3b8; font-size:13px; font-style:normal; font-weight:900; }
#estimate-progress span:not(:last-child)::after { content:''; position:absolute; left:136px; right:-13px; top:20px; height:4px; border-radius:5px; background:#edf2f7; }
#estimate-progress span b { align-self:end; font-size:9px; letter-spacing:.13em; text-transform:uppercase; }
#estimate-progress span em { align-self:start; font-size:11px; font-style:normal; font-weight:800; text-transform:none; }
#estimate-progress span[data-status=active] { color:var(--estimate-blue); }
#estimate-progress span[data-status=active]::before { border-color:var(--estimate-blue); background:var(--estimate-blue); color:#fff; box-shadow:0 8px 20px rgba(23,74,126,.18); }
#estimate-progress span[data-status=complete] { color:#059669; }
#estimate-progress span[data-status=complete]::before { content:'✓'; border-color:var(--estimate-green); background:var(--estimate-green); color:#fff; }
#estimate-progress span[data-status=complete]::after { background:linear-gradient(90deg,var(--estimate-green),var(--estimate-bright)); }
#estimate-form { position:relative; display:flex; min-height:0; flex:1; flex-direction:column; max-width:none; width:100%; margin:0; padding:0 0 58px; }
.estimate-step { min-height:0; flex:1; width:100%; }
.estimate-alert { position:absolute; z-index:80; top:10px; left:50%; width:min(92%,650px); transform:translateX(-50%); border:1px solid #fecaca; border-radius:12px; background:#fff1f2; padding:11px 15px; color:#b91c1c; box-shadow:0 10px 30px rgba(127,29,29,.14); font-size:12px; font-weight:800; }
.estimate-eyebrow { color:var(--estimate-blue); font-size:9px; font-weight:900; letter-spacing:.18em; text-transform:uppercase; }
.estimate-eyebrow::before { content:''; display:inline-block; width:25px; height:1px; margin:0 10px 3px 0; background:var(--estimate-bright); }
.estimate-step h1 { margin:10px 0 8px; color:var(--estimate-ink); font-size:clamp(27px,2.5vw,43px); line-height:1.05; font-weight:900; letter-spacing:-.04em; }
.estimate-step > p,.estimate-location-details > p { color:#64748b; font-size:13px; line-height:1.55; }
.estimate-location { display:grid; grid-template-columns:1.35fr .8fr; align-items:center; gap:42px; max-width:1800px; margin:auto; padding:18px 48px; }
.estimate-map-column,.estimate-location-details { min-width:0; }
.estimate-verified { display:flex; align-items:center; gap:9px; margin-bottom:8px; color:#235e66; font-size:12px; }
.estimate-verified span { display:grid; width:25px; height:25px; place-items:center; border-radius:50%; background:#ecfdf5; color:#059669; }
.estimate-map-card { overflow:hidden; border:1px solid #dbe3ec; border-radius:24px; background:#fff; box-shadow:0 15px 45px rgba(15,23,42,.06); }
.estimate-map-frame { position:relative; height:min(43vh,420px); min-height:230px; overflow:hidden; background:#dbe3ec; }
.estimate-map-frame img,.estimate-details-map img { width:100%; height:100%; object-fit:cover; }
.estimate-map-card > strong { display:block; padding:12px 20px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:15px; }
.estimate-map-loading { position:absolute; inset:0; z-index:2; display:flex; align-items:center; justify-content:center; flex-direction:column; background:rgba(16,35,63,.82); color:#fff; backdrop-filter:blur(3px); }
.estimate-map-loading small { margin-top:5px; color:#cbd5e1; }
.estimate-spinner,.estimate-mini-spinner { display:block; border:3px solid rgba(255,255,255,.3); border-top-color:#fff; border-radius:50%; animation:estimate-spin .8s linear infinite; }
.estimate-spinner { width:34px; height:34px; margin-bottom:10px; }
.estimate-mini-spinner { position:absolute; right:16px; top:16px; width:18px; height:18px; border-color:#dbeafe; border-top-color:var(--estimate-blue); }
@keyframes estimate-spin { to { transform:rotate(360deg); } }
.estimate-map-pin { position:absolute; left:50%; top:50%; z-index:1; display:grid; width:44px; height:44px; place-items:center; transform:translate(-50%,-50%); border:4px solid #fff; border-radius:50%; background:var(--estimate-blue); color:#fff; box-shadow:0 8px 22px rgba(15,23,42,.3); font-size:23px; }
.estimate-address-wrap { position:relative; margin-top:14px; }
.estimate-address-wrap input { width:100%; height:56px; border:1px solid #cbd5e1; border-radius:13px; background:#fff; padding:0 45px 0 17px; color:#0f172a; font-size:14px; outline:none; }
.estimate-address-wrap input:focus { border-color:var(--estimate-bright); box-shadow:0 0 0 3px rgba(45,120,183,.1); }
.estimate-suggestions { position:absolute; z-index:70; left:0; right:0; top:calc(100% + 5px); max-height:230px; overflow:auto; border:1px solid #dbe3ec; border-radius:13px; background:#fff; padding:5px; box-shadow:0 18px 40px rgba(15,23,42,.16); }
.estimate-suggestions button { display:block; width:100%; border:0; border-radius:9px; background:transparent; padding:11px 12px; color:#334155; text-align:left; font-size:12px; font-weight:700; }
.estimate-suggestions button:hover { background:#eff6ff; color:var(--estimate-blue); }
.estimate-location-fields { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:10px; }
.estimate-location-fields label,.estimate-property-stats label { display:flex; min-width:0; flex-direction:column; border:1px solid #dbe3ec; border-radius:12px; background:#fff; padding:10px 12px; color:#94a3b8; font-size:8px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; box-shadow:0 2px 5px rgba(15,23,42,.05); }
.estimate-location-fields strong,.estimate-property-stats strong { overflow:hidden; margin-top:3px; color:#172033; font-size:12px; letter-spacing:0; text-overflow:ellipsis; text-transform:none; white-space:nowrap; }
.estimate-property-stats { margin-top:14px; }
.estimate-property-stats h2 { margin:0 0 8px; color:#235e66; font-size:9px; letter-spacing:.14em; text-transform:uppercase; }
.estimate-property-stats > div { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.estimate-property-stats small { margin-top:2px; font-weight:500; letter-spacing:0; text-transform:none; }
.estimate-property-stats .estimate-blue { color:var(--estimate-bright); }
.estimate-centered { display:flex; align-items:center; flex-direction:column; justify-content:center; padding:20px 30px; text-align:center; }
.estimate-goals { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; width:min(100%,1000px); margin-top:22px; text-align:left; }
.estimate-goal { position:relative; display:flex; overflow:hidden; min-height:335px; flex-direction:column; border:2px solid #dbe3ec; border-radius:24px; background:#fff; color:inherit; cursor:pointer; text-decoration:none; transition:.2s; }
.estimate-goal:hover,.estimate-goal:has(input:checked) { border-color:var(--estimate-bright); transform:translateY(-2px); box-shadow:0 14px 35px rgba(23,74,126,.12); }
.estimate-goal input { position:absolute; opacity:0; }
.estimate-goal > img { width:100%; height:145px; object-fit:cover; }
.estimate-choice { position:absolute; z-index:2; top:17px; right:17px; width:28px; height:28px; border:2px solid #fff; border-radius:50%; background:rgba(255,255,255,.85); box-shadow:0 2px 8px rgba(15,23,42,.16); }
.estimate-goal:has(input:checked) .estimate-choice { background:var(--estimate-blue); box-shadow:inset 0 0 0 7px #fff; }
.estimate-badge { position:absolute; z-index:2; top:18px; left:18px; border-radius:20px; background:#fff; padding:5px 12px; color:var(--estimate-blue); font-size:9px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.estimate-goal-copy { display:flex; flex:1; flex-direction:column; padding:20px 22px; }
.estimate-goal-copy strong { font-size:20px; }
.estimate-goal-copy small { margin-top:10px; color:#64748b; font-size:12px; line-height:1.55; }
.estimate-goal-copy b { margin-top:auto; padding-top:15px; border-top:1px solid #edf2f7; color:#486284; font-size:10px; }
.estimate-helper { margin-top:13px; font-size:10px !important; }
.estimate-bill-card { width:min(100%,620px); margin-top:22px; border:1px solid #dbe3ec; border-radius:26px; background:#fff; padding:22px; text-align:left; box-shadow:0 18px 50px rgba(15,23,42,.07); }
.estimate-card-heading { display:flex; align-items:center; gap:13px; margin-bottom:18px; }
.estimate-card-heading > span { display:grid; width:48px; height:48px; place-items:center; border-radius:13px; background:#eff6ff; color:var(--estimate-blue); font-size:22px; font-weight:900; }
.estimate-card-heading div { display:flex; flex-direction:column; }
.estimate-card-heading strong { font-size:15px; }.estimate-card-heading small { margin-top:2px; color:#94a3b8; font-size:10px; }
.estimate-bill-input { display:flex; align-items:center; height:66px; border:1px solid #dbe3ec; border-radius:13px; background:#f8fafc; padding:0 20px; }
.estimate-bill-input span { color:var(--estimate-blue); font-size:24px; }.estimate-bill-input input { width:100%; border:0; background:transparent; padding:0 13px; color:#172033; font-size:24px; font-weight:900; outline:0; }
.estimate-presets { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin-top:14px; }.estimate-presets button { border:1px solid #dbe3ec; border-radius:10px; background:#fff; padding:10px; color:#486284; font-size:11px; font-weight:800; }.estimate-presets button:hover { border-color:var(--estimate-bright); color:var(--estimate-blue); }
.estimate-details { display:grid; grid-template-columns:.85fr 1fr; align-items:center; gap:30px; max-width:1500px; margin:auto; padding:22px 45px; }
.estimate-details-map { position:relative; height:min(45vh,380px); overflow:hidden; border-radius:22px; background:#dbe3ec; box-shadow:0 15px 45px rgba(15,23,42,.09); }
.estimate-details-map > div { position:absolute; left:18px; right:18px; bottom:18px; display:flex; flex-direction:column; border:1px solid rgba(255,255,255,.35); border-radius:13px; background:rgba(15,23,42,.52); padding:12px 16px; color:#fff; backdrop-filter:blur(8px); }.estimate-details-map small { text-transform:uppercase; }.estimate-details-form h1 { font-size:clamp(28px,2.5vw,42px); }
.estimate-fields { display:grid; grid-template-columns:repeat(2,1fr); gap:11px 14px; margin-top:16px; }.estimate-fields label { color:#486284; font-size:9px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }.estimate-fields input,.estimate-fields select { display:block; width:100%; height:47px; margin-top:5px; border:1px solid #dbe3ec; border-radius:10px; background:#fff; padding:0 13px; color:#334155; font-size:12px; outline:none; }.estimate-fields input:focus,.estimate-fields select:focus { border-color:var(--estimate-bright); box-shadow:0 0 0 3px rgba(45,120,183,.08); }.estimate-field-wide { grid-column:1/-1; }.estimate-privacy { margin-top:11px; color:#64748b; font-size:9px; }
.estimate-proposal { display:flex; align-items:center; justify-content:center; padding:15px 30px; text-align:center; }.estimate-ready { width:min(100%,820px); }.estimate-sparkle { display:grid; width:58px; height:58px; margin:0 auto 13px; place-items:center; border-radius:17px; background:#eff6ff; color:var(--estimate-blue); font-size:28px; }.estimate-ready .estimate-eyebrow::before,.estimate-generating .estimate-eyebrow::before { display:none; }.estimate-ready > p { max-width:650px; margin:0 auto; }.estimate-summary { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:10px 16px; margin:22px auto 20px; border:1px solid #dbe3ec; border-radius:13px; background:#fff; padding:14px 20px; box-shadow:0 3px 8px rgba(15,23,42,.06); color:#486284; font-size:11px; }.estimate-summary span:first-child { max-width:360px; overflow:hidden; color:#172033; font-weight:900; text-overflow:ellipsis; white-space:nowrap; }.estimate-summary i { color:#cbd5e1; }.estimate-ready > small { display:block; margin-top:10px; color:#94a3b8; font-size:9px; }
.estimate-primary { display:inline-flex; min-height:48px; align-items:center; justify-content:center; gap:13px; border:0; border-radius:999px; background:linear-gradient(135deg,var(--estimate-bright),var(--estimate-blue)); padding:0 28px; color:#fff; font-size:10px; font-weight:900; letter-spacing:.04em; text-decoration:none; text-transform:uppercase; box-shadow:0 10px 24px rgba(23,74,126,.18); transition:.2s; }.estimate-primary:hover { background:#10375f; transform:translateY(-1px); }.estimate-primary:disabled { cursor:not-allowed; opacity:.35; transform:none; box-shadow:none; }
.estimate-generating { width:min(100%,720px); border:1px solid #dbe3ec; border-radius:26px; background:#fff; padding:26px 30px; box-shadow:0 18px 50px rgba(15,23,42,.07); }.estimate-spinner-blue { margin:0 auto 12px; border-color:#dbeafe; border-top-color:var(--estimate-blue); }.estimate-generating h2 { max-width:600px; margin:8px auto 22px; font-size:24px; line-height:1.2; }.estimate-progress-label { display:flex; justify-content:space-between; color:#64748b; font-size:10px; font-weight:800; }.estimate-progress-label strong { color:var(--estimate-blue); font-size:14px; }.estimate-generation-track { height:10px; margin-top:7px; overflow:hidden; border-radius:10px; background:#edf2f7; }.estimate-generation-track i { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--estimate-bright),var(--estimate-blue)); transition:width .3s linear; }.estimate-generation-stages { display:grid; gap:5px; margin-top:18px; text-align:left; }.estimate-generation-stages > div { display:flex; align-items:center; gap:12px; border-radius:12px; padding:8px 10px; color:#94a3b8; }.estimate-generation-stages > div > span { display:grid; width:36px; height:36px; flex:0 0 36px; place-items:center; border-radius:10px; background:#f1f5f9; }.estimate-generation-stages p { display:flex; flex-direction:column; }.estimate-generation-stages small { margin-top:2px; font-size:9px; }.estimate-generation-stages .active { background:#eff6ff; color:var(--estimate-blue); }.estimate-generation-stages .active > span { background:var(--estimate-blue); color:#fff; }.estimate-generation-stages .complete { color:#334155; }.estimate-generation-stages .complete > span { background:var(--estimate-green); color:#fff; }
.estimate-complete { width:min(100%,980px); max-height:none; overflow:visible; border:1px solid #dbe3ec; border-radius:24px; background:#fff; padding:13px 18px; text-align:left; box-shadow:0 18px 55px rgba(15,23,42,.08); }.estimate-complete-title { display:flex; align-items:center; gap:12px; padding-bottom:8px; border-bottom:1px solid #edf2f7; }.estimate-complete-title > span { display:grid; width:43px; height:43px; place-items:center; border-radius:14px; background:#ecfdf5; color:#059669; font-size:20px; }.estimate-complete-title h2 { margin:0; font-size:20px; }.estimate-complete-title p { margin:2px 0 0; color:#64748b; font-size:10px; }.estimate-result-address { display:flex; justify-content:space-between; gap:15px; margin-top:7px; border-radius:10px; background:#f8fafc; padding:8px 12px; font-size:11px; }.estimate-result-address span { color:#94a3b8; }.estimate-result-stats,.estimate-result-items { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; margin-top:6px; }.estimate-result-stats label,.estimate-result-items label { display:flex; flex-direction:column; border:1px solid #dbe3ec; border-radius:10px; padding:7px 10px; color:#94a3b8; font-size:7px; font-weight:900; text-transform:uppercase; }.estimate-result-stats strong,.estimate-result-items strong { margin-top:3px; color:#172033; font-size:12px; text-transform:none; }.estimate-result-plan { margin-top:7px; border:1px solid #bfdbfe; border-radius:13px; background:#eff6ff; padding:10px 13px; }.estimate-result-plan-head { display:flex; align-items:center; justify-content:space-between; gap:15px; }.estimate-result-plan-head small { color:var(--estimate-blue); font-size:8px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }.estimate-result-plan-head h3 { margin:2px 0 0; font-size:19px; }.estimate-result-plan-head > b { border-radius:8px; background:#fff; padding:8px 11px; font-size:11px; }.estimate-result-items { grid-template-columns:repeat(auto-fit,minmax(118px,1fr)); }.estimate-savings { display:grid; grid-template-columns:repeat(2,1fr); gap:7px; margin-top:7px; }.estimate-savings label { display:flex; flex-direction:column; border:1px solid #a7f3d0; border-radius:9px; background:#ecfdf5; padding:7px 10px; color:#047857; font-size:8px; font-weight:900; text-transform:uppercase; }.estimate-savings strong { margin-top:2px; font-size:19px; }.estimate-cost { display:flex; min-height:58px; align-items:center; justify-content:space-between; margin-top:8px; border:1px solid #93c5fd; border-radius:11px; background:#fff; padding:9px 14px; box-shadow:0 3px 10px rgba(23,74,126,.06); }.estimate-cost small { color:var(--estimate-blue); font-size:10px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }.estimate-cost strong { color:var(--estimate-blue); font-size:24px; line-height:1; }.estimate-sent { margin:7px 0; border:1px solid #a7f3d0; border-radius:10px; background:#ecfdf5; padding:8px 12px; color:#047857; font-size:10px; font-weight:800; }.estimate-complete > .estimate-primary { display:flex; width:max-content; min-height:39px; margin:7px auto 0; }
.estimate-actions { position:absolute; z-index:40; left:0; right:0; bottom:0; display:flex; height:58px; align-items:center; justify-content:space-between; border-top:1px solid #dbe3ec; background:#fff; padding:6px 48px; }.estimate-actions > small { color:#8aa0ba; font-size:9px; }.estimate-actions > div { display:flex; align-items:center; gap:15px; }.estimate-back { border:0; background:transparent; padding:12px; color:#526985; font-size:11px; font-weight:800; }
@media (max-width:1023px) { body.estimate-page { overflow:auto; height:auto; }.estimate-shell { overflow:visible; }.estimate-location,.estimate-details { grid-template-columns:1fr; padding:18px; }.estimate-map-frame { height:300px; }.estimate-location-details { width:100%; }.estimate-details-map { display:none; }.estimate-goals { grid-template-columns:1fr; }.estimate-goal { min-height:0; }.estimate-goal > img { height:180px; }.estimate-step { overflow:visible; }.estimate-actions { position:sticky; padding:6px 18px; }.estimate-centered { justify-content:flex-start; }.estimate-result-items { grid-template-columns:repeat(2,1fr); } }
@media (max-width:639px) { .estimate-progress-scroll { padding:8px 12px; }.estimate-progress-scroll #estimate-progress { min-width:650px; }.estimate-location { gap:18px; }.estimate-map-frame { min-height:190px; height:220px; }.estimate-property-stats > div,.estimate-fields { grid-template-columns:1fr 1fr; }.estimate-actions > small { display:none; }.estimate-actions { justify-content:flex-end; }.estimate-details-form h1 { font-size:27px; }.estimate-complete { border-radius:15px; padding:10px; }.estimate-result-stats { grid-template-columns:repeat(2,1fr); }.estimate-result-plan-head { align-items:flex-start; flex-direction:column; }.estimate-result-items { grid-template-columns:repeat(2,1fr); }.estimate-savings { grid-template-columns:1fr; }.estimate-cost { align-items:flex-start; flex-direction:column; gap:4px; } }

.electric-home-hero > .absolute.inset-0 > img { object-position: center 35%; }
.electric-home-hero .hero-overlay-base { background:rgba(7,17,31,.22) !important; }
.electric-home-hero .hero-overlay-side { background:linear-gradient(90deg,rgba(7,17,31,.88),rgba(10,30,49,.66) 48%,rgba(10,30,49,.28)) !important; }
.electric-home-hero .hero-overlay-bottom { background:linear-gradient(0deg,rgba(7,17,31,.7),transparent 70%) !important; }
@media(max-width:639px) { .electric-home-hero .hero-overlay-base { background:rgba(7,17,31,.4) !important; } }
.us-phone-help { display:block; margin-top:5px; color:#64748b; font-size:9px; font-weight:600; line-height:1.35; letter-spacing:0; text-transform:none; }
.us-phone-help-error { color:#b91c1c; }
input.us-phone-invalid:not(:focus) { border-color:#fca5a5 !important; background-color:#fff7f7 !important; }

.electric-estimate-strip{display:grid;grid-template-columns:1fr 1.15fr;gap:42px;align-items:center;padding:38px max(5vw,24px);background:linear-gradient(120deg,#07111f,#123b62);color:#fff;border-top:1px solid rgba(255,255,255,.08)}
.electric-estimate-copy span,.electric-service-intro>span,.electric-service-cta span{color:#55b7ff;font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.electric-estimate-copy h2{margin:7px 0;font-size:clamp(25px,3vw,40px);line-height:1.05;font-weight:900}.electric-estimate-copy p{color:#cbd5e1;font-size:13px}.electric-estimate-form{display:grid;grid-template-columns:1.5fr .7fr auto;gap:10px;align-items:end}.electric-estimate-form label{display:flex;flex-direction:column;gap:6px;color:#bfdbfe;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.electric-estimate-form input{height:50px;border:1px solid rgba(255,255,255,.18);border-radius:11px;background:rgba(4,15,28,.7);padding:0 14px;color:#fff;outline:0}.electric-estimate-form input:focus{border-color:#55b7ff;box-shadow:0 0 0 3px rgba(85,183,255,.12)}.electric-estimate-form button{height:50px;border:0;border-radius:11px;background:#2d78b7;padding:0 20px;color:#fff;font-size:11px;font-weight:900;text-transform:uppercase;white-space:nowrap}.electric-estimate-form small{grid-column:1/-1;color:#94a3b8;font-size:9px}
.electric-service-body{max-width:1400px;margin:auto;padding:72px 28px}.electric-service-intro{max-width:790px;margin:0 auto 35px;text-align:center}.electric-service-intro h2{margin:8px 0 14px;color:#0f172a;font-size:clamp(28px,4vw,46px);line-height:1.04;font-weight:900}.electric-service-intro p{color:#64748b;line-height:1.75}.electric-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.electric-feature-grid article{border:1px solid #dce5ef;border-radius:20px;background:#fff;padding:28px;box-shadow:0 10px 30px rgba(15,23,42,.05)}.electric-feature-grid b{display:grid;width:40px;height:40px;place-items:center;border-radius:12px;background:#eaf5ff;color:#174a7e}.electric-feature-grid h3{margin:16px 0 8px;font-size:17px;font-weight:900;text-transform:uppercase}.electric-feature-grid p{color:#64748b;font-size:13px;line-height:1.65}.electric-service-cta{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:32px;border-radius:22px;background:#102a43;padding:30px;color:#fff}.electric-service-cta h2{margin-top:5px;font-size:22px;font-weight:900}.electric-service-cta a{border-radius:11px;background:#2d78b7;padding:14px 20px;color:#fff;font-size:11px;font-weight:900;text-transform:uppercase;white-space:nowrap}
@media(max-width:900px){.electric-estimate-strip{grid-template-columns:1fr}.electric-estimate-form{grid-template-columns:1fr}.electric-estimate-form small{grid-column:auto}.electric-feature-grid{grid-template-columns:1fr}.electric-service-cta{align-items:flex-start;flex-direction:column}}

@media (max-width:639px) {
  .header-logo-box img { height:52px !important; width:auto !important; }
  .footer-logo-box img { height:52px !important; width:auto !important; }
}
/* Shared premium typography. */
html, body, body *, button, input, textarea, select { font-family:'Roboto', Arial, sans-serif !important; }
.merged-service-content { width:min(100% - 48px,1400px); margin:0 auto; padding:82px 0; color:#102a43; }
.merged-service-content__heading { display:grid; grid-template-columns:.8fr 1.2fr; gap:14px 42px; align-items:end; padding-bottom:30px; border-bottom:1px solid #dbe6ef; }
.merged-service-content__heading > span { color:#2d78b7; font-size:11px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.merged-service-content__heading h2 { margin:0; font-size:clamp(30px,4vw,52px); font-weight:900; letter-spacing:-.04em; line-height:1.04; text-transform:uppercase; }
.merged-service-content__heading p { grid-column:2; max-width:700px; margin:0; color:#64748b; font-size:15px; font-weight:600; line-height:1.7; }
.merged-service-content__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:28px; }
.merged-service-content article { border:1px solid #dbe6ef; border-radius:16px; background:#f7fafc; padding:25px; }
.merged-service-content article i { display:grid; place-items:center; width:31px; height:31px; border-radius:8px; background:#e5f1fa; color:#174a7e; font-style:normal; font-weight:900; }
.merged-service-content article h3 { margin:18px 0 8px; font-size:16px; font-weight:900; text-transform:uppercase; }
.merged-service-content article p { margin:0; color:#64748b; font-size:13px; font-weight:600; line-height:1.65; }
.merged-service-content__cta { display:inline-flex; align-items:center; gap:10px; margin-top:25px; border-radius:10px; background:#174a7e; padding:14px 20px; color:#fff; font-size:11px; font-weight:900; letter-spacing:.04em; text-decoration:none; text-transform:uppercase; }
@media (max-width:760px) { .merged-service-content { width:calc(100% - 28px); padding:58px 0; }.merged-service-content__heading { grid-template-columns:1fr; gap:10px; }.merged-service-content__heading p { grid-column:auto; }.merged-service-content__grid { grid-template-columns:1fr; } }
.location-service-card { position:relative; overflow:hidden; text-decoration:none; }
.location-service-card::before { content:''; position:absolute; top:0; right:0; left:0; height:3px; background:#2d78b7; transform:scaleX(0); transform-origin:left; transition:transform .2s ease; }
.location-service-card:hover::before { transform:scaleX(1); }
.location-service-card__action { display:flex; align-items:center; justify-content:space-between; margin-top:15px; padding-top:12px; border-top:1px solid #e5edf4; color:#174a7e; font-size:10px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.location-service-card__action b { font-size:15px; transition:transform .2s ease; }
.location-service-card:hover .location-service-card__action b { transform:translateX(3px); }

/* Shared service-page visual standard. */
.service-detail-page main > section:first-child { overflow:hidden; }
.service-main-panel main > section:first-child,
.service-commercial-electrical main > section:first-child,
.service-new-construction-electrical main > section:first-child { position:relative; min-height:520px; display:flex; align-items:center; background-position:center; background-size:cover; }
.service-main-panel main > section:first-child { background-image:linear-gradient(90deg,rgba(7,29,50,.94),rgba(10,42,72,.76),rgba(10,42,72,.38)),url('/images/panel-upgrade.webp'); }
.service-commercial-electrical main > section:first-child { background-image:linear-gradient(90deg,rgba(7,29,50,.94),rgba(10,42,72,.76),rgba(10,42,72,.38)),url('/images/service-1.webp'); }
.service-new-construction-electrical main > section:first-child { background-image:linear-gradient(90deg,rgba(7,29,50,.94),rgba(10,42,72,.76),rgba(10,42,72,.38)),url('/images/new-construct.webp'); }
.service-residential-electrical main > section:first-child img { content:url('/images/electric-hero.jpg'); }
.merged-service-content { background:#fff; box-shadow:0 0 0 100vmax #fff; clip-path:inset(0 -100vmax); }
@media (max-width:1320px) and (min-width:1024px) { .php-main-bar nav { font-size:12px !important; }.php-main-bar nav > a,.php-main-bar .php-nav-item > a { padding-left:8px !important; padding-right:8px !important; }.php-header-estimate { display:none !important; } }
@media (max-width:700px) { .service-main-panel main > section:first-child,.service-commercial-electrical main > section:first-child,.service-new-construction-electrical main > section:first-child { min-height:0; padding-top:54px !important; padding-bottom:58px !important; background-position:62% center; } }

/* Calm attention cue for the utility-bar phone link. */
.php-utility-bar a[href^="tel:"] { display:inline-flex; align-items:center; border-radius:999px; padding:7px 12px; animation:header-call-breathe 2.8s ease-in-out infinite; transition:color .2s ease,background-color .2s ease,box-shadow .2s ease; }
.php-utility-bar a[href^="tel:"]:hover { background:rgba(112,185,239,.14); box-shadow:0 0 0 1px rgba(112,185,239,.28),0 0 18px rgba(45,120,183,.22); }
@keyframes header-call-breathe { 0%,100% { color:#fff; background:rgba(45,120,183,.06); box-shadow:0 0 0 0 rgba(112,185,239,0); } 50% { color:#b9e0ff; background:rgba(45,120,183,.16); box-shadow:0 0 0 1px rgba(112,185,239,.22),0 0 14px rgba(45,120,183,.16); } }
@media (prefers-reduced-motion:reduce) { .php-utility-bar a[href^="tel:"] { animation:none; background:rgba(45,120,183,.12); } }
