/* ==========================================================================
   HERO
   ========================================================================== */
.hero { position: relative; min-height: 680px; padding: 120px 0 96px; color: var(--white); overflow: hidden; isolation: isolate; }
.hero__bg { position: absolute; inset: 0; background-size: cover; background-position: center; background-repeat: no-repeat; z-index: -2; }
.hero__overlay { position: absolute; inset: 0; background: linear-gradient(110deg, rgba(4, 12, 24, 0.85) 0%, rgba(4, 12, 24, 0.55) 55%, rgba(4, 12, 24, 0.35) 100%); z-index: -1; }
.hero__grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 56px; align-items: center; }
.hero__copy { max-width: 640px; }
.hero__eyebrow { display: inline-block; padding: 6px 14px; background: rgba(192, 0, 20, 0.9); color: var(--white); font-weight: 600; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; border-radius: 999px; margin-bottom: 20px; }
.hero__title { font-size: 58px; font-weight: 800; line-height: 1.05; letter-spacing: -0.01em; margin-bottom: 20px; }
.hero__title-accent { color: var(--brand-primary); }
.hero__lead { font-size: 17px; line-height: 1.65; color: rgba(255, 255, 255, 0.92); margin-bottom: 24px; max-width: 560px; }
.hero__trust { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 20px; margin-bottom: 32px; }
.hero__trust li { display: flex; align-items: center; gap: 10px; font-size: 15px; color: rgba(255, 255, 255, 0.92); }
.hero__trust a { color: inherit; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, 0.3); text-underline-offset: 3px; }
.hero__trust a:hover { text-decoration-color: var(--white); }
.hero__trust-icon { color: var(--brand-primary); font-size: 18px; }
.hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
.hero__phone { display: flex; flex-direction: column; line-height: 1.2; color: var(--white); }
.hero__phone-label { font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.75; }
.hero__phone-number { font-size: 22px; font-weight: 700; color: var(--white); }
.hero__phone:hover .hero__phone-number { color: var(--brand-primary); }

.hero__card { background: var(--white); color: var(--text-primary); border-radius: 16px; padding: 32px 28px; box-shadow: 0 20px 48px rgba(0, 0, 0, 0.25); max-width: 420px; justify-self: end; width: 100%; }
.hero__card-title { font-size: 22px; font-weight: 700; color: var(--brand-primary); margin-bottom: 6px; }
.hero__card-sub { font-size: 14px; color: var(--text-muted); margin-bottom: 20px; }
.hero__form { display: grid; gap: 14px; }
.hero__field { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--text-muted); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.hero__field input, .hero__field select { padding: 12px 14px; border: 1px solid var(--border-light); border-radius: 8px; font-family: inherit; font-size: 15px; color: var(--text-primary); background: var(--white); transition: border-color 0.15s ease, box-shadow 0.15s ease; }
.hero__field input:focus, .hero__field select:focus { outline: none; border-color: var(--brand-accent); box-shadow: 0 0 0 3px rgba(27, 117, 187, 0.15); }
.hero__form-submit { margin-top: 6px; width: 100%; }
.hero__form-note { font-size: 12px; color: var(--text-muted); text-align: center; }

@media (max-width: 1024px) {
  .hero { padding: 80px 0 64px; }
  .hero__grid { grid-template-columns: 1fr; gap: 40px; }
  .hero__card { justify-self: stretch; max-width: none; }
  .hero__title { font-size: 44px; }
}
@media (max-width: 768px) {
  .hero { padding: 56px 0 48px; min-height: 0; }
  .hero__title { font-size: 34px; }
  .hero__trust { grid-template-columns: 1fr; }
  .hero__actions { flex-direction: column; align-items: stretch; gap: 16px; }
  .hero__actions .btn { width: 100%; }
  .hero__phone { align-items: center; text-align: center; }
  .hero__card { padding: 24px 20px; }
}

/* ==========================================================================
   BRAND CAROUSEL
   ========================================================================== */
.brand-carousel { padding: 40px 0; background: var(--white); border-bottom: 1px solid var(--border-light); }
.brand-carousel__track { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); align-items: center; justify-items: center; gap: 24px; }
.brand-carousel__logo { max-height: 80px; width: auto; filter: grayscale(0.15); opacity: 0.92; transition: opacity 0.2s ease, filter 0.2s ease; }
.brand-carousel__logo:hover { opacity: 1; filter: grayscale(0); }

@media (max-width: 1024px) {
  .brand-carousel__track { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
}
@media (max-width: 768px) {
  .brand-carousel { padding: 28px 0; }
  .brand-carousel__track { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  .brand-carousel__logo { max-height: 56px; }
}

/* ==========================================================================
   ABOUT INTRO
   ========================================================================== */
.about-intro { padding: 96px 0 80px; background: var(--white); }
.about-intro__grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 72px; align-items: center; }
.about-intro__copy { max-width: 680px; }
.about-intro__title { font-size: 40px; line-height: 1.15; font-weight: 700; color: var(--text-primary); margin-bottom: 24px; }
.about-intro__copy p { font-size: 16px; line-height: 1.7; color: var(--text-muted); margin-bottom: 16px; }
.about-intro__copy p strong { color: var(--brand-primary); }
.about-intro__cta-line { color: var(--text-primary); font-size: 17px; font-weight: 500; margin-top: 8px; margin-bottom: 24px; }
.about-intro__actions { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.about-intro__link { color: var(--brand-accent); font-weight: 600; font-size: 15px; letter-spacing: 0.02em; }
.about-intro__link:hover { color: var(--brand-accent-hover); }

.about-intro__coupon { display: flex; flex-direction: column; gap: 14px; max-width: 440px; justify-self: end; width: 100%; }
.about-intro__coupon img { width: 100%; border-radius: 12px; box-shadow: var(--shadow-card); }
.about-intro__coupon-caption { font-size: 13px; color: var(--text-muted); text-align: center; font-style: italic; }

@media (max-width: 1024px) {
  .about-intro { padding: 72px 0 56px; }
  .about-intro__grid { grid-template-columns: 1fr; gap: 48px; }
  .about-intro__coupon { justify-self: center; }
  .about-intro__title { font-size: 32px; }
}
@media (max-width: 768px) {
  .about-intro { padding: 56px 0 40px; }
  .about-intro__title { font-size: 26px; }
  .about-intro__actions { flex-direction: column; align-items: stretch; }
  .about-intro__actions .btn { width: 100%; }
}

/* ==========================================================================
   SERVICES INTRO
   ========================================================================== */
.services-intro { padding: 72px 0 32px; background: var(--bg-soft); }
.services-intro__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.services-intro__eyebrow { display: inline-block; color: var(--brand-primary); font-weight: 700; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 14px; }
.services-intro__title { font-size: 38px; font-weight: 700; line-height: 1.15; color: var(--text-primary); margin-bottom: 18px; }
.services-intro__lead { font-size: 16px; line-height: 1.65; color: var(--text-muted); }

@media (max-width: 768px) {
  .services-intro { padding: 48px 0 24px; }
  .services-intro__title { font-size: 28px; }
}

/* ==========================================================================
   ROOFING SERVICES (paired cards)
   ========================================================================== */
.roofing-services { padding: 32px 0 96px; background: var(--bg-soft); }
.roofing-services__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; }

.service-card { background: var(--white); border-radius: 18px; overflow: hidden; box-shadow: var(--shadow-card); display: flex; flex-direction: column; transition: transform 0.2s ease, box-shadow 0.2s ease; }
.service-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12); }
.service-card__media { aspect-ratio: 16 / 10; overflow: hidden; }
.service-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; }
.service-card:hover .service-card__media img { transform: scale(1.04); }
.service-card__body { padding: 32px 32px 36px; display: flex; flex-direction: column; gap: 16px; flex: 1; }
.service-card__title { font-size: 26px; font-weight: 700; line-height: 1.2; }
.service-card__title--red { color: var(--brand-primary); }
.service-card__title--blue { color: var(--brand-accent); }
.service-card__body > p { color: var(--text-muted); line-height: 1.65; }
.service-card__list { display: flex; flex-direction: column; gap: 10px; }
.service-card__list li { position: relative; padding-left: 24px; color: var(--text-primary); line-height: 1.55; font-size: 15px; }
.service-card__list li::before { content: ""; position: absolute; left: 0; top: 10px; width: 10px; height: 10px; border-radius: 50%; background: var(--brand-primary); }
.service-card--commercial .service-card__list li::before { background: var(--brand-accent); }
.service-card__list li a { color: inherit; }
.service-card__list li a:hover strong { text-decoration: underline; }
.service-card__list--tight li { padding-left: 22px; font-weight: 500; }
.service-card__cta { margin-top: auto; font-weight: 700; font-size: 15px; letter-spacing: 0.04em; text-transform: uppercase; transition: color 0.15s ease; }
.service-card__cta--red { color: var(--brand-primary); }
.service-card__cta--red:hover { color: var(--brand-primary-hover); }
.service-card__cta--blue { color: var(--brand-accent); }
.service-card__cta--blue:hover { color: var(--brand-accent-hover); }

@media (max-width: 1024px) {
  .roofing-services__grid { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 768px) {
  .roofing-services { padding: 16px 0 56px; }
  .service-card__body { padding: 24px 22px 28px; }
  .service-card__title { font-size: 22px; }
}

/* ==========================================================================
   GUTTER/SIDING INTRO
   ========================================================================== */
.gutter-siding-intro { padding: 72px 0 32px; background: var(--white); }
.gutter-siding-intro__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.gutter-siding-intro__eyebrow { display: inline-block; color: var(--brand-accent); font-weight: 700; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 14px; }
.gutter-siding-intro__title { font-size: 38px; font-weight: 700; line-height: 1.15; color: var(--text-primary); margin-bottom: 18px; }
.gutter-siding-intro__lead { font-size: 16px; line-height: 1.65; color: var(--text-muted); }

@media (max-width: 768px) {
  .gutter-siding-intro { padding: 48px 0 24px; }
  .gutter-siding-intro__title { font-size: 28px; }
}

/* ==========================================================================
   GUTTER/SIDING SERVICES
   Shares the .service-card styles defined in 05-roofing-services.
   This block only overrides the section padding and background.
   ========================================================================== */
.gutter-siding-services { padding: 24px 0 88px; background: var(--white); }

@media (max-width: 768px) {
  .gutter-siding-services { padding: 12px 0 56px; }
}

/* ==========================================================================
   EMERGENCY
   ========================================================================== */
.emergency { position: relative; padding: 96px 0; color: var(--white); overflow: hidden; isolation: isolate; }
.emergency__bg { position: absolute; inset: 0; background-size: cover; background-position: center; background-repeat: no-repeat; z-index: -2; background-attachment: fixed; }
.emergency__overlay { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(4, 12, 24, 0.92) 0%, rgba(4, 12, 24, 0.72) 50%, rgba(4, 12, 24, 0.85) 100%); z-index: -1; }
.emergency__grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 56px; align-items: center; }
.emergency__copy { max-width: 680px; }
.emergency__eyebrow { display: inline-block; padding: 6px 14px; background: var(--brand-primary); color: var(--white); font-weight: 700; font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; border-radius: 999px; margin-bottom: 18px; }
.emergency__title { font-size: 40px; font-weight: 800; line-height: 1.15; margin-bottom: 20px; }
.emergency__copy > p { color: rgba(255, 255, 255, 0.92); line-height: 1.65; margin-bottom: 12px; }
.emergency__sublead { font-weight: 700; color: var(--white) !important; margin-top: 12px !important; }
.emergency__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 28px; margin-bottom: 24px; }
.emergency__list li { position: relative; padding-left: 24px; color: rgba(255, 255, 255, 0.9); line-height: 1.55; font-size: 15px; }
.emergency__list li::before { content: "▸"; position: absolute; left: 0; top: 0; color: var(--brand-primary); font-weight: 700; }
.emergency__callout { font-size: 17px; font-weight: 600; color: var(--white); padding: 14px 18px; background: rgba(192, 0, 20, 0.15); border-left: 4px solid var(--brand-primary); border-radius: 4px; }

.emergency__cta { justify-self: end; width: 100%; max-width: 340px; }
.emergency__cta-inner { background: var(--brand-primary); padding: 40px 28px 36px; border-radius: 16px; text-align: center; box-shadow: 0 20px 48px rgba(0, 0, 0, 0.35); }
.emergency__cta-badge { display: inline-flex; align-items: center; justify-content: center; width: 84px; height: 84px; border-radius: 50%; background: rgba(255, 255, 255, 0.18); color: var(--white); font-size: 24px; font-weight: 800; letter-spacing: 0.02em; margin-bottom: 18px; }
.emergency__cta-label { color: rgba(255, 255, 255, 0.88); font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 6px; }
.emergency__cta-phone { display: block; font-size: 32px; font-weight: 800; color: var(--white); margin-bottom: 18px; }
.emergency__cta-phone:hover { text-decoration: underline; }
.emergency__cta-inner .btn { width: 100%; background: var(--white); color: var(--brand-primary); box-shadow: none; }
.emergency__cta-inner .btn:hover { background: rgba(255, 255, 255, 0.9); }

@media (max-width: 1024px) {
  .emergency { padding: 72px 0; }
  .emergency__grid { grid-template-columns: 1fr; gap: 40px; }
  .emergency__cta { justify-self: center; max-width: 380px; }
  .emergency__title { font-size: 32px; }
  .emergency__bg { background-attachment: scroll; }
}
@media (max-width: 768px) {
  .emergency { padding: 56px 0; }
  .emergency__title { font-size: 26px; }
  .emergency__list { grid-template-columns: 1fr; }
}

/* ==========================================================================
   WHY US
   ========================================================================== */
.why-us { position: relative; padding: 60px 0 96px; background: var(--white); }
.why-us__divider { text-align: center; margin-bottom: 24px; }
.why-us__divider img { display: inline-block; max-width: 220px; height: auto; }
.why-us__header { max-width: 860px; margin: 0 auto 40px; text-align: center; }
.why-us__eyebrow { display: inline-block; color: var(--brand-primary); font-weight: 700; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 12px; }
.why-us__title { font-size: 40px; font-weight: 700; line-height: 1.15; color: var(--text-primary); margin-bottom: 18px; }
.why-us__lead { font-size: 16px; line-height: 1.65; color: var(--text-muted); }

.why-us__trust { display: flex; align-items: center; justify-content: center; gap: 56px; padding: 24px 0 40px; flex-wrap: wrap; border-top: 1px solid var(--border-light); border-bottom: 1px solid var(--border-light); margin-bottom: 48px; }
.why-us__trust img { max-height: 52px; width: auto; filter: grayscale(0.2); opacity: 0.85; transition: opacity 0.2s ease, filter 0.2s ease; }
.why-us__trust img:hover { opacity: 1; filter: grayscale(0); }

.why-us__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 32px 24px; }
.why-us__grid li { position: relative; padding-top: 18px; border-top: 3px solid var(--brand-primary); }
.why-us__grid li:nth-child(even) { border-top-color: var(--brand-accent); }
.why-us__grid h3 { font-size: 16px; font-weight: 700; color: var(--text-primary); line-height: 1.3; margin-bottom: 8px; }
.why-us__grid p { font-size: 14px; line-height: 1.6; color: var(--text-muted); }

@media (max-width: 1024px) {
  .why-us__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .why-us__trust { gap: 36px; }
}
@media (max-width: 768px) {
  .why-us { padding: 40px 0 64px; }
  .why-us__title { font-size: 28px; }
  .why-us__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .why-us__trust { gap: 24px; }
  .why-us__trust img { max-height: 36px; }
}

/* ==========================================================================
   WORK GALLERY (horizontal strip)
   ========================================================================== */
.work-gallery { padding: 0; background: var(--white); }
.work-gallery__strip { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 2px; }
.work-gallery__item { display: block; position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--bg-light); }
.work-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.35s ease, filter 0.25s ease; }
.work-gallery__item:hover img { transform: scale(1.06); filter: brightness(1.05); }
.work-gallery__item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 60%, rgba(0,0,0,0.45) 100%); opacity: 0; transition: opacity 0.25s ease; }
.work-gallery__item:hover::after { opacity: 1; }

@media (max-width: 1024px) {
  .work-gallery__strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .work-gallery__item:nth-child(4), .work-gallery__item:nth-child(5) { display: none; }
}
@media (max-width: 768px) {
  .work-gallery__strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .work-gallery__item:nth-child(3) { display: none; }
}

/* ==========================================================================
   REVIEWS EMBED
   ========================================================================== */
.reviews-embed { padding: 64px 0; background: var(--bg-reviews); color: var(--white); }
.reviews-embed__grid { display: grid; grid-template-columns: 1fr 1.6fr; gap: 56px; align-items: center; }

.reviews-embed__stars { text-align: center; }
.reviews-embed__stars-row { display: flex; justify-content: center; gap: 6px; color: #ffd400; font-size: 40px; line-height: 1; margin-bottom: 14px; }
.reviews-embed__rating { font-size: 28px; font-weight: 700; margin-bottom: 6px; }
.reviews-embed__count { font-size: 14px; color: rgba(255, 255, 255, 0.8); }

.reviews-embed__copy { }
.reviews-embed__title { font-size: 30px; font-weight: 700; line-height: 1.2; margin-bottom: 18px; }
.reviews-embed__quote { padding: 14px 20px; border-left: 4px solid rgba(255, 255, 255, 0.4); margin-bottom: 22px; }
.reviews-embed__quote p { font-size: 16px; line-height: 1.55; font-style: italic; margin-bottom: 8px; }
.reviews-embed__quote cite { font-size: 13px; color: rgba(255, 255, 255, 0.75); font-style: normal; letter-spacing: 0.04em; }

@media (max-width: 1024px) {
  .reviews-embed__grid { grid-template-columns: 1fr; gap: 32px; text-align: center; }
  .reviews-embed__quote { text-align: left; max-width: 620px; margin-left: auto; margin-right: auto; }
}
@media (max-width: 768px) {
  .reviews-embed { padding: 48px 0; }
  .reviews-embed__title { font-size: 24px; }
  .reviews-embed__stars-row { font-size: 32px; }
}

/* ==========================================================================
   SERVICE AREAS
   ========================================================================== */
.service-areas { padding: 96px 0 72px; background: linear-gradient(180deg, #fafafa 0%, #ffffff 100%); }
.service-areas__header { max-width: 880px; margin: 0 auto 40px; text-align: center; }
.service-areas__eyebrow { display: inline-block; color: var(--brand-primary); font-weight: 700; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 12px; }
.service-areas__title { font-size: 38px; font-weight: 700; line-height: 1.15; color: var(--text-primary); margin-bottom: 18px; }
.service-areas__lead { font-size: 16px; line-height: 1.65; color: var(--text-muted); }
.service-areas__subtitle { font-size: 18px; font-weight: 700; text-align: center; color: var(--text-primary); margin-bottom: 20px; }

.service-areas__tabs { max-width: 960px; margin: 0 auto 32px; }
.service-areas__tablist { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-bottom: 24px; }
.service-areas__tab { padding: 12px 16px; background: var(--bg-light); color: var(--text-primary); border: none; border-radius: 8px; font-family: inherit; font-size: 14px; font-weight: 600; letter-spacing: 0.02em; cursor: pointer; transition: background 0.2s ease, color 0.2s ease; }
.service-areas__tab:hover { background: #dde0e4; }
.service-areas__tab.is-active { background: var(--brand-primary); color: var(--white); }

.service-areas__panel { display: none; padding: 32px 36px; background: var(--white); border: 1px solid var(--border-light); border-radius: 12px; box-shadow: var(--shadow-card); }
.service-areas__panel.is-active { display: block; }
.service-areas__panel h3 { font-size: 22px; font-weight: 700; color: var(--brand-primary); margin-bottom: 12px; letter-spacing: 0.02em; }
.service-areas__panel p { font-size: 16px; line-height: 1.65; color: var(--text-primary); margin-bottom: 14px; }
.service-areas__link { color: var(--brand-accent); font-weight: 700; font-size: 15px; }
.service-areas__link:hover { color: var(--brand-accent-hover); }

.service-areas__outro { max-width: 860px; margin: 0 auto; text-align: center; color: var(--text-muted); }
.service-areas__outro p { margin-bottom: 10px; line-height: 1.65; }
.service-areas__outro strong { color: var(--text-primary); }
.service-areas__callout { color: var(--text-primary) !important; font-size: 17px; margin-top: 8px; }
.service-areas__callout a { color: var(--brand-primary); }
.service-areas__callout a:hover { color: var(--brand-primary-hover); }

@media (max-width: 1024px) {
  .service-areas__tablist { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .service-areas { padding: 64px 0 48px; }
  .service-areas__title { font-size: 28px; }
  .service-areas__tablist { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-areas__tab { font-size: 13px; padding: 10px 12px; }
  .service-areas__panel { padding: 22px 18px; }
}

/* ==========================================================================
   FINANCING
   ========================================================================== */
.financing { position: relative; padding: 32px 0 96px; background: var(--white); }
.financing__divider { text-align: center; margin-bottom: 32px; }
.financing__divider img { display: inline-block; max-width: 220px; height: auto; }
.financing__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.financing__copy { max-width: 560px; }
.financing__eyebrow { display: inline-block; color: var(--brand-primary); font-weight: 700; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 12px; }
.financing__title { font-size: 36px; font-weight: 700; line-height: 1.2; color: var(--text-primary); margin-bottom: 18px; }
.financing__copy p { color: var(--text-muted); line-height: 1.65; margin-bottom: 16px; }
.financing__copy p a { color: var(--brand-accent); text-decoration: underline; text-underline-offset: 3px; }
.financing__copy p a:hover { color: var(--brand-accent-hover); }
.financing__callout { color: var(--text-primary) !important; font-weight: 500; margin-bottom: 24px !important; }
.financing__callout a { color: var(--brand-primary); }
.financing__callout a strong { font-weight: 700; }

.financing__map { aspect-ratio: 16 / 12; border-radius: 16px; overflow: hidden; box-shadow: var(--shadow-card); }
.financing__map iframe { width: 100%; height: 100%; border: 0; display: block; }

@media (max-width: 1024px) {
  .financing__grid { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 768px) {
  .financing { padding: 24px 0 64px; }
  .financing__title { font-size: 26px; }
}

/* ==========================================================================
   CONTACT CTA
   ========================================================================== */
.contact-cta { position: relative; padding: 88px 0 96px; background: var(--brand-primary); color: var(--white); overflow: hidden; }
.contact-cta__chevron { position: absolute; top: -1px; left: 0; right: 0; height: 32px; background: var(--white); clip-path: polygon(0 0, 50% 100%, 100% 0); }
.contact-cta__grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 56px; align-items: center; position: relative; z-index: 1; }

.contact-cta__copy { max-width: 640px; }
.contact-cta__eyebrow { display: inline-block; padding: 6px 14px; background: rgba(255, 255, 255, 0.22); color: var(--white); font-weight: 700; font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; border-radius: 999px; margin-bottom: 18px; }
.contact-cta__title { font-size: 38px; font-weight: 800; line-height: 1.15; margin-bottom: 18px; }
.contact-cta__copy > p { color: rgba(255, 255, 255, 0.94); line-height: 1.65; margin-bottom: 20px; }
.contact-cta__bullets { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 20px; }
.contact-cta__bullets li { position: relative; padding-left: 24px; color: var(--white); font-weight: 600; }
.contact-cta__bullets li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--white); font-weight: 700; }

.contact-cta__card { justify-self: end; width: 100%; max-width: 380px; background: var(--white); color: var(--text-primary); padding: 32px 28px; border-radius: 16px; box-shadow: 0 20px 48px rgba(0, 0, 0, 0.25); text-align: center; }
.contact-cta__card-title { font-size: 22px; font-weight: 700; color: var(--brand-primary); margin-bottom: 8px; }
.contact-cta__card-sub { font-size: 14px; color: var(--text-muted); margin-bottom: 18px; }
.contact-cta__card-phone { display: block; font-size: 32px; font-weight: 800; color: var(--text-primary); margin-bottom: 16px; letter-spacing: 0.01em; }
.contact-cta__card-phone:hover { color: var(--brand-primary); }
.contact-cta__card-btn { width: 100%; }
.contact-cta__card-address { margin-top: 18px; font-size: 13px; color: var(--text-muted); line-height: 1.5; }

@media (max-width: 1024px) {
  .contact-cta__grid { grid-template-columns: 1fr; gap: 40px; }
  .contact-cta__card { justify-self: center; }
}
@media (max-width: 768px) {
  .contact-cta { padding: 64px 0 72px; }
  .contact-cta__title { font-size: 26px; }
  .contact-cta__bullets { grid-template-columns: 1fr; }
  .contact-cta__chevron { height: 20px; }
}

/* ==========================================================================
   FAQ
   ========================================================================== */
.faq { padding: 88px 0 96px; background: var(--white); }
.faq__inner { max-width: 900px; margin: 0 auto; }
.faq__header { text-align: center; margin-bottom: 40px; }
.faq__eyebrow { display: inline-block; color: var(--brand-primary); font-weight: 700; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 12px; }
.faq__title { font-size: 36px; font-weight: 700; line-height: 1.2; color: var(--text-primary); }

.faq__list { display: flex; flex-direction: column; gap: 14px; }
.faq__item { border: 1px solid var(--border-light); border-radius: 12px; overflow: hidden; background: var(--white); transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.faq__item[open] { border-color: rgba(27, 117, 187, 0.35); box-shadow: var(--shadow-card); }
.faq__q { padding: 20px 24px; font-size: 17px; font-weight: 700; color: var(--brand-accent); cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; list-style: none; transition: background 0.15s ease; }
.faq__q::-webkit-details-marker { display: none; }
.faq__q::after { content: "+"; flex: 0 0 auto; font-size: 26px; line-height: 1; color: var(--brand-accent); transition: transform 0.2s ease; font-weight: 400; }
.faq__item[open] .faq__q::after { transform: rotate(45deg); }
.faq__q:hover { background: rgba(27, 117, 187, 0.04); }
.faq__a { padding: 0 24px 22px; color: var(--text-muted); line-height: 1.7; }
.faq__a p { margin-bottom: 12px; }
.faq__a ul { display: flex; flex-direction: column; gap: 8px; padding-left: 0; }
.faq__a li { position: relative; padding-left: 22px; }
.faq__a li::before { content: "•"; position: absolute; left: 6px; top: -2px; color: var(--brand-primary); font-size: 18px; line-height: 1; }
.faq__a strong { color: var(--text-primary); }

.faq__outro { text-align: center; margin-top: 36px; font-size: 16px; color: var(--text-muted); }
.faq__outro a { color: var(--brand-primary); font-weight: 700; }
.faq__outro a:hover { color: var(--brand-primary-hover); }

@media (max-width: 768px) {
  .faq { padding: 56px 0 64px; }
  .faq__title { font-size: 26px; }
  .faq__q { padding: 16px 18px; font-size: 15px; }
  .faq__a { padding: 0 18px 18px; font-size: 14px; }
}
