/* V11 responsive premium correction layer. Loaded last to resolve conflicting legacy rules. */
:root {
  --lt-v11-ink: #142f52;
  --lt-v11-muted: #586b83;
  --lt-v11-orange: #f5822a;
  --lt-v11-border: #dce5ef;
  --lt-v11-radius: 20px;
}

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  color: var(--lt-v11-ink);
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 17px;
  line-height: 1.72;
  font-weight: 400;
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: clip;
}
*, *::before, *::after { box-sizing: border-box; }
img { max-width: 100%; }
main > section { min-width: 0; }
.container { width: min(1280px, calc(100% - 64px)); max-width: 1280px; }

/* Crisp, consistent type: no text blur filters or transforms on headings. */
h1, h2, h3, h4, h5, h6,
.hero h1, .section-heading h2, .reasons-heading h2, .process-heading h2,
.faq-intro h2, .about-copy h2, .contact-copy h2, .rapid-quote-intro h2 {
  font-family: "Manrope", "DM Sans", Arial, sans-serif !important;
  font-weight: 800 !important;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  filter: none !important;
  text-shadow: none;
}
.hero h1 { text-shadow: 0 2px 16px rgba(0,0,0,.2); }
.hero .hero-lede { font-size: clamp(1.1rem, 1.35vw, 1.3rem) !important; line-height: 1.75 !important; }

/* Consistent spacing and readable desktop hierarchy. */
@media (min-width: 1024px) {
  .container { width: min(1320px, calc(100% - 80px)); }
  .hero-content.container, .hero-bottom.container { width: min(1460px, calc(100% - 80px)); max-width: 1460px; }
  .section, .reasons-section, .about-section, .process-section,
  .reviews-section, .faq-section, .contact-section { padding-block: clamp(78px, 6.5vw, 108px); }
  .rapid-quote-section { padding: 64px 0 58px !important; }
  .rapid-quote-card { gap: clamp(36px, 4vw, 64px) !important; padding: clamp(36px, 3.2vw, 48px) !important; border-radius: 26px !important; }
  .rapid-quote-intro h2 { font-size: clamp(3rem, 4vw, 4.25rem) !important; line-height: 1.08 !important; letter-spacing: -.055em !important; }
  .rapid-quote-intro > p:last-child { font-size: 1.2rem !important; line-height: 1.8 !important; }
  .section-heading h2, .reasons-heading h2, .process-heading h2, .faq-intro h2,
  .about-copy h2, .contact-copy h2 { font-size: clamp(2.65rem, 3.4vw, 3.65rem) !important; line-height: 1.12 !important; letter-spacing: -.045em !important; }
  .section-heading p, .reasons-heading > p:last-child, .about-copy > p:not(.eyebrow),
  .process-heading > p:not(.eyebrow), .faq-intro > p:not(.eyebrow),
  .faq-list p, .contact-copy > p:not(.eyebrow), .heading-aside {
    font-size: 1.12rem !important; line-height: 1.82 !important; color: var(--lt-v11-muted);
  }
  .about-copy > p:not(.eyebrow), .contact-copy > p:not(.eyebrow) { color: #dce6f1; }
  .service-grid { gap: 24px !important; }
  .service-card { min-height: 450px !important; padding: 30px 30px 0 !important; border-radius: 22px !important; }
  .service-card h3 { font-size: clamp(1.5rem, 1.7vw, 1.85rem) !important; line-height: 1.28 !important; letter-spacing: -.035em !important; }
  .service-card p, .reasons-grid p, .process-grid p { font-size: 1.08rem !important; line-height: 1.8 !important; }
  .service-card > a { font-size: .95rem !important; }
  .service-card img { width: calc(100% + 60px) !important; height: 190px !important; flex-basis: 190px !important; margin-inline: -30px !important; }
  .reasons-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 14px !important; border: 0 !important; }
  .reasons-grid article, .reasons-grid article + article { min-width: 0; min-height: 230px !important; padding: 28px 24px !important; border: 1px solid var(--lt-v11-border) !important; border-radius: 18px !important; background: #fff; }
  .reasons-grid h3, .process-grid h3 { font-size: 1.3rem !important; line-height: 1.35 !important; }
  .process-grid { gap: 16px !important; }
  .process-grid article, .process-grid article:first-child, .process-grid article:last-child, .process-grid article + article {
    min-width: 0; padding: 30px !important; border: 1px solid var(--lt-v11-border) !important; border-radius: 18px !important;
  }
  .process-grid article:not(:last-child)::after { display: none; }
  .review-grid { gap: 22px !important; }
  .review-card { min-width: 0; min-height: 270px !important; padding: 30px !important; border-radius: 20px !important; }
  .review-card blockquote { font-size: 1.15rem !important; line-height: 1.7 !important; }
  .review-card figcaption strong { font-size: 1rem !important; }
  .review-card figcaption small { font-size: .88rem !important; }
  .faq-layout { gap: clamp(48px, 7vw, 100px) !important; }
  .faq-list h3 { font-size: 1.18rem !important; line-height: 1.45 !important; }
  .faq-list p { font-size: 1.05rem !important; }
  .contact-grid { gap: clamp(48px, 6vw, 88px) !important; }
  .contact-details strong { font-size: 1.05rem !important; }
  .contact-details small { font-size: .78rem !important; }
  .rapid-quote-form label, #quote-form label { font-size: 1rem !important; }
  .rapid-quote-form input, .rapid-quote-form select, #quote-form input, #quote-form select, #quote-form textarea {
    min-height: 50px; font-size: 1.05rem !important; padding: 12px 14px !important;
  }
  .trust-items span { font-size: 1rem !important; gap: 12px; }
  .trust-items b { width: 34px !important; height: 34px !important; flex-basis: 34px !important; }
  .eyebrow, .eyebrow-dark { font-size: .85rem !important; }
}

/* Cards must occupy their own grid cells; never rely on negative margins or adjacent borders. */
.service-grid, .reasons-grid, .process-grid, .review-grid, .about-grid, .contact-grid,
.faq-layout, .rapid-quote-card, .rapid-route-fields, .rapid-contact-fields,
.rapid-quote-bottom, .form-row { min-width: 0; }
.service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.service-card, .review-card, .reasons-grid article, .process-grid article { width: 100%; max-width: 100%; margin: 0; }
.reasons-grid article + article { margin-left: 0; }
.reasons-grid { gap: 0; }

/* Add breathing room between hero and quote form. */
.hero { margin-bottom: 0; }
.rapid-quote-section { position: relative; padding: 48px 0 44px; }
.rapid-quote-card { width: min(1200px, calc(100% - 48px)); margin: 0 auto; }
.trust-strip { position: relative; padding-block: 20px; }
.trust-items { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.trust-items span { min-width: 0; font-size: .95rem; line-height: 1.55; }

/* Mobile/tablet: single-column where needed, no card collisions or clipped text. */
@media (max-width: 1023px) {
  .container { width: calc(100% - 44px); }
  .rapid-quote-section { padding: 34px 0 32px !important; }
  .rapid-quote-card { width: calc(100% - 44px); padding: 30px !important; gap: 24px !important; }
  .rapid-quote-intro h2 { font-size: clamp(2.4rem, 5.5vw, 3.3rem) !important; }
  .rapid-quote-intro > p:last-child { font-size: 1.05rem !important; }
  .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
  .service-card { min-height: 0 !important; padding: 24px 24px 0 !important; }
  .service-card img { width: calc(100% + 48px) !important; margin-inline: -24px !important; }
  .reasons-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; border: 0 !important; }
  .reasons-grid article, .reasons-grid article + article { min-height: 0 !important; padding: 22px !important; border: 1px solid var(--lt-v11-border) !important; border-radius: 16px !important; }
  .process-grid { grid-template-columns: 1fr !important; gap: 12px !important; }
  .process-grid article, .process-grid article:first-child, .process-grid article:last-child, .process-grid article + article { padding: 24px !important; border: 1px solid var(--lt-v11-border) !important; border-radius: 16px !important; }
  .process-grid article:not(:last-child)::after { display: none; }
  .trust-items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-grid, .contact-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .review-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  html, body { max-width: 100%; overflow-x: clip; }
  .container { width: calc(100% - 36px) !important; max-width: 600px; }
  body { font-size: 16px; line-height: 1.7; }
  .hero-content.container, .hero-bottom.container { width: calc(100% - 36px) !important; }
  .hero h1 { font-size: clamp(2.6rem, 10vw, 3.6rem) !important; line-height: 1.02 !important; }
  .hero .hero-lede { font-size: 1.05rem !important; line-height: 1.7 !important; }
  .rapid-quote-section { margin-top: 0; padding: 30px 0 32px !important; }
  .rapid-quote-card { width: calc(100% - 28px) !important; padding: 24px 18px !important; gap: 22px !important; border-radius: 20px !important; }
  .rapid-quote-intro h2 { font-size: clamp(2.15rem, 8.5vw, 2.8rem) !important; line-height: 1.1 !important; }
  .rapid-quote-intro > p:last-child { font-size: 1rem !important; line-height: 1.7 !important; }
  .rapid-route-fields, .rapid-contact-fields, .rapid-quote-bottom { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 14px !important; width: 100%; }
  .rapid-contact-fields > div:last-child { grid-column: auto !important; }
  .rapid-route-fields > div, .rapid-contact-fields > div, .rapid-quote-bottom > div { width: 100%; min-width: 0; }
  .rapid-quote-form label, #quote-form label { display: block; margin-bottom: 6px; font-size: .95rem !important; line-height: 1.4; }
  .rapid-quote-form input, .rapid-quote-form select, #quote-form input, #quote-form select, #quote-form textarea {
    width: 100% !important; max-width: 100% !important; min-width: 0 !important; min-height: 48px;
    padding: 12px !important; font-size: 16px !important; line-height: 1.4; border-radius: 12px !important;
  }
  .rapid-quote-bottom .button, .quote-submit { width: 100% !important; min-height: 50px; font-size: 1rem !important; }
  .rapid-quote-status, .form-note, .form-status { font-size: .82rem !important; line-height: 1.6 !important; overflow-wrap: anywhere; }
  .trust-strip { padding-block: 18px; }
  .trust-items { grid-template-columns: minmax(0, 1fr) !important; gap: 12px !important; padding-block: 4px; }
  .trust-items span { font-size: .92rem !important; align-items: center; }
  .trust-items b { flex: 0 0 32px; width: 32px; height: 32px; }
  .reasons-section, .section, .process-section, .faq-section, .reviews-section, .about-section, .contact-section { padding-block: 54px !important; }
  .section-heading, .reasons-heading, .process-heading, .faq-intro { margin-bottom: 26px; }
  .section-heading h2, .reasons-heading h2, .process-heading h2, .faq-intro h2, .about-copy h2, .contact-copy h2 { font-size: clamp(2.1rem, 8vw, 2.8rem) !important; line-height: 1.12 !important; }
  .section-heading p, .reasons-heading > p:last-child, .about-copy > p:not(.eyebrow), .process-heading > p:not(.eyebrow), .faq-intro > p:not(.eyebrow), .faq-list p, .contact-copy > p:not(.eyebrow), .heading-aside { font-size: 1rem !important; line-height: 1.75 !important; }
  .service-grid, .reasons-grid, .review-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 16px !important; }
  .service-card { padding: 22px 20px 0 !important; border-radius: 18px !important; }
  .service-card h3 { font-size: 1.35rem !important; line-height: 1.3 !important; }
  .service-card p { font-size: 1rem !important; line-height: 1.7 !important; }
  .service-card > a { font-size: .92rem !important; }
  .service-card img { width: calc(100% + 40px) !important; height: 190px !important; flex-basis: 190px !important; margin-inline: -20px !important; }
  .reasons-grid article, .reasons-grid article + article { padding: 22px !important; }
  .reasons-grid h3, .process-grid h3 { font-size: 1.2rem !important; line-height: 1.35 !important; }
  .reasons-grid p, .process-grid p { font-size: .98rem !important; line-height: 1.7 !important; }
  .process-grid article, .process-grid article:first-child, .process-grid article:last-child, .process-grid article + article { padding: 22px !important; }
  .review-card { min-height: 0 !important; padding: 23px !important; border-radius: 18px !important; }
  .review-card blockquote { font-size: 1.05rem !important; line-height: 1.65 !important; }
  .faq-list h3 { font-size: 1.05rem !important; line-height: 1.5 !important; }
  .faq-list p { font-size: .98rem !important; }
  .contact-details strong { font-size: .98rem !important; overflow-wrap: anywhere; word-break: break-word; }
  .quote-card { width: 100%; padding: 23px 18px !important; border-radius: 18px !important; }
  #quote-form, .form-row { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 12px !important; width: 100% !important; }
  .form-row > div { width: 100% !important; min-width: 0 !important; }
  .contact-map { margin-top: 28px; padding: 16px; }
  .contact-map-heading h3 { font-size: 1.35rem !important; }
  .contact-map iframe { height: 250px; }
  .footer-main, .footer-bottom { gap: 14px; }
  /* Keep section reveals subtle and within the viewport on narrow screens. */
  main > section.reveal-section { transform: translate3d(-18px, 0, 0); }
  main > section.reveal-section.reveal-from-right { transform: translate3d(18px, 0, 0); }
  main > section.reveal-section.is-visible { transform: translate3d(0, 0, 0); }
}
@media (max-width: 390px) {
  .container, .hero-content.container, .hero-bottom.container { width: calc(100% - 28px) !important; }
  .rapid-quote-card { width: calc(100% - 20px) !important; padding-inline: 15px !important; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-actions .button { width: 100%; }
}

/* Section animation: alternate horizontal entrances; cards themselves stay in normal flow. */
main > section.reveal-section {
  opacity: 0;
  transform: translate3d(-34px, 0, 0);
  transition: opacity .65s ease, transform .72s cubic-bezier(.2,.72,.2,1);
  will-change: opacity, transform;
}
main > section.reveal-section.reveal-from-right { transform: translate3d(34px, 0, 0); }
main > section.reveal-section.is-visible { opacity: 1; transform: translate3d(0, 0, 0); }
main > section.reveal-section .service-card,
main > section.reveal-section .review-card,
main > section.reveal-section .process-grid article,
main > section.reveal-section .reasons-grid article { animation: none !important; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  main > section.reveal-section, main > section.reveal-section.reveal-from-right,
  main > section.reveal-section.is-visible { opacity: 1 !important; transform: none !important; transition: none !important; will-change: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
