:root {
  --fo-navy: #172D2B;
  --fob-primary: #1D4945;
  --fob-primary-hover: #143632;
  --fob-link: #2B6B60;
  --fob-brand: #5B3DF5;
  --fob-accent: #468576;
  --fob-text: #172D2B;
  --fob-text-muted: #596663;
  --fob-bg: #FFFFFF;
  --fob-surface: #F4F7F5;
  --fob-border: #D8E4DD;
  --fob-primary-tint: #EAF3EE;
  --fob-success: #1E7A4C;
  --fob-warning: #9A5A00;
  --fob-danger: #B3261E;
  --fo-navy-deep: #172D2B;
  --fo-teal: var(--fob-link);
  --fo-teal-dark: #143632;
  --fo-mint: var(--fob-primary-tint);
  --fo-blue: #e8f1fb;
  --fo-amber: #f7ead0;
  --fo-coral: #f9e7e1;
  --fo-lavender: #EAF3EE;
  --fo-border: var(--fob-border);
  --fo-shadow: 0 1.25rem 3.5rem rgba(16, 42, 67, .11);
  --bs-primary: var(--fo-teal);
  --bs-primary-rgb: 29, 73, 69;
}

[data-bs-theme="dark"] {
  --fob-primary: #9ACDBA;
  --fob-link: #9ACDBA;
  --fob-accent: #468576;
  --fob-text: #EAF3EE;
  --fob-text-muted: #A4BBB1;
  --fob-bg: #101E1C;
  --fob-surface: #172D2B;
  --fob-border: #36504A;
  --fob-primary-tint: #172D2B;
  --fo-navy: var(--fob-text);
  --fo-teal: var(--fob-primary);
  --fo-border: var(--fob-border);
}

html { scroll-behavior: smooth; }
body { color: var(--fo-navy); }
.text-balance { text-wrap: balance; }
.text-primary { color: var(--fo-teal) !important; }
.btn-primary {
  --bs-btn-bg: var(--fo-teal);
  --bs-btn-border-color: var(--fo-teal);
  --bs-btn-hover-bg: var(--fo-teal-dark);
  --bs-btn-hover-border-color: var(--fo-teal-dark);
  --bs-btn-active-bg: var(--fo-teal-dark);
  --bs-btn-active-border-color: var(--fo-teal-dark);
  --bs-btn-disabled-bg: var(--fo-teal);
  --bs-btn-disabled-border-color: var(--fo-teal);
}

.navbar { min-height: 72px; }
.navbar .nav-link { color: var(--fo-navy); font-size: .91rem; font-weight: 500; }
.navbar .nav-link:hover { color: var(--fo-teal); }
.brand-mark {
  position: relative;
  display: grid;
  width: 2.25rem;
  height: 2.25rem;
  place-items: center;
  color: #fff;
  background: var(--fo-teal);
  border-radius: .55rem .55rem .2rem .55rem;
  box-shadow: -.28rem .28rem 0 rgba(29, 73, 69, .2);
}
.brand-mark::before {
  position: absolute;
  inset: .3rem -.18rem -.18rem .3rem;
  z-index: -1;
  border: 1px solid rgba(29, 73, 69, .45);
  border-radius: .55rem .55rem .2rem .55rem;
  content: "";
}
.brand-mark span { font-size: 1.1rem; font-weight: 800; letter-spacing: -.06em; }
.brand-name { color: var(--fo-navy); font-size: 1.08rem; font-weight: 500; letter-spacing: -.035em; white-space: nowrap; }
.brand-name strong { font-weight: 800; }

.hero-section {
  background:
    radial-gradient(circle at 82% 18%, rgba(29, 73, 69, .12), transparent 28rem),
    linear-gradient(180deg, #fbfdfc 0%, #f4f8f7 100%);
}
.hero-section-compact { min-height: 31rem; }
.hero-grid {
  position: absolute;
  inset: 0;
  opacity: .28;
  background-image: linear-gradient(rgba(16, 42, 67, .055) 1px, transparent 1px), linear-gradient(90deg, rgba(16, 42, 67, .055) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(to right, transparent 0, #000 40%, #000 100%);
}
.eyebrow, .section-kicker {
  color: var(--fo-teal);
  font-size:.875rem;
  font-weight: 750;
  letter-spacing: .105em;
  text-transform: uppercase;
}
.eyebrow { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; }
.eyebrow-dot { width: .5rem; height: .5rem; background: var(--fo-teal); border-radius: 50%; box-shadow: 0 0 0 .3rem rgba(29, 73, 69, .12); }
.eyebrow-divider { width: 1px; height: .9rem; background: rgba(16, 42, 67, .2); }
.hero-section h1 { color: var(--fo-navy); letter-spacing: -.052em; line-height: 1.04; max-width: 760px; }
.headline-underline { position: absolute; right: 0; bottom: -.25rem; left: 0; height: .38rem; background: var(--fo-amber); border-radius: 100%; transform: rotate(-1.5deg); z-index: -1; }
.hero-copy { max-width: 42rem; font-size: 1.18rem; line-height: 1.65; }

.research-search {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(9rem, .72fr) auto;
  align-items: stretch;
  max-width: 48rem;
  padding: .45rem;
  background: var(--bs-body-bg);
  border: 1px solid rgba(16, 42, 67, .1);
  border-radius: 1rem;
}
.research-search-wide { grid-template-columns: minmax(12rem, 1.45fr) minmax(8.75rem, .75fr) minmax(9.5rem, .82fr) auto; max-width: 64rem; }
.search-field { min-width: 0; padding: .45rem 1rem; border-right: 1px solid var(--fo-border); }
.search-field label { display: block; margin-bottom: .12rem; color: var(--fo-navy); font-size:.875rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.search-field input, .search-field select { width: 100%; padding: 0; color: var(--bs-body-color); background: transparent; border: 0; outline: 0; font-size: .91rem; }
.search-field input::placeholder { color: var(--bs-secondary-color); }
.search-button { align-self: stretch; border-radius: .75rem; font-size: .93rem; }
.search-feedback { height: 0; overflow: hidden; color: var(--fo-teal); font-size:.875rem; font-weight: 600; transition: height .2s ease, padding .2s ease; }
.search-feedback.show { height: 2rem; padding-top: .65rem; }
.quick-searches { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem .7rem; color: var(--bs-secondary-color); font-size:.875rem; }
.quick-searches > span { font-weight: 650; }
.quick-searches a { color: var(--fo-navy); text-decoration: none; border-bottom: 1px solid rgba(16, 42, 67, .25); }
.quick-searches a:hover { color: var(--fo-teal); border-color: var(--fo-teal); }
.independence-note { display: flex; align-items: center; gap: .65rem; color: var(--bs-secondary-color); font-size:.875rem; }
.independence-note i { display: grid; width: 2rem; height: 2rem; place-items: center; color: var(--fo-teal); background: var(--fo-mint); border-radius: .55rem; }
.profile-includes-card { padding: 1.35rem; background: rgba(var(--bs-body-bg-rgb), .88); border: 1px solid var(--fo-border); border-radius: 1.1rem; backdrop-filter: blur(.5rem); }
.profile-includes-heading { display: flex; align-items: center; gap: .8rem; padding-bottom: 1rem; border-bottom: 1px solid var(--fo-border); }
.profile-includes-icon { display: grid; flex: 0 0 auto; width: 2.8rem; height: 2.8rem; place-items: center; color: #fff; background: var(--fo-navy); border-radius: .7rem; font-size: 1.05rem; }
.profile-includes-list { padding: .4rem 0; }
.profile-includes-list li { display: grid; grid-template-columns: 1.8rem 1fr; gap: .65rem; padding: .75rem 0; border-bottom: 1px solid var(--fo-border); }
.profile-includes-list li > i { color: var(--fo-teal); padding-top: .08rem; }
.profile-includes-list strong, .profile-includes-list small { display: block; }
.profile-includes-list strong { color: var(--fo-navy); font-size:.875rem; }
.profile-includes-list small { margin-top: .13rem; color: var(--bs-secondary-color); font-size:.875rem; line-height: 1.4; }
.profile-includes-link { display: inline-flex; align-items: center; gap: .45rem; padding-top: .8rem; color: var(--fo-teal); font-size:.875rem; font-weight: 700; text-decoration: none; }

.intelligence-stage { position: relative; width: min(100%, 36rem); padding: 2.2rem 2.6rem; }
.stage-glow { position: absolute; inset: 10% 0 3%; background: linear-gradient(140deg, rgba(29, 73, 69, .18), rgba(67, 117, 168, .13)); border-radius: 42% 58% 56% 44% / 45% 42% 58% 55%; filter: blur(1px); transform: rotate(-4deg); }
.profile-preview { position: relative; z-index: 2; padding: 1.4rem; background: var(--bs-body-bg); border: 1px solid rgba(255,255,255,.8); border-radius: 1.25rem; }
.sample-logo { display: grid; flex: 0 0 auto; width: 3rem; height: 3rem; place-items: center; color: #fff; background: var(--fo-navy); border-radius: .8rem; font-size: 1.15rem; font-weight: 800; }
.sample-label { display: block; margin-bottom: .15rem; color: var(--bs-secondary-color); font-size:.875rem; font-weight: 750; letter-spacing: .075em; text-transform: uppercase; }
.country-switch { display: inline-flex; gap: .15rem; padding: .25rem; background: var(--bs-tertiary-bg); border: 1px solid var(--fo-border); border-radius: .72rem; }
.country-option { padding: .48rem .72rem; color: var(--bs-secondary-color); background: transparent; border: 0; border-radius: .5rem; font-size:.875rem; font-weight: 650; transition: .2s ease; }
.country-option.active { color: var(--fo-navy); background: var(--bs-body-bg); box-shadow: 0 .2rem .65rem rgba(16, 42, 67, .08); }
.metric-card, .score-card { padding: 1rem; background: var(--bs-tertiary-bg); border-radius: .9rem; }
.metric-label { display: block; color: var(--bs-secondary-color); font-size:.875rem; }
.metric-value { display: block; margin: .32rem 0 .55rem; color: var(--fo-navy); font-size: 1.15rem; letter-spacing: -.03em; }
.metric-context { color: var(--fo-teal); font-size:.875rem; font-weight: 600; }
.score-card { display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--fo-mint); text-align: center; }
.score-ring { display: flex; align-items: baseline; justify-content: center; width: 4.5rem; height: 4.5rem; padding-top: 1.3rem; color: var(--fo-navy); background: conic-gradient(var(--fo-teal) 84%, rgba(29, 73, 69, .12) 0); border-radius: 50%; box-shadow: inset 0 0 0 .45rem var(--fo-mint); }
.score-ring strong { font-size: 1.25rem; }
.score-ring small { font-size:.875rem; }
.score-caption { margin-top: .35rem; color: var(--bs-secondary-color); font-size:.875rem; font-weight: 650; }
.profile-facts { display: grid; grid-template-columns: repeat(3, 1fr); }
.profile-facts > div { padding: .1rem .7rem; border-right: 1px solid var(--fo-border); }
.profile-facts > div:first-child { padding-left: 0; }
.profile-facts > div:last-child { padding-right: 0; border: 0; }
.profile-facts span, .profile-facts strong { display: block; }
.profile-facts span { margin-bottom: .22rem; color: var(--bs-secondary-color); font-size:.875rem; }
.profile-facts strong { color: var(--fo-navy); font-size:.875rem; }
.evidence-row { display: flex; align-items: center; padding: .75rem; background: rgba(29, 73, 69, .06); border: 1px solid rgba(29, 73, 69, .12); border-radius: .7rem; }
.evidence-icon { display: grid; width: 2rem; height: 2rem; margin-right: .65rem; place-items: center; color: var(--fo-teal); background: var(--fo-mint); border-radius: .5rem; }
.evidence-row strong, .evidence-row span { display: block; }
.evidence-row strong { font-size:.875rem; }
.evidence-row span { color: var(--bs-secondary-color); font-size:.875rem; }
.floating-insight { position: absolute; z-index: 3; display: flex; align-items: center; gap: .55rem; padding: .65rem .8rem; background: var(--bs-body-bg); border: 1px solid var(--fo-border); border-radius: .75rem; }
.floating-insight strong, .floating-insight small { display: block; white-space: nowrap; }
.floating-insight strong { font-size:.875rem; }
.floating-insight small { color: var(--bs-secondary-color); font-size:.875rem; }
.insight-icon { display: grid; width: 1.9rem; height: 1.9rem; place-items: center; color: var(--fo-teal); background: var(--fo-mint); border-radius: .48rem; }
.insight-growth { top: 4%; right: -.4rem; }
.insight-source { bottom: 2%; left: -.5rem; }

.trust-strip { background: var(--bs-body-bg); }
.trust-icon { display: grid; flex: 0 0 auto; width: 2.75rem; height: 2.75rem; place-items: center; color: var(--fo-teal); background: var(--fo-mint); border-radius: .75rem; font-size: 1.2rem; }
.section-space { padding: 6.5rem 0; }
.section-heading { max-width: 100%; }
.section-heading > div:first-child { max-width: 48rem; }
.section-kicker { display: block; margin-bottom: .65rem; }
.arrow-link { display: inline-flex; align-items: center; gap: .5rem; color: var(--fo-teal); font-size: .9rem; font-weight: 650; text-decoration: none; white-space: nowrap; }
.arrow-link:hover { gap: .7rem; color: var(--fo-teal-dark); }

.category-card { display: flex; align-items: center; gap: 1rem; min-height: 7rem; padding: 1.15rem; color: var(--fo-navy); background: var(--bs-body-bg); border: 1px solid var(--fo-border); border-radius: 1rem; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.category-card:hover { color: var(--fo-navy); border-color: rgba(29, 73, 69, .35); box-shadow: 0 .8rem 2rem rgba(16, 42, 67, .08); transform: translateY(-3px); }
.category-card > span:nth-child(2) { min-width: 0; }
.category-card strong, .category-card small { display: block; }
.category-card strong { margin-bottom: .23rem; font-size: .98rem; }
.category-card small { color: var(--bs-secondary-color); font-size:.875rem; line-height: 1.45; }
.category-card > .fi-arrow-up-right { color: var(--bs-secondary-color); font-size: .9rem; }
.category-icon { display: grid; flex: 0 0 auto; width: 3.35rem; height: 3.35rem; place-items: center; color: var(--fo-navy); border-radius: .85rem; font-size: 1.22rem; }
.category-icon.mint { background: var(--fo-mint); }
.category-icon.blue { background: var(--fo-blue); }
.category-icon.amber { background: var(--fo-amber); }
.category-icon.lavender { background: var(--fo-lavender); }
.category-icon.coral { background: var(--fo-coral); }
.category-icon.navy { color: #fff; background: var(--fo-navy); }
.category-card-special { background: linear-gradient(135deg, rgba(29, 73, 69, .07), rgba(16, 42, 67, .04)); }

.franchise-card { overflow: hidden; background: var(--bs-body-bg); border: 1px solid var(--fo-border); border-radius: 1.1rem; transition: transform .2s ease, box-shadow .2s ease; }
.franchise-card:hover { box-shadow: var(--fo-shadow); transform: translateY(-4px); }
.franchise-card-top { display: flex; align-items: center; gap: .85rem; padding: 1.2rem; border-bottom: 1px solid var(--fo-border); }
.logo-teal { background: var(--fo-teal); }
.logo-blue { background: #3f6f9e; }
.logo-amber { color: var(--fo-navy); background: #e7b85d; }
.franchise-card-body { padding: 1.2rem; }
.score-summary { display: flex; align-items: center; justify-content: space-between; padding: .75rem .85rem; background: var(--fo-mint); border-radius: .7rem; }
.score-summary > span { color: var(--fo-teal-dark); font-size:.875rem; font-weight: 650; }
.score-summary strong { color: var(--fo-teal-dark); font-size: 1.3rem; }
.score-summary strong span { font-size:.875rem; font-weight: 500; }
.fact-list { margin: 1.15rem 0; }
.fact-list > div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .63rem 0; border-bottom: 1px solid var(--fo-border); }
.fact-list > div:last-child { border-bottom: 0; }
.fact-list dt { color: var(--bs-secondary-color); font-size:.875rem; font-weight: 500; }
.fact-list dd { margin: 0; color: var(--fo-navy); font-size:.875rem; font-weight: 700; text-align: right; }
.data-quality { display: flex; align-items: center; gap: .4rem; color: var(--fo-teal); font-size:.875rem; }
.data-quality.medium { color: #a66a00; }
.franchise-card-footer { display: flex; align-items: center; justify-content: space-between; padding: .85rem 1.2rem; background: var(--bs-tertiary-bg); border-top: 1px solid var(--fo-border); }
.franchise-card-footer a { color: var(--fo-teal); font-size:.875rem; font-weight: 700; text-decoration: none; }
.compare-check { display: flex; align-items: center; gap: .4rem; margin: 0; color: var(--bs-secondary-color); font-size:.875rem; cursor: pointer; }
.compare-check .form-check-input:checked { background-color: var(--fo-teal); border-color: var(--fo-teal); }

.feature-list li { display: flex; align-items: center; gap: .7rem; margin-bottom: .9rem; color: var(--bs-secondary-color); }
.feature-list i { display: grid; flex: 0 0 auto; width: 1.45rem; height: 1.45rem; place-items: center; color: var(--fo-teal); background: var(--fo-mint); border-radius: 50%; font-size:.875rem; }
.comparison-shell { overflow: hidden; background: var(--bs-body-bg); border: 1px solid var(--fo-border); border-radius: 1.1rem; }
.comparison-shell .table-responsive { overflow-y: hidden; }
.comparison-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem 1.35rem; border-bottom: 1px solid var(--fo-border); }
.comparison-table th, .comparison-table td { min-width: 9rem; padding: .9rem 1.15rem; border-color: var(--fo-border); font-size:.875rem; }
.comparison-table thead th { color: var(--bs-secondary-color); background: var(--bs-tertiary-bg); font-size:.875rem; font-weight: 650; }
.comparison-table tbody th { color: var(--bs-secondary-color); font-weight: 500; }
.comparison-table tbody td { color: var(--fo-navy); font-weight: 650; }
.table-brand { display: flex; align-items: center; gap: .5rem; color: var(--fo-navy); }
.mini-logo { display: grid; width: 1.7rem; height: 1.7rem; place-items: center; color: #fff; background: var(--fo-navy); border-radius: .4rem; font-size:.875rem; font-weight: 800; }
.score-good, .trend-positive, .better-value { color: var(--fo-teal); }
.comparison-note { display: flex; align-items: center; gap: .45rem; padding: .75rem 1.2rem; color: var(--bs-secondary-color); background: var(--bs-tertiary-bg); font-size:.875rem; }
.comparison-page-section { background: var(--bs-tertiary-bg); }
.comparison-alert { display: flex; align-items: center; gap: .6rem; margin-bottom: 1.25rem; padding: .9rem 1rem; color: #72530b; background: #fff7df; border: 1px solid #f0daa1; border-radius: .8rem; font-size:.875rem; }
.comparison-state-card { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 1.6rem; background: var(--bs-body-bg); border: 1px solid var(--fo-border); border-radius: 1rem; }
.comparison-selected-card { position: relative; display: grid; grid-template-columns: auto minmax(12rem, 1fr) minmax(10rem, auto) auto; align-items: center; gap: 1rem; padding: 1.15rem 1.25rem; background: var(--bs-body-bg); border: 1px solid var(--fo-border); border-radius: 1rem; }
.comparison-selected-name > span, .comparison-selected-metric > span { display: block; color: var(--bs-secondary-color); font-size:.875rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.comparison-selected-name a { color: var(--fo-navy); text-decoration: none; }
.comparison-selected-name small { color: var(--bs-secondary-color); }
.comparison-selected-metric strong { display: block; margin-top: .15rem; color: var(--fo-navy); font-size:.875rem; }
.comparison-brand-heading { display: flex; align-items: center; gap: .6rem; min-height: 2.3rem; }
.comparison-brand-heading a { display: block; color: var(--fo-navy); font-size:.875rem; font-weight: 750; text-decoration: none; }
.comparison-brand-heading small { display: block; margin-top: .1rem; color: var(--bs-secondary-color); font-size:.875rem; font-weight: 500; }
.comparison-remove { display: inline-block; margin-top: .45rem; color: var(--bs-secondary-color); font-size:.875rem; font-weight: 600; text-decoration: none; }
.comparison-remove:hover { color: var(--fo-teal); }
.comparison-table thead th { vertical-align: top; }
.comparison-table thead th:not(:first-child) { min-width: 12.5rem; }
.comparison-table .comparison-measure-column, .comparison-table tbody th { position: sticky; left: 0; z-index: 1; min-width: 12rem; background: var(--bs-body-bg); }
.comparison-table .comparison-measure-column { z-index: 2; background: var(--bs-tertiary-bg); }

.methodology-section { position: relative; overflow: hidden; background: var(--fo-navy-deep); }
.methodology-section::before { position: absolute; top: -12rem; right: -8rem; width: 32rem; height: 32rem; background: rgba(29, 73, 69, .16); border-radius: 50%; content: ""; filter: blur(2rem); }
.section-kicker-light { color: #76d6cb; }
.method-stack { position: relative; }
.method-card { position: relative; z-index: 2; display: grid; grid-template-columns: auto auto 1fr; align-items: start; gap: .8rem; padding: 1rem; background: #fff; border: 1px solid rgba(255,255,255,.12); border-radius: .9rem; box-shadow: 0 1rem 2.5rem rgba(0,0,0,.16); }
.method-number { padding-top: .35rem; color: #789; font-size:.875rem; font-weight: 750; }
.method-icon { display: grid; width: 2.65rem; height: 2.65rem; place-items: center; color: var(--fo-teal); background: var(--fo-mint); border-radius: .65rem; font-size: 1.05rem; }
.method-card strong { display: block; margin: .1rem 0 .22rem; color: var(--fo-navy); font-size:.875rem; }
.method-card p { margin: 0; color: #647586; font-size:.875rem; line-height: 1.5; }
.method-connector { width: 1px; height: 1.25rem; margin-left: 3.2rem; background: repeating-linear-gradient(to bottom, #76d6cb 0 4px, transparent 4px 8px); }

.tool-card { padding: 1.6rem; background: var(--bs-body-bg); border: 1px solid var(--fo-border); border-radius: 1rem; }
.tool-card .tool-icon { display: grid; width: 3rem; height: 3rem; margin-bottom: 1.2rem; place-items: center; color: var(--fo-teal); background: var(--fo-mint); border-radius: .75rem; font-size: 1.15rem; }
.tool-card p { color: var(--bs-secondary-color); font-size:.875rem; line-height: 1.7; }
.tool-card a { color: var(--fo-teal); font-size:.875rem; font-weight: 700; text-decoration: none; }
.franchisor-cta { position: relative; padding: 3rem; background: linear-gradient(120deg, var(--fo-teal-dark), var(--fo-navy)); border-radius: 1.35rem; box-shadow: var(--fo-shadow); }
.cta-pattern { position: absolute; inset: 0; opacity: .16; background-image: radial-gradient(circle, #fff 1px, transparent 1px); background-size: 22px 22px; mask-image: linear-gradient(90deg, transparent, #000); }

.compare-dock { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 1040; display: flex; align-items: center; gap: 1.5rem; padding: .75rem .8rem .75rem 1rem; color: #fff; background: var(--fo-navy); border: 1px solid rgba(255,255,255,.12); border-radius: .9rem; transition: .25s ease; }
.compare-dock strong, .compare-dock span { display: block; }
.compare-dock strong { font-size:.875rem; }
.compare-dock span { color: rgba(255,255,255,.6); font-size:.875rem; }
.compare-dock .btn { color: var(--fo-navy); font-size:.875rem; font-weight: 700; }
.compare-dock .compare-count { display: inline; }
.compare-dock .btn:disabled { opacity: .5; cursor: not-allowed; }
.compare-check .form-check-input:disabled { opacity: .35; cursor: not-allowed; }
.site-footer { background: var(--fo-navy-deep); }
.site-footer .brand-name { color: #fff; }
.footer-links li { margin-bottom: .55rem; }
.footer-links a, .footer-bottom a { color: rgba(255,255,255,.55); font-size:.875rem; text-decoration: none; }
.footer-links a:hover, .footer-bottom a:hover { color: #fff; }
.page-hero { background: linear-gradient(180deg, #fbfdfc 0%, #f4f8f7 100%); }
.section-space-sm { min-height: 28rem; padding: 4.5rem 0; }
.empty-state { max-width: 44rem; margin: 0 auto; padding: 3rem; background: var(--bs-body-bg); border: 1px solid var(--fo-border); border-radius: 1.1rem; text-align: center; }
.empty-state-icon { display: grid; width: 3.5rem; height: 3.5rem; margin: 0 auto 1.25rem; place-items: center; color: var(--fo-teal); background: var(--fo-mint); border-radius: .9rem; font-size: 1.35rem; }

.catalog-filter { display: grid; grid-template-columns: minmax(16rem, 1.8fr) minmax(10rem, .8fr) minmax(11rem, .9fr) auto; gap: .7rem; max-width: 62rem; padding: .7rem; background: var(--bs-body-bg); border: 1px solid var(--fo-border); border-radius: 1rem; }
.catalog-filter-search { grid-template-columns: minmax(12rem, 1.35fr) minmax(12rem, 1fr) minmax(9rem, .9fr) minmax(9rem, .85fr) auto; }
.catalog-filter-field { min-width: 0; padding: .15rem .4rem; }
.catalog-filter-field label { display: block; margin: 0 0 .25rem .7rem; color: var(--bs-secondary-color); font-size:.875rem; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.catalog-filter .form-control, .catalog-filter .form-select { min-height: 2.7rem; border: 0; background-color: var(--bs-tertiary-bg); box-shadow: none; font-size:.875rem; }
.catalog-filter .form-control:focus-visible, .catalog-filter .form-select:focus-visible { outline: 3px solid var(--fo-teal-dark); outline-offset: 2px; }
.catalog-filter > .btn { align-self: end; min-height: 2.7rem; padding-inline: 1.35rem; }
.catalog-results-section { background: var(--bs-tertiary-bg); }
.catalog-results-toolbar, .catalog-results-actions, .catalog-sort-form { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.catalog-results-toolbar { justify-content: space-between; }
.catalog-results-actions { justify-content: flex-end; }
.catalog-sort-form { gap: .4rem; }
.catalog-sort-form label { color: var(--bs-secondary-color); font-size:.875rem; font-weight: 700; white-space: nowrap; }
.catalog-sort-form .form-select { width: auto; max-width: 16rem; font-size:.875rem; }
.data-scope-note { display: inline-flex; align-items: center; gap: .4rem; color: var(--fo-teal-dark); font-size:.875rem; font-weight: 650; }
.catalog-card { display: flex; overflow: hidden; flex-direction: column; background: var(--bs-body-bg); border: 1px solid var(--fo-border); border-radius: 1rem; box-shadow: 0 .4rem 1.4rem rgba(16,42,67,.045); transition: transform .2s ease, box-shadow .2s ease; }
.catalog-card:hover { box-shadow: 0 1rem 2.5rem rgba(16,42,67,.1); transform: translateY(-3px); }
.catalog-card-head { display: flex; align-items: center; gap: .85rem; padding: 1.15rem 1.2rem; border-bottom: 1px solid var(--fo-border); }
.catalog-card-head small { display: block; color: var(--bs-secondary-color); font-size:.875rem; }
.catalog-logo, .profile-logo-large { display: grid; flex: 0 0 auto; place-items: center; color: #fff; background: var(--fo-navy); font-weight: 800; }
.catalog-logo { width: 2.9rem; height: 2.9rem; border-radius: .75rem; }
.catalog-country { display: block; margin-bottom: .15rem; color: var(--fo-teal); font-size:.875rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.catalog-card-body { flex: 1; padding: 1.15rem 1.2rem; }
.catalog-summary { min-height: 2.9rem; margin-bottom: 1rem; color: var(--bs-secondary-color); font-size:.875rem; line-height: 1.55; }
.catalog-facts { margin: 0; }
.catalog-facts > div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var(--fo-border); }
.catalog-facts dt { color: var(--bs-secondary-color); font-size:.875rem; font-weight: 500; }
.catalog-facts dd { margin: 0; font-size:.875rem; font-weight: 750; text-align: right; }
.catalog-quality { display: flex; flex-wrap: wrap; gap: .55rem 1rem; margin-top: .9rem; color: var(--fo-teal); font-size:.875rem; font-weight: 650; }
.catalog-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1.2rem; background: var(--bs-tertiary-bg); border-top: 1px solid var(--fo-border); }
.catalog-card-foot span { color: var(--bs-secondary-color); font-size:.875rem; }
.catalog-card-foot a { color: var(--fo-teal); font-size:.875rem; font-weight: 750; text-decoration: none; }
.country-pills { display: inline-flex; flex-wrap: wrap; gap: .35rem; padding: .3rem; background: var(--bs-body-bg); border: 1px solid var(--fo-border); border-radius: .75rem; }
.page-hero .country-pills { flex-shrink: 0; }
.country-pills a, .country-pills span { padding: .55rem .8rem; color: var(--bs-secondary-color); border-radius: .55rem; font-size:.875rem; font-weight: 650; text-decoration: none; }
.country-pills a:hover, .country-pills a.active, .country-pills span.active { color: #fff; background: var(--fo-teal); }

.profile-hero { background: radial-gradient(circle at 85% 20%, rgba(29,73,69,.09), transparent 25rem), linear-gradient(180deg, #fbfdfc 0%, #f4f8f7 100%); }
.profile-title-row { display: flex; align-items: center; gap: 1.15rem; }
.profile-logo-large { width: 4.8rem; height: 4.8rem; border-radius: 1rem; font-size: 1.7rem; box-shadow: -.3rem .3rem 0 rgba(29,73,69,.16); }
.profile-country-pills { margin-left: 5.95rem; }
.offering-choice-card { display: flex; align-items: center; gap: 1rem; min-height: 7rem; padding: 1.25rem; color: var(--fo-navy); background: var(--bs-body-bg); border: 1px solid var(--fo-border); border-radius: 1rem; text-decoration: none; }
.offering-choice-card:hover { color: var(--fo-navy); border-color: rgba(29,73,69,.35); box-shadow: var(--fo-shadow); }
.offering-choice-card strong, .offering-choice-card small { display: block; }
.offering-choice-card small { margin-top: .25rem; color: var(--bs-secondary-color); font-size:.875rem; }
.offering-country-code { display: grid; flex: 0 0 auto; width: 3rem; height: 3rem; place-items: center; color: var(--fo-teal); background: var(--fo-mint); border-radius: .75rem; font-weight: 800; }
.profile-content-section { background: var(--bs-tertiary-bg); }
.profile-metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); overflow: hidden; background: var(--bs-body-bg); border: 1px solid var(--fo-border); border-radius: 1rem; }
.profile-metric-grid article { padding: 1.2rem 1.3rem; border-right: 1px solid var(--fo-border); }
.profile-metric-grid article:last-child { border-right: 0; }
.profile-metric-grid span, .profile-metric-grid strong, .profile-metric-grid small { display: block; }
.profile-metric-grid span { color: var(--bs-secondary-color); font-size:.875rem; }
.profile-metric-grid strong { margin: .3rem 0; font-size: 1.1rem; }
.profile-metric-grid small { color: var(--fo-teal); font-size:.875rem; }
.profile-section-card { padding: 1.35rem; background: var(--bs-body-bg); border: 1px solid var(--fo-border); border-radius: 1rem; box-shadow: 0 .4rem 1.4rem rgba(16,42,67,.035); }
.analysis-copy { color: var(--bs-secondary-color); font-size: .88rem; line-height: 1.75; white-space: pre-line; }
.published-fact-row { display: grid; grid-template-columns: minmax(10rem, 1.25fr) minmax(8rem, .8fr) auto; align-items: center; gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--fo-border); }
.published-fact-row:last-child { border-bottom: 0; }
.published-fact-row strong, .published-fact-row small { display: block; }
.published-fact-row strong { font-size:.875rem; }
.published-fact-row small { margin-top: .15rem; color: var(--bs-secondary-color); font-size:.875rem; }
.published-fact-value { font-size:.875rem; font-weight: 750; }
.evidence-badge { display: inline-flex; align-items: center; gap: .3rem; color: var(--fo-teal); font-size:.875rem; font-weight: 650; }
.source-list { display: grid; gap: .6rem; }
.source-list > a { display: block; padding: .85rem; color: var(--fo-navy); background: var(--bs-tertiary-bg); border: 1px solid var(--fo-border); border-radius: .7rem; text-decoration: none; }
.source-list > a:hover { border-color: rgba(29,73,69,.35); }
.source-list strong, .source-list small, .source-list span { display: block; }
.source-list strong { margin: .2rem 0; overflow-wrap: anywhere; font-size:.875rem; }
.source-list small { color: var(--bs-secondary-color); font-size:.875rem; }
.source-tier { color: var(--fo-teal); font-size:.875rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.source-facts { margin-top: .45rem; color: var(--fo-teal); font-size:.875rem; font-weight: 650; }
.evidence-integrity-note { display: flex; align-items: flex-start; gap: .5rem; margin-top: 1rem; padding: .8rem; color: var(--bs-secondary-color); background: var(--fo-mint); border-radius: .65rem; font-size:.875rem; line-height: 1.5; }
.evidence-integrity-note i { color: var(--fo-teal); }

[data-bs-theme="dark"] body { color: #eef5f4; }
[data-bs-theme="dark"] .brand-name, [data-bs-theme="dark"] .navbar .nav-link, [data-bs-theme="dark"] .hero-section h1, [data-bs-theme="dark"] .metric-value, [data-bs-theme="dark"] .profile-facts strong, [data-bs-theme="dark"] .country-option.active, [data-bs-theme="dark"] .category-card, [data-bs-theme="dark"] .category-card:hover, [data-bs-theme="dark"] .fact-list dd, [data-bs-theme="dark"] .comparison-table tbody td, [data-bs-theme="dark"] .table-brand { color: #edf5f4; }
[data-bs-theme="dark"] .quick-searches a, [data-bs-theme="dark"] .profile-includes-list strong { color: #edf5f4; }
[data-bs-theme="dark"] .hero-section { background: radial-gradient(circle at 82% 18%, rgba(41, 187, 171, .13), transparent 28rem), linear-gradient(180deg, #111b25 0%, #0c1721 100%); }
[data-bs-theme="dark"] .page-hero { background: linear-gradient(180deg, #111b25 0%, #0c1721 100%); }
[data-bs-theme="dark"] .profile-hero { background: radial-gradient(circle at 85% 20%, rgba(41,187,171,.1), transparent 25rem), linear-gradient(180deg, #111b25 0%, #0c1721 100%); }
[data-bs-theme="dark"] .offering-choice-card, [data-bs-theme="dark"] .offering-choice-card:hover, [data-bs-theme="dark"] .source-list > a { color: #edf5f4; }
[data-bs-theme="dark"] .comparison-selected-name a, [data-bs-theme="dark"] .comparison-selected-metric strong, [data-bs-theme="dark"] .comparison-brand-heading a { color: #edf5f4; }
[data-bs-theme="dark"] .comparison-alert { color: #f4d986; background: #352d19; border-color: #594b25; }
[data-bs-theme="dark"] .profile-preview { border-color: rgba(255,255,255,.08); }
[data-bs-theme="dark"] .score-card, [data-bs-theme="dark"] .score-ring { background-color: #123d3b; }
[data-bs-theme="dark"] .category-card-special { background: linear-gradient(135deg, rgba(41, 187, 171, .08), rgba(255,255,255,.025)); }

@media (max-width: 1199.98px) {
  .intelligence-stage { padding-right: 1.2rem; padding-left: 1.2rem; }
  .insight-growth { right: -.5rem; }
  .insight-source { left: -.5rem; }
}

@media (max-width: 991.98px) {
  .hero-section { text-align: center; }
  .hero-copy, .research-search { margin-right: auto; margin-left: auto; }
  .eyebrow, .hero-section .d-flex.flex-wrap { justify-content: center; }
  .intelligence-stage { margin-top: 1rem; }
  .section-space { padding: 5rem 0; }
  .franchisor-cta { padding: 2.2rem; }
  .profile-includes-card { max-width: 42rem; margin: 0 auto; text-align: left; }
  .catalog-filter { grid-template-columns: 1fr 1fr; }
  .catalog-filter-query { grid-column: 1 / -1; }
  .catalog-filter-search .catalog-filter-budget { grid-column: 1 / -1; }
  .catalog-filter > .btn { grid-column: 1 / -1; }
  .profile-metric-grid { grid-template-columns: repeat(2, 1fr); }
  .profile-metric-grid article:nth-child(2) { border-right: 0; }
  .profile-metric-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--fo-border); }
}

@media (max-width: 767.98px) {
  .research-search, .research-search-wide { grid-template-columns: 1fr; gap: .1rem; padding: .6rem; }
  .search-field { padding: .7rem .75rem; border-right: 0; border-bottom: 1px solid var(--fo-border); text-align: left; }
  .search-button { margin-top: .4rem; min-height: 3.2rem; }
  .profile-preview { padding: 1rem; }
  .intelligence-stage { padding: 2.4rem .2rem; }
  .floating-insight { display: none; }
  .trust-strip .row-cols-3 strong { font-size: 1rem !important; }
  .trust-strip .row-cols-3 span { font-size:.875rem; }
  .section-space { padding: 4rem 0; }
  .franchisor-cta { padding: 1.6rem; border-radius: 1rem; }
  .compare-dock { right: .75rem; bottom: .75rem; left: .75rem; justify-content: space-between; }
  .profile-title-row { align-items: flex-start; }
  .profile-logo-large { width: 4rem; height: 4rem; font-size: 1.35rem; }
  .profile-country-pills { margin-left: 0; }
  .published-fact-row { grid-template-columns: 1fr auto; }
  .published-fact-row .evidence-badge { grid-column: 1 / -1; }
  .comparison-state-card { align-items: flex-start; flex-direction: column; gap: 1.25rem; }
  .comparison-selected-card { grid-template-columns: auto 1fr auto; }
  .comparison-selected-metric { grid-column: 2 / -1; }
  .catalog-results-actions { justify-content: flex-start; }
}

@media (max-width: 479.98px) {
  .hero-section h1 { font-size: 3rem; }
  .hero-copy { font-size: 1rem; }
  .profile-facts > div { padding: 0 .45rem; }
  .profile-facts span { font-size:.875rem; }
  .profile-facts strong { font-size:.875rem; }
  .country-option { padding: .42rem .52rem; font-size:.875rem; }
  .comparison-header { align-items: flex-start; flex-direction: column; }
  .compare-dock { gap: .5rem; }
  .compare-dock #compareStatus { display: none; }
  .comparison-selected-card { grid-template-columns: auto 1fr; }
  .comparison-selected-metric { grid-column: 1 / -1; }
  .comparison-selected-card > .comparison-remove { position: absolute; right: 1.25rem; }
  .catalog-filter { grid-template-columns: 1fr; }
  .catalog-filter-query, .catalog-filter > .btn { grid-column: auto; }
  .catalog-filter-search .catalog-filter-budget { grid-column: auto; }
  .profile-title-row { flex-direction: column; }
  .profile-metric-grid { grid-template-columns: 1fr; }
  .profile-metric-grid article { border-right: 0; border-bottom: 1px solid var(--fo-border); }
  .profile-metric-grid article:last-child { border-bottom: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
