/* Territorial inventories retain the A/C/E comparison sheet on every viewport. */
.territorial-page { min-width: 0; }
.territorial-page .compact-hero { max-width: 960px; margin: 20px 0 32px; }
.territorial-page .compact-hero h1 { font-size: clamp(32px, 3.6vw, 48px); line-height: 1.16; letter-spacing: -.03em; text-wrap: balance; }
.territorial-page .compact-hero p { max-width: 75ch; margin: 14px 0 0; }
.territorial-page .directory-section { margin: 40px 0; }
.territorial-page .directory-section h2 { margin-bottom: 14px; font-size: 26px; line-height: 1.3; text-wrap: balance; }
.territorial-page .directory-section > p { max-width: 75ch; }
.territorial-page a { text-underline-offset: .2em; }
.territorial-page :focus-visible { outline: 3px solid var(--blue, var(--action)); outline-offset: 4px; }
.territorial-page ::selection { background: var(--tint); color: var(--ink); }
.territorial-page .pagination { justify-content: flex-start; gap: 8px 20px; margin: 18px 0; }
.territorial-page .pagination a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 0; }
.territorial-list-note { color: var(--muted); font-size: 14px; line-height: 1.55; margin: 12px 0 22px; }
.territorial-offers { display: grid; gap: 16px; }
.territorial-offer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(190px, .58fr) minmax(0, 1.32fr); gap: 18px 28px; padding: 22px; border: 1px solid var(--line); border-radius: 12px; background: var(--white, #fff); min-width: 0; }
.territorial-offer > * { min-width: 0; }
.territorial-offer p { margin: 0; line-height: 1.55; }
.territorial-offer-heading { display: flex; align-items: flex-start; gap: 14px; }
.territorial-page .territorial-offer-heading .bank-logo { display: grid; place-items: center; flex: 0 0 88px; width: 88px; height: 56px; padding: 4px; border-radius: 6px; background: var(--white, #fff); }
.territorial-page .territorial-offer-heading .bank-logo-dark { background: var(--ink); }
.territorial-page .territorial-offer-heading .bank-logo-cgd { background: var(--paper); }
.territorial-page .territorial-offer-heading .bank-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.territorial-page .territorial-offer-heading .bank-logo-fallback { background: var(--soft); color: var(--ink); font-size: 22px; }
.territorial-bank { font-size: 18px; font-weight: 650; }
.territorial-offer h3 { font-size: 16px; font-weight: 500; line-height: 1.45; letter-spacing: 0; margin: 5px 0 8px; }
.territorial-relation { font-size: 14px; color: var(--muted); overflow-wrap: anywhere; }
.territorial-price { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; font-variant-numeric: tabular-nums; }
.territorial-price strong { font-size: 32px; line-height: 1.2; letter-spacing: -.03em; font-weight: 650; }
.territorial-price span { font-size: 14px; line-height: 1.5; color: var(--muted); }
.territorial-scenario { font-size: 14px; }
.territorial-scenario p + p { margin-top: 10px; }
.territorial-key-condition { color: var(--ink); }
.territorial-access { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; padding-top: 14px; border-top: 1px solid var(--line); font-size: 14px; }
.territorial-access > p:first-child { color: var(--muted); }
.territorial-verify { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 14px; border-radius: 6px; background: var(--soft); color: var(--blue, var(--action)); font-weight: 600; }
.territorial-verify:hover { background: var(--tint); }
.territorial-source { display: flex; flex-direction: column; gap: 2px; margin-left: auto !important; }
.territorial-source a { color: var(--blue, var(--action)); text-decoration: underline; }
.territorial-source span:not(.sr-only) { color: var(--muted); }
.territorial-details { grid-column: 1 / -1; border-top: 1px solid var(--line); }
.territorial-page summary { cursor: pointer; min-height: 44px; padding: 10px 0; font-size: 14px; line-height: 1.6; font-weight: 600; }
.territorial-details summary { color: var(--blue, var(--action)); }
.territorial-details summary:hover { text-decoration: underline; text-underline-offset: .2em; }
.territorial-detail-body { max-width: 75ch; font-size: 14px; padding: 4px 0 8px; overflow-wrap: anywhere; }
.territorial-detail-body h4 { font-size: 16px; margin: 20px 0 10px; }
.territorial-detail-body h4:first-child { margin-top: 8px; }
.territorial-detail-body p + p { margin-top: 10px; }
.territorial-detail-body dl { margin: 0; }
.territorial-detail-body dl > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.territorial-detail-body dt { font-weight: 600; }
.territorial-detail-body dd { margin: 0; }
.territorial-detail-body ul { padding-left: 20px; margin: 0; }
.territorial-detail-body li { margin: 14px 0; }
.territorial-detail-body a { color: var(--blue, var(--action)); text-decoration: underline; }
.territorial-page .link-grid span { font-size: 14px; line-height: 1.5; }
.territorial-page .index-links a { font-size: 14px; min-height: 44px; }
@media (max-width: 1100px) {
  .territorial-offer { grid-template-columns: minmax(0, 1fr) 210px; gap: 16px 24px; }
  .territorial-scenario { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .territorial-offer { grid-template-columns: minmax(0, 1fr); padding: 18px; gap: 16px; }
  .territorial-page .territorial-offer-heading .bank-logo { flex-basis: 80px; width: 80px; height: 52px; }
  .territorial-price { padding-top: 14px; border-top: 1px solid var(--line); }
  .territorial-price strong { font-size: 30px; }
  .territorial-access { flex-direction: column; align-items: flex-start; gap: 10px; }
  .territorial-source { margin-left: 0 !important; }
  .territorial-page .link-grid { grid-template-columns: minmax(0, 1fr); }
  .territorial-detail-body dl > div { grid-template-columns: minmax(0, 1fr); gap: 5px; }
}
@media (max-width: 360px) {
  .territorial-offer { padding: 16px; }
  .territorial-offer-heading { flex-direction: column; gap: 10px; }
  .territorial-page .territorial-offer-heading .bank-logo { flex-basis: auto; }
}
