/* Layout refinements shared by the landing page and local design review. */
.brand-name { display: inline-flex; align-items: baseline; }
.brand-mark { flex-shrink: 0; }
.section h2,
.section h3,
.final-cta h2 { text-wrap: balance; }

.section-heading > div,
.hero-copy,
.security-copy,
.exposure-copy,
.guarantee-grid > div,
.faq-grid > div { min-width: 0; }

.final-cta h2 { margin-inline: auto; }
.final-cta p { max-width: 480px; margin-inline: auto; }
.service-card p { flex-grow: 1; }
.faq-list summary > span { flex-shrink: 0; }
.offline-check { padding: 28px 25px; }
.offline-check h3 { font-size: 25px; }
.offline-check p { margin-top: 14px; font-size: 13px; line-height: 1.8; color: var(--muted); }
.offline-check .button { width: 100%; margin-top: 22px; font-size: 12px; gap: 14px; }
.offline-check .text-link { margin-top: 20px; font-size: 12px; text-align: left; }
.manual-copy { margin: 18px 0; }
.manual-copy label { display: block; margin-bottom: 8px; font-size: 12px; font-weight: 600; }
.manual-copy textarea { display: block; width: 100%; resize: vertical; min-height: 160px; padding: 12px; border: 1px solid #b8b8b8; border-radius: 5px; font: 12px/1.6 var(--font); color: var(--ink); background: #ffffff; }
.offline-check[hidden],
.manual-copy[hidden] { display: none; }
.handover + .guarantee { border-top: 1px solid var(--line); }

.footer-assurances { align-items: flex-start; gap: 32px; padding-block: 28px; }
.footer-assurances > p { flex: 1 1 320px; max-width: 400px; }
.footer-assurances > div { flex: 0 1 570px; justify-content: flex-end; gap: 16px 22px; }
.footer-assurances .footer-payments { flex-basis: 100%; justify-content: flex-end; }
.footer-assurances > div > span:not(.footer-payments) { white-space: nowrap; }

@media (min-width: 821px) and (max-width: 1100px) {
  .service-card h3,
  .testimonial-card h3 { min-height: 2.8em; }
}

@media (max-width: 900px) {
  .nav { position: relative; }
  .nav-cta { margin-left: auto; }
  .menu-toggle {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    padding: 10px;
    margin-left: 10px;
    flex-shrink: 0;
  }
  .menu-toggle > span { display: block; width: 19px; height: 1px; background: #464646; transition: transform .2s; }
  .menu-toggle[aria-expanded="true"] > span:first-child { transform: translateY(3px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] > span:last-child { transform: translateY(-3px) rotate(-45deg); }
  .nav-links {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin: 0;
    padding: 12px 24px;
    background: #ffffff;
    border: 1px solid #cfcfcf;
    border-radius: 0 0 6px 6px;
    box-shadow: 0 12px 24px #1b1b1b12;
    font-size: 14px;
    gap: 0;
    z-index: 5;
  }
  .nav-links.open { display: flex; flex-direction: column; align-items: stretch; }
  .nav-links > a,
  .nav-links > a:nth-child(3) { display: block; padding: 12px 0; }
}

@media (max-width: 820px) {
  .brand-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px 18px; }
  .brand-strip a { justify-content: center; min-width: 0; }
  .service-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .service-card { padding: 26px 26px 0; }
  .service-card h3 { font-size: 23px; line-height: 1.3; }
  .service-card p { font-size: 14px; line-height: 1.8; margin-top: 12px; }
  .service-icon { width: 43px; height: 43px; margin-bottom: 22px; }
  .service-icon .icon { width: 24px; height: 24px; }
  .service-tags { margin-top: 20px; margin-bottom: 24px; gap: 7px; }
  .service-tags > span { font-size: 9px; padding: 4px 7px; }
  .card-link { font-size: 12px; padding-block: 18px; }
  .services .section-heading { flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 28px; }
  .services .section-heading > p { font-size: 13px; max-width: 480px; }
  .unknown-issue { flex-direction: column; align-items: flex-start; gap: 14px; }
  .unknown-issue > span { max-width: 100%; font-size: 11px; }
  .unknown-issue > button { font-size: 12px; padding-left: 0; }
  .footer-assurances { gap: 22px; }
  .footer-assurances > p,
  .footer-assurances > div { flex: initial; }
  .footer-assurances > div,
  .footer-assurances .footer-payments { justify-content: flex-start; }
}

@media (max-width: 640px) {
  .nav .brand { font-size: 22px; letter-spacing: -1.2px; }
  .brand-strip { column-gap: 12px; }
  .assurance-item { align-items: flex-start; }
  .assurance-item strong { line-height: 1.5; min-height: 3em; }
  .assurance-item small { margin-top: 4px; }
  .service-card { padding: 24px 22px 0; }
  .service-card h3 { font-size: 22px; }
  .testimonial-card { padding-inline: 22px; }
  .testimonial-card h3 { font-size: 22px; }
  .document-rows > div { grid-template-columns: minmax(0, 1fr); gap: 6px; padding-block: 16px; }
  .document-rows dt { white-space: nowrap; }
  .document-rows dd { font-size: 13px; }
  .final-cta .eyebrow { max-width: 290px; margin-inline: auto; line-height: 1.7; }
  .final-cta p { font-size: 9px; line-height: 1.7; align-items: flex-start; max-width: 290px; }
  .final-cta p > .icon { margin-top: 2px; }
  .footer-top { align-items: flex-start; gap: 16px; }
  .footer-top > p { flex-basis: 100%; margin: 0; font-size: 11px; }
  .footer-top > a:last-child { margin-top: 0; }
  .footer-bottom { gap: 18px; font-size: 9px; }
  .footer-bottom > div { flex-wrap: wrap; gap: 16px 22px; }
  .dialog-intro { padding: 32px 24px 0; }
  #request-form { padding: 20px 24px 26px; }
  .request-ready { padding: 26px 24px; }
  .info-dialog { padding: 36px 24px 28px; }
  .dialog-intro h2,
  .info-dialog h2 { font-size: 28px; text-wrap: balance; }
  #request-form .button { gap: 12px; }
}

@media (max-width: 370px) {
  .brand-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 18px; }
  .nav .brand { font-size: 20px; letter-spacing: -1.1px; }
  .menu-toggle { margin-left: 4px; width: 40px; }
  .dialog-intro h2,
  .info-dialog h2 { font-size: 25px; }
}

.copy-list{margin:18px 0 0;padding-left:20px;color:var(--muted,#676767);font-size:14px;line-height:1.75;max-width:510px}
.copy-list li{margin-top:8px}
.copy-list li::marker{color:#e10600}
.service-card.wide{grid-column:1/-1}
.service-card.wide p,.service-card.wide .copy-list{max-width:720px}
.service-card .copy-list{margin-top:0}
.service-card.wide h3{margin-top:22px}
