/* v2.0.15 (pt151u): balanced card grids. Chris: "Anytime you have cards, make it an even number so they line up evenly."
 * Card lists switch to centered flex rows whose column count is chosen from the item count, so rows are full
 * where the count allows it, and a content-driven remainder (blog posts, city lists) sits centered in the last row.
 * Column count = --bc, gap = --bg. Quantity queries: :has(> :last-child:nth-child(3n)) = count divisible by 3, etc. */
.bal-a,.bbe-fw .fw-entry ul.checks,.bbe-fw .fw-entry ul.signs,.entry:not(.fw-entry) ul.checks,.entry:not(.fw-entry) ul.signs,
.bbe-fw .fw-entry ol.steps,.area-list,.post-grid,.feat-grid,.page-slug-services .svc-grid{--bg:1rem}
.area-list{--bg:.5rem}.post-grid{--bg:1.4rem}.feat-grid{--bg:1.4rem}.page-slug-services .svc-grid{--bg:1.1rem}

/* ---- Desktop ---- */
@media (min-width:961px){
	.bbe-fw .fw-entry ul.checks,.bbe-fw .fw-entry ul.signs,.entry:not(.fw-entry) ul.checks,.entry:not(.fw-entry) ul.signs,
	.bbe-fw .fw-entry ol.steps,.area-list,.post-grid,.feat-grid,.page-slug-services .svc-grid{display:flex!important;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:var(--bg)!important;columns:auto}
	.bbe-fw .fw-entry ul.checks>*,.bbe-fw .fw-entry ul.signs>*,.entry:not(.fw-entry) ul.checks>*,.entry:not(.fw-entry) ul.signs>*,
	.bbe-fw .fw-entry ol.steps>*,.area-list>*,.post-grid>*,.feat-grid>*,.page-slug-services .svc-grid>*{flex:0 0 calc((100% - (var(--bc) - 1) * var(--bg)) / var(--bc));max-width:calc((100% - (var(--bc) - 1) * var(--bg)) / var(--bc));min-width:0}

	/* Full-width content cards (What's Included, Warning Signs, Why Choose...): 3 cols; 4 = 2x2; 8/16 = 4 cols; other even = 2 cols. */
	.bbe-fw .fw-entry ul.checks,.bbe-fw .fw-entry ul.signs{--bc:3}
	.bbe-fw .fw-entry :is(ul.checks,ul.signs):has(>:last-child:nth-child(2n)){--bc:2}
	.bbe-fw .fw-entry :is(ul.checks,ul.signs):has(>:last-child:nth-child(4n)){--bc:4}
	.bbe-fw .fw-entry :is(ul.checks,ul.signs):has(>:last-child:nth-child(3n)){--bc:3}
	.bbe-fw .fw-entry :is(ul.checks,ul.signs):has(>:nth-child(4):last-child){--bc:2}
	.bbe-fw .fw-entry :is(ul.checks,ul.signs):has(>:nth-child(2):last-child){--bc:2}
	.bbe-fw .fw-entry :is(ul.checks,ul.signs):has(>:only-child){--bc:1}

	/* Narrow content columns (city pages beside the booking card, blog posts, about): 2 cols; 3 = one row of 3. */
	.entry:not(.fw-entry) ul.checks,.entry:not(.fw-entry) ul.signs{--bc:2}
	.entry:not(.fw-entry) :is(ul.checks,ul.signs):has(>:nth-child(3):last-child){--bc:3}
	.entry:not(.fw-entry) :is(ul.checks,ul.signs):has(>:only-child){--bc:1}

	/* Process steps: one row up to 5 steps, then 3 or 4 per row. */
	.bbe-fw .fw-entry ol.steps{--bc:4}
	.bbe-fw .fw-entry ol.steps:has(>:last-child:nth-child(3n)){--bc:3}
	.bbe-fw .fw-entry ol.steps:has(>:nth-child(2):last-child){--bc:2}
	.bbe-fw .fw-entry ol.steps:has(>:nth-child(4):last-child){--bc:4}
	.bbe-fw .fw-entry ol.steps:has(>:nth-child(5):last-child){--bc:5}
	.bbe-fw .fw-entry ol.steps:has(>:nth-child(10):last-child){--bc:5}

	/* City lists (content-driven, 30+ cities): fixed columns, last row centered. */
	.area-list{--bc:4}
	.areas-split .area-list{--bc:3}

	/* Blog/article cards: 3 per row; 4 (home "From The Blog", Related Articles) = one row of 4 on wide screens, 2x2 otherwise. */
	.post-grid{--bc:3}
	.post-grid:has(>:nth-child(4):last-child){--bc:2}
	.post-grid:has(>:nth-child(2):last-child){--bc:2}

	/* Home featured services: 4 cards. Services page: 20 service cards. */
	.feat-grid{--bc:2}
	.feat-grid:has(>:last-child:nth-child(3n)){--bc:3}
	.page-slug-services .svc-grid{--bc:2}
	.page-slug-services .svc-grid:has(>:last-child:nth-child(3n)){--bc:3}
}
@media (min-width:1181px){
	.area-list{--bc:5}
	.areas-split .area-list{--bc:3}
	.post-grid:has(>:nth-child(4):last-child){--bc:4}
	.feat-grid:has(>:last-child:nth-child(4n)){--bc:4}
	.page-slug-services .svc-grid:has(>:last-child:nth-child(4n)){--bc:4}
}
.feat-grid:has(>:nth-child(4):last-child) .feat-title{font-size:clamp(1.3rem,1.6vw,1.55rem)}

/* ---- Tablet: 2 per row, odd remainder centered ---- */
@media (min-width:641px) and (max-width:960px){
	.bbe-fw .fw-entry ul.checks,.bbe-fw .fw-entry ul.signs,.entry:not(.fw-entry) ul.checks,.entry:not(.fw-entry) ul.signs,
	.post-grid,.feat-grid,.page-slug-services .svc-grid,.area-list{display:flex!important;flex-wrap:wrap;justify-content:center;gap:var(--bg)!important;--bc:2}
	.area-list{--bc:3}
	.bbe-fw .fw-entry ul.checks>*,.bbe-fw .fw-entry ul.signs>*,.entry:not(.fw-entry) ul.checks>*,.entry:not(.fw-entry) ul.signs>*,
	.post-grid>*,.feat-grid>*,.page-slug-services .svc-grid>*,.area-list>*{flex:0 0 calc((100% - (var(--bc) - 1) * var(--bg)) / var(--bc));max-width:calc((100% - (var(--bc) - 1) * var(--bg)) / var(--bc));min-width:0}
}
/* ---- Phone: city list 2 per row, odd last city centered ---- */
@media (max-width:640px){
	.area-list{display:flex!important;flex-wrap:wrap;justify-content:center;gap:var(--bg)!important;--bc:2}
	.area-list>*{flex:0 0 calc((100% - var(--bg)) / 2);max-width:calc((100% - var(--bg)) / 2);min-width:0}
}

/* ===== v2.0.15 (pt151u): end-of-page quote form wears the retired "Talk To A Licensed Electrician" look ===== */
.qb-panel-wrap,#main > .section.qb-panel-wrap,.bbe-fw .fw-sec.qb-panel-wrap{background:transparent}
.quote-band .qb-panel,.bbe-fw .quote-band-inline .qb-panel,.v2-book-map .quote-band-inline .qb-panel{
	display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,500px);gap:clamp(1.75rem,3.5vw,3rem);align-items:center;
	border-radius:32px;padding:clamp(1.5rem,4.5vw,3.5rem);position:relative;overflow:hidden;
	background:radial-gradient(700px 360px at 100% 0,rgba(94,231,240,.18),transparent 60%),radial-gradient(600px 300px at 0 100%,rgba(255,212,0,.10),transparent 60%),linear-gradient(140deg,#12264a,#1d3f73 60%,#22508f);
	border:1px solid rgba(255,255,255,.16);box-shadow:var(--shadow-lg),0 0 60px rgba(94,231,240,.08)}
.qb-panel::before{display:none}
.qb-panel>*{position:relative}
.qb-panel .eyebrow{color:var(--teal)}
.qb-panel .eyebrow::before{display:none}
.qb-panel .quote-band-copy h2{color:var(--yellow);font-size:clamp(2rem,3.6vw,3.2rem);line-height:1.02;text-transform:uppercase;margin:0 0 .4em;text-shadow:0 2px 14px rgba(0,0,0,.25)}
.qb-panel .qb-lede{color:#e6edf7;max-width:52ch;margin:0 0 1.4rem}
.qb-panel .cta-actions{margin:0 0 1.4rem}
.qb-panel .qb-contact{grid-template-columns:1fr;gap:.6rem;margin:0 0 1.3rem;max-width:460px}
.qb-panel .qb-contact li{padding:.65rem .9rem}
.qb-panel .qb-contact li{background:rgba(11,21,37,.4);border-color:rgba(255,255,255,.14);min-width:0}
.qb-panel .qb-trust{margin:0;gap:.5rem}
.qb-panel .qb-trust li{background:rgba(11,21,37,.35);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:.35rem .8rem;font-size:.85rem;color:#e6edf7}
.qb-panel .qb-trust .ico{color:var(--yellow)}
.qb-panel .quote-card{background:rgba(8,16,32,.55);border:1px solid rgba(255,255,255,.16);border-radius:24px;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.qb-panel .quote-card .quote-title{font-size:1.6rem}
@media (max-width:960px){.quote-band .qb-panel,.bbe-fw .quote-band-inline .qb-panel,.v2-book-map .quote-band-inline .qb-panel{grid-template-columns:1fr}}
@media (max-width:520px){.qb-panel .qb-contact{grid-template-columns:1fr}.qb-panel .cta-actions .btn{flex:1 1 100%;justify-content:center}}

/* v2.0.15: Meet The Owner (About Us) */
.owner-block{display:grid;grid-template-columns:minmax(200px,300px) 1fr;gap:2rem;align-items:center;margin:2rem 0 2.25rem;padding:1.5rem;border-radius:24px;background:linear-gradient(140deg,#12264a,#1d3f73 60%,#22508f);color:#fff;box-shadow:0 18px 40px rgba(8,16,32,.25)}
.owner-block .owner-photo{margin:0;border-radius:18px;overflow:hidden;aspect-ratio:1/1;border:3px solid rgba(255,255,255,.18)}
.owner-block .owner-photo img{width:100%;height:100%;object-fit:cover;display:block}
.owner-block .eyebrow{color:#5fd4d0;text-transform:uppercase;letter-spacing:.12em;font-weight:800;font-size:.8rem;margin:0 0 .35rem}
.owner-block h2{color:#ffd23f;text-transform:uppercase;margin:0 0 .25rem!important;font-size:clamp(1.6rem,2.6vw,2.2rem)}
.owner-block .owner-role{font-weight:700;color:#dbe6f7;margin:0 0 .9rem}
.owner-block p{color:#e8eef8}
.owner-block .owner-actions{margin:1rem 0 0}
@media (max-width:760px){.owner-block{grid-template-columns:1fr;text-align:center}.owner-block .owner-photo{max-width:260px;margin:0 auto}}
/* v2.0.15: About hero (truck photo) needs a heavier overlay for the title */
body .hero .hero-bg:has(img[src*="about-us-truck"])::after{background:linear-gradient(90deg,rgba(6,14,30,.86) 0%,rgba(6,14,30,.7) 45%,rgba(6,14,30,.35) 100%),linear-gradient(180deg,rgba(6,14,30,.55),rgba(6,14,30,0) 30%)!important}

/* v2.0.15: title-banner hero (Electrical Permit Guide). The banner carries the title; shown whole (contain), never cropped. */
.hero.hero-banner{min-height:0;padding:clamp(1.25rem,3vw,2.5rem) 0 clamp(2.5rem,5vw,4rem);background:#00052c}
.hero.hero-banner .hero-inner{display:block;padding-top:0;padding-bottom:0}
.hero.hero-banner .hero-copy{max-width:none;text-align:center}
.hero-banner-art{max-width:1180px;margin:0 auto;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.14);box-shadow:0 18px 50px rgba(0,0,0,.45);aspect-ratio:16/5;background:#00052c}
.hero-banner-art img{display:block;width:100%;height:100%;object-fit:contain}
.hero.hero-banner .hero-sub{max-width:760px;margin:1.25rem auto 0}
@media (max-width:760px){.hero-banner-art{border-radius:12px}.hero.hero-banner{padding-top:.75rem}}

/* ===== v2.0.16 (pt159u): the end-of-page quote form section is always grey (#141414 fading lighter), on every page ===== */
.bbe-fw .fw-sec.quote-band.qb-panel-wrap,.bbe-fw .fw-sec.fw-dark.quote-band{background:linear-gradient(180deg,#141414 0%,#1d1d1d 30%,#3a3a3a 72%,#6b6b6b 100%)}
.bbe-fw .fw-sec.quote-band{margin-bottom:0}
.bbe-fw .fw-tail{margin:0;display:block}
/* v2.0.17: owner photo heroes (Electrical Repair, Contact, Service Areas). Text-free photos: H1 stays visible; overlay darker behind the copy, lighter over the subject. */
.bbe-fw .fw-hero .fw-hero-bg:has(img[src*="electrical-repairs-hero"])::after{background:linear-gradient(90deg,rgba(0,5,44,.86) 0%,rgba(0,5,44,.6) 48%,rgba(0,5,44,.5) 100%),linear-gradient(180deg,rgba(0,5,44,.5),rgba(0,5,44,0) 30%)!important}
body .hero .hero-bg:has(img[src*="contact-hero"])::after{background:linear-gradient(90deg,rgba(6,14,30,.82) 0%,rgba(6,14,30,.55) 40%,rgba(6,14,30,.15) 100%),linear-gradient(180deg,rgba(6,14,30,.5),rgba(6,14,30,0) 30%)!important}
body .hero .hero-bg:has(img[src*="service-areas-hero"])::after{background:linear-gradient(90deg,rgba(6,14,30,.8) 0%,rgba(6,14,30,.5) 45%,rgba(6,14,30,.2) 100%),linear-gradient(180deg,rgba(6,14,30,.5),rgba(6,14,30,0) 30%)!important}
@media (max-width:760px){
.bbe-fw .fw-hero .fw-hero-bg img[src*="electrical-repairs-hero"]{object-position:50% 20%!important}
body .hero .hero-bg:has(img[src*="contact-hero"])::after,body .hero .hero-bg:has(img[src*="service-areas-hero"])::after{background:linear-gradient(180deg,rgba(6,14,30,.55) 0%,rgba(6,14,30,.55) 60%,rgba(6,14,30,.3) 100%)!important}
}
/* v2.0.17 (pt163u): Service Areas, per Chris's v2.0.14 mockup (ref/service-areas-mockup-*.png): calendar card, quote-form card and
   "Do Not See Your City?" all inside the ONE gray booking module (#141414 fading lighter). Gray cards, no blue, no dividers. */
.v2-book-map .v2-book-grid.areas-module{display:flex;flex-direction:column;gap:0}
.areas-module .areas-stack-form{margin-top:clamp(2rem,4vw,3rem)}
.areas-module .quote-band-inline{--card:#1a1a1a;--glass:#1a1a1a;--glass-2:#1f1f1f;--card-line:rgba(255,255,255,.1);--line-2:rgba(255,255,255,.08);--line-3:rgba(255,255,255,.12);background:transparent!important}
.areas-module .quote-band-inline .qb-panel{background:linear-gradient(150deg,#1c1c1c 0%,#262626 55%,#303030 100%)!important;border:1px solid rgba(255,255,255,.1)!important;box-shadow:0 24px 60px rgba(0,0,0,.4)!important;border-radius:28px}
.areas-module .qb-panel .quote-band-copy h2{color:#fff;text-transform:none;font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.08;text-shadow:none}
.areas-module .qb-panel .qb-contact,.areas-module .qb-panel .cta-actions .btn:not(.btn-primary){display:none!important}
.areas-module .qb-panel .qb-trust{margin:0 0 1.4rem}
.areas-module .qb-panel .qb-trust li{background:transparent!important;border:0!important;padding:0 .4rem 0 0}
.areas-module .qb-panel .quote-card{background:#1f1f1f!important;border:1px solid rgba(255,255,255,.1)!important;box-shadow:0 14px 34px rgba(0,0,0,.35)!important}
.areas-module .areas-nocity{margin-top:clamp(2.5rem,5vw,3.5rem)}
.areas-module .areas-nocity .inline-cta{background:linear-gradient(90deg,#222,#2a2a2a)!important;border:1px solid rgba(255,255,255,.1)!important;border-left:4px solid var(--yellow)!important}
.areas-module input,.areas-module textarea,.areas-module select{background:#141414!important;border-color:rgba(255,255,255,.12)!important}
.areas-module .qb-panel .quote-band-copy{display:flex;flex-direction:column;align-items:flex-start}
.areas-module .qb-panel .quote-band-copy .qb-trust{order:5}
.areas-module .qb-panel .quote-band-copy .cta-actions{order:6;margin:0}

/* v2.0.18 (pt166u): area grids pick their column count from the cell count (set inline by [bbe_areas_grid]) so every row is full. */
.area-list.al-fit{display:flex!important;flex-wrap:wrap;justify-content:center;gap:var(--bg)!important;--bc:var(--bcp,2)}
.area-list.al-fit>*{flex:0 0 calc((100% - (var(--bc) - 1) * var(--bg)) / var(--bc))!important;max-width:calc((100% - (var(--bc) - 1) * var(--bg)) / var(--bc))!important;min-width:0}
@media (min-width:641px){.area-list.al-fit,.areas-split .area-list.al-fit{--bc:var(--bct,4)}}
@media (min-width:961px){.area-list.al-fit{--bc:var(--bcm,4)}.areas-split .area-list.al-fit{--bc:var(--bcsm,2)}}
@media (min-width:1181px){.area-list.al-fit{--bc:var(--bcw,5)}.areas-split .area-list.al-fit{--bc:var(--bcsw,4)}}
.area-list.al-fit a,.area-list.al-fit .area-here>span{min-width:0;overflow-wrap:anywhere}
.area-list .area-here>span{display:flex;gap:.5rem;align-items:center;height:100%;padding:.7rem .9rem;border-radius:12px;font-weight:700;color:#141414;background:var(--yellow);border:1px solid var(--yellow)}
.area-list .area-here .ico{color:#141414}
.area-list .area-more>a{border-style:dashed!important}
@media (min-width:1181px){.areas-split .area-list.al-fit a,.areas-split .area-list.al-fit .area-here>span{font-size:.86rem;padding:.6rem .6rem;gap:.35rem}}
/* v2.0.18: never break city names mid-word; tighten the 4-up tiles on the Areas map split */
.area-list.al-fit a,.area-list.al-fit .area-here>span{overflow-wrap:normal!important;word-break:normal!important;hyphens:none!important}
@media (min-width:1181px){.areas-split .area-list.al-fit{--bg:.5rem}.areas-split .area-list.al-fit a,.areas-split .area-list.al-fit .area-here>span{font-size:.8rem!important;padding:.55rem .45rem!important;gap:.28rem!important;letter-spacing:0!important}.areas-split .area-list.al-fit a svg,.areas-split .area-list.al-fit .area-here>span svg{width:13px!important;height:13px!important;flex:0 0 13px}}
/* ===== v2.0.18 (pt166u): end-of-page form module fully GRAY. Root cause of "still blue": v2.0.17 grayed the
   section wrapper only; the inner .qb-panel kept the v2.0.15 navy gradient (#12264a > #1d3f73 > #22508f) and the
   form card / chips kept navy rgba(8,16,32) / rgba(11,21,37) tints. No navy anywhere in this module now. ===== */
body .quote-band .qb-panel,body .bbe-fw .quote-band-inline .qb-panel,body .v2-book-map .quote-band-inline .qb-panel,body .qb-panel{
	background:radial-gradient(700px 360px at 100% 0,rgba(255,255,255,.06),transparent 60%),radial-gradient(600px 300px at 0 100%,rgba(255,212,0,.06),transparent 60%),linear-gradient(160deg,#2a2a2a 0%,#1c1c1c 55%,#141414 100%)!important;
	border:1px solid rgba(255,255,255,.12)!important;box-shadow:0 24px 60px rgba(0,0,0,.45)!important}
body .qb-panel .qb-contact li,body .qb-panel .qb-trust li{background:linear-gradient(180deg,#333,#222)!important;border-color:rgba(255,255,255,.12)!important}
body .qb-panel .cc-ic{background:rgba(255,255,255,.06)!important}
body .qb-panel .btn-secondary{background:rgba(255,255,255,.04)!important}
body .qb-panel .quote-card,body .quote-band .quote-card{background:linear-gradient(165deg,#2e2e2e 0%,#1f1f1f 60%,#181818 100%)!important;border:1px solid rgba(255,255,255,.14)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:0 18px 40px rgba(0,0,0,.45)!important}
body .quote-band .quote-card input,body .quote-band .quote-card select,body .quote-band .quote-card textarea{background:#141414!important;border-color:rgba(255,255,255,.16)!important;color:#fff!important}
body .quote-band .quote-card input:focus,body .quote-band .quote-card select:focus,body .quote-band .quote-card textarea:focus{border-color:var(--yellow)!important;outline:none}
body .quote-band.qb-panel-wrap,body #main>.section.quote-band.qb-panel-wrap,body .bbe-fw .fw-sec.quote-band.qb-panel-wrap{background:linear-gradient(180deg,#141414 0%,#1d1d1d 35%,#2a2a2a 75%,#333 100%)!important}
/* v2.0.18 (pt167u): Generators owner photo hero. Overlay darker behind the copy, lighter over the generator; keep the unit in frame. */
.bbe-fw .fw-hero .fw-hero-bg:has(img[src*="generators-hero"])::after{background:linear-gradient(90deg,rgba(0,5,44,.86) 0%,rgba(0,5,44,.62) 45%,rgba(0,5,44,.35) 100%),linear-gradient(180deg,rgba(0,5,44,.5),rgba(0,5,44,0) 30%)!important}
.bbe-fw .fw-hero .fw-hero-bg img[src*="generators-hero"]{object-position:44% 100%!important}
@media (max-width:760px){
/* Phone: the hero is taller than the photo's useful area and the form covers the lower half, so pin the photo to the top
   ~700px (copy area) and centre the generator under the subtitle/trust row; fade into the hero colour below. */
.bbe-fw .fw-hero:has(img[src*="generators-hero"]) .hero-form{margin-top:clamp(170px,46vw,210px)}
.bbe-fw .fw-hero .fw-hero-bg:has(img[src*="generators-hero"]){bottom:auto!important;height:690px!important;-webkit-mask-image:linear-gradient(180deg,#000 88%,transparent 100%);mask-image:linear-gradient(180deg,#000 88%,transparent 100%)}
.bbe-fw .fw-hero .fw-hero-bg img[src*="generators-hero"]{width:100%!important;height:100%!important;object-fit:cover!important;object-position:43% 50%!important}
.bbe-fw .fw-hero .fw-hero-bg:has(img[src*="generators-hero"])::after{background:linear-gradient(180deg,rgba(0,5,44,.8) 0%,rgba(0,5,44,.7) 58%,rgba(0,5,44,.25) 74%,rgba(0,5,44,.15) 100%)!important}
}
.bbe-fw .fw-hero:has(img[src*="generators-hero"]) .hero-copy :is(h1,p,li,span,a,.hero-sub,.eyebrow){text-shadow:0 2px 10px rgba(0,5,44,.85),0 0 2px rgba(0,5,44,.6)}
/* ===== v2.0.19 (pt168u): end-of-page form section = one flat #141414 from top to bottom (the v2.0.16/v2.0.18 gradients faded
   it lighter toward the bottom while the footer divider used #6b6b6b, giving a lighter band + mismatched peaks). The tail
   divider is now filled #141414 (BBE_FW_FORM_BG) and the padding under the card is tight. Footer stays #00052c. ===== */
body.bbe-fw .fw-sec.fw-endform,body.bbe-fw .fw-sec.quote-band.qb-panel-wrap,body .quote-band.qb-panel-wrap,body #main>.section.quote-band.qb-panel-wrap{background:#141414!important;background-image:none!important}
body.bbe-fw .fw-sec.fw-endform,body.bbe-fw .fw-sec.quote-band.qb-panel-wrap{padding-bottom:clamp(1.25rem,2.5vw,2rem)!important}
body.bbe-fw .fw-tail{background:#00052c!important;margin:0!important}

/* ===== v2.0.20b (pt176u): ONE cost estimator. Multi-select project cards, inline rows right under them, one total. ===== */
.estimator.est-v2{display:block;padding:clamp(1rem,2.2vw,1.5rem)}
.est-v2 .step-label{margin:0 0 .6rem}
.est-v2 .est-hint{font-weight:500;font-size:.85rem;color:#9fb0cc}
.est-pick{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.4rem}
.est-card{display:flex;align-items:center;gap:.5rem;min-height:42px;padding:.4rem .6rem;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(20,20,20,.55);color:#e6edf7;font:600 .86rem/1.15 var(--font);text-align:left;cursor:pointer;transition:border-color .15s,background .15s}
.est-card:hover{border-color:rgba(255,212,0,.6)}
.est-card:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
.est-card i{flex:none;width:20px;height:20px;border-radius:6px;border:1.5px solid rgba(255,255,255,.35);display:grid;place-items:center}
.est-card.is-on{border-color:var(--yellow);background:rgba(255,212,0,.12);color:#fff}
.est-card.is-on i{background:var(--yellow);border-color:var(--yellow)}
.est-card.is-on i::after{content:"";width:9px;height:5px;border:solid #141414;border-width:0 0 2.5px 2.5px;transform:translateY(-1px) rotate(-45deg)}
.est-mods{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin:.7rem 0 .2rem}
.est-mod{display:flex;align-items:center;gap:.5rem;margin:0}
.est-mod[hidden]{display:none}
body .est-v2 .est-mod label{margin:0;font-size:.82rem;font-weight:600;color:#c3cde0;white-space:nowrap}
.est-v2 select,.est-v2 input[type=number]{min-height:38px;padding:.3rem .55rem;font:500 .88rem var(--font);color:#fff;background:rgba(20,20,20,.55);border:1px solid rgba(255,255,255,.16);border-radius:10px}
.est-mod select{width:auto;max-width:100%}
.est-rows{display:grid;gap:.35rem;margin-top:.6rem}
.est-rows[hidden]{display:none}
.est-row{display:grid;grid-template-columns:minmax(120px,170px) minmax(0,1fr) minmax(220px,300px) 150px 30px;column-gap:.9rem;align-items:center;padding:.45rem .5rem .45rem .8rem;border-radius:12px;background:rgba(20,20,20,.45);border:1px solid rgba(255,255,255,.1)}
.est-name{margin:0;color:var(--yellow);font-weight:700;font-size:.92rem;line-height:1.2}
.est-scope{min-width:0;display:grid;gap:.25rem}
.est-scope select{width:100%}
.est-addon{display:flex;align-items:center;gap:.4rem;margin:0;font-size:.8rem!important;font-weight:500!important;color:#c3cde0!important;cursor:pointer;line-height:1.25}
.est-addon input{flex:none;accent-color:var(--yellow);width:16px;height:16px;margin:0}
.est-q{display:flex;align-items:center;gap:.5rem;min-width:0}
.est-q input[type=range]{flex:1;min-width:0;height:24px;accent-color:var(--yellow);background:transparent;cursor:pointer}
.est-q input[type=number]{flex:0 0 66px;width:66px;text-align:center;font-weight:700;padding:.3rem .2rem}
.est-unit{flex:0 1 auto;font-size:.76rem;color:#9fb0cc;white-space:nowrap;max-width:96px;overflow:hidden;text-overflow:ellipsis}
.est-sub{margin:0;text-align:right;color:#fff;font-weight:700;font-size:.92rem;white-space:nowrap}
.est-x{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:transparent;color:#c3cde0;font-size:1.15rem;line-height:1;cursor:pointer;padding:0}
.est-x:hover{background:var(--call-2,#b3001b);border-color:var(--call-2,#b3001b);color:#fff}
.est-total{position:sticky;bottom:0;z-index:5;display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"tot disc btns";align-items:center;gap:.4rem 1.25rem;margin-top:.6rem;padding:.65rem .8rem .65rem 1rem;border-radius:14px;background:#1c1c1c;border:1px solid rgba(255,212,0,.35);box-shadow:0 -6px 22px rgba(0,0,0,.35)}
.est-tot{grid-area:tot;margin:0;display:flex;align-items:baseline;gap:.6rem;white-space:nowrap}
.est-tot-k{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#c3cde0}
.est-v2 .est-range{margin:0;font-size:clamp(1.45rem,2.4vw,1.85rem);line-height:1.1}
.est-v2 .est-range .dash{font-size:.9rem;margin:0 .1rem}
.est-v2 .est-disclaimer{grid-area:disc;display:block;margin:0;padding:0;background:none;font-size:.76rem;line-height:1.35;color:#9fb0cc}
.est-btns{grid-area:btns;display:flex;align-items:center;gap:.6rem}
.est-go.btn-primary{background:linear-gradient(180deg,var(--call-2,#b3001b) 0%,var(--call-3,#7a0010) 100%)!important;color:#fff!important;border-color:var(--call-3,#7a0010)!important;box-shadow:0 8px 22px rgba(179,0,27,.35)!important;font-weight:800;white-space:nowrap;padding:.7rem 1.3rem}
.est-go.btn-primary:hover{background:linear-gradient(180deg,var(--call-h1,#d81b3a) 0%,var(--call-h3,#8c0014) 100%)!important}
.est-clear{background:none;border:0;padding:.3rem;color:#c3cde0;font:600 .82rem var(--font);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.est-v2 .btn[disabled],.est-clear[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none!important}
.est-v2.est-empty .est-total{border-color:rgba(255,255,255,.12)}
.est-v2 .est-src{margin:.5rem 0 0;font-size:.74rem}
.est-v2 .est-send{max-width:760px;margin:1.25rem auto 0}
@media (max-width:1100px){
	.est-pick{grid-template-columns:repeat(3,minmax(0,1fr))}
	.est-row{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) 130px 30px;grid-template-areas:"n s sub x" "q q q q";row-gap:.4rem}
	.est-name{grid-area:n}.est-scope{grid-area:s}.est-sub{grid-area:sub}.est-x{grid-area:x}.est-q{grid-area:q}.est-q:empty{display:none}
	.est-total{grid-template-columns:1fr auto;grid-template-areas:"tot btns" "disc disc"}
}
@media (max-width:760px){
	.est-v2 .est-total{bottom:calc(64px + env(safe-area-inset-bottom))}
}
@media (max-width:560px){
	.estimator.est-v2{padding:.85rem .7rem}
	.est-pick{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem}
	.est-card:last-child:nth-child(odd){grid-column:1/-1}
	.est-card{font-size:.82rem;min-height:40px;padding:.35rem .5rem}
	.est-mods{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}
	.est-mod{display:grid;gap:.15rem}.est-mod select{width:100%}
	.est-row{grid-template-columns:minmax(0,1fr) auto 30px;grid-template-areas:"n sub x" "s s s" "q q q";padding:.5rem .55rem .55rem .7rem}
	.est-scope:empty{display:none}
	.est-total{padding:.55rem .65rem;gap:.25rem .6rem;border-radius:12px}
	.est-tot{flex-direction:column;gap:0}
	.est-v2 .est-range{font-size:1.35rem}
	.est-total{grid-template-columns:minmax(0,1fr) auto}
	.est-btns{flex-direction:column;align-items:center;gap:.1rem}
	.est-go.btn-primary{padding:.55rem .8rem;font-size:.84rem}
	.est-clear{padding:.1rem .2rem;font-size:.76rem}
	.est-v2 .est-disclaimer{font-size:.7rem}
}

/* v2.0.20 (pt175u): Contact: lead line + booking calendar in the left column of the top section (quote form stays right). */
.contact-book{margin-top:clamp(1.5rem,3vw,2.25rem);scroll-margin-top:calc(var(--header-h,76px) + 1rem)}
.contact-book-lead{font-family:var(--display);font-weight:600;font-size:clamp(1.1rem,1.6vw,1.3rem);line-height:1.3;color:#fff;margin:0 0 1rem;padding-left:.85rem;border-left:3px solid var(--yellow,#ffd400);max-width:34rem;text-wrap:balance}
.entry .contact-book .glass-card.contact-cal{margin:0}
.contact-cal{gap:1.5rem;padding:clamp(1rem,2vw,1.4rem)}
.contact-cal .fgrid{grid-template-columns:1fr}
.contact-cal .bk-side{min-width:0}
@media (max-width:1100px){.contact-cal{grid-template-columns:1fr}.contact-cal .fgrid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.contact-cal .fgrid{grid-template-columns:1fr}.contact-cal{padding:1rem}}
.contact-map-module .section-head{margin-bottom:clamp(1.25rem,2.5vw,1.75rem)}
.entry .split-2:has(.contact-book){align-items:start}

/* v2.0.20b (pt176u): Contact calendar card uses the exact Request Service card styling (no navy gradient), yellow/red accents,
   and the left column + form card are equal height (tops and bottoms line up, same 3rem gutter). */
body .glass-card.contact-cal{background:rgba(11,21,37,.62)!important;background-image:none!important;-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);border:1px solid rgba(110,140,255,.32)!important;border-radius:24px!important;box-shadow:0 24px 60px rgba(0,0,0,.4)!important;padding:1.6rem!important}
body .glass-card.contact-cal::before,body .glass-card.contact-cal::after{display:none!important}
.contact-cal .bk-nav{background:rgba(20,20,20,.55);border:1px solid rgba(255,255,255,.12);color:#fff}
.contact-cal .bk-nav:hover:not([disabled]){border-color:var(--yellow);color:var(--yellow)}
.contact-cal .bk-dow,.contact-cal .bk-hint,.contact-cal .bk-empty{color:#aab3c2}
.contact-cal .bk-day{color:rgba(230,237,247,.32)}
.contact-cal .bk-day.is-open{background:rgba(20,20,20,.55);border-color:rgba(255,255,255,.18);color:#fff}
.contact-cal .bk-day.is-open:hover{border-color:var(--yellow)}
.contact-cal .bk-day.is-sel{background:var(--yellow);border-color:var(--yellow);color:#141414}
.contact-cal .bk-step span{background:var(--yellow);color:#141414}
.contact-cal .bk-slot{background:rgba(20,20,20,.55);border:1px solid rgba(255,255,255,.12);color:#fff}
.contact-cal .bk-slot:hover{border-color:var(--yellow)}
.contact-cal .bk-slot.is-sel{background:var(--yellow);border-color:var(--yellow);color:#141414}
.contact-cal .bk-emerg{background:rgba(179,0,27,.12);border-color:rgba(179,0,27,.45)}
.contact-cal .bk-form input,.contact-cal .bk-form textarea{background:rgba(20,20,20,.55)!important;border:1px solid rgba(255,255,255,.12)!important;border-radius:12px}
.contact-cal .bk-form .btn-primary{background:linear-gradient(180deg,var(--call-2,#b3001b) 0%,var(--call-3,#7a0010) 100%)!important;color:#fff!important;border-color:var(--call-3,#7a0010)!important;box-shadow:0 8px 22px rgba(179,0,27,.35)!important;border-radius:999px}
@media (min-width:861px){
	.entry .split-2:has(.contact-book){align-items:stretch}
	.entry .split-2:has(.contact-book)>div:first-child{display:flex;flex-direction:column}
	.entry .split-2:has(.contact-book)>div:first-child>h2:first-child{margin-top:0}
	.entry .split-2:has(.contact-book) .contact-book{margin-top:auto;padding-top:clamp(1.25rem,2.5vw,1.75rem)}
	.entry .split-2:has(.contact-book)>div:last-child{display:flex;flex-direction:column}
	.entry .split-2:has(.contact-book) .quote-card{flex:1;display:flex;flex-direction:column;margin:0}
	.entry .split-2:has(.contact-book) .quote-card .bbe-form{flex:1;display:flex;flex-direction:column}
	.entry .split-2:has(.contact-book) .quote-card .fgrid{flex:1;grid-template-rows:auto auto auto 1fr}
	.entry .split-2:has(.contact-book) .quote-card .field:has(textarea){display:flex;flex-direction:column}
	.entry .split-2:has(.contact-book) .quote-card textarea{flex:1;min-height:6rem}
}
.contact-cal .bk-emerg a,.contact-cal a{color:var(--yellow)!important}

/* v2.0.21 (pt179u): Types & Specs section on service pages (CSV wording), gradient cards, even rows (an odd last card spans the row). */
.v221-types .section-head{margin-bottom:.9rem}
.v221-group+.v221-group{margin-top:1.4rem}
.v221-gh{margin:0 0 .3rem;font-size:clamp(1.1rem,1.8vw,1.3rem);color:#fff}
.v221-gp{margin:0 0 .7rem;color:#c3cde0;max-width:70ch}
.v221-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.v221-grid.is-odd>.v221-card:last-child{grid-column:1/-1}
.v221-card{padding:1rem 1.1rem;border-radius:16px;background:var(--card,linear-gradient(160deg,#16204a,#0b1238));border:1px solid var(--card-line,rgba(255,255,255,.12));box-shadow:var(--card-glow,none);color:#e6edf7}
.v221-card h4{margin:0 0 .3rem;color:var(--yellow);font-size:1rem;line-height:1.25}
.v221-card p{margin:0;font-size:.93rem;line-height:1.5;color:#dfe6f2}
.v221-card ul{margin:.45rem 0 0;padding-left:1.1rem;display:grid;gap:.25rem;font-size:.9rem;line-height:1.45;color:#dfe6f2}
.v221-card ul strong{color:#fff}
.v221-specs{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:1rem}
.v221-specs-k{font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#c3cde0;margin-right:.3rem}
.v221-chip{padding:.3rem .7rem;border-radius:999px;border:1px solid rgba(255,212,0,.5);background:rgba(255,212,0,.08);color:#fff;font-weight:700;font-size:.86rem}
.v221-note{display:grid;grid-template-columns:auto 1fr;gap:.3rem .8rem;align-items:start;margin-top:1.1rem;padding:1rem 1.1rem;border-radius:16px;background:linear-gradient(135deg,#2a2a2a 0%,#4a0a14 100%);border:1px solid rgba(255,255,255,.12)}
.v221-note>.ico{width:26px;height:26px;color:var(--yellow)}
.v221-note p{margin:0;color:#fff;font-weight:600}
.v221-note .v221-note-btns{grid-column:2;display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}
@media (max-width:640px){.v221-grid{grid-template-columns:1fr}.v221-note{grid-template-columns:1fr}.v221-note .v221-note-btns{grid-column:1}}
/* v2.0.21: estimator type/spec selects, price-on-request lines, notes, factors. */
.est-scope{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.est-scope .est-addon{grid-column:1/-1}
.est-fixed{align-self:center;font-size:.84rem;color:#c3cde0}
.est-sub.is-req{color:#c3cde0;font-weight:600;font-size:.84rem;white-space:normal}
.est-note{grid-column:1/-1;margin:.35rem 0 .1rem;font-size:.8rem;line-height:1.4;color:#ffd400}
.est-v2 .est-onreq{font-size:1.1rem}
.est-req{font-size:.74rem;color:#c3cde0;font-weight:600}
.est-req[hidden]{display:none}
.est-factors{margin-top:1rem;padding:.9rem 1rem;border-radius:14px;background:rgba(20,20,20,.45);border:1px solid rgba(255,255,255,.1)}
.est-factors-h{margin:0 0 .5rem;font-weight:800;color:#fff}
.est-factors ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem .5rem}
.est-factors li{display:flex;align-items:center;gap:.3rem;padding:.25rem .6rem;border-radius:999px;background:rgba(255,255,255,.06);font-size:.82rem;color:#e6edf7}
.est-factors li .ico{width:14px;height:14px;color:var(--yellow)}
@media (max-width:1100px){.est-note{grid-area:auto}.est-row{grid-template-areas:"n s sub x" "q q q q" "nt nt nt nt"}.est-note{grid-area:nt}}
@media (max-width:560px){.est-row{grid-template-areas:"n sub x" "s s s" "q q q" "nt nt nt"}.est-scope{grid-template-columns:1fr}}
/* v2.0.21: 20 services A to Z in the Services dropdown, read down column 1 then column 2. */
@media (min-width:961px){body .site-header .sub-menu.mega{grid-auto-flow:column;grid-template-rows:repeat(10,auto);grid-template-columns:repeat(2,minmax(250px,auto));min-width:600px}}
/* v2.0.21b (pt181u): 4-column estimator table, Service | Type | Specs | Average Price, total module at the bottom. */
.est-4col .est-table{border-radius:16px;overflow:hidden;border:1px solid var(--card-line,rgba(255,255,255,.12));background:linear-gradient(160deg,#141a3d 0%,#0a0f2e 55%,#141414 100%);box-shadow:0 18px 40px rgba(0,0,0,.35)}
.est-4col .est-head,.est-4col .est-row{display:grid;grid-template-columns:minmax(230px,1.25fr) minmax(200px,1.2fr) minmax(200px,1.2fr) minmax(150px,.8fr);column-gap:1rem;align-items:center;padding:.55rem 1.1rem}
.est-4col .est-head{background:#141414;border-bottom:1px solid rgba(255,212,0,.35);padding-top:.8rem;padding-bottom:.8rem}
.est-4col .est-head span{font-family:var(--display);font-size:1.15rem;letter-spacing:.02em;color:var(--yellow,#ffd400)}
.est-4col .est-head span:last-child,.est-4col .est-price{text-align:right}
.est-4col .est-rows{display:block;margin:0;gap:0}
.est-4col .est-row{grid-template-areas:none;border-radius:0;border:0;border-bottom:1px solid rgba(255,255,255,.07);background:transparent;box-shadow:none;min-height:52px;transition:background .2s}
.est-4col .est-row:last-child{border-bottom:0}
.est-4col .est-row:nth-child(even){background:rgba(255,255,255,.025)}
.est-4col .est-row:hover{background:rgba(255,255,255,.05)}
.est-4col .est-row.is-on{background:linear-gradient(90deg,rgba(225,29,42,.16),rgba(20,26,61,.35) 45%,rgba(20,20,20,.25));box-shadow:inset 3px 0 0 #e11d2a}
.est-4col .est-c{min-width:0;display:flex;flex-direction:column;gap:.35rem;grid-area:auto}
.est-4col .est-svc{flex-direction:row;align-items:center;gap:.65rem;cursor:pointer;margin:0}
.est-4col .est-svc input{position:absolute;opacity:0;width:1px;height:1px}
.est-4col .est-box{flex:0 0 20px;width:20px;height:20px;border-radius:6px;border:2px solid rgba(255,255,255,.35);background:rgba(0,0,0,.25);display:grid;place-items:center;transition:all .15s}
.est-4col .est-svc input:checked+.est-box{background:#e11d2a;border-color:#e11d2a}
.est-4col .est-svc input:checked+.est-box::after{content:"";width:9px;height:5px;border:2px solid #fff;border-top:0;border-right:0;transform:translateY(-1px) rotate(-45deg)}
.est-4col .est-svc input:focus-visible+.est-box{outline:2px solid var(--yellow,#ffd400);outline-offset:2px}
.est-4col .est-name{margin:0;font-weight:700;font-size:.95rem;color:#e6edf7;line-height:1.25}
.est-4col .est-row.is-on .est-name{color:#fff}
.est-4col .est-c select,.est-4col .est-q input{width:100%;min-height:40px;padding:.45rem 2rem .45rem .7rem;border-radius:10px;border:1px solid rgba(255,212,0,.45);background-color:#0b1036;color:#fff;font-size:.9rem;font-weight:600}
.est-4col .est-c select:focus,.est-4col .est-q input:focus{outline:none;border-color:var(--yellow,#ffd400);box-shadow:0 0 0 3px rgba(255,212,0,.2)}
.est-4col .est-c select option{background:#0b1036;color:#fff}
.est-4col .est-fixed{display:block;padding:.45rem .7rem;border-radius:10px;background:rgba(255,255,255,.06);border:1px dashed rgba(255,255,255,.2);color:#e6edf7;font-size:.88rem;font-weight:600}
.est-4col .est-q{display:flex;align-items:center;gap:.5rem}
.est-4col .est-q label{font-size:.78rem;color:#c3cde0;white-space:nowrap;text-transform:capitalize}
.est-4col .est-q input{width:110px;padding-right:.5rem}
.est-4col .est-addon{font-size:.8rem;color:#c3cde0;display:flex;gap:.4rem;align-items:center}
.est-4col .est-sub{text-align:right;font-family:var(--display);font-size:1.2rem;font-weight:600;color:var(--yellow,#ffd400);white-space:nowrap}
.est-4col .est-sub.is-req{font-family:inherit;font-size:.85rem;font-weight:700;color:#c3cde0;white-space:normal}
.est-4col .est-note{grid-column:2/-1;margin:.1rem 0 .25rem;padding:.55rem .75rem;border-radius:10px;background:linear-gradient(90deg,#2a2a2a,#5a0b12);color:#fff;font-size:.82rem;line-height:1.4}
/* Cost Average Total module */
.est-4col .est-total{position:static;display:block;margin-top:1.1rem;padding:1.2rem 1.3rem;border-radius:16px;border:1px solid rgba(255,212,0,.35);background:linear-gradient(150deg,#1b2150 0%,#0a0f2e 50%,#141414 100%);box-shadow:0 18px 40px rgba(0,0,0,.35)}
.est-4col .est-total-top{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;gap:1rem 1.5rem;align-items:center}
.est-4col .est-tot{display:block;white-space:normal}
.est-4col .est-tot p{margin:0}
.est-4col .est-tot-k{font-family:var(--display);font-size:1.45rem;letter-spacing:.01em;text-transform:none;color:#fff}
.est-4col .est-range{font-size:clamp(1.9rem,3.2vw,2.5rem);margin:.15rem 0}
.est-4col .est-count,.est-4col .est-req{font-size:.85rem;color:#c3cde0}
.est-4col .est-req{color:#ffd400;font-weight:600}
.est-4col .est-mods{margin:0;display:grid;gap:.5rem}
.est-4col .est-mod{margin:0;display:grid;grid-template-columns:96px 1fr;align-items:center;gap:.5rem}
.est-4col .est-mod label{font-size:.8rem;color:#c3cde0}
.est-4col .est-mod select{min-height:38px;border-radius:10px;border:1px solid rgba(255,212,0,.45);background-color:#0b1036;color:#fff;padding:.35rem .6rem}
.est-4col .est-btns{flex-direction:column;align-items:stretch;gap:.4rem}
.est-4col .est-clear{background:none;border:0;color:#c3cde0;text-decoration:underline;cursor:pointer}
.est-4col .est-disclaimer{margin:1rem 0 0;padding:.7rem .9rem;border-radius:10px;background:rgba(255,255,255,.05);font-size:.84rem;color:#e6edf7}
.est-4col .est-factors{margin-top:.8rem}
.est-4col .est-src{margin:.7rem 0 0}
.est-4col .est-mini{display:none}
@media (max-width:960px){
	.est-4col .est-head{display:none}
	.est-4col .est-table{border-radius:14px}
	.est-4col .est-row{grid-template-columns:1fr;row-gap:.5rem;padding:.75rem .9rem}
	.est-4col .est-row:not(.is-on) .est-type,.est-4col .est-row:not(.is-on) .est-spec,.est-4col .est-row:not(.is-on) .est-price,.est-4col .est-c:empty{display:none}
	.est-4col .est-row.is-on .est-type::before,.est-4col .est-row.is-on .est-spec::before,.est-4col .est-row.is-on .est-price::before{content:attr(data-h);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#9fb0cc}
	.est-4col .est-price{flex-direction:row;justify-content:space-between;align-items:center;text-align:left;padding-top:.4rem;border-top:1px dashed rgba(255,255,255,.12)}
	.est-4col .est-note{grid-column:1}
	.est-4col .est-total-top{grid-template-columns:1fr}
	.est-4col .est-has .est-mini,.est-4col.est-has .est-mini{display:flex;position:sticky;bottom:calc(72px + env(safe-area-inset-bottom));z-index:6;justify-content:space-between;align-items:center;margin-top:.6rem;padding:.55rem .9rem;border-radius:12px;background:#141414;border:1px solid rgba(255,212,0,.45);box-shadow:0 10px 24px rgba(0,0,0,.45);font-weight:700;color:#fff}
	.est-4col .est-mini-v{font-family:var(--display);color:var(--yellow,#ffd400);font-size:1.15rem}
}
.est-4col .est-fixed{align-self:stretch;text-align:left}
.est-4col .est-row .est-note{grid-area:auto;grid-column:2/-1}
@media (max-width:960px){.est-4col .est-row .est-note{grid-column:1;order:5}.est-4col.est-has .est-mini{justify-content:flex-start;gap:.75rem;margin-right:64px}}
.est-4col .est-total-top>*{grid-area:auto!important;min-width:0}
.est-4col .est-total-top .est-mods{grid-template-columns:1fr}
.est-4col .est-mod select{width:100%;min-width:0}
.est-4col .est-btns .est-go{white-space:nowrap}
@media (max-width:960px){.est-4col .est-mod{grid-template-columns:90px minmax(0,1fr)}.est-4col .est-btns{flex-direction:row;align-items:center;justify-content:space-between}}
/* v2.0.21: page hero video (Services hub). Same treatment as the home hero: transparent black overlay, poster fallback. */
body .hero.hero-has-video .hero-bg-page-video{background-color:#000;background-size:cover;background-position:50% 50%;background-repeat:no-repeat}
body .hero.hero-has-video .hero-bg-page-video video.hero-video{opacity:1;object-position:50% 50%}
body .hero.hero-has-video .hero-bg-page-video::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.66) 0%,rgba(0,0,0,.5) 45%,rgba(0,0,0,.42) 100%),linear-gradient(180deg,rgba(0,0,0,0) 70%,#00052c 100%)!important;opacity:1!important}
@media (max-width:760px){body .hero.hero-has-video .hero-bg-page-video video.hero-video{object-position:52% 50%}}
/* v2.0.21: 1600x500 owner banners as full-width service heroes. object-position (photo meta) keeps the subject in frame; on phones the
   photo is kept to the top of the tall hero and fades out under the form so it is never stretched into a thin slice. */
@media (max-width:960px){
.bbe-fw .fw-hero .fw-hero-bg:has(img[src*="-lighting-hero"]),.bbe-fw .fw-hero .fw-hero-bg:has(img[src*="electrical-wiring-hero"]){bottom:auto!important;height:min(760px,100%)!important;-webkit-mask-image:linear-gradient(180deg,#000 75%,transparent 100%);mask-image:linear-gradient(180deg,#000 75%,transparent 100%)}
}
@media (max-width:760px){.bbe-fw .fw-hero .fw-hero-bg img[src*="exterior-lighting-hero"]{object-position:50% 50%!important}}

/* v2.0.21 (pt184u): home hero, quote card fits above the fold and lines up with the copy + Fuse column */
@media (min-width:961px){
  .hero-home .hero-inner{align-items:stretch}
  .hero-home .hero-copy,.hero-home .hero-form{align-self:stretch}
  .hero-home .hero-copy{display:flex;flex-direction:column}
  .hero-home .hero-copy .fuse-box{margin-top:auto}
  .hero-home .hero-copy .hero-sub{margin-bottom:1.1rem}
  .hero-home .hero-form{display:flex;flex-direction:column}
  .hero-home .hero-form .quote-card{flex:1;display:flex;flex-direction:column}
  .hero-home .quote-card form{flex:1;display:flex;flex-direction:column}
  .hero-home .quote-card form button[type=submit]{margin-top:auto}
}
@media (min-width:961px) and (max-height:940px){
  .hero-home .hero-copy h1{font-size:clamp(2.4rem,6.4vh,3.4rem);line-height:1.05;margin-bottom:.6rem}
  .hero-home .hero-copy .hero-sub{font-size:1.02rem;margin-bottom:.9rem}
  .hero-home .hero-copy .eyebrow{margin-bottom:.4rem}
  .hero-home .hero-orb.fuse-box{padding:1rem 1.2rem 1rem 1.35rem;gap:1rem;grid-template-columns:minmax(0,1fr) 110px}
  .hero-home .fb-orb{width:110px;height:110px}
  .hero-home .fuse-box .fb-text{margin-bottom:.6rem;font-size:.9rem;line-height:1.4}
  .hero-home .quote-card{padding:1rem 1.2rem}
  .hero-home .quote-card .quote-title{font-size:1.45rem;margin-bottom:2px}
  .hero-home .quote-card .quote-sub{font-size:.88rem;margin-bottom:.6rem}
  .hero-home .quote-card form p{margin-bottom:.5rem}
  .hero-home .quote-card label{font-size:.82rem;margin-bottom:3px;line-height:1.2}
  .hero-home .quote-card input:not([type=hidden]):not([type=checkbox]),.hero-home .quote-card select{height:38px;min-height:38px;padding-top:6px;padding-bottom:6px}
  .hero-home .quote-card .fgrid{row-gap:8px}
  .hero-home .quote-card .fgrid .field{margin-bottom:0}
  .hero-home .quote-card textarea{height:50px!important;min-height:50px!important}
  .hero-home .quote-card button[type=submit]{min-height:42px;padding-top:9px;padding-bottom:9px}
  .hero-home .quote-card form > p:last-child,.hero-home .quote-card .form-note{font-size:.75rem;line-height:1.3;margin:.4rem 0 0}
}
@media (min-width:961px) and (max-height:700px){
  .hero-home .hero-copy h1{font-size:clamp(2.2rem,6vh,2.7rem)}
  .hero-home .fuse-box .fb-text{-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}
}

/* v2.0.24: heading-level fixes keep the old sizes */
.v221-card h3,.v221-card h4{margin:0 0 .3rem;color:var(--yellow);font-size:1rem;line-height:1.25}
.pt-cols h2.pt-h{font-size:1.02rem;margin:0 0 .5rem}

/* v2.0.26: city hero title at the home hero title size */
body.bbe-city .hero h1{font-size:clamp(2.3rem,min(4.9vw,8.2vh),4.4rem);line-height:1.04;margin-bottom:.28em;max-width:18ch}
@media (min-width:961px) and (max-height:940px){body.bbe-city .hero h1{font-size:clamp(2.4rem,6.4vh,3.4rem);line-height:1.05;margin-bottom:.6rem}}
@media (min-width:961px) and (max-height:700px){body.bbe-city .hero h1{font-size:clamp(2.2rem,6vh,2.7rem)}}
body.bbe-city .hero h1{max-width:24ch!important}
body.bbe-city .hero .eyebrow{color:var(--yellow)!important;font-size:.78rem!important}
@media (max-width:600px){body.bbe-city .hero h1{font-size:2.1rem!important}body.bbe-city .hero .hero-sub{font-size:1rem}}

/* v2.0.27 Fuse: orb matches text+buttons height; Fuse lifts into chat header; slim one-line chips */
/* v2.0.28 (pt207u): orb back to its pre-v2.0.27 size (150px; 110px when viewport <=940px tall); the title + input +
   buttons stack is squeezed to exactly the orb height; intro text kept for screen readers only; darker, thinner buttons. */
.hero-home .fuse-box{--orb:150px}
@media (min-width:961px) and (max-height:940px){.hero-home .fuse-box{--orb:110px}}
@media (max-width:1180px) and (min-width:961px){.hero-home .fuse-box{--orb:120px}}
@media (min-width:601px){
  .hero-home .hero-orb.fuse-box{align-items:center}
  .hero-home .fuse-box .fb-main{display:flex;flex-direction:column;justify-content:space-between;height:var(--orb);min-height:0}
  .hero-home .fuse-box .fb-title{margin:0;font-size:1.05rem;line-height:1.1}
  .hero-home .fuse-box .fb-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:0}
  .hero-home .fuse-box .fb-ask{margin:0}
  body .hero-home .fuse-box .fb-ask input[type=text]{height:34px;font-size:.92rem;padding-left:1rem}
  .hero-home .fuse-box .fb-ask-btn{width:30px;height:30px;right:3px}
  .hero-home .fuse-box .fb-ask-btn .ico{width:18px;height:18px}
  .hero-home .fuse-box .fb-actions{gap:.5rem .6rem;flex-wrap:nowrap}
  .hero-home .fuse-box .fb-btn{min-height:28px;height:28px;padding:0 .85rem;font-size:.92rem}
  .hero-home .fuse-box .fb-dot{width:16px;height:16px}
}
@media (max-width:600px){
  body .hero-home .fuse-box .fb-ask input[type=text]{height:40px}
  .hero-home .fuse-box .fb-btn{min-height:34px;font-size:.95rem}
}
.hero-home .fuse-box .fb-red{--c1:#a3162a;--c2:#7d0d1c;--c3:#520611}
.hero-home .fuse-box .fb-gold{--c1:#9a6f0e;--c2:#7a5606;--c3:#503702}
.hero-home .fuse-box .fb-aqua{--c1:#0e7a76;--c2:#0a5c59;--c3:#063c3a}
.hero-home .fuse-box .fb-btn{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6);border-color:rgba(255,255,255,.28)}
.hero-home .fuse-box .fb-btn::before{opacity:.35}
.bbe-chat .chat-head{position:relative;flex-direction:column;align-items:center;gap:.25rem;padding:.9rem 1rem .7rem;text-align:center}
.bbe-chat .chat-fuse{display:block;width:96px;height:96px;flex:none}
.bbe-chat .chat-fuse img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 16px rgba(94,231,240,.6))}
.bbe-chat .chat-title{flex:none}
.bbe-chat .chat-title p{font-size:1.1rem}
.bbe-chat .chat-status{justify-content:center}
.bbe-chat .chat-close{position:absolute;top:.7rem;right:.7rem}
.bbe-chat .chat-mute{position:absolute;top:.7rem;left:.7rem}
.fuse-lifting .bbe-chat .chat-fuse img{opacity:0}
.fuse-fly{position:fixed;z-index:200;object-fit:contain;pointer-events:none;filter:drop-shadow(0 0 18px rgba(94,231,240,.7));will-change:transform}
.bbe-chat .chat-quick{flex-wrap:nowrap;justify-content:center;gap:.25rem;padding:0 .5rem .45rem;overflow-x:auto;scrollbar-width:none}
.bbe-chat .chat-quick::-webkit-scrollbar{display:none}
.bbe-chat .chat-quick button{flex:0 1 auto;white-space:nowrap;font-size:.64rem;line-height:1.15;padding:.2rem .42rem;border-width:1px;letter-spacing:0}
@media (max-width:600px){.bbe-chat .chat-fuse{width:76px;height:76px}.bbe-chat .chat-quick button{font-size:.6rem;padding:.2rem .36rem}}

/* v2.0.28 (pt206u): Rome hero shows the whole subject + logo, not just the face. Square source, so on desktop it is
   contained (full height) and placed in the gap between the copy and the form, over a blurred cover fill. */
body.bbe-city-photo .hero .hero-bg-bundled{background:#00052c center/cover no-repeat}
body.page-slug-rome-electricians .hero .hero-bg-bundled{background-image:url(../img/pages/rome-electricians-800.webp)}
body.page-slug-atlanta-electricians .hero .hero-bg-bundled{background-image:url(../img/pages/atlanta-electricians-800.webp)}
body.bbe-city-photo .hero .hero-bg-bundled::before{content:"";position:absolute;inset:0;backdrop-filter:blur(18px) brightness(.55);-webkit-backdrop-filter:blur(18px) brightness(.55);z-index:0}
body.bbe-city-photo .hero .hero-bg-bundled img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain!important;object-position:64% 50%!important;z-index:1}
body.bbe-city-photo .hero .hero-bg-bundled::after{z-index:2;background:linear-gradient(90deg,rgba(0,5,44,.78) 0%,rgba(0,5,44,.55) 30%,rgba(0,5,44,.12) 50%,rgba(0,5,44,.25) 100%)!important}
@media (max-width:960px){body.bbe-city-photo .hero .hero-bg-bundled img{object-position:50% 9%!important}body.bbe-city-photo .hero .hero-bg-bundled::after{background:linear-gradient(180deg,rgba(0,5,44,.55) 0%,rgba(0,5,44,.35) 40%,rgba(0,5,44,.2) 70%,rgba(0,5,44,.45) 100%)!important}}
body.bbe-city-photo .hero .hero-copy :is(h1,.hero-sub,.eyebrow,.crumbs,li,span){text-shadow:0 2px 10px rgba(0,5,44,.95),0 0 3px rgba(0,5,44,.8)}

/* v2.0.28b (pt208u): Rome mobile. Photo (him + logo) clear at top, fade to solid #00052c before the text; hero buttons dropped (sticky Call Now / Free Quote bar is the sitewide standard) */
@media (max-width:960px){
  body.bbe-city-photo .hero .hero-bg-bundled::before{display:none}
  body.bbe-city .hero .hero-bg-bundled{background:#00052c!important}
  body.bbe-city .hero .hero-bg-bundled img{inset:0 0 auto 0!important;height:min(100vw,440px)!important;object-fit:cover!important;object-position:50% 30%!important}
  body.bbe-city .hero .hero-bg-bundled::after{background:linear-gradient(180deg,rgba(0,5,44,.35) 0,rgba(0,5,44,0) 90px,rgba(0,5,44,0) calc(min(100vw,440px) - 150px),#00052c calc(min(100vw,440px) - 20px),#00052c 100%)!important}
  body.bbe-city .hero:has(.hero-bg-bundled) .hero-copy .eyebrow{margin-top:calc(min(100vw,440px) - 130px)}
  body.bbe-city .hero .hero-actions{display:none!important}
}

/* v2.0.31 (pt211u): HOME hero title + subtitle a little larger to close the gap above the Fuse box (city pages untouched) */
@media (min-width:961px){
  body.home .hero-home .hero-copy h1{font-size:clamp(2.6rem,min(4.8vw,7.6vh),4.7rem)!important}
  body.home .hero-home .hero-copy .hero-sub{font-size:clamp(1.05rem,2.2vh,1.3rem)!important;line-height:1.45}
}

/* v2.0.32 (pt215u): Acworth page built from Chris's HTML (inc/acworth-v232.php). Scoped to .bbe-acw. */
.bbe-acw .acw-sec .lg3-lbl{font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#5ee7f0;margin:0 0 .5rem}
.bbe-acw .acw-sec .lg3-h2{font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1.15;margin:0 0 .8rem;color:#fff}
.bbe-acw .acw-sec .lg3-h2 span,.bbe-acw .acw-sec .lg3-ch span{color:#5ee7f0}
.bbe-acw .acw-sec .lg3-intro,.bbe-acw .acw-sec .lg3-sub,.bbe-acw .lg3-ah p{font-size:1.08rem;max-width:860px;color:rgba(255,255,255,.86);margin:0 0 2rem}
.bbe-acw .lg3-header-left{display:none}
.bbe-acw .lg3-sgrid,.bbe-acw .lg3-pgrid,.bbe-acw .lg3-wgrid{display:grid;gap:24px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0 0 1rem}
.bbe-acw .lg3-pgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
.bbe-acw .lg3-sc,.bbe-acw .lg3-pc,.bbe-acw .lg3-wc,.bbe-acw .lg3-codesect,.bbe-acw .lg3-chip,.bbe-acw .lg3-cta{background:var(--card,linear-gradient(155deg,#1a2a7a 0%,#12206b 22%,#08094a 58%,#00052c 100%));border:1px solid var(--card-line,rgba(255,255,255,.14));border-radius:16px;padding:24px;color:#fff}
.bbe-acw .lg3-st,.bbe-acw .lg3-pct,.bbe-acw .lg3-wt{font-size:1.2rem;font-weight:800;margin:0 0 .6rem;color:#fff}
.bbe-acw .lg3-sx{margin:0 0 .45rem;font-size:.97rem;line-height:1.55;color:rgba(255,255,255,.86)}
.bbe-acw .lg3-sx strong,.bbe-acw .lg3-wx strong{color:#fff}
.bbe-acw .lg3-sx:nth-of-type(n+2) strong{color:#5ee7f0}
.bbe-acw .lg3-pr{font-size:1.9rem;font-weight:800;color:#5ee7f0;margin:.2rem 0}
.bbe-acw .lg3-ps{color:rgba(255,255,255,.8)}
.bbe-acw .lg3-pdiv{height:1px;background:rgba(255,255,255,.18);margin:14px 0}
.bbe-acw .lg3-pl{list-style:none;margin:0;padding:0}.bbe-acw .lg3-pl li{margin:0 0 .4rem;color:rgba(255,255,255,.88)}
.bbe-acw .acw-ck{color:#5ee7f0;font-weight:800;margin-right:.5rem}
.bbe-acw .lg3-pc.feat{border-color:#5ee7f0}
.bbe-acw .lg3-codesect h3{margin:0 0 .8rem;font-size:1.35rem;color:#fff}.bbe-acw .lg3-codesect p{color:rgba(255,255,255,.88);margin:0 0 .6rem}
.bbe-acw .lg3-wx{margin:0;color:rgba(255,255,255,.86)}.bbe-acw .lg3-wi{display:none}
.bbe-acw .lg3-areas{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.bbe-acw .lg3-chip{padding:18px;text-align:center}.bbe-acw .lg3-cn{font-weight:800;font-size:1.05rem}
.bbe-acw .lg3-cs{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.65);margin-top:4px}
.bbe-acw .lg3-chip.pri .lg3-cs{color:#5ee7f0}
.bbe-acw .lg3-cta{text-align:center;padding:44px 28px}
.bbe-acw .lg3-cbadge{display:inline-block;padding:6px 14px;border-radius:999px;background:rgba(225,29,42,.2);border:1px solid rgba(225,29,42,.5);font-weight:700;margin:0 0 1rem}
.bbe-acw .lg3-ch{font-size:clamp(1.8rem,3.4vw,2.6rem);margin:0 0 .8rem;color:#fff}
.bbe-acw .lg3-cx{max-width:760px;margin:0 auto 1.4rem;color:rgba(255,255,255,.88)}
.bbe-acw .lg3-cbtns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:0 0 1.2rem}
.bbe-acw .lg3-cbtns a{display:inline-flex;align-items:center;min-height:48px;padding:0 22px;border-radius:10px;font-weight:800;text-decoration:none}
.bbe-acw .lg3-btn-y{background:linear-gradient(180deg,var(--call-2,#b3001b),var(--call-3,#7a0010));color:#fff}
.bbe-acw .lg3-btn-o{border:1px solid rgba(255,255,255,.5);color:#fff}
.bbe-acw .lg3-cinfo{display:flex;gap:24px;justify-content:center;flex-wrap:wrap;color:rgba(255,255,255,.78);font-size:.95rem}
.bbe-acw .lg3-foot{margin:22px auto 0;max-width:900px;text-align:center;font-size:.85rem;color:rgba(255,255,255,.6)}
@media (max-width:900px){.bbe-acw .lg3-pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.bbe-acw .lg3-areas{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.bbe-acw .lg3-sgrid,.bbe-acw .lg3-pgrid,.bbe-acw .lg3-wgrid{grid-template-columns:1fr}.bbe-acw .lg3-sc,.bbe-acw .lg3-pc{padding:20px}}

/* v2.0.33 (pt219u): hero trust line smaller so it sits on one line on desktop; wraps on small screens */
.hero .trust-hero{gap:.35rem 1rem}
.hero .trust-hero li{font-size:.8rem;gap:.35rem;white-space:nowrap}
.hero .trust-hero .ico{width:15px;height:15px}
@media (min-width:901px){.hero .trust-hero{flex-wrap:nowrap}}
@media (max-width:900px){.hero .trust-hero li{font-size:.78rem}}
/* v2.0.33: neighborhood chip grid keeps even rows for 8 / 6 chips */
.bbe-acw .acw-n8 .lg3-areas{grid-template-columns:repeat(4,minmax(0,1fr))}
.bbe-acw .acw-n6 .lg3-areas{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:900px){.bbe-acw .acw-n8 .lg3-areas,.bbe-acw .acw-n6 .lg3-areas{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* v2.0.36 (pt233u): Qty column, stepper, multi-line items, running total at the top */
.est-4col .est-head,.est-4col .est-row{grid-template-columns:minmax(200px,1.1fr) minmax(170px,1fr) minmax(220px,1.4fr) 132px minmax(140px,.8fr)}
.est-4col .est-row .est-note{grid-column:2/-1}
.est-4col .est-step{display:inline-flex;align-items:center;border:1px solid rgba(255,212,0,.45);border-radius:10px;background:#0b1036;overflow:hidden;width:max-content}
.est-4col .est-step button{width:38px;min-height:40px;border:0;background:rgba(255,212,0,.12);color:#ffd400;font-size:1.2rem;font-weight:700;cursor:pointer}
.est-4col .est-step button:hover:not(:disabled){background:rgba(255,212,0,.25)}
.est-4col .est-step button:disabled{opacity:.35;cursor:default}
.est-4col .est-step input{width:48px;min-height:40px;border:0;border-radius:0;background:transparent;color:#fff;text-align:center;padding:0;font-weight:700;-moz-appearance:textfield}
.est-4col .est-step input::-webkit-inner-spin-button,.est-4col .est-step input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.est-4col .est-more{align-self:flex-start;background:none;border:0;padding:.15rem 0;color:#ffd400;font-size:.82rem;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.est-4col .est-row.is-more{box-shadow:inset 3px 0 0 rgba(225,29,42,.55)}
.est-4col .est-svc-more{padding-left:1.6rem}
.est-4col .est-svc-more .est-name{font-size:.85rem;color:#c3cde0}
.est-4col .est-del{flex:0 0 26px;width:26px;height:26px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;cursor:pointer;line-height:1}
.est-4col .est-top{position:sticky;top:calc(var(--hdr-h,72px) + 16px);z-index:7;display:grid;grid-template-columns:1fr auto;align-items:center;gap:.2rem 1rem;margin:0 0 .8rem;padding:.75rem 1.1rem;border-radius:14px;background:#141414;border:1px solid rgba(255,212,0,.45);box-shadow:0 10px 24px rgba(0,0,0,.4)}
.est-4col .est-top p{margin:0}
.est-4col .est-top-k{font-family:var(--display);font-size:1.15rem;color:#fff}
.est-4col .est-top-c{font-size:.8rem;color:#c3cde0}
.est-4col .est-top-v{font-family:var(--display);font-size:clamp(1.3rem,2.4vw,1.9rem);color:var(--yellow,#ffd400);white-space:nowrap}
.est-4col .est-top-n{grid-column:1/-1;font-size:.8rem;color:#ffd400}
@media (max-width:960px){
	.est-4col .est-row{grid-template-columns:1fr}
	.est-4col .est-row:not(.is-on) .est-qty{display:none}
	.est-4col .est-row.is-on .est-qty::before{content:attr(data-h);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#9fb0cc}
	.est-4col .est-row .est-note{grid-column:1}
	.est-4col .est-top{top:calc(var(--hdr-h,64px) + 4px);padding:.6rem .85rem}
	.est-4col.est-has .est-mini{display:none}
	.est-4col .est-svc-more{padding-left:0}
	.est-4col .est-top-k{font-size:1rem}.est-4col .est-top-c{font-size:.72rem}.est-4col .est-top-n{font-size:.7rem;line-height:1.3}
}
