/*
 * Lightning -- design pack for the TradePulse theme.
 *
 * This file IS the lead-gen renderer's stylesheet (functions/
 * _leadgen_render.ts buildStyles()), ported verbatim from the reference
 * page it must visually match. Loaded dead last in the cascade
 * (functions.php tp_assets()), so its element-level rules (body, h1..h4, a)
 * deliberately override base.css/tp-global.css -- the lg-* markup emitted by
 * templates/lightning/parts/* is styled ONLY by this file plus the bundled
 * Swiper vendor CSS.
 *
 * Two deliberate deviations from a byte-copy:
 *  - fonts load from the theme's own assets/fonts/ (same Inter/Montserrat
 *    variable woff2 files the renderer serves from /lg-fonts/);
 *  - the accent pair maps onto the site's generated palette tokens
 *    (--color-accent/--color-accent-hover) with the parity spec's
 *    #1F3E90/#1a357a as fallback, so a re-branded site keeps working.
 */

@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(../../assets/fonts/inter-var.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400 700;font-display:swap;src:url(../../assets/fonts/montserrat-var.woff2) format('woff2')}

:root{
  --lg-accent:var(--color-accent, #1F3E90);
  --lg-accent-hover:var(--color-accent-hover, #1a357a);
  --lg-on-surface-accent:var(--color-accent, #1F3E90);
  --lg-bg:#ffffff;
  --lg-fg:#1A1A1A;
  --lg-heading:#1A1A1A;
  --lg-muted:#3F3F3F;
  --lg-surface:#ffffff;
  --lg-card-bg:#ffffff;
  --lg-border:#e3e5e8;
  --lg-shadow:0 4px 16px 0 #0000001F;
  --lg-shadow-card:0 4px 16px 0 rgb(0 0 0 / .12);
  --lg-heading-font:'Montserrat',sans-serif;
  --lg-body-font:'Inter',sans-serif;
}
*{box-sizing:border-box}
html,body{overflow-x:hidden}
html{font-size:16px}
body{margin:0;padding:0;background:var(--lg-bg);color:var(--lg-fg);font:clamp(18.5px, 1.6vw, 20.5px)/1.6 var(--lg-body-font)}
h1,h2,h3,h4{font-family:var(--lg-heading-font);color:var(--lg-heading);font-weight:700;letter-spacing:normal;margin:0 0 .5em}
h1{font-size:clamp(43px, 5vw, 49px);line-height:1.12em;letter-spacing:-.02em}
h2{font-size:clamp(33px, 4vw, 39px);line-height:1.12em}
h3{font-size:clamp(24px, 3vw, 29px);line-height:1.12em}
p{margin:0 0 1em}
a{color:var(--lg-accent);text-decoration:none;transition:color 300ms ease-in-out}
a:hover{color:var(--lg-accent-hover)}
.lg-wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.site-main{display:block}

/* Layout / sections */
.lg-section{padding:100px 0}
.lg-section > .lg-wrap{text-align:left}
.lg-kicker{display:flex;align-items:center;gap:8px;color:var(--lg-accent);font-family:var(--lg-heading-font);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px}
.lg-kicker-icon{width:16px;height:16px;flex:none}

/* Buttons */
.lg-btn{display:inline-block;border-radius:3px;padding:13px 24px;font-family:var(--lg-body-font);font-weight:700;text-decoration:none;font-size:16px;box-shadow:var(--lg-shadow);transition:background-color 300ms ease-in-out,color 300ms ease-in-out,border-color 300ms ease-in-out;cursor:pointer;border:0}
.lg-btn-primary{background:var(--lg-accent);color:#fff}
.lg-btn-primary:hover{background:var(--lg-accent-hover);color:#fff}
.lg-btn-outline{background:#fff;border:2px solid var(--lg-accent);color:var(--lg-accent);padding:11px 24px}
.lg-btn-outline:hover{border-color:var(--lg-accent-hover);color:var(--lg-accent-hover)}

/* Header */
.lg-header{position:sticky;top:0;z-index:20;background:var(--lg-bg);border-bottom:1px solid var(--lg-border);transition:transform 300ms ease-in-out}
.lg-header-hidden{transform:translateY(-100%)}
.lg-header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px}
.lg-wordmark{font-family:var(--lg-heading-font);font-size:20px;font-weight:700;letter-spacing:-.01em;color:var(--lg-heading)}
.lg-logo{display:block;max-height:48px;width:auto}
.lg-nav-list{list-style:none;display:flex;gap:24px;padding:0;margin:0}
.lg-nav-item{position:relative}
.lg-nav-item > a{color:var(--lg-fg);text-decoration:none;font-size:15px;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.lg-nav-item > a:hover{color:var(--lg-accent)}
.lg-nav-item-active > a{color:var(--lg-accent)}
.lg-nav-dropdown-trigger{background:none;border:0;padding:0;font:inherit;cursor:pointer;color:var(--lg-fg);font-size:15px;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.lg-nav-dropdown-trigger:hover{color:var(--lg-accent)}
.lg-nav-caret{width:10px;height:7px;transition:transform 300ms ease-in-out}
.lg-nav-has-dropdown:hover .lg-nav-caret,.lg-nav-has-dropdown:focus-within .lg-nav-caret{transform:rotate(180deg)}
.lg-nav-dropdown{list-style:none;margin:0;padding:8px;position:absolute;top:100%;left:0;min-width:220px;background:var(--lg-card-bg);border:1px solid var(--lg-border);border-radius:4px;box-shadow:var(--lg-shadow);opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity 300ms ease-in-out,transform 300ms ease-in-out,visibility 300ms}
.lg-nav-has-dropdown:hover .lg-nav-dropdown,.lg-nav-has-dropdown:focus-within .lg-nav-dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.lg-nav-dropdown li{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:4px}
.lg-nav-dropdown li .lg-nav-caret{width:8px;height:6px;color:var(--lg-accent);flex:none;transform:none}
.lg-nav-dropdown li a{display:block;padding:0;border-radius:0;color:var(--lg-fg);font-size:14px;font-weight:400}
.lg-nav-dropdown li:hover,.lg-nav-dropdown li:focus-within{background:var(--lg-surface)}
.lg-nav-dropdown li:hover a,.lg-nav-dropdown li:focus a{color:var(--lg-accent)}
.lg-header-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.lg-phone{color:var(--lg-on-surface-accent);font-weight:600}
.lg-nav-toggle-input{position:absolute;opacity:0;pointer-events:none}
.lg-nav-burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:28px;height:22px;cursor:pointer}
.lg-nav-burger span{display:block;width:100%;height:2px;background:var(--lg-fg);border-radius:1px;transition:transform 200ms ease-in-out,opacity 200ms ease-in-out}

/* Shape dividers -- inline SVG diagonal (reference mechanism, no clip-path).
   The wrapper's color property = the adjacent section's background. */
.lg-divider{position:absolute;left:0;right:0;line-height:0;pointer-events:none}
.lg-divider svg{display:block;width:100%;height:100%}
.lg-divider-flip svg{transform:rotate(180deg)}

/* Hero -- full-bleed photo + dark overlay, two column, angled bottom edge. */
.lg-hero{position:relative;overflow:hidden;padding:96px 0 160px;background-size:cover;background-position:center;background-color:#1A1A1A;color:#fff;text-align:left}
.lg-hero-overlay{position:absolute;inset:0;background:linear-gradient(60deg,#1A1A1AD9 0%,#3F3F3FA6 52.8205%,#00000026 97.4359%);pointer-events:none}
.lg-hero-angle{bottom:-1px;height:64px;color:var(--lg-bg)}
.lg-hero-inner{position:relative;z-index:1;max-width:1120px;display:grid;grid-template-columns:55% 1fr;gap:48px;align-items:center}
.lg-hero-copy{padding-top:8px}
.lg-hero-rating{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.lg-hero-rating .lg-stars{margin-bottom:0}
.lg-google-g{width:18px;height:18px;flex:none}
.lg-hero-rating-label{color:#fff;font-weight:600;font-size:15px}
.lg-hero-rating-value{color:#fff;font-weight:700;font-size:15px;text-transform:uppercase;letter-spacing:.04em}
.lg-star-empty{opacity:.35}
.lg-hero h1{margin:0 0 16px;color:#fff;font-size:clamp(43px, 5vw, 49px);line-height:1.12em;max-width:100%}
.lg-hero-copy > p{color:#fff;opacity:.92;font-size:20px;line-height:1.55;max-width:52ch;margin:0 0 20px}
.lg-hero-badges{list-style:none;margin:0 0 24px;padding:0;display:grid;gap:14px}
.lg-hero-badges li{display:flex;align-items:center;gap:10px;color:#fff;font-weight:600;font-size:15px}
.lg-check-icon{width:16px;height:16px;flex:none;color:#fff}
.lg-hero-ctas{display:flex;gap:12px;margin-top:8px;flex-wrap:wrap}
.lg-hero-form-col{position:relative}
.lg-hero-card{background:var(--lg-card-bg);border-radius:4px;box-shadow:var(--lg-shadow);padding:32px}

/* About -- two column, image card left, kicker/copy right */
.lg-about-inner{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.lg-about:not(.lg-about-with-image) .lg-about-inner{grid-template-columns:1fr;max-width:760px}
.lg-about-with-image .lg-about-image{border-radius:4px;overflow:hidden;box-shadow:var(--lg-shadow)}
.lg-about-image img{display:block;width:100%;height:100%;object-fit:cover}

/* Services -- light-gray angled band (edges use the SVG shape divider) */
.lg-services-band{position:relative;background:#F4F5F7}
.lg-services-angle-top{top:-1px;height:48px;color:var(--lg-bg)}
.lg-services-angle-bottom{bottom:-1px;height:48px;color:var(--lg-bg)}
.lg-services-heading-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:32px}
.lg-services-heading-row h2{margin:0}
.lg-services-viewall{display:block;width:max-content;margin:32px auto 0}
.lg-services{list-style:none;padding:0;margin:0;display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.lg-service{background:var(--lg-card-bg);border-radius:4px;overflow:hidden;box-shadow:var(--lg-shadow);padding:28px 24px}
.lg-service-icon-box{color:var(--lg-accent);margin-bottom:12px}
.lg-service-icon{width:28px;height:28px}
.lg-service h3{margin:0 0 8px}
.lg-service p{margin:0;color:var(--lg-muted);font-size:15px}
.lg-service[style*="background-image"]{color:#fff;background-size:cover;background-position:center}
.lg-service[style*="background-image"] h3,.lg-service[style*="background-image"] p{color:#fff}
.lg-service[style*="background-image"] .lg-service-icon-box{color:#fff}

/* v3 service cards: always gradient-toned, no icon, truncated blurb,
   button-only click target, Swiper carousel. */
.lg-services-swiper{padding-bottom:44px}
.lg-services.swiper-wrapper{gap:0}
.lg-services-swiper .swiper-wrapper{align-items:stretch}
.lg-services-swiper .swiper-slide{height:auto}
.lg-service-v3{height:100%;display:flex;flex-direction:column;color:#fff;background-size:cover;background-position:center}
.lg-service-v3 h3{color:#fff;margin:0 0 10px}
.lg-service-blurb{color:#fff;opacity:.92;font-size:15px;margin:0 0 16px;flex:1}
.lg-btn-text{background:none;box-shadow:none;padding:0;color:#fff;display:inline-flex;align-items:center;gap:8px;align-self:flex-start}
.lg-btn-text:hover{color:#fff;opacity:.85}
.lg-arrow-circle{width:24px;height:24px;flex:none}
.swiper-progressbar{position:relative;height:4px;background:var(--lg-border);border-radius:2px;margin-top:16px}
.swiper-progressbar .swiper-progressbar-fill{background:var(--lg-accent);height:100%;border-radius:2px}

/* Service areas index -- static city cards grid */
.lg-areas-cards-grid{list-style:none;padding:0;margin:0;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.lg-area-card{background:var(--lg-card-bg);border-radius:4px;box-shadow:var(--lg-shadow);padding:24px}
.lg-area-card h3{margin:0 0 12px}

/* Service area band */
.lg-areas-band{position:relative;background:var(--lg-accent)}
.lg-areas-angle-top{top:-1px;height:48px;color:var(--lg-bg)}
.lg-areas-angle-bottom{bottom:-1px;height:48px;color:var(--lg-bg)}
.lg-areas-band .lg-kicker,.lg-areas-band h2,.lg-areas-band .lg-areas-intro{color:#fff}
.lg-areas-inner{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.lg-areas-copy{display:flex;flex-direction:column;align-items:flex-start}
.lg-areas-list{list-style:none;margin:16px 0 24px;padding:0;display:grid;gap:12px;width:100%}
.lg-areas-list--cols{grid-template-columns:1fr 1fr;column-gap:24px}
.lg-areas-list li{display:flex;align-items:center;gap:10px}
.lg-areas-list a,.lg-areas-list span{color:#fff;font-weight:600}
.lg-areas-list a:hover{opacity:.85}
.lg-areas-pin-icon{width:16px;height:16px;flex:none;color:#fff}
.lg-areas-btn{background:#fff;color:var(--lg-accent)}
.lg-areas-btn:hover{background:#fff;opacity:.9;color:var(--lg-accent)}
.lg-areas-map{border-radius:12px;overflow:hidden;box-shadow:var(--lg-shadow);height:480px}
.lg-map-embed{display:block;width:100%;height:100%;border:0}

/* Reviews */
.lg-reviews-swiper{padding-bottom:44px}
.lg-reviews-swiper--single{padding-bottom:0}
.swiper-wrapper{display:flex}
.lg-reviews-swiper .swiper-slide{height:auto}
.lg-review-card{background:var(--lg-card-bg);border-radius:4px;box-shadow:var(--lg-shadow-card);padding:28px;height:100%}
.lg-icon-quote{width:28px;height:28px;color:var(--lg-accent);margin-bottom:12px}
.lg-stars{display:flex;gap:2px;color:#F5A623;margin-bottom:12px}
.lg-stars svg{width:16px;height:16px}
.lg-review-quote{margin:0 0 12px;font-size:15px}
.lg-review-attribution{margin:0;color:var(--lg-muted);font-size:13px;font-weight:600}

/* Trust / CTA */
.lg-trust{background-size:cover;background-position:center}
.lg-trust-image h2,.lg-trust-image p{color:#fff}
.lg-trust-inner{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.lg-trust-image-card{border-radius:4px;overflow:hidden;box-shadow:var(--lg-shadow)}
.lg-trust-image-card img{display:block;width:100%;height:100%;object-fit:cover}
.lg-trust-image-placeholder{background:linear-gradient(75deg,var(--lg-accent-hover) 0%,var(--lg-accent) 100%);min-height:280px}
.lg-cta{position:relative;background:linear-gradient(75deg,var(--lg-accent-hover) 0%,var(--lg-accent) 100%);color:#fff;padding:64px 0}
.lg-cta h2{color:#fff}
.lg-cta p{color:#fff}
.lg-cta-actions{display:flex;gap:12px;margin-top:18px;flex-wrap:wrap}
.lg-cta-angle-top{top:-1px;height:48px;color:var(--lg-bg)}
.lg-cta-angle-bottom{bottom:-1px;height:48px;color:var(--lg-bg)}

/* Form -- required asterisk sits inline right after the label text */
.lg-form{display:grid;gap:16px;max-width:520px;color:var(--lg-fg)}
.lg-form label{display:grid;gap:6px;font-size:14px;font-weight:600;color:#1A1A1A}
.lg-label-text{display:block}
.lg-required{display:inline;color:#D92D20;margin-left:4px}
.lg-form input,.lg-form textarea{font:16px/1.5 var(--lg-body-font);padding:12px 16px;border:none;border-bottom:2px solid var(--lg-border);border-radius:6px;background:var(--lg-bg);color:var(--lg-fg);transition:border-color 300ms ease-in-out,box-shadow 300ms ease-in-out}
.lg-form input:focus,.lg-form textarea:focus{outline:none;border-color:var(--lg-accent);box-shadow:var(--lg-shadow)}
.lg-form button{margin-top:4px;justify-self:start}
.lg-form input[type="hidden"]{display:none}
.lg-form-status{margin:0;color:#D92D20;font-size:14px;font-weight:600}

/* FAQ */
.lg-faqs{background:var(--lg-card-bg);border-radius:4px;box-shadow:var(--lg-shadow-card);overflow:hidden}
.lg-faq{border-bottom:1px solid var(--lg-border);border-left:3px solid var(--lg-accent);padding:20px 24px 20px 21px}
.lg-faq:last-child{border-bottom:0}
.lg-faq summary{cursor:pointer;font-weight:600;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--lg-heading)}
.lg-faq summary::-webkit-details-marker{display:none}
.lg-faq .lg-faq-icon-plus,.lg-faq .lg-faq-icon-minus{width:16px;height:16px;color:var(--lg-accent);flex:none}
.lg-faq .lg-faq-icon-minus{display:none}
.lg-faq[open] .lg-faq-icon-plus{display:none}
.lg-faq[open] .lg-faq-icon-minus{display:block}
.lg-faq p{margin:12px 0 0;color:var(--lg-muted)}

/* Footer */
.lg-footer{border-top:1px solid var(--lg-border);padding:56px 0 28px;color:var(--lg-muted);font-size:14px}
.lg-footer-cols{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;align-items:start}
.lg-footer-col-heading{color:var(--lg-heading);font-family:var(--lg-heading-font);font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.04em;margin:0 0 12px}
.lg-footer-hours{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:4px}
.lg-footer-nav{display:flex;flex-direction:column;gap:10px;margin:0}
.lg-footer-nav a{color:var(--lg-muted)}
.lg-footer-map{border-radius:12px;overflow:hidden;box-shadow:var(--lg-shadow);height:240px;margin:16px 0}
.lg-footer-bottombar{border-top:1px solid var(--lg-border);padding:20px 0;color:var(--lg-muted);font-size:13px}
.lg-footer-bottombar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.lg-footer-bottombar-nav{display:flex;gap:16px}
.lg-footer-bottombar-nav a{color:var(--lg-muted)}

/* ----------------------------------------------------------------------
   Skin neutralizer. assets/skin.css styles bare elements behind a
   [data-skin] attribute selector ((0,1,1) -- beats this file's bare
   element and single-class rules), which title-cased every heading and
   forced the skin's 80px rhythm onto every section. Lightning's look is
   THIS file, verbatim from the reference page, so the same values are
   re-declared here at >= specificity for whatever skin is active. */
[data-skin] body{font-size:clamp(18.5px, 1.6vw, 20.5px);line-height:1.6}
[data-skin] h1,[data-skin] h2,[data-skin] h3,[data-skin] h4{text-transform:none;font-weight:700;letter-spacing:normal;line-height:1.12}
[data-skin] h1{font-size:clamp(43px, 5vw, 49px);letter-spacing:-.02em}
[data-skin] h2{font-size:clamp(33px, 4vw, 39px)}
[data-skin] h3{font-size:clamp(24px, 3vw, 29px)}
[data-skin] section{padding:0}
[data-skin] .lg-section{padding:100px 0}
[data-skin] .lg-hero{padding:96px 0 160px}
[data-skin] .lg-cta{padding:64px 0}
[data-skin] .lg-footer-bottombar{padding:20px 0}

/* Responsive step-downs */
@media (max-width:1023px){
  .lg-section,[data-skin] .lg-section{padding:64px 0}
  html{font-size:15px}
  h1,[data-skin] h1{font-size:41px}
  h2,[data-skin] h2{font-size:33px}
  h3,[data-skin] h3{font-size:22px}
  .lg-about-inner{grid-template-columns:1fr;gap:32px}
  .lg-trust-inner{grid-template-columns:1fr;gap:32px}
  .lg-areas-inner{grid-template-columns:1fr;gap:24px}.lg-areas-map{height:320px}
}
@media (max-width:767px){
  .lg-section,[data-skin] .lg-section{padding:32px 0}
  .lg-header-inner{flex-wrap:wrap;row-gap:8px}
  .lg-nav-burger{display:flex}
  .lg-nav{order:3;width:100%;display:none}
  #lg-nav-toggle:checked ~ .lg-nav{display:flex}
  .lg-nav-list{flex-direction:column;gap:4px}
  .lg-header-actions{margin-left:auto}
  .lg-nav-dropdown{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;display:none}
  .lg-nav-has-dropdown:hover .lg-nav-dropdown,.lg-nav-has-dropdown:focus-within .lg-nav-dropdown{display:block}
  html{font-size:14px}
  h1,[data-skin] h1{font-size:34px}
  h2,[data-skin] h2{font-size:28px}
  h3,[data-skin] h3{font-size:20px}
  /* Hero: stack columns, form card below the hero copy */
  .lg-hero,[data-skin] .lg-hero{padding:40px 0 88px}
  .lg-hero-inner{grid-template-columns:1fr;gap:28px;align-items:start}
  .lg-hero-angle{height:40px}
  .lg-hero h1{font-size:34px;line-height:1.15}
  .lg-hero-copy > p{font-size:17px;line-height:1.55}
  .lg-areas-list--cols{grid-template-columns:1fr}.lg-areas-copy{align-items:stretch}.lg-areas-btn{width:100%;text-align:center}
  .lg-services-heading-row{align-items:flex-start}
  .lg-services-heading-row .lg-btn{width:100%;text-align:center}
  .lg-services-viewall{width:100%;text-align:center}
  .lg-footer-cols{grid-template-columns:1fr;gap:32px}
}
@media (max-width:479px){
  .lg-hero-inner{grid-template-columns:1fr}
  .lg-footer-cols{grid-template-columns:1fr}
}
