/* Shared public visual language. Data, routes and interactions are unchanged. */
.fintech-site {
  --color-navy: #14263f;
  --color-navy-soft: #14263f;
  --color-blue: #0066e6;
  --color-blue-dark: #0052b8;
  --color-text: #14263f;
  --color-muted: #52647a;
  --color-text-secondary: #52647a;
  --color-surface-alt: #f7f9fc;
  --color-border: #dce4ef;
  --radius-card: 16px;
  --shadow-card: 0 4px 16px rgb(20 38 63 / 6%);
  --max-content-width: 1200px;
  background: #fff;
  color: #14263f;
  line-height: 1.5;
}
.fintech-site .shell { width: min(calc(100% - 64px), 1200px); }
.fintech-site :is(a, button, summary, input, textarea):focus-visible {
  outline: 3px solid #0052b8;
  outline-offset: 3px;
  box-shadow: 0 0 0 2px #fff;
}
.fintech-site :is(h1, h2, h3) { letter-spacing: -.035em; }
.fintech-site h2 { font-size: 32px; line-height: 1.2; }
.fintech-site h3 { font-size: 22px; line-height: 1.3; font-weight: 600; }
.fintech-site .eyebrow { color: #0052b8; font-size: 12px; letter-spacing: .12em; font-weight: 700; }
.fintech-site .site-header { background: #fff; backdrop-filter: none; border-color: #dce4ef; }
.fintech-site .header-inner { min-height: 80px; }
.fintech-site .wordmark { min-height: 44px; display: inline-flex; align-items: center; }
.fintech-site :is(.main-nav > a, .footer-nav a, .home-methodology__heading .text-link) { min-width: 44px; min-height: 44px; }
.fintech-site .main-nav { gap: 24px; }
.fintech-site .main-nav > a:not(.button) { color: #14263f; font-size: 14px; min-height: 44px; display: inline-flex; align-items: center; }
.fintech-site .button {
  min-height: 48px; padding: 12px 20px; border-radius: 10px;
  font-size: 16px; font-weight: 600; line-height: 1.25; white-space: normal;
  transition: background-color 150ms ease, box-shadow 150ms ease;
}
.fintech-site :is(.button--primary, .button--nav) {
  background: #0066e6; border: 1px solid #0066e6; color: #fff;
  box-shadow: 0 4px 12px rgb(0 102 230 / 14%);
}
.fintech-site :is(.button--primary, .button--nav):hover { background: #0052b8; border-color: #0052b8; color: #fff; }
.fintech-site .button--secondary { background: #fff; border-color: #6b7c93; color: #0052b8; box-shadow: none; }
.fintech-site .button--secondary:hover { background: #edf5ff; }
.fintech-site .site-footer { background: #edf5ff; border-top: 1px solid #dce4ef; color: #52647a; padding-block: 48px; }
.fintech-site .footer-brand p { color: #52647a; font-size: 14px; }
.fintech-site .footer-nav { gap: 8px 20px; }
.fintech-site .footer-nav a { color: #344b66; font-size: 14px; display: inline-flex; align-items: center; min-height: 44px; }
.fintech-site .assistant-launcher { background: #0066e6; box-shadow: 0 4px 16px rgb(20 38 63 / 15%); }
.fintech-site .assistant-launcher:hover { background: #0052b8; }
/* Editorial mastheads keep real results and filters close to the heading. */
.fintech-site:not(.fintech-home) { background: #f7f9fc; }
.fintech-site .discovery-page-heading h1,
.fintech-site .guides-index-header h1 { font-size: clamp(30px, 3.6vw, 48px); line-height: 1.12; max-width: 24ch; }
.fintech-site .discovery-page-heading { padding-block: 32px; }
.fintech-site .fintech-masthead { display: grid; grid-template-columns: 1.5fr 1fr; gap: 32px; align-items: center; background: #edf5ff; border: 1px solid #dce4ef; border-radius: 24px; padding: 32px; overflow: hidden; margin: 24px 0 32px; }
.fintech-masthead__copy { min-width: 0; }
.fintech-site .fintech-masthead .page-intro { max-width: 52ch; margin-bottom: 0; color: #52647a; }
.fintech-masthead__photo { height: 200px; overflow: hidden; border-radius: 16px; }
@media (min-width: 768px) { .fintech-site .discovery-page-masthead .fintech-masthead__copy { align-self: start; } }

.provincial-cards-page { padding-block: clamp(1.5rem, 4vw, 4rem); }
.provincial-cards-page .breadcrumbs { display: flex; flex-wrap: wrap; gap: 0.25rem; margin-bottom: 1rem; }
.site-notice { margin-block: 1rem 0; padding: 0.8rem 1rem; border: 1px solid #b9e2d1; border-radius: 10px; background: #effaf6; color: #174c3b; }
.provincial-cards-hero { max-width: 760px; margin-bottom: clamp(1.5rem, 4vw, 3rem); }
.provincial-cards-hero h1 { margin-block: 0.35rem 0.8rem; }
.jurisdiction-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 1rem; }
.jurisdiction-card { display: grid; gap: 0.35rem; min-height: 112px; padding: 1.25rem; border: 1px solid #dce4ef; border-radius: 16px; background: #fff; color: #0b1f36; text-decoration: none; box-shadow: 0 12px 28px rgb(38 55 82 / 7%); }
.jurisdiction-card:hover, .jurisdiction-card:focus-visible { border-color: #7657e8; transform: translateY(-2px); }
.jurisdiction-card span { color: #52647a; font-size: 0.9rem; }
.provincial-strategy { padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid #dce4ef; border-radius: 20px; background: #fff; box-shadow: 0 18px 40px rgb(38 55 82 / 8%); }
.provincial-strategy__heading { display: flex; justify-content: space-between; align-items: start; gap: 1.5rem; }
.provincial-strategy__heading h2 { margin-top: 0.25rem; }
.provincial-strategy__value { display: grid; gap: 0.2rem; min-width: 190px; text-align: right; }
.provincial-strategy__value span { color: #52647a; font-size: 0.82rem; }
.provincial-strategy__value strong { color: #5038ba; font-size: clamp(1.35rem, 3vw, 2rem); }
.provincial-card-list { display: grid; grid-template-columns: repeat(3, minmax(0, 220px)); gap: 1rem; margin-block: 1.5rem; }
.provincial-card-list article { display: grid; align-content: start; gap: 0.7rem; padding: 1rem; border-radius: 14px; background: #f6f8fc; }
.provincial-card-list article > div { width: min(180px, 100%); min-height: 108px; display: grid; place-items: center; }
.provincial-card-list h3 { margin: 0; font-size: 1rem; }
.provincial-eligibility-note { padding-left: 1rem; border-left: 3px solid #7657e8; color: #52647a; }
.provincial-methodology { margin-block: 1.25rem 2.5rem; padding: 1rem 1.25rem; border: 1px solid #dce4ef; border-radius: 14px; }
.provincial-methodology summary { cursor: pointer; font-weight: 700; }
.provincial-links ul { display: flex; flex-wrap: wrap; gap: 0.55rem 1rem; padding: 0; list-style: none; }
.footer-jurisdiction { display: grid; gap: 0.35rem; min-width: min(100%, 290px); }
.footer-jurisdiction > label, .footer-jurisdiction small { color: #344b66; font-size: 0.78rem; }
.footer-jurisdiction > div { display: flex; gap: 0.4rem; }
.footer-jurisdiction select, .footer-jurisdiction input[type="submit"] { min-height: 40px; border: 1px solid #c8d4e3; border-radius: 8px; background: #fff; color: #0b1f36; }
.footer-jurisdiction select { min-width: 180px; padding-inline: 0.6rem; }
.footer-jurisdiction input[type="submit"] { padding-inline: 0.8rem; cursor: pointer; }

@media (max-width: 767px) {
  .provincial-strategy__heading { display: grid; }
  .provincial-strategy__value { min-width: 0; text-align: left; }
  .footer-jurisdiction > div { align-items: stretch; flex-direction: column; }
  .footer-jurisdiction select { width: 100%; }
  .provincial-card-list { grid-template-columns: minmax(0, 1fr); }
}
.fintech-section-icon { display: inline-flex; color: #0066e6; padding: 12px; border: 1px solid #c5dbf7; background: #fff; border-radius: 16px; margin-bottom: 20px; }
.fintech-site .fintech-editorial-heading { background: #edf5ff; padding: 40px; border-radius: 24px; margin-block: 24px 40px; }
.fintech-site .fintech-editorial-heading p:last-child { margin-bottom: 0; max-width: 60ch; }
/* Catalogue and offers: real product photography remains authoritative. */
.fintech-site .catalogue-filters { background: #fff; border: 1px solid #dce4ef; border-radius: 16px; padding: 20px; box-shadow: 0 4px 16px rgb(20 38 63 / 4%); }
.fintech-site :is(.catalogue-card,.portfolio-owned-card) { border-color: #dce4ef; border-radius: 20px; box-shadow: 0 4px 16px rgb(20 38 63 / 4%); overflow: hidden; background: #fff; }
.fintech-site :is(.catalogue-card__visual,.portfolio-owned-card__visual) { background: #edf3fa; border-bottom: 1px solid #dce4ef; }
.fintech-site .catalogue-card__body { padding: 24px; }
.fintech-site .catalogue-card h2 { line-height: 1.3; }
.fintech-site .offers-table-section { padding: 28px; border: 1px solid #dce4ef; border-radius: 20px; background: #fff; }
.fintech-site .offers-table thead th { background: #edf5ff; color: #344b66; }
.fintech-site .offers-table__row--featured { background: #f4f8ff; }
.fintech-site .offers-table__row:hover { background: #edf5ff; }
/* Strategy choices, selected states and numeric results retain their meaning. */
.fintech-site :is(.strategy-controls,.strategy-filter-bar) { border-color: #dce4ef; background: #fff; border-radius: 16px; }
.fintech-site .persona-v4-choice { background: #fff; border: 1px solid #dce4ef; border-radius: 16px; padding: 16px; }
.fintech-site .persona-v4-choice:is(.is-active,:hover) { background: #edf5ff; border-color: #0066e6; box-shadow: inset 0 0 0 1px #0066e6; }
.fintech-site .strategy-choice-icon { background: #edf5ff; color: #0066e6; }
.fintech-site .network-policy-option input:checked + span { background: #0066e6; color: #fff; border-color: #0066e6; }
.fintech-site :is(.network-policy-option,.amex-preference__label):focus-within { outline: 3px solid #0052b8; outline-offset: 3px; }
.fintech-site .amex-preference__label input:checked + .amex-preference__indicator { background: #0066e6; border-color: #0066e6; }
.fintech-site :is(.strategy-recommendation,.persona-v4-strategy,.analysis-section,.wizard-card,.profile-summary,.personalized-result__summary) { border-color: #dce4ef; border-radius: 20px; box-shadow: 0 4px 16px rgb(20 38 63 / 4%); background: #fff; }
/* Reading layout: generous space, sharp images, comfortable text measure. */
.fintech-site .guide-card { border: 1px solid #dce4ef; border-radius: 20px; overflow: hidden; background: #fff; box-shadow: 0 4px 16px rgb(20 38 63 / 4%); }
.fintech-site .guide-card__image { aspect-ratio: 1200 / 630; object-fit: cover; }
.fintech-site .guide-card__content { padding: 24px; }
.fintech-site .guide-card h2 { font-size: 22px; line-height: 1.3; }
.fintech-site .guide-card .guide-meta { color: #0052b8; }
.fintech-site .guide-card .text-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: auto; }
.fintech-site .guide-article { background: #fff; }
.fintech-site .guide-hero { border-radius: 20px; overflow: hidden; }
.fintech-site .guide-body { line-height: 1.85; }
.fintech-site .guide-body h2 { padding-top: 12px; }
.fintech-site :is(.guide-toc,.guide-toc-mobile) { background: #edf5ff; border-color: #dce4ef; border-radius: 16px; }
.fintech-site .guide-infographic { border-radius: 16px; overflow: hidden; }
/* Application flows and saved portfolio share the same calm surfaces. */
.fintech-site .wizard-page { background: #f7f9fc; }
.fintech-site .wizard-intro { gap: 32px; align-items: center; padding-block: 32px; }
.fintech-wizard-photo { width: 280px; height: 180px; border-radius: 20px; overflow: hidden; flex-shrink: 0; }
.fintech-site .wizard-intro h1 { font-size: clamp(30px, 3.4vw, 44px); }
.fintech-site .progress-track > span { background: #0066e6; }
.fintech-site .wizard-progress-steps .is-current .wizard-progress-steps__number { background: #0066e6; color: #fff; }
.fintech-site :is(input:not([type=radio]):not([type=checkbox]),select,textarea) { border-radius: 10px; border-color: #a9b9cc; }
.fintech-site :is(input[type=radio],input[type=checkbox]) { accent-color: #0066e6; }
.fintech-site :is(.option-card,.choice-card):has(input:checked) { background: #edf5ff; border-color: #0066e6; }
.fintech-site .portfolio-empty-state__visual { height: 390px; border-radius: 24px; overflow: hidden; background: #edf5ff; }
.fintech-site .portfolio-empty-state__visual::before,.fintech-site .portfolio-empty-state__visual::after { content: none; }
.fintech-site .portfolio-empty-state__visual .refresh-photo { position: static; }
.fintech-site .portfolio-optimize { border-radius: 20px; background: #edf5ff; border-color: #dce4ef; }
.fintech-site .alert-page-hero__mark { background: #edf5ff; color: #0066e6; border-color: #c5dbf7; }
.fintech-site .alert-page > .offer-alert-form { padding: 28px; border-radius: 20px; box-shadow: 0 4px 16px rgb(20 38 63 / 4%); }
.fintech-site .assistant-panel { border-radius: 20px; border-color: #dce4ef; }
@media (hover: hover) { .fintech-site :is(.guide-card,.catalogue-card):hover { border-color: #a6c9f5; box-shadow: 0 8px 24px rgb(20 38 63 / 9%); } }
@media (max-width: 1100px) { .fintech-site .main-nav { display: none; } .fintech-site .mobile-menu { display: block; } }
@media (max-width: 767px) {
  .fintech-site .shell { width: calc(100% - 32px); }
  .fintech-site .header-inner { min-height: 64px; }
  .fintech-site .site-footer { padding-block: 32px 80px; }
  .fintech-site .fintech-masthead { grid-template-columns: 1fr; gap: 24px; padding: 24px; margin-block: 16px 24px; border-radius: 20px; }
  .fintech-masthead__photo { height: 160px; }
  .fintech-site .fintech-editorial-heading { padding: 24px; margin-block: 16px 24px; }
  .fintech-site .guide-card__content { padding: 20px; }
  .fintech-site .offers-table-section { padding: 16px; }
  .fintech-site .catalogue-filters { padding: 16px; }
  .fintech-site .persona-v4-choice { padding: 12px; }
  .fintech-site .wizard-intro { padding-block: 20px; }
  .fintech-wizard-photo { width: 100%; height: 150px; }
  .fintech-site .portfolio-empty-state__visual { height: 250px; }
  .fintech-site .alert-page > .offer-alert-form { padding: 20px; }
}
@media (prefers-reduced-motion: reduce) { .fintech-site *, .fintech-site *::before, .fintech-site *::after { scroll-behavior: auto; } }
.fintech-site .fintech-masthead { max-width: none; }
.fintech-site .card-page-hero { background: #edf5ff; border-bottom: 1px solid #dce4ef; padding-block: 48px; }
.fintech-site .card-page-visual { border: 1px solid #dce4ef; background: #fff; border-radius: 24px; box-shadow: 0 8px 24px rgb(20 38 63 / 6%); }
.fintech-site .card-page-summary h1 { font-size: clamp(30px, 3.3vw, 46px); }
.fintech-site .card-page-stack > section { border-color: #dce4ef; border-radius: 20px; background: #fff; }
.fintech-site .methodology-hero { background: #edf5ff; padding-block: 48px; border-bottom: 1px solid #dce4ef; }
.fintech-site .methodology-hero h1 { font-size: clamp(30px, 3.6vw, 48px); }
.fintech-site .methodology-sections > section { background: #fff; border: 1px solid #dce4ef; border-radius: 20px; padding: 28px; }
.fintech-site .personalization-pending { box-shadow: 0 8px 24px rgb(20 38 63 / 6%); }
@media (max-width: 767px) { .fintech-site .card-page-hero,.fintech-site .methodology-hero { padding-block: 28px; } }
/* Complete the shared token palette used by deeper result and form components. */
.fintech-site {
  --color-purple: #0066e6;
  --color-page-background: #f7f9fc;
  --color-section-tint: #edf5ff;
  --color-featured-surface: #edf5ff;
  --color-border-featured: #a6c9f5;
  --color-text-primary: #14263f;
  --gradient-brand: linear-gradient(135deg, #0066e6, #0052b8);
  --gradient-brand-soft: linear-gradient(135deg, #edf5ff, #f7f9fc);
  --shadow-featured: 0 8px 24px rgb(20 38 63 / 8%);
  --focus-ring: 0 0 0 3px rgb(0 102 230 / 35%);
}
.fintech-site .statement-import-card { background: #edf5ff; border-color: #c5dbf7; }
.fintech-site .assistant-panel__header { background: #edf5ff; }
.fintech-site .network-policy-option:has(input:checked) { background: #0066e6; color: #fff; box-shadow: 0 2px 6px rgb(0 102 230 / 15%); }
.fintech-site .network-policy-option input:checked + span { background: transparent; }
.fintech-site .usage-choice.is-active { background: #edf5ff; border-color: #0066e6; box-shadow: inset 0 0 0 1px #0066e6; }
.fintech-site .alert-feature { background: #edf5ff; border-color: #c5dbf7; }
.fintech-site .alert-feature__visual { color: #0066e6; background: #fff; }
.fintech-site .guide-body a { overflow-wrap: anywhere; }
.fintech-site:has(.guide-article) { background: #fff; }
.fintech-site .fintech-editorial-heading { max-width: none; }
.fintech-site .wizard-intro { background: #edf5ff; border-color: #dce4ef; }
.fintech-site .portfolio-empty-state { background: #f7f9fc; }
.fintech-site .portfolio-management { background: #f7f9fc; }
.fintech-site .wizard-profile-summary-mobile > details { border-color: #dce4ef; }
.fintech-site .methodology-sections { grid-template-columns: minmax(0, 1fr); }
.fintech-site .methodology-sections > section { min-width: 0; overflow-wrap: anywhere; }
.fintech-site .profile-strategy-card { background: #edf5ff; border-color: #c5dbf7; border-radius: 20px; }
.fintech-site .profile-strategy-card__summary { background: #fff; border-radius: 16px; box-shadow: none; }
.fintech-site .top-picks-next-step--primary { background: #edf5ff; border-color: #c5dbf7; }
.fintech-site .profile-hero { background: #edf5ff; border-bottom: 1px solid #dce4ef; }
.fintech-site .personalized-result { background: #fff; border-radius: 20px; box-shadow: 0 4px 16px rgb(20 38 63 / 4%); }
@media (max-width: 767px) { .fintech-site h2 { font-size: 28px; } .fintech-site .methodology-sections > section { padding: 20px; } }
.fintech-site .result-kicker { color: #0052b8; }
.fintech-site .card-art__placeholder .card-art__brand { color: #52647a; }

/* One offers panel: compact introduction, results count, then the actual table. */
.fintech-site .offers-overview { margin-top: 24px; border: 1px solid #dce4ef; border-radius: 20px; background: #fff; }
.fintech-site .offers-overview .fintech-masthead { grid-template-columns: minmax(0, 1fr) 176px; gap: 24px; margin: 0; padding: 24px 28px; border: 0; border-bottom: 1px solid #dce4ef; border-radius: 20px 20px 0 0; }
.fintech-site .offers-overview .fintech-masthead__photo { height: 156px; border-radius: 14px; }
.fintech-site .offers-overview .fintech-masthead__photo img { object-position: right center; }
.fintech-site .offers-overview .fintech-masthead .page-intro { max-width: 70ch; font-size: 15px; line-height: 1.6; }
.fintech-site .offers-overview .offers-table-section { padding: 20px 28px 28px; margin: 0; border: 0; border-radius: 0 0 20px 20px; }
.fintech-site .offers-results-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 24px; margin-bottom: 16px; }
.fintech-site .offers-results-toolbar > p { margin: 0; color: #52647a; font-size: 14px; }
.fintech-site .offers-results-toolbar .offers-methodology { margin: 0; font-size: 13px; }
.fintech-site .offers-overview > :is(.empty-state, .best-welcome-offers:not(.offers-table-section)) { margin: 0; padding: 24px 28px; }
/* Approved photograph moved from the homepage to the detailed methodology. */
.methodology-hero__layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.methodology-hero__copy { min-width: 0; }
.methodology-hero__photo { height: 260px; border-radius: 20px; overflow: hidden; }
@media (max-width: 767px) {
  .fintech-site .offers-overview { margin-top: 16px; }
  .fintech-site .offers-overview .fintech-masthead { grid-template-columns: minmax(0, 1fr) 96px; gap: 16px; padding: 20px 16px; align-items: start; }
  .fintech-site .offers-overview .fintech-masthead__copy { display: contents; }
  .fintech-site .offers-overview .fintech-masthead .eyebrow { grid-column: 1 / -1; margin: 0; }
  .fintech-site .offers-overview .fintech-masthead h1 { grid-column: 1; font-size: 26px; }
  .fintech-site .offers-overview .fintech-masthead .page-intro { grid-column: 1 / -1; grid-row: 3; margin: 0; font-size: 14px; }
  .fintech-site .offers-overview .fintech-masthead__photo { grid-column: 2; grid-row: 2; height: 96px; }
  .fintech-site .offers-overview .offers-table-section { padding: 16px; }
  .methodology-hero__layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .methodology-hero__photo { height: 180px; }
}
