/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/76e893bc-b2f8-4325-ba61-2bee9c6830c3.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/9824e356-c439-487c-98de-fb90c9ec5421.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/76e893bc-b2f8-4325-ba61-2bee9c6830c3.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/9824e356-c439-487c-98de-fb90c9ec5421.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/76e893bc-b2f8-4325-ba61-2bee9c6830c3.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/9824e356-c439-487c-98de-fb90c9ec5421.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/76e893bc-b2f8-4325-ba61-2bee9c6830c3.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/9824e356-c439-487c-98de-fb90c9ec5421.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/869a0cdd-0091-4cd0-9dea-1f42c7451c9f.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/8f8181f5-f27f-4683-848c-597903a7c1d2.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/869a0cdd-0091-4cd0-9dea-1f42c7451c9f.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/8f8181f5-f27f-4683-848c-597903a7c1d2.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/4ab46c0b-1514-48bc-8bb0-684ffc2cc700.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/511028bb-78cc-483e-b16f-6d7c045d7b73.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/4ab46c0b-1514-48bc-8bb0-684ffc2cc700.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/511028bb-78cc-483e-b16f-6d7c045d7b73.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/0c4337e8-c7ea-499e-bc7d-5407cda8615e.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/965836b1-09c1-4927-8969-b214809ee513.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/0c4337e8-c7ea-499e-bc7d-5407cda8615e.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/965836b1-09c1-4927-8969-b214809ee513.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/0c4337e8-c7ea-499e-bc7d-5407cda8615e.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/965836b1-09c1-4927-8969-b214809ee513.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* Capital.ec - Comparador de Pólizas */

:root {
  /* Capital.ec core palette: financial blue and cool neutrals */
  --navy: #0E1B2C;
  --navy-2: #16263d;
  --navy-3: #233852;
  --ink: #0a1422;
  --cream: #F7F5F0;
  --cream-2: #efece4;
  --cream-3: #e4dfd1;
  --paper: #ffffff;
  --gold: #1769ff;
  --gold-2: #0b55d4;
  --gold-soft: #e6efff;

  /* Semantic */
  --good: #1478d4;
  --good-soft: #dfeeff;
  --warn: #c35424;
  --warn-soft: #feebe3;
  --bad: #9c2e2a;
  --bad-soft: #ecd6d4;

  /* Type */
  --serif: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --sans: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --mono: 'JetBrains Mono', 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  /* Layout */
  --maxw: 1320px;
  --radius: 4px;
  --radius-lg: 8px;

  /* Density */
  --row-pad-y: 14px;
  --row-pad-x: 18px;

  /* Type family applied to body via .theme-* */
  --display: var(--serif);
  --body: var(--sans);
}

/* DARK MODE override */
.theme-dark {
  --navy: #f5f2ea;
  --navy-2: #efebe1;
  --navy-3: #e2dccd;
  --ink: #f6f3eb;
  --cream: #0c1623;
  --cream-2: #142133;
  --cream-3: #1c2c40;
  --paper: #0a1320;
  --gold: #69a0ff;
  --gold-2: #8db8ff;
  --gold-soft: #142f5f;

  --good: #69a9ff;
  --good-soft: #142f5f;
  --warn: #d9a64b;
  --warn-soft: #2e2516;
  --bad: #d97a73;
  --bad-soft: #2e1a18;
}

/* DENSITY */
.density-compact {
  --row-pad-y: 9px;
  --row-pad-x: 14px;
}

/* DIRECTION variants */
.dir-fintech {
  --display: var(--sans);
  --body: var(--sans);
  --gold: oklch(0.62 0.13 175);
  --gold-2: oklch(0.55 0.13 175);
  --radius: 8px;
  --radius-lg: 14px;
}
.dir-institutional {
  --display: var(--sans);
  --body: var(--sans);
  --gold: #1769ff;
  --gold-2: #0b55d4;
  --radius: 0px;
  --radius-lg: 2px;
}
/* dir-editorial = default */

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--body);
  background: var(--cream);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  font-feature-settings: 'ss01', 'cv11';
  font-size: 15px;
  line-height: 1.5;
}

/* TOPBAR */
.topbar {
  background: var(--navy);
  color: var(--cream);
  border-bottom: 1px solid var(--navy-3);
}
.topbar-inner {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 14px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.brand {
  font-family: var(--display);
  font-weight: 600;
  font-size: 22px;
  letter-spacing: -0.01em;
  color: var(--cream);
  display: flex;
  align-items: baseline;
  gap: 2px;
}
.brand-dot { color: var(--gold); }
.nav {
  display: flex;
  gap: 26px;
  font-size: 13.5px;
  color: rgba(247,245,240,0.8);
}
.nav a, .nav button { color: inherit; text-decoration: none; background: transparent; border: none; padding: 0; font: inherit; cursor: pointer; }
.nav a:hover, .nav button:hover { color: var(--cream); }
.nav .active { color: var(--cream); border-bottom: 1px solid var(--gold); padding-bottom: 2px; }

/* HERO */
.hero {
  background: var(--navy);
  color: var(--cream);
  padding: 32px 28px 38px;
  border-bottom: 1px solid var(--navy-3);
}
.hero-inner { max-width: var(--maxw); margin: 0 auto; }
.eyebrow {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 14px;
}
.hero h1 {
  font-family: var(--display);
  font-size: 48px;
  line-height: 1.05;
  font-weight: 500;
  letter-spacing: -0.02em;
  margin: 0 0 14px;
  max-width: 780px;
  text-wrap: balance;
}
.hero h1 em {
  font-style: italic;
  color: var(--gold-soft);
}
.hero p {
  font-size: 17px;
  color: rgba(247,245,240,0.75);
  max-width: 580px;
  margin: 0 0 28px;
}

/* HERO INPUT BAR */
.hero-form {
  background: var(--paper);
  color: var(--ink);
  border-radius: var(--radius-lg);
  padding: 6px;
  display: flex;
  align-items: stretch;
  max-width: 1040px;
  box-shadow: 0 24px 48px -24px rgba(0,0,0,0.4);
}
.hero-field {
  flex: 1;
  padding: 14px 18px;
  border-right: 1px solid var(--cream-3);
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.hero-field:last-of-type { border-right: none; }
.hero-field label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: oklch(0.55 0.01 50);
}
.hero-field input,
.hero-field select {
  border: none;
  background: transparent;
  font-family: var(--body);
  font-size: 17px;
  color: var(--ink);
  padding: 0;
  outline: none;
  width: 100%;
  font-variant-numeric: tabular-nums;
  font-weight: 500;
}
.hero-cta {
  background: var(--gold);
  color: var(--navy);
  border: none;
  padding: 0 28px;
  font-family: var(--body);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.02em;
  border-radius: calc(var(--radius-lg) - 2px);
  cursor: pointer;
  transition: background 0.15s;
}
.hero-cta:hover { background: var(--gold-2); }

.hero-meta {
  display: flex;
  gap: 28px;
  margin-top: 22px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(247,245,240,0.55);
}
.hero-meta b { color: var(--cream); font-weight: 500; }
.live-dot {
  display: inline-block;
  width: 6px; height: 6px;
  background: var(--gold);
  border-radius: 50%;
  margin-right: 6px;
  vertical-align: middle;
  animation: pulse 2s infinite;
}
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.35; } }

/* MAIN */
main { max-width: var(--maxw); margin: 0 auto; padding: 24px 28px 80px; }

/* SECTION HEADER */
.section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--cream-3);
}
.section-title {
  font-family: var(--display);
  font-size: 28px;
  font-weight: 500;
  letter-spacing: -0.01em;
  margin: 0;
  color: var(--ink);
}
.section-sub {
  font-size: 13px;
  color: oklch(0.5 0.01 50);
  margin: 4px 0 0;
}
.theme-dark .section-sub { color: oklch(0.65 0.01 50); }
.section-head-right {
  display: flex;
  gap: 12px;
  align-items: center;
}

.mobile-collapse {
  margin-bottom: 18px;
}
.mobile-collapse > summary {
  display: none;
  cursor: pointer;
  list-style: none;
  user-select: none;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--cream-3);
  border-radius: var(--radius-lg);
  padding: 14px 16px;
}
.mobile-collapse > summary::-webkit-details-marker { display: none; }
.mobile-collapse > summary::after { content: '+'; float: right; font-size: 16px; line-height: 1; color: var(--gold); }
.mobile-collapse[open] > summary::after { content: '-'; }
.mobile .mobile-collapse > summary {
  display: block;
}
.mobile .mobile-collapse > .filters,
.mobile .mobile-collapse > .allocation-card {
  margin-top: 8px;
}
.mobile .advanced-collapse:not([open]),
.mobile .optimizer-collapse:not([open]) {
  margin-bottom: 10px;
}
@media (max-width: 700px) {
  .mobile-collapse > summary { display: block; }
  .mobile-collapse > .filters,
  .mobile-collapse > .allocation-card { margin-top: 8px; }
  .advanced-collapse:not([open]),
  .optimizer-collapse:not([open]) { margin-bottom: 10px; }
}

/* FILTER BAR */
.filters {
  display: grid;
  grid-template-columns: 1.3fr 1.4fr 1fr 1fr;
  gap: 12px;
  background: var(--paper);
  padding: 18px;
  border: 1px solid var(--cream-3);
  border-radius: var(--radius-lg);
  margin-bottom: 18px;
}
.filter {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.filter-label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: oklch(0.5 0.01 50);
}
.theme-dark .filter-label { color: oklch(0.65 0.01 50); }
.filter-label-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; } .unit-toggle { display: inline-flex; border: 1px solid var(--cream-3); border-radius: var(--radius); overflow: hidden; background: var(--paper); } .unit-toggle button { background: transparent; border: none; padding: 4px 7px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: oklch(0.5 0.01 50); cursor: pointer; } .unit-toggle button.active { background: var(--navy); color: var(--cream); } .chip-row { display: flex; gap: 6px; flex-wrap: wrap; }
.chip {
  border: 1px solid var(--cream-3);
  background: var(--paper);
  color: var(--ink);
  padding: 7px 12px;
  border-radius: 100px;
  font-size: 12.5px;
  font-family: var(--body);
  cursor: pointer;
  transition: all 0.15s;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.chip:hover { border-color: var(--navy-3); }
.chip.active {
  background: var(--navy);
  color: var(--cream);
  border-color: var(--navy);
}
.theme-dark .chip { border-color: var(--cream-3); }
.theme-dark .chip.active { background: var(--ink); color: var(--cream); border-color: var(--ink); }

.search-input {
  background: var(--paper);
  border: 1px solid var(--cream-3);
  border-radius: var(--radius);
  padding: 9px 12px 9px 34px;
  font-size: 13.5px;
  font-family: var(--body);
  color: var(--ink);
  outline: none;
  width: 100%;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'><circle cx='11' cy='11' r='7'/><line x1='21' y1='21' x2='16.65' y2='16.65'/></svg>");
  background-repeat: no-repeat;
  background-position: 12px center;
}
.search-input:focus { border-color: var(--navy-3); } .filter-select { background: var(--paper); border: 1px solid var(--cream-3); border-radius: var(--radius); padding: 9px 12px; font-size: 13.5px; font-family: var(--body); color: var(--ink); outline: none; width: 100%; } .filter-select:focus { border-color: var(--navy-3); }

/* RESULTS COUNT */
.results-count {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 4px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: oklch(0.5 0.01 50);
}
.theme-dark .results-count { color: oklch(0.65 0.01 50); }
.results-count .num { color: var(--ink); font-weight: 500; }
.sort-toggle {
  display: flex;
  gap: 0;
  background: var(--paper);
  border: 1px solid var(--cream-3);
  border-radius: var(--radius);
  overflow: hidden;
}
.sort-toggle button {
  background: transparent;
  border: none;
  padding: 7px 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: oklch(0.5 0.01 50);
  cursor: pointer;
}
.sort-toggle button.active { background: var(--navy); color: var(--cream); }


/* ALLOCATION OPTIMIZER */
.allocation-card {
  background: var(--paper);
  border: 1px solid var(--cream-3);
  border-radius: var(--radius-lg);
  padding: 18px;
  margin: 14px 0 18px;
}
.allocation-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  border-bottom: 1px solid var(--cream-3);
  padding-bottom: 14px;
  margin-bottom: 12px;
}
.allocation-eyebrow {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold-2);
  margin-bottom: 4px;
}
.allocation-head h3 {
  margin: 0;
  font-family: var(--display);
  font-size: 22px;
  font-weight: 500;
  color: var(--ink);
}
.allocation-head p {
  margin: 5px 0 0;
  font-size: 13px;
  line-height: 1.45;
  color: oklch(0.5 0.01 50);
  max-width: 620px;
}
.allocation-total { text-align: right; flex-shrink: 0; }
.allocation-total span {
  display: block;
  font-family: var(--display);
  font-size: 26px;
  color: var(--ink);
}
.allocation-total small {
  display: block;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: oklch(0.5 0.01 50);
}
.allocation-list { display: grid; gap: 8px; }
.allocation-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 10px 0;
  border-top: 1px solid var(--cream-3);
}
.allocation-row:first-child { border-top: none; }
.allocation-rank {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--gold);
  color: var(--navy);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 600;
}
.allocation-inst strong, .allocation-money strong {
  display: block;
  color: var(--ink);
  font-size: 13.5px;
  font-weight: 500;
}
.allocation-inst span, .allocation-money span {
  display: block;
  margin-top: 2px;
  font-family: var(--mono);
  font-size: 12px;
  color: oklch(0.5 0.01 50);
}
.allocation-money { text-align: right; }
.allocation-foot {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--cream-3);
  font-family: var(--mono);
  font-size: 12px;
  color: oklch(0.5 0.01 50);
}
.mobile .allocation-head, .mobile .allocation-foot { flex-direction: column; }
.mobile .allocation-total { text-align: left; }
.mobile .allocation-row { grid-template-columns: 28px minmax(0, 1fr); }
.mobile .allocation-money { grid-column: 2; text-align: left; }
/* TABLE */
.table-wrap {
  background: var(--paper);
  border: 1px solid var(--cream-3);
  border-radius: var(--radius-lg);
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}
table.compare {
  width: 100%;
  min-width: 780px;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
}
table.compare thead th {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: oklch(0.45 0.01 50);
  text-align: left;
  padding: 14px var(--row-pad-x);
  background: var(--cream-2);
  border-bottom: 1px solid var(--cream-3);
  font-weight: 500;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
}
.theme-dark table.compare thead th { color: oklch(0.7 0.01 50); }
table.compare thead th .sort-arrow { opacity: 0.6; margin-left: 4px; font-size: 12px; }
table.compare thead th.sort-active .sort-arrow { opacity: 1; color: var(--gold-2); }
table.compare thead th.num, table.compare tbody td.num { text-align: right; }
table.compare tbody tr {
  border-top: 1px solid var(--cream-3);
  cursor: pointer;
  transition: background 0.1s;
}
table.compare tbody tr:first-child { border-top: none; }
table.compare tbody tr:hover { background: var(--cream-2); }
table.compare tbody td {
  padding: var(--row-pad-y) var(--row-pad-x);
  vertical-align: middle;
}

/* INSTITUTION CELL */
.inst-cell { display: flex; align-items: center; gap: 12px; }
.inst-mark {
  width: 36px;
  height: 36px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--display);
  font-weight: 600;
  font-size: 14px;
  flex-shrink: 0;
  color: var(--cream);
  background: var(--navy);
}
.inst-mark.coop { background: #1478d4; }
.inst-mark.mut { background: #6b4a2f; }
.inst-mark.fin { background: #4a2f6b; }
.inst-mark.logo-chip {
  background: #fff;
  border: 1px solid var(--cream-3);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.72) inset;
  padding: 4px;
  overflow: hidden;
}
.inst-mark.logo-chip img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.theme-dark .inst-mark.logo-chip { border-color: rgba(255, 255, 255, 0.16); }
.inst-name {
  font-weight: 500;
  font-size: 14.5px;
  color: var(--ink);
  line-height: 1.2;
}
.inst-meta {
  font-size: 12px;
  color: oklch(0.5 0.01 50);
  margin-top: 2px;
  display: flex;
  gap: 8px;
  align-items: center;
}
.theme-dark .inst-meta { color: oklch(0.65 0.01 50); }

.type-tag {
  display: inline-flex;
  align-items: center;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 2px 6px;
  border-radius: 2px;
}
.type-tag.banco { background: oklch(0.92 0.04 250); color: oklch(0.35 0.10 250); }
.type-tag.coop { background: oklch(0.92 0.04 150); color: oklch(0.35 0.10 150); }
.type-tag.mut { background: oklch(0.92 0.04 60); color: oklch(0.35 0.10 60); }
.type-tag.fin { background: oklch(0.92 0.04 300); color: oklch(0.35 0.10 300); }
.theme-dark .type-tag.banco { background: oklch(0.25 0.06 250); color: oklch(0.85 0.06 250); }
.theme-dark .type-tag.coop { background: oklch(0.25 0.06 150); color: oklch(0.85 0.06 150); }
.theme-dark .type-tag.mut { background: oklch(0.25 0.06 60); color: oklch(0.85 0.06 60); }
.theme-dark .type-tag.fin { background: oklch(0.25 0.06 300); color: oklch(0.85 0.06 300); }

/* RATE CELL */
.rate-cell {
  font-family: var(--display);
  font-size: 22px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.rate-cell .pct { font-size: 13px; color: oklch(0.5 0.01 50); margin-left: 1px; font-family: var(--body); font-weight: 400; }
.theme-dark .rate-cell .pct { color: oklch(0.65 0.01 50); }
.earnings {
  font-size: 12px;
  color: oklch(0.5 0.01 50);
  margin-top: 2px;
  font-variant-numeric: tabular-nums;
}
.theme-dark .earnings { color: oklch(0.65 0.01 50); }
.rate-context {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gold-2);
  margin-top: 3px;
  white-space: nowrap;
}
.theme-dark .rate-context { color: var(--gold); }

/* BEST highlight */
tr.best { background: linear-gradient(90deg, var(--gold-soft) 0%, transparent 60%); }
.theme-dark tr.best { background: linear-gradient(90deg, oklch(0.25 0.06 80) 0%, transparent 60%); }
tr.best:hover { background: linear-gradient(90deg, var(--gold-soft) 0%, var(--cream-2) 60%); }
.best-marker {
  display: inline-block;
  background: var(--gold);
  color: var(--navy);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 2px 6px;
  border-radius: 2px;
  margin-left: 8px;
  vertical-align: middle;
  font-weight: 600;
}

.rate-section-row td {
  padding: 13px 18px 10px !important;
  background: var(--cream-1);
  border-top: 1px solid var(--cream-3);
  border-bottom: 1px solid var(--cream-3);
  color: var(--navy);
  text-align: left !important;
}
.rate-section-row strong,
.rate-section-mobile strong {
  display: block;
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 600;
}
.rate-section-row span,
.rate-section-mobile span {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.stale-rate-marker {
  display: inline-flex;
  margin-left: 6px;
  padding: 2px 5px;
  border: 1px solid var(--cream-3);
  border-radius: 3px;
  background: var(--cream-1);
  color: var(--muted);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.rate-section-mobile {
  padding: 10px 2px 2px;
}
.rate-period-row td {
  padding: 8px 18px !important;
  background: color-mix(in oklch, var(--cream-1) 70%, var(--paper) 30%);
  color: var(--muted);
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.rate-period-mobile {
  margin: 10px 2px -2px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.search-summary {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 13px;
}
.clear-filters {
  margin-left: 10px;
  border: 0;
  background: transparent;
  color: var(--navy-3);
  font: 600 12px var(--mono);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.ranking-method {
  margin: -4px 0 14px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}
.matrix-toggle {
  margin: 10px 0 8px;
  padding: 9px 12px;
  border: 1px solid var(--cream-3);
  border-radius: 5px;
  background: var(--paper);
  color: var(--navy);
  font: 600 12px var(--mono);
  cursor: pointer;
}
.mobile-nav-menu { display: none; position: relative; }
.mobile-nav-menu > summary {
  list-style: none;
  min-height: 38px;
  padding: 9px 11px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 6px;
  color: var(--cream);
  font: 600 12px var(--mono);
  cursor: pointer;
}
.mobile-nav-menu > summary::-webkit-details-marker { display: none; }
.mobile-nav-panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 50;
  width: 220px;
  padding: 8px;
  border: 1px solid var(--cream-3);
  border-radius: 8px;
  background: var(--paper);
  box-shadow: 0 18px 45px -22px rgba(0,0,0,.55);
}
.mobile-nav-panel button,
.mobile-nav-panel a {
  display: block;
  width: 100%;
  padding: 11px 10px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: var(--ink);
  text-align: left;
  text-decoration: none;
}
.mobile-nav-panel button:hover,
.mobile-nav-panel a:hover { background: var(--cream-1); }

@media (max-width: 700px) {
  .desktop-nav-link { display: none !important; }
  .mobile-nav-menu { display: block; }
  .topbar-inner { gap: 12px; }
  .nav { gap: 8px !important; }
  .hero { padding-top: 22px; }
  .hero h1 { font-size: clamp(31px, 10vw, 42px); }
  .hero-badge { font-size: 12px; letter-spacing: .12em; }
  .hero-meta { gap: 8px 14px; }
  .drawer-section:has(.matrix)::after {
    content: "Desliza horizontalmente para ver todos los plazos \2192";
    display: block;
    margin-top: 7px;
    color: var(--muted);
    font: 12px var(--mono);
  }
}

/* RATING badge */
.rating {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
}
.rating-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--good);
  flex-shrink: 0;
}
.rating-aaa .rating-dot, .rating-aa .rating-dot { background: var(--good); }
.rating-a .rating-dot { background: var(--warn); }
.rating-b .rating-dot { background: var(--bad); }

/* COSEDE */
.cosede {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-family: var(--mono);
  letter-spacing: 0.04em;
}
.cosede svg { width: 13px; height: 13px; flex-shrink: 0; color: var(--good); }

/* ASSETS */
.assets {
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  white-space: nowrap;
}
.assets-sub {
  font-size: 12px;
  color: oklch(0.5 0.01 50);
  font-family: var(--mono);
  letter-spacing: 0.04em;
  margin-top: 2px;
}
.theme-dark .assets-sub { color: oklch(0.65 0.01 50); }

/* PAY FREQ */
.pay-freq {
  display: flex;
  gap: 3px;
}
.pay-pill {
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: none;
  white-space: nowrap;
  background: var(--cream-2);
  color: oklch(0.45 0.01 50);
  padding: 3px 6px;
  border-radius: 2px;
}
.theme-dark .pay-pill { background: var(--cream-3); color: oklch(0.7 0.01 50); }

/* ESTIMATED MARK */
.est-mark {
  display: inline-block;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--warn);
  border: 1px solid var(--warn);
  padding: 1px 4px;
  border-radius: 2px;
  margin-left: 6px;
  vertical-align: middle;
}

/* CHEVRON */
.row-chevron {
  color: oklch(0.6 0.01 50);
  width: 14px;
  height: 14px;
}

/* DRAWER */
.drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(10, 20, 34, 0.55);
  z-index: 100;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s;
  backdrop-filter: blur(2px);
}
.drawer-backdrop.open { opacity: 1; pointer-events: auto; }
.drawer {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  width: min(620px, 100vw);
  background: var(--cream);
  z-index: 101;
  box-shadow: -24px 0 60px -20px rgba(0,0,0,0.3);
  transform: translateX(100%);
  transition: transform 0.3s cubic-bezier(0.32, 0.72, 0, 1);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}
.drawer.open { transform: translateX(0); }
.drawer-head {
  background: var(--navy);
  color: var(--cream);
  padding: 22px 28px 24px;
  position: sticky;
  top: 0;
  z-index: 1;
}
.drawer-close {
  position: absolute;
  top: 16px;
  right: 16px;
  background: transparent;
  border: 1px solid rgba(247,245,240,0.2);
  color: var(--cream);
  width: 32px;
  height: 32px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
}
.drawer-close:hover { background: rgba(247,245,240,0.1); }

.drawer-eyebrow {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 8px;
}
.drawer-title {
  font-family: var(--display);
  font-size: 30px;
  line-height: 1.1;
  font-weight: 500;
  margin: 0;
  letter-spacing: -0.01em;
  text-wrap: balance;
}
.drawer-meta {
  margin-top: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  font-size: 12px;
  color: rgba(247,245,240,0.7);
  font-family: var(--mono);
  letter-spacing: 0.04em;
}
.drawer-meta b { color: var(--cream); font-weight: 500; }

.drawer-body { padding: 24px 28px 60px; }
.drawer-section { margin-bottom: 28px; }
.drawer-section h3 {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: oklch(0.5 0.01 50);
  margin: 0 0 12px;
  font-weight: 500;
}
.theme-dark .drawer-section h3 { color: oklch(0.65 0.01 50); }
.drawer-section p {
  margin: 0 0 8px;
  color: var(--ink);
  font-size: 14px;
  line-height: 1.55;
}

/* KEY-VALUE */
.kv {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 24px;
}
.kv .k {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: oklch(0.5 0.01 50);
  margin-bottom: 3px;
}
.theme-dark .kv .k { color: oklch(0.65 0.01 50); }
.kv .v {
  font-size: 14px;
  color: var(--ink);
  font-weight: 500;
}

.drawer-rate-card {
  display: grid;
  gap: 6px;
  align-items: start;
  margin-top: 2px;
}
.drawer-rate-main {
  display: inline-flex;
  align-items: flex-start;
  gap: 3px;
  color: var(--ink);
  line-height: 0.92;
}
.drawer-rate-number {
  font-family: var(--display);
  font-size: 56px;
  font-weight: 500;
  letter-spacing: 0;
}
.drawer-rate-percent {
  font-family: var(--display);
  font-size: 24px;
  line-height: 1;
  color: var(--gold-2);
  padding-top: 8px;
}
.drawer-rate-context {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: oklch(0.5 0.01 50);
}
.drawer-alt-rate {
  width: fit-content;
  margin-top: 2px;
  padding: 4px 7px;
  border: 1px solid var(--cream-3);
  background: var(--cream-2);
  border-radius: 4px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: oklch(0.42 0.01 50);
}
.drawer-alt-rate b { color: var(--ink); font-weight: 600; }
.drawer-rate-earnings {
  font-size: 14.5px;
  line-height: 1.35;
  color: var(--ink);
}
.rate-source-note {
  margin: -4px 0 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: oklch(0.48 0.01 50);
  line-height: 1.45;
}
.mobile .drawer-rate-number { font-size: 48px; }
.mobile .drawer-rate-percent { font-size: 21px; padding-top: 7px; }
/* RATE MATRIX */
.matrix {
  border: 1px solid var(--cream-3);
  border-radius: var(--radius);
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  touch-action: pan-x pan-y;
  background: var(--paper);
}
.matrix table { width: max-content; min-width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; font-size: 13px; }
.matrix th, .matrix td { padding: 8px 12px; text-align: right; }
.matrix th {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: oklch(0.5 0.01 50);
  background: var(--cream-2);
  font-weight: 500;
  border-bottom: 1px solid var(--cream-3);
}
.theme-dark .matrix th { color: oklch(0.65 0.01 50); }
.matrix .matrix-corner {
  position: relative;
  width: 126px;
  min-width: 126px;
  height: 58px;
  padding: 0;
  text-align: left;
  overflow: hidden;
  background: linear-gradient(to top right, transparent calc(50% - 0.5px), var(--cream-3) 50%, transparent calc(50% + 0.5px)), var(--cream-2);
}
.matrix-corner-days,
.matrix-corner-amount {
  position: absolute;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: oklch(0.5 0.01 50);
  white-space: nowrap;
}
.matrix-corner-days { top: 10px; right: 12px; color: var(--gold-2); }
.matrix-corner-amount { left: 12px; bottom: 10px; }
.theme-dark .matrix-corner-days,
.theme-dark .matrix-corner-amount { color: oklch(0.65 0.01 50); }
.theme-dark .matrix-corner-days { color: var(--gold-2); }
.matrix th:first-child, .matrix td:first-child { text-align: left; font-family: var(--mono); font-size: 12px; color: oklch(0.5 0.01 50); white-space: nowrap; min-width: 112px; }
.theme-dark .matrix td:first-child { color: oklch(0.65 0.01 50); }
.matrix tbody tr { border-top: 1px solid var(--cream-3); }
.matrix tbody tr:first-child { border-top: none; }
.matrix .best-cell { background: var(--gold-soft); color: var(--ink); font-weight: 600; }
.matrix-rate-stack { display: grid; gap: 3px; justify-items: end; min-width: 76px; }
.matrix-rate-line { display: grid; grid-template-columns: auto auto; gap: 6px; align-items: baseline; justify-content: end; white-space: nowrap; }
.matrix-rate-value { font-weight: 600; }
.matrix-rate-channel { font-family: var(--mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: oklch(0.48 0.02 70); }
.matrix-rate-line.presencial .matrix-rate-value { font-weight: 500; color: oklch(0.42 0.01 50); }
.matrix-rate-line.presencial .matrix-rate-channel { color: oklch(0.54 0.01 50); }
.theme-dark .matrix .best-cell { background: oklch(0.30 0.08 80); color: var(--ink); }
@media (max-width: 700px) {
  .drawer-body { padding-left: 18px; padding-right: 18px; }
  .matrix { margin-left: -2px; margin-right: -2px; }
  .matrix table { min-width: 760px; }
  .matrix th, .matrix td { padding: 10px 14px; }
}

/* COSEDE EXPLAINER */
.cosede-card {
  background: var(--good-soft);
  border-left: 3px solid var(--good);
  padding: 14px 16px;
  border-radius: 2px;
  font-size: 13.5px;
}
.cosede-card b { color: var(--good); }

/* DISCLAIMER */
.disclaimer {
  font-size: 12px;
  color: oklch(0.5 0.01 50);
  line-height: 1.5;
  border-top: 1px solid var(--cream-3);
  padding-top: 16px;
  margin-top: 8px;
}
.theme-dark .disclaimer { color: oklch(0.65 0.01 50); }

/* MOBILE CARD */
.cards { display: flex; flex-direction: column; gap: 12px; }
.card {
  background: var(--paper);
  border: 1px solid var(--cream-3);
  border-radius: var(--radius-lg);
  padding: 16px;
  cursor: pointer;
  position: relative;
}
.card.best { border-color: var(--gold); border-width: 1.5px; background: linear-gradient(135deg, var(--gold-soft) 0%, var(--paper) 68%); box-shadow: 0 10px 24px -20px var(--gold-2); } .theme-dark .card.best { background: linear-gradient(135deg, oklch(0.25 0.06 80) 0%, var(--paper) 68%); } .mobile-best-marker { display: inline-block; background: var(--gold); color: var(--navy); font-family: var(--mono); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; padding: 3px 6px; border-radius: 2px; margin-top: 6px; font-weight: 600; }
.card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.card-rate {
  font-family: var(--display);
  font-size: 28px;
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1;
}
.card-rate .pct { font-size: 14px; color: oklch(0.5 0.01 50); }
.theme-dark .card-rate .pct { color: oklch(0.65 0.01 50); }
.card-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 16px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--cream-3);
}
.card-kv .k {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: oklch(0.5 0.01 50);
  margin-bottom: 2px;
}
.theme-dark .card-kv .k { color: oklch(0.65 0.01 50); }
.card-kv .v { font-size: 13px; }

.card-expand {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--cream-3);
}


/* LEARN */
.learn-section {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 44px 28px 88px;
  border-top: 1px solid var(--cream-3);
}
.learn-eyebrow {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-2);
  margin-bottom: 10px;
}
.learn-head {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(280px, 0.7fr);
  gap: 32px;
  align-items: end;
  margin-bottom: 24px;
}
.learn-head h1 {
  margin: 0;
  font-family: var(--display);
  font-size: 34px;
  line-height: 1.08;
  font-weight: 500;
  color: var(--ink);
}
.learn-head p,
.learn-panel p,
.learn-note,
.faq-section p,
.learn-tax p {
  color: oklch(0.42 0.01 50);
  line-height: 1.55;
}
.learn-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.9fr 0.9fr;
  gap: 14px;
  margin-bottom: 16px;
}
.learn-grid.two { grid-template-columns: 1fr 1fr; }
.learn-panel,
.learn-table-wrap,
.learn-tax,
.faq-section,
.learn-sources {
  background: var(--paper);
  border: 1px solid var(--cream-3);
  border-radius: var(--radius-lg);
  padding: 18px;
}
.learn-panel h3, .about-page .learn-panel h2,
.learn-table-head h3,
.learn-tax h3,
.faq-section h3,
.learn-sources h3, .about-page .learn-sources h2 {
  margin: 0 0 8px;
  font-family: var(--display);
  font-size: 22px;
  font-weight: 500;
  color: var(--ink);
}
.learn-panel p { margin: 0 0 8px; font-size: 14px; }
.learn-panel p:last-child { margin-bottom: 0; }
.about-founder {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  gap: 20px;
  align-items: center;
}
.about-founder-photo {
  width: 170px;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--cream-2);
  border: 1px solid var(--cream-3);
}
.about-founder-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}
.about-founder-copy h3 { margin-top: 0; }
.mobile .about-founder {
  grid-template-columns: 1fr;
  align-items: start;
}
.mobile .about-founder-photo {
  width: min(180px, 58vw);
}

.learn-table-wrap { margin: 16px 0; overflow-x: auto; }
.learn-table-head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: end;
  margin-bottom: 12px;
}
.learn-table-head p { margin: 0; color: oklch(0.5 0.01 50); font-size: 13px; }
.learn-table {
  width: 100%;
  min-width: 650px;
  border-collapse: collapse;
  font-size: 13.5px;
}
.learn-table th {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-align: left;
  color: oklch(0.5 0.01 50);
  background: var(--cream-2);
}
.learn-table th,
.learn-table td {
  padding: 11px 12px;
  border-top: 1px solid var(--cream-3);
  vertical-align: top;
}
.learn-table tbody tr:first-child td { border-top: none; }
.learn-table td:first-child { font-weight: 600; color: var(--ink); }
.coverage-table td:last-child {
  font-family: var(--mono);
  color: var(--ink);
  white-space: nowrap;
}
.learn-note { margin: 12px 0 0; font-size: 12.5px; }
.rate-sources-guide { margin: 16px 0; }
.rate-sources-guide ol {
  margin: 10px 0 0 20px;
  padding: 0;
  color: oklch(0.42 0.01 50);
  line-height: 1.55;
  font-size: 13.5px;
}
.rate-sources-guide li { margin: 6px 0; }
.learn-tax {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 18px;
  align-items: start;
  margin: 16px 0;
}
.learn-tax .learn-note { grid-column: 1 / -1; }
.tax-example {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px 14px;
  padding: 14px;
  border: 1px solid var(--cream-3);
  background: var(--cream-2);
  border-radius: var(--radius);
  font-family: var(--mono);
  font-size: 12px;
}
.tax-example strong { text-align: right; color: var(--ink); }
.faq-section { margin: 16px 0; }
.faq-section details {
  border-top: 1px solid var(--cream-3);
  padding: 12px 0;
}
.faq-section details:first-of-type { border-top: none; }
.faq-section summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--ink);
}
.faq-section p { margin: 8px 0 0; font-size: 13.5px; }
.learn-sources {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.learn-sources h3, .about-page .learn-sources h2 { width: 100%; margin-bottom: 2px; }
.learn-sources a {
  color: var(--navy);
  border: 1px solid var(--cream-3);
  background: var(--cream-2);
  padding: 7px 9px;
  border-radius: var(--radius);
  text-decoration: none;
  font-size: 12px;
}
.learn-sources a:hover { border-color: var(--gold-2); }
.mobile .learn-section { padding: 28px 16px 60px; }
.mobile .learn-head,
.mobile .learn-grid,
.mobile .learn-grid.two,
.mobile .learn-tax { grid-template-columns: 1fr; }
.mobile .learn-head h1 { font-size: 27px; }
.mobile .learn-table { min-width: 600px; }
/* HELP / FOOTER strip */
.trust-strip {
  margin-top: 32px;
  padding: 24px 0;
  border-top: 1px solid var(--cream-3);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.trust-item h4 {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: oklch(0.5 0.01 50);
  margin: 0 0 6px;
  font-weight: 500;
}
.theme-dark .trust-item h4 { color: oklch(0.65 0.01 50); }
.trust-item p {
  margin: 0;
  font-size: 13px;
  color: var(--ink);
  line-height: 1.45;
}
.trust-item .big {
  font-family: var(--display);
  font-size: 22px;
  font-weight: 500;
  letter-spacing: -0.01em;
  margin-bottom: 2px;
}

/* VIEWPORT TOGGLE BUTTON */
.viewport-toggle {
  display: inline-flex;
  background: var(--paper);
  border: 1px solid var(--cream-3);
  border-radius: var(--radius);
  overflow: hidden;
}
.viewport-toggle button {
  background: transparent;
  border: none;
  width: 32px;
  height: 32px;
  cursor: pointer;
  color: oklch(0.5 0.01 50);
  display: flex;
  align-items: center;
  justify-content: center;
}
.viewport-toggle button.active {
  background: var(--navy);
  color: var(--cream);
}
.theme-toggle {
  background: var(--paper);
  border: 1px solid var(--cream-3);
  border-radius: var(--radius);
  width: 32px;
  height: 32px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: oklch(0.5 0.01 50);
}
.theme-toggle:hover { color: var(--ink); }

/* MOBILE FRAME */
.mobile-frame-wrap {
  background: var(--cream-2);
  padding: 36px 0 60px;
  min-height: 100vh;
  display: flex;
  justify-content: center;
}
.mobile-canvas {
  width: 390px;
  background: var(--cream);
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 30px 60px -30px rgba(0,0,0,0.3);
  border: 8px solid #1a1a1a;
}

/* MOBILE ADAPTATIONS */
.mobile .topbar-inner { padding: 12px 16px; }
.mobile .topbar-inner { align-items: flex-start; gap: 10px; } .mobile .nav { display: flex; flex-wrap: wrap; gap: 12px; font-size: 12px; line-height: 1.2; justify-content: flex-end; width: 100%; text-align: right; } .mobile .nav a, .mobile .nav button { padding-bottom: 2px; }
.mobile .hero { padding: 22px 16px 18px; }
.mobile .hero h1 { font-size: 28px; }
.mobile .hero p { font-size: 14px; margin-bottom: 18px; }
.mobile .hero-form { flex-direction: column; padding: 4px; }
.mobile .hero-field { border-right: none; border-bottom: 1px solid var(--cream-3); padding: 10px 14px; }
.mobile .hero-field:last-of-type { border-bottom: none; }
.mobile .hero-cta { padding: 14px; margin-top: 4px; }
.mobile .hero-meta { flex-direction: column; gap: 6px; font-size: 12px; }
.mobile main { padding: 14px 16px 60px; }
.mobile .section-head { flex-direction: column; align-items: flex-start; }
.mobile .section-title { font-size: 22px; }
.mobile .filters { grid-template-columns: 1fr; padding: 14px; gap: 14px; }
.mobile .trust-strip { grid-template-columns: 1fr 1fr; gap: 16px; }
.mobile .drawer { width: 100%; }
.mobile .results-count { flex-direction: column; align-items: flex-start; gap: 8px; }

/* small phone tweaks for ios frame */
.mobile .mobile-canvas-inner { font-size: 13px; }

/* FOCUS visibility */
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}

/* LANGUAGE SWITCHER */
.language-switcher {
  appearance: none;
  background: transparent;
  border: 1px solid rgba(247,245,240,0.28);
  border-radius: 999px;
  color: var(--cream);
  cursor: pointer;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1;
  padding: 7px 9px;
  text-transform: uppercase;
  white-space: nowrap;
}
.language-switcher:hover { background: rgba(247,245,240,0.09); }
.mobile .language-switcher { padding: 7px; font-size: 12px; }

/* Tweaks panel above everything */
[data-tweaks-root] { z-index: 9999; }

/* HERO badge */
.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(247,245,240,0.06);
  border: 1px solid rgba(247,245,240,0.12);
  padding: 6px 12px;
  border-radius: 100px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(247,245,240,0.7);
  margin-bottom: 22px;
}
.hero-badge .live-dot { margin: 0; }

/* select native */
select {
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat;
  background-position: right 0 center;
  padding-right: 18px;
}
.hero-field select { background-position: right 0 center; }

/* anim fade in */
.fade-in { animation: fadein 0.3s ease-out; }
@keyframes fadein { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

/* Production mobile nav refinement */
@media (max-width: 760px) {
  .mobile .topbar-inner {
    align-items: center !important;
    gap: 8px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .mobile .brand {
    flex: 0 0 auto !important;
    font-size: 19px !important;
  }

  .mobile .nav {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    gap: 8px !important;
    align-items: center !important;
    justify-content: flex-end !important;
  }

  .mobile .nav button:not(.alert-nav-btn) {
    font-size: 12px !important;
  }

  .mobile .alert-nav-btn {
    width: 72px !important;
    min-height: 48px !important;
    padding: 6px 7px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    white-space: normal !important;
    text-align: center !important;
    line-height: 1.05 !important;
    font-size: 0 !important;
  }

  .mobile .alert-nav-btn::before {
    content: "Mantente\A informado";
    white-space: pre-line;
    font-size: 12px;
    font-weight: 700;
  }
}

@media (max-width: 760px) {
  .product-tab-description .bce-info-popover {
    right: 0;
    left: auto;
    transform: translateY(4px);
  }

  .product-tab-description .bce-info-tip:hover .bce-info-popover,
  .product-tab-description .bce-info-tip:focus .bce-info-popover {
    transform: translateY(0);
  }

  .bce-reference-note .bce-info-popover {
    right: auto;
    left: 0;
    transform: translateY(4px);
  }

  .bce-reference-note .bce-info-tip:hover .bce-info-popover,
  .bce-reference-note .bce-info-tip:focus .bce-info-popover {
    transform: translateY(0);
  }

  /* Tooltips are removed from layout while closed. This prevents an invisible
     tooltip from widening the document on narrow phones. When opened, the
     explanation behaves like a small bottom sheet and remains fully legible. */
  .bce-info-popover {
    display: none;
    position: fixed;
    inset: auto 12px 16px 12px;
    width: auto;
    max-width: none;
    transform: none !important;
  }

  .bce-info-tip:hover .bce-info-popover,
  .bce-info-tip:focus .bce-info-popover,
  .bce-info-tip:focus-within .bce-info-popover {
    display: block;
    transform: none !important;
  }
}

@media (max-width: 360px) {
  .sort-toggle {
    flex-wrap: wrap;
    overflow-x: visible;
  }

  .sort-toggle button {
    flex: 1 1 calc(50% - 4px);
    min-width: 0;
    white-space: normal;
  }

  .bce-market-card .card-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .bce-mobile-rate {
    text-align: left;
  }
}

/* Final specificity guard for the compact BCE hero form. */
.hero .hero-form.bce-search-form {
  max-width: 760px;
  grid-template-columns: minmax(0, 1fr) 220px;
}

@media (max-width: 760px) {
  .hero .hero-form.bce-search-form {
    max-width: none;
    grid-template-columns: 1fr;
  }
}

.hero-form.bce-search-form {
  max-width: 760px;
  grid-template-columns: minmax(0, 1fr) 220px;
}

@media (max-width: 760px) {
  .hero-form.bce-search-form {
    max-width: none;
    grid-template-columns: 1fr;
  }
}

/* ================================================================
   BCE MARKET RATES COMPARATOR
   ================================================================ */

.product-switch-shell {
  width: min(var(--maxw), calc(100% - 32px));
  margin: 28px auto 0;
  padding: 5px;
  border: 1px solid #d8e0e9;
  border-radius: 14px;
  background: #edf4fb;
  box-shadow: 0 18px 48px -42px rgba(14, 27, 44, .42);
}

.product-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
}

.product-tabs button {
  min-height: 72px;
  padding: 13px 18px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #4a5c71;
  text-align: left;
  cursor: pointer;
  transition: background .18s ease, color .18s ease, box-shadow .18s ease;
}

.product-tabs button:hover { background: rgba(255, 255, 255, .62); }

.product-tabs button.active {
  background: #fff;
  color: var(--navy);
  box-shadow: 0 8px 24px -20px rgba(14, 27, 44, .7);
}

.product-tabs button span {
  display: block;
  font-size: 15px;
  line-height: 1.25;
  font-weight: 750;
}

.product-tabs button small {
  display: block;
  margin-top: 4px;
  color: #52657a;
  font-size: 12px;
  letter-spacing: .035em;
}

.product-tab-description {
  display: flex;
  align-items: center;
  gap: 8px;
  width: calc(50% - 2.5px);
  box-sizing: border-box;
  padding: 10px 13px 8px;
  color: #4f6073;
  transition: margin-left .18s ease;
}

.product-tab-description.is-bce { margin-left: 0; }
.product-tab-description.is-published { margin-left: calc(50% + 2.5px); }

.product-tab-description p {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.45;
}

.bce-hero { margin-top: 24px; }

.bce-hero .hero-inner { min-height: 0; }

.bce-hero .hero-inner::after {
  content: 'BCE';
  font-size: 42px;
  letter-spacing: -.04em;
}

.bce-search-form {
  max-width: 760px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.bce-search-form .hero-field { min-width: 0; }

.bce-search-form .hero-cta { min-width: 220px; }

.bce-results { scroll-margin-top: 24px; }

.bce-week-label {
  margin: 5px 0 0;
  color: #53657a;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .045em;
}

.bce-reference-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: -4px 0 18px;
  padding: 13px 15px;
  border: 1px solid #cfe0f4;
  border-radius: 9px;
  background: #f2f7fd;
  color: #36526f;
}

.bce-reference-note p {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.55;
}

.bce-info-tip {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border-radius: 999px;
  color: #0b63ce;
  font-family: var(--mono);
  font-size: 13px;
  line-height: 1;
  cursor: help;
  outline: none;
}

.bce-info-tip:focus-visible { box-shadow: 0 0 0 3px rgba(23, 105, 255, .2); }

.bce-info-popover {
  position: absolute;
  left: 50%;
  top: calc(100% + 9px);
  bottom: auto;
  z-index: 70;
  width: min(320px, 76vw);
  padding: 11px 12px;
  border-radius: 8px;
  background: var(--navy);
  color: #fff;
  box-shadow: 0 16px 36px -18px rgba(14, 27, 44, .9);
  font-family: Inter, sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0;
  text-transform: none;
  white-space: normal;
  text-align: left;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -4px);
  transition: opacity .15s ease, transform .15s ease;
}

.bce-info-tip:hover .bce-info-popover,
.bce-info-tip:focus .bce-info-popover {
  opacity: 1;
  transform: translate(-50%, 0);
}

.bce-info-tip:hover,
.bce-info-tip:focus,
.bce-info-tip:focus-within { z-index: 90; }

.hero-badge .live-dot,
.hero-meta .live-dot,
.bce-week-label .live-dot {
  animation: pulse 2s ease-in-out infinite;
}

/* Préstamos follows the same visual system as the BCE investment comparator. */
.credit-hero {
  display: block;
  margin-top: 0;
  padding: 46px 28px 68px;
  border: 0;
  border-radius: 0;
  overflow: visible;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .16), transparent 46%),
    #deedfc;
}

.credit-hero .hero-inner {
  display: block;
  max-width: var(--maxw);
  min-height: 0;
}

.credit-hero .hero-badge { margin-bottom: 52px; }
.credit-hero h1 { max-width: 950px; }
.credit-hero > .hero-inner > p { max-width: 760px; }

.credit-hero-form {
  max-width: none;
  grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(190px, auto);
}

.credit-hero-form.has-subtype {
  grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(190px, auto);
}

.credit-hero-form .hero-field { min-width: 0; }
.credit-hero-form .hero-cta { min-width: 190px; }
.credit-hero-meta { max-width: none; }

.credit-advanced {
  margin: 0 0 32px;
  padding: 0 4px 26px;
  border-bottom: 1px solid #dfe3e8;
}

.credit-advanced > summary {
  margin-bottom: 15px;
  color: var(--navy);
}

.credit-advanced .filters {
  grid-template-columns: repeat(auto-fit, minmax(185px, 1fr));
  margin-bottom: 10px;
}

.credit-advanced-note {
  margin: 0 4px;
  color: #60748c;
  font-size: 12px;
  line-height: 1.5;
}

.credit-clear-filters {
  align-self: end;
  min-height: 48px;
  padding: 10px 14px;
  border: 1px solid #aebed0;
  border-radius: 12px;
  color: #184774;
  background: #fff;
  font: 700 12px/1.2 inherit;
  cursor: pointer;
}

.credit-clear-filters:hover {
  border-color: var(--accent);
  color: var(--accent-dark);
}

main.credit-results {
  display: block;
  max-width: var(--maxw);
  margin: 64px auto 96px;
  padding: 34px 24px 56px;
  border: 1px solid #e1e4e8;
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 12px 36px -34px rgba(9, 35, 79, .35);
  scroll-margin-top: 24px;
}

.credit-results-head {
  align-items: end;
  margin: 0 0 22px;
  padding: 0 4px 23px;
  border-bottom: 1px solid #dfe3e8;
}

.credit-results-head .section-title {
  margin: 0;
  color: var(--navy);
  font-size: 32px;
  font-weight: 600;
  letter-spacing: -.035em;
}

.credit-results-head .search-summary {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 14px;
}

.credit-reference-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: -2px 0 18px;
  padding: 13px 15px;
  border: 1px solid #cfe0f4;
  border-radius: 9px;
  color: #36526f;
  background: #f2f7fd;
}

.credit-reference-note p {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.55;
}

.credit-reference-note strong { color: #173f70; }

.credit-reference-icon {
  display: inline-grid;
  flex: 0 0 18px;
  place-items: center;
  width: 18px;
  height: 18px;
  border: 1px solid #0b63ce;
  border-radius: 50%;
  color: #0b63ce;
  font: 700 12px/1 var(--mono);
}

.credit-result-main {
  grid-template-columns: 52px minmax(225px, 1.35fr) minmax(125px, .65fr) minmax(85px, .42fr) minmax(120px, .62fr) minmax(125px, .65fr) 94px;
  gap: 14px;
}

.credit-result-stat strong {
  line-height: 1.25;
}

.credit-result-detail {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.credit-result-detail .credit-detail-context {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 22px;
  background: #f6f9fd;
}

.credit-result-detail .credit-detail-context p {
  grid-column: auto;
  margin: 0;
}

.credit-result-detail .credit-detail-context b { color: #173f70; }
.credit-result-detail .credit-detail-disclaimer { grid-column: 1 / -1; }

@media (max-width: 1180px) {
  .credit-hero-form,
  .credit-hero-form.has-subtype {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .credit-hero-form .hero-cta {
    grid-column: 1 / -1;
    min-height: 58px;
  }

  .credit-result-main {
    grid-template-columns: 50px minmax(210px, 1.25fr) minmax(120px, .65fr) minmax(85px, .42fr) minmax(115px, .6fr) 88px;
  }

  .credit-average-stat { display: none; }
}

@media (max-width: 940px) {
  .credit-result-main {
    grid-template-columns: 50px minmax(0, 1fr) 125px 90px;
  }

  .credit-result-main .credit-result-stat { display: none; }
}

@media (max-width: 760px) {
  .credit-hero {
    margin-top: 0;
    padding: 30px 15px 38px;
  }

  .credit-hero .hero-badge { margin-bottom: 25px; }

  .credit-hero-form,
  .credit-hero-form.has-subtype {
    grid-template-columns: 1fr;
  }

  .credit-hero-form .hero-cta { grid-column: auto; }

  main.credit-results {
    margin: 26px 10px 60px;
    padding: 24px 12px 38px;
    border-radius: 20px;
  }

  .credit-results-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 18px;
    padding-inline: 4px;
  }

  .credit-sort { width: 100%; }

  .credit-advanced {
    margin-bottom: 24px;
    padding-inline: 4px;
  }

  .credit-advanced .filters { grid-template-columns: 1fr; }

  .credit-result-main {
    grid-template-columns: 42px minmax(0, 1fr) auto;
    gap: 10px;
    padding: 17px 4px 17px 8px;
  }

  .credit-result-rate { grid-column: 2; }
  .credit-detail-toggle { grid-column: 3; grid-row: 1 / span 2; align-self: stretch; width: 68px; }

  .credit-result-detail,
  .credit-result-detail .credit-detail-context { grid-template-columns: 1fr; }

  .credit-result-detail { padding: 0 8px 18px; }
}

/* Préstamos BCE */
.credit-page {
  min-height: calc(100vh - 88px);
  padding: 34px max(24px, calc((100vw - 1540px) / 2)) 72px;
  color: var(--navy);
  background: #f7f9fc;
}

.credit-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(300px, .75fr);
  gap: 36px;
  align-items: stretch;
  padding: 46px 50px;
  border: 1px solid #cfe0f2;
  border-radius: 24px;
  background: #deedfc;
  overflow: hidden;
}

.credit-hero-copy { max-width: 830px; }

.credit-eyebrow {
  margin-bottom: 15px;
  color: #0b6edc;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.credit-hero h1 {
  max-width: 760px;
  margin: 0;
  color: #072a60;
  font-size: clamp(39px, 4.5vw, 67px);
  font-weight: 750;
  letter-spacing: -.05em;
  line-height: .98;
}

.credit-hero-copy > p {
  max-width: 760px;
  margin: 22px 0 0;
  color: #29496f;
  font-size: 18px;
  line-height: 1.55;
}

.credit-explainer {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  margin-top: 26px;
  padding: 16px 18px;
  border: 1px solid rgba(12, 85, 169, .18);
  border-radius: 13px;
  background: rgba(255, 255, 255, .7);
  color: #375571;
  font-size: 13px;
  line-height: 1.55;
}

.credit-explainer strong { color: #0b5fb7; }

.credit-hero-stats {
  display: grid;
  align-content: center;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 16px 45px rgba(21, 63, 111, .1);
}

.credit-hero-stats > div {
  display: grid;
  gap: 5px;
  padding: 23px 26px;
  border-bottom: 1px solid #e5edf6;
}

.credit-hero-stats > div:last-child { border-bottom: 0; }
.credit-hero-stats strong { color: #082e68; font-size: 25px; line-height: 1.1; }
.credit-hero-stats span { color: #657b93; font-size: 12px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }

.credit-search-panel,
.credit-results {
  margin-top: 22px;
  border: 1px solid #d9e3ef;
  border-radius: 18px;
  background: #fff;
}

.credit-search-panel { padding: 26px 28px 28px; }
.credit-search-heading { display: flex; justify-content: space-between; gap: 20px; align-items: end; margin-bottom: 20px; }
.credit-search-heading > span { color: #082e68; font-size: 24px; font-weight: 750; letter-spacing: -.02em; }
.credit-search-heading p { margin: 0; color: #65778c; font-size: 13px; }

.credit-primary-filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.credit-primary-filters label {
  display: grid;
  gap: 8px;
  min-width: 0;
  color: #445b76;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.credit-primary-filters select,
.credit-primary-filters input {
  width: 100%;
  min-width: 0;
  height: 50px;
  padding: 0 14px;
  border: 1px solid #b9c9db;
  border-radius: 10px;
  color: #092e62;
  background: #fff;
  font: 650 14px/1.2 inherit;
  text-transform: none;
  letter-spacing: 0;
  outline: none;
}

.credit-primary-filters select:focus,
.credit-primary-filters input:focus { border-color: #0b7ce8; box-shadow: 0 0 0 3px rgba(11, 124, 232, .13); }

.credit-primary-filters .credit-dependent-filter {
  position: relative;
  padding: 10px;
  margin: -10px;
  border-radius: 12px;
  background: #eef6ff;
}

.credit-primary-filters .credit-dependent-filter::before {
  content: 'Según el tipo elegido';
  position: absolute;
  right: 11px;
  top: 11px;
  color: #1671ca;
  font-size: 12px;
  letter-spacing: .04em;
}

.credit-results { padding: 28px; }
.credit-results-head { display: flex; justify-content: space-between; gap: 22px; align-items: end; }
.credit-results-head h2 { margin: 0; color: #082e68; font-size: 28px; letter-spacing: -.025em; }
.credit-results-head p { margin: 7px 0 0; color: #687b91; font-size: 12px; }

.credit-sort { display: flex; gap: 3px; padding: 4px; border-radius: 11px; background: #edf2f8; }
.credit-sort button {
  padding: 10px 14px;
  border: 0;
  border-radius: 8px;
  color: #5d7089;
  background: transparent;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .04em;
  text-transform: uppercase;
  cursor: pointer;
}
.credit-sort button.active { color: #082e68; background: #fff; box-shadow: 0 2px 8px rgba(11, 38, 75, .1); }

.credit-method-note {
  display: flex;
  gap: 10px;
  align-items: center;
  margin: 20px 0 4px;
  padding: 13px 15px;
  border: 1px solid #d8e5f2;
  border-radius: 11px;
  background: #f5f9fd;
}
.credit-method-note .live-dot { flex: 0 0 auto; animation: pulse 2s ease-in-out infinite; }
.credit-method-note div { display: grid; gap: 3px; }
.credit-method-note strong { color: #1a406e; font-size: 12px; }
.credit-method-note small { color: #6a7e93; font-size: 12px; }

.credit-result-list { margin-top: 14px; border-top: 1px solid #dce5ef; }
.credit-result-card { border-bottom: 1px solid #dce5ef; background: #fff; }
.credit-result-card.best { box-shadow: inset 4px 0 0 #1687ed; background: #f3f8ff; }
.credit-result-main {
  display: grid;
  grid-template-columns: 52px minmax(260px, 1.5fr) minmax(140px, .7fr) minmax(110px, .5fr) minmax(95px, .4fr) 94px;
  gap: 16px;
  align-items: center;
  min-height: 104px;
  padding: 18px 12px 18px 18px;
}

.credit-inst-mark {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  overflow: hidden;
  border-radius: 11px;
  color: #fff;
  background: #1582dd;
  font: 800 17px/1 inherit;
}
.credit-inst-mark.logo { border: 1px solid #d8e3ef; background: #fff; }
.credit-inst-mark img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }

.credit-result-inst { min-width: 0; }
.credit-result-inst > div { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.credit-result-inst strong { color: #092e62; font-size: 16px; line-height: 1.25; }
.credit-result-inst > div span { padding: 4px 7px; border-radius: 999px; color: #fff; background: #0864bb; font-size: 12px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.credit-result-inst small { display: block; margin-top: 7px; color: #647891; font-size: 12px; line-height: 1.45; text-transform: uppercase; }

.credit-result-rate,
.credit-result-stat { display: grid; gap: 5px; }
.credit-result-rate > span,
.credit-result-stat span { color: #52657a; font-size: 12px; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
.credit-result-rate strong { color: #092e62; font-size: 27px; letter-spacing: -.025em; }
.credit-result-rate strong::first-letter { letter-spacing: 0; }
.credit-result-stat strong { color: #183d6b; font-size: 15px; }
.credit-small-sample { color: #8a5b00; font-size: 12px; font-weight: 700; }

.credit-detail-toggle,
.credit-load-more {
  border: 1px solid #b8cce1;
  border-radius: 9px;
  color: #0a3469;
  background: #fff;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}
.credit-detail-toggle { min-height: 42px; padding: 8px 10px; }
.credit-detail-toggle:hover,
.credit-load-more:hover { border-color: #1687ed; color: #0b6edc; }

.credit-result-detail {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  padding: 0 18px 20px 86px;
}
.credit-result-detail > div { display: grid; gap: 6px; padding: 14px; border: 1px solid #dbe5ef; border-radius: 10px; background: #fff; }
.credit-result-detail span { color: #738499; font-size: 12px; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.credit-result-detail strong { color: #183d6b; font-size: 12.5px; line-height: 1.4; }
.credit-result-detail p { grid-column: 1 / -1; margin: 2px 0 0; color: #5f7288; font-size: 12px; line-height: 1.55; }

.credit-load-more { display: block; margin: 22px auto 2px; padding: 11px 18px; }
.credit-empty { margin-top: 18px; padding: 28px; border-radius: 12px; text-align: center; background: #f5f8fc; }
.credit-empty strong { color: #0c3569; }
.credit-empty p { margin: 7px 0 0; color: #6c7e92; font-size: 12px; }

.institution-profile-sources { grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); }
.institution-profile-credit-families { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.institution-profile-credit-families span { padding: 6px 8px; border-radius: 999px; color: #155b9e; background: #e9f4ff; font-size: 12px; font-weight: 750; }

@media (max-width: 1180px) {
  .credit-primary-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .credit-result-main { grid-template-columns: 50px minmax(230px, 1.4fr) minmax(130px, .7fr) minmax(95px, .45fr) 88px; }
  .credit-result-main .credit-result-stat:nth-of-type(4) { display: none; }
}

@media (max-width: 900px) {
  .credit-page { padding: 20px 16px 56px; }
  .credit-hero { grid-template-columns: 1fr; padding: 34px 28px; }
  .credit-hero-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .credit-hero-stats > div { border-bottom: 0; border-right: 1px solid #e5edf6; padding: 18px; }
  .credit-hero-stats > div:last-child { border-right: 0; }
  .credit-hero-stats strong { font-size: 18px; }
  .credit-results-head { align-items: flex-start; flex-direction: column; }
  .credit-primary-filters .credit-dependent-filter::before { display: none; }
  .credit-result-main { grid-template-columns: 50px minmax(0, 1fr) 130px 84px; }
  .credit-result-main .credit-result-stat { display: none; }
  .credit-result-detail { padding-left: 18px; }
}

@media (max-width: 620px) {
  .credit-page { padding: 12px 10px 44px; }
  .credit-hero { gap: 24px; padding: 28px 20px; border-radius: 18px; }
  .credit-hero h1 { font-size: 39px; }
  .credit-hero-copy > p { margin-top: 17px; font-size: 15px; }
  .credit-explainer { grid-template-columns: 1fr; margin-top: 20px; }
  .credit-hero-stats { grid-template-columns: 1fr; }
  .credit-hero-stats > div { grid-template-columns: auto 1fr; gap: 10px; align-items: baseline; border-right: 0; border-bottom: 1px solid #e5edf6; padding: 14px 18px; }
  .credit-hero-stats > div:last-child { border-bottom: 0; }
  .credit-search-panel,
  .credit-results { margin-top: 12px; border-radius: 15px; }
  .credit-search-panel,
  .credit-results { padding: 20px 14px; }
  .credit-search-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
  .credit-search-heading > span { font-size: 21px; }
  .credit-primary-filters { grid-template-columns: 1fr; gap: 13px; }
  .credit-primary-filters .credit-dependent-filter::before { display: none; }
  .credit-sort { width: 100%; overflow-x: auto; }
  .credit-sort button { flex: 1 0 auto; padding-inline: 10px; }
  .credit-method-note { align-items: flex-start; }
  .credit-result-main { grid-template-columns: 42px minmax(0, 1fr) auto; gap: 10px; min-height: 0; padding: 17px 4px 17px 8px; }
  .credit-inst-mark { width: 42px; height: 42px; font-size: 14px; }
  .credit-result-inst strong { font-size: 14px; }
  .credit-result-inst small { font-size: 12px; }
  .credit-result-rate { grid-column: 2; }
  .credit-result-rate strong { font-size: 25px; }
  .credit-detail-toggle { grid-column: 3; grid-row: 1 / span 2; align-self: stretch; width: 64px; padding: 6px; }
  .credit-result-detail { grid-template-columns: 1fr; padding: 0 8px 18px; }
  .credit-result-detail p { grid-column: auto; }
}

/* Institution directory */
.institution-directory-page {
  min-height: calc(100vh - 96px);
  background: #f7f9fc;
  color: var(--navy);
}

.institution-directory-hero {
  padding: 76px max(24px, calc((100vw - 1300px) / 2)) 48px;
  border-bottom: 1px solid #cbd9e8;
  background: #deedfc;
}

.institution-directory-eyebrow {
  margin-bottom: 15px;
  color: #1769ff;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.institution-directory-hero .institution-directory-title {
  max-width: 820px;
  margin: 0;
  color: var(--navy);
  font-family: Inter, sans-serif;
  font-size: clamp(40px, 5.2vw, 70px);
  font-weight: 650;
  letter-spacing: -.055em;
  line-height: .98;
}

.institution-directory-hero > p {
  max-width: 760px;
  margin: 22px 0 30px;
  color: #38516d;
  font-size: clamp(17px, 1.55vw, 21px);
  line-height: 1.55;
}

.institution-directory-search-shell {
  position: relative;
  display: flex;
  align-items: center;
  width: min(900px, 100%);
  min-height: 68px;
  border: 1px solid #b9cee5;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 24px 60px -38px rgba(4, 31, 70, .58);
}

.institution-directory-search-icon {
  display: grid;
  width: 64px;
  flex: 0 0 64px;
  place-items: center;
  color: #1769ff;
  font-size: 32px;
  line-height: 1;
}

.institution-directory-search-shell input {
  width: 100%;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--navy);
  font: 600 18px/1.35 Inter, sans-serif;
}

.institution-directory-search-shell input::placeholder { color: #778aa0; font-weight: 450; }
.institution-directory-search-shell input::-webkit-search-cancel-button {
  display: none;
  -webkit-appearance: none;
  appearance: none;
}

.institution-directory-clear {
  display: grid;
  width: 42px;
  height: 42px;
  margin-right: 12px;
  flex: 0 0 42px;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: #edf4fb;
  color: var(--navy);
  cursor: pointer;
  font-size: 25px;
}

.institution-directory-stats {
  display: flex;
  gap: 12px 26px;
  margin-top: 22px;
  flex-wrap: wrap;
  color: #587089;
  font-size: 13px;
}

.institution-directory-stats span { display: inline-flex; gap: 5px; }
.institution-directory-stats strong { color: var(--navy); }

.institution-directory-body,
.institution-profile {
  width: min(1300px, calc(100% - 48px));
  margin: 0 auto;
}

.institution-directory-body { padding: 46px 0 64px; }

.institution-directory-toolbar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 24px;
}

.institution-directory-toolbar h2 {
  margin: 0 0 7px;
  font: 650 clamp(26px, 3vw, 38px)/1.1 Inter, sans-serif;
  letter-spacing: -.035em;
}

.institution-directory-toolbar p { margin: 0; color: #687c91; font-size: 14px; }

.institution-directory-results {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.institution-directory-result {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 15px;
  min-height: 112px;
  padding: 18px;
  border: 1px solid #d7e1ec;
  border-radius: 14px;
  background: #fff;
  color: var(--navy);
  text-decoration: none;
  cursor: pointer;
  text-align: left;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.institution-directory-result:hover,
.institution-directory-result:focus-visible,
.institution-directory-result.selected {
  border-color: #8cbdf0;
  box-shadow: 0 18px 38px -30px rgba(10, 68, 140, .6);
  outline: none;
  transform: translateY(-1px);
}

.institution-directory-result.selected { background: #f2f7fd; }
.directory-mark { width: 52px !important; height: 52px !important; }

.institution-directory-result-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 6px;
}

.institution-directory-result-copy > strong {
  overflow: hidden;
  font: 700 16px/1.25 Inter, sans-serif;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.institution-directory-result-meta {
  overflow: hidden;
  color: #62768b;
  font: 500 12px/1.35 var(--mono);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.institution-directory-result-facts {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 8px;
  margin-top: 2px;
}

.institution-directory-result-facts > span {
  display: grid;
  min-width: 0;
  gap: 3px;
  padding: 8px 9px;
  border: 1px solid #e0e8f0;
  border-radius: 9px;
  background: #f8fbfe;
}

.institution-directory-result-facts small {
  color: #52657a;
  font: 700 12px/1.2 var(--mono);
  letter-spacing: .06em;
  text-transform: uppercase;
}

.institution-directory-result-facts strong {
  overflow: hidden;
  color: var(--navy);
  font: 700 12px/1.25 var(--sans);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.institution-directory-result-badges { display: flex; gap: 6px; flex-wrap: wrap; }

.institution-directory-result-badges small {
  padding: 4px 7px;
  border-radius: 999px;
  background: #f0f3f6;
  color: #64758a;
  font-size: 12px;
  font-weight: 650;
}

.institution-directory-result-badges small.available { background: #e7f3ff; color: #0964b5; }
.institution-directory-arrow { color: #1769ff; font-size: 20px; }
.institution-directory-more { margin: 18px 0 0; color: #687c91; font-size: 13px; text-align: center; }

.institution-directory-empty {
  margin-bottom: 18px;
  padding: 28px;
  border: 1px dashed #bdcad8;
  border-radius: 14px;
  background: #fff;
  text-align: center;
}

.institution-directory-empty strong { display: block; margin-bottom: 6px; font-size: 18px; }
.institution-directory-empty p { margin: 0; color: #687c91; }

.institution-profile {
  scroll-margin-top: 110px;
  margin-bottom: 76px;
  padding: 34px;
  border: 1px solid #cbd9e8;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 32px 70px -56px rgba(4, 31, 70, .65);
}

.institution-profile-heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
  padding-bottom: 28px;
  border-bottom: 1px solid #dbe4ed;
}

.profile-mark { width: 72px !important; height: 72px !important; font-size: 22px !important; }
.institution-profile-title { min-width: 0; }
.institution-profile-title h1 { margin: 5px 0 7px; font: 700 clamp(28px, 3vw, 42px)/1.05 Inter, sans-serif; letter-spacing: -.04em; }
.institution-profile-title p { margin: 0 0 5px; color: #50667c; font-size: 13px; line-height: 1.45; }
.institution-profile-title > span { color: #52657a; font: 500 12px/1.4 var(--mono); }
.institution-profile-tags { display: flex; align-items: center; gap: 8px; color: #64758a; font: 600 12px/1 var(--mono); text-transform: uppercase; }

.institution-profile-website {
  padding: 11px 14px;
  border: 1px solid #b9cce1;
  border-radius: 10px;
  color: var(--navy);
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}

.institution-profile-status { display: flex; gap: 8px; margin: 20px 0; flex-wrap: wrap; }
.institution-profile-status span { padding: 6px 9px; border-radius: 999px; background: #f0f3f6; color: #66778b; font-size: 12px; font-weight: 650; }
.institution-profile-status span.ok { background: #e7f3ff; color: #0964b5; }

.institution-profile-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 24px;
}

.institution-profile-metrics > div {
  display: flex;
  min-height: 122px;
  padding: 17px;
  border: 1px solid #d9e2eb;
  border-radius: 13px;
  background: #f8fafc;
  flex-direction: column;
}

.institution-profile-metrics span { color: #52657a; font: 600 12px/1.3 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.institution-profile-metrics strong { margin: 12px 0 8px; font: 700 18px/1.25 Inter, sans-serif; }
.institution-profile-metrics small { margin-top: auto; color: #52657a; font-size: 12px; line-height: 1.4; }
.institution-profile-metrics small b { color: #536a83; font-weight: 700; }

.institution-profile-sources { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 14px; }
.institution-profile-source-card { padding: 22px; border: 1px solid #d5e0eb; border-radius: 15px; background: #fff; }
.institution-profile-source-head { display: flex; align-items: end; justify-content: space-between; gap: 16px; }
.institution-profile-source-head span { color: #617489; font: 650 12px/1.3 var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.institution-profile-source-head strong { color: #1769ff; font: 700 29px/1 Inter, sans-serif; letter-spacing: -.03em; }
.institution-profile-source-card h3 { margin: 18px 0 8px; font: 700 17px/1.25 Inter, sans-serif; }
.institution-profile-source-card > p { min-height: 58px; margin: 0; color: #5d7085; font-size: 12.5px; line-height: 1.55; }
.institution-profile-source-meta { display: flex; gap: 8px 18px; margin-top: 15px; padding-top: 13px; border-top: 1px solid #e1e8ef; flex-wrap: wrap; color: #63768a; font-size: 12px; }
.institution-profile-source-card > button { margin-top: 17px; padding: 10px 13px; border: 0; border-radius: 9px; background: #1769ff; color: #fff; cursor: pointer; font-weight: 700; }

.institution-profile-bce-terms { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 16px; }
.institution-profile-bce-terms > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 12px; padding: 9px 10px; border-radius: 9px; background: #f3f7fb; }
.institution-profile-bce-terms span { color: #5f7388; font-size: 12px; }
.institution-profile-bce-terms strong { color: var(--navy); font-size: 12px; }
.institution-profile-bce-terms small { grid-column: 1 / -1; color: #8190a1; font-size: 12px; }
.institution-profile-disclaimer { margin: 22px 0 0; color: #52657a; font-size: 12px; line-height: 1.5; }

@media (max-width: 980px) {
  .institution-directory-results { grid-template-columns: 1fr; }
  .institution-profile-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .institution-directory-hero { padding: 46px 20px 34px; }
  .institution-directory-hero .institution-directory-title { font-size: clamp(35px, 11vw, 48px); }
  .institution-directory-hero > p { margin: 18px 0 24px; font-size: 16px; }
  .institution-directory-search-shell { min-height: 58px; border-radius: 12px; }
  .institution-directory-search-icon { width: 48px; flex-basis: 48px; font-size: 27px; }
  .institution-directory-search-shell input { padding-right: 8px; font-size: 14px; }
  .institution-directory-stats { gap: 8px 15px; font-size: 12px; }
  .institution-directory-body,
  .institution-profile { width: calc(100% - 28px); }
  .institution-directory-body { padding: 30px 0 42px; }
  .institution-directory-toolbar { align-items: stretch; flex-direction: column; }
  .institution-directory-result { min-height: 105px; padding: 14px; gap: 12px; }
  .directory-mark { width: 44px !important; height: 44px !important; }
  .institution-directory-result-copy > strong { font-size: 14px; }
  .institution-directory-result-meta { white-space: normal; }
  .institution-directory-result-badges small { font-size: 12px; }
  .institution-profile { margin-bottom: 50px; padding: 20px 16px; border-radius: 15px; }
  .institution-profile-heading { grid-template-columns: auto minmax(0, 1fr); gap: 13px; }
  .profile-mark { width: 54px !important; height: 54px !important; }
  .institution-profile-title h1 { font-size: 27px; }
  .institution-profile-title p { font-size: 12px; }
  .institution-profile-website { grid-column: 1 / -1; justify-self: start; }
  .institution-profile-metrics,
  .institution-profile-sources { grid-template-columns: 1fr; }
  .institution-profile-metrics > div { min-height: 108px; }
  .institution-profile-source-card > p { min-height: 0; }
  .institution-profile-bce-terms { grid-template-columns: 1fr; }
}

.bce-week-label .live-dot {
  width: 7px;
  height: 7px;
  margin-right: 7px;
  background: var(--accent);
}

.bce-advanced { margin: 0 0 18px; }

.bce-advanced > summary {
  display: inline-flex !important;
  margin-bottom: 10px;
}

.bce-advanced .filters {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.bce-indicator-line {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 3px 0 10px;
  color: #66768a;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.bce-period-source {
  margin: 5px 0 0;
  color: #53657a;
  font-size: 12px;
}

.bce-period-source a {
  color: var(--accent-dark);
  font-weight: 700;
  text-decoration: none;
}

.bce-period-source a:hover { text-decoration: underline; }

.bce-inst-copy { min-width: 0; }

.bce-segment-tag {
  color: #5d6d80;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.bce-rating-list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
}

.bce-missing {
  color: #8b98a8;
  font-family: var(--mono);
  font-size: 12px;
}

.bce-secondary-rate,
.bce-operations {
  color: #42546a;
  font-family: var(--mono);
  font-size: 12px;
}

.bce-cosede-cell {
  color: var(--navy);
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 650;
  white-space: nowrap;
}

.bce-card-cosede {
  color: var(--accent-dark);
  font-weight: 750;
}

.bce-compare th:nth-child(1) { width: 31%; }
.bce-compare th:nth-child(2) { width: 15%; }
.bce-compare th:nth-child(3) { width: 12%; }
.bce-compare th:nth-child(4) { width: 12%; }
.bce-compare th:nth-child(5) { width: 12%; }
.bce-compare th:nth-child(6) { width: 9%; }
.bce-compare th:nth-child(7) { width: 9%; }

.bce-market-row .rate-cell { color: var(--navy); }

.bce-market-row.best {
  background: linear-gradient(90deg, #eaf3ff 0%, #fff 56%);
}

.bce-detail-action { text-align: right; }

.bce-detail-button,
.bce-card-detail-button,
.bce-load-more {
  border: 1px solid #b9c7d7;
  border-radius: 7px;
  background: #fff;
  color: var(--navy);
  font: 650 12px/1 Inter, sans-serif;
  cursor: pointer;
  transition: border-color .15s ease, color .15s ease, background .15s ease;
}

.bce-detail-button { padding: 8px 10px; }

.bce-detail-button:hover,
.bce-card-detail-button:hover,
.bce-load-more:hover {
  border-color: var(--gold);
  background: #f2f7ff;
  color: var(--gold-2);
}

table.compare tbody tr.bce-detail-row,
table.compare tbody tr.bce-detail-row:hover { background: #f7f9fc; }

.bce-detail-row td { padding: 0 !important; }

.bce-details-panel {
  padding: 24px 26px 26px;
  border-top: 1px solid #d8e2ee;
  background: #f4f7fb;
}

.bce-detail-section + .bce-detail-section {
  margin-top: 24px;
  padding-top: 22px;
  border-top: 1px solid #d8e2ee;
}

.bce-detail-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 13px;
}

.bce-detail-section-head h3 {
  margin: 0;
  color: var(--navy);
  font: 750 15px/1.25 Inter, sans-serif;
}

.bce-detail-section-head p {
  margin: 0;
  color: #526983;
  font-size: 12px;
  line-height: 1.4;
  text-align: right;
}

.bce-detail-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.bce-detail-institution-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.bce-detail-grid > div {
  min-height: 96px;
  padding: 14px 15px;
  border: 1px solid #d9e3ef;
  border-radius: 10px;
  background: #fff;
}

.bce-detail-grid span {
  display: block;
  color: #5f7187;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.4;
  letter-spacing: .025em;
}

.bce-detail-grid strong {
  display: block;
  margin-top: 8px;
  color: var(--navy);
  font-family: var(--mono);
  font-size: 15px;
  line-height: 1.25;
}

.bce-detail-grid small {
  display: block;
  margin-top: 7px;
  color: #61758c;
  font-size: 12px;
  line-height: 1.4;
}

.bce-detail-method {
  margin-top: 13px;
  padding: 13px 15px;
  border: 1px solid #cfe0f3;
  border-left: 3px solid var(--gold);
  border-radius: 8px;
  background: #edf5ff;
}

.bce-detail-method h4 {
  margin: 0 0 5px;
  color: var(--navy);
  font: 750 12px/1.35 Inter, sans-serif;
}

.bce-detail-method p {
  margin: 0;
  color: #415875;
  font-size: 12px;
  line-height: 1.55;
}

.bce-detail-method p + p { margin-top: 7px; }

.bce-detail-identity {
  display: grid;
  grid-template-columns: minmax(160px, .7fr) minmax(0, 2fr);
  gap: 8px 24px;
  margin-top: 14px;
  color: #526276;
}

.bce-detail-identity p {
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
}

.bce-detail-notes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px 24px;
  margin-top: 10px;
  color: #526276;
}

.bce-detail-notes p {
  margin: 0;
  font-size: 12px;
  line-height: 1.55;
}

.bce-limited-copy { color: #8a5b00; }

.bce-cosede-disclaimer {
  margin: 18px 0 0;
  color: #617286;
  font-size: 12px;
  line-height: 1.5;
}

.bce-sample-warning {
  position: relative;
  display: inline-block;
  margin-top: 5px;
  text-align: left;
}

.bce-sample-warning summary {
  color: #8a5b00;
  font-family: var(--mono);
  font-size: 12px;
  line-height: 1.25;
  letter-spacing: .025em;
  list-style: none;
  cursor: pointer;
}

.bce-sample-warning summary::-webkit-details-marker { display: none; }

.bce-sample-warning p {
  position: absolute;
  right: 0;
  top: calc(100% + 7px);
  z-index: 65;
  width: min(310px, 78vw);
  margin: 0;
  padding: 10px 11px;
  border: 1px solid #ecd49f;
  border-radius: 7px;
  background: #fffaf0;
  color: #614716;
  box-shadow: 0 15px 35px -22px rgba(69, 47, 5, .65);
  font-family: Inter, sans-serif;
  font-size: 12px;
  line-height: 1.45;
}

.bce-cards .bce-sample-warning p { left: 0; right: auto; }

.bce-market-card .inst-cell { align-items: flex-start; }

.bce-market-card .card-head { align-items: flex-start; }

.bce-mobile-rate { flex: 0 0 auto; text-align: right; }

.bce-card-detail-button {
  width: 100%;
  margin-top: 14px;
  padding: 11px 12px;
}

.bce-market-card > .bce-details-panel {
  margin: 14px -16px -16px;
  padding: 16px;
  border-radius: 0 0 9px 9px;
}

.bce-load-more-wrap {
  display: flex;
  justify-content: center;
  padding: 20px 0 4px;
}

.bce-load-more {
  min-width: 180px;
  padding: 12px 18px;
  font-size: 12px;
}

.bce-source-footer {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px 22px;
  margin: 26px 0 8px;
  padding: 17px 18px;
  border-top: 1px solid #d8e0e9;
  color: #5c6d80;
  font-family: var(--mono);
  font-size: 12px;
  line-height: 1.55;
}

.bce-source-footer a { color: var(--gold-2); font-weight: 700; }

.bce-source-footer p {
  flex: 1 0 100%;
  margin: 3px 0 0;
  font-family: Inter, sans-serif;
  font-size: 12px;
}

@media (max-width: 1000px) {
  .bce-advanced .filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bce-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .product-switch-shell {
    width: calc(100% - 28px);
    margin-top: 15px;
    border-radius: 11px;
  }

  .product-tabs button {
    min-height: 68px;
    padding: 11px 10px;
  }

  .product-tabs button span { font-size: 12.5px; }
  .product-tabs button small { font-size: 12px; }

  .product-tab-description {
    position: relative;
    align-items: flex-start;
    width: 100%;
    margin-left: 0 !important;
    padding: 13px 9px 6px;
  }

  .product-tab-description::before {
    position: absolute;
    top: 5px;
    width: calc(50% - 7px);
    height: 2px;
    border-radius: 999px;
    background: var(--accent);
    content: '';
  }

  .product-tab-description.is-bce::before { left: 2px; }
  .product-tab-description.is-published::before { right: 2px; }

  .product-tab-description p { font-size: 12px; }

  .bce-hero { margin-top: 14px; }

  .bce-search-form { max-width: none; }
  .bce-search-form .hero-cta { min-width: 0; }

  .bce-reference-note { margin: 0 0 15px; }
  .bce-advanced .filters { grid-template-columns: 1fr; }

  .bce-indicator-line {
    align-items: flex-start;
    font-size: 12px;
    line-height: 1.45;
  }

  .bce-market-card .inst-cell { gap: 9px; }
  .bce-market-card .inst-name { font-size: 14px; line-height: 1.25; }
  .bce-market-card .inst-meta { gap: 5px 7px; }
  .bce-market-card .card-rate { font-size: 27px; }

  .bce-details-panel { padding: 18px 16px 20px; }
  .bce-detail-section-head { align-items: flex-start; flex-direction: column; gap: 4px; }
  .bce-detail-section-head p { text-align: left; }
  .bce-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .bce-detail-grid > div { min-height: 0; padding: 11px; }
  .bce-detail-grid strong { font-size: 12.5px; }
  .bce-detail-identity { grid-template-columns: 1fr; gap: 5px; }
  .bce-detail-notes { grid-template-columns: 1fr; gap: 7px; }

  .bce-source-footer {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
    margin-top: 22px;
  }
}

@media (max-width: 390px) {
  .product-tabs button span { font-size: 12px; }
  .product-tabs button small { display: none; }
  .bce-detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 390px) {
  .mobile .topbar-inner {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .mobile .brand {
    font-size: 18px !important;
  }

  .mobile .nav {
    gap: 7px !important;
  }

  .mobile .nav button:not(.alert-nav-btn) {
    font-size: 12px !important;
  }

  .mobile .alert-nav-btn {
    width: 68px !important;
  }

  .mobile .alert-nav-btn::before {
    font-size: 12px;
  }
}

/* Page visibility — driven by body[data-page] set on every nav click */
body:not([data-page="comparador"]) .hero:not(.credit-hero),
body:not([data-page="comparador"]) #comparador,
body:not([data-page="comparador"]) .trust-strip { display: none !important; }

body:not([data-page="aprende"]) #aprende { display: none !important; }

body:not([data-page="acerca"]) #acerca-de { display: none !important; }

/* ========================================================================== 
   Capital.ec 2026 visual refresh
   Presentation-only overrides: no comparator behavior is changed here.
   ========================================================================== */

:root,
.theme-light {
  --navy: #071d49;
  --navy-2: #0b2b67;
  --navy-3: #16458e;
  --ink: #091e42;
  --cream: #f4f7fb;
  --cream-1: #fbfdff;
  --cream-2: #edf3fa;
  --cream-3: #d9e3ef;
  --paper: #ffffff;
  --gold: #1769ff;
  --gold-2: #0b55d4;
  --gold-soft: #e6efff;
  --accent: #1769ff;
  --accent-dark: #0b4fca;
  --accent-soft: #e6efff;
  --wise-lime: #1478d4;
  --wise-forest: #062d62;
  --good: #1478d4;
  --good-soft: #dfeeff;
  --warn: #c35424;
  --warn-soft: #feebe3;
  --bad: #a53434;
  --bad-soft: #f8e2e2;
  --muted: #60718a;
  --maxw: 1280px;
  --radius: 12px;
  --radius-lg: 20px;
  --row-pad-y: 17px;
  --row-pad-x: 20px;
  --display: var(--sans);
  --mono: var(--sans);
}

.theme-dark {
  --gold: #69a0ff;
  --gold-2: #8db8ff;
  --gold-soft: #142f5f;
  --accent: #69a0ff;
  --accent-dark: #8db8ff;
  --accent-soft: #142f5f;
  --wise-lime: #69a9ff;
  --wise-forest: #e9f3ff;
  --display: var(--sans);
  --mono: var(--sans);
}

html {
  scroll-behavior: smooth;
  background: var(--cream);
}

body {
  background:
    linear-gradient(180deg, #ffffff 0, var(--cream) 560px),
    var(--cream);
  color: var(--ink);
  font-size: 15px;
  line-height: 1.55;
}

/* Header */
.topbar {
  position: sticky;
  top: 0;
  z-index: 80;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.92);
  border-bottom: 1px solid rgba(11, 32, 58, 0.09);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75);
  -webkit-backdrop-filter: blur(18px) saturate(155%);
  backdrop-filter: blur(18px) saturate(155%);
}

.topbar-inner {
  min-height: 72px;
  padding: 13px 32px;
}

.brand {
  color: var(--navy);
  font-size: 25px;
  font-weight: 800;
  letter-spacing: -0.045em;
}

.brand-dot { color: var(--accent); }

.nav {
  align-items: center;
  gap: 8px;
  color: #4e6176;
  font-size: 13px;
  font-weight: 600;
}

.nav a,
.nav button {
  border-radius: 999px;
  padding: 9px 13px;
  transition: color .18s ease, background .18s ease, transform .18s ease;
}

.nav a:hover,
.nav button:hover {
  color: var(--navy);
  background: var(--cream-2);
}

.nav .active {
  color: var(--accent-dark);
  background: var(--accent-soft);
  border-bottom: 0;
  padding-bottom: 9px;
}

.topbar .nav .alert-nav-btn {
  color: var(--wise-forest) !important;
  background: var(--wise-lime) !important;
  border: 1px solid #8ddb61 !important;
  border-radius: 999px !important;
  padding: 10px 16px !important;
  box-shadow: 0 8px 20px -14px rgba(11, 31, 58, .7) !important;
}

.topbar .nav .alert-nav-btn:hover {
  color: var(--wise-forest) !important;
  background: #b4f58c !important;
  transform: translateY(-1px);
}

.language-switcher {
  color: var(--navy);
  background: #fff;
  border-color: var(--cream-3);
  padding: 8px 10px;
}

.language-switcher:hover { background: var(--cream-2); }

/* Hero and simulator */
.hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: var(--ink);
  background:
    radial-gradient(circle at 88% 8%, rgba(91, 157, 255, .30) 0, rgba(91, 157, 255, .10) 23%, transparent 46%),
    radial-gradient(circle at 7% 102%, rgba(159, 232, 112, .12), transparent 34%),
    linear-gradient(180deg, #fbfdff 0%, #f2f7ff 100%);
  border-bottom: 1px solid rgba(11, 32, 58, .09);
  padding: 70px 32px 54px;
}

.hero::before,
.hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  border-radius: 999px;
  pointer-events: none;
}

.hero::before {
  width: 350px;
  height: 350px;
  top: -190px;
  right: 5%;
  border: 1px solid rgba(35, 103, 232, .15);
  box-shadow: 0 0 0 54px rgba(35, 103, 232, .035), 0 0 0 108px rgba(35, 103, 232, .022);
}

.hero::after {
  width: 9px;
  height: 9px;
  right: 25%;
  top: 25%;
  background: var(--accent);
  box-shadow: 38px 58px 0 -2px var(--wise-lime), -54px 100px 0 -3px var(--good);
  opacity: .72;
}

.hero-inner {
  position: relative;
  max-width: var(--maxw);
}

.hero-badge {
  color: #22543d;
  background: rgba(239, 255, 231, .88);
  border: 1px solid #c6eab0;
  box-shadow: 0 8px 24px -22px rgba(11, 31, 58, .6);
  margin-bottom: 28px;
  padding: 8px 13px;
}

.hero-badge .live-dot,
.hero-meta .live-dot {
  background: var(--good);
  animation: none;
}

.hero h1 {
  max-width: 930px;
  margin-bottom: 20px;
  color: var(--navy);
  font-size: clamp(50px, 5.35vw, 76px);
  line-height: .98;
  font-weight: 780;
  letter-spacing: -.055em;
}

.hero h1 em {
  color: var(--accent);
  font-style: normal;
  font-weight: 780;
}

.hero p {
  max-width: 690px;
  margin-bottom: 34px;
  color: #50647d;
  font-size: 18px;
  line-height: 1.6;
}

.hero-form {
  max-width: 1160px;
  padding: 8px;
  border: 1px solid rgba(11, 32, 58, .11);
  border-radius: 20px;
  box-shadow: 0 28px 72px -38px rgba(7, 29, 73, .32), 0 8px 20px -18px rgba(7, 29, 73, .22);
}

.hero-field {
  min-height: 78px;
  justify-content: center;
  padding: 15px 21px;
  border-right-color: #e3e9ef;
}

.hero-field label {
  color: #6c7b8c;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .11em;
}

.hero-field input,
.hero-field select {
  color: var(--navy);
  font-size: 17px;
  font-weight: 700;
}

.hero-field:focus-within {
  background: #f8fbff;
  border-radius: 13px;
}

.hero-cta {
  min-width: 175px;
  margin-left: 4px;
  color: #fff;
  background: #0864bb;
  border-radius: 14px;
  box-shadow: 0 12px 24px -14px rgba(35, 103, 232, .9);
  transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}

.hero-cta:hover {
  background: var(--accent-dark);
  transform: translateY(-1px);
  box-shadow: 0 16px 28px -14px rgba(35, 103, 232, .85);
}

.hero-meta {
  gap: 24px;
  margin-top: 20px;
  color: #52657a;
  font-size: 12px;
}

.hero-meta b { color: var(--navy); font-weight: 700; }

/* Results shell */
main {
  max-width: var(--maxw);
  padding: 48px 32px 96px;
}

.section-head {
  align-items: center;
  margin-bottom: 22px;
  padding-bottom: 20px;
  border-bottom-color: rgba(11, 32, 58, .10);
}

.section-title {
  color: var(--navy);
  font-size: 35px;
  font-weight: 750;
  letter-spacing: -.04em;
}

.search-summary {
  margin-top: 7px;
  color: var(--muted);
  font-size: 14px;
}

.mobile-collapse > summary {
  border-color: var(--cream-3);
  border-radius: 12px;
  box-shadow: 0 8px 24px -22px rgba(11, 31, 58, .5);
}

.filters {
  grid-template-columns: 1.05fr 1.45fr 1.2fr 1fr;
  gap: 16px;
  padding: 22px;
  border-color: rgba(11, 32, 58, .10);
  border-radius: 18px;
  box-shadow: 0 18px 44px -38px rgba(11, 31, 58, .35);
}

.filter { gap: 8px; }

.filter-label {
  color: #6c7b8c;
  font-weight: 700;
  letter-spacing: .09em;
}

.filter-select,
.search-input {
  min-height: 43px;
  border-color: #d5dee8;
  border-radius: 9px;
  background-color: #fbfcfe;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.filter-select:focus,
.search-input:focus {
  border-color: var(--accent);
  background-color: #fff;
  box-shadow: 0 0 0 3px rgba(35, 103, 232, .11);
}

.unit-toggle {
  border-color: #d5dee8;
  border-radius: 8px;
}

.unit-toggle button { padding: 5px 8px; }
.unit-toggle button.active { background: var(--accent); }

.chip {
  min-height: 34px;
  border-color: #d5dee8;
  background: #fbfcfe;
  padding: 7px 12px;
  font-weight: 600;
}

.chip:hover {
  color: var(--accent-dark);
  border-color: #9ab9ef;
  background: var(--accent-soft);
}

.chip.active {
  color: #fff;
  background: #0864bb;
  border-color: var(--accent);
  box-shadow: 0 8px 16px -12px rgba(35, 103, 232, .8);
}

.results-count {
  min-height: 54px;
  padding: 8px 2px 14px;
  color: var(--muted);
}

.sort-toggle {
  padding: 3px;
  border-color: #d6dfe9;
  border-radius: 10px;
  background: #edf2f7;
}

.sort-toggle button {
  border-radius: 7px;
  padding: 8px 13px;
  color: #617185;
}

.sort-toggle button.active {
  color: var(--navy);
  background: #fff;
  box-shadow: 0 2px 8px rgba(11, 31, 58, .09);
}

.ranking-method { color: var(--muted); }

/* Optimizer */
.allocation-card {
  padding: 24px;
  border-color: rgba(11, 32, 58, .10);
  border-radius: 18px;
  box-shadow: 0 18px 44px -38px rgba(11, 31, 58, .35);
}

.allocation-eyebrow { color: var(--accent); font-weight: 700; }
.allocation-head h3 { color: var(--navy); font-size: 25px; }
.allocation-rank { color: #fff; background: #0864bb; }

/* Comparison table */
.table-wrap {
  border-color: rgba(11, 32, 58, .10);
  border-radius: 18px;
  box-shadow: 0 22px 55px -44px rgba(11, 31, 58, .45);
}

table.compare thead th {
  position: sticky;
  top: 72px;
  z-index: 2;
  color: #647488;
  background: #f3f6f9;
  border-bottom-color: #dce4ed;
  font-weight: 650;
}

table.compare tbody tr {
  border-top-color: #e6ebf0;
  transition: background .16s ease, box-shadow .16s ease;
}

table.compare tbody tr:hover {
  background: #f6f9ff;
  box-shadow: inset 3px 0 0 var(--accent);
}

.inst-mark {
  width: 40px;
  height: 40px;
  border-radius: 10px;
}

.inst-mark.logo-chip {
  border-color: #dce4ed;
  border-radius: 10px;
  box-shadow: 0 5px 14px -12px rgba(11, 31, 58, .55);
}

.inst-name {
  color: var(--navy);
  font-size: 14.5px;
  font-weight: 650;
}

.type-tag { border-radius: 999px; padding: 3px 7px; font-weight: 600; }
.type-tag.banco { color: #15529d; background: #e2efff; }
.type-tag.coop { color: #176746; background: #def3e8; }
.type-tag.mut { color: #0e6676; background: #dff4f7; }
.type-tag.fin { color: #6d3da0; background: #efe4fb; }

.rate-cell {
  color: var(--navy);
  font-size: 26px;
  font-weight: 750;
}

.rate-cell .pct { color: var(--accent); font-weight: 600; }
.earnings { color: #637386; }
.rate-context { color: var(--accent-dark); font-weight: 600; }

tr.best {
  background: linear-gradient(90deg, rgba(224, 242, 233, .88) 0%, rgba(255, 255, 255, .65) 62%);
  box-shadow: inset 3px 0 0 var(--good);
}

tr.best:hover {
  background: linear-gradient(90deg, #dff3e8 0%, #f7fbf9 62%);
  box-shadow: inset 3px 0 0 var(--good);
}

.best-marker,
.mobile-best-marker {
  color: #fff;
  background: var(--good);
  border-radius: 999px;
}

.rate-section-row td {
  color: var(--navy);
  background: #f8fafc;
  border-color: #e1e7ee;
  padding-top: 17px !important;
  padding-bottom: 13px !important;
}

.rate-section-row strong,
.rate-section-mobile strong {
  color: var(--navy);
  font-size: 19px;
  font-weight: 750;
}

.rate-period-row td { background: #f2f5f8; }
.pay-pill { border-radius: 6px; }

/* Mobile result cards */
.cards { gap: 13px; }

.card {
  padding: 18px;
  border-color: rgba(11, 32, 58, .10);
  border-radius: 16px;
  box-shadow: 0 12px 32px -28px rgba(11, 31, 58, .45);
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.card:active { transform: scale(.995); }

.card.best {
  border-color: rgba(22, 119, 84, .42);
  background: linear-gradient(135deg, #e5f5ed 0%, #fff 62%);
  box-shadow: 0 18px 36px -30px rgba(22, 119, 84, .65);
}

.card-rate { color: var(--navy); font-size: 31px; }
.card-rate .pct { color: var(--accent); font-weight: 600; }
.card-grid { border-top-color: #e7ecf1; }

/* Institution drawer */
.drawer-backdrop {
  background: rgba(6, 21, 39, .48);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

.drawer {
  background: #f7f9fc;
  box-shadow: -30px 0 90px -38px rgba(5, 20, 38, .6);
}

.drawer-head {
  background:
    radial-gradient(circle at 95% 0, rgba(87, 153, 255, .28), transparent 42%),
    var(--navy);
  padding: 27px 32px 28px;
}

.drawer-title { font-size: 34px; }
.drawer-body { padding: 28px 32px 70px; }
.drawer-rate-number { color: var(--navy); font-size: 62px; font-weight: 750; }
.drawer-rate-percent { color: var(--accent); }
.matrix { border-radius: 12px; }
.matrix .best-cell { background: var(--accent-soft); }
.cosede-card { border-radius: 10px; }

/* Educational and about pages */
.learn-section {
  padding: 64px 32px 100px;
  border-top: 0;
}

.learn-eyebrow { color: var(--accent); font-weight: 700; }
.learn-head h1 { color: var(--navy); font-size: 42px; letter-spacing: -.025em; }

.learn-panel,
.learn-table-wrap,
.learn-tax,
.faq-section,
.learn-sources {
  border-color: rgba(11, 32, 58, .10);
  border-radius: 16px;
  padding: 22px;
  box-shadow: 0 16px 38px -34px rgba(11, 31, 58, .4);
}

.learn-panel h3, .about-page .learn-panel h2,
.learn-table-head h3,
.learn-tax h3,
.faq-section h3,
.learn-sources h3, .about-page .learn-sources h2 { color: var(--navy); }

.about-founder { gap: 28px; }
.about-founder-photo {
  width: 188px;
  border: 0;
  border-radius: 20px;
  box-shadow: 0 20px 40px -28px rgba(11, 31, 58, .5);
}

.learn-sources a { border-radius: 999px; }

/* Trust summary */
.trust-strip {
  gap: 14px;
  margin-top: 40px;
  padding: 28px 0 0;
  border-top-color: rgba(11, 32, 58, .10);
}

.trust-item {
  min-height: 150px;
  padding: 21px;
  background: rgba(255, 255, 255, .72);
  border: 1px solid rgba(11, 32, 58, .09);
  border-radius: 15px;
}

.trust-item .big {
  color: var(--navy);
  font-size: 27px;
  font-weight: 750;
}

.trust-item h4 { color: var(--accent-dark); }
.trust-item p { color: #5c6d80; }

/* Navigation menu on compact screens */
.mobile-nav-menu > summary {
  color: var(--navy);
  background: #fff;
  border-color: var(--cream-3);
  border-radius: 9px;
}

.mobile-nav-panel {
  border-color: #dce4ed;
  border-radius: 14px;
  box-shadow: 0 24px 55px -28px rgba(11, 31, 58, .5);
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 3px solid rgba(35, 103, 232, .35);
  outline-offset: 2px;
}

@media (max-width: 900px) {
  .hero { padding-top: 54px; }
  .hero h1 { max-width: 760px; font-size: clamp(46px, 7vw, 62px); }
  .hero-form { flex-wrap: wrap; }
  .hero-field { flex: 1 1 30%; }
  .hero-cta { min-height: 70px; flex: 1 1 180px; }
  .filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trust-strip { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 700px) {
  .topbar-inner,
  .mobile .topbar-inner {
    min-height: 64px;
    padding: 10px 14px !important;
  }

  .mobile .brand { color: var(--navy); font-size: 20px !important; }
  .mobile .nav { gap: 6px !important; }

  .mobile .topbar .nav .alert-nav-btn {
    width: 76px !important;
    min-height: 42px !important;
    padding: 5px 7px !important;
    border-radius: 10px !important;
    box-shadow: none !important;
  }

  .mobile .topbar .nav .alert-nav-btn::before { font-size: 12px; }

  .mobile .hero,
  .hero {
    padding: 38px 16px 28px;
  }

  .hero::before {
    width: 230px;
    height: 230px;
    top: -145px;
    right: -70px;
  }

  .hero::after { display: none; }

  .mobile .hero-badge,
  .hero-badge {
    max-width: 100%;
    margin-bottom: 19px;
    padding: 7px 10px;
    font-size: 12px;
    letter-spacing: .10em;
    white-space: normal;
  }

  .mobile .hero h1,
  .hero h1 {
    max-width: 520px;
    margin-bottom: 15px;
    font-size: clamp(36px, 10.8vw, 48px);
    line-height: 1.01;
    letter-spacing: -.04em;
  }

  .mobile .hero p,
  .hero p {
    margin-bottom: 24px;
    font-size: 15px;
    line-height: 1.55;
  }

  .mobile .hero-form,
  .hero-form {
    flex-direction: column;
    flex-wrap: nowrap;
    padding: 6px;
    border-radius: 16px;
  }

  .mobile .hero-field,
  .hero-field {
    min-height: 66px;
    padding: 11px 14px;
    border-right: 0;
    border-bottom: 1px solid #e4e9ef;
  }

  .mobile .hero-field:last-of-type,
  .hero-field:last-of-type { border-bottom: 0; }

  .mobile .hero-cta,
  .hero-cta {
    width: 100%;
    min-height: 50px;
    margin: 5px 0 0;
    padding: 14px;
    border-radius: 11px;
  }

  .mobile .hero-meta,
  .hero-meta {
    gap: 7px;
    margin-top: 16px;
    font-size: 12px;
    letter-spacing: .08em;
  }

  .mobile main,
  main { padding: 30px 14px 72px; }

  .mobile .section-head,
  .section-head {
    gap: 10px;
    margin-bottom: 15px;
    padding-bottom: 15px;
  }

  .mobile .section-title,
  .section-title { font-size: 29px; }

  .search-summary { font-size: 12.5px; }

  .mobile-collapse > summary,
  .mobile .mobile-collapse > summary {
    padding: 13px 14px !important;
    border-radius: 12px !important;
    font-size: 12px !important;
  }

  .mobile-collapse > summary::after,
  .mobile .mobile-collapse > summary::after {
    color: #fff !important;
    background: #0864bb !important;
  }

  .mobile .filters,
  .filters {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 17px;
    border-radius: 14px;
  }

  .mobile .results-count,
  .results-count {
    gap: 11px;
    align-items: stretch;
  }

  .sort-toggle { width: 100%; overflow-x: auto; }
  .sort-toggle button { flex: 1 0 auto; padding: 8px 10px; font-size: 12px; }

  .rate-section-mobile { padding: 16px 2px 4px; }
  .rate-section-mobile strong { font-size: 20px; }
  .rate-period-mobile { margin-top: 14px; }

  .card { padding: 16px; }
  .card-head { gap: 10px; }
  .inst-mark { width: 38px; height: 38px; }
  .card-rate { font-size: 29px; }

  .mobile .trust-strip,
  .trust-strip {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  .trust-item { min-height: 138px; padding: 16px; }
  .trust-item .big { font-size: 23px; }
  .trust-item p { font-size: 12px; }

  .drawer-head { padding: 24px 20px; }
  .drawer-title { font-size: 30px; }
  .drawer-body { padding: 24px 18px 60px; }

  .mobile .learn-section,
  .learn-section { padding: 40px 14px 72px; }

  .mobile .learn-head h1,
  .learn-head h1 { font-size: 33px; }

  .learn-panel,
  .learn-table-wrap,
  .learn-tax,
  .faq-section,
  .learn-sources { padding: 18px; border-radius: 14px; }

  .mobile .about-founder-photo,
  .about-founder-photo { width: min(210px, 62vw); border-radius: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* ========================================================================== 
   Raisin-led rebrand
   Light-blue editorial hero, structured comparison controls and neutral data.
   The product behavior remains unchanged.
   ========================================================================== */

:root,
.theme-light {
  --navy: #09234f;
  --navy-2: #133564;
  --navy-3: #284c78;
  --ink: #10223d;
  --cream: #f6f5f2;
  --cream-1: #fbfbfa;
  --cream-2: #f0f1ef;
  --cream-3: #d9dee5;
  --paper: #ffffff;
  --gold: #1284e7;
  --gold-2: #0869c4;
  --gold-soft: #deefff;
  --accent: #1284e7;
  --accent-dark: #0864bb;
  --accent-soft: #deefff;
  --good: #1478d4;
  --good-soft: #e2f0ff;
  --muted: #5d6d82;
  --maxw: 1240px;
  --radius: 10px;
  --radius-lg: 24px;
}

.theme-dark {
  --good: #69a9ff;
  --good-soft: #142f5f;
}

html { background: #f6f5f2; }

body {
  background: #f6f5f2;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.5;
}

/* Header closely follows Raisin's quiet, product-led navigation rhythm. */
.topbar {
  background: rgba(255, 255, 255, .97);
  border-bottom: 1px solid #e7e9ed;
  box-shadow: none;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.topbar-inner {
  max-width: var(--maxw);
  min-height: 78px;
  margin: 0 auto;
  padding: 13px 24px;
}

.brand {
  color: var(--accent);
  font-size: 30px;
  font-weight: 760;
  letter-spacing: -.055em;
}

.brand-dot { color: var(--accent); }

.nav {
  gap: 4px;
  color: var(--navy);
  font-size: 14px;
  font-weight: 650;
}

.nav a,
.nav button {
  border-radius: 10px;
  padding: 11px 15px;
}

.nav a:hover,
.nav button:hover {
  color: var(--navy);
  background: #edf5ff;
}

.nav .active {
  color: var(--navy);
  background: #dceeff;
  padding-bottom: 11px;
}

.topbar .nav .alert-nav-btn {
  color: #fff !important;
  background: #0864bb !important;
  border: 1px solid var(--accent) !important;
  border-radius: 10px !important;
  padding: 11px 17px !important;
  box-shadow: none !important;
}

.topbar .nav .alert-nav-btn:hover {
  color: #fff !important;
  background: var(--accent-dark) !important;
  border-color: var(--accent-dark) !important;
  transform: none;
}

.language-switcher {
  color: var(--navy);
  background: #fff;
  border-color: #aeb8c6;
  border-radius: 10px;
}

/* Hero: broad pale-blue canvas, editorial copy, branded portrait and calculator. */
.hero {
  overflow: hidden;
  color: var(--ink);
  background: #deedfc;
  border-bottom: 0;
  padding: 42px 28px 64px;
}

.hero::before,
.hero::after { display: none; }

.hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, .82fr);
  grid-template-areas:
    "badge visual"
    "title visual"
    "intro visual"
    "form form"
    "meta meta";
  column-gap: 64px;
  row-gap: 0;
  max-width: var(--maxw);
  margin: 0 auto;
}

.hero-inner::before,
.hero-inner::after {
  grid-area: visual;
  align-self: stretch;
  border-radius: 28px;
}

.hero-inner::before {
  content: "";
  min-height: 410px;
  background:
    linear-gradient(to top, #3c9cf0 0 44%, transparent 44%) 12% 78% / 48px 48% no-repeat,
    linear-gradient(to top, #1684e7 0 64%, transparent 64%) 31% 78% / 48px 66% no-repeat,
    linear-gradient(to top, #0864bb 0 82%, transparent 82%) 50% 78% / 48px 78% no-repeat,
    linear-gradient(to top, #63adef 0 56%, transparent 56%) 69% 78% / 48px 58% no-repeat,
    linear-gradient(to top, #1c76cc 0 72%, transparent 72%) 88% 78% / 48px 70% no-repeat,
    repeating-linear-gradient(to bottom, rgba(9, 35, 79, .08) 0 1px, transparent 1px 66px),
    linear-gradient(145deg, #f8fbff 0%, #c9e5ff 100%);
  border: 1px solid rgba(9, 35, 79, .08);
  box-shadow: 0 16px 38px -30px rgba(9, 35, 79, .35);
}

.hero-inner::after {
  content: "6,75%";
  display: grid;
  place-items: center;
  width: 220px;
  height: 132px;
  align-self: center;
  justify-self: center;
  color: var(--navy);
  background: rgba(255, 255, 255, .94);
  border: 1px solid rgba(9, 35, 79, .10);
  border-radius: 18px;
  box-shadow: 0 22px 45px -26px rgba(9, 35, 79, .45);
  font-size: 54px;
  font-weight: 650;
  letter-spacing: -.055em;
}

.hero-badge {
  grid-area: badge;
  align-self: start;
  justify-self: start;
  color: #355170;
  background: transparent;
  border: 0;
  box-shadow: none;
  margin: 2px 0 44px;
  padding: 0;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}

.hero-badge .live-dot,
.hero-meta .live-dot {
  background: var(--accent);
  box-shadow: none;
}

.hero h1 {
  grid-area: title;
  max-width: 690px;
  margin: 0 0 26px;
  color: var(--navy);
  font-size: clamp(56px, 5.1vw, 74px);
  line-height: 1.03;
  font-weight: 520;
  letter-spacing: -.055em;
}

.hero h1 em {
  color: var(--navy);
  font-style: normal;
  font-weight: 520;
}

.hero p {
  grid-area: intro;
  max-width: 650px;
  margin: 0;
  color: #253b58;
  font-size: 18px;
  line-height: 1.55;
}

.hero-form {
  grid-area: form;
  display: grid;
  grid-template-columns: 1.08fr .9fr 1.08fr auto;
  gap: 14px;
  max-width: none;
  margin-top: 48px;
  padding: 20px;
  background: #f6f6f4;
  border: 0;
  border-radius: 20px;
  box-shadow: 0 10px 28px -24px rgba(9, 35, 79, .36);
}

.hero-field {
  min-width: 0;
  min-height: 74px;
  justify-content: center;
  padding: 13px 16px;
  background: #fff;
  border: 1px solid #7e8da0;
  border-radius: 12px;
}

.hero-field:last-of-type { border-right: 1px solid #7e8da0; }

.hero-field label {
  color: #415570;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 0;
  text-transform: none;
}

.hero-field input,
.hero-field select {
  color: var(--navy);
  font-size: 16px;
  font-weight: 650;
}

.hero-field:focus-within {
  background: #fff;
  border-color: var(--accent);
  border-radius: 12px;
  box-shadow: 0 0 0 2px rgba(18, 132, 231, .16);
}

.hero-cta {
  min-width: 176px;
  min-height: 74px;
  margin: 0;
  color: #fff;
  background: #0864bb;
  border: 1px solid var(--accent);
  border-radius: 12px;
  box-shadow: none;
  font-size: 15px;
  font-weight: 700;
}

.hero-cta:hover {
  background: var(--accent-dark);
  border-color: var(--accent-dark);
  transform: none;
  box-shadow: none;
}

.hero-meta {
  grid-area: meta;
  gap: 22px;
  margin-top: 16px;
  color: #4e6179;
  font-size: 12px;
  letter-spacing: .02em;
}

.hero-meta b { color: var(--navy); }

/* One large product card, mirroring Raisin's comparison workspace. */
main {
  max-width: var(--maxw);
  margin: 64px auto 96px;
  padding: 34px 24px 56px;
  background: #fff;
  border: 1px solid #e1e4e8;
  border-radius: 28px;
  box-shadow: 0 12px 36px -34px rgba(9, 35, 79, .35);
}

.section-head {
  align-items: end;
  margin: 0 0 26px;
  padding: 0 4px 23px;
  border-bottom: 1px solid #dfe3e8;
}

.section-title {
  color: var(--navy);
  font-size: 32px;
  font-weight: 600;
  letter-spacing: -.035em;
}

.search-summary {
  color: var(--muted);
  font-size: 14px;
}

.mobile-collapse > summary {
  color: var(--navy);
  background: #fff;
  border: 1px solid var(--accent);
  border-radius: 12px;
  box-shadow: none;
  padding: 12px 15px;
}

.mobile-collapse > summary:hover { background: #f3f8ff; }

.filters {
  grid-template-columns: 1.05fr 1.45fr 1.2fr 1fr;
  gap: 18px;
  padding: 24px;
  background: #f5f5f3;
  border: 0;
  border-radius: 18px;
  box-shadow: none;
}

.filter { gap: 9px; }

.filter-label {
  color: #415570;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 0;
  text-transform: none;
}

.filter-select,
.search-input {
  min-height: 48px;
  color: var(--navy);
  background-color: #fff;
  border: 1px solid #7e8da0;
  border-radius: 12px;
}

.filter-select:focus,
.search-input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(18, 132, 231, .15);
}

.unit-toggle {
  background: #fff;
  border-color: #aeb8c6;
  border-radius: 8px;
}

.unit-toggle button.active { color: #fff; background: #0864bb; }

.chip {
  min-height: 34px;
  color: var(--navy);
  background: #fff;
  border-color: #b6bfcb;
  border-radius: 999px;
}

.chip:hover {
  color: var(--navy);
  background: var(--accent-soft);
  border-color: var(--accent);
}

.chip.active {
  color: var(--navy);
  background: #dceeff;
  border-color: #a5d0f7;
  box-shadow: none;
}

.results-count {
  min-height: 66px;
  margin-top: 12px;
  padding: 14px 2px;
  color: var(--muted);
  border-bottom: 1px solid #e2e5e9;
}

.sort-toggle {
  padding: 3px;
  background: #edf0f3;
  border: 0;
  border-radius: 10px;
}

.sort-toggle button {
  color: #516176;
  border-radius: 8px;
  padding: 9px 14px;
}

.sort-toggle button.active {
  color: var(--navy);
  background: #fff;
  box-shadow: 0 2px 8px rgba(9, 35, 79, .08);
}

.allocation-card {
  background: #f7f9fc;
  border-color: #dfe5ec;
  border-radius: 18px;
  box-shadow: none;
}

.allocation-rank { color: #fff; background: #0864bb; }

/* Comparison table: clean white rows, blue hierarchy, no green highlights. */
.table-wrap {
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

table.compare thead th {
  top: 78px;
  color: #5b6c81;
  background: #fff;
  border-bottom: 1px solid #cfd6df;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: .02em;
}

table.compare tbody tr { border-top-color: #e1e5e9; }

table.compare tbody tr:hover {
  background: #f3f8ff;
  box-shadow: inset 3px 0 0 var(--accent);
}

.inst-mark.coop { background: #1478d4; }

.inst-mark.logo-chip {
  border-color: #d7dde5;
  border-radius: 9px;
  box-shadow: none;
}

.inst-name {
  color: var(--navy);
  font-size: 15px;
  font-weight: 650;
}

.type-tag.banco { color: #1259a6; background: #e2efff; }
.type-tag.coop { color: #075e96; background: #e0f1ff; }
.type-tag.mut { color: #4b55a3; background: #eaebff; }
.type-tag.fin { color: #70409e; background: #f0e6fa; }

.rate-cell {
  color: var(--navy);
  font-size: 27px;
  font-weight: 650;
}

.rate-cell .pct,
.card-rate .pct { color: var(--accent); }

.rate-context { color: #4c6079; }

tr.best {
  background: linear-gradient(90deg, #e9f4ff 0%, #fff 66%);
  box-shadow: inset 3px 0 0 var(--accent);
}

tr.best:hover {
  background: linear-gradient(90deg, #dfefff 0%, #f7fbff 66%);
  box-shadow: inset 3px 0 0 var(--accent);
}

.best-marker,
.mobile-best-marker {
  color: #fff;
  background: #0864bb;
}

.rate-section-row td {
  color: var(--navy);
  background: #f6f7f8;
  border-color: #e0e4e8;
}

.rate-period-row td { background: #eef1f4; }

.rating-aaa .rating-dot,
.rating-aa .rating-dot,
.hero-badge .live-dot,
.hero-meta .live-dot { background: var(--accent); }

.cosede svg,
.cosede-card b { color: var(--accent); }

.cosede-card { border-left-color: var(--accent); }

/* Cards, drawer and editorial pages inherit the same blue/neutral system. */
.card {
  border-color: #dfe4e9;
  border-radius: 16px;
  box-shadow: none;
}

.card.best {
  border-color: #9ccaf3;
  background: linear-gradient(135deg, #e7f3ff 0%, #fff 66%);
  box-shadow: none;
}

.drawer { background: #f7f8fa; }

.drawer-head {
  background: #0b2d5f;
  box-shadow: none;
}

.matrix .best-cell { background: var(--accent-soft); }

.learn-section { background: #f6f5f2; }

.learn-panel,
.learn-table-wrap,
.learn-tax,
.faq-section,
.learn-sources {
  border-color: #dfe3e8;
  border-radius: 18px;
  box-shadow: none;
}

.learn-eyebrow,
.allocation-eyebrow { color: var(--accent-dark); }

.trust-strip {
  gap: 16px;
  margin-top: 44px;
  padding-top: 28px;
  border-top-color: #dfe3e8;
}

.trust-item {
  min-height: 152px;
  background: #eef6ff;
  border: 0;
  border-radius: 18px;
}

.trust-item h4 { color: var(--navy); }

.mobile-nav-menu > summary {
  color: var(--navy);
  background: #fff;
  border-color: #aeb8c6;
  border-radius: 10px;
}

.mobile-nav-panel { border-color: #d9dfe7; }

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline-color: rgba(18, 132, 231, .38);
}

@media (max-width: 1000px) {
  .hero-inner {
    grid-template-columns: minmax(0, 1fr) minmax(300px, .72fr);
    column-gap: 34px;
  }

  .hero h1 { font-size: clamp(48px, 6.2vw, 64px); }
  .hero-inner::before { min-height: 370px; }
  .hero-inner::after { width: 190px; height: 118px; font-size: 48px; }

  .hero-form {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .hero-cta {
    grid-column: 1 / -1;
    min-height: 58px;
  }
}

@media (max-width: 760px) {
  .topbar-inner,
  .mobile .topbar-inner {
    min-height: 66px;
    padding: 9px 14px !important;
  }

  .mobile .brand { color: var(--accent); }

  .mobile .topbar .nav .alert-nav-btn {
    color: #fff !important;
    background: #0864bb !important;
    border-color: var(--accent) !important;
    border-radius: 10px !important;
  }

  .mobile .hero,
  .hero { padding: 30px 15px 38px; }

  .hero-inner {
    grid-template-columns: 1fr;
    grid-template-areas:
      "badge"
      "title"
      "intro"
      "visual"
      "form"
      "meta";
  }

  .mobile .hero-badge,
  .hero-badge {
    margin: 0 0 25px;
    padding: 0;
    font-size: 12px;
  }

  .mobile .hero h1,
  .hero h1 {
    margin-bottom: 18px;
    font-size: clamp(40px, 12vw, 54px);
    line-height: 1.02;
  }

  .mobile .hero p,
  .hero p { margin-bottom: 28px; }

  .hero-inner::before {
    min-height: 300px;
    margin-bottom: 26px;
    border-radius: 20px;
  }

  .hero-inner::after {
    width: 176px;
    height: 104px;
    margin-bottom: 26px;
    border-radius: 16px;
    font-size: 44px;
  }

  .mobile .hero-form,
  .hero-form {
    grid-template-columns: 1fr;
    gap: 10px;
    margin: 0;
    padding: 12px;
    border-radius: 16px;
  }

  .mobile .hero-field,
  .hero-field {
    min-height: 68px;
    border: 1px solid #7e8da0;
    border-radius: 11px;
  }

  .mobile .hero-field:last-of-type,
  .hero-field:last-of-type { border: 1px solid #7e8da0; }

  .mobile .hero-cta,
  .hero-cta {
    grid-column: auto;
    min-height: 54px;
    margin: 0;
    border-radius: 11px;
  }

  .mobile main,
  main {
    margin: 26px 10px 60px;
    padding: 24px 12px 38px;
    border-radius: 20px;
  }

  .mobile .section-head,
  .section-head { padding-left: 4px; padding-right: 4px; }

  .mobile .filters,
  .filters {
    padding: 16px;
    background: #f5f5f3;
    border-radius: 16px;
  }

  .mobile .trust-strip,
  .trust-strip { grid-template-columns: 1fr; }

  .trust-item { min-height: auto; }
}

/* ========================================================================== 
   Hero without imagery + final typography calibration
   ========================================================================== */

.hero {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .16), transparent 46%),
    #deedfc;
  padding: 46px 28px 68px;
}

.hero-inner {
  display: block;
  max-width: var(--maxw);
}

.hero-inner::before,
.hero-inner::after {
  content: none !important;
  display: none !important;
}

.hero-badge {
  margin: 0 0 52px;
  font-size: 13px;
  line-height: 1.4;
}

.hero h1 {
  max-width: 950px;
  margin: 0 0 25px;
  font-size: clamp(58px, 5.6vw, 78px);
  line-height: 1.015;
  letter-spacing: -.052em;
}

.hero p {
  max-width: 760px;
  font-size: 19px;
  line-height: 1.58;
}

.hero-form {
  margin-top: 44px;
  padding: 18px;
}

.hero-meta {
  justify-content: space-between;
  font-size: 12px;
  line-height: 1.45;
}

/* Dense financial data remains compact, but never illegibly small. */
table.compare thead th {
  font-size: 12px;
  line-height: 1.35;
}

table.compare thead th .sort-arrow { font-size: 12px; }
.inst-name { font-size: 15px; }
.inst-meta { font-size: 12px; line-height: 1.4; }
.type-tag { font-size: 12px; line-height: 1.3; }
.rate-cell { font-size: 27px; }
.rate-cell .pct { font-size: 14px; }
.earnings { font-size: 12.5px; line-height: 1.4; }
.rate-context { font-size: 12px; line-height: 1.35; }
.best-marker { font-size: 12px; }
.rating,
.cosede { font-size: 12.5px; line-height: 1.4; }
.assets { font-size: 13.5px; }
.assets-sub { font-size: 12px; line-height: 1.35; }
.pay-pill { font-size: 12px; line-height: 1.35; padding: 4px 7px; }
.est-mark { font-size: 12px; }

.rate-section-row strong,
.rate-section-mobile strong { font-size: 18px; }

/* Keep the results section label fully visible below the optimizer. */
table.compare thead th {
  position: static;
  top: auto;
  z-index: auto;
}

.rate-section-row td {
  padding-top: 18px !important;
  padding-bottom: 15px !important;
  overflow: visible;
}

.rate-section-row strong {
  line-height: 1.25;
}

/* Official Capital.ec brand assets. */
.brand {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  line-height: 0;
}

.brand-wordmark {
  display: block;
  width: 158px;
  height: auto;
}

.brand-symbol {
  display: none;
  width: 38px;
  height: 38px;
  object-fit: contain;
}

@media (max-width: 760px) {
  .brand-wordmark {
    display: block;
    width: 136px;
  }

  .brand-symbol { display: none; }
}

@media (max-width: 360px) {
  .brand-wordmark { width: 122px; }
}

.rate-section-row span,
.rate-section-mobile span,
.rate-period-row td,
.rate-period-mobile { font-size: 12px; line-height: 1.4; }

.stale-rate-marker { font-size: 12px; line-height: 1.4; }
.ranking-method { font-size: 13px; }
.clear-filters,
.matrix-toggle { font-size: 12px; }

.filter-label { font-size: 12.5px; }
.filter-select,
.search-input { font-size: 14px; }
.unit-toggle button { font-size: 12px; }
.chip { font-size: 12.5px; }

.mobile-best-marker { font-size: 12px; }
.card-kv .k { font-size: 12px; line-height: 1.35; }
.card-kv .v { font-size: 14px; line-height: 1.4; }
.card-rate { font-size: 31px; }
.card-rate .pct { font-size: 15px; }

.trust-item .big { font-size: 28px; }
.trust-item h4 { font-size: 12px; line-height: 1.4; }
.trust-item p { font-size: 14px; line-height: 1.5; }

.learn-head h1 { font-size: clamp(36px, 3.7vw, 46px); }

.learn-panel h3, .about-page .learn-panel h2,
.learn-table-head h3,
.learn-tax h3,
.faq-section h3,
.learn-sources h3, .about-page .learn-sources h2 { font-size: 23px; line-height: 1.2; }

.learn-panel p,
.faq-section p,
.rate-sources-guide ol { font-size: 15px; }

.learn-table { font-size: 14px; }
.learn-table th { font-size: 12px; }
.learn-note { font-size: 13.5px; }
.learn-sources a { font-size: 13px; }

@media (max-width: 760px) {
  .mobile .hero,
  .hero { padding: 27px 16px 38px; }

  .mobile .hero-badge,
  .hero-badge {
    margin: 0 0 32px;
    font-size: 12px;
    line-height: 1.45;
  }

  .mobile .hero h1,
  .hero h1 {
    max-width: 560px;
    margin-bottom: 18px;
    font-size: clamp(40px, 11.5vw, 52px);
    line-height: 1.025;
    letter-spacing: -.045em;
  }

  .mobile .hero p,
  .hero p {
    margin: 0;
    font-size: 16px;
    line-height: 1.55;
  }

  .mobile .hero-form,
  .hero-form { margin-top: 28px; }

  .mobile .hero-meta,
  .hero-meta {
    align-items: flex-start;
    justify-content: flex-start;
    font-size: 12px;
    line-height: 1.45;
  }

  .mobile .section-title,
  .section-title { font-size: 28px; }

  .search-summary { font-size: 13.5px; line-height: 1.5; }

  .mobile-collapse > summary,
  .mobile .mobile-collapse > summary { font-size: 12px !important; }

  .mobile .topbar .nav .alert-nav-btn::before { font-size: 12px; }

  .sort-toggle button { font-size: 12px; }
  .rate-section-mobile strong { font-size: 19px; }
  .rate-section-mobile span,
  .rate-period-mobile { font-size: 12px; }

  .trust-item .big { font-size: 26px; }
  .trust-item h4 { font-size: 12px; }
  .trust-item p { font-size: 13.5px; }

  .mobile .learn-head h1,
  .learn-head h1 { font-size: 34px; }
}

/* About page: founder story */
.about-page {
  max-width: var(--maxw);
  margin: 0 auto;
  background: #f6f5f2;
}

.about-story {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .75fr);
  gap: clamp(48px, 7vw, 96px);
  align-items: start;
}

.about-story-copy h1 {
  max-width: 760px;
  margin: 10px 0 28px;
  color: var(--navy);
  font-family: var(--display);
  font-size: clamp(46px, 5.2vw, 68px);
  font-weight: 650;
  line-height: 1.02;
  letter-spacing: -.042em;
}

.about-story-copy > p {
  max-width: 720px;
  margin: 0 0 17px;
  color: #42546a;
  font-size: 17px;
  line-height: 1.7;
}

.about-emphasis {
  margin: 25px 0 !important;
  padding-left: 18px;
  border-left: 3px solid var(--accent);
  color: var(--navy) !important;
}

.about-emphasis strong {
  font-size: 19px;
  line-height: 1.55;
}

.about-goal { margin-bottom: 27px !important; }

.about-contact {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 28px;
}

.about-contact a {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 9px 16px;
  border: 1px solid #c9d4e2;
  border-radius: 999px;
  background: #fff;
  color: var(--navy);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  transition: border-color .2s ease, color .2s ease, transform .2s ease;
}

.about-contact a:hover {
  border-color: var(--accent);
  color: var(--accent-dark);
  transform: translateY(-1px);
}

.about-founder-visual {
  width: 100%;
  max-width: 390px;
  margin: 0;
  justify-self: end;
}

.about-founder-photo {
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border: 0;
  border-radius: 24px;
  background: #deedfc;
  box-shadow: none;
}

.about-founder-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.about-founder-visual figcaption {
  display: grid;
  gap: 3px;
  padding: 16px 4px 0;
}

.about-founder-visual figcaption strong {
  color: var(--navy);
  font-size: 15px;
  line-height: 1.35;
}

.about-founder-visual figcaption span {
  color: #67788d;
  font-size: 13px;
  line-height: 1.4;
}

.about-transparency {
  display: grid;
  grid-template-columns: minmax(250px, .8fr) minmax(0, 1.2fr);
  gap: 28px 56px;
  margin-top: 72px;
  padding: 40px;
  border-radius: 24px;
  background: #deedfc;
}

.about-transparency h2 {
  max-width: 430px;
  margin: 8px 0 0;
  color: var(--navy);
  font-family: var(--display);
  font-size: clamp(30px, 3vw, 40px);
  font-weight: 650;
  line-height: 1.08;
  letter-spacing: -.03em;
}

.about-transparency-copy p {
  margin: 0 0 14px;
  color: #354a62;
  font-size: 16px;
  line-height: 1.65;
}

.about-principles {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.about-principles span {
  position: relative;
  padding: 14px 16px 14px 39px;
  border: 1px solid rgba(11, 45, 95, .11);
  border-radius: 12px;
  background: rgba(255, 255, 255, .66);
  color: var(--navy);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
}

.about-principles span::before {
  position: absolute;
  top: 14px;
  left: 16px;
  content: "✓";
  color: var(--accent-dark);
  font-weight: 800;
}

.about-secondary-grid {
  display: grid;
  grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr);
  gap: 18px;
  margin-top: 24px;
}

.about-secondary-grid .learn-panel,
.about-secondary-grid .learn-sources {
  height: 100%;
  margin: 0;
  background: rgba(255, 255, 255, .72);
}

@media (max-width: 760px) {
  .about-story {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .about-story-copy h1 {
    margin-bottom: 23px;
    font-size: 42px;
  }

  .about-story-copy > p {
    font-size: 16px;
    line-height: 1.65;
  }

  .about-emphasis strong { font-size: 18px; }

  .about-founder-visual {
    max-width: 340px;
    justify-self: center;
  }

  .about-transparency {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 50px;
    padding: 28px 20px;
  }

  .about-transparency h2 { font-size: 32px; }

  .about-principles {
    grid-column: auto;
    grid-template-columns: 1fr;
  }

  .about-secondary-grid { grid-template-columns: 1fr; }
}

/* Guide: topic-led navigation and progressive disclosure */
.guide-page {
  display: flex;
  flex-direction: column;
}

.guide-page > .learn-head { order: 0; }
.guide-page > .guide-topic-nav { order: 1; }
.guide-page > .guide-intro-grid { order: 2; }
.guide-page > #guia-riesgo { order: 3; }
.guide-page > .guide-risk-grid { order: 4; }
.guide-page > .rating-education { order: 5; }
.guide-page > .guide-protection-grid { order: 6; margin-top: 16px; }
.guide-page > .guide-coverage-table { order: 7; }
.guide-page > #guia-condiciones { order: 8; }
.guide-page > #guia-fuentes { order: 9; }
.guide-page > .guide-faq { order: 10; }
.guide-page > .guide-cta-panel { order: 11; }

.guide-topic-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 28px;
}

.guide-topic-nav a {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2px 13px;
  min-height: 104px;
  padding: 18px;
  border: 1px solid #dfe3e8;
  border-radius: 16px;
  background: rgba(255, 255, 255, .78);
  color: var(--navy);
  text-decoration: none;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.guide-topic-nav a:hover {
  border-color: #9dbce2;
  box-shadow: 0 14px 32px -27px rgba(11, 45, 95, .5);
  transform: translateY(-2px);
}

.guide-topic-nav a > span {
  grid-row: 1 / 3;
  color: var(--accent-dark);
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
}

.guide-topic-nav strong {
  font-size: 14px;
  line-height: 1.35;
}

.guide-topic-nav small {
  color: #67788d;
  font-size: 12px;
  line-height: 1.4;
}

.guide-intro-grid { margin-bottom: 16px; }

.guide-intro-panel {
  position: relative;
  min-height: 190px;
  padding: 26px;
  overflow: hidden;
}

.guide-intro-panel h3 {
  max-width: 440px;
  margin: 22px 0 11px;
  font-size: 26px;
  line-height: 1.15;
}

.guide-intro-panel p {
  max-width: 610px;
  font-size: 15px;
  line-height: 1.62;
}

.guide-section-number {
  color: var(--accent-dark);
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .13em;
}

#guia-basicos,
#guia-evaluar,
#guia-riesgo,
#guia-proteccion,
#guia-condiciones,
#guia-fuentes { scroll-margin-top: 96px; }

.guide-source-note {
  margin: 14px 0 0;
  padding-top: 12px;
  border-top: 1px solid #e3e7ec;
  color: #67788d;
  font-family: var(--mono);
  font-size: 12px;
  line-height: 1.5;
}

.faq-section details:not([open]) { padding-bottom: 12px; }

.faq-section summary {
  position: relative;
  padding-right: 32px;
  list-style: none;
}

.faq-section summary::-webkit-details-marker { display: none; }

.faq-section summary::after {
  position: absolute;
  top: 50%;
  right: 4px;
  content: "+";
  color: var(--accent-dark);
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  transform: translateY(-50%);
}

.faq-section details[open] summary::after { content: "−"; }

.guide-cta-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  margin-top: 22px;
  padding: 28px 30px;
  border-radius: 18px;
  background: var(--navy);
  color: #fff;
}

.guide-cta-panel div {
  display: grid;
  gap: 6px;
}

.guide-cta-panel span {
  color: #bcd8fb;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.guide-cta-panel strong {
  max-width: 580px;
  font-family: var(--display);
  font-size: 23px;
  font-weight: 600;
  line-height: 1.25;
}

.guide-cta-panel button {
  flex: 0 0 auto;
  min-height: 48px;
  padding: 12px 20px;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: var(--navy);
  font: inherit;
  font-size: 13px;
  font-weight: 750;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}

.guide-cta-panel button:hover {
  background: #deedfc;
  color: var(--accent-dark);
  transform: translateY(-1px);
}

@media (max-width: 760px) {
  .guide-topic-nav { grid-template-columns: 1fr; }

  .guide-topic-nav a { min-height: 86px; }

  .guide-intro-panel {
    min-height: auto;
    padding: 22px;
  }

  .guide-intro-panel h3 { font-size: 23px; }

  .guide-cta-panel {
    align-items: flex-start;
    flex-direction: column;
    padding: 24px 20px;
  }

  .guide-cta-panel strong { font-size: 21px; }

  .guide-cta-panel button { width: 100%; }
}

/* Keep hidden BCE tooltips inside narrow viewports so they never create a
   horizontal scrollbar before they are opened. */
@media (max-width: 760px) {
  .product-tab-description .bce-info-popover {
    right: 0;
    left: auto;
    transform: translateY(4px);
  }

  .product-tab-description .bce-info-tip:hover .bce-info-popover,
  .product-tab-description .bce-info-tip:focus .bce-info-popover {
    transform: translateY(0);
  }

  .bce-reference-note .bce-info-popover {
    right: auto;
    left: 0;
    transform: translateY(4px);
  }

  .bce-reference-note .bce-info-tip:hover .bce-info-popover,
  .bce-reference-note .bce-info-tip:focus .bce-info-popover {
    transform: translateY(0);
  }
}

/* BCE eligibility and dependent filters */
.bce-rated-toggle {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  margin: 0 0 16px;
  padding: 14px 16px;
  border: 1px solid #cbd9e8;
  border-radius: 12px;
  background: #f4f8fd;
  color: var(--navy);
  cursor: pointer;
}

.bce-rated-toggle input {
  width: 17px;
  height: 17px;
  margin: 2px 0 0;
  accent-color: var(--accent);
  cursor: pointer;
}

.bce-rated-toggle > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}

.bce-rated-toggle strong {
  font-size: 13px;
  line-height: 1.35;
}

.bce-rated-toggle small {
  color: #5d6e82;
  font-size: 12px;
  line-height: 1.45;
}

.bce-advanced .filters {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.bce-unrated {
  display: inline-block;
  max-width: 155px;
  color: #69798c;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
}

@media (max-width: 760px) {
  .bce-rated-toggle {
    margin-bottom: 14px;
    padding: 13px 14px;
  }

  .bce-rated-toggle strong { font-size: 12.5px; }
  .bce-rated-toggle small { font-size: 12px; }
  .bce-unrated { max-width: none; }
}

/* Live data markers remain animated in both comparison modes. */
.hero-badge .live-dot,
.hero-meta .live-dot,
.bce-week-label .live-dot {
  animation: pulse 2s ease-in-out infinite;
}

/* Final layout alignment for Préstamos and Inversiones. */
.credit-hero {
  display: block;
  margin-top: 0;
  padding: 46px 28px 68px;
  border: 0;
  border-radius: 0;
  overflow: visible;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .16), transparent 46%),
    #deedfc;
}

.credit-hero .hero-inner {
  display: block;
  max-width: var(--maxw);
  min-height: 0;
}

.credit-hero .hero-badge { margin-bottom: 52px; }
.credit-hero h1 { max-width: 950px; }
.credit-hero > .hero-inner > p { max-width: 760px; }

.credit-hero-form {
  max-width: none;
  grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(190px, auto);
}

.credit-hero-form.has-subtype {
  grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(190px, auto);
}

.credit-hero-form .hero-field { min-width: 0; }
.credit-hero-form .hero-cta { min-width: 190px; }
.credit-hero-meta { max-width: none; }

main.credit-results {
  display: block;
  max-width: var(--maxw);
  margin: 64px auto 96px;
  padding: 34px 24px 56px;
  border: 1px solid #e1e4e8;
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 12px 36px -34px rgba(9, 35, 79, .35);
  scroll-margin-top: 24px;
}

.credit-results-head {
  align-items: end;
  margin: 0 0 22px;
  padding: 0 4px 23px;
  border-bottom: 1px solid #dfe3e8;
}

.credit-results-head .section-title {
  margin: 0;
  color: var(--navy);
  font-size: 32px;
  font-weight: 600;
  letter-spacing: -.035em;
}

.credit-results-head .search-summary {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 14px;
}

.credit-reference-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: -2px 0 18px;
  padding: 13px 15px;
  border: 1px solid #cfe0f4;
  border-radius: 9px;
  color: #36526f;
  background: #f2f7fd;
}

.credit-reference-note p {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.55;
}

.credit-reference-note strong { color: #173f70; }

.credit-reference-icon {
  display: inline-grid;
  flex: 0 0 18px;
  place-items: center;
  width: 18px;
  height: 18px;
  border: 1px solid #0b63ce;
  border-radius: 50%;
  color: #0b63ce;
  font: 700 12px/1 var(--mono);
}

@media (max-width: 1180px) {
  .credit-hero-form,
  .credit-hero-form.has-subtype {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .credit-hero-form .hero-cta {
    grid-column: 1 / -1;
    min-height: 58px;
  }
}

@media (max-width: 760px) {
  .credit-hero {
    margin-top: 0;
    padding: 30px 15px 38px;
  }

  .credit-hero .hero-badge { margin-bottom: 25px; }

  .credit-hero-form,
  .credit-hero-form.has-subtype {
    grid-template-columns: 1fr;
  }

  .credit-hero-form .hero-cta { grid-column: auto; }

  main.credit-results {
    margin: 26px 10px 60px;
    padding: 24px 12px 38px;
    border-radius: 20px;
  }

  .credit-results-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 18px;
    padding-inline: 4px;
  }

  .credit-sort { width: 100%; }
}

/* Final Préstamos search and results layout. */
.credit-hero-form {
  grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(190px, auto);
}

.credit-hero-form.has-subtype {
  grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(190px, auto);
}

.credit-advanced {
  margin: 0 0 32px;
  padding: 0 4px 26px;
  border-bottom: 1px solid #dfe3e8;
}

.credit-advanced > summary { margin-bottom: 15px; color: var(--navy); }
.credit-advanced .filters { grid-template-columns: repeat(auto-fit, minmax(185px, 1fr)); margin-bottom: 10px; }
.credit-advanced-note { margin: 0 4px; color: #60748c; font-size: 12px; line-height: 1.5; }

.credit-clear-filters {
  align-self: end;
  min-height: 48px;
  padding: 10px 14px;
  border: 1px solid #aebed0;
  border-radius: 12px;
  color: #184774;
  background: #fff;
  font: 700 12px/1.2 inherit;
  cursor: pointer;
}

.credit-clear-filters:hover { border-color: var(--accent); color: var(--accent-dark); }

.credit-result-main {
  grid-template-columns: 52px minmax(225px, 1.35fr) minmax(125px, .65fr) minmax(85px, .42fr) minmax(120px, .62fr) minmax(125px, .65fr) 94px;
  gap: 14px;
}

.credit-result-stat strong { line-height: 1.25; }
.credit-result-detail { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.credit-result-detail .credit-detail-context {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 22px;
  background: #f6f9fd;
}

.credit-result-detail .credit-detail-context p { grid-column: auto; margin: 0; }
.credit-result-detail .credit-detail-context b { color: #173f70; }
.credit-result-detail .credit-detail-disclaimer { grid-column: 1 / -1; }

@media (max-width: 1180px) {
  .credit-result-main {
    grid-template-columns: 50px minmax(210px, 1.25fr) minmax(120px, .65fr) minmax(85px, .42fr) minmax(115px, .6fr) 88px;
  }

  .credit-average-stat { display: none; }
}

@media (max-width: 940px) {
  .credit-result-main { grid-template-columns: 50px minmax(0, 1fr) 125px 90px; }
  .credit-result-main .credit-result-stat { display: none; }
}

@media (max-width: 760px) {
  .credit-advanced { margin-bottom: 24px; padding-inline: 4px; }
  .credit-advanced .filters { grid-template-columns: 1fr; }
  .credit-result-main { grid-template-columns: 42px minmax(0, 1fr) auto; gap: 10px; padding: 17px 4px 17px 8px; }
  .credit-result-rate { grid-column: 2; }
  .credit-detail-toggle { grid-column: 3; grid-row: 1 / span 2; align-self: stretch; width: 68px; }
  .credit-result-detail,
  .credit-result-detail .credit-detail-context { grid-template-columns: 1fr; }
  .credit-result-detail { padding: 0 8px 18px; }
}

/* Representative loan ranking and institution-access context. */
.credit-result-inst > div span.credit-access-badge {
  border: 1px solid #edcf80;
  color: #6d4b06;
  background: #fff3cf;
}

.credit-ranking-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 18px 0 0;
  padding: 17px 19px;
  border: 1px solid #cfe0f4;
  border-radius: 13px;
  background: #f4f8fd;
}

.credit-ranking-intro h3 { margin: 0; color: #0b376d; font-size: 16px; }
.credit-ranking-intro p { margin: 5px 0 0; color: #5f738a; font-size: 12px; line-height: 1.5; }
.credit-ranking-intro > span {
  flex: 0 0 auto;
  padding: 7px 10px;
  border-radius: 999px;
  color: #0a5eaa;
  background: #e1f0ff;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.credit-result-card.limited-sample { background: #fcfcfb; }
.credit-access-detail a { color: #096ad2; font-weight: 700; text-decoration: none; }
.credit-access-detail a:hover { text-decoration: underline; }

.credit-limited-results {
  margin-top: 30px;
  overflow: hidden;
  border: 1px solid #d8e1eb;
  border-radius: 15px;
  background: #fbfcfe;
}

.credit-limited-results > summary {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 52px 18px 20px;
  color: #173f70;
  cursor: pointer;
  list-style: none;
}

.credit-limited-results > summary::-webkit-details-marker { display: none; }
.credit-limited-results > summary::after {
  content: '+';
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  color: #0b6edc;
  font-size: 22px;
  font-weight: 500;
}
.credit-limited-results[open] > summary::after { content: '−'; }
.credit-limited-results > summary span { font-size: 15px; font-weight: 750; }
.credit-limited-results > summary small { color: #687b91; font-size: 12px; }
.credit-limited-results > p {
  margin: 0;
  padding: 0 20px 17px;
  border-bottom: 1px solid #e0e7ef;
  color: #61758b;
  font-size: 12px;
  line-height: 1.55;
}
.credit-limited-results .credit-result-list { margin: 0; border-top: 0; }
.credit-limited-results .credit-load-more { margin: 18px; }

.institution-directory-result-badges small.restricted,
.institution-profile-status span.restricted {
  border: 1px solid #edcf80;
  color: #6d4b06;
  background: #fff3cf;
}

.institution-profile-access-note {
  display: grid;
  gap: 7px;
  margin-top: 15px;
  padding: 13px 14px;
  border: 1px solid #edcf80;
  border-radius: 10px;
  color: #604b1d;
  background: #fff8e5;
}
.institution-profile-access-note strong { color: #654400; font-size: 12px; }
.institution-profile-access-note span { font-size: 12px; line-height: 1.5; }
.institution-profile-access-note a { color: #075fae; font-size: 12px; font-weight: 700; text-decoration: none; }
.institution-profile-access-note a:hover { text-decoration: underline; }

.institution-profile-source-head strong.institution-profile-credit-count {
  display: grid;
  max-width: 190px;
  gap: 3px;
  justify-items: end;
  text-align: right;
}
.institution-profile-credit-count b { font: inherit; }
.institution-profile-credit-count small {
  color: #1769ff;
  font: 750 12px/1.25 var(--mono);
  letter-spacing: .035em;
  text-transform: uppercase;
}

@media (max-width: 760px) {
  .credit-ranking-intro { align-items: flex-start; flex-direction: column; }
  .credit-sort { flex-wrap: wrap; padding-bottom: 7px; }
  .credit-sort button { max-width: 100%; white-space: normal; }
  .credit-limited-results > summary { align-items: flex-start; flex-direction: column; gap: 5px; }
  .institution-profile-source-head strong.institution-profile-credit-count { max-width: 155px; }
}

/* Institutional size is context, not a claim of geographic reach. */
.credit-mobile-assets { display: none !important; }
.credit-assets-stat strong { font-size: 13px; line-height: 1.3; white-space: nowrap; }

@media (max-width: 1180px) {
  .credit-volume-stat { display: none; }
  .credit-assets-stat { display: grid !important; }
}

@media (max-width: 940px) {
  .credit-assets-stat { display: none !important; }
  .credit-mobile-assets {
    display: block !important;
    margin-top: 4px !important;
    color: #436382 !important;
    font-weight: 700;
  }
}

/* Savings account ranking */
.savings-page {
  min-height: 100vh;
  padding: 14px 0 80px;
  color: #0a2b5e;
  background: #f6f8fb;
}

.savings-page > section {
  width: min(1518px, calc(100% - 48px));
  margin-inline: auto;
}

.savings-kicker {
  display: block;
  margin-bottom: 9px;
  color: #0874df;
  font: 750 12px/1.3 var(--mono);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.savings-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, .55fr);
  gap: 38px;
  margin-top: 0 !important;
  padding: 64px 64px 58px;
  overflow: hidden;
  border: 1px solid #c9def4;
  border-radius: 28px;
  background: #deedfc;
}

.savings-hero-copy { max-width: 920px; }
.savings-review-status {
  display: flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  margin: 0 0 20px !important;
  padding: 8px 12px;
  border: 1px solid rgba(8, 116, 223, .18);
  border-radius: 999px;
  color: #174e85 !important;
  background: rgba(255, 255, 255, .66);
  font-size: 12px !important;
  line-height: 1.2 !important;
}
.savings-review-status > span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #1689ed;
  box-shadow: 0 0 0 4px rgba(22, 137, 237, .12);
}
.savings-hero h1 {
  max-width: 920px;
  margin: 0;
  color: #072c67;
  font: 750 clamp(42px, 5.5vw, 76px)/.98 var(--sans);
  letter-spacing: -.055em;
}
.savings-hero-copy > p {
  max-width: 830px;
  margin: 24px 0 0;
  color: #264d78;
  font-size: 18px;
  line-height: 1.62;
}
.savings-hero-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 30px;
}
.savings-hero-trust span {
  padding: 8px 12px;
  border: 1px solid rgba(16, 92, 170, .18);
  border-radius: 999px;
  color: #174e85;
  background: rgba(255, 255, 255, .64);
  font-size: 12px;
  font-weight: 700;
}
.savings-hero-card {
  display: flex;
  align-self: stretch;
  flex-direction: column;
  justify-content: center;
  padding: 36px;
  border: 1px solid rgba(18, 80, 145, .13);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 20px 52px rgba(20, 70, 125, .10);
}
.savings-hero-card > span {
  color: #55718d;
  font: 700 12px/1.3 var(--mono);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.savings-hero-card > strong {
  margin-top: 14px;
  color: #075fcb;
  font: 750 clamp(42px, 5vw, 64px)/1 var(--sans);
  letter-spacing: -.05em;
}
.savings-hero-card p { margin: 23px 0 0; color: #315375; font-size: 14px; line-height: 1.55; }
.savings-hero-card small { margin-top: 18px; padding-top: 17px; border-top: 1px solid #dbe6f1; color: #52657a; font-size: 12px; line-height: 1.5; }

.savings-controls {
  margin-top: 22px !important;
  padding: 22px;
  border: 1px solid #d9e3ed;
  border-radius: 22px;
  background: #fff;
}
.savings-category-tabs {
  display: inline-flex;
  gap: 5px;
  padding: 4px;
  border-radius: 13px;
  background: #edf2f7;
}
.savings-category-tabs button {
  min-width: 132px;
  padding: 11px 16px;
  border: 0;
  border-radius: 10px;
  color: #61758a;
  background: transparent;
  font: 750 12px/1.2 var(--sans);
  cursor: pointer;
}
.savings-category-tabs button.active { color: #0b3d78; background: #fff; box-shadow: 0 2px 8px rgba(18, 51, 87, .08); }
.savings-category-tabs button:disabled { cursor: default; opacity: .68; }
.savings-category-tabs button small { display: block; margin-top: 3px; color: #73859a; font: 650 12px/1.2 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.savings-amount-panel {
  display: grid;
  grid-template-columns: minmax(280px, .85fr) minmax(520px, 1.15fr);
  gap: 28px;
  align-items: end;
  padding: 28px 4px 2px;
}
.savings-amount-panel h2 { margin: 0; color: #092f64; font-size: 27px; letter-spacing: -.025em; }
.savings-amount-panel p { max-width: 520px; margin: 8px 0 0; color: #62778c; font-size: 13px; line-height: 1.55; }
.savings-amount-options { display: grid; grid-template-columns: minmax(0, 1fr) 170px; gap: 12px; }
.savings-presets { display: grid; grid-template-columns: repeat(4, minmax(82px, 1fr)); gap: 7px; }
.savings-presets button {
  min-height: 52px;
  padding: 9px 7px;
  border: 1px solid #bdd0e4;
  border-radius: 12px;
  color: #214b77;
  background: #fff;
  font: 750 12px/1.2 var(--sans);
  cursor: pointer;
}
.savings-presets button:hover { border-color: #0874df; }
.savings-presets button.active { border-color: #0874df; color: #fff; background: #0864bb; }
.savings-custom-amount { display: grid; gap: 4px; }
.savings-custom-amount > span { color: #61758a; font-size: 12px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.savings-custom-amount > div {
  display: flex;
  align-items: center;
  min-height: 52px;
  padding: 0 12px;
  border: 1px solid #bdd0e4;
  border-radius: 12px;
  background: #fff;
}
.savings-custom-amount b { color: #0b5fc0; }
.savings-custom-amount input { min-width: 0; width: 100%; padding: 8px; border: 0; outline: 0; color: #0b376d; background: transparent; font: 750 13px/1.2 var(--sans); }

.savings-ranking {
  margin-top: 22px !important;
  padding: 30px;
  border: 1px solid #d9e3ed;
  border-radius: 22px;
  background: #fff;
}
.savings-ranking-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 30px;
  padding-bottom: 24px;
}
.savings-ranking-header h2 { margin: 0; color: #082f65; font-size: 30px; letter-spacing: -.03em; }
.savings-ranking-header p { max-width: 780px; margin: 8px 0 0; color: #657a90; font-size: 12.5px; line-height: 1.55; }
.savings-compare-action { display: grid; flex: 0 0 auto; gap: 5px; justify-items: end; }
.savings-compare-action button {
  min-height: 46px;
  padding: 11px 17px;
  border: 0;
  border-radius: 12px;
  color: #fff;
  background: #0864bb;
  font: 750 12px/1.2 var(--sans);
  cursor: pointer;
}
.savings-compare-action button:disabled { color: #8293a7; background: #e9eef4; cursor: default; }
.savings-compare-action small { color: #52657a; font-size: 12px; }
.savings-selection-notice { margin: -8px 0 15px; padding: 10px 13px; border-radius: 9px; color: #6d4b06; background: #fff3cf; font-size: 12px; }

.savings-table-wrap { overflow: hidden; border-top: 1px solid #d7e1eb; }
.savings-table-head,
.savings-row-main {
  display: grid;
  grid-template-columns: 54px minmax(230px, 1.28fr) minmax(150px, .68fr) minmax(130px, .58fr) minmax(175px, .78fr) minmax(175px, .78fr) 92px;
  gap: 14px;
  align-items: center;
}
.savings-table-head {
  min-height: 58px;
  padding: 0 16px;
  color: #5e7288;
  font: 750 12px/1.3 var(--mono);
  letter-spacing: .05em;
  text-transform: uppercase;
}
.savings-table-head span:not(:nth-child(2)) { text-align: center; }
.savings-row-card { border-top: 1px solid #dfe6ee; }
.savings-row-card:first-child { border-top: 0; }
.savings-row-card.expanded { margin-inline: -1px; border-inline: 1px solid #bdd7f1; background: #f7faff; }
.savings-row-main { min-height: 116px; padding: 16px; }
.savings-row-card:first-child .savings-row-main { background: #f1f7ff; box-shadow: inset 4px 0 #1687ee; }
.savings-position { display: grid; gap: 10px; place-items: center; }
.savings-position > strong { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; color: #fff; background: #0864bb; font-size: 14px; }
.savings-position label { position: relative; display: grid; width: 24px; height: 24px; place-items: center; cursor: pointer; }
.savings-position input { position: absolute; opacity: 0; pointer-events: none; }
.savings-position label span { width: 17px; height: 17px; border: 1px solid #9eb5cc; border-radius: 5px; background: #fff; }
.savings-position input:checked + span { border-color: #0874df; background: #0874df; box-shadow: inset 0 0 0 3px #fff; }
.savings-position input:disabled + span { opacity: .45; }
.savings-product { display: flex; min-width: 0; gap: 13px; align-items: center; }
.savings-product > img,
.savings-logo-fallback { flex: 0 0 48px; width: 48px; height: 48px; object-fit: contain; border: 1px solid #d7e1eb; border-radius: 12px; background: #fff; }
.savings-logo-fallback { display: grid; place-items: center; color: #fff; background: #0864bb; font-weight: 800; }
.savings-product > div { min-width: 0; }
.savings-product span { display: block; overflow: hidden; color: #50708e; font-size: 12px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.savings-product h3 { margin: 3px 0 5px; overflow: hidden; color: #082f65; font-size: 17px; line-height: 1.2; text-overflow: ellipsis; }
.savings-product small.savings-verification-inline { display: inline-flex; width: auto; padding: 4px 7px; border-radius: 999px; font: 750 12px/1 var(--mono); letter-spacing: .04em; text-transform: uppercase; }
.savings-verification-inline.verified { color: #0b704f; background: #e3f5ee; }
.savings-verification-inline.partial { color: #8a5a00; background: #fff1cf; }
.savings-verification-inline.pending { color: #804047; background: #fce7e9; }
.savings-rate-cell,
.savings-limit-cell,
.savings-crediting-cell,
.savings-opening-cell { display: grid; gap: 4px; text-align: center; }
.savings-rate-cell strong { color: #075fcb; font-size: 28px; letter-spacing: -.035em; }
.savings-rate-cell strong.unavailable { color: #8a5a00; font-size: 13px; line-height: 1.25; letter-spacing: 0; }
.savings-row-main small { color: #52657a; font-size: 12px; line-height: 1.38; }
.savings-row-main em { color: #0872ce; font-size: 12px; font-style: normal; font-weight: 700; }
.savings-limit-cell strong,
.savings-crediting-cell strong,
.savings-opening-cell strong { color: #173f70; font-size: 12px; line-height: 1.35; }
.savings-detail-toggle {
  min-height: 50px;
  padding: 8px;
  border: 1px solid #b8cbe0;
  border-radius: 10px;
  color: #0b376d;
  background: #fff;
  font: 750 12px/1.2 var(--sans);
  cursor: pointer;
}
.savings-detail-toggle:hover { border-color: #0874df; color: #0874df; }

.savings-detail-panel { padding: 28px 26px 30px; border-top: 1px solid #cfdef0; background: #f7faff; }
.savings-detail-intro { display: flex; justify-content: space-between; gap: 28px; align-items: flex-start; margin-bottom: 20px; }
.savings-detail-intro h3 { margin: 0; color: #082f65; font-size: 26px; }
.savings-detail-intro p { max-width: 720px; margin: 7px 0 0; color: #56718d; font-size: 13px; line-height: 1.55; }
.savings-verification { display: grid; flex: 0 0 330px; gap: 4px; padding: 14px 16px; border-radius: 12px; }
.savings-verification.verified { color: #0b6047; background: #e6f5ef; }
.savings-verification.partial { color: #72500d; background: #fff3d6; }
.savings-verification.pending { color: #7b3f47; background: #fce9eb; }
.savings-verification strong { font-size: 12px; }
.savings-verification span { font-size: 12px; font-weight: 700; text-transform: uppercase; }
.savings-verification small { font-size: 12px; line-height: 1.45; }
.savings-detail-section { margin-top: 14px; padding: 20px; border: 1px solid #d8e4ef; border-radius: 15px; background: #fff; }
.savings-detail-section h4 { margin: 0 0 14px; color: #123d70; font-size: 16px; }
.savings-detail-section > p { color: #58718a; font-size: 12px; line-height: 1.55; }
.savings-detail-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.savings-detail-grid.compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.savings-detail-field { display: grid; align-content: start; gap: 7px; padding: 13px; border: 1px solid #e0e7ef; border-radius: 10px; background: #fbfcfe; }
.savings-detail-field > span { color: #52657a; font: 700 12px/1.3 var(--mono); letter-spacing: .04em; text-transform: uppercase; }
.savings-detail-field > strong { color: #123967; font-size: 12px; line-height: 1.38; }
.savings-method-note { margin: 14px 0; padding: 11px 13px; border-radius: 8px; color: #536d87; background: #f3f7fb; font-size: 12px !important; }
.savings-tier-wrap { overflow-x: auto; }
.savings-tier-table { width: 100%; border-collapse: collapse; color: #244b72; font-size: 12px; }
.savings-tier-table th,
.savings-tier-table td { padding: 11px 12px; border-bottom: 1px solid #e2e8ef; text-align: left; }
.savings-tier-table th { color: #687d93; font: 750 12px/1.2 var(--mono); letter-spacing: .04em; text-transform: uppercase; }
.savings-tier-table tr.active td { color: #075fcb; background: #eaf4ff; font-weight: 750; }
.savings-detail-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.savings-alert-list { display: grid; gap: 7px; margin: 13px 0 0; padding-left: 18px; color: #7b590f; font-size: 12px; line-height: 1.5; }
.savings-security { background: #edf6ff; }
.savings-section-title { display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.savings-section-title h4 { margin-bottom: 0; }
.savings-section-title > small { max-width: 430px; color: #607991; font-size: 12px; text-align: right; }
.savings-security-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.savings-cosede-note { margin: 14px 0 0 !important; color: #59738c !important; font-size: 12px !important; }
.savings-detail-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.savings-detail-actions a,
.savings-compare-links a { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 10px 14px; border-radius: 10px; font-size: 12px; font-weight: 800; letter-spacing: .035em; text-decoration: none; text-transform: uppercase; }
.savings-primary-link { color: #fff; background: #0864bb; }
.savings-secondary-link { border: 1px solid #b5c9de; color: #0a4e96; background: #fff; }
.savings-ranking-footer { display: grid; gap: 5px; margin-top: 22px; padding: 16px 18px; border-radius: 12px; color: #60758a; background: #f4f7fa; font-size: 12px; line-height: 1.5; }
.savings-ranking-footer p { margin: 0; }

.savings-compare-overlay { position: fixed; z-index: 10000; inset: 0; display: grid; place-items: center; padding: 24px; background: rgba(3, 21, 45, .70); backdrop-filter: blur(5px); }
.savings-compare-modal { width: min(1500px, 100%); max-height: calc(100vh - 48px); overflow: auto; border-radius: 22px; background: #f5f8fc; box-shadow: 0 28px 90px rgba(0, 15, 38, .35); }
.savings-compare-modal > header { position: sticky; z-index: 2; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 24px; border-bottom: 1px solid #d7e2ed; background: rgba(255, 255, 255, .97); }
.savings-compare-modal > header h2 { margin: 0; color: #082f65; font-size: 24px; }
.savings-compare-modal > header button { padding: 10px 14px; border: 1px solid #b9ccdf; border-radius: 10px; color: #0b376d; background: #fff; font-weight: 750; cursor: pointer; }
.savings-compare-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding: 18px; }
.savings-compare-grid.count-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.savings-compare-grid.count-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.savings-compare-card { display: grid; align-content: start; gap: 9px; padding: 18px; border: 1px solid #d7e2ed; border-radius: 16px; background: #fff; }
.savings-compare-brand { display: flex; gap: 10px; align-items: center; min-height: 52px; }
.savings-compare-brand img { width: 44px; height: 44px; object-fit: contain; border: 1px solid #d7e2ed; border-radius: 10px; }
.savings-compare-brand small { color: #6d8094; font-size: 12px; }
.savings-compare-brand h3 { margin: 2px 0 0; color: #0a3268; font-size: 16px; }
.savings-compare-rate { display: grid; gap: 3px; margin: 7px 0; padding: 15px; border-radius: 12px; background: #eaf4ff; }
.savings-compare-rate strong { color: #075fcb; font-size: 30px; }
.savings-compare-rate span { color: #60768c; font-size: 12px; }
.savings-compare-card .savings-detail-field { padding: 10px; }
.savings-compare-links { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 5px; }
.savings-compare-links a { color: #075fcb; background: #eaf4ff; }

@media (max-width: 1280px) {
  .savings-table-head,
  .savings-row-main { grid-template-columns: 52px minmax(220px, 1.2fr) minmax(140px, .65fr) minmax(125px, .58fr) minmax(165px, .75fr) 90px; }
  .savings-table-head span:nth-child(6),
  .savings-opening-cell { display: none; }
  .savings-compare-grid.count-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1080px) {
  .desktop-nav-link { display: none !important; }
  .mobile-nav-menu { display: block; }
  .topbar-inner { gap: 12px; }
  .nav { gap: 8px !important; }
}

@media (max-width: 1000px) {
  .savings-hero { grid-template-columns: 1fr; padding: 48px; }
  .savings-hero-card { max-width: 560px; }
  .savings-amount-panel { grid-template-columns: 1fr; }
  .savings-table-head { display: none; }
  .savings-table-wrap { border-top: 0; }
  .savings-row-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .savings-row-card { overflow: hidden; border: 1px solid #dce5ee !important; border-radius: 15px; }
  .savings-row-card.expanded { grid-column: 1 / -1; margin-inline: 0; }
  .savings-row-main { grid-template-columns: 44px minmax(0, 1fr) 86px; gap: 10px; min-height: 0; }
  .savings-rate-cell { grid-column: 2; text-align: left; }
  .savings-limit-cell { grid-column: 2; text-align: left; }
  .savings-crediting-cell,
  .savings-opening-cell { display: none; }
  .savings-detail-toggle { grid-column: 3; grid-row: 1 / span 3; align-self: stretch; }
  .savings-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .savings-security-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .savings-compare-grid.count-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .savings-page { padding-top: 8px; }
  .savings-page > section { width: calc(100% - 20px); }
  .savings-hero { gap: 24px; padding: 34px 24px 25px; border-radius: 20px; }
  .savings-hero h1 { font-size: clamp(32px, 9.5vw, 42px); line-height: 1.02; }
  .savings-hero-copy > p { font-size: 15px; line-height: 1.55; }
  .savings-hero-trust { gap: 6px; margin-top: 22px; }
  .savings-hero-card { padding: 24px; }
  .savings-hero-card > strong { font-size: 44px; }
  .savings-controls,
  .savings-ranking { padding: 16px; border-radius: 17px; }
  .savings-category-tabs { width: 100%; }
  .savings-category-tabs button { flex: 1; min-width: 0; }
  .savings-amount-panel { padding-top: 23px; }
  .savings-amount-panel h2 { font-size: 23px; }
  .savings-amount-options { grid-template-columns: 1fr; }
  .savings-presets { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .savings-ranking-header { align-items: stretch; flex-direction: column; gap: 16px; }
  .savings-ranking-header h2 { font-size: 26px; }
  .savings-compare-action { justify-items: stretch; }
  .savings-compare-action small { text-align: center; }
  .savings-row-list { grid-template-columns: 1fr; }
  .savings-row-card.expanded { grid-column: auto; }
  .savings-row-main { grid-template-columns: 40px minmax(0, 1fr); padding: 14px 10px; }
  .savings-position { grid-column: 1; grid-row: 1 / span 4; align-self: start; }
  .savings-product { grid-column: 2; }
  .savings-rate-cell,
  .savings-limit-cell { grid-column: 2; }
  .savings-product > img,
  .savings-logo-fallback { flex-basis: 42px; width: 42px; height: 42px; }
  .savings-product h3 { font-size: 15px; }
  .savings-rate-cell strong { font-size: 25px; }
  .savings-detail-toggle { grid-column: 2; grid-row: auto; min-height: 40px; padding: 8px 12px; font-size: 12px; }
  .savings-detail-panel { padding: 22px 12px; }
  .savings-detail-intro { flex-direction: column; }
  .savings-verification { flex: 0 0 auto; width: 100%; }
  .savings-detail-grid,
  .savings-detail-grid.compact,
  .savings-detail-columns,
  .savings-security-grid { grid-template-columns: 1fr; }
  .savings-section-title { align-items: flex-start; flex-direction: column; }
  .savings-section-title > small { text-align: left; }
  .savings-detail-actions a { width: 100%; }
  .savings-compare-overlay { padding: 0; }
  .savings-compare-modal { width: 100%; max-height: 100vh; border-radius: 0; }
  .savings-compare-modal > header { padding: 15px; }
  .savings-compare-modal > header h2 { font-size: 19px; }
  .savings-compare-grid,
  .savings-compare-grid.count-3,
  .savings-compare-grid.count-4 { grid-template-columns: 1fr; padding: 12px; }
}

/* ========================================================================== 
   Capital.ec home hub
   A clear entry point for the four primary financial decisions.
   ========================================================================== */

body[data-page="inicio"] { background: #f8fafc; }

.brand {
  border: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  cursor: pointer;
}

.brand:hover,
.brand:focus-visible { background: transparent !important; }

.brand:focus-visible {
  outline: 3px solid rgba(18, 132, 231, .25);
  outline-offset: 8px;
}

.nav .desktop-nav-link { white-space: nowrap; }

.home-page {
  --home-blue: #086fdb;
  --home-navy: #082f65;
  --home-pale: #deedfc;
  color: #102d55;
  background: #f8fafc;
}

.home-page button { font-family: var(--sans); }

.home-hero,
.home-choice-section,
.home-context-section,
.home-transparency-strip {
  width: min(var(--maxw), calc(100% - 48px));
  margin-inline: auto;
}

.home-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.36fr) minmax(330px, .64fr);
  gap: 64px;
  align-items: center;
  margin-top: 26px;
  padding: 62px 68px;
  overflow: hidden;
  border: 1px solid #c9def2;
  border-radius: 28px;
  background:
    radial-gradient(circle at 84% 5%, rgba(255, 255, 255, .88) 0 7%, transparent 31%),
    linear-gradient(135deg, #e7f3ff 0%, #d7eaff 100%);
  box-shadow: 0 18px 48px -40px rgba(8, 47, 101, .45);
}

.home-kicker,
.home-aside-label,
.home-tool-eyebrow {
  color: #086fdb;
  font: 750 12px/1.4 var(--mono);
  letter-spacing: .105em;
  text-transform: uppercase;
}

.home-hero h1 {
  max-width: 760px;
  margin: 19px 0 20px;
  color: #082f65;
  font-size: clamp(48px, 5vw, 72px);
  font-weight: 720;
  line-height: .99;
  letter-spacing: -.057em;
}

.home-hero-copy > p {
  max-width: 720px;
  margin: 0;
  color: #31577f;
  font-size: 18px;
  line-height: 1.62;
}

.home-source-row {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 30px;
}

.home-source-row span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 8px 12px;
  border: 1px solid rgba(8, 92, 174, .17);
  border-radius: 999px;
  color: #174b7f;
  background: rgba(255, 255, 255, .64);
  font-size: 12px;
  font-weight: 700;
}

.home-source-row span::before {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #1687ee;
  content: "";
}

.home-hero-aside {
  padding: 28px;
  border: 1px solid rgba(255, 255, 255, .88);
  border-radius: 20px;
  background: rgba(255, 255, 255, .80);
  box-shadow: 0 24px 52px -42px rgba(6, 45, 94, .55);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.home-hero-aside > strong {
  display: block;
  margin-top: 10px;
  color: #092f62;
  font-size: 25px;
  line-height: 1.2;
  letter-spacing: -.025em;
}

.home-hero-aside ul {
  display: grid;
  gap: 0;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
}

.home-hero-aside li {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 12px;
  align-items: center;
  min-height: 48px;
  border-top: 1px solid #dbe7f2;
  color: #365b7f;
  font-size: 12px;
}

.home-hero-aside li b {
  color: #0864bb;
  font: 750 12px/1 var(--mono);
}

.home-choice-section { padding: 88px 0 92px; }

.home-choice-header {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(320px, .6fr);
  gap: 60px;
  align-items: end;
  margin-bottom: 34px;
}

.home-choice-header h2,
.home-context-copy h2 {
  margin: 9px 0 0;
  color: #082f65;
  font-size: clamp(34px, 3.6vw, 50px);
  line-height: 1.06;
  letter-spacing: -.045em;
}

.home-choice-header > p,
.home-context-copy > p {
  margin: 0;
  color: #5b7188;
  font-size: 14px;
  line-height: 1.7;
}

.home-tool-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.home-tool-card {
  position: relative;
  display: flex;
  min-height: 355px;
  overflow: hidden;
  align-items: flex-start;
  flex-direction: column;
  padding: 25px;
  border: 1px solid #d8e3ee;
  border-radius: 19px;
  color: inherit;
  background: #fff;
  box-shadow: 0 13px 30px -28px rgba(8, 47, 101, .6);
  text-align: left;
  cursor: pointer;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.home-tool-card::after {
  position: absolute;
  right: -58px;
  bottom: -86px;
  width: 170px;
  height: 170px;
  border-radius: 50%;
  background: #e8f4ff;
  content: "";
  transition: transform .25s ease;
}

.home-tool-card:hover,
.home-tool-card:focus-visible {
  z-index: 1;
  border-color: #7fb9ee;
  box-shadow: 0 24px 50px -34px rgba(7, 79, 151, .72);
  transform: translateY(-5px);
}

.home-tool-card:hover::after { transform: scale(1.17); }

.home-tool-card:focus-visible {
  outline: 3px solid rgba(18, 132, 231, .22);
  outline-offset: 3px;
}

.home-tool-topline {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 37px;
}

.home-tool-number {
  color: #52657a;
  font: 700 12px/1 var(--mono);
  letter-spacing: .08em;
}

.home-tool-icon {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 14px;
  color: #0877dd;
  background: #e5f2ff;
}

.home-tool-icon svg { width: 25px; height: 25px; }

.home-tool-card h3 {
  margin: 7px 0 12px;
  color: #082f65;
  font-size: 28px;
  line-height: 1.1;
  letter-spacing: -.035em;
}

.home-tool-card > p {
  margin: 0;
  color: #5b728a;
  font-size: 12.5px;
  line-height: 1.63;
}

.home-tool-footer {
  position: relative;
  z-index: 1;
  display: grid;
  width: 100%;
  gap: 12px;
  margin-top: auto;
  padding-top: 26px;
}

.home-tool-footer small {
  color: #52657a;
  font: 700 12px/1.35 var(--mono);
  letter-spacing: .04em;
  text-transform: uppercase;
}

.home-tool-footer span {
  color: #076fd1;
  font-size: 12px;
  font-weight: 800;
}

.home-context-section {
  display: grid;
  grid-template-columns: minmax(300px, .7fr) minmax(0, 1.3fr);
  gap: 72px;
  align-items: center;
  padding: 76px;
  border-radius: 28px;
  background: #082f65;
}

.home-context-copy .home-kicker { color: #70b9ff; }
.home-context-copy h2 { color: #fff; }
.home-context-copy > p { margin-top: 20px; color: #bfd1e3; }

.home-context-copy > button,
.home-transparency-strip button {
  margin-top: 25px;
  padding: 0;
  border: 0;
  color: #70b9ff;
  background: transparent;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.home-context-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.home-context-grid article {
  min-height: 225px;
  padding: 24px;
  border: 1px solid rgba(255, 255, 255, .11);
  border-radius: 17px;
  background: rgba(255, 255, 255, .065);
}

.home-context-grid article > span {
  color: #66b6ff;
  font: 700 12px/1 var(--mono);
}

.home-context-grid h3 {
  margin: 53px 0 10px;
  color: #fff;
  font-size: 20px;
}

.home-context-grid p {
  margin: 0;
  color: #b6c9dd;
  font-size: 12px;
  line-height: 1.6;
}

.home-transparency-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 36px;
  margin-top: 22px;
  margin-bottom: 70px;
  padding: 30px 36px;
  border: 1px solid #d6e1eb;
  border-radius: 20px;
  background: #fff;
}

.home-transparency-strip strong {
  color: #082f65;
  font-size: 18px;
}

.home-transparency-strip p {
  max-width: 780px;
  margin: 6px 0 0;
  color: #627990;
  font-size: 12px;
  line-height: 1.55;
}

.home-transparency-strip button {
  flex: 0 0 auto;
  margin: 0;
  padding: 12px 15px;
  border: 1px solid #b7cce0;
  border-radius: 10px;
  color: #0a5cae;
  background: #fff;
}

/* Keep every primary page title in the same Capital.ec typographic system. */
.hero h1,
.credit-hero h1,
.savings-hero h1,
.institution-directory-hero .institution-directory-title,
.learn-head h1,
.about-story-copy h1 {
  font-family: var(--sans);
  font-weight: 720;
}

/* Geographic coverage */
/* The directory shares the comparison pages' advanced search controls. */
.institution-directory-advanced > summary { display: block; }
.institution-directory-advanced .filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.institution-directory-advanced .filter { min-width: 0; }
.institution-directory-advanced .filter-select { width: 100%; min-width: 0; }
.institution-directory-advanced .geographic-filter { grid-column: 1 / -1; }
.institution-directory-advanced .geographic-filter-chips .chip {
  min-height: 40px;
  max-width: 100%;
  white-space: normal;
}

.geographic-coverage-chip {
  display: inline-flex;
  align-items: center;
  width: max-content;
  max-width: 100%;
  padding: 3px 7px;
  border: 1px solid #c7dff5;
  border-radius: 999px;
  background: #f2f8fe;
  color: #315f8d;
  font: 600 12px/1.25 var(--mono);
  letter-spacing: .025em;
  white-space: nowrap;
}

.geographic-filter-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.institution-directory-result-copy > .geographic-coverage-chip { margin-top: 5px; }

.geographic-filter { align-content: start; }
.geographic-filter-chips .chip { min-height: 33px; padding: 7px 10px; }

.geographic-coverage-panel {
  margin: 18px 0;
  padding: 20px;
  border: 1px solid #d5e1ed;
  border-radius: 14px;
  background: #f7fbff;
  color: var(--navy);
}
.drawer .geographic-coverage-panel { margin: 0 0 18px; }
.geographic-coverage-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 15px;
}
.geographic-coverage-heading h3 { margin: 3px 0 0; font: 720 20px/1.2 var(--sans); }
.geographic-coverage-eyebrow {
  color: #60768e;
  font: 700 12px/1.2 var(--mono);
  letter-spacing: .11em;
  text-transform: uppercase;
}
.geographic-coverage-category {
  display: inline-flex;
  align-items: center;
  min-height: 29px;
  padding: 6px 10px;
  border-radius: 999px;
  background: #dceeff;
  color: #0d5fa9;
  font: 750 12px/1 var(--sans);
}
.geographic-coverage-category.regional { background: #e7f1ff; color: #315f8d; }
.geographic-coverage-category.local { background: #f0f3f7; color: #52677e; }
.geographic-coverage-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.geographic-coverage-metrics > div {
  display: grid;
  gap: 7px;
  min-height: 82px;
  padding: 13px;
  border: 1px solid #dbe6f0;
  border-radius: 10px;
  background: #fff;
}
.geographic-coverage-metrics span { color: #657a90; font: 700 12px/1.35 var(--mono); letter-spacing: .05em; text-transform: uppercase; }
.geographic-coverage-metrics strong { align-self: end; font: 750 21px/1 var(--sans); }
.geographic-coverage-details { border-top: 1px solid #d5e1ed; padding-top: 13px; }
.geographic-coverage-details > summary {
  color: #126bc1;
  cursor: pointer;
  font: 700 13px/1.35 var(--sans);
}
.geographic-coverage-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 14px 0 10px;
  color: #536b84;
  font-size: 12px;
}
.geographic-coverage-controls label { display: flex; align-items: center; gap: 7px; cursor: pointer; }
.geographic-sort-toggle { display: inline-flex; gap: 4px; padding: 3px; border-radius: 9px; background: #eaf1f7; }
.geographic-sort-toggle button {
  padding: 7px 9px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #60758b;
  font: 700 12px/1 var(--sans);
  cursor: pointer;
}
.geographic-sort-toggle button.active { background: #fff; color: var(--navy); box-shadow: 0 1px 4px rgba(14, 46, 83, .12); }
.geographic-coverage-table-wrap { max-height: 370px; overflow: auto; border: 1px solid #d5e1ed; border-radius: 10px; background: #fff; }
.geographic-coverage-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.geographic-coverage-table th,
.geographic-coverage-table td { padding: 9px 11px; border-bottom: 1px solid #e6edf4; text-align: right; }
.geographic-coverage-table th:first-child,
.geographic-coverage-table td:first-child { text-align: left; }
.geographic-coverage-table thead th { position: sticky; top: 0; z-index: 1; background: #f3f7fb; color: #5d7188; font: 700 12px/1.2 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.geographic-coverage-total td { position: sticky; bottom: 0; border-top: 1px solid #c7d6e5; border-bottom: 0; background: #eef5fb; font-weight: 750; }
.geographic-coverage-note { margin: 11px 0 0; color: #657a90; font-size: 12px; line-height: 1.5; }
.geographic-coverage-empty p { margin-bottom: 0; color: #657a90; }

@media (max-width: 760px) {
  .institution-directory-advanced .filters { grid-template-columns: minmax(0, 1fr); }
  .institution-directory-result-copy > strong,
  .institution-directory-result-facts strong {
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .institution-profile-title,
  .institution-profile-metrics > div,
  .institution-profile-source-card { min-width: 0; overflow-wrap: anywhere; }
  .geographic-coverage-chip { white-space: normal; }
  .geographic-coverage-panel { padding: 16px; }
  .geographic-coverage-metrics { grid-template-columns: 1fr; }
  .institution-directory-result-facts { grid-template-columns: 1fr; }
  .geographic-coverage-metrics > div { min-height: 68px; }
  .geographic-coverage-controls { align-items: stretch; flex-direction: column; }
  .geographic-sort-toggle { display: grid; grid-template-columns: 1fr 1fr; }
}

.hero h1 em { font-weight: 720; }

@media (max-width: 1080px) {
  .home-hero { grid-template-columns: 1fr; gap: 32px; }
  .home-hero-aside { max-width: 620px; }
  .home-tool-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-context-section { grid-template-columns: 1fr; gap: 42px; }
}

@media (max-width: 760px) {
  .home-page,
  .mobile .home-page { padding: 0 0 12px; }

  .home-hero,
  .home-choice-section,
  .home-context-section,
  .home-transparency-strip { width: calc(100% - 20px); }

  .home-hero {
    grid-template-columns: minmax(0, 1fr);
    margin-top: 10px;
    padding: 24px 18px;
    border-radius: 20px;
  }

  .home-hero h1 {
    margin: 10px 0 12px;
    font-size: clamp(30px, 8.8vw, 46px);
    line-height: 1.05;
    overflow-wrap: anywhere;
  }

  .home-hero-copy > p { font-size: 14px; line-height: 1.5; }

  .home-hero-copy > .home-kicker,
  .home-source-row,
  .home-hero-aside,
  .home-choice-header .home-kicker,
  .home-choice-header > p,
  .home-tool-number,
  .home-tool-eyebrow,
  .home-tool-card > p,
  .home-tool-footer small,
  .home-context-copy > :not(button),
  .home-context-grid,
  .home-transparency-strip > div {
    display: none;
  }

  .home-choice-section { padding: 24px 0 16px; }
  .home-choice-header { display: block; margin-bottom: 12px; }
  .home-choice-header h2 { font-size: clamp(21px, 5.7vw, 30px); }
  .home-tool-grid { grid-template-columns: minmax(0, 1fr); gap: 8px; }

  .home-tool-card {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    column-gap: 12px;
    row-gap: 4px;
    min-height: 64px;
    align-items: center;
    padding: 10px 13px;
    border-radius: 12px;
  }
  .home-tool-card::after { display: none; }
  .home-tool-topline { grid-row: span 2; margin: 0; }
  .home-tool-icon { width: 38px; height: 38px; border-radius: 10px; }
  .home-tool-icon svg { width: 21px; height: 21px; }
  .home-tool-card h3 { margin: 0; font-size: 18px; overflow-wrap: anywhere; }
  .home-tool-footer { margin: 0; padding: 0; }

  .home-context-section,
  .home-transparency-strip {
    display: block;
    margin-top: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
  }
  .home-context-section { margin-bottom: 8px; }
  .home-transparency-strip { margin-bottom: 22px; }
  .home-context-copy button,
  .home-transparency-strip button { width: 100%; min-height: 44px; margin: 0; }
}

/* Mobile rate rows: keep long institution names, context chips and rates inside the viewport. */
@media (max-width: 760px) {
  .card,
  .bce-market-card,
  .credit-result-card,
  .savings-row-card {
    min-width: 0;
    max-width: 100%;
  }

  .card-head,
  .bce-market-card .card-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(72px, auto);
    gap: 8px;
    width: 100%;
  }

  .card-head > *,
  .card-head .inst-cell,
  .card-head .inst-cell > div,
  .credit-result-inst,
  .savings-product,
  .savings-product > div {
    min-width: 0;
  }

  .inst-name,
  .credit-result-inst strong,
  .savings-product h3 {
    overflow-wrap: anywhere;
  }

  .inst-meta { flex-wrap: wrap; }

  .bce-mobile-rate {
    min-width: 0;
    max-width: 34vw;
    text-align: right;
  }

  .card-rate {
    font-size: clamp(23px, 7.5vw, 29px);
    line-height: 1;
    white-space: nowrap;
  }

  .credit-result-main {
    grid-template-columns: 42px minmax(0, 1fr) 68px;
    gap: 8px;
    width: 100%;
  }

  .credit-result-rate {
    grid-column: 2;
    min-width: 0;
    max-width: 100%;
  }

  .credit-result-rate strong,
  .savings-rate-cell strong {
    font-size: clamp(22px, 7vw, 25px);
    line-height: 1;
    white-space: nowrap;
  }

  .credit-small-sample {
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .credit-detail-toggle {
    grid-column: 3;
    width: 68px;
  }

  .savings-row-main,
  .savings-rate-cell,
  .savings-limit-cell {
    min-width: 0;
    max-width: 100%;
  }
}

/* BCE period switch: monthly breadth by default, weekly freshness on demand. */
.bce-period-selector {
  display: grid;
  gap: 14px;
  margin: 0 0 28px;
  padding: 20px;
  border: 1px solid #cddfed;
  border-radius: 16px;
  background: linear-gradient(135deg, #f4f9ff 0%, #fff 72%);
  box-shadow: 0 18px 42px -38px rgba(8, 46, 104, .48);
}

/* Published active-credit rates: same visual language as the BCE comparator. */
.credit-source-switch { margin-bottom: 0; }

.published-credit-form {
  grid-template-columns: minmax(0, 1fr) minmax(190px, auto);
}

.published-credit-form.has-subtype {
  grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(190px, auto);
}

.published-credit-main {
  grid-template-columns: 52px minmax(240px, 1.35fr) minmax(125px, .62fr) minmax(120px, .58fr) minmax(145px, .72fr) minmax(125px, .62fr) 94px;
}

.published-credit-card .credit-result-inst > div span.credit-partial-badge {
  border: 1px solid #e3c56e;
  color: #6f5108;
  background: #fff6d8;
}

.published-gap-stat strong {
  color: #125a7d;
  font-size: 12.5px;
}

.published-credit-detail { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.published-credit-note { margin-top: 18px; }

@media (max-width: 1180px) {
  .published-credit-main {
    grid-template-columns: 50px minmax(220px, 1.25fr) minmax(120px, .62fr) minmax(115px, .58fr) minmax(125px, .65fr) 88px;
  }

  .published-credit-main .credit-assets-stat { display: none; }
}

@media (max-width: 940px) {
  .published-credit-main { grid-template-columns: 50px minmax(0, 1fr) 125px 90px; }
  .published-credit-main .credit-result-stat { display: none; }
}

@media (max-width: 760px) {
  .published-credit-form,
  .published-credit-form.has-subtype {
    grid-template-columns: 1fr;
  }

  .published-credit-form .hero-cta { grid-column: auto; }

  .published-credit-main {
    grid-template-columns: 42px minmax(0, 1fr) 68px;
    gap: 8px;
    width: 100%;
    padding: 17px 4px 17px 8px;
  }

  .published-credit-detail { grid-template-columns: 1fr; }
}

.bce-period-selector-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.bce-period-selector-head > div { display: grid; gap: 4px; }
.bce-period-selector-head > div > span {
  color: #60758d;
  font: 700 12px/1.2 var(--mono);
  letter-spacing: .09em;
  text-transform: uppercase;
}
.bce-period-selector-head > div > strong { color: var(--navy); font: 740 18px/1.25 var(--sans); }
.bce-period-default {
  flex: 0 0 auto;
  padding: 7px 10px;
  border-radius: 999px;
  background: #dceeff;
  color: #0b67bd;
  font: 750 12px/1 var(--sans);
}

.bce-period-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.bce-period-options button {
  display: grid;
  gap: 6px;
  min-width: 0;
  padding: 15px 17px;
  border: 1px solid #d5e1ed;
  border-radius: 12px;
  background: #fff;
  color: #4f657d;
  text-align: left;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.bce-period-options button:hover { border-color: #8cbff1; }
.bce-period-options button.active {
  border-color: #1988e8;
  background: #eaf5ff;
  box-shadow: inset 3px 0 0 #1687ea;
  color: var(--navy);
}
.bce-period-options strong { font: 740 15px/1.25 var(--sans); }
.bce-period-options small { color: #657c94; font: 650 12px/1.3 var(--sans); }
.bce-period-explanation {
  margin: 0;
  color: #526b84;
  font-size: 12.5px;
  line-height: 1.55;
}

@media (max-width: 760px) {
  .bce-period-selector { margin-bottom: 20px; padding: 15px; border-radius: 13px; }
  .bce-period-selector-head { align-items: stretch; flex-direction: column; gap: 10px; }
  .bce-period-default { align-self: flex-start; }
  .bce-period-options { grid-template-columns: 1fr; }
  .bce-period-options button { padding: 13px 14px; }
}

/* Server-delivered semantic content for search engines, AI crawlers and users
   who browse without JavaScript. React replaces this layer when the interactive
   application starts, so it never duplicates the live interface. */
.seo-static-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 76px;
  padding: 16px max(24px, calc((100vw - 1500px) / 2));
  border-bottom: 1px solid #dbe5ef;
  background: #fff;
  color: #062759;
  font-family: var(--sans);
}
.seo-static-brand {
  color: #092d66;
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -.04em;
  text-decoration: none;
}
.seo-static-header nav { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.seo-static-header nav a { color: #0b2b59; font-weight: 700; text-decoration: none; }
.seo-static-content {
  width: min(1500px, calc(100% - 32px));
  margin: 32px auto 64px;
  color: #0a2d60;
  font-family: var(--sans);
  line-height: 1.6;
}
.seo-static-content section {
  margin: 0 0 28px;
  padding: clamp(22px, 4vw, 46px);
  border: 1px solid #d8e4ef;
  border-radius: 24px;
  background: #fff;
}
.seo-static-content .seo-hero {
  background: #e5f2ff;
  border-color: #c7def3;
}
.seo-static-content h1,
.seo-static-content h2 { margin: 0 0 14px; color: #082d66; line-height: 1.06; }
.seo-static-content h1 { max-width: 1050px; font-size: clamp(38px, 7vw, 78px); letter-spacing: -.055em; }
.seo-static-content h2 { font-size: clamp(25px, 3vw, 38px); letter-spacing: -.035em; }
.seo-static-content p { max-width: 1000px; margin: 0 0 14px; color: #365777; }
.seo-eyebrow {
  color: #0876db !important;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.seo-source-strip { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.seo-source-strip span {
  padding: 7px 11px;
  border: 1px solid #b9d8f4;
  border-radius: 999px;
  background: rgba(255,255,255,.75);
  color: #14568f;
  font-size: 12px;
  font-weight: 700;
}
.seo-card-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.seo-card {
  display: grid;
  gap: 8px;
  min-height: 140px;
  padding: 22px;
  border: 1px solid #cdddeb;
  border-radius: 16px;
  color: #123f72;
  text-decoration: none;
}
.seo-card strong { color: #082d66; font-size: 20px; }
.seo-table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid #d8e4ef; border-radius: 14px; }
.seo-data-table { width: 100%; min-width: 760px; border-collapse: collapse; background: #fff; color: #183b64; font-size: 13px; }
.seo-data-table caption { padding: 14px 16px; background: #f0f7fe; color: #315a81; font-weight: 700; text-align: left; }
.seo-data-table th,
.seo-data-table td { padding: 13px 14px; border-top: 1px solid #e0e8f0; text-align: left; vertical-align: top; }
.seo-data-table thead th { border-top: 0; background: #f8fbfe; color: #5b7088; font-size: 12px; letter-spacing: .05em; text-transform: uppercase; }
.seo-data-table tbody th { color: #082d66; font-weight: 700; }
.seo-data-table a { color: #086ecd; font-weight: 700; }
.seo-data-table small { display: block; margin-top: 3px; color: #52657a; }
.seo-footnote { margin-top: 14px !important; font-size: 12px; }
.seo-footnote a { color: #0874d1; }
.seo-fact-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 20px 0; }
.seo-fact-grid div { padding: 17px; border: 1px solid #d9e4ef; border-radius: 13px; background: #f8fbfe; }
.seo-fact-grid dt { color: #647a92; font-size: 12px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.seo-fact-grid dd { margin: 6px 0 0; color: #082d66; font-size: 17px; font-weight: 750; }
.seo-prose-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.seo-prose-grid article { padding: 20px; border: 1px solid #dce6ef; border-radius: 15px; }

@media (max-width: 900px) {
  .seo-static-header { align-items: flex-start; flex-direction: column; }
  .seo-card-grid,
  .seo-fact-grid,
  .seo-prose-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .seo-static-content { width: min(100% - 20px, 1500px); margin-top: 16px; }
  .seo-static-content section { padding: 20px 16px; border-radius: 17px; }
  .seo-static-content h1 { font-size: 38px; }
  .seo-card-grid,
  .seo-fact-grid,
  .seo-prose-grid { grid-template-columns: 1fr; }
  .seo-static-header { padding: 16px; }
  .seo-static-header nav { gap: 8px 14px; }
}


.seo-related-links {
  width: min(100% - 32px, 1200px);
  margin: 24px auto;
}
.seo-related-links h2 { font-size: 1.125rem; }
.seo-related-links ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  padding-inline-start: 20px;
}
.seo-static-content > nav { margin-bottom: 16px; }

/* Financial guide */
.financial-guide {
  max-width: 1100px;
  margin-inline: auto;
}

.financial-guide .guide-heading h1 {
  font-size: clamp(2rem, 3.7vw, 46px);
  line-height: 1.09;
}

.financial-guide section[id],
.financial-guide [id="guia-condiciones"] {
  scroll-margin-top: 6rem;
}

.financial-guide h3 {
  margin: 1.25em 0 .4em;
  font-size: 1.18rem;
  line-height: 1.3;
}

.financial-guide ul {
  padding-inline-start: 1.4em;
  margin: 0 0 1em;
  color: #365777;
}

.financial-guide li + li {
  margin-top: .35em;
}

.financial-guide a {
  color: #15558e;
  text-decoration: underline;
  text-underline-offset: .16em;
}

.financial-guide .guide-example {
  padding: 12px 16px;
  border-inline-start: 3px solid #4e90c8;
  border-radius: 0 10px 10px 0;
  background: #f0f7fe;
}

.financial-guide section > :last-child {
  margin-bottom: 0;
}

.financial-guide .guide-reference-table { width: 100%; border-collapse: collapse; table-layout: fixed; margin: 20px 0; font-size: 14px; }
.guide-reference-table caption { text-align: left; font-weight: 750; padding-bottom: 12px; }
.guide-reference-table th, .guide-reference-table td { padding: 12px; text-align: left; border-bottom: 1px solid #d8e4ef; overflow-wrap: anywhere; }
.guide-reference-table th:first-child { width: 28%; }
.guide-reference-table thead { background: #e5f2ff; }
.guide-reference-table tbody tr:nth-child(even) { background: #f4f8fc; }
#guia-preguntas details { padding: 14px 0; border-bottom: 1px solid #d8e4ef; }
#guia-preguntas summary { cursor: pointer; font-weight: 700; }
#guia-preguntas details p { margin-top: 12px; }

/* Keep the original guide panels, numbered navigation and expandable answers. */
main.seo-static-content:has(> .financial-guide) { padding: 0; border: 0; background: transparent; box-shadow: none; }
.financial-guide .guide-heading { display: block; background: #f6f5f2; border: 0; }
.financial-guide .guide-heading .learn-eyebrow { margin-bottom: 16px; }
.financial-guide .guide-topic-nav a { align-items: center; text-decoration: none; }
.financial-guide .guide-topic-nav a > span { grid-row: auto; }
.financial-guide .guide-section-number { margin-bottom: 12px; }
.financial-guide .learn-panel > p { max-width: 80ch; }
.financial-guide .guide-decision-grid { gap: 16px; margin-bottom: 24px; }
.financial-guide .guide-decision-grid .learn-panel { min-width: 0; padding: 20px; background: #f4f8fc; }
.financial-guide .guide-decision-grid h3 { margin-top: 0; }
.financial-guide .guide-calculation { margin: 18px 0; padding: 14px 18px; border: 1px solid #d8e4ef; border-radius: 12px; background: #f4f8fc; }
.financial-guide .guide-calculation summary { cursor: pointer; font-weight: 700; }
.financial-guide .guide-calculation p { margin-top: 12px; }
.financial-guide .guide-calculation p:last-child { margin-bottom: 0; }
.financial-guide .guide-reference-table { line-height: 1.55; }
.financial-guide .faq-section h3 { margin-top: 32px; }
.financial-guide .faq-section summary { line-height: 1.5; }
@media (max-width: 760px) {
  .financial-guide .guide-decision-grid { grid-template-columns: minmax(0, 1fr); }
  .financial-guide .guide-topic-nav a { min-height: 64px; padding: 14px 16px; }
  .financial-guide .guide-reference-table th,
  .financial-guide .guide-reference-table td { padding: 10px 8px; }
  .financial-guide .guide-reference-table th:first-child { width: 40%; }
}

/* Institution facts use the full card width on phones. */
@media (max-width: 760px) {
  .institution-directory-result { grid-template-columns: 44px minmax(0, 1fr) 16px; align-items: start; gap: 8px 12px; }
  .institution-directory-result-copy { display: contents; }
  .institution-directory-result .directory-mark { grid-column: 1; grid-row: 1 / span 2; }
  .institution-directory-result-copy > strong { grid-column: 2; grid-row: 1; line-height: 1.4; }
  .institution-directory-result-meta { grid-column: 2; grid-row: 2; }
  .institution-directory-arrow { grid-column: 3; grid-row: 1 / span 2; }
  .institution-directory-result-copy > .geographic-coverage-chip { grid-column: 1 / -1; justify-self: start; margin-top: 4px; }
  .institution-directory-result-facts { grid-column: 1 / -1; gap: 10px; margin-top: 4px; }
  .institution-directory-result-facts > span { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); align-items: center; gap: 14px; padding: 12px; }
  .institution-directory-result-facts small { font-size: 12px; line-height: 1.5; }
  .institution-directory-result-facts strong { font-size: 15px; line-height: 1.4; text-align: right; }
  .institution-directory-result-badges { grid-column: 1 / -1; }
}

/* Keep the investment type and percentage legible in institution profiles. */
.institution-profile-source-head { flex-wrap: wrap; }
.institution-profile-source-head > strong { flex-shrink: 0; }
.institution-profile-source-head > strong:not(.institution-profile-credit-count) { white-space: nowrap; }
@media (max-width: 760px) {
  .institution-profile-source-head { flex-direction: column; align-items: flex-start; gap: 12px; }
  .institution-profile-source-head > span { line-height: 1.5; }
}

.institution-directory-sort { min-width: 210px; }
.institution-directory-sort-note { margin: 0 0 18px; color: #687c91; font-size: 12px; line-height: 1.5; }
@media (max-width: 760px) {
  .institution-directory-sort { min-width: 0; width: 100%; }
}


/* Institution directory uses the investment comparator's row layout. */
.institution-directory-results { grid-template-columns: minmax(0, 1fr); gap: 0; background: #fff; }
.directory-ranking-header, .institution-directory-result.directory-ranking-row {
  display: grid; grid-template-columns: 52px minmax(0, 1fr) 145px 140px 155px 110px;
  gap: 18px; align-items: center; padding: 22px 20px;
}
.directory-ranking-header { color: #617489; font-size: 12px; font-weight: 700; text-transform: uppercase; border-bottom: 1px solid #d7e1ec; background: #fff; }
.directory-ranking-header > :first-child { grid-column: 1 / 3; }
.directory-ranking-header > :nth-child(4) { text-align: right; }
.directory-ranking-header > :last-child { text-align: center; }
.institution-directory-result.directory-ranking-row { border-radius: 0; border-width: 0 0 1px; min-height: 116px; }
.institution-directory-result.directory-ranking-row:hover { transform: none; background: #f3f8ff; box-shadow: none; }
.directory-ranking-row .institution-directory-result-copy { display: flex; min-width: 0; gap: 8px; }
.directory-ranking-row .institution-directory-result-copy > strong { white-space: normal; overflow-wrap: anywhere; font-size: 17px; line-height: 1.4; }
.directory-ranking-row .institution-directory-result-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; white-space: normal; overflow: visible; }
.directory-ranking-row .geographic-coverage-chip { white-space: normal; }
.directory-segment { font-size: 12px; text-transform: uppercase; }
.directory-ranking-value { min-width: 0; }
.directory-ranking-value small { display: none; }
.directory-ranking-value strong { display: block; font-size: 15px; line-height: 1.5; overflow-wrap: anywhere; }
.directory-ranking-assets { text-align: right; }
.directory-ranking-assets strong { font-weight: 500; }
.directory-ranking-row .institution-directory-arrow { padding: 10px 8px; border: 1px solid #b9cce2; border-radius: 9px; font-size: 12px; text-align: center; white-space: nowrap; }
.institution-directory-sort { flex-shrink: 0; }
.directory-coverage-note { margin-top: 18px; }
@media (max-width: 1000px) {
  .directory-ranking-header { display: none; }
  .institution-directory-results { gap: 14px; background: transparent; }
  .institution-directory-result.directory-ranking-row { grid-template-columns: 44px minmax(0, 1fr); gap: 14px; padding: 16px; border: 1px solid #d7e1ec; border-radius: 14px; }
  .directory-ranking-row .directory-mark { grid-column: 1; grid-row: 1; }
  .directory-ranking-row .institution-directory-result-copy { grid-column: 2; grid-row: 1; }
  .directory-ranking-row .institution-directory-result-copy > strong { font-size: 15px; }
  .directory-ranking-row .directory-ranking-value { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); align-items: center; gap: 16px; padding: 12px; border: 1px solid #e0e8f0; border-radius: 9px; background: #f8fbfe; }
  .directory-ranking-value small { display: block; color: #617489; font-size: 12px; text-align: left; }
  .directory-ranking-value strong { text-align: right; font-size: 15px; }
  .directory-ranking-rating > div { justify-self: end; }
  .directory-ranking-row .institution-directory-arrow { grid-column: 1 / -1; grid-row: auto; padding: 12px; }
  .institution-directory-toolbar { flex-direction: column; align-items: stretch; }
  .institution-directory-sort.sort-toggle { display: flex; width: 100%; min-width: 0; }
  .institution-directory-sort.sort-toggle button { flex: 1 1 0; min-width: 0; white-space: normal; }
}

.institution-directory-results-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 28px 0 14px; }
.institution-directory-results-count { color: #617489; font: 500 12px/1.5 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
@media (max-width: 1000px) {
  .institution-directory-results-toolbar { flex-direction: column; align-items: stretch; gap: 12px; }
}


/* Detail links are real navigation targets; other entities keep inline buttons. */
a.product-detail-action { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; font: 650 12px/1.4 var(--sans); cursor: pointer; }
a.product-detail-action:focus-visible { outline: 2px solid #1688f8; outline-offset: 3px; }
.cards > .card > a.product-detail-action { display: flex; margin-top: 14px; }

/* Stage 2: keyboard/touch access and legible controls, preserving existing layouts. */
.theme-light :is(a, button, input, select, summary, [tabindex]):focus-visible {
  outline: 2px solid #0864bb;
  outline-offset: 3px;
}
.bce-info-tip { width: auto; height: auto; flex: 0 0 auto; }
.bce-info-trigger {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; padding: 0; border: 0; appearance: none;
  border-radius: 8px; background: transparent; color: #52657a;
  font: 600 16px/1 var(--sans); cursor: pointer; touch-action: manipulation;
}
.bce-info-trigger svg { display: block; flex: 0 0 auto; }
.bce-info-trigger:hover, .bce-info-trigger[aria-expanded="true"] { background: #deefff; color: #0864bb; }
.bce-info-trigger:focus-visible { outline: 2px solid #0864bb; outline-offset: 3px; }
/* Rendered in a portal: no clipping by tables or transformed containers. */
.bce-info-popover.bce-info-accessible {
  display: block; position: fixed; top: auto; right: auto; bottom: auto; left: auto;
  max-width: calc(100vw - 32px); max-height: calc(100dvh - 32px); overflow-y: auto;
  z-index: 1000; margin: 0; padding: 14px 16px;
  background: #09234f; color: #fff; font: 400 14px/1.6 Inter, sans-serif;
  opacity: 1; pointer-events: auto; transform: none !important; transition: none;
}
.product-tabs button { font-size: 14px; }
.product-tab-description p, .bce-reference-note, .bce-cosede-disclaimer,
.credit-reference-note, .credit-advanced-note { font-size: 14px; }
.sort-toggle button, .credit-sort-toggle button, .savings-presets button,
.product-detail-action, a.product-detail-action, .bce-load-more, .credit-load-more {
  min-height: 44px; font-size: 14px;
}
.language-switcher, .mobile-nav-menu > summary { min-width: 44px; min-height: 44px; }
.savings-hero-card small, .savings-compare-action small,
.credit-result-stat span, .institution-profile-disclaimer { color: #52657a; }
.savings-kicker, .institution-directory-eyebrow { color: #0864bb; }
.savings-method-note, .savings-cosede-note { font-size: 14px !important; }
@media (max-width: 760px) {
  .bce-info-trigger { width: 44px; height: 44px; }
  .theme-light input:not([type="checkbox"]):not([type="radio"]),
  .theme-light select, .theme-light textarea { font-size: 16px; }
  .product-tabs button { font-size: 14px; }
  .product-tab-description p { font-size: 14px; }
  .sort-toggle button, .credit-sort-toggle button { white-space: normal; }
}

/* Secondary labels checked against their actual light surfaces. */
.bce-period-options small, .bce-unrated,
.savings-ranking-header p, .savings-rate-cell small, .savings-limit-cell small, .savings-ranking-footer,
.credit-results .bce-week-label, .credit-results .bce-period-source,
.credit-result-inst small, .institution-directory-stats,
.institution-directory-toolbar p, .institution-directory-sort-note,
.about-founder-visual figcaption span { color: #52657a; }
.rate-cell .pct, .card-rate .pct { color: #0864bb; }
.credit-inst-mark, .inst-mark.coop { background: #0864bb; color: #fff; }
@media (max-width: 760px) {
  .home-context-copy > button { color: #0864bb; }
}

.savings-position label { width: 44px; height: 44px; }
.savings-position input:focus-visible + span { outline: 2px solid #0864bb; outline-offset: 3px; }
.savings-position label span { border-color: #657c94; }

/* Compact comparison layout: investments pilot and credit comparison. */
:is(.investment-pilot, [data-page="prestamos"]) .hero { padding: 24px 24px 28px; margin-top: 16px; }
:is(.investment-pilot, [data-page="prestamos"]) .hero-badge { margin-bottom: 16px; }
:is(.investment-pilot, [data-page="prestamos"]) .hero h1, .savings-page .savings-hero h1 { max-width: 900px; margin-bottom: 12px; font-size: clamp(2rem, 3.5vw, 3rem); line-height: 1.15; letter-spacing: -.035em; }
:is(.investment-pilot, [data-page="prestamos"]) .hero p { max-width: 75ch; font-size: 1rem; line-height: 1.5; margin-bottom: 0; }
:is(.investment-pilot, [data-page="prestamos"]) .hero-form { margin-top: 20px; padding: 16px; }
:is(.investment-pilot, [data-page="prestamos"]) .hero-meta { margin-top: 12px; gap: 8px 24px; justify-content: flex-start; }
:is(.investment-pilot, [data-page="prestamos"]) .product-switch-shell { margin-top: 16px; box-shadow: none; }
:is(.investment-pilot, [data-page="prestamos"]) .product-tabs button { min-height: 60px; }
:is(.investment-pilot, [data-page="prestamos"]) .product-tab-description { width: 100%; margin-left: 0; padding: 8px 12px; }
:is(.investment-pilot, [data-page="prestamos"]) main { margin-top: 24px; padding-top: 24px; border-radius: 16px; }
:is(.investment-pilot, [data-page="prestamos"]) .bce-period-selector { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); align-items: center; padding: 16px; gap: 12px 24px; margin-bottom: 24px; box-shadow: none; }
:is(.investment-pilot, [data-page="prestamos"]) .bce-period-selector-head { flex-wrap: wrap; gap: 8px; }
:is(.investment-pilot, [data-page="prestamos"]) .bce-period-selector-head > div > strong { font-size: 1rem; line-height: 1.4; }
:is(.investment-pilot, [data-page="prestamos"]) .bce-period-options button { padding: 12px; }
:is(.investment-pilot, [data-page="prestamos"]) .bce-period-explanation { grid-column: 1 / -1; font-size: .875rem; }
:is(.investment-pilot, [data-page="prestamos"]) .section-head { margin-bottom: 16px; }
:is(.investment-pilot, [data-page="prestamos"]) .bce-reference-note { padding: 12px; margin-bottom: 16px; }
:is(.investment-pilot, [data-page="prestamos"]) :is(.rate-cell, .bce-rate, .assets) { font-variant-numeric: tabular-nums; }
@media (max-width: 760px) {
  :is(.investment-pilot, [data-page="prestamos"]) .hero { padding: 20px 16px 24px; }
  :is(.investment-pilot, [data-page="prestamos"]) .hero-badge { margin-bottom: 12px; }
  :is(.investment-pilot, [data-page="prestamos"]) .hero-form { padding: 12px; margin-top: 16px; }
  :is(.investment-pilot, [data-page="prestamos"]) main { margin-top: 16px; padding: 16px 12px 32px; }
  :is(.investment-pilot, [data-page="prestamos"]) .bce-period-selector { grid-template-columns: minmax(0, 1fr); padding: 12px; gap: 12px; }
  :is(.investment-pilot, [data-page="prestamos"]) .bce-period-selector-head { flex-direction: row; }
  :is(.investment-pilot, [data-page="prestamos"]) .bce-period-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :is(.investment-pilot, [data-page="prestamos"]) .bce-period-options strong { font-size: .875rem; line-height: 1.4; }
  :is(.investment-pilot, [data-page="prestamos"]) .product-tab-description::before { display: none; }
}

.investment-pilot .product-tab-description { align-items: flex-start; }
.investment-pilot .pilot-source-help { flex: 1; min-width: 0; }
.investment-pilot .pilot-source-help summary { cursor: pointer; min-height: 44px; display: list-item; align-content: center; color: #09234f; font-size: .875rem; font-weight: 600; }
.investment-pilot .pilot-source-help p { padding: 0 0 8px; }

/* Persistent, indexable supplementary views on the investment route. */
.investment-seo-reference { margin: 24px auto; }
.investment-seo-reference > details > summary { cursor: pointer; min-height: 44px; padding: 12px; font-weight: 600; }
body[data-page]:not([data-page="comparador"]) .investment-seo-reference { display: none; }

/* Stage 4 block 1: shared educational disclosure; no extra help icons. */
.comparison-help { margin: 12px 0 16px; border: 1px solid #cddfed; border-radius: 12px; background: #f7faff; color: #09234f; }
.comparison-help > summary { min-height: 44px; padding: 12px 16px; cursor: pointer; font-size: .875rem; line-height: 1.5; font-weight: 600; }
.comparison-help > summary:focus-visible { outline: 2px solid #0864bb; outline-offset: 3px; }
.comparison-help-body { padding: 0 16px 16px; max-width: 80ch; }
.comparison-help-body p { font-size: .875rem; line-height: 1.6; margin: 12px 0 0; }
.savings-page .savings-hero { grid-template-columns: minmax(0,1fr); padding: 24px; gap: 12px; border-radius: 16px; }
.savings-page .savings-hero-copy > p:not(.savings-review-status) { margin-top: 12px; font-size: 1rem; line-height: 1.5; max-width: 75ch; }
.savings-page .savings-review-status { margin-bottom: 12px !important; }
.savings-page .savings-hero .comparison-help { margin: 0; }
.savings-page .savings-controls { padding: 20px; border-radius: 16px; }
.savings-page .savings-amount-panel { margin-top: 0; padding: 16px 0 0; gap: 20px; }
.savings-page .savings-amount-panel h2 { font-size: clamp(1.5rem,2.3vw,2rem); line-height: 1.25; }
.savings-page .savings-amount-panel p { font-size: .875rem; line-height: 1.5; }
.savings-page .savings-ranking { margin-top: 24px; }
@media(max-width:760px) {
  .savings-page .savings-hero { padding: 20px 16px; }
  .savings-page .savings-controls { padding: 16px; }
  .savings-page .savings-amount-panel { gap: 16px; }
}

main.savings-page { width: min(1240px, calc(100% - 32px)); margin-top: 16px; padding-top: 0; border: 0; box-shadow: none; background: transparent; }
.savings-page > section { width: 100%; }

@media (max-width:760px) {
  [data-page="prestamos"] .credit-hero-form,
  [data-page="prestamos"] .credit-hero-form.has-subtype { grid-template-columns: minmax(0,1fr); }
  [data-page="prestamos"] .credit-hero-form .hero-cta { min-width: 0; }
  [data-page="prestamos"] .credit-sort { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px; overflow: visible; }
  [data-page="prestamos"] .credit-sort button { min-width: 0; min-height: 44px; padding: 10px 8px; font-size: .875rem; }
}

[data-page="prestamos"] .credit-advanced:not([open]) { padding-bottom: 0; margin-bottom: 16px; border-bottom: 0; }
[data-page="prestamos"] .credit-advanced:not([open]) > summary { margin-bottom: 0; }
@media (max-width:760px) {
  [data-page="prestamos"] .credit-ranking-intro { padding: 12px; gap: 8px; margin-top: 12px; }
  [data-page="prestamos"] .credit-ranking-intro > span { padding: 4px 8px; }
}

/* Institutional directory and profile navigation reuse the compact comparison scale. */
.institution-directory-hero { padding: 24px; border-radius: 16px; }
.institution-directory-hero .institution-directory-title,
.institution-profile-title h1,
.seo-static-content :is(.seo-directory-hero, .seo-institution-hero) h1 {
  font-size: clamp(2rem, 3.5vw, 3rem); line-height: 1.15; letter-spacing: -.035em;
}
.institution-directory-hero > p { margin: 12px 0 16px; font-size: 1rem; line-height: 1.5; }
.seo-static-content :is(.seo-directory-hero, .seo-institution-hero) { padding: 24px; border-radius: 16px; }
.profile-breadcrumb { margin-bottom: 16px; font-size: .875rem; color: #52657a; overflow-wrap: anywhere; }
.profile-breadcrumb a { color: #0864bb; }
.profile-links, .profile-links ul { display: flex; flex-wrap: wrap; gap: 8px; }
.profile-links { margin: 16px 0; }
.profile-links h2 { flex-basis: 100%; }
.profile-links ul { padding: 0; margin: 0; list-style: none; }
.profile-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 12px; border: 1px solid #cadbea; border-radius: 10px; background: white; color: #0864bb; font-size: .875rem; font-weight: 600; }
.profile-links a:hover { background: #deefff; }
:is(.profile-links a, .profile-breadcrumb a, .seo-table-wrap[tabindex]):focus-visible { outline: 2px solid #0864bb; outline-offset: 3px; }
@media (max-width:760px) {
  .institution-directory-hero, .seo-static-content :is(.seo-directory-hero, .seo-institution-hero) { padding: 20px 16px; }
}

main.institution-directory-page {
  width: min(1240px, calc(100% - 32px));
  margin: 16px auto 48px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.institution-directory-page > :is(.institution-directory-body, .institution-profile) { width: 100%; }
.institution-profile-title h1 { overflow-wrap: anywhere; }
@media (max-width:760px) {
  .institution-profile-heading { gap: 12px; padding-bottom: 16px; }
  .institution-profile-heading .profile-mark { width: 44px !important; height: 44px !important; align-self: start; }
  .institution-profile-status { flex-direction: row; flex-wrap: wrap; }
}

/* Stage 4 block 3: editorial routes reuse the compact page scale. */
main.home-page { width: min(1240px, calc(100% - 32px)); margin: 16px auto 48px; padding: 0; border: 0; box-shadow: none; background: transparent; }
.home-page > :is(.home-hero, .home-choice-section, .home-context-section, .home-transparency-strip) { width: 100%; }
.home-page .home-choice-header h2, .home-page .home-context-copy h2 { font-size: clamp(1.625rem, 2.3vw, 2rem); line-height: 1.2; }
.home-page .home-hero { padding: 32px; gap: 32px; border-radius: 16px; }
.home-page .home-hero h1, .financial-guide .guide-heading h1, .about-page .about-story-copy h1 { font-size: clamp(2rem, 3.5vw, 3rem); line-height: 1.15; letter-spacing: -.035em; }
.home-page .home-hero-copy > p { font-size: 1rem; line-height: 1.6; }
.home-page .home-source-row { margin-top: 16px; }
.home-page .home-choice-section { padding-top: 24px; }
.home-page a.home-tool-card { text-decoration: none; color: #09234f; }
.home-page .home-context-copy > a, .home-page .home-transparency-strip > a { display: inline-flex; align-items: center; min-height: 44px; margin-top: 16px; font-size: .875rem; font-weight: 700; color: #deefff; }
.home-page .home-transparency-strip > a { color: #0864bb; }
.financial-guide .guide-heading { padding: 24px; border-radius: 16px; }
.financial-guide .guide-index { margin-bottom: 24px; }
.financial-guide .guide-index .guide-topic-nav { padding: 0 16px 16px; margin: 0; }
.financial-guide .guide-topic-nav a { min-height: 60px; padding: 12px; border-radius: 10px; }
.financial-guide .learn-panel > :is(p, ul), .financial-guide .guide-calculation { max-width: 75ch; }
.financial-guide .guide-calculation summary { min-height: 44px; align-content: center; }
.financial-guide .guide-reference-table { overflow-wrap: anywhere; }
.about-page .about-story { gap: 32px; }
.about-page .about-story-copy h1 { margin-bottom: 16px; }
.about-page .about-story-copy > p { font-size: 1rem; line-height: 1.65; max-width: 70ch; }
.about-page .about-contact a { min-height: 44px; font-size: .875rem; }
:is(.home-page a, .financial-guide summary, .financial-guide a, .about-page a):focus-visible { outline: 2px solid #0864bb; outline-offset: 3px; }
@media(max-width:760px) {
  .home-page .home-hero, .financial-guide .guide-heading { padding: 20px 16px; }
  .home-page .home-hero-copy > .home-kicker { display: block; font-size: .75rem; color: #52657a; }
  .home-page .home-tool-card > p { display: block; grid-column: 2; margin: 4px 0; font-size: .875rem; line-height: 1.5; color: #52657a; }
  .home-page .home-tool-footer { grid-column: 2; }
  .home-page .home-context-copy > a, .home-page .home-transparency-strip > a { display: inline-flex; color: #0864bb; margin: 0; width: 100%; }
  .financial-guide .guide-topic-nav { grid-template-columns: minmax(0,1fr); }
}
