/* Westside build: live stylesheet plus the registered corrections. */
.th-btn:not(.style2):not(.style3){background-color:#D31324}/* D1: AA contrast on primary buttons; the white and outline variants keep their live colours */
.elementor-section-stretched{width:100vw!important;left:50%!important;margin-left:-50vw!important}
.th-carousel:not(.slick-initialized)>*:not(:first-child){display:none}
.hero-slider-3:not(.slick-initialized) .th-hero-slide+.th-hero-slide{display:none}
.adm-short-bar{padding:18px 0;border-bottom:1px solid #eee}
.adm-short-bar .sub-title{margin:0}
.adm-westside-section{padding:40px 0}
.adm-westside-section .elementor-widget{margin-bottom:20px}
.adm-westside-section .elementor-widget-text-editor{color:var(--body-color,#6F6E77);font-size:16px;line-height:1.75}
.adm-westside-section .elementor-widget-text-editor p{margin-bottom:18px}
.adm-westside-section .btn-wrapper{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.adm-westside-image{width:100%;height:auto;border-radius:10px;object-fit:cover}
.adm-split .elementor-column{align-self:center}
.adm-image-col .elementor-widget-wrap{padding:10px 24px}
.adm-issue-list{padding-left:20px}.adm-issue-list li{margin-bottom:12px}
.adm-steps{padding-left:20px}.adm-steps li{margin-bottom:12px}
.adm-cards .adm-card .elementor-widget-wrap{background:#fff;border:1px solid #eee;border-radius:10px;padding:28px;height:100%;box-shadow:0 6px 30px rgba(0,0,0,.05)}
.adm-cards{margin-top:-10px}
.adm-card-title{font-size:20px;margin-bottom:12px}
.adm-accordion-heading{font-size:18px;margin:0;font-weight:700}
.elementor-accordion .elementor-tab-title{cursor:pointer}
.elementor-accordion .elementor-tab-content{display:none}
.elementor-accordion .elementor-tab-content.elementor-active{display:block}
.elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon-closed,.elementor-accordion .elementor-tab-title:not(.elementor-active) .elementor-accordion-icon-opened{display:none}
.adm-closing .title-area-wrap{text-align:center}.adm-closing .btn-wrapper{justify-content:center}
.adm-post-content img{max-width:100%;height:auto}
.adm-form-note{margin-top:16px;padding:14px 18px;border-left:4px solid #D31324;background:#fff5f5}
/* Client request, 4 November: appliance, brand and town lists are shown open, not inside dropdowns. */
.adm-open{padding:26px 0}
.adm-open-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 28px;list-style:none;margin:0;padding:0}
.adm-open-list.adm-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
html .adm-open-list .elementor-icon-list-item{display:flex;align-items:flex-start;align-self:start;gap:10px;margin:0;padding:0;line-height:1.45}
.adm-open-list .elementor-icon-list-icon{flex:0 0 16px;margin-top:3px;line-height:1}
.adm-open-list .elementor-icon-list-icon svg{width:16px;height:16px;fill:#D31324}
.adm-open-list .elementor-icon-list-text{color:#141422;font-weight:500;padding:0}
.adm-open-list .elementor-icon-list-text a{color:#141422;text-decoration:underline;text-decoration-color:#D31324;text-underline-offset:3px}
.adm-open-list .elementor-icon-list-text a:hover{color:#D31324}
.adm-open-list small{display:block;font-weight:400;font-size:13px;line-height:1.35;color:#5f5e68}
.adm-open-more{margin:22px 0 0}
.elementor .btn-wrapper{display:flex;flex-wrap:wrap;gap:12px}
.adm-locator .elementor-column{align-self:flex-start}
@media (max-width:1199px){.adm-open-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:767px){.adm-open-list,.adm-open-list.adm-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}}
@media (max-width:359px){.adm-open-list,.adm-open-list.adm-cols-2{grid-template-columns:1fr}}
/* Homepage hero paragraph from the reviewed draft. */
.hero-style4 .hero-text{color:#fff;font-size:18px;line-height:1.6;max-width:860px;margin:0 auto 28px}
@media (max-width:767px){.hero-style4 .hero-text{font-size:16px;margin-bottom:22px}
/* With the paragraph in place the theme's side dots would sit over the text on phones, so they move under the buttons. */
.th-hero-wrapper .slick-dots{top:auto;bottom:16px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:16px}
.th-hero-wrapper .slick-dots li~li{margin:0}}
/* Buttons, lists and headings inside the reviewed blog articles. */
.adm-post-content .btn-wrapper{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0 30px}
.adm-post-content ul{padding-left:20px;margin-bottom:18px}
.adm-post-content li{margin-bottom:10px}
.adm-post-content h2{margin-top:34px}
.adm-post-content h3{margin-top:24px}
/* Static review grid: the live widget script sets the column count per screen and manages tooltips; the Westside does it in CSS. */
html .ti-widget[data-layout-id='79'][data-set-id='ligth-border'] .ti-tooltip,html .ti-widget[data-layout-id='79'][data-set-id='ligth-border'] .ti-verified-tooltip{display:none!important}
.ti-widget[data-layout-id='79'][data-set-id='ligth-border'] .ti-with-tooltip{white-space:normal}
@media (max-width:1023px){html .ti-widget[data-layout-id='79'][data-set-id='ligth-border'] .ti-reviews-container-wrapper{flex-wrap:wrap}html .ti-widget[data-layout-id='79'][data-set-id='ligth-border'] .ti-col-3 .ti-column{flex:0 0 50%;max-width:50%}}
@media (max-width:767px){html .ti-widget[data-layout-id='79'][data-set-id='ligth-border'] .ti-col-3 .ti-column{flex:0 0 100%;max-width:100%}}
.main-menu ul.sub-menu li ul.sub-menu{left:100%;top:0}
@media (max-width:1600px){.header-links li:not(:last-child){margin-right:36px}.header-links li:not(:last-child):after{right:-20px}}
@media (max-width:1500px){.main-menu > ul > li{margin:0 11px}}/* one more top-level item (Service Areas) than the live menu */
.main-menu ul.sub-menu li.menu-item-has-children>a:after{content:'\203A';float:right;margin-left:8px}
@media (max-width:991px){.adm-westside-section{padding:24px 0}.adm-image-col .elementor-widget-wrap{padding:10px}}
/* Schedule Online in the header at every width (Charlotte, 6 November, client request). */
.adm-hdr-book{display:none}
@media (min-width:768px) and (max-width:1199px){.adm-mobile-bar{justify-content:center}.adm-mb-main{flex:0 1 420px}}
/* 1200 to 1399px: one compact Schedule Online button in the header; the menu tightens to make room. */
@media (min-width:1200px) and (max-width:1399px){
html .header-layout1 .header-button .th-btn:first-child{display:inline-block;margin-left:0;padding:17px 16px;font-size:13px;white-space:nowrap}
.main-menu>ul>li{margin:0 8px}
}
/* Phones and upright tablets: the button sits beside the menu button. Two lines on phones so the full label fits. */
@media (max-width:991px){
.adm-hdr-actions{display:flex;align-items:center;gap:8px}
.adm-hdr-book{display:flex;align-items:center;justify-content:center;gap:5px;height:56px;padding:0 18px;border-radius:4px;background:#D31324;color:#fff;font-family:var(--title-font);font-weight:700;font-size:14px;line-height:1.25;letter-spacing:.01em;text-transform:uppercase;text-decoration:none;text-align:center;white-space:nowrap}
.adm-hdr-book:hover,.adm-hdr-book:focus{background:#b80f1e;color:#fff}
}
@media (max-width:575px){
.adm-hdr-book{flex-direction:column;gap:0;min-width:84px;padding:0 9px;font-size:12px}
/* The red logo shape and the logo give up the width the button needs. */
html .header-layout1 .logo-bg{width:calc(100% - 168px)}
.header-layout1 .header-logo img{max-width:calc(100vw - 206px)}
}
@media (max-width:349px){.adm-hdr-book{display:none}html .header-layout1 .logo-bg{width:70%}.header-layout1 .header-logo img{max-width:150px}}
/* Sideways scroll found while checking the header at more widths; the live site has the same three. */
@media (min-width:1200px) and (max-width:1319px){.elementor-widget-container .custom-slider-nav .custom-prev{transform:translateX(-35px)}.elementor-widget-container .custom-slider-nav .custom-next{transform:translateX(35px)}}/* carousel arrows sat 100px outside a 1110px container */
@media (min-width:992px) and (max-width:1199px){.main-menu>ul>li{margin:0 8px}}/* the menu was 25px wider than its container */
/* Between 992 and 1299px the red logo shape was narrower than the logo, so the end of the white wordmark sat on white and looked cut off. The shape now follows the logo. */
@media (min-width:992px) and (max-width:1199px){html .header-layout1 .logo-bg{width:calc((100vw - 960px)/2 + 284px)}}
@media (min-width:1200px) and (max-width:1299px){html .header-layout1 .logo-bg{width:calc((100vw - 1140px)/2 + 284px)}}
/* Sticky booking bar below 1200px. The theme hides its header buttons below 1400px; from 1200 to 1399px a compact Schedule Online returns to the header (below). */
.adm-mobile-bar{display:none}
@media (max-width:1199px){
.adm-mobile-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:9990;gap:8px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -4px 18px rgba(8,14,28,.16)}
.adm-mobile-bar a{display:flex;align-items:center;justify-content:center;min-height:50px;border-radius:4px;font-family:var(--title-font);font-weight:700;text-decoration:none}
.adm-mb-main{flex:1;background:#D31324;color:#fff;font-size:15px;text-transform:uppercase;letter-spacing:.01em}
.adm-mb-main:hover,.adm-mb-main:focus{color:#fff;background:#b80f1e}
.adm-mb-side{flex:0 0 74px;flex-direction:column;gap:2px;border:1px solid #e3e3e8;color:#141422;font-size:12px;line-height:1}
.adm-mb-side i{color:#D31324;font-size:16px}
body.adm-has-mobile-bar{padding-bottom:calc(66px + env(safe-area-inset-bottom))}
}

/* Contact Form 7 inside the current website's form layout. */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.nf-form-layout .wpcf7 form .wpcf7-response-output{margin:16px 0 0;padding:10px 14px;border-radius:6px;font-size:15px}
.nf-form-layout .wpcf7-form-control-wrap{display:block}
.nf-form-layout .wpcf7-not-valid-tip{color:#d93025;font-size:13px;margin-top:6px;line-height:1.5}
.nf-form-layout .wpcf7-acceptance .wpcf7-list-item{margin:0}
.nf-form-layout .wpcf7-spinner{vertical-align:middle}
.nf-form-layout input.wpcf7-submit[disabled]{opacity:.55;cursor:not-allowed}
.nf-form-layout .wpcf7 .checkbox-container{float:left;width:20px;margin-top:3px;clear:both}
.nf-form-layout .wpcf7 .checkbox-container + .html-container{clear:none;margin-left:32px}
.nf-form-layout .wpcf7 .submit-container{clear:both}
.adm-westside-form-fallback a{color:inherit;text-decoration:underline}
