/* Meilenguru shared stylesheet - base rules.
   Rules that are byte-identical on every page that uses them, lifted out of
   the per-page <style> blocks. Each page still carries a <style> after this
   link for anything unique to it. Media queries live in site-media.css, which
   loads after that <style> so the base-then-breakpoint order is preserved. */

*,*::before,*::after { margin: 0; padding: 0; box-sizing: border-box }
.nav-sticky-wrap { position: sticky; top: 0; z-index: 100 }
.logo {
  display: inline-flex; align-items: center; gap: 0.7em; font-family: var(--font-body); font-size: 1rem; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--black); text-decoration: none
}
.logo svg { width: 2.6em; height: 2.6em; flex-shrink: 0 }
.nav-back:hover { color: var(--gold) }
.lang-notice {
  background: var(--warm-white); border-bottom: 0.5px solid var(--border); padding: 0.5rem 2rem; font-size: 0.75rem; color: var(--muted); display: flex; justify-content: space-between; align-items: center
}
.lang-notice a { color: var(--gold); text-decoration: none }
.mobile-menu.open { display: flex }
.lang-banner a:hover { color: var(--gold-light) }
.route-item { text-align: center }
.hero-sub {
  font-size: 0.95rem; color: var(--muted); max-width: 400px; line-height: 1.8; margin-bottom: 2rem; font-weight: 300; animation: fadeUp 0.6s 0.2s ease both
}
.hero-badges {
  display: flex; gap: 0.6rem; margin-bottom: 2.5rem; flex-wrap: wrap; animation: fadeUp 0.6s 0.3s ease both
}
.toc-title {
  font-size: 0.65rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: 0.75rem
}
.badge {
  font-size: 0.67rem; letter-spacing: 0.1em; text-transform: uppercase; border: 0.5px solid var(--border); padding: 0.3rem 0.75rem; color: var(--muted)
}
.toc ol { padding-left: 1.25rem; display: flex; flex-direction: column; gap: 0.3rem }
.badge.gold-badge { border-color: var(--gold); color: var(--gold) }
.tool-section { padding: 5rem 2rem }
.hero-ctas {
  display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; animation: fadeUp 0.6s 0.4s ease both
}
.tab-nav {
  background: var(--warm-white); border-bottom: 0.5px solid var(--border); position: sticky; top: 57px; z-index: 90; overflow-x: auto; -webkit-overflow-scrolling: touch
}
.toc li { font-size: 0.85rem; font-weight: 300 }
.tool-section.warm { background: var(--warm-white) }
.hero-intro {
  font-size: 1.05rem; color: rgba(250, 249, 247, 0.55); line-height: 1.8; font-weight: 300; max-width: 420px; opacity: 0; animation: fadeUp 0.7s 0.3s ease forwards
}
.tab-nav-inner { max-width: 1000px; margin: 0 auto; display: flex; gap: 0 }
.tool-inner { max-width: 1000px; margin: 0 auto }
.faq-hero { background: var(--black); padding: 5rem 2rem 4rem; text-align: center }
.toc a { color: var(--black); text-decoration: none }
.tab-btn {
  font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); font-family: var(--font-body); font-weight: 400; padding: 1.1rem 2rem; border: none; background: none; cursor: pointer; border-bottom: 2px solid transparent; transition: color 0.2s, border-color 0.2s; white-space: nowrap; text-decoration: none; display: block
}
.tool-header { margin-bottom: 2.5rem }
.btn-ghost {
  font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--black); text-decoration: none; border-bottom: 0.5px solid var(--black); padding-bottom: 2px; transition: color 0.2s, border-color 0.2s
}
.hero-stat-num {
  font-family: var(--font-display); font-size: 3.5rem; font-weight: 300; color: var(--gold); line-height: 1
}
.flight-visual { width: 100%; max-width: 380px; padding-bottom: 4rem }
.faq-hero .eyebrow {
  font-size: 0.67rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); margin-bottom: 1.25rem
}
.tab-btn:hover { color: var(--black) }
.route-detail strong { color: var(--black); font-weight: 500 }
.toc a:hover { color: var(--gold) }
.tool-eyebrow {
  font-size: 0.67rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: 0.75rem
}
.btn-ghost:hover { color: var(--gold); border-color: var(--gold) }
.hero-stat-label {
  font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(250, 249, 247, 0.35); margin-top: 0.3rem
}
.flight-stat-stack { display: flex; flex-direction: column; gap: 1px; background: rgba(250, 249, 247, 0.08) }
.tool-title {
  font-family: var(--font-display); font-size: clamp(2rem, 3.5vw, 2.8rem); font-weight: 300; line-height: 1.1; margin-bottom: 0.75rem
}
.faq-hero h1 {
  font-family: var(--font-display); font-size: clamp(2.2rem, 5vw, 3.4rem); font-weight: 400; color: var(--white); line-height: 1.15; margin-bottom: 1.25rem
}
.flight-stat {
  background: rgba(10, 10, 10, 0.6); backdrop-filter: blur(8px); padding: 1.5rem 1.75rem; border-left: 2px solid var(--gold); transition: border-color 0.2s
}
.page-section { padding: 5rem 2rem }
.hero-stat-grid {
  display: grid; grid-template-columns: 1fr 1.6fr; gap: 1px; background: var(--border); width: 100%; max-width: 360px
}
.tool-title em { font-style: italic; color: var(--gold) }
.programme-section { padding: 5rem 2rem; scroll-margin-top: 110px }
.flight-stat:hover { border-left-color: var(--gold-light) }
.stat-cell { background: var(--warm-white); padding: 1.75rem 1.5rem }
.faq-hero h1 em { font-style: italic; color: var(--gold) }
.tool-subtitle {
  font-size: 0.9rem; color: var(--muted); font-weight: 300; line-height: 1.75; max-width: 560px
}
.hero-label {
  font-family: var(--font-display); font-size: 5rem; font-weight: 300; color: rgba(255, 255, 255, 0.07); letter-spacing: 0.05em; font-style: italic; text-align: center; line-height: 1.1
}
.stat-num {
  font-family: var(--font-display); font-size: 2.6rem; font-weight: 300; line-height: 1; margin-bottom: 0.4rem
}
.flight-stat-num {
  font-family: var(--font-display); font-size: 2.5rem; font-weight: 300; color: var(--white); line-height: 1; margin-bottom: 0.3rem
}
.article-intro {
  font-size: 1.02rem; color: var(--muted); line-height: 1.85; font-weight: 300; margin-bottom: 3rem; padding-bottom: 2rem; border-bottom: 0.5px solid var(--border)
}
.card-block { border: 0.5px solid var(--border); margin: 2.5rem 0; overflow: hidden }
.stat-num span { color: var(--gold); font-style: italic }
.faq-hero p {
  font-size: 1rem; color: rgba(250,249,247,0.55); font-weight: 300; max-width: 560px; margin: 0 auto
}
.hero-caption {
  position: absolute; bottom: 1.25rem; left: 1.5rem; font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255, 255, 255, 0.45)
}
.flight-stat-num span { color: var(--gold); font-style: italic }
.stat-label { font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted) }
.prog-header {
  display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: start; margin-bottom: 3rem; padding-bottom: 2rem; border-bottom: 0.5px solid var(--border)
}
.section-eyebrow {
  font-size: 0.67rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold); margin-bottom: 0.9rem; font-weight: 500
}
.card-block-header {
  background: var(--black); padding: 1.25rem 1.5rem; display: flex; justify-content: space-between; align-items: center
}
.flight-stat-label {
  font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(250, 249, 247, 0.4)
}
.calc-controls { background: var(--white); border: 0.5px solid var(--border); padding: 2rem }
.prog-eyebrow {
  font-size: 0.67rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); margin-bottom: 0.75rem; font-weight: 500
}
.calc-results { background: var(--black); padding: 2rem }
.card-block-name {
  font-family: var(--font-display); font-size: 1.35rem; font-weight: 400; color: var(--white)
}
.marquee-wrap {
  overflow: hidden; padding: 0.85rem 0; background: var(--black); border-top: 0.5px solid var(--border); border-bottom: 0.5px solid var(--border)
}
.faq-body { max-width: 780px; margin: 0 auto; padding: 4rem 2rem 5rem }
.story-section { padding: 7rem 2rem }
.prog-title {
  font-family: var(--font-display); font-size: clamp(2rem, 3.5vw, 3rem); font-weight: 300; line-height: 1.1
}
.form-group { margin-bottom: 1.5rem }
.marquee-track { display: flex; white-space: nowrap; animation: marquee 30s linear infinite; gap: 3rem }
.card-block-badge {
  font-size: 0.62rem; letter-spacing: 0.12em; text-transform: uppercase; background: rgba(184, 150, 46, 0.2); color: var(--gold); padding: 0.25rem 0.65rem; font-weight: 500
}
.story-inner {
  max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 200px 1fr; gap: 5rem
}
.prog-title em { font-style: italic; color: var(--gold) }
.section-subtitle {
  font-size: 0.9rem; color: var(--muted); font-weight: 300; line-height: 1.75; max-width: 580px; margin-bottom: 2.5rem
}
.form-label {
  font-size: 0.67rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); font-weight: 500; display: block; margin-bottom: 0.5rem
}
.faq-category { margin-bottom: 3.5rem }
.marquee-item {
  font-size: 0.67rem; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(250, 249, 247, 0.45); flex-shrink: 0
}
.prog-desc {
  font-size: 0.9rem; color: var(--muted); line-height: 1.8; font-weight: 300; max-width: 520px; margin-top: 1rem
}
.story-nav { position: sticky; top: 7rem; align-self: start }
.card-block-body { padding: 1.25rem 1.5rem }
.marquee-item strong { color: var(--gold-light); font-weight: 500 }
.form-select {
  width: 100%; background: var(--warm-white); border: 0.5px solid var(--border-mid); padding: 0.6rem 0.85rem; font-family: var(--font-body); font-size: 0.88rem; color: var(--black); appearance: none; cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888580' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.85rem center; transition: border-color 0.2s
}
.price-tag {
  display: inline-flex; align-items: baseline; gap: 0.3rem; background: rgba(184, 150, 46, 0.15); border: 0.5px solid var(--gold); padding: 0.5rem 1.25rem; margin-top: 0.5rem
}
.prog-badge {
  display: inline-flex; flex-direction: column; align-items: center; gap: 0.25rem; padding: 1.25rem 1.5rem; border: 0.5px solid var(--border); text-align: center; flex-shrink: 0
}
.story-nav-label {
  font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); margin-bottom: 1.25rem; font-weight: 500
}
.faq-category-label {
  font-size: 0.65rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); margin-bottom: 1.5rem; font-weight: 500; border-bottom: 0.5px solid var(--border); padding-bottom: 0.75rem
}
.card-stats {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--border); margin-bottom: 1.25rem
}
.form-select:hover { border-color: var(--gold) }
.prog-badge-num {
  font-family: var(--font-display); font-size: 2.2rem; font-weight: 300; color: var(--gold); line-height: 1
}
.section-title em { font-style: italic; color: var(--gold) }
.story-nav ul {
  list-style: none; display: flex; flex-direction: column; gap: 0; border-left: 0.5px solid var(--border)
}
.price-amount { font-family: var(--font-display); font-size: 2rem; font-weight: 300; color: var(--gold) }
.card-stat { background: var(--warm-white); padding: 0.85rem 1rem }
.form-select:focus { outline: none; border-color: var(--gold) }
.prog-badge-label { font-size: 0.65rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted) }
.story-nav ul li a {
  display: block; font-size: 0.78rem; color: var(--muted); text-decoration: none; padding: 0.6rem 0 0.6rem 1.25rem; border-left: 2px solid transparent; margin-left: -0.5px; transition: color 0.2s, border-color 0.2s; font-weight: 300; line-height: 1.4
}
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem }
.card-stat-label {
  font-size: 0.6rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); font-weight: 500; margin-bottom: 0.3rem
}
.price-label {
  font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(250, 249, 247, 0.5)
}
.story-nav ul li a:hover { color: var(--black); border-left-color: var(--gold) }
.sub-heading {
  font-size: 0.67rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); margin-bottom: 1.25rem; margin-top: 2.75rem; font-weight: 500; display: flex; align-items: center; gap: 1rem
}
.ref-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--border) }
.card-stat-value {
  font-family: var(--font-display); font-size: 1.25rem; font-weight: 300; color: var(--black)
}
.result-eyebrow {
  font-size: 0.63rem; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(250, 249, 247, 0.35); font-weight: 500; margin-bottom: 1.5rem
}
.sub-heading::after { content: ""; flex: 1; height: 0.5px; background: var(--border) }
.story-chapters { display: flex; flex-direction: column; gap: 5rem }
.ref-card {
  background: var(--white); padding: 2rem 1.75rem; border-top: 3px solid transparent; transition: background 0.2s; display: flex; flex-direction: column; gap: 0
}
.card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--border) }
.article-image { width: 100%; margin: 2.5rem 0; overflow: hidden }
.result-primary {
  margin-bottom: 1.5rem; padding-bottom: 1.5rem; border-bottom: 0.5px solid rgba(250, 249, 247, 0.08)
}
.faq-q {
  font-family: var(--font-display); font-size: 1.1rem; font-weight: 600; color: var(--black); margin-bottom: 0.75rem; cursor: pointer; display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem
}
.perks-strip {
  background: var(--warm-white); border-bottom: 0.5px solid var(--border); padding: 2.5rem 2rem
}
.card-grid-4 { grid-template-columns: repeat(4, 1fr) }
.ref-card:hover { background: #fdfcfa }
.chapter { scroll-margin-top: 7rem }
.result-primary-label {
  font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(250, 249, 247, 0.4); font-weight: 500; margin-bottom: 0.35rem
}
.article-image img { width: 100%; display: block; height: auto }
.card-pros-cons { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1rem }
.ref-card.primary { border-top-color: var(--gold) }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); border: 0.5px solid var(--border) }
.chapter-marker { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.75rem }
.perks-inner {
  max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem
}
.faq-q .toggle {
  font-family: var(--font-body); font-size: 1.2rem; font-weight: 300; color: var(--gold); flex-shrink: 0; margin-top: 2px; transition: transform 0.2s
}
.result-primary-value {
  font-family: var(--font-display); font-size: 2.8rem; font-weight: 300; color: var(--gold); line-height: 1
}
.ref-card.navy { border-top-color: #003087 }
.step { padding: 2.25rem 1.75rem; border-right: 0.5px solid var(--border) }
.card-pros h4,.card-cons h4 {
  font-size: 0.62rem; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 500; margin-bottom: 0.5rem
}
.image-caption {
  font-size: 0.72rem; color: var(--muted); font-weight: 300; margin-top: 0.5rem; letter-spacing: 0.04em; font-style: italic
}
.chapter-num {
  font-family: var(--font-display); font-size: 0.85rem; font-weight: 400; color: var(--gold); letter-spacing: 0.08em; flex-shrink: 0
}
.result-primary-sub { font-size: 0.78rem; color: rgba(250, 249, 247, 0.3); margin-top: 0.3rem }
.perk-item { display: flex; flex-direction: column; gap: 0.5rem }
.earn-card {
  background: var(--white); padding: 1.75rem 1.5rem; position: relative; transition: background 0.2s
}
.step:last-child { border-right: none }
.ref-card.slate { border-top-color: #6b7280 }
.chapter-line { height: 0.5px; background: var(--border); flex: 1 }
.callout {
  background: var(--warm-white); border-left: 2px solid var(--gold); padding: 1.25rem 1.5rem; margin: 2rem 0
}
.card-pros h4 { color: #2d6a4f }
.result-secondary-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(250, 249, 247, 0.08); margin-bottom: 1.5rem
}
.image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin: 2.5rem 0 }
.ref-card-type {
  font-size: 0.62rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--muted); font-weight: 500; margin-bottom: 0.65rem
}
.chapter-tag {
  font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); flex-shrink: 0
}
.result-secondary-cell { background: var(--black); padding: 1rem }
.card-cons h4 { color: #c0392b }
.faq-a { display: none; font-size: 0.9rem; color: #444; line-height: 1.8; font-weight: 300 }
.earn-card:hover { background: rgba(184, 150, 46, 0.03) }
.step-icon { font-size: 1.2rem; margin-bottom: 0.85rem; color: var(--gold) }
.ref-card h3 {
  font-family: var(--font-display); font-size: 1.4rem; font-weight: 400; margin-bottom: 1.25rem; line-height: 1.2
}
.image-grid .article-image { margin: 0 }
.callout-label {
  font-size: 0.65rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: 0.4rem
}
.chapter h2 {
  font-family: var(--font-display); font-size: clamp(1.9rem, 3.5vw, 2.8rem); font-weight: 300; line-height: 1.15; margin-bottom: 1.5rem; letter-spacing: -0.01em
}
.result-secondary-label {
  font-size: 0.62rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(250, 249, 247, 0.35); margin-bottom: 0.3rem
}
.earn-card-tag {
  font-size: 0.62rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: 0.6rem
}
.award-table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: 0.86rem }
.step h3 {
  font-family: var(--font-display); font-size: 1.25rem; font-weight: 400; margin-bottom: 0.65rem
}
.card-pros ul,.card-cons ul { list-style: none; display: flex; flex-direction: column; gap: 0.4rem }
.ref-benefit-row {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--border); margin-bottom: 1.25rem
}
.perk-item h4 { font-size: 0.85rem; font-weight: 500; letter-spacing: 0.02em }
.image-grid .article-image img { height: 320px; object-fit: cover; object-position: center }
.chapter h2 em { font-style: italic; color: var(--gold) }
.result-secondary-value {
  font-family: var(--font-display); font-size: 1.4rem; font-weight: 300; color: var(--white)
}
.step p { font-size: 0.85rem; color: var(--muted); line-height: 1.75; font-weight: 300 }
.earn-card h3 {
  font-family: var(--font-display); font-size: 1.15rem; font-weight: 400; margin-bottom: 0.5rem; line-height: 1.25
}
.ref-benefit { background: var(--warm-white); padding: 0.9rem 1rem }
.card-pros ul li,.card-cons ul li {
  font-size: 0.83rem; font-weight: 300; color: #2a2826; padding-left: 1.1rem; position: relative; line-height: 1.55
}
.award-table thead tr { border-bottom: 1px solid var(--border) }
.chapter p {
  font-size: 0.95rem; color: #3a3836; line-height: 1.85; font-weight: 300; margin-bottom: 1.25rem; max-width: 580px
}
.result-amex {
  background: rgba(184, 150, 46, 0.08); border: 0.5px solid rgba(184, 150, 46, 0.2); padding: 1rem; margin-bottom: 1.5rem; display: none
}
.perk-item p { font-size: 0.78rem; color: var(--muted); line-height: 1.65; font-weight: 300 }
.earn-card p {
  font-size: 0.82rem; color: var(--muted); line-height: 1.7; font-weight: 300; margin-bottom: 0.85rem
}
.ref-benefit-label {
  font-size: 0.6rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); font-weight: 500; margin-bottom: 0.3rem
}
.faq-a p { margin-bottom: 0.75rem }
.card-pros ul li::before { content: "✓"; position: absolute; left: 0; color: #2d6a4f; font-size: 0.75rem }
.programmes-section { background: var(--warm-white) }
.chapter p:last-child { margin-bottom: 0 }
.award-table th {
  font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); font-weight: 500; padding: 0.65rem 0.85rem; text-align: left
}
.result-amex-label {
  font-size: 0.62rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); margin-bottom: 0.3rem
}
.earn-card-stat {
  font-family: var(--font-display); font-size: 1.6rem; font-weight: 300; color: var(--black); line-height: 1
}
.ref-benefit-value {
  font-family: var(--font-display); font-size: 1.45rem; font-weight: 300; color: var(--black); line-height: 1
}
.earning-table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: 0.86rem }
.programmes-grid { display: grid; grid-template-columns: 1fr 1.6fr; gap: 1.25rem }
.data-table { width: 100%; border-collapse: collapse; margin: 1.5rem 0 2rem; font-size: 0.88rem }
.result-amex-value {
  font-family: var(--font-display); font-size: 1.6rem; font-weight: 300; color: var(--gold-light)
}
.card-cons ul li::before { content: "✗"; position: absolute; left: 0; color: #c0392b; font-size: 0.75rem }
.faq-a p:last-child { margin-bottom: 0 }
.earn-card-stat span { color: var(--gold); font-style: italic }
.ref-benefit-value span { color: var(--gold); font-style: italic }
.booking-section { padding: 4rem 2rem 5rem; max-width: 1000px; margin: 0 auto }
.miles-table { width: 100%; border-collapse: collapse; margin: 2rem 0; font-size: 0.88rem }
.benchmark-table { width: 100%; border-collapse: collapse; margin-top: 0.5rem; font-size: 0.86rem }
.prog-card {
  border: 0.5px solid var(--border); padding: 2rem 1.75rem; background: var(--white); transition: border-color 0.2s; cursor: pointer
}
.result-note { font-size: 0.78rem; color: rgba(250, 249, 247, 0.35); line-height: 1.65; font-weight: 300 }
.earning-table thead tr { border-bottom: 1px solid var(--border) }
.earn-card-stat-label { font-size: 0.68rem; color: var(--muted); letter-spacing: 0.08em; margin-top: 0.2rem }
.ref-benefit-sub { font-size: 0.67rem; color: var(--muted); margin-top: 0.2rem; font-weight: 300 }
.card-block-link {
  padding: 1rem 1.5rem; border-top: 0.5px solid var(--border); display: flex; justify-content: space-between; align-items: center
}
.benchmark-table thead tr { border-bottom: 0.5px solid var(--border) }
.prog-card:hover { border-color: var(--gold) }
.faq-a strong { font-weight: 500; color: var(--black) }
.data-table th {
  text-align: left; font-size: 0.65rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); font-weight: 500; padding: 0.6rem 0.85rem; border-bottom: 0.5px solid var(--border-mid)
}
.award-table tr:last-child td { border-bottom: none }
.calc-disclaimer {
  font-size: 0.75rem; color: var(--muted); margin-top: 1.5rem; line-height: 1.65; font-weight: 300
}
.booking-grid { display: grid; grid-template-columns: 1fr 2fr; gap: 3rem; align-items: start }
.miles-table th {
  font-size: 0.65rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); font-weight: 500; text-align: left; padding: 0.6rem 0.75rem; border-bottom: 0.5px solid var(--border)
}
.ref-card p {
  font-size: 0.83rem; color: var(--muted); line-height: 1.7; font-weight: 300; margin-bottom: 1.25rem; flex: 1
}
.earning-table th {
  font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); font-weight: 500; padding: 0.65rem 0.85rem; text-align: left
}
.benchmark-table th {
  font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); font-weight: 500; padding: 0.65rem 0.85rem; text-align: left
}
.card-block-link a {
  font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); text-decoration: none; border-bottom: 0.5px solid var(--gold)
}
.prog-card.full {
  grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1.6fr; gap: 2rem; align-items: center
}
.price-grid { background: var(--black); padding: 2rem; margin: 2rem 0 }
.rechner-tabelle-wrap { max-width: 1100px; margin: 3rem auto 0; padding: 0 2rem }
.highlight-box {
  border: 0.5px solid var(--border-gold); background: var(--gold-dim); padding: 1.25rem 1.5rem; margin: 1.75rem 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem
}
.ref-code-block {
  background: var(--black); padding: 0.85rem 1.1rem; display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.85rem
}
.award-table td:first-child { font-weight: 500; color: var(--black) }
.benchmark-table td {
  padding: 0.9rem 0.85rem; border-bottom: 0.5px solid var(--border-light); font-weight: 300; color: #2a2826; vertical-align: top
}
.faq-a a { color: var(--gold); text-decoration: none }
.prog-logo {
  font-family: var(--font-display); font-size: 1.7rem; font-weight: 600; margin-bottom: 0.4rem; letter-spacing: 0.03em
}
.miles-table td {
  padding: 0.75rem; border-bottom: 0.5px solid var(--border); font-weight: 300; color: #2a2826; vertical-align: top
}
.step-grid { display: grid; grid-template-columns: auto 1fr; gap: 0.75rem 1.25rem; margin: 1.5rem 0 }
.booking-info h2 {
  font-family: var(--font-display); font-size: 1.9rem; font-weight: 300; line-height: 1.2; margin-bottom: 1.25rem
}
.data-table td {
  padding: 0.7rem 0.85rem; border-bottom: 0.5px solid var(--border); color: #3a3835; font-weight: 300
}
.earning-table td {
  padding: 0.85rem; border-bottom: 0.5px solid rgba(10, 10, 10, 0.06); font-weight: 300; color: #2a2826; vertical-align: top
}
.rechner-tabelle-title {
  font-size: 0.65rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: 0.6rem
}
.ref-code-inner { display: flex; flex-direction: column; gap: 0.15rem }
.highlight-item { text-align: center }
.prog-logo.mm { color: #003087 }
.benchmark-table tr:last-child td { border-bottom: none }
.price-grid-label {
  font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase; color: #d4ae4e; font-weight: 500; margin-bottom: 1rem
}
.rechner-tabelle-wrap h3 {
  font-family: var(--font-display); font-size: 1.3rem; font-weight: 400; margin-bottom: 1.25rem
}
.ref-code-label {
  font-size: 0.58rem; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(250, 249, 247, 0.35); font-weight: 500
}
.faq-a a:hover { text-decoration: underline }
.miles-table tr:last-child td { border-bottom: none }
.earning-table tr:last-child td { border-bottom: none }
.highlight-num {
  font-family: var(--font-display); font-size: 2rem; font-weight: 300; color: var(--gold); line-height: 1; margin-bottom: 0.3rem
}
.booking-info h2 em { font-style: italic; color: var(--gold) }
.prog-logo.fb { color: #0066cc }
.benchmark-table td:first-child { font-weight: 500; color: var(--black) }
.data-table tr:last-child td { border-bottom: none }
.ref-code-value {
  font-family: "Courier New", monospace; font-size: 1rem; color: var(--gold); letter-spacing: 0.1em; font-weight: 700
}
.rechner-table { width: 100%; border-collapse: collapse; font-size: 0.84rem }
.prog-logo.amex { color: var(--gold); font-size: 1.4rem }
.price-grid-inner {
  display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1px; background: rgba(250, 249, 247, 0.08)
}
.benchmark-table .highlight-row td { background: var(--gold-dim) }
.highlight-label { font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted) }
.step-content h4 {
  font-family: var(--font-display); font-size: 1.1rem; font-weight: 400; margin-bottom: 0.4rem
}
.earning-table td:first-child { font-weight: 500; color: var(--black) }
.miles-table td:first-child { font-weight: 500; color: var(--black) }
.comparison-table { width: 100%; border-collapse: collapse; margin: 2rem 0; font-size: 0.84rem }
.booking-info p {
  font-size: 0.86rem; color: var(--muted); line-height: 1.8; font-weight: 300; margin-bottom: 1.5rem
}
.ref-copy-btn {
  font-size: 0.62rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(250, 249, 247, 0.5); background: none; border: 0.5px solid rgba(250, 249, 247, 0.2); padding: 0.35rem 0.7rem; cursor: pointer; font-family: var(--font-body); transition: all 0.2s; white-space: nowrap; flex-shrink: 0
}
.rechner-table th {
  font-size: 0.62rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); font-weight: 500; text-align: left; padding: 0.65rem 0.85rem; border-bottom: 1px solid var(--border)
}
.prog-subtitle {
  font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-bottom: 1rem
}
.benchmark-table .highlight-row td:first-child { color: var(--gold) }
.data-table .hi { color: var(--gold); font-weight: 500 }
.running-total { background: var(--black); padding: 2rem; margin: 2.5rem 0 }
.philosophy-section { background: var(--black); padding: 6rem 2rem; position: relative; overflow: hidden }
.calculator { background: var(--black); padding: 2.5rem 2rem; margin-top: 2rem }
.cta-strip {
  background: var(--warm-white); border-top: 0.5px solid var(--border); padding: 4rem 2rem; text-align: center
}
.price-cell { background: #111; padding: 1rem }
.comparison-table th {
  background: var(--black); color: var(--white); padding: 0.85rem; text-align: left; font-size: 0.65rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 500
}
.ref-copy-btn:hover { color: var(--white); border-color: rgba(250, 249, 247, 0.5) }
.prog-card p { font-size: 0.86rem; color: #555; line-height: 1.7; font-weight: 300 }
.rechner-table td {
  padding: 0.75rem 0.85rem; border-bottom: 0.5px solid var(--border); font-weight: 300; color: #2a2826
}
.miles-table .total-row td {
  font-weight: 500; color: var(--gold); border-top: 1px solid var(--gold); padding-top: 1rem
}
.booking-detail {
  display: flex; align-items: center; gap: 0.75rem; padding: 0.65rem 0; border-bottom: 0.5px solid var(--border); font-size: 0.82rem
}
.calc-title {
  font-family: var(--font-display); font-size: 1.5rem; font-weight: 300; color: var(--white); margin-bottom: 0.5rem
}
.philosophy-section::before {
  content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 60% 80% at 80% 50%, rgba(184, 150, 46, 0.06) 0%, transparent 70%); pointer-events: none
}
.prog-tag {
  display: inline-block; margin-top: 1.1rem; font-size: 0.67rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); text-decoration: none; border-bottom: 0.5px solid var(--gold); padding-bottom: 1px
}
.running-total .running-total-label {
  font-size: 0.63rem; letter-spacing: 0.15em; text-transform: uppercase; color: #faf9f7; margin-bottom: 0.5rem; font-weight: 500
}
.cash-val { font-size: 0.78rem; color: var(--muted) }
.rechner-table td:first-child { font-weight: 500; color: var(--black) }
.ref-copy-btn.copied { color: #4caf50; border-color: #4caf50 }
.cta-strip h2 {
  font-family: var(--font-display); font-size: 2rem; font-weight: 400; margin-bottom: 0.75rem
}
.price-cell-label {
  font-size: 0.6rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(250, 249, 247, 0.6); margin-bottom: 0.3rem; font-weight: 500
}
.calc-subtitle {
  font-size: 0.8rem; color: rgba(250, 249, 247, 0.45); margin-bottom: 2rem; font-weight: 300
}
.prog-divider { border-left: 0.5px solid var(--border); padding-left: 2rem }
.philosophy-inner { max-width: 1000px; margin: 0 auto; position: relative; z-index: 1 }
.booking-detail:last-of-type { border-bottom: none }
.rechner-table tr:last-child td { border-bottom: none }
.comparison-table td {
  padding: 0.85rem; border-bottom: 0.5px solid var(--border); font-weight: 300; vertical-align: top
}
.running-total .running-total-value {
  font-family: var(--font-display); font-size: 3rem; font-weight: 300; color: #b8962e; line-height: 1
}
.ref-apply-link {
  display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); text-decoration: none; border-bottom: 0.5px solid var(--gold); padding-bottom: 1px; transition: opacity 0.2s; align-self: flex-start
}
.verdict { background: var(--black); color: var(--white); padding: 2rem; margin: 2.5rem 0 }
.philosophy-label {
  font-size: 0.67rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold); margin-bottom: 1.25rem; font-weight: 500
}
.cta-strip h2 em { font-style: italic; color: var(--gold) }
.blog-rating {
  position: absolute; top: 0.75rem; right: 0.9rem; font-family: var(--font-display); font-size: 1.1rem; font-weight: 300; color: var(--gold)
}
.price-cell-value {
  font-family: var(--font-display); font-size: 1.4rem; font-weight: 400; color: var(--white)
}
.ref-apply-link:hover { opacity: 0.7 }
.steps-row {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--border); margin-top: 2rem
}
.comparison-table tr:last-child td { border-bottom: none }
.booking-detail-icon { color: var(--gold); font-size: 0.85rem; width: 16px; flex-shrink: 0 }
.verdict-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--border); margin: 2.5rem 0
}
.running-total .running-total-sub { font-size: 0.78rem; color: #e8e5e0; margin-top: 0.3rem; font-weight: 300 }
.philosophy-title {
  font-family: var(--font-display); font-size: clamp(2.2rem, 4vw, 3.5rem); font-weight: 300; line-height: 1.1; color: var(--white); margin-bottom: 3.5rem; max-width: 600px
}
.warning-box {
  border-left: 2px solid #c0392b; background: rgba(192, 57, 43, 0.05); padding: 1rem 1.5rem; margin: 2rem 0
}
.calc-label {
  font-size: 0.67rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(250, 249, 247, 0.4); margin-bottom: 0.4rem
}
.step-cell { background: var(--white); padding: 1.5rem 1.25rem }
.comparison-table td:first-child { font-weight: 500; color: var(--black); background: var(--warm-white) }
.referral-note {
  border-left: 2px solid var(--border); padding: 0.9rem 1.5rem; font-size: 0.8rem; color: var(--muted); font-weight: 300; line-height: 1.65; margin-top: 1.5rem
}
.cta-strip p { font-size: 0.9rem; color: var(--muted); margin-bottom: 2rem; font-weight: 300 }
.philosophy-title em { font-style: italic; color: var(--gold) }
.map-container {
  position: relative; border: 0.5px solid var(--border); overflow: hidden; background: var(--warm-white)
}
.calc-value {
  font-family: var(--font-display); font-size: 2rem; font-weight: 300; color: var(--white); line-height: 1
}
.verdict-cell { padding: 1.5rem 1.4rem; background: var(--white) }
.booking-detail-label { color: var(--muted); min-width: 80px; font-weight: 300 }
.referral-box-label {
  font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: 0.75rem
}
.referral-note strong { color: var(--black); font-weight: 500 }
.best { color: #2d6a4f; font-weight: 500 }
.principles {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 0.5px solid rgba(250, 249, 247, 0.08)
}
.calc-value span { color: var(--gold); font-style: italic }
.map-tooltip {
  position: absolute; background: var(--black); border: 0.5px solid rgba(184, 150, 46, 0.3); padding: 1rem 1.25rem; font-size: 0.82rem; pointer-events: none; display: none; min-width: 200px; z-index: 10
}
.step-cell h4 {
  font-family: var(--font-display); font-size: 1.05rem; font-weight: 400; margin-bottom: 0.5rem
}
.worst { color: #c0392b }
.blog-card-img {
  width: 100%; aspect-ratio: 16/9; background: var(--black); display: flex; align-items: flex-end; padding: 0.75rem 0.85rem; position: relative
}
.price-grid-note { font-size: 0.78rem; color: #c8c5c0; margin-top: 1rem; font-weight: 300; line-height: 1.6 }
.verdict p { color: rgba(250,249,247,0.75); margin-bottom: 0.6rem; font-size: 0.93rem }
.booking-detail-value { color: var(--black); font-weight: 400 }
.calc-sub {
  font-size: 0.72rem; color: rgba(250, 249, 247, 0.35); margin-top: 0.2rem; font-weight: 300
}
.map-tooltip-city {
  font-family: var(--font-display); font-size: 1.15rem; font-weight: 400; color: var(--white); margin-bottom: 0.5rem
}
.principle {
  padding: 2rem 1.75rem; border-right: 0.5px solid rgba(250, 249, 247, 0.08); transition: background 0.2s
}
.promo-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--black) }
.step-cell p { font-size: 0.82rem; color: var(--muted); font-weight: 300; line-height: 1.65; margin: 0 }
.table-scroll { overflow-x: auto }
.calc-divider {
  display: flex; align-items: center; justify-content: center; color: rgba(250, 249, 247, 0.2); font-size: 1.2rem
}
.map-tooltip-row {
  font-size: 0.78rem; color: rgba(250, 249, 247, 0.55); font-weight: 300; margin-bottom: 0.2rem
}
.blog-img-label {
  font-family: var(--font-display); font-size: 2.2rem; font-weight: 300; color: rgba(255, 255, 255, 0.12); font-style: italic; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); white-space: nowrap
}
.promo-card {
  background: #111; padding: 1.75rem 1.5rem; border-top: 2px solid transparent; transition: background 0.2s; display: flex; flex-direction: column; gap: 0
}
.principle:hover { background: rgba(184, 150, 46, 0.04) }
.picker-box { border: 1.5px solid var(--gold); padding: 1.75rem; margin: 2.5rem 0 }
.verdict p:last-child { margin-bottom: 0 }
.link-box {
  border: 0.5px solid var(--border); padding: 1rem 1.25rem; margin: 1.5rem 0; display: flex; align-items: flex-start; gap: 0.85rem
}
.calc-equals {
  color: var(--gold); font-size: 1.5rem; display: flex; align-items: center; justify-content: center
}
.blog-img-route {
  font-size: 0.63rem; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255, 255, 255, 0.5); position: relative; z-index: 1
}
.promo-card:hover { background: #161616 }
.map-tooltip-row span { color: var(--gold); font-weight: 500 }
.principle:last-child { border-right: none }
.trust-section {
  background: var(--warm-white); border-top: 0.5px solid var(--border); padding: 3.5rem 2rem
}
.transfer-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--border) }
.picker-box-title {
  font-family: var(--font-display); font-size: 1.35rem; font-weight: 400; margin-bottom: 1.25rem
}
.calc-result {
  background: rgba(184, 150, 46, 0.1); border: 0.5px solid rgba(184, 150, 46, 0.3); padding: 1rem
}
.blog-card-body { padding: 1.1rem 1.25rem 1.4rem }
.promo-card.hot { border-top-color: var(--gold) }
.map-tooltip-cash { font-size: 0.72rem; color: rgba(250, 249, 247, 0.3); margin-top: 0.4rem; font-weight: 300 }
.link-box-icon { font-size: 1rem; flex-shrink: 0; margin-top: 2px }
.principle-icon { color: var(--gold); font-size: 1rem; margin-bottom: 1rem }
.picker-row {
  display: grid; grid-template-columns: auto 1fr; gap: 0.75rem 1rem; align-items: start; margin-bottom: 1rem; padding-bottom: 1rem; border-bottom: 0.5px solid var(--border)
}
.calc-result .calc-value { color: var(--gold); font-size: 2.5rem }
.trust-inner { max-width: 800px; margin: 0 auto; text-align: center }
.blog-tag {
  font-size: 0.63rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: 0.45rem
}
.section-divider { display: flex; align-items: center; gap: 1rem; margin: 3rem 0 }
.promo-card.expiring { border-top-color: #c0392b }
.map-legend { display: flex; gap: 1.5rem; flex-wrap: wrap; margin-top: 1.25rem }
.principle h3 {
  font-family: var(--font-display); font-size: 1.3rem; font-weight: 400; color: var(--white); margin-bottom: 0.65rem; line-height: 1.2
}
.link-box-content {  }
.picker-row:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: none }
.promo-badge {
  display: inline-block; font-size: 0.6rem; letter-spacing: 0.12em; text-transform: uppercase; padding: 0.2rem 0.55rem; margin-bottom: 0.9rem; font-weight: 500; border-radius: 2px; align-self: flex-start
}
.map-legend-item {
  display: flex; align-items: center; gap: 0.5rem; font-size: 0.75rem; color: var(--muted); font-weight: 300
}
.transfer-card {
  background: var(--white); padding: 1.25rem; display: flex; flex-direction: column; gap: 0.4rem; transition: background 0.2s
}
.principle p { font-size: 0.83rem; color: rgba(250, 249, 247, 0.45); line-height: 1.75; font-weight: 300 }
.trust-label {
  font-size: 0.67rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); margin-bottom: 1rem; font-weight: 500
}
.section-divider::before,.section-divider::after { content: ""; flex: 1; height: 0.5px; background: var(--border) }
.verdict-title {
  font-family: var(--font-display); font-size: 1.5rem; font-weight: 400; margin-bottom: 0.5rem; color: var(--black)
}
.link-box-label {
  font-size: 0.6rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); font-weight: 500; margin-bottom: 0.25rem
}
.map-legend-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0 }
.picker-if {
  font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); font-weight: 500; padding-top: 0.1rem; white-space: nowrap
}
.referral-copy:hover { color: var(--white); border-color: #aaa8a4 }
.verdict-score {
  font-family: var(--font-display); font-size: 2.8rem; font-weight: 300; line-height: 1; color: var(--gold)
}
.transfer-card:hover { background: rgba(184, 150, 46, 0.03) }
.trust-title {
  font-family: var(--font-display); font-size: 1.9rem; font-weight: 300; margin-bottom: 1rem
}
.map-legend-line {
  width: 18px; height: 2px; flex-shrink: 0; background-image: repeating-linear-gradient(to right, var(--gold) 0, var(--gold) 4px, transparent 4px, transparent 8px)
}
.link-box-title { font-size: 0.9rem; font-weight: 500; color: var(--black); margin-bottom: 0.2rem }
.picker-then h4 { font-size: 0.92rem; font-weight: 500; color: var(--black); margin-bottom: 0.25rem }
.transfer-airline { font-size: 0.88rem; font-weight: 500; color: var(--black) }
.referral-copy.copied { color: #4caf50; border-color: #4caf50 }
.trust-title em { font-style: italic; color: var(--gold) }
.link-box a {
  font-size: 0.8rem; color: var(--gold); text-decoration: none; border-bottom: 0.5px solid var(--gold)
}
.promo-card-issuer {
  font-size: 0.67rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(250, 249, 247, 0.3); margin-bottom: 0.4rem
}
.transfer-ratio { font-family: var(--font-display); font-size: 1.2rem; font-weight: 300; color: var(--gold) }
.referral-link {
  display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); text-decoration: none; border-bottom: 0.5px solid var(--gold)
}
.consult-section { background: var(--black); color: var(--white) }
.contact-box {
  border: 0.5px solid var(--border); background: var(--warm-white); padding: 1.5rem 1.6rem; margin: 0.5rem 0 1.5rem
}
.promo-card h3 {
  font-family: var(--font-display); font-size: 1.2rem; font-weight: 400; color: var(--white); margin-bottom: 0.75rem; line-height: 1.2
}
.transfer-program { font-size: 0.72rem; color: var(--muted); font-weight: 300; letter-spacing: 0.03em }
.link-box a:hover { opacity: 0.7 }
.tips-box {
  border-left: 2px solid var(--gold); background: var(--gold-dim); padding: 1.25rem 1.5rem; margin-top: 2rem
}
.trust-text {
  font-size: 0.9rem; color: var(--muted); line-height: 1.8; font-weight: 300; max-width: 560px; margin: 0 auto 2rem
}
.consult-inner {
  max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1.6fr; gap: 4rem; align-items: center
}
.transfer-highlight { border-top: 2px solid var(--gold) }
.promo-bonus {
  font-family: var(--font-display); font-size: 2rem; font-weight: 300; color: var(--gold); line-height: 1
}
.tips-box-title {
  font-size: 0.67rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: 0.75rem
}
.consult-section .section-title { color: var(--white); max-width: 400px }
.promo-bonus-label {
  font-size: 0.67rem; color: rgba(250, 249, 247, 0.35); letter-spacing: 0.06em; margin-bottom: 1rem; margin-top: 0.2rem
}
.value-example {
  display: inline-block; background: var(--white); border: 0.5px solid var(--border); padding: 1.25rem 2rem; margin: 0.5rem; text-align: left; vertical-align: top
}
.tips-box ul { list-style: none; display: flex; flex-direction: column; gap: 0.5rem }
.consult-section .section-label { color: var(--gold-light) }
.promo-details {
  font-size: 0.8rem; color: rgba(250, 249, 247, 0.5); line-height: 1.65; font-weight: 300; margin-bottom: 0.85rem; flex: 1
}
.consult-section > .consult-inner > div > p {
  font-size: 0.9rem; color: rgba(250, 249, 247, 0.5); line-height: 1.8; font-weight: 300; margin-bottom: 2.25rem
}
.tips-box ul li {
  font-size: 0.86rem; color: #2a2826; font-weight: 300; line-height: 1.6; padding-left: 1.1rem; position: relative
}
.value-example-route {
  font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); margin-bottom: 0.4rem; font-weight: 500
}
.promo-details strong { color: rgba(250, 249, 247, 0.8); font-weight: 500 }
.tips-box ul li::before {
  content: "◈"; position: absolute; left: 0; color: var(--gold); font-size: 0.6rem; top: 4px
}
.promo-expiry {
  font-size: 0.67rem; letter-spacing: 0.06em; color: rgba(250, 249, 247, 0.25); margin-bottom: 0.85rem
}
.value-example-title {
  font-family: var(--font-display); font-size: 1.1rem; font-weight: 400; margin-bottom: 0.25rem
}
.note-box {
  border: 0.5px solid var(--border); background: var(--warm-white); padding: 1.1rem 1.4rem; margin-top: 1.5rem; font-size: 0.82rem; color: var(--muted); line-height: 1.7; font-weight: 300
}
.promo-expiry.urgent { color: #e74c3c }
.consult-perks { display: flex; flex-direction: column; gap: 1.1rem }
.note-box strong { color: var(--black); font-weight: 500 }
.perk {
  display: flex; gap: 1.1rem; align-items: flex-start; padding-bottom: 1.1rem; border-bottom: 0.5px solid rgba(250, 249, 247, 0.1)
}
.promo-link {
  display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); text-decoration: none; border-bottom: 0.5px solid rgba(184, 150, 46, 0.4); padding-bottom: 1px; transition: opacity 0.2s; align-self: flex-start
}
.value-example-detail { font-size: 0.78rem; color: var(--muted); font-weight: 300 }
.contact-box p:last-child { margin-bottom: 0 }
.perk:last-child { border-bottom: none }
.promo-link:hover { opacity: 0.7 }
.promo-sources {
  margin-top: 2rem; padding-top: 1.5rem; border-top: 0.5px solid rgba(250, 249, 247, 0.08); display: flex; align-items: center; gap: 1rem; flex-wrap: wrap
}
.perk h4 { font-size: 0.86rem; font-weight: 500; margin-bottom: 0.2rem }
.promo-sources-label {
  font-size: 0.63rem; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(250, 249, 247, 0.3)
}
.perk p { font-size: 0.78rem; color: rgba(250, 249, 247, 0.4); line-height: 1.6 }
.promo-source-link {
  font-size: 0.75rem; color: rgba(250, 249, 247, 0.4); text-decoration: none; border-bottom: 0.5px solid rgba(250, 249, 247, 0.15); padding-bottom: 1px; transition: color 0.2s
}
.promo-source-link:hover { color: rgba(250, 249, 247, 0.7) }
.cta-buttons { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap }
.faq-box { border: 0.5px solid var(--border); margin: 1.5rem 0 }
.btn-white:hover { background: #e8e6e2 }
.footer-inner {
  max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 2rem
}
.faq-box details { padding: 1.25rem 1.5rem; border-bottom: 0.5px solid var(--border) }
.faq-box details:last-child { border-bottom: none }
.footer-tagline {
  font-size: 0.78rem; color: var(--muted); margin-top: 0.5rem; line-height: 1.6; font-weight: 300; max-width: 180px
}
.faq-box summary {
  font-family: var(--font-display); font-size: 1.1rem; font-weight: 400; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center
}
.footer-col h4 {
  font-size: 0.67rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--muted); margin-bottom: 0.9rem; font-weight: 500
}
.faq-box summary span { color: var(--gold); font-size: 1.2rem }
.earn-card-link {
  display: inline-flex; align-items: center; gap: 0.3rem; margin-top: 0.75rem; font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); text-decoration: none; border-bottom: 0.5px solid var(--gold); padding-bottom: 1px; transition: opacity 0.2s
}
.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 0.45rem }
.earn-card-link:hover { opacity: 0.7 }
.footer-col ul a {
  font-size: 0.82rem; color: var(--black); text-decoration: none; font-weight: 300; transition: color 0.2s
}
.footer-col ul a:hover { color: var(--gold) }
.newsletter-strip { background: var(--black); padding: 3.5rem 2rem }
.lang-switcher { display: flex; gap: 1rem }
.newsletter-inner {
  max-width: 1100px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap
}
.lang-switcher a {
  font-size: 0.67rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); text-decoration: none; transition: color 0.2s
}
.newsletter-text h3 {
  font-family: var(--font-display); font-size: 1.5rem; font-weight: 400; color: var(--white); margin-bottom: 0.3rem
}
.lang-switcher a:hover { color: var(--black) }
.map-expand-btn,.map-close-btn { display: none }
.newsletter-form { display: flex; gap: 0.75rem; flex-wrap: wrap }
.newsletter-form input[type="email"] {
  background: rgba(250,249,247,0.07); border: 0.5px solid rgba(250,249,247,0.2); color: var(--white); padding: 0.65rem 1.1rem; font-family: var(--font-body); font-size: 0.85rem; outline: none; min-width: 240px
}
.lounge-filters { margin-bottom: 2.5rem; display: flex; gap: 1rem; flex-wrap: wrap; align-items: flex-end }
.newsletter-form input[type="email"]::placeholder { color: rgba(250,249,247,0.3) }
.lounge-regions { display: flex; flex-direction: column; gap: 3rem }
.lounge-region-label {
  font-size: 0.67rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); font-weight: 500; margin-bottom: 1.25rem; padding-bottom: 0.5rem; border-bottom: 0.5px solid var(--border)
}
.newsletter-form button {
  background: var(--gold); color: var(--black); border: none; padding: 0.65rem 1.4rem; font-family: var(--font-body); font-size: 0.73rem; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 500; cursor: pointer; transition: background 0.2s
}
.lounge-airport-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1rem }
.newsletter-form button:hover { background: var(--gold-light) }
.lounge-airport-card.hidden { display: none }
.lounge-airport-header { display: flex; align-items: baseline; gap: 0.6rem; margin-bottom: 1rem }
.lounge-iata {
  font-family: var(--font-display); font-size: 1.5rem; font-weight: 300; color: var(--gold); line-height: 1
}
.social-links { display: flex; gap: 0.9rem; align-items: center }
.lounge-city { font-size: 0.82rem; color: var(--muted); font-weight: 300 }
.video-review {
  border: 0.5px solid var(--border); padding: 1.75rem 1.75rem 2rem; margin: 2.5rem 0; background: var(--warm-white)
}
.lounge-list { display: flex; flex-direction: column; gap: 0 }
.social-links a { color: var(--muted); transition: color 0.2s; display: flex; align-items: center }
.breadcrumb a { color: var(--muted); text-decoration: none }
.video-review-eyebrow {
  font-size: 0.68rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: 0.75rem
}
.lounge-item { border-top: 0.5px solid var(--border); padding: 0.75rem 0 0; margin-top: 0.75rem }
.social-links a:hover { color: var(--gold) }
.lounge-item:first-child { border-top: none; padding-top: 0; margin-top: 0 }
.video-review h3 {
  font-family: var(--font-display); font-weight: 300; font-size: 1.4rem; margin: 0 0 0.75rem
}
.breadcrumb a:hover { color: var(--gold) }
.lounge-item.hidden { display: none }
.social-links svg { width: 16px; height: 16px }
.video-review-note {
  font-size: 0.9rem; font-weight: 300; color: #2a2826; line-height: 1.75; margin: 0 0 1.25rem; max-width: 640px
}
.breadcrumb span[aria-hidden] { margin: 0 0.4em; color: var(--border) }
.lounge-name { font-size: 0.88rem; font-weight: 500; color: var(--black); margin-bottom: 0.15rem }
.lounge-terminal { font-size: 0.75rem; color: var(--muted); margin-bottom: 0.4rem; font-weight: 300 }
.video-embed { position: relative; width: 100%; padding-bottom: 56.25%; height: 0; overflow: hidden }
.lounge-badges { display: flex; flex-wrap: wrap; gap: 0.3rem }
.video-embed iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none }
.lounge-badge {
  font-size: 0.6rem; letter-spacing: 0.1em; text-transform: uppercase; padding: 0.18rem 0.5rem; border: 0.5px solid; font-weight: 500
}
.lounge-badge.priority-pass { color: #3a6b4a; border-color: #3a6b4a; background: rgba(58,107,74,0.06) }
.lounge-badge.mm-senator { color: var(--gold); border-color: var(--gold); background: rgba(184,150,46,0.06) }
.lounge-badge.mm-hon { color: #7a4e00; border-color: #b87220; background: rgba(122,78,0,0.07) }
.lounge-badge.flying-blue-plat { color: #2a5fa5; border-color: #2a5fa5; background: rgba(42,95,165,0.06) }
.lounge-badge.ticket-biz { color: var(--muted); border-color: var(--border-mid) }
.lounge-region.empty { display: none }

