/* Visual corrections, contrast improvements and responsive hardening. */
html { scroll-padding-top: 132px; }
body { max-width: 100%; }
main { overflow: clip; }
.button, .text-link, .topbar a, .branch-contact-grid a { overflow-wrap: anywhere; }
.button { text-align: center; }

/* Bundled and uploaded images remain stable even before loading. */
.image-frame,
.image-stack,
.category-card,
.branch-preview-card,
.contact-branch-card,
.branch-detail__image,
.offer-card,
.article-card__media { isolation: isolate; }
.image-frame img,
.image-stack img,
.category-card img,
.branch-preview-card img,
.contact-branch-card img,
.branch-detail__image img,
.offer-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  background: #eee9e3;
}
img.is-image-loading { opacity: .01; }
img.is-image-ready { opacity: 1; transition: opacity .25s ease; }
img.is-image-error { opacity: 1; object-fit: contain !important; padding: 18px; background: #f1ece6; }
.page-hero > picture,
.image-frame > picture,
.image-stack > picture,
.category-card > picture,
.branch-preview-card > picture,
.contact-branch-card > picture,
.branch-detail__image > picture,
.offer-card > picture { display: contents; }
.page-hero__image { object-position: center 48%; }
.page-hero--finance .page-hero__image { object-position: center 58%; }
.page-hero--contact .page-hero__image { object-position: center 55%; }
.page-hero--branches .page-hero__image { object-position: center 52%; }
.image-frame--hero {
  display: grid;
  grid-template-rows: minmax(360px, 1fr) auto;
  aspect-ratio: auto;
  min-height: 570px;
}
.image-frame--hero img { min-height: 360px; height: 100%; }
.image-frame__label { min-height: 74px; }
.image-stack img { aspect-ratio: 1.04; }

/* Stronger contrast on promotional blocks and home banners. */
.category-card__overlay {
  z-index: 2;
  background: linear-gradient(180deg, rgba(0,0,0,.06) 5%, rgba(0,0,0,.38) 48%, rgba(0,0,0,.94) 100%);
  text-shadow: 0 2px 16px rgba(0,0,0,.55);
}
.category-card--orange .category-card__overlay {
  background: linear-gradient(180deg, rgba(80,20,0,.12), rgba(78,17,0,.58) 54%, rgba(53,11,0,.97));
}
.category-card__overlay p { color: rgba(255,255,255,.9); }
.category-card__overlay span { color: #ffe36b; }
.category-card__content {
  padding-top: 42px;
  background: linear-gradient(180deg, transparent, rgba(255,255,255,.94) 31%, #fff 72%);
}
.category-card__content p { color: #514a43; }
.finance-panel__copy > p,
.branch-help p,
.footer-cta p,
.final-banner p { color: rgba(255,255,255,.82); }
.footer-cta {
  position: relative;
  isolation: isolate;
  background: linear-gradient(105deg, #8f2d00 0%, var(--pme-orange-dark) 48%, #b84500 100%);
}
.footer-cta::before,
.final-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(0,0,0,.32), transparent 68%);
}
.footer-cta h2,
.final-banner h2 { color: #fff; text-shadow: 0 2px 20px rgba(75,20,0,.35); }
.final-banner { position: relative; isolation: isolate; background: linear-gradient(105deg, #8f2d00, var(--pme-orange-dark) 50%, #b84500); }
.hours-banner { background: linear-gradient(135deg, #050505, #25211d); }
.branch-help { background: radial-gradient(circle at 85% 15%, rgba(255,100,0,.28), transparent 28%), linear-gradient(145deg, #0b0b0b, #24201d); }
.rate-explainer { color: #231b14; background: linear-gradient(145deg, #fff5e8, #ffe9c8); }
.rate-explainer p { color: #4d4035; }

/* Calculator robustness and accessible output wrapping. */
.calculator-card,
.full-calculator__inputs,
.full-calculator__result,
.rate-explainer,
.calculator-card input,
.calculator-card select,
.full-calculator input,
.full-calculator select { font-size: 16px; }
.calculator-result > strong,
.payment-highlight strong { overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.calculator-result > div,
.result-grid { min-width: 0; }
.calculator-result p,
.result-grid p { min-width: 0; }
.result-grid b { overflow-wrap: anywhere; }
.full-calculator__inputs .field { margin-bottom: 20px; }
.full-calculator__inputs .field:last-child { margin-bottom: 0; }
.full-calculator__inputs input[type="range"] {
  width: 100%;
  min-height: 34px;
  cursor: pointer;
}
.quick-terms button,
.tabs button { min-height: 46px; }
.quick-terms button.is-active { color: #fff; border-color: var(--pme-orange-dark); background: var(--pme-orange-dark); }
.calculator-actions { margin-top: 18px; display: grid; gap: 10px; }
.calculator-validation { min-height: 18px; margin: 8px 0 0; color: #b42318; font-size: 11px; font-weight: 750; }
.calculator-validation:empty { display: none; }

/* Forms and embedded maps never force horizontal overflow. */
.field input,
.field select,
.field textarea { min-width: 0; max-width: 100%; }
.consent { min-width: 0; }
.consent span { min-width: 0; overflow-wrap: anywhere; }
.map-panel iframe,
.branch-detail__map iframe { display: block; }

/* Header remains usable with the additional Blog item. */
.site-logo { min-width: 0; }
.site-nav .menu { flex-wrap: nowrap; }
.site-nav .menu-item a { white-space: nowrap; }

@media (max-width: 1240px) {
  .container { width: min(calc(100% - 36px), var(--pme-container)); }
  .site-logo { flex-basis: 225px; }
  .site-logo img, .site-logo .custom-logo { width: 225px; }
  .site-nav .menu-item a { padding-inline: 9px; font-size: 12px; }
  .home-hero__grid { gap: 44px; }
  .finance-panel__grid { gap: 60px; }
  .full-calculator { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .rate-explainer { grid-column: 1 / -1; min-height: 155px; }
  .articles-grid--standard { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .article-layout { grid-template-columns: 58px minmax(0, 720px) minmax(220px, 280px); gap: 30px; }
}

@media (max-width: 1040px) {
  html { scroll-padding-top: 92px; }
  .topbar__locations { display: none; }
  .topbar__inner { justify-content: flex-end; }
  .topbar__email { display: none !important; }
  .header__inner { min-height: 78px; }
  .site-logo { flex-basis: min(270px, calc(100vw - 105px)); }
  .site-logo img, .site-logo .custom-logo { width: min(270px, calc(100vw - 105px)); max-height: 62px; }
  .menu-toggle { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 12px; }
  .menu-toggle:hover, .menu-toggle:focus-visible { background: rgba(255,255,255,.08); }
  .site-nav {
    position: fixed;
    inset: var(--pme-nav-top, 120px) 0 0;
    z-index: 999;
    margin: 0;
    padding: 18px 22px 40px;
    background: rgba(5,5,5,.99);
    transform: translateX(100%);
    transition: transform .28s ease, visibility 0s linear .28s;
    visibility: hidden;
    pointer-events: none;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .menu-open { overflow: hidden; }
  .menu-open .site-nav { transform: translateX(0); visibility: visible; pointer-events: auto; transition-delay: 0s; }
  .site-nav .menu { display: grid; align-items: stretch; gap: 0; }
  .site-nav .menu-item a {
    padding: 17px 6px;
    border-bottom: 1px solid rgba(255,255,255,.1);
    white-space: normal;
    font-size: 19px;
  }
  .site-nav .menu-item a::after { display: none; }

  .home-hero__grid,
  .finance-panel__grid,
  .split-layout,
  .faq-layout,
  .form-layout,
  .contact-hero-grid,
  .blog-hero__inner,
  .article-hero__inner { grid-template-columns: minmax(0, 1fr); }
  .home-hero__copy,
  .finance-panel__copy,
  .split-layout__copy,
  .blog-hero__copy { max-width: 780px; }
  .home-hero__visual { width: min(760px, 100%); margin-inline: auto; }
  .image-frame--hero { min-height: 610px; }
  .category-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .feature-strip { grid-template-columns: 1fr 1fr; padding-block: 17px; }
  .process-grid, .process-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split-layout--reverse .split-layout__copy { order: initial; }
  .branch-preview-grid { grid-template-columns: 1fr 1fr; }
  .branch-help { grid-column: 1 / -1; min-height: 240px; }
  .section-heading--split { grid-template-columns: 1fr; gap: 18px; }
  .values-grid, .offer-grid, .benefit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .offer-card--finance { grid-column: 1 / -1; }
  .hero-rate-card { right: 28px; top: auto; bottom: 28px; transform: none; }
  .page-hero--finance .page-hero__content { padding-right: 190px; }
  .contact-branch-grid { grid-template-columns: 1fr 1fr; }
  .map-panel { grid-column: 1 / -1; min-height: 360px; }
  .branch-detail { grid-template-columns: .78fr 1fr; }
  .branch-detail__map { grid-column: 1 / -1; min-height: 320px; }
  .branch-detail__map iframe { min-height: 320px; }
  .hours-banner__inner { grid-template-columns: 1fr; }
  .footer-cta__inner, .final-banner__inner { align-items: flex-start; flex-direction: column; padding-block: 38px; }
  .footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .footer-brand { grid-column: 1 / -1; }

  .blog-hero__inner { min-height: auto; gap: 35px; }
  .blog-search-card { width: min(620px, 100%); }
  .article-card--featured { grid-template-columns: minmax(0, 1fr); min-height: auto; }
  .article-card--featured .article-card__media { min-height: 430px; }
  .article-layout { grid-template-columns: minmax(0, 760px) minmax(230px, 300px); }
  .article-share { position: static; grid-column: 1 / -1; display: flex; justify-content: flex-start; }
  .article-sidebar { top: 100px; }
  .article-hero__media { min-height: 430px; }
}

@media (max-width: 780px) {
  .section { padding: 78px 0; }
  .topbar__finance { min-height: 42px; margin-left: 0; padding-inline: 13px; clip-path: none; }
  .topbar__finance-label { display: none; }
  .topbar__finance strong { display: inline; font-size: 17px; }
  .topbar__finance small { display: none; }
  .topbar__contact > a span { display: none; }
  .topbar__contact > a { width: 38px; justify-content: center; }

  .home-hero__grid { padding-top: 58px; padding-bottom: 55px; }
  .home-hero__copy h1 { font-size: clamp(49px, 12.5vw, 72px); }
  .home-hero__copy > p { font-size: 16px; }
  .home-hero__visual { width: 100%; }
  .image-frame--hero { min-height: 510px; grid-template-rows: minmax(315px, 1fr) auto; padding: 14px; border-radius: 24px; }
  .image-frame--hero img { min-height: 315px; }
  .floating-badge--rate { left: 10px; top: 25px; }
  .floating-badge--service { right: 10px; bottom: 82px; }
  .feature-strip { grid-template-columns: 1fr; gap: 9px; }
  .category-grid { grid-template-columns: 1fr; }
  .category-card, .category-card--large { min-height: 390px; }
  .category-card__overlay, .category-card__content { padding: 27px; }

  .finance-panel__grid { gap: 44px; }
  .finance-panel__copy h2 { font-size: clamp(43px, 11vw, 60px); }
  .calculator-card { padding: 22px; border-radius: 19px; }
  .calculator-card__header { align-items: flex-start; }
  .calculator-result > div { grid-template-columns: 1fr; }
  .calculator-result p + p { padding-top: 10px; border-top: 1px solid rgba(255,255,255,.1); }

  .full-calculator { grid-template-columns: 1fr; gap: 14px; }
  .full-calculator__inputs, .full-calculator__result, .rate-explainer { padding: 22px; }
  .tabs { margin: -22px -22px 23px; }
  .quick-terms { grid-template-columns: 1fr 1fr; }
  .payment-highlight strong { font-size: clamp(34px, 10vw, 48px); }
  .result-grid { grid-template-columns: 1fr; }
  .result-grid p:nth-child(odd) { padding-right: 0; }
  .rate-explainer { min-height: 170px; }

  .form-grid { grid-template-columns: 1fr; }
  .field--full { grid-column: auto; }
  .process-grid, .process-grid--four { grid-template-columns: 1fr; }
  .process-card { min-height: auto; }
  .mini-values, .metrics-grid, .values-grid, .offer-grid, .benefit-grid { grid-template-columns: 1fr; }
  .branch-preview-grid, .contact-branch-grid { grid-template-columns: 1fr; }
  .branch-help, .offer-card--finance { grid-column: auto; }
  .faq-layout { gap: 36px; }

  .page-hero, .page-hero__content { min-height: 520px; }
  .page-hero--finance, .page-hero--finance .page-hero__content { min-height: 570px; }
  .page-hero__content { padding-right: 0; padding-top: 72px; padding-bottom: 72px; justify-content: flex-start; }
  .page-hero--finance .page-hero__content { padding-bottom: 180px; }
  .page-hero h1 { font-size: clamp(46px, 12vw, 67px); }
  .page-hero__content > p { font-size: 15px; }
  .hero-rate-card { right: 15px; left: 15px; bottom: 20px; width: auto; min-height: 122px; padding: 18px; flex-direction: row; gap: 12px; }
  .hero-rate-card strong { font-size: 27px; }
  .hero-rate-card span { margin: 0; font-size: 14px; }
  .hero-rate-card small { margin: 0; }
  .page-hero--contact .contact-hero-grid { padding-top: 42px; padding-bottom: 55px; }
  .page-hero--contact .page-hero__content { padding: 0; min-height: auto; }

  .branch-detail { grid-template-columns: 1fr; }
  .branch-detail__image { min-height: 290px; }
  .branch-detail__content { padding: 25px; }
  .branch-detail__content h2 { font-size: 29px; }
  .branch-contact-grid, .hours-card { grid-template-columns: 1fr; }
  .branch-detail__map { grid-column: auto; min-height: 290px; }
  .branch-detail__map iframe { min-height: 290px; }
  .hours-banner__items { grid-template-columns: 1fr; }

  .footer-grid { grid-template-columns: 1fr 1fr; gap: 30px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-column:last-child { grid-column: 1 / -1; flex-direction: column; gap: 8px; }
  .footer-bottom { padding-block: 20px; flex-direction: column; align-items: flex-start; gap: 8px; }

  .blog-hero__inner { padding-block: 60px; }
  .blog-hero h1, .archive-hero h1 { font-size: clamp(47px, 13vw, 70px); }
  .blog-hero__copy > p { font-size: 15px; }
  .articles-grid, .articles-grid--standard { grid-template-columns: 1fr; }
  .article-card--featured .article-card__media { min-height: 300px; }
  .article-card--featured .article-card__body { padding: 28px; }
  .archive-toolbar { align-items: stretch; flex-direction: column; }
  .archive-toolbar .search-form { width: 100%; }
  .blog-placeholder { align-items: flex-start; flex-direction: column; }

  .article-hero__inner { min-height: auto; gap: 36px; padding-block: 58px; }
  .article-hero h1 { font-size: clamp(43px, 11.5vw, 65px); }
  .article-hero__media { min-height: 310px; }
  .article-layout { grid-template-columns: 1fr; gap: 34px; }
  .article-share { order: 2; }
  .article-content { order: 1; font-size: 17px; }
  .article-sidebar { position: static; order: 3; }
  .post-navigation { grid-template-columns: 1fr; }
  .post-navigation > div:last-child { text-align: left; }
  .article-content .alignwide, .article-content .alignfull { width: calc(100vw - 28px); }
}

@media (max-width: 520px) {
  .container { width: min(calc(100% - 28px), var(--pme-container)); }
  .section { padding: 64px 0; }
  .topbar__inner { min-height: 39px; gap: 8px; }
  .topbar__contact { gap: 4px; }
  .header__inner { min-height: 69px; gap: 10px; }
  .site-logo { flex-basis: min(210px, calc(100vw - 91px)); }
  .site-logo img, .site-logo .custom-logo { width: min(210px, calc(100vw - 91px)); max-height: 53px; }
  .menu-toggle { width: 44px; height: 44px; }
  .site-nav { padding-inline: 16px; }

  .button-row { align-items: stretch; flex-direction: column; }
  .button-row .button { width: 100%; }
  .home-hero__copy h1 { font-size: clamp(43px, 13vw, 61px); }
  .hero-trust { grid-template-columns: 1fr; }
  .image-frame--hero { min-height: 430px; grid-template-rows: minmax(250px, 1fr) auto; }
  .image-frame--hero img { min-height: 250px; }
  .floating-badge { max-width: calc(100% - 30px); }
  .floating-badge--rate strong { font-size: 17px; }
  .floating-badge--service { bottom: 79px; }
  .category-card, .category-card--large { min-height: 350px; }
  .category-card h3 { font-size: 30px; }

  .calculator-card__header { flex-direction: column; gap: 9px; }
  .rate-chip { align-self: flex-start; }
  .calculator-card { padding: 18px; }
  .calculator-result { padding: 17px; }
  .calculator-result > strong { font-size: 32px; }
  .full-calculator__inputs, .full-calculator__result, .rate-explainer { padding: 18px; border-radius: 16px; }
  .tabs { margin: -18px -18px 20px; }
  .range-meta { grid-template-columns: 1fr; justify-items: start; }
  .range-meta small:last-child { text-align: left; }
  .quick-terms { grid-template-columns: 1fr 1fr; }
  .payment-highlight { padding: 20px 12px; }
  .payment-highlight strong { font-size: 34px; }

  .page-hero h1 { font-size: clamp(42px, 12.5vw, 57px); }
  .hero-points { display: grid; gap: 10px; }
  .hero-rate-card { align-items: flex-start; flex-direction: column; gap: 5px; }
  .branch-detail__content { padding: 21px; }
  .hours-banner h2 { font-size: 33px; }

  .footer-grid { grid-template-columns: 1fr; }
  .footer-brand, .footer-column:last-child { grid-column: auto; }
  .footer-brand img { width: min(270px, 100%); }
  .whatsapp-float span { display: none; }
  .whatsapp-float { right: 14px; bottom: 14px; width: 52px; padding: 0; justify-content: center; }

  .blog-search-card { padding: 20px; }
  .article-card__body, .article-card--featured .article-card__body { padding: 22px; }
  .article-card__title, .article-card--featured .article-card__title { font-size: 28px; }
  .article-meta { gap: 7px; }
  .article-hero__media { min-height: 250px; border-radius: 20px; }
  .article-content { font-size: 16px; line-height: 1.75; }
  .article-section { padding: 58px 0; }
  .comments-area { padding: 22px; }
}

@media (prefers-reduced-data: reduce) {
  .home-hero__glow, .blog-hero::before, .finance-panel::before { display: none; }
}

/* ========================================================================
   Header, typography and layout hardening — v1.2.0
   ======================================================================== */
@media (max-width: 1360px) {
  .topbar__inner { gap: 16px; }
  .topbar__locations { gap: 12px; }
  .topbar__actions { gap: 12px; }
  .topbar__location { max-width: 205px; }
  .topbar__email span { max-width: 170px; }
  .topbar__finance { padding-inline: 22px 16px; }
  .header__inner { gap: 20px; }
  .site-logo { flex-basis: 250px; min-width: 205px; }
  .site-logo img, .site-logo .custom-logo { width: 250px; }
  .site-nav .menu-item a { padding-inline: 10px; font-size: 12.5px; }
}

@media (max-width: 1180px) {
  .topbar__location-copy small { display: none; }
  .topbar__location { max-width: 180px; }
  .topbar__email { display: none !important; }
  .topbar__finance span { display: none; }
  .topbar__finance { min-width: 122px; justify-content: center; padding-inline: 20px 14px; }
  .site-logo { flex-basis: 230px; min-width: 190px; }
  .site-logo img, .site-logo .custom-logo { width: 230px; }
}

@media (max-width: 1080px) {
  html { scroll-padding-top: 84px; }
  .topbar__inner { grid-template-columns: minmax(0, 1fr) auto; }
  .topbar__location--2 { display: none; }
  .topbar__location { max-width: none; }
  .header__inner { min-height: 76px; }
  .site-logo { flex: 0 1 min(280px, calc(100vw - 100px)); min-width: 0; }
  .site-logo img, .site-logo .custom-logo { width: min(280px, calc(100vw - 100px)); max-height: 58px; }
  .menu-toggle { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 12px; }
  .site-nav {
    position: fixed;
    inset: var(--pme-nav-top, 124px) 0 0;
    z-index: 999;
    margin: 0;
    padding: 18px 22px max(40px, env(safe-area-inset-bottom));
    background: rgba(5,5,5,.995);
    transform: translateX(100%);
    transition: transform .28s ease, visibility 0s linear .28s;
    visibility: hidden;
    pointer-events: none;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .menu-open .site-nav { transform: translateX(0); visibility: visible; pointer-events: auto; transition-delay: 0s; }
  .site-nav .menu { display: grid; align-items: stretch; justify-content: stretch; gap: 0; }
  .site-nav .menu-item a { padding: 17px 7px; border-bottom: 1px solid rgba(255,255,255,.1); white-space: normal; font-size: 18px; }
  .site-nav .menu-item a::after { display: none; }
}

@media (max-width: 860px) {
  .topbar__locations { display: none; }
  .topbar__inner { grid-template-columns: 1fr; }
  .topbar__actions { width: 100%; justify-content: space-between; }
  .topbar__phone { flex: 1 1 auto; }
  .topbar__finance { flex: 0 0 auto; min-width: 118px; clip-path: none; border-radius: 0; }
  .full-calculator { grid-template-columns: minmax(0, 1fr) !important; }
  .rate-explainer { grid-column: auto !important; }
  .form-layout, .contact-hero-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .section-heading--split { grid-template-columns: minmax(0, 1fr) !important; gap: 16px !important; }
}

@media (max-width: 620px) {
  .topbar { font-size: 11px; }
  .topbar__inner { min-height: 42px; }
  .topbar__actions { gap: 8px; }
  .topbar__phone span { display: inline !important; }
  .topbar__finance strong { font-size: 15px; }
  .topbar__finance .icon { display: none; }
  .header__inner { min-height: 68px; }
  .site-logo { flex-basis: min(230px, calc(100vw - 84px)); }
  .site-logo img, .site-logo .custom-logo { width: min(230px, calc(100vw - 84px)); max-height: 50px; }
  .menu-toggle { width: 44px; height: 44px; }
  .section-heading h2, .split-layout__copy h2, .faq-layout__copy h2, .form-layout__copy h2 { letter-spacing: -.035em; }
  .calculator-card__header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
  .full-calculator__inputs, .full-calculator__result, .rate-explainer { min-width: 0; }
  .quick-terms { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quick-terms button { width: 100%; }
  .result-grid { grid-template-columns: minmax(0, 1fr); }
  .result-grid p { min-width: 0; }
  .result-grid b { font-size: clamp(15px, 4.4vw, 18px); }
  .branch-contact-grid a { align-items: flex-start; }
}

@media (max-width: 390px) {
  .topbar__phone span { font-size: 10px; }
  .topbar__finance { min-width: 102px; padding-inline: 10px; }
  .topbar__finance strong { font-size: 14px; }
  .site-logo { flex-basis: min(205px, calc(100vw - 78px)); }
  .site-logo img, .site-logo .custom-logo { width: min(205px, calc(100vw - 78px)); }
  .quick-terms { grid-template-columns: 1fr 1fr; gap: 7px; }
  .tabs button { padding-inline: 8px; }
}

/* CTA and promotional blocks always keep readable contrast. */
.final-banner h2,
.footer-cta h2,
.value-panel--accent h2,
.offer-card--finance h3 { color: #fff; }
.final-banner p,
.footer-cta p,
.offer-card--finance p,
.value-panel--accent p { color: rgba(255,255,255,.82); }
.final-banner .button--outline-light,
.footer-cta .button--outline-light { background: rgba(0,0,0,.28); border-color: rgba(255,255,255,.64); }
.final-banner .button--outline-light:hover,
.footer-cta .button--outline-light:hover { background: #fff; color: #111; }

/* Image wrappers and CTA contrast overrides loaded after all legacy rules. */
.image-stack img {
  display: block;
  width: 100%;
  min-height: 360px;
  aspect-ratio: 1.04;
  object-fit: cover;
  border-radius: 26px;
  box-shadow: var(--pme-shadow);
}
.final-banner,
.footer-cta {
  color: #fff;
  background: linear-gradient(120deg, #080808 0%, #19130f 48%, #341506 100%);
}
.final-banner::before,
.footer-cta::before {
  background: radial-gradient(circle at 8% 30%, rgba(255,100,0,.2), transparent 34%);
}
@media (max-width: 620px) {
  .image-stack img { min-height: 280px; border-radius: 20px; }
}

/* Fluent Forms responsive integration ------------------------------------ */
@media (max-width: 820px) {
  .pme-fluent-form-shell { padding: 22px; }
  .pme-fluent-form-shell .ff-t-container { gap: 12px; }
}

@media (max-width: 680px) {
  .pme-fluent-form-shell { padding: 18px; border-radius: 17px; }
  .pme-fluent-form-heading { margin-bottom: 18px; }
  .pme-fluent-form-heading h2 { font-size: 23px; }
  .pme-fluent-form-shell .ff-t-container { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
  .pme-fluent-form-shell .ff-t-cell { width: 100% !important; flex-basis: 100% !important; }
  .pme-fluent-form-shell .ff-el-group { margin-bottom: 15px; }
  .pme-fluent-form-shell .ff-el-form-control:not([type="checkbox"]):not([type="radio"]),
  .pme-fluent-form-shell select.ff-el-form-control,
  .pme-fluent-form-shell textarea.ff-el-form-control { min-height: 50px; font-size: 16px; }
  .pme-fluent-form-shell .ff-btn-submit,
  .pme-fluent-form-shell button[type="submit"] { width: 100%; min-height: 52px; }
}

@media (max-width: 380px) {
  .pme-fluent-form-shell { padding: 15px; }
  .pme-fluent-form-heading h2 { font-size: 21px; }
}
