/*
Theme Name:   Astra Child – Xcel Tint
Theme URI:    https://xceltint.com/
Description:  Black, chrome and red design system for Xcel Tint (Astra + Elementor Free).
Author:       Oviedo Web Design
Template:     astra
Version:      1.1.0
Text Domain:  astra-child-xcel
*/

/* ------------------------------------------------------------------
   Tokens — taken from the Xcel Tint logo: black, chrome, signal red
------------------------------------------------------------------- */
:root{
  --xt-black:#000000;
  --xt-graphite:#0d0e10;
  --xt-panel:#15171a;
  --xt-line:#272a2f;
  --xt-chrome:#eceef0;
  --xt-steel:#a4abb3;
  --xt-red:#e3241b;
  --xt-red-deep:#a8160f;
  --xt-chrome-grad:linear-gradient(176deg,#ffffff 0%,#d9dde1 38%,#8d949b 52%,#e6e9ec 64%,#b9bec4 100%);
  --xt-head:"Saira",system-ui,sans-serif;
  --xt-body:"Barlow",system-ui,sans-serif;
  --xt-radius:6px;
}

html{scroll-behavior:smooth}
body,
body.ast-separate-container,
body.ast-plain-container{background:var(--xt-graphite);color:var(--xt-steel);font-family:var(--xt-body);font-size:18px;line-height:1.65}
h1,h2,h3,h4,h5,h6,.entry-title{font-family:var(--xt-head);color:var(--xt-chrome);letter-spacing:-.01em}
a{color:var(--xt-chrome)}
a:hover,a:focus{color:var(--xt-red)}
:focus-visible{outline:2px solid var(--xt-red);outline-offset:3px}
::selection{background:var(--xt-red);color:#fff}

/* ------------------------------------------------------------------
   Header (Astra Header Builder)
------------------------------------------------------------------- */
#masthead,.site-header,.main-header-bar,.ast-primary-header-bar,.ast-mobile-header-wrap .ast-primary-header-bar{background:var(--xt-black)!important;border-bottom:1px solid var(--xt-line)!important}
#masthead{position:sticky;top:0;z-index:999}
.admin-bar #masthead{top:32px}
.site-header .custom-logo-link img,.site-header .site-logo-img img{max-height:58px;width:auto}
.main-header-menu .menu-link,.ast-builder-menu .menu-item>.menu-link{font-family:var(--xt-head);font-weight:600;font-size:15px;color:var(--xt-chrome)!important;letter-spacing:.02em}
.main-header-menu .menu-item:hover>.menu-link,.main-header-menu .current-menu-item>.menu-link,.main-header-menu .current-menu-ancestor>.menu-link{color:var(--xt-red)!important}
.main-header-menu .sub-menu{background:var(--xt-panel)!important;border:1px solid var(--xt-line)!important;border-top:2px solid var(--xt-red)!important}
.main-header-menu .sub-menu .menu-link{font-weight:500}
.ast-header-button-1 .ast-custom-button,.ast-custom-button{background:var(--xt-red)!important;color:#fff!important;border:0!important;border-radius:var(--xt-radius)!important;font-family:var(--xt-head);font-weight:700;padding:12px 22px!important}
.ast-header-button-1 .ast-custom-button:hover{background:var(--xt-red-deep)!important}
.ast-mobile-popup-drawer .ast-mobile-popup-inner,.ast-mobile-header-content{background:var(--xt-black)!important}
.menu-toggle .ast-mobile-svg,.ast-button-wrap .menu-toggle{fill:var(--xt-chrome)!important;color:var(--xt-chrome)!important}

/* ------------------------------------------------------------------
   Elementor sections
------------------------------------------------------------------- */
.elementor-section.xt-sec{padding:104px 20px;background-color:var(--xt-graphite)}
.elementor-section.xt-alt{background-color:var(--xt-black)}
.elementor-section.xt-tight{padding-top:24px}
.elementor-section.xt-tight-bottom{padding-bottom:24px}
.elementor-section.xt-plain{padding:0;background:transparent}
.elementor-section.xt-grid{margin-top:28px;padding:0;background:transparent}
.elementor .elementor-section.xt-grid>.elementor-container{margin:0 -10px}

/* Hero: one memorable thing — chrome type on a dark photo */
.elementor-section.xt-hero{position:relative;overflow:hidden}
.elementor-section.xt-hero-home{display:flex;padding:140px 20px 110px}
.elementor-section.xt-hero-page{padding:170px 20px 96px;border-bottom:1px solid var(--xt-line)}
.elementor-section.xt-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--xt-red) 0 22%,transparent 22%)}
.elementor-section.xt-hero>.elementor-container{position:relative;z-index:2}
.elementor .xt-hero .elementor-widget-text-editor{max-width:640px;color:#cfd3d8;font-size:20px}

/* Headings */
.elementor .elementor-heading-title{margin:0}
.elementor .elementor-button{text-decoration:none!important}
.elementor .xt-h1 .elementor-heading-title{font-family:var(--xt-head);font-style:italic;font-weight:800;font-size:clamp(40px,6.2vw,84px);line-height:.98;letter-spacing:-.02em;max-width:15ch;
  background:var(--xt-chrome-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.elementor .xt-hero-page .xt-h1 .elementor-heading-title{font-size:clamp(36px,5vw,66px);max-width:20ch}
.elementor .xt-h2 .elementor-heading-title{font-family:var(--xt-head);font-weight:700;font-size:clamp(28px,3.4vw,44px);line-height:1.1;color:var(--xt-chrome);max-width:24ch}
.elementor .xt-h5 .elementor-heading-title{font-family:var(--xt-head);font-weight:700;font-size:22px;line-height:1.25;color:var(--xt-chrome)}
.elementor .xt-h6 .elementor-heading-title{font-family:var(--xt-head);font-weight:600;font-size:16px;color:var(--xt-chrome)}
.elementor .xt-film .elementor-heading-title{font-style:italic;font-size:26px}
.elementor .xt-eyebrow{margin-bottom:10px!important}
.elementor .xt-eyebrow .elementor-heading-title{font-family:var(--xt-head);font-weight:600;font-size:15px;letter-spacing:.04em;color:var(--xt-red);display:inline-flex;align-items:center;gap:12px}
.elementor .xt-eyebrow .elementor-heading-title::before{content:"";width:28px;height:4px;background:var(--xt-red);transform:skewX(-30deg)}
.elementor .xt-num .elementor-heading-title{font-family:var(--xt-head);font-weight:700;font-size:14px;color:var(--xt-red)}

/* Body copy */
.elementor .elementor-widget-text-editor{color:var(--xt-steel);font-size:18px;line-height:1.7;max-width:72ch}
.elementor .elementor-widget-text-editor strong{color:var(--xt-chrome)}
.elementor .elementor-widget-text-editor a{color:var(--xt-chrome);text-decoration:underline;text-decoration-color:var(--xt-red);text-underline-offset:3px}
.elementor .elementor-widget-text-editor ul{padding-left:1.1em}
.elementor .elementor-widget-text-editor li{margin-bottom:.5em}

/* Buttons */
.elementor .xt-btnrow>.elementor-widget-wrap{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.elementor .xt-btnrow .elementor-widget{width:auto;margin:0!important}
.elementor .xt-btn .elementor-button{background:var(--xt-red);color:#fff;font-family:var(--xt-head);font-weight:700;font-size:16px;letter-spacing:.02em;border-radius:var(--xt-radius);padding:16px 28px;border:2px solid var(--xt-red);transition:background .2s,border-color .2s}
.elementor .xt-btn .elementor-button:hover,.elementor .xt-btn .elementor-button:focus{background:var(--xt-red-deep);border-color:var(--xt-red-deep);color:#fff}
.elementor .xt-btn-ghost .elementor-button{background:transparent;border-color:#4a4f56;color:var(--xt-chrome)}
.elementor .xt-btn-ghost .elementor-button:hover,.elementor .xt-btn-ghost .elementor-button:focus{background:transparent;border-color:var(--xt-chrome);color:#fff}

/* Cards */
.elementor .xt-card>.elementor-widget-wrap{background:var(--xt-panel);border:1px solid var(--xt-line);border-radius:var(--xt-radius);padding:32px!important;height:100%;align-content:flex-start}
.elementor .xt-alt .xt-card>.elementor-widget-wrap{background:var(--xt-graphite)}
.elementor .xt-grid>.elementor-container>.elementor-column{margin-bottom:20px}
.elementor .xt-statcard>.elementor-widget-wrap{border-left:3px solid var(--xt-red)}
.elementor .xt-stat .elementor-heading-title{font-family:var(--xt-head);font-style:italic;font-weight:700;font-size:24px;line-height:1.2;color:var(--xt-chrome)}
.elementor .xt-svccard>.elementor-widget-wrap{padding:0!important;overflow:hidden}
.elementor .xt-svc .elementor-image-box-img{width:100%!important;margin:0 0 0!important}
.elementor .xt-svc .elementor-image-box-img img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s}
.elementor .xt-svccard:hover .elementor-image-box-img img{transform:scale(1.04)}
.elementor .xt-svc .elementor-image-box-content{padding:26px 28px 30px;text-align:left}
.elementor .xt-svc .elementor-image-box-title{font-family:var(--xt-head);font-weight:700;font-size:22px;color:var(--xt-chrome);margin-bottom:8px}
.elementor .xt-svc .elementor-image-box-title a{color:inherit}
.elementor .xt-svc .elementor-image-box-description{color:var(--xt-steel);font-size:17px}

/* Icon boxes */
.elementor .xt-ibox .elementor-icon-box-wrapper{text-align:left}
.elementor .xt-ibox .elementor-icon-box-icon{margin-bottom:16px!important}
.elementor .xt-ibox .elementor-icon{font-size:22px;color:var(--xt-red);fill:var(--xt-red);width:52px;height:52px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--xt-line);border-radius:var(--xt-radius);background:var(--xt-black)}
.elementor .xt-ibox .elementor-icon svg{width:22px;height:22px}
.elementor .xt-ibox .elementor-icon-box-title{font-family:var(--xt-head);font-weight:700;font-size:21px;color:var(--xt-chrome);margin:0 0 8px}
.elementor .xt-ibox .elementor-icon-box-description{color:var(--xt-steel);font-size:17px;line-height:1.65}

/* Check lists */
.elementor .xt-list .elementor-icon-list-item{padding:5px 0}
.elementor .xt-list .elementor-icon-list-icon i,.elementor .xt-list .elementor-icon-list-icon svg{color:var(--xt-red);fill:var(--xt-red);font-size:14px;width:14px}
.elementor .xt-list .elementor-icon-list-text{color:var(--xt-chrome);font-size:17px;padding-left:10px}

/* Steps — a real sequence, so numbered */
.elementor .xt-step{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;font-family:var(--xt-head);font-style:italic;font-weight:800;font-size:20px;color:#fff;background:var(--xt-red);border-radius:var(--xt-radius);margin-bottom:6px}

/* Images */
.elementor .xt-img img{width:100%;border-radius:var(--xt-radius);aspect-ratio:4/3;object-fit:cover}
.elementor .xt-stack>.elementor-widget-wrap{gap:16px}
.elementor .xt-stack .xt-img{margin:0!important}
.elementor .xt-stack .xt-img:nth-child(2) img{aspect-ratio:16/9}
.elementor .xt-partner{margin:6px 0 18px!important}
.elementor .xt-partner img{max-width:260px!important;width:100%;height:auto}
.elementor .xt-mosaic{display:grid;grid-template-columns:1.25fr 1fr;grid-auto-rows:170px;gap:12px}
.elementor .xt-mosaic img{width:100%;height:100%;object-fit:cover;border-radius:var(--xt-radius)}
.elementor .xt-mosaic img:first-child{grid-row:span 2}
.elementor .xt-mosaic img:last-child{grid-column:span 2}
.elementor .xt-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:28px 0}
.elementor .xt-gallery a{display:block;overflow:hidden;border-radius:var(--xt-radius)}
.elementor .xt-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .5s}
.elementor .xt-gallery.xt-portrait img{aspect-ratio:3/4}
.elementor .xt-gallery a:hover img,.elementor .xt-gallery a:focus img{transform:scale(1.05)}
.elementor .xt-xpel{background:radial-gradient(120% 90% at 100% 0%,#1d1f23 0%,var(--xt-black) 55%)!important}

/* Testimonials */
.elementor .xt-quote .elementor-testimonial-wrapper{text-align:left}
.elementor .xt-quote .elementor-testimonial-content{font-family:var(--xt-body);font-size:18px;line-height:1.65;color:var(--xt-chrome)}
.elementor .xt-quote .elementor-testimonial-content::before{content:"★★★★★";display:block;color:var(--xt-red);letter-spacing:4px;font-size:16px;margin-bottom:14px}
.elementor .xt-quote .elementor-testimonial-name{font-family:var(--xt-head);font-weight:700;color:var(--xt-chrome)!important;font-size:16px}
.elementor .xt-quote .elementor-testimonial-job{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* FAQ accordion */
.elementor .xt-faq .elementor-accordion-item{border:0!important;border-bottom:1px solid var(--xt-line)!important}
.elementor .xt-faq .elementor-tab-title{padding:22px 0!important;font-family:var(--xt-head);font-weight:600;font-size:19px;line-height:1.35}
.elementor .xt-faq .elementor-tab-title a,.elementor .xt-faq .elementor-tab-title .elementor-accordion-icon{color:var(--xt-chrome)!important}
.elementor .xt-faq .elementor-tab-title.elementor-active a,.elementor .xt-faq .elementor-tab-title.elementor-active .elementor-accordion-icon{color:var(--xt-red)!important}
.elementor .xt-faq .elementor-tab-content{border:0!important;padding:0 0 24px!important;color:var(--xt-steel);font-size:17px}
.elementor .xt-faq .elementor-tab-content strong{color:var(--xt-chrome)}
.elementor .xt-sticky>.elementor-widget-wrap{position:sticky;top:110px}

/* Contact */
.elementor .xt-info .elementor-widget-text-editor{font-size:17px}
.elementor .xt-info a{text-decoration:none!important}
.elementor .xt-map iframe{border-radius:var(--xt-radius);filter:grayscale(1) invert(.92) contrast(.9);height:100%;min-height:420px}
.wpforms-container .wpforms-field-label{color:var(--xt-chrome)!important;font-family:var(--xt-head)!important;font-weight:600!important}
.wpforms-container input,.wpforms-container select,.wpforms-container textarea{background:var(--xt-black)!important;border:1px solid var(--xt-line)!important;color:var(--xt-chrome)!important;border-radius:var(--xt-radius)!important;padding:12px 14px!important;font-size:16px!important}
.wpforms-container input:focus,.wpforms-container select:focus,.wpforms-container textarea:focus{border-color:var(--xt-red)!important;box-shadow:none!important}
.wpforms-container .wpforms-submit{background:var(--xt-red)!important;color:#fff!important;border:0!important;border-radius:var(--xt-radius)!important;font-family:var(--xt-head)!important;font-weight:700!important;padding:16px 32px!important;font-size:16px!important}

/* Closing CTA band */
.elementor-section.xt-cta{background:linear-gradient(115deg,var(--xt-red-deep) 0%,var(--xt-red) 60%,#ff3b2f 100%)!important}
.elementor .xt-cta .xt-eyebrow .elementor-heading-title{color:#fff}
.elementor .xt-cta .xt-eyebrow .elementor-heading-title::before{background:#fff}
.elementor .xt-cta .xt-h2 .elementor-heading-title{color:#fff}
.elementor .xt-cta .elementor-widget-text-editor{color:#ffe5e3}
.elementor .xt-cta .xt-btn .elementor-button{background:#000;border-color:#000}
.elementor .xt-cta .xt-btn .elementor-button:hover{background:#1b1b1b;border-color:#1b1b1b}

/* Latest-posts shortcode */
.xt-posts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:28px}
.xt-post{background:var(--xt-panel);border:1px solid var(--xt-line);border-radius:var(--xt-radius);overflow:hidden;display:flex;flex-direction:column}
.xt-post img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.xt-post-body{padding:24px 26px 28px;display:flex;flex-direction:column;gap:10px;flex:1}
.xt-post h4{font-size:21px;line-height:1.25;margin:0}
.xt-post h4 a{color:var(--xt-chrome);text-decoration:none}
.xt-post p{margin:0;color:var(--xt-steel);font-size:17px}
.xt-post .xt-more{margin-top:auto;font-family:var(--xt-head);font-weight:700;color:var(--xt-red);text-decoration:none}

/* ------------------------------------------------------------------
   Blog archive + single posts (Astra templates — no Elementor needed)
------------------------------------------------------------------- */
.blog .site-content,.archive .site-content,.single-post .site-content,.search .site-content{background:var(--xt-graphite)}
.ast-separate-container .ast-article-post,.ast-separate-container .ast-article-single,.ast-separate-container .comments-area,.ast-separate-container .ast-comment-list li,.ast-separate-container .ast-author-box,.ast-separate-container .comment-respond{background:var(--xt-panel)!important;border:1px solid var(--xt-line);border-radius:var(--xt-radius)}
.blog .ast-row,.archive .ast-row{gap:0}
.ast-archive-description{background:var(--xt-black)!important;border-bottom:1px solid var(--xt-line);padding:150px 20px 70px!important}
.ast-archive-description .ast-archive-title,.blog .page-title{font-family:var(--xt-head);font-style:italic;font-weight:800;font-size:clamp(36px,5vw,62px);background:var(--xt-chrome-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.blog .entry-title,.archive .entry-title{font-size:24px;line-height:1.25}
.blog .entry-title a,.archive .entry-title a{color:var(--xt-chrome)}
.blog .entry-title a:hover,.archive .entry-title a:hover{color:var(--xt-red)}
.entry-meta,.entry-meta *{color:#7d848c!important;font-size:14px}
.ast-blog-featured-section img,.post-thumb-img-content img{border-radius:var(--xt-radius)}
.read-more a,.ast-read-more-container a{font-family:var(--xt-head);font-weight:700;color:var(--xt-red)!important}
.ast-pagination .page-numbers{background:var(--xt-panel);border:1px solid var(--xt-line);color:var(--xt-chrome);border-radius:var(--xt-radius)}
.ast-pagination .page-numbers.current,.ast-pagination .page-numbers:hover{background:var(--xt-red);border-color:var(--xt-red);color:#fff}

.single-post .entry-header .entry-title{font-family:var(--xt-head);font-style:italic;font-weight:800;font-size:clamp(32px,4.4vw,54px);line-height:1.05;background:var(--xt-chrome-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.single-post .entry-content{font-size:19px;line-height:1.75;color:#c3c8ce;max-width:72ch}
.single-post .entry-content h2{font-size:32px;margin-top:1.6em}
.single-post .entry-content h3{font-size:25px;margin-top:1.5em}
.single-post .entry-content h2,.single-post .entry-content h3{padding-left:16px;border-left:3px solid var(--xt-red)}
.single-post .entry-content strong{color:var(--xt-chrome)}
.single-post .entry-content a{color:var(--xt-chrome);text-decoration:underline;text-decoration-color:var(--xt-red);text-underline-offset:3px}
.single-post .entry-content ul li::marker{color:var(--xt-red)}
.single-post .entry-content blockquote{border-left:3px solid var(--xt-red);background:var(--xt-black);padding:18px 24px;color:var(--xt-chrome);font-style:normal}
.single-post .entry-content table{border-collapse:collapse;width:100%;font-size:16px}
.single-post .entry-content th{background:var(--xt-black);color:var(--xt-chrome);font-family:var(--xt-head)}
.single-post .entry-content th,.single-post .entry-content td{border:1px solid var(--xt-line)!important;padding:12px 14px}
.single-post .entry-content tr:nth-child(even) td{background:#111316}
.single .post-navigation a,.ast-single-related-posts-container{color:var(--xt-chrome)}
.comment-form input,.comment-form textarea{background:var(--xt-black)!important;border:1px solid var(--xt-line)!important;color:var(--xt-chrome)!important}
.ast-button,.button,input[type=submit],.wp-block-button__link{background:var(--xt-red)!important;color:#fff!important;border-color:var(--xt-red)!important;border-radius:var(--xt-radius)!important;font-family:var(--xt-head);font-weight:700}

/* Inline CTA appended to every blog post */
.xt-post-cta{margin-top:48px;padding:32px;border-radius:var(--xt-radius);background:linear-gradient(115deg,var(--xt-red-deep),var(--xt-red));color:#ffe5e3}
.xt-post-cta h3{color:#fff!important;border:0!important;padding:0!important;margin:0 0 8px!important;font-size:26px!important}
.xt-post-cta p{margin:0 0 18px}
.xt-post-cta a.xt-post-cta-btn{display:inline-block;background:#000;color:#fff!important;text-decoration:none!important;font-family:var(--xt-head);font-weight:700;padding:14px 24px;border-radius:var(--xt-radius)}

/* ------------------------------------------------------------------
   Footer (Astra Footer Builder)
------------------------------------------------------------------- */
.site-footer,.site-primary-footer-wrap,.site-below-footer-wrap,.site-above-footer-wrap{background:var(--xt-black)!important;border-top:1px solid var(--xt-line)!important;color:var(--xt-steel)}
.site-footer a{color:var(--xt-chrome)}
.site-footer a:hover{color:var(--xt-red)}
.xt-foot{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;padding:24px 0;text-align:left}
.xt-foot img{max-width:240px;height:auto;margin-bottom:16px}
.xt-foot h4{font-family:var(--xt-head);font-size:16px;font-weight:700;color:var(--xt-chrome);margin:0 0 14px}
.xt-foot ul{list-style:none;margin:0;padding:0}
.xt-foot li{margin:0 0 8px;font-size:16px}
.xt-foot a{text-decoration:none}
.xt-foot p{font-size:16px;margin:0 0 8px}
.xt-social{display:flex;gap:14px;margin-top:10px}



/* ==================================================================
   Phase 1 components
=================================================================== */
.elementor .xt-hero-home .elementor-widget-text-editor p{font-family:var(--xt-head);font-weight:500;font-size:clamp(18px,2vw,24px);color:#e3e6e9;letter-spacing:.01em}
.elementor .xt-h2-sm .elementor-heading-title{font-size:clamp(22px,2.4vw,30px)}
.elementor .xt-img-tall img{aspect-ratio:5/4}

/* Trust bar */
.elementor-section.xt-trustbar{padding:0 20px;background:var(--xt-black);border-bottom:1px solid var(--xt-line)}
.xt-trust{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr)}
.xt-trust li{padding:26px 18px;border-left:1px solid var(--xt-line);display:flex;flex-direction:column;gap:2px}
.xt-trust li:first-child{border-left:0}
.xt-trust strong{font-family:var(--xt-head);font-style:italic;font-weight:800;font-size:22px;color:var(--xt-chrome);line-height:1.1}
.xt-trust span{font-size:14px;color:var(--xt-steel)}

/* Google badge */
.xt-gbadge{display:inline-flex;align-items:center;gap:14px;padding:12px 18px 12px 12px;border:1px solid var(--xt-line);border-radius:999px;background:var(--xt-panel);margin-bottom:18px}
.xt-g{width:38px;height:38px;border-radius:50%;background:var(--xt-red);color:#fff;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center}
.xt-gbadge strong{display:block;font-family:var(--xt-head);color:var(--xt-chrome);font-size:17px}
.xt-gbadge span{font-size:14px;color:var(--xt-steel)}
.xt-gbadge-lg{padding:16px 26px 16px 16px}
.xt-gbadge-lg strong{font-size:22px}

/* Big service card */
.elementor .xt-svc-lg .elementor-image-box-img img{aspect-ratio:16/9}
.elementor .xt-svc-lg .elementor-image-box-title{font-size:30px;font-style:italic}

/* Segmented controls (shared) */
.xt-seg{display:flex;flex-wrap:wrap;gap:6px}
.xt-seg button,.xt-filters button{font-family:var(--xt-head);font-weight:600;font-size:15px;color:var(--xt-chrome);background:transparent;border:1px solid #3a3e44;border-radius:var(--xt-radius);padding:9px 14px;cursor:pointer;line-height:1}
.xt-seg button[aria-pressed=true],.xt-filters button[aria-pressed=true]{background:var(--xt-red);border-color:var(--xt-red);color:#fff}
.xt-seg button:hover,.xt-filters button:hover{border-color:var(--xt-chrome)}
.xt-fine{font-size:13px!important;color:#7d848c!important;margin-top:14px}

/* XPEL comparison */
.xt-compare-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:26px 0 14px}
.xt-film-col{background:var(--xt-panel);border:1px solid var(--xt-line);border-radius:var(--xt-radius);padding:24px}
.xt-film-col h3{font-size:22px;font-style:italic;margin:6px 0 8px}
.xt-film-col p{margin:0;font-size:16px;color:var(--xt-steel)}
.xt-film-top{border-color:var(--xt-red);box-shadow:inset 0 3px 0 var(--xt-red)}
.xt-tier{font-family:var(--xt-head);font-size:13px;font-weight:700;color:var(--xt-red)}
.xt-compare-tool{background:var(--xt-panel);border:1px solid var(--xt-line);border-radius:var(--xt-radius);padding:24px}
.xt-compare-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}
.xt-compare-bar>span{font-family:var(--xt-head);font-weight:600;color:var(--xt-chrome)}
.xt-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.xt-mcol h4{font-size:17px;margin:0 0 12px;color:var(--xt-chrome)}
.xt-m{margin-bottom:12px}
.xt-m-top{display:flex;justify-content:space-between;font-size:14px;color:var(--xt-steel);margin-bottom:5px}
.xt-m-top b{color:var(--xt-chrome);font-family:var(--xt-head)}
.xt-m-track{height:8px;background:#24272b;border-radius:4px;overflow:hidden}
.xt-m-track i{display:block;height:100%;background:#8d949b;border-radius:4px;transition:width .4s}
.xt-mcol-top .xt-m-track i{background:var(--xt-red)}
.xt-table-wrap{overflow-x:auto;margin-top:18px;border:1px solid var(--xt-line);border-radius:var(--xt-radius)}
.xt-table{width:100%;min-width:620px;border-collapse:collapse;font-size:16px}
.xt-table th,.xt-table td{padding:14px 16px;border-bottom:1px solid var(--xt-line);text-align:left;vertical-align:top}
.xt-table thead th{font-family:var(--xt-head);color:var(--xt-chrome);background:var(--xt-black)}
.xt-table tbody th{font-weight:600;color:var(--xt-chrome);width:28%}
.xt-table td{color:var(--xt-steel)}
.xt-table td:last-child{color:var(--xt-chrome)}
.xt-table tr:last-child>*{border-bottom:0}

/* Tint shade viewer */
.xt-shade{display:grid;grid-template-columns:1.2fr 1fr;gap:22px;background:var(--xt-panel);border:1px solid var(--xt-line);border-radius:var(--xt-radius);padding:18px}
.xt-shade-view{position:relative;border-radius:var(--xt-radius);background-size:cover;background-position:center;min-height:300px;overflow:hidden}
.xt-shade-tint{position:absolute;inset:0;background:#05070a;transition:opacity .35s}
.xt-shade-tag{position:absolute;left:16px;bottom:14px;color:#fff;display:flex;align-items:baseline;gap:10px}
.xt-shade-pct{font-family:var(--xt-head);font-style:italic;font-weight:800;font-size:46px;line-height:1}
.xt-shade-name{font-family:var(--xt-head);font-weight:600}
.xt-shade-ui{display:flex;flex-direction:column;gap:14px;padding:6px}
.xt-shade-desc{margin:0;color:var(--xt-chrome);min-height:3.2em}
.xt-legal{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.xt-legal li{font-size:15px;color:#6f767e;padding-left:26px;position:relative}
.xt-legal li::before{content:"✕";position:absolute;left:0;color:#6f767e}
.xt-legal li.ok{color:var(--xt-chrome)}
.xt-legal li.ok::before{content:"✓";color:#3ccf7a}
.xt-legal small{color:#7d848c}

/* Quiz */
.xt-quiz{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px}
.xt-quiz fieldset{border:1px solid var(--xt-line);border-radius:var(--xt-radius);background:var(--xt-panel);padding:20px;margin:0}
.xt-quiz legend{font-family:var(--xt-head);font-weight:700;color:var(--xt-chrome);font-size:17px;padding:0 6px}
.xt-quiz label{display:flex;gap:10px;align-items:flex-start;padding:9px 0;color:var(--xt-steel);cursor:pointer;font-size:16px}
.xt-quiz input{accent-color:var(--xt-red);margin-top:4px}
.xt-quiz-result{grid-column:1/-1;border:1px solid var(--xt-red);border-radius:var(--xt-radius);padding:24px;background:linear-gradient(120deg,#1a0605,var(--xt-panel))}
.xt-quiz-result span{font-family:var(--xt-head);font-size:14px;color:var(--xt-red);font-weight:700}
.xt-quiz-result h4{font-size:28px;font-style:italic;margin:4px 0 6px}
.xt-quiz-result p{margin:0 0 16px;color:var(--xt-chrome)}
.xt-quiz-btn{display:inline-block;background:var(--xt-red);color:#fff!important;text-decoration:none;font-family:var(--xt-head);font-weight:700;padding:13px 22px;border-radius:var(--xt-radius)}

/* Work gallery */
.xt-filters{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 22px}
.xt-wgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.xt-wgrid a{display:block;overflow:hidden;border-radius:var(--xt-radius)}
.xt-wgrid a[hidden]{display:none}
.xt-wgrid a:first-child{grid-column:span 2;grid-row:span 2}
.xt-wgrid img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .5s}
.xt-wgrid a:hover img,.xt-wgrid a:focus img{transform:scale(1.04)}

/* Contact list + chips */
.xt-contact{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:16px}
.xt-contact li{border-top:1px solid var(--xt-line);padding-top:14px;color:var(--xt-chrome);font-size:17px}
.xt-contact span{display:block;font-size:14px;color:var(--xt-red);font-family:var(--xt-head);font-weight:600;margin-bottom:2px}
.xt-contact a{color:var(--xt-chrome);text-decoration:none}
.xt-chips{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.xt-chips li{border:1px solid var(--xt-line);border-radius:999px;padding:7px 14px;font-size:15px;color:var(--xt-chrome)}
.elementor .xt-stepcard .xt-step{margin-bottom:14px}

/* Mobile action bar: Call / Text / Get a Quote */
.xt-mbar{position:fixed;left:0;right:0;bottom:0;z-index:9999;display:none;grid-template-columns:1fr 1fr 1.4fr;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(0,0,0,.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-top:1px solid var(--xt-line)}
.xt-mbar a{display:flex;align-items:center;justify-content:center;gap:7px;font-family:var(--xt-head);font-weight:700;font-size:15px;padding:13px 6px;border-radius:var(--xt-radius);text-decoration:none;color:var(--xt-chrome)!important;border:1px solid #3a3e44}
.xt-mbar a.xt-mbar-quote{background:var(--xt-red);border-color:var(--xt-red);color:#fff!important}
.xt-mbar svg{width:16px;height:16px;fill:currentColor}

@media (max-width:1024px){
  .xt-trust{grid-template-columns:repeat(3,1fr)}
  .xt-trust li:nth-child(4){border-left:0}
  .xt-quiz{grid-template-columns:1fr}
  .xt-shade{grid-template-columns:1fr}
}
@media (max-width:767px){
  .xt-trust{grid-template-columns:1fr 1fr}
  .xt-trust li{padding:16px 12px;border-left:0;border-top:1px solid var(--xt-line)}
  .xt-trust li:nth-child(-n+2){border-top:0}
  .xt-trust li:nth-child(even){border-left:1px solid var(--xt-line)}
  .xt-trust li:last-child{grid-column:1/-1;border-left:0}
  .xt-trust strong{font-size:19px}
  .xt-compare-cols,.xt-metrics{grid-template-columns:1fr}
  .xt-wgrid{grid-template-columns:1fr 1fr;gap:8px}
  .xt-shade-view{min-height:220px}
  .xt-shade-pct{font-size:38px}
  .elementor .xt-svc-lg .elementor-image-box-title{font-size:24px}
}


/* ==================================================================
   Motion & edge layer (xt-fx.js adds .xt-fx to <html> unless reduced motion)
=================================================================== */
/* Angled section edges — the slant of the logo's X */
.elementor-section.xt-alt,.elementor-section.xt-cta{clip-path:polygon(0 3vw,100% 0,100% calc(100% - 3vw),0 100%);margin-block:-3vw;padding-block:calc(104px + 3vw)!important;position:relative;z-index:1}
.elementor-section.xt-cta{clip-path:polygon(0 0,100% 3vw,100% 100%,0 calc(100% - 3vw))}

/* Header compacts on scroll */
#masthead{transition:padding .3s,background-color .3s,backdrop-filter .3s}
#masthead.xt-scrolled{background:rgba(0,0,0,.78)!important;backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}
#masthead.xt-scrolled .custom-logo-link img,#masthead.xt-scrolled .xt-logo img{max-height:42px;height:42px;transition:height .3s}

/* Hero: ghost wordmark, glare, film sweep, word rise, chrome glint */
.xt-hero{isolation:isolate}
.xt-ghost{position:absolute;right:-2vw;bottom:-4vw;z-index:1;font:italic 800 clamp(140px,26vw,420px)/.8 var(--xt-head);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px rgba(236,238,240,.09);pointer-events:none;user-select:none;transform:translateX(var(--gx,0))}
.xt-glare{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(600px circle at var(--mx,70%) var(--my,30%),rgba(255,255,255,.09),transparent 60%);transition:background .1s}
.xt-film{position:absolute;inset:0;z-index:3;pointer-events:none;display:none}
.xt-fx .xt-film{display:block;background:linear-gradient(90deg,rgba(0,0,0,.55) 0 calc(var(--f,0%) - 1px),rgba(255,255,255,.75) calc(var(--f,0%) - 1px) var(--f,0%),transparent var(--f,0%));animation:xt-film 1.3s cubic-bezier(.7,0,.2,1) .15s both}
@keyframes xt-film{0%{--f:0%;opacity:1}85%{--f:100%;opacity:1}100%{--f:100%;opacity:0}}
@property --f{syntax:'<percentage>';inherits:false;initial-value:0%}
.xt-fx .xt-hero .xt-w{display:inline-block;overflow:hidden;vertical-align:top;padding-right:.04em}
.xt-fx .xt-hero .xt-w>span{display:inline-block;color:transparent;background-image:linear-gradient(100deg,#c9ced3 0%,#ffffff 18%,#8d949b 30%,#e6e9ec 42%,#b9bec4 50%,#c9ced3 60%,#ffffff 72%,#8d949b 84%,#e6e9ec 100%);background-size:250% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;transform:translateY(105%);animation:xt-rise .9s cubic-bezier(.2,.8,.2,1) calc(.55s + var(--i)*.07s) both,xt-glint 7s ease-in-out calc(1.8s + var(--i)*.06s) infinite}
.elementor .xt-hero .xt-h1 .elementor-heading-title{background-size:250% 100%;background-image:linear-gradient(100deg,#c9ced3 0%,#ffffff 18%,#8d949b 30%,#e6e9ec 42%,#b9bec4 50%,#c9ced3 60%,#ffffff 72%,#8d949b 84%,#e6e9ec 100%)}
.xt-fx .xt-hero .xt-h1 .elementor-heading-title{background:none}
@keyframes xt-rise{to{transform:none}}
@keyframes xt-glint{0%,55%{background-position:100% 0}80%,100%{background-position:0% 0}}
.xt-fx .xt-hero .elementor-widget-text-editor,.xt-fx .xt-hero .xt-btnrow,.xt-fx .xt-hero .xt-eyebrow{animation:xt-up .8s cubic-bezier(.2,.8,.2,1) both;animation-delay:1.05s}
@keyframes xt-up{from{transform:translateY(18px);opacity:.01}to{transform:none;opacity:1}}


html,body{overflow-x:clip}
.elementor-section.xt-sec,.elementor-section.xt-tickerbar{overflow-x:clip}


/* ==================================================================
   Full-screen sections: every section fills at least one screen below the header
=================================================================== */
:root{--xt-hdr:80px}
.elementor-section.xt-sec:not(.xt-trustbar):not(.xt-tight){min-height:calc(100vh - var(--xt-hdr));min-height:calc(100svh - var(--xt-hdr));display:flex;flex-direction:column;justify-content:center}
.elementor-section.xt-sec:not(.xt-trustbar):not(.xt-tight)>.elementor-container{width:100%}
.elementor-section.xt-alt:not(.xt-tight),.elementor-section.xt-cta{min-height:calc(100vh - var(--xt-hdr) + 6vw);min-height:calc(100svh - var(--xt-hdr) + 6vw)}
.elementor-section.xt-hero-home,.elementor-section.xt-hero-page{justify-content:flex-end}
.elementor-section.xt-hero-home{min-height:calc(100svh - var(--xt-hdr))!important}

/* Hero background video (Elementor Background → Video) sits under the film/glare layers */
.xt-hero-video .elementor-background-video-container{z-index:0}
.xt-hero-video .elementor-background-video-container iframe,.xt-hero-video .elementor-background-video-hosted{filter:saturate(.85) contrast(1.05)}
.xt-hero-video>.elementor-background-overlay{z-index:0;background:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.55) 55%,rgba(0,0,0,.9) 100%)!important;opacity:1!important}

/* ==================================================================
   Scroll choreography (only when xt-fx.js adds .xt-fx)
=================================================================== */
.xt-progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:10000;background:var(--xt-red);transform-origin:0 50%;transform:scaleX(0);box-shadow:0 0 12px rgba(227,36,27,.7);pointer-events:none}
.admin-bar .xt-progress{top:32px}

/* shared timing */
.xt-fx [data-fx]{transition:transform 1s cubic-bezier(.16,1,.3,1) var(--d,0s),opacity .8s ease var(--d,0s),filter 1s ease var(--d,0s),clip-path 1.1s cubic-bezier(.7,0,.2,1) var(--d,0s)}

/* rise: text, buttons, lists */
.xt-fx [data-fx=rise]:not(.xt-in){opacity:0;transform:translateY(38px);filter:blur(6px)}

/* wipe: headings drawn on by a squeegee line */
.xt-fx [data-fx=wipe]{position:relative}
.xt-fx [data-fx=wipe] .elementor-heading-title{transition:clip-path 1.1s cubic-bezier(.7,0,.2,1) var(--d,0s)}
.xt-fx [data-fx=wipe]:not(.xt-in) .elementor-heading-title{clip-path:inset(-10% 100% -10% 0)}
.xt-fx [data-fx=wipe].xt-in .elementor-heading-title{clip-path:inset(-10% -2% -10% 0)}
.xt-fx [data-fx=wipe]::after{content:"";position:absolute;top:-4px;bottom:-4px;left:0;width:3px;background:var(--xt-red);box-shadow:0 0 14px var(--xt-red);opacity:0;pointer-events:none}
.xt-fx [data-fx=wipe].xt-in::after{animation:xt-squeegee 1.1s cubic-bezier(.7,0,.2,1) var(--d,0s) both}
@keyframes xt-squeegee{0%{left:0;opacity:1}85%{opacity:1}100%{left:100%;opacity:0}}
.xt-fx .xt-eyebrow[data-fx]::after{display:none}
.xt-fx .xt-eyebrow .elementor-heading-title::before{transition:width .7s cubic-bezier(.16,1,.3,1) calc(var(--d,0s) + .3s)}
.xt-fx .xt-eyebrow[data-fx]:not(.xt-in) .elementor-heading-title::before{width:0}
.xt-fx .xt-h2[data-fx] .elementor-heading-title{padding-bottom:10px;background:linear-gradient(90deg,var(--xt-red),var(--xt-red)) no-repeat 0 100%/0 3px;transition:clip-path 1.1s cubic-bezier(.7,0,.2,1) var(--d,0s),background-size .9s cubic-bezier(.16,1,.3,1) calc(var(--d,0s) + .9s)}
.xt-fx .xt-h2.xt-in .elementor-heading-title{background-size:64px 3px}
.xt-fx .xt-cta .xt-h2 .elementor-heading-title{background-image:linear-gradient(90deg,#fff,#fff)}

/* untint: photos start dark and zoomed, then the "film" lifts */
.xt-fx [data-fx=untint]{overflow:hidden;border-radius:var(--xt-radius)}
.xt-fx [data-fx=untint] img,.xt-fx [data-fx=untint] .xt-ph,.xt-fx [data-fx=untint] .xt-wgrid a,.xt-fx [data-fx=untint] .xt-gallery a{transition:filter 1.4s ease calc(var(--d,0s) + var(--n,0)*.08s),transform 1.6s cubic-bezier(.16,1,.3,1) calc(var(--d,0s) + var(--n,0)*.08s),opacity 1s ease calc(var(--d,0s) + var(--n,0)*.08s)}
.xt-fx [data-fx=untint]:not(.xt-in) img,.xt-fx [data-fx=untint]:not(.xt-in) .xt-ph{filter:brightness(.15) saturate(.4);transform:scale(1.18)}
.xt-fx [data-fx=untint]:not(.xt-in) .xt-wgrid a,.xt-fx [data-fx=untint]:not(.xt-in) .xt-gallery a{opacity:0;transform:translateY(30px) scale(.96)}
.xt-fx [data-fx=untint]:not(.xt-in) .xt-drag{filter:brightness(.2);transform:scale(.97)}
.xt-fx [data-fx=untint] .xt-drag{transition:filter 1.2s ease var(--d,0s),transform 1.2s cubic-bezier(.16,1,.3,1) var(--d,0s)}

/* deal: cards arrive one by one */
.xt-fx [data-fx=deal]{transition-delay:calc(var(--d,0s) + var(--col,0)*.1s)}
.xt-fx [data-fx=deal]:not(.xt-in){opacity:0;transform:translateY(60px) rotateX(14deg) scale(.96);transform-origin:50% 100%}
.xt-fx [data-fx=deal] .elementor-icon{transition:transform .9s cubic-bezier(.34,1.56,.64,1) calc(var(--d,0s) + var(--col,0)*.1s + .35s),box-shadow 1s ease calc(var(--d,0s) + .5s)}
.xt-fx [data-fx=deal]:not(.xt-in) .elementor-icon{transform:rotate(-90deg) scale(.4)}
.xt-fx [data-fx=deal].xt-in .elementor-icon{box-shadow:0 0 0 0 rgba(227,36,27,.5);animation:xt-ping 1.2s ease-out calc(var(--d,0s) + var(--col,0)*.1s + .6s) 1}
@keyframes xt-ping{from{box-shadow:0 0 0 0 rgba(227,36,27,.55)}to{box-shadow:0 0 0 16px rgba(227,36,27,0)}}
.xt-fx [data-fx=deal] .xt-step{transition:transform .8s cubic-bezier(.34,1.56,.64,1) calc(var(--d,0s) + .3s)}
.xt-fx [data-fx=deal]:not(.xt-in) .xt-step{transform:scale(0) rotate(-45deg)}

/* cascades inside widgets: film columns, table rows, FAQ items, chips */
.xt-fx .xt-cascade{transition:transform .8s cubic-bezier(.16,1,.3,1),opacity .7s ease;transition-delay:calc(var(--d,0s) + .25s + var(--n,0)*.07s)}
.xt-fx [data-fx]:not(.xt-in) .xt-cascade{opacity:0;transform:translateX(-24px)}
.xt-fx .xt-trust li.xt-cascade{transition-delay:calc(1.1s + var(--n,0)*.1s)}
.xt-fx .xt-trustbar:not(.xt-go) .xt-trust li{opacity:1}

/* comparison bars grow from zero */
.xt-fx .xt-metrics:not(.xt-bars-on) .xt-m-track i{width:0!important}
.xt-fx .xt-mcol:nth-child(2) .xt-m-track i{transition-delay:.12s}.xt-fx .xt-mcol:nth-child(3) .xt-m-track i{transition-delay:.24s}

/* star rating fills in */
.xt-fx .xt-quote .elementor-testimonial-content::before{background:linear-gradient(90deg,var(--xt-red) 0 var(--s,0%),#3a3e44 var(--s,0%));-webkit-background-clip:text;background-clip:text;color:transparent;transition:--s 1.2s ease}
.xt-fx .xt-quote .elementor-testimonial-content.xt-stars::before{--s:100%}
@property --s{syntax:'<percentage>';inherits:false;initial-value:0%}

/* parallax wrappers */
.xt-img-tall .elementor-widget-container,.xt-svc-lg .elementor-image-box-img{overflow:hidden;border-radius:var(--xt-radius)}
.xt-img-tall img,.xt-svc-lg .elementor-image-box-img img{will-change:transform}

/* ---------- Mobile: deck-stacking cards + swipeable reviews ---------- */
@media (max-width:767px){
  .xt-deck-row>.elementor-container>.xt-deck{position:sticky;top:calc(84px + var(--col,0)*14px);z-index:calc(1 + var(--col,0))}
  .xt-deck-row>.elementor-container>.xt-deck>.elementor-widget-wrap{box-shadow:0 -14px 30px -10px rgba(0,0,0,.85);background:var(--xt-panel)!important}
  .xt-alt .xt-deck-row>.elementor-container>.xt-deck>.elementor-widget-wrap{background:#16181b!important}
  .xt-deck-row{padding-bottom:12px!important}

  .xt-swipe>.elementor-container{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding-bottom:16px;margin:0 -16px!important;padding-inline:16px;scrollbar-width:none}
  .xt-swipe>.elementor-container::-webkit-scrollbar{display:none}
  .xt-swipe>.elementor-container>.elementor-column{flex:0 0 84%!important;width:84%!important;scroll-snap-align:center;margin-bottom:0!important}
  .xt-fx .xt-swipe [data-fx=deal]:not(.xt-in){transform:translateX(60px) scale(.94)}

  /* cards slide in from alternating sides on phones */
  .xt-fx .xt-from-l[data-fx=deal]:not(.xt-in){transform:translateX(-60px) rotate(-3deg)}
  .xt-fx .xt-from-r[data-fx=deal]:not(.xt-in){transform:translateX(60px) rotate(3deg)}
  .xt-fx .xt-deck[data-fx=deal]:not(.xt-in){transform:translateY(80px) scale(.94)}
  .xt-fx [data-fx=deal]{transition-delay:var(--d,0s)}
}


/* ==================================================================
   Services: slanted photo panels (homepage) — built by xt-fx.js from the image-box widgets
=================================================================== */
.xt-sp{--k:56px;width:100%;display:flex;height:min(70vh,680px);min-height:440px;margin-top:28px;padding-right:var(--k)}
.xt-sp-p{position:relative;flex:1 1 0;min-width:0;margin-right:calc(-1*var(--k));clip-path:polygon(var(--k) 0,100% 0,calc(100% - var(--k)) 100%,0 100%);overflow:hidden;cursor:pointer;background:#111316;transition:flex-grow .8s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1) calc(var(--i)*.08s),opacity .7s ease calc(var(--i)*.08s)}
.xt-sp-p.on{flex-grow:4.2;cursor:default}
.xt-fx .xt-sp:not(.xt-sp-in) .xt-sp-p{transform:translateY(70px);opacity:0}
.xt-sp-p .elementor-widget,.xt-sp-p .elementor-widget-container,.xt-sp-p .elementor-image-box-wrapper{height:100%;margin:0!important}
.xt-sp-p .elementor-image-box-img{position:absolute;inset:0;margin:0!important;width:100%!important}
.xt-sp-p .elementor-image-box-img a{pointer-events:none}
.xt-sp-p .elementor-image-box-img img,.xt-sp-p .elementor-image-box-img .xt-ph{display:block;width:100%;height:100%!important;object-fit:cover;aspect-ratio:auto!important;border-radius:0;filter:brightness(.32) saturate(.5);transform:scale(1.12);transition:filter .9s ease,transform 1.2s cubic-bezier(.16,1,.3,1)}
.xt-sp-p.on .elementor-image-box-img img,.xt-sp-p.on .elementor-image-box-img .xt-ph{filter:none;transform:scale(1)}
.xt-sp-p .elementor-image-box-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.9));opacity:0;transition:opacity .6s}
.xt-sp-p.on .elementor-image-box-img::after{opacity:1}
.xt-sp-label{position:absolute;left:50%;bottom:36px;z-index:2;transform:translateX(-50%) rotate(-90deg);transform-origin:50% 50%;white-space:nowrap;font:italic 800 clamp(16px,1.4vw,22px)/1 var(--xt-head);color:var(--xt-chrome);letter-spacing:.01em;translate:0 -110px;transition:opacity .4s}
.xt-sp-p.on .xt-sp-label{opacity:0}
.xt-sp-p:not(.on):hover .xt-sp-label{color:#fff}
.xt-sp-p .elementor-image-box-content{position:absolute;left:calc(var(--k) + 18px);right:calc(var(--k) + 18px);bottom:34px;z-index:2;text-align:left;padding:0!important;opacity:0;transform:translateY(24px);transition:opacity .5s ease .2s,transform .7s cubic-bezier(.16,1,.3,1) .2s;pointer-events:none}
.xt-sp-p.on .elementor-image-box-content{opacity:1;transform:none;pointer-events:auto}
.xt-sp-p:not(.on) .elementor-image-box-content{transition-delay:0s}
.elementor .xt-sp-p .elementor-image-box-title{font:italic 800 clamp(28px,3vw,46px)/1.02 var(--xt-head)!important;color:#fff!important;margin:0 0 10px!important;letter-spacing:-.02em}
.elementor .xt-sp-p .elementor-image-box-title a{color:inherit!important;text-decoration:none}
.elementor .xt-sp-p .elementor-image-box-description{color:#d6dade!important;max-width:44ch;font-size:17px!important;margin:0!important}
.xt-sp-go{display:inline-block;margin-top:16px;background:var(--xt-red);color:#fff!important;font:700 15px var(--xt-head);padding:12px 20px;border-radius:var(--xt-radius);text-decoration:none}
.xt-sp-go:hover{background:var(--xt-red-deep)}
.xt-sp-p.on{box-shadow:inset 0 -3px 0 var(--xt-red)}

@media (max-width:767px){
  .xt-sp{--k:22px;flex-direction:column;height:auto;min-height:0;padding-right:0;gap:0}
  .xt-sp-p{flex:none;height:86px;margin:0 0 -10px;clip-path:polygon(0 var(--k),100% 0,100% calc(100% - var(--k)),0 100%);transition:height .7s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1) calc(var(--i)*.08s),opacity .7s ease calc(var(--i)*.08s)}
  .xt-sp-p.on{height:min(62svh,520px)}
  .xt-sp-label{left:22px;bottom:auto;top:50%;transform:translateY(-50%);translate:none;font-size:20px}
  .xt-sp-label::after{content:"+";margin-left:12px;color:var(--xt-red);font-style:normal}
  .xt-sp-p .elementor-image-box-content{left:22px;right:22px;bottom:40px}
  .elementor .xt-sp-p .elementor-image-box-title{font-size:30px!important}
  .xt-sp-p.on{box-shadow:none}
}
@media (prefers-reduced-motion:reduce){.xt-sp-p,.xt-sp-p *{transition:none!important}}


/* ==================================================================
   Reviews: homepage carousel, quote marquee, filterable review wall
=================================================================== */
.xt-car{width:100%;margin-top:28px;margin-bottom:36px;position:relative}
.xt-car-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 2*20px)/3);column-gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:6px 2px 12px;outline:none}
.xt-car-track::-webkit-scrollbar{display:none}
.xt-car-track:focus-visible{outline:2px solid var(--xt-red);outline-offset:4px;border-radius:var(--xt-radius)}
.xt-car-slide{scroll-snap-align:start;min-width:0;display:flex}
.xt-car-slide .elementor-widget,.xt-wall-card .elementor-widget{margin:0!important;width:100%}
.xt-car-slide .xt-quote,.xt-wall-card .xt-quote{position:relative;background:var(--xt-panel);border:1px solid var(--xt-line);border-radius:var(--xt-radius);padding:30px 30px 26px;height:100%;transition:transform .5s cubic-bezier(.16,1,.3,1),border-color .4s,opacity .5s}
.xt-alt .xt-car-slide .xt-quote{background:var(--xt-graphite)}
.xt-car-slide:not(.on) .xt-quote{opacity:.45;transform:scale(.97)}
.xt-car-slide .xt-quote:hover,.xt-wall-card .xt-quote:hover{border-color:#3a3e44;transform:translateY(-4px)}
.xt-car-slide .elementor-testimonial-name::after,.xt-wall-card .elementor-testimonial-name::after{content:"Google review";display:block;font:500 13px var(--xt-body);color:#7d848c;margin-top:2px}
.xt-car-ui{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:18px}
.xt-car-btn{width:48px;height:48px;border-radius:50%;border:1px solid #3a3e44;background:transparent;color:var(--xt-chrome);font-size:20px;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}
.xt-car-btn:hover{border-color:var(--xt-red);background:rgba(227,36,27,.1)}
.xt-car-btn:active{transform:scale(.92)}
.xt-car-btn:disabled{opacity:.3;cursor:default;border-color:#3a3e44;background:transparent}

/* Quote marquee (reviews page) */
.elementor-section.xt-qmbar{padding:28px 0;background:var(--xt-black);border-block:1px solid var(--xt-line);overflow:hidden}
.elementor-section.xt-qmbar .elementor-widget-wrap{padding:0}
.xt-qm{display:flex;flex-direction:column;gap:14px}
.xt-qm-row{display:flex;width:max-content}
.xt-qm-row ul{display:flex;gap:14px;list-style:none;margin:0;padding:0 14px 0 0;flex-shrink:0}
.xt-qm li{display:flex;align-items:baseline;gap:10px;white-space:nowrap;padding:14px 20px;border:1px solid var(--xt-line);border-radius:999px;background:var(--xt-panel)}
.xt-qm q{font:italic 700 18px var(--xt-head);color:var(--xt-chrome);quotes:"\201C" "\201D"}
.xt-qm li span{font-size:14px;color:var(--xt-red);font-family:var(--xt-head);font-weight:600}
.xt-fx .xt-qm-row{animation:xt-marquee 60s linear infinite}
.xt-fx .xt-qm-row:nth-child(2){animation-direction:reverse;animation-duration:70s}
.xt-qm:hover .xt-qm-row{animation-play-state:paused}

/* Review wall */
.xt-revchips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 4px}
.xt-revchips button{font:600 15px var(--xt-head);color:var(--xt-chrome);background:transparent;border:1px solid #3a3e44;border-radius:999px;padding:10px 16px;cursor:pointer;transition:background .2s,border-color .2s}
.xt-revchips button small{font-size:12px;color:#7d848c;margin-left:4px}
.xt-revchips button[aria-pressed=true]{background:var(--xt-red);border-color:var(--xt-red)}
.xt-revchips button[aria-pressed=true] small{color:#ffd9d6}
.xt-revchips button:hover{border-color:var(--xt-chrome)}
.xt-wall{width:100%;columns:3 300px;column-gap:20px;margin-top:24px}
.xt-wall-card{break-inside:avoid;margin-bottom:20px}
.xt-wall-card[hidden]{display:none}
.xt-wall-card.xt-pop{animation:xt-pop .6s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--n,0)*.05s)}
@keyframes xt-pop{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
.xt-wall-card:nth-child(4n+1) .elementor-testimonial-content{font-size:20px}

@media (max-width:1024px){.xt-car-track{grid-auto-columns:calc((100% - 20px)/2)}}
@media (max-width:767px){
  .xt-car-track{grid-auto-columns:86%;column-gap:12px;margin:0 -16px;padding-inline:16px;scroll-padding-inline:16px}
  .xt-car-slide:not(.on) .xt-quote{opacity:.6}
  .xt-qm q{font-size:16px}
  .xt-revchips{flex-wrap:nowrap;overflow-x:auto;margin-inline:-16px;padding-inline:16px;scrollbar-width:none}
  .xt-revchips::-webkit-scrollbar{display:none}
  .xt-revchips button{flex:none}
}
@media (prefers-reduced-motion:reduce){.xt-qm-row{flex-wrap:wrap;width:auto}.xt-qm-row ul[aria-hidden]{display:none}}

/* Tilt + glare */
.xt-tiltable{transform:perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0));transition:transform .25s ease-out;transform-style:preserve-3d;position:relative}
.xt-tiltable::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(420px circle at var(--gx,50%) var(--gy,0%),rgba(255,255,255,.10),transparent 55%);opacity:0;transition:opacity .3s}
.xt-tiltable:hover::after{opacity:1}
.xt-tiltable:hover{border-color:#3a3e44}

/* Buttons: magnetic + shine */
.elementor .xt-btn .elementor-button{position:relative;overflow:hidden;transition:transform .2s ease-out,background .2s,border-color .2s,box-shadow .3s}
.elementor .xt-btn:not(.xt-btn-ghost) .elementor-button:hover{box-shadow:0 10px 34px -8px rgba(227,36,27,.7)}
.elementor .xt-btn .elementor-button::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:left .6s}
.elementor .xt-btn .elementor-button:hover::after{left:130%}

/* Film-spec bars fill in */
.xt-m-track i{transition:width .9s cubic-bezier(.2,.8,.2,1)}

/* Ticker */
.elementor-section.xt-tickerbar{padding:14px 0;background:transparent;overflow:hidden;z-index:2;position:relative}
.elementor-section.xt-tickerbar::before{content:"";position:absolute;left:-2%;right:-2%;top:12px;bottom:12px;background:var(--xt-red);transform:skewY(calc(-1.2deg + var(--lean,0deg)));transition:transform .15s linear}
.elementor-section.xt-tickerbar .elementor-widget-wrap{padding:0}
.xt-ticker{display:flex;width:max-content;position:relative}
.xt-ticker ul{display:flex;list-style:none;margin:0;padding:14px 0;gap:0;flex-shrink:0}
.xt-ticker li{font:italic 800 clamp(18px,2vw,26px)/1 var(--xt-head);color:#fff;white-space:nowrap;padding:0 26px;display:flex;align-items:center;gap:26px}
.xt-ticker li::after{content:"";width:16px;height:4px;background:#000;transform:skewX(-30deg)}
.xt-fx .xt-ticker{animation:xt-marquee 38s linear infinite}
.xt-ticker:hover{animation-play-state:paused}
@keyframes xt-marquee{to{transform:translateX(-50%)}}

/* Drag to tint */
.xt-drag{position:relative;border-radius:var(--xt-radius);overflow:hidden;aspect-ratio:16/8;min-height:280px;max-width:100%;background:#1c1f23;user-select:none;--x:50%}
.xt-drag-img,.xt-drag-tint{position:absolute;inset:0;background-size:cover;background-position:center}
.xt-drag-img{filter:saturate(1.1) brightness(1.06)}
.xt-drag-heat{position:absolute;inset:0;background:linear-gradient(0deg,rgba(255,120,40,.22),rgba(255,180,60,.06) 60%,transparent);mix-blend-mode:screen}
.xt-fx .xt-drag-heat{animation:xt-heat 3.2s ease-in-out infinite alternate}
@keyframes xt-heat{from{opacity:.55;transform:translateY(0)}to{opacity:1;transform:translateY(-2%)}}
.xt-drag-tint{clip-path:inset(0 0 0 var(--x));filter:brightness(.42) contrast(1.08) saturate(.9)}
.xt-drag-line{position:absolute;top:0;bottom:0;left:var(--x);width:2px;background:#fff;box-shadow:0 0 18px rgba(255,255,255,.8);transform:translateX(-1px);pointer-events:none}
.xt-drag-knob{position:absolute;top:50%;left:var(--x);width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;background:var(--xt-red);box-shadow:0 0 0 6px rgba(227,36,27,.25),0 8px 24px rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;color:#fff;font:700 18px var(--xt-head);pointer-events:none}
.xt-drag input[type=range]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.xt-drag input[type=range]:focus-visible~.xt-drag-knob{outline:2px solid #fff;outline-offset:4px}
.xt-drag-lbl{position:absolute;top:14px;padding:8px 12px;border-radius:var(--xt-radius);background:rgba(0,0,0,.65);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);font:600 14px var(--xt-head);color:var(--xt-chrome);pointer-events:none}
.xt-drag-lbl b{display:block;font:italic 800 20px/1.1 var(--xt-head)}
.xt-drag-l{left:14px}.xt-drag-r{right:14px;text-align:right}
.xt-drag-l b{color:#ffb070}.xt-drag-r b{color:#fff}
.xt-drag-note{font-size:13px;color:#7d848c;margin:10px 0 0}

@media (max-width:767px){
  .elementor-section.xt-alt,.elementor-section.xt-cta{padding-block:calc(64px + 3vw)!important}
  .xt-drag{aspect-ratio:4/5}
  .xt-drag-r{top:auto;bottom:14px}
  .xt-drag-lbl{max-width:70%}
  .xt-drag-lbl b{font-size:16px}
  .xt-ghost{bottom:-2vw}
}
@media (prefers-reduced-motion:reduce){
  .xt-ticker{flex-wrap:wrap;width:auto}.xt-ticker ul:nth-child(2){display:none}
}


/* Buttons line up with the text column (no double padding from button rows) */
.elementor-section.xt-plain>.elementor-container>.elementor-column>.elementor-widget-wrap{padding:0!important}

/* Phones: every button is full width, edge to edge of the content column */
@media (max-width:767px){
  .elementor .xt-btnrow>.elementor-widget-wrap{flex-direction:column;align-items:stretch;gap:12px}
  .elementor .xt-btnrow .elementor-widget{width:100%!important}
  .elementor .elementor-widget-button,.elementor .elementor-widget-button .elementor-button-wrapper{width:100%}
  .elementor .elementor-widget-button .elementor-button,
  .xt-sp-go,.xt-quiz-btn,.xt-post-cta a.xt-post-cta-btn,.xt-formbtn,
  .wpforms-container .wpforms-submit-container,.wpforms-container .wpforms-submit{display:flex!important;width:100%!important;justify-content:center;align-items:center;text-align:center;box-sizing:border-box}
}


/* ==================================================================
   Mobile menu: slanted-bar icon + full-screen "tint spread" menu
   Works on Astra's Off-Canvas (Full-Screen) menu and on the preview's menu
=================================================================== */
/* Icon */
.xt-bars{position:relative;display:inline-block;width:26px;height:18px;vertical-align:middle}
.xt-bars i{position:absolute;right:0;height:3px;border-radius:2px;background:var(--xt-chrome);transform:skewX(-24deg);transition:transform .45s cubic-bezier(.7,0,.2,1),width .35s cubic-bezier(.16,1,.3,1),opacity .3s,top .35s,background .3s}
.xt-bars i:nth-child(1){top:0;width:26px}
.xt-bars i:nth-child(2){top:7.5px;width:18px;background:var(--xt-red)}
.xt-bars i:nth-child(3){top:15px;width:22px}
.menu-toggle:hover .xt-bars i:nth-child(2),.xt-burger:hover .xt-bars i:nth-child(2){width:26px}
.menu-toggle:hover .xt-bars i:nth-child(3),.xt-burger:hover .xt-bars i:nth-child(3){width:14px}
[aria-expanded=true] .xt-bars i:nth-child(1){top:7.5px;width:26px;transform:rotate(45deg)}
[aria-expanded=true] .xt-bars i:nth-child(2){transform:translateX(26px) skewX(-24deg);width:8px;opacity:0}
[aria-expanded=true] .xt-bars i:nth-child(3){top:7.5px;width:26px;transform:rotate(-45deg)}
.menu-toggle .ast-mobile-svg,.menu-toggle .mobile-menu-toggle-icon svg{display:none!important}
.menu-toggle.xt-has-bars,.xt-burger{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0!important;background:transparent!important;border:1px solid #3a3e44!important;border-radius:var(--xt-radius)!important;position:relative;z-index:10001;transition:border-color .3s,background .3s}
.menu-toggle.xt-has-bars[aria-expanded=true],.xt-burger[aria-expanded=true]{border-color:var(--xt-red)!important;background:rgba(227,36,27,.08)!important}

/* Full-screen menu surface */
.xt-mnav,.ast-mobile-popup-drawer .ast-mobile-popup-inner{position:fixed;inset:0;z-index:10000;background:radial-gradient(120% 70% at 100% 0%,#1a1c20 0%,#000 60%)!important;
  clip-path:circle(0 at calc(100% - 40px) 46px);transition:clip-path .8s cubic-bezier(.7,0,.2,1);display:flex;flex-direction:column;
  padding:calc(96px + env(safe-area-inset-top,0px)) 24px calc(28px + env(safe-area-inset-bottom,0px));overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;visibility:hidden}
.xt-menu-open .xt-mnav,.ast-mobile-popup-drawer.active .ast-mobile-popup-inner{clip-path:circle(160% at calc(100% - 40px) 46px);visibility:visible}
.xt-mnav::before,.ast-mobile-popup-drawer .ast-mobile-popup-inner::before{content:"XCEL";position:absolute;right:0;max-width:100%;overflow:hidden;bottom:8vh;font:italic 800 46vw/.8 var(--xt-head);color:transparent;-webkit-text-stroke:1px rgba(236,238,240,.07);pointer-events:none}
.ast-mobile-popup-drawer .ast-mobile-popup-overlay{background:transparent!important}
.ast-mobile-popup-drawer .ast-mobile-popup-header .menu-toggle-close{position:fixed;top:calc(18px + env(safe-area-inset-top,0px));right:16px;z-index:10002;width:48px;height:48px;border:1px solid var(--xt-red);border-radius:var(--xt-radius);color:var(--xt-chrome);background:transparent;transition:transform .5s cubic-bezier(.34,1.56,.64,1) .3s}
.ast-mobile-popup-drawer:not(.active) .menu-toggle-close{transform:rotate(-90deg) scale(.5)}

/* Links */
.xt-mnav-links,.ast-mobile-popup-content .main-header-menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;position:relative;z-index:1;background:transparent!important}
.xt-mnav .menu-link,.ast-mobile-popup-content .main-header-menu>.menu-item>.menu-link{display:flex;align-items:center;gap:14px;font:italic 800 clamp(26px,7.2vw,40px)/1.08 var(--xt-head)!important;letter-spacing:-.02em;color:var(--xt-chrome)!important;text-decoration:none;padding:6px 0!important;border:0!important;background:transparent!important;
  opacity:0;transform:translateY(34px);transition:transform .7s cubic-bezier(.16,1,.3,1),opacity .5s ease,color .2s}
.xt-mnav .menu-link::before,.ast-mobile-popup-content .main-header-menu>.menu-item>.menu-link::before{content:"";flex:none;width:0;height:5px;background:var(--xt-red);transform:skewX(-30deg);transition:width .4s cubic-bezier(.16,1,.3,1)}
.xt-mnav .menu-link[aria-current=page],.ast-mobile-popup-content .current-menu-item>.menu-link{color:#fff!important}
.xt-mnav .menu-link[aria-current=page]::before,.xt-mnav .menu-link:hover::before,.ast-mobile-popup-content .current-menu-item>.menu-link::before,.ast-mobile-popup-content .main-header-menu>.menu-item>.menu-link:hover::before{width:26px}
.xt-menu-open .xt-mnav .menu-link,.ast-mobile-popup-drawer.active .main-header-menu>.menu-item>.menu-link{opacity:1;transform:none;transition-delay:calc(.25s + var(--n,0)*.05s)}
.ast-mobile-popup-content .sub-menu{background:transparent!important;border:0!important;padding-left:40px!important}
.ast-mobile-popup-content .sub-menu .menu-link{font:600 18px var(--xt-head)!important;color:var(--xt-steel)!important;border:0!important}
.ast-mobile-popup-content .ast-menu-toggle{color:var(--xt-red)!important;border:0!important}

/* Actions at the bottom */
.xt-mnav-cta{margin-top:auto;padding-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:10px;position:relative;z-index:1;opacity:0;transform:translateY(24px);transition:transform .7s cubic-bezier(.16,1,.3,1),opacity .5s}
.xt-menu-open .xt-mnav-cta,.ast-mobile-popup-drawer.active .xt-mnav-cta{opacity:1;transform:none;transition-delay:.7s}
.xt-mnav-cta a{display:flex;align-items:center;justify-content:center;font:700 16px var(--xt-head);padding:16px;border-radius:var(--xt-radius);text-decoration:none;color:var(--xt-chrome)!important;border:1px solid #3a3e44}
.xt-mnav-cta a.xt-q{grid-column:1/-1;background:var(--xt-red);border-color:var(--xt-red);color:#fff!important}
.xt-mnav-cta p{grid-column:1/-1;margin:8px 0 0;font-size:14px;color:#7d848c;text-align:center}
.xt-menu-open,.xt-menu-open body{overflow:hidden}
.xt-mbar{transform:translateY(calc(100% + 24px));transition:transform .5s cubic-bezier(.16,1,.3,1)}
html.xt-past-hero .xt-mbar{transform:none}
html.xt-menu-open .xt-mbar{transform:translateY(calc(100% + 24px))}
@media (prefers-reduced-motion:reduce){.xt-mnav,.ast-mobile-popup-drawer .ast-mobile-popup-inner,.xt-mnav *,.ast-mobile-popup-inner *{transition:none!important}}


/* ==================================================================
   Buttons v2: slanted like the logo's X, tint-film fill on hover, idle glint
=================================================================== */
.elementor .xt-btn .elementor-button{--sk:-12deg;--mx:0px;--my:0px;position:relative;overflow:hidden;isolation:isolate;
  padding:14px 30px;border-radius:4px;transform:translate(var(--mx),var(--my)) skewX(var(--sk));
  transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .35s,border-color .3s,color .3s,background-color .3s}
.elementor .xt-btn .elementor-button .elementor-button-content-wrapper{position:relative;z-index:2;display:inline-flex;transform:skewX(12deg);transition:letter-spacing .35s cubic-bezier(.16,1,.3,1)}
/* fill layer that wipes across on hover */
.elementor .xt-btn .elementor-button::before{content:"";position:absolute;inset:0;z-index:0;background:var(--xt-red-deep);transform:scaleX(0);transform-origin:0 50%;transition:transform .5s cubic-bezier(.7,0,.2,1)}
.elementor .xt-btn.xt-btn-ghost .elementor-button::before{background:var(--xt-red)}
.elementor .xt-btn .elementor-button:hover::before,.elementor .xt-btn .elementor-button:focus-visible::before{transform:scaleX(1)}
.elementor .xt-btn .elementor-button:hover .elementor-button-content-wrapper{letter-spacing:.04em}
.elementor .xt-btn.xt-btn-ghost .elementor-button:hover{border-color:var(--xt-red);color:#fff}
.elementor .xt-btn:not(.xt-btn-ghost) .elementor-button:hover{background:var(--xt-red);box-shadow:0 12px 34px -10px rgba(227,36,27,.75)}
/* glint: sweeps on hover, and every few seconds on primary buttons */
.elementor .xt-btn .elementor-button::after{z-index:1;left:-70%;width:45%;transform:skewX(-20deg)}
.xt-fx .elementor .xt-btn:not(.xt-btn-ghost) .elementor-button::after{animation:xt-btnglint 5.5s ease-in-out 2.5s infinite}
@keyframes xt-btnglint{0%,78%{left:-70%}92%,100%{left:130%}}
.elementor .xt-btn .elementor-button:active{transform:translate(var(--mx),var(--my)) skewX(var(--sk)) scale(.96)}
/* the CTA band inverts: black buttons, white fill */
.elementor .xt-cta .xt-btn:not(.xt-btn-ghost) .elementor-button::before{background:#fff}
.elementor .xt-cta .xt-btn:not(.xt-btn-ghost) .elementor-button:hover{color:#000;background:#000}
.elementor .xt-cta .xt-btn.xt-btn-ghost .elementor-button{border-color:rgba(255,255,255,.6);color:#fff}
.elementor .xt-cta .xt-btn.xt-btn-ghost .elementor-button::before{background:#000}

/* other filled buttons get the same slant */
.xt-sp-go,.xt-quiz-btn,.xt-post-cta a.xt-post-cta-btn,.xt-mnav-cta a.xt-q,.xt-formbtn,.wpforms-container .wpforms-submit{clip-path:polygon(9px 0,100% 0,calc(100% - 9px) 100%,0 100%);border-radius:0!important;padding-top:13px!important;padding-bottom:13px!important;padding-inline:30px!important;transition:background .3s,transform .2s}
.xt-sp-go:active,.xt-quiz-btn:active,.xt-mnav-cta a.xt-q:active,.xt-formbtn:active{transform:scale(.97)}

@media (max-width:767px){
  .elementor .xt-btn .elementor-button{padding:15px 20px;--sk:-9deg}
  .elementor .xt-btn .elementor-button .elementor-button-content-wrapper{transform:skewX(9deg)}
}
@media (prefers-reduced-motion:reduce){.elementor .xt-btn .elementor-button::after{animation:none!important}}


/* ==================================================================
   Desktop menu: gliding slanted underline, text roll, neighbour dimming
=================================================================== */
.xt-navfx{position:relative}
.xt-navbar{position:absolute;left:0;bottom:-2px;height:4px;width:0;background:var(--xt-red);transform:skewX(-30deg);border-radius:1px;box-shadow:0 0 14px rgba(227,36,27,.6);opacity:0;pointer-events:none;
  transition:left .45s cubic-bezier(.16,1,.3,1),width .45s cubic-bezier(.16,1,.3,1),opacity .3s}
.xt-navfx.xt-nav-show .xt-navbar{opacity:1}
.xt-roll{display:inline-block;position:relative;overflow:hidden;vertical-align:top;line-height:1.25}
.xt-roll>span{display:block;transition:transform .45s cubic-bezier(.7,0,.2,1)}
.xt-roll>span+span{position:absolute;left:0;top:100%;color:#fff}
.xt-navfx a:hover .xt-roll>span,.xt-navfx a:focus-visible .xt-roll>span{transform:translateY(-100%)}
.xt-navfx:hover .menu-link{opacity:.5;transition:opacity .3s}
.xt-navfx:hover .menu-link:hover,.xt-navfx .menu-link:focus-visible{opacity:1}
.xt-navfx .menu-link{transition:opacity .3s,color .3s}
/* dropdowns slide down */
@media (min-width:922px){
  .main-header-menu .sub-menu{display:block!important;visibility:hidden;opacity:0;transform:translateY(12px);clip-path:inset(0 0 100% 0);transition:opacity .3s,transform .45s cubic-bezier(.16,1,.3,1),clip-path .45s cubic-bezier(.16,1,.3,1),visibility 0s .45s}
  .main-header-menu .menu-item:hover>.sub-menu,.main-header-menu .menu-item:focus-within>.sub-menu{visibility:visible;opacity:1;transform:none;clip-path:inset(0 0 0 0);transition-delay:0s}
  .main-header-menu .sub-menu .menu-link{transition:padding-left .3s,color .2s,background .2s}
  .main-header-menu .sub-menu .menu-link:hover{padding-left:28px!important;color:#fff!important;background:rgba(227,36,27,.08)!important}
}

/* Header "Get a Quote" button: slanted like every other button */
.ast-header-button-1 .ast-custom-button,.xt-hbtn{position:relative;overflow:hidden;isolation:isolate;clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);border-radius:0!important;
  background:linear-gradient(90deg,var(--xt-red-deep) 50%,var(--xt-red) 50%) 100% 0/200% 100% no-repeat!important;padding:12px 26px!important;transition:background-position .5s cubic-bezier(.7,0,.2,1),transform .2s}
.ast-header-button-1 .ast-custom-button:hover,.xt-hbtn:hover{background-position:0 0!important}
.ast-header-button-1 .ast-custom-button::after,.xt-hbtn::after{content:"";position:absolute;top:0;bottom:0;left:-70%;width:45%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);z-index:-1;transition:left .6s}
.ast-header-button-1 .ast-custom-button:hover::after,.xt-hbtn:hover::after{left:130%}
.xt-fx .ast-header-button-1 .ast-custom-button::after,.xt-fx .xt-hbtn::after{animation:xt-btnglint 5.5s ease-in-out 3s infinite}
.ast-header-button-1 .ast-custom-button:active,.xt-hbtn:active{transform:scale(.96)}
@media (prefers-reduced-motion:reduce){.xt-navbar,.xt-roll>span{transition:none!important}}

/* ------------------------------------------------------------------
   Responsive
------------------------------------------------------------------- */
@media (max-width:1024px){
  .elementor-section.xt-sec{padding:80px 20px}
  .xt-foot{grid-template-columns:1fr 1fr}
}
@media (max-width:767px){
  body{font-size:17px}
  .elementor-section.xt-sec{padding:64px 16px}
  .elementor-section.xt-hero-home{padding:96px 16px 64px}
  .elementor-section.xt-hero-page{padding:120px 16px 60px}
  .elementor .xt-gallery{grid-template-columns:repeat(2,1fr);gap:8px}
  .elementor .xt-mosaic{grid-auto-rows:120px;gap:8px;margin-top:24px}
  .elementor .xt-card>.elementor-widget-wrap{padding:24px!important}
  .elementor .xt-sticky>.elementor-widget-wrap{position:static}
  .xt-foot{grid-template-columns:1fr;gap:28px}
  .xt-mbar{display:grid}
  body{padding-bottom:84px}
  .admin-bar #masthead{top:0}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;scroll-behavior:auto!important}
}
