@charset "UTF-8";

:root {
  --navy: #123b5d;
  --navy-deep: #082940;
  --teal: #008892;
  --aqua: #19b5b0;
  --sand: #f6f0e6;
  --cream: #fffaf2;
  --coral: #ee7658;
  --gold: #e9b75b;
  --ink: #19384c;
  --muted: #587183;
  --line: #dde7e8;
  --white: #ffffff;
  --shadow: 0 24px 60px rgba(18, 59, 93, 0.12);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: "Manrope", Arial, sans-serif;
}

a {
  color: inherit;
  text-decoration: none;
}

p {
  margin: 0;
  line-height: 1.65;
}

h1,
h2,
h3 {
  margin: 0;
  line-height: 1.1;
}

h1,
h2 {
  color: var(--navy);
  font-family: "Playfair Display", Georgia, serif;
}

button,
input,
select {
  font: inherit;
}

.container {
  width: min(1160px, calc(100% - 40px));
  margin: 0 auto;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  border-bottom: 1px solid rgba(18, 59, 93, 0.08);
  background: rgba(255, 250, 242, 0.92);
  backdrop-filter: blur(16px);
}

.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 76px;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: var(--navy);
}

.brand-logo {
  display: block;
  width: 218px;
  max-width: 46vw;
  height: 64px;
  object-fit: contain;
  mix-blend-mode: multiply;
}

.menu {
  display: flex;
  align-items: center;
  gap: 22px;
  color: #36545a;
  font-size: 15px;
  font-weight: 600;
}

.menu > a:not(.nav-whatsapp):hover,
.menu-dropdown > button:hover {
  color: var(--teal);
}

.menu-dropdown {
  position: relative;
}

.menu-dropdown > button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 0;
  background: transparent;
  color: #36545a;
  cursor: pointer;
  font: inherit;
}

.menu-dropdown > button::after {
  color: var(--teal);
  content: "⌄";
  font-size: 13px;
  font-weight: 900;
}

.menu-dropdown-panel {
  position: absolute;
  top: calc(100% + 14px);
  left: -18px;
  z-index: 20;
  display: grid;
  min-width: 230px;
  overflow: hidden;
  border: 1px solid #dbe8e5;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 22px 46px rgba(18, 59, 93, 0.16);
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity 160ms ease, transform 160ms ease;
}

.menu-dropdown:hover .menu-dropdown-panel,
.menu-dropdown:focus-within .menu-dropdown-panel {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.menu-dropdown-panel a {
  padding: 13px 16px;
  border-bottom: 1px solid #edf4f2;
  color: #36545a;
  font-size: 14px;
  font-weight: 750;
}

.menu-dropdown-panel a:last-child {
  border-bottom: 0;
}

.menu-dropdown-panel a:hover {
  background: #eefaf7;
  color: var(--teal);
}

.menu .nav-insurance-highlight {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 15px 10px 10px;
  border: 1px solid #bfe8e4;
  border-radius: 25px;
  background: #eaf8f6;
  color: var(--teal);
  font-weight: 800;
  white-space: nowrap;
  animation: insurance-cta-pulse 2.1s ease-in-out infinite;
}

.nav-insurance-highlight::after {
  position: absolute;
  top: -7px;
  right: 10px;
  padding: 2px 6px;
  border-radius: 10px;
  background: var(--coral);
  color: var(--white);
  content: "Cotiza";
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.nav-point {
  display: inline-block;
  color: var(--coral);
  font-size: 18px;
  line-height: 1;
  animation: nav-point-tap 1.35s ease-in-out infinite;
  transform-origin: bottom center;
}

.nav-whatsapp {
  padding: 13px 22px;
  border-radius: 28px;
  background: #eef8f4;
  color: #137b60;
}

.menu .nav-portal-highlight {
  padding: 10px 15px;
  border: 1px solid #d8ebe7;
  border-radius: 25px;
  background: #ffffff;
  color: var(--navy);
  font-weight: 900;
  white-space: nowrap;
  box-shadow: 0 10px 22px rgba(18, 59, 93, 0.08);
}

.menu .nav-portal-highlight:hover {
  border-color: rgba(0, 136, 146, 0.34);
  color: var(--teal);
}

.menu-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  border: 0;
  background: transparent;
}

.menu-toggle span:not(.sr-only) {
  display: block;
  width: 25px;
  height: 2px;
  background: var(--navy);
}

.mobile-action-bar {
  display: none;
}

.hero {
  position: relative;
  overflow: hidden;
  min-height: 650px;
  padding: 76px 0 86px;
  background:
    linear-gradient(90deg, rgba(7, 34, 61, 0.88) 0%, rgba(7, 34, 61, 0.72) 42%, rgba(0, 126, 143, 0.2) 100%),
    url("assets/visuales/hero-viajeros.webp") center / cover no-repeat;
  color: var(--white);
}

.hero-glow {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 25%, rgba(115, 221, 212, 0.24), transparent 26%),
    linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(7, 34, 61, 0.18));
  pointer-events: none;
}

.hero-grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 380px);
  gap: 42px;
  align-items: center;
}

.hero-side {
  display: flex;
  justify-content: flex-end;
}

.hero-photo {
  position: relative;
  z-index: 0;
  overflow: hidden;
  height: 355px;
  margin: 0 0 -74px;
  border-radius: 24px 24px 18px 18px;
  box-shadow: 0 20px 44px rgba(18, 59, 93, 0.12);
}

.hero-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-photo::after {
  position: absolute;
  inset: 42% 0 0;
  background: linear-gradient(0deg, rgba(8, 41, 64, 0.68), transparent);
  content: "";
}

.hero-ai-tag {
  position: absolute;
  top: 18px;
  left: 18px;
  z-index: 1;
  padding: 8px 12px;
  border: 1px solid rgba(255, 255, 255, 0.46);
  border-radius: 22px;
  background: rgba(8, 41, 64, 0.72);
  color: var(--white);
  font-size: 12px;
  font-weight: 800;
  backdrop-filter: blur(8px);
}

.hero-photo figcaption {
  position: absolute;
  right: 22px;
  bottom: 59px;
  left: 22px;
  z-index: 1;
  color: var(--white);
  font-size: 13px;
  font-weight: 700;
}

.eyebrow {
  margin-bottom: 17px;
  color: var(--teal);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.25em;
  text-transform: uppercase;
}

.hero-copy h1 {
  max-width: 780px;
  margin-bottom: 23px;
  font-family: "Manrope", Arial, sans-serif;
  font-size: clamp(38px, 4.05vw, 58px);
  font-weight: 800;
  letter-spacing: -0.055em;
  line-height: 0.98;
  color: var(--white);
}

.hero-description {
  max-width: 560px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 17px;
}

.hero .eyebrow {
  color: #73ddd4;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin: 32px 0 24px;
}

.hero-proof {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 30px 0 32px;
}

.hero-proof details {
  display: grid;
  grid-template-columns: 1fr;
  align-items: start;
  max-width: 294px;
  padding: 10px 14px 10px 36px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.13);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.1);
  color: var(--white);
  backdrop-filter: blur(8px);
  cursor: pointer;
}

.hero-proof details::before {
  position: absolute;
  margin-top: 6px;
  margin-left: -20px;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--teal);
  content: "";
}

.hero-proof summary {
  list-style: none;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.2;
}

.hero-proof summary::-webkit-details-marker {
  display: none;
}

.hero-proof small {
  display: block;
  margin-top: 6px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.35;
}

.hero-proof details[open] {
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.16);
}

.hero-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  max-width: 760px;
}

.hero-metrics span {
  display: grid;
  gap: 3px;
  padding: 12px 13px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 18px;
  background: rgba(4, 29, 50, 0.28);
  color: rgba(255, 255, 255, 0.78);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.25;
  backdrop-filter: blur(8px);
}

.hero-metrics strong {
  color: #ffffff;
  font-size: 17px;
  line-height: 1;
}

.hero-quote-card {
  position: relative;
  z-index: 1;
  width: min(100%, 440px);
  padding: 25px;
  border: 1px solid rgba(255, 255, 255, 0.68);
  border-radius: 26px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 28px 70px rgba(0, 0, 0, 0.24);
  color: var(--navy);
}

.hero-quote-card::before {
  position: absolute;
  top: -12px;
  right: 24px;
  padding: 5px 10px;
  border-radius: 999px;
  background: var(--coral);
  color: var(--white);
  content: "Respuesta rápida";
  font-size: 11px;
  font-weight: 900;
}

.button-outline.light {
  border-color: rgba(255, 255, 255, 0.72);
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
}

.button-outline.light:hover {
  background: rgba(255, 255, 255, 0.2);
}

.hero-main-photo {
  width: min(100%, 360px);
  height: 360px;
  margin: 0;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 30px;
  box-shadow: 0 30px 70px rgba(0, 0, 0, 0.24);
}

.hero-main-photo::before {
  position: absolute;
  right: 18px;
  bottom: 18px;
  z-index: 2;
  padding: 10px 13px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--navy);
  content: "Atención desde Ecuador";
  font-size: 12px;
  font-weight: 900;
}

.main-services,
.quick-intake {
  padding: 72px 0;
  background: #f2faf8;
  scroll-margin-top: 88px;
}

.main-service-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.main-service-card {
  position: relative;
  overflow: hidden;
  min-height: 210px;
  padding: 25px;
  border: 1px solid #d8ebe7;
  border-radius: 26px;
  background: #ffffff;
  box-shadow: 0 18px 38px rgba(18, 59, 93, 0.08);
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.main-service-card::after {
  position: absolute;
  right: -32px;
  bottom: -40px;
  width: 118px;
  height: 118px;
  border-radius: 50%;
  background: rgba(0, 142, 149, 0.09);
  content: "";
}

.main-service-card:hover {
  border-color: rgba(0, 142, 149, 0.28);
  box-shadow: 0 24px 46px rgba(18, 59, 93, 0.12);
  transform: translateY(-4px);
}

.main-service-card span {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  margin-bottom: 22px;
  border-radius: 18px;
  background: #e8f8f5;
  color: var(--teal);
  font-size: 26px;
  font-weight: 900;
}

.main-service-card strong {
  display: block;
  margin-bottom: 9px;
  color: var(--navy);
  font-size: 24px;
}

.main-service-card small {
  position: relative;
  z-index: 1;
  color: #587183;
  font-size: 14px;
  line-height: 1.55;
}

.quick-intake {
  padding-top: 0;
}

.quick-intake-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(360px, 440px);
  gap: 32px;
  align-items: center;
  padding: 34px;
  border: 1px solid #d8ebe7;
  border-radius: 32px;
  background: linear-gradient(135deg, #ffffff 0%, #effbf8 100%);
  box-shadow: 0 24px 54px rgba(18, 59, 93, 0.08);
}

.quick-intake-copy h2 {
  margin-bottom: 14px;
}

.quick-intake-copy p {
  color: #557074;
  line-height: 1.65;
}

.hero-quote-head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px 14px;
  align-items: start;
  margin-bottom: 18px;
}

.hero-quote-head .online-kicker {
  grid-column: 1 / -1;
  margin-bottom: 0;
}

.hero-quote-head h2 {
  font-family: "Manrope", Arial, sans-serif;
  font-size: 23px;
  font-weight: 900;
}

.hero-quote-card label {
  display: grid;
  gap: 7px;
  color: var(--navy);
  font-size: 13px;
  font-weight: 800;
}

.hero-quote-card input,
.hero-quote-card select {
  width: 100%;
  min-height: 47px;
  padding: 0 13px;
  border: 1px solid #dfe8e7;
  border-radius: 12px;
  background: #ffffff;
  color: var(--navy);
}

.hero-quote-card .quick-row {
  gap: 10px;
}

.hero-quote-card .button {
  width: 100%;
  margin-top: 3px;
}

.hero-quote-note {
  margin-top: 11px;
  color: #5f7579;
  font-size: 12px;
  line-height: 1.45;
}

.student-banner-section {
  position: relative;
  z-index: 3;
  padding: 28px 0 18px;
  margin-top: -42px;
  background: linear-gradient(180deg, transparent 0, #f2faf8 58%);
}

.student-banner {
  position: relative;
  display: block;
  overflow: hidden;
  min-height: 190px;
  border: 1px solid rgba(8, 126, 134, 0.18);
  border-radius: 26px;
  background: var(--navy);
  box-shadow: 0 24px 54px rgba(18, 59, 93, 0.18);
}

.student-banner img {
  display: block;
  width: 100%;
  height: 230px;
  object-fit: cover;
}

.student-banner::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(7, 34, 61, 0.88) 0%, rgba(7, 34, 61, 0.58) 46%, rgba(7, 34, 61, 0.05) 100%);
  content: "";
}

.student-banner-overlay {
  position: absolute;
  top: 50%;
  left: 34px;
  z-index: 1;
  display: grid;
  gap: 7px;
  max-width: 440px;
  color: var(--white);
  transform: translateY(-50%);
}

.student-banner-overlay small {
  width: fit-content;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(115, 221, 212, 0.18);
  color: #73ddd4;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.student-banner-overlay strong {
  font-size: clamp(30px, 4vw, 48px);
  line-height: 0.95;
}

.student-banner-overlay em {
  color: rgba(255, 255, 255, 0.88);
  font-style: normal;
  font-weight: 700;
}

.student-banner-overlay b {
  width: fit-content;
  margin-top: 5px;
  padding: 10px 14px;
  border-radius: 999px;
  background: var(--white);
  color: var(--teal);
  font-size: 13px;
}

.student-banner:hover img {
  transform: scale(1.03);
}

.student-banner img {
  transition: transform 260ms ease;
}

.student-banner-section + .next-step-panel {
  margin-top: 0;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 28px;
  border: 0;
  border-radius: 9px;
  cursor: pointer;
  font-size: 15px;
  font-weight: 700;
  transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.button:hover {
  transform: translateY(-2px);
}

.button-primary {
  background: var(--teal);
  color: var(--white);
  box-shadow: 0 12px 25px rgba(8, 126, 134, 0.21);
}

.button-primary:hover {
  background: #066f76;
}

.button-secondary {
  border: 1px solid #e6ecea;
  background: var(--white);
  color: var(--navy);
}

.button-ghost {
  border: 1px solid rgba(0, 136, 146, 0.28);
  background: #edf8f8;
  color: var(--teal);
}

.button-ghost:hover {
  background: #dff3f2;
}

.button-whatsapp {
  background: #20b56d;
  color: var(--white);
}

.trust-row {
  display: flex;
  gap: 47px;
}

.trust-row div {
  position: relative;
}

.trust-row div + div::before {
  position: absolute;
  top: 2px;
  left: -24px;
  width: 1px;
  height: 42px;
  background: var(--line);
  content: "";
}

.trust-row strong {
  display: block;
  color: var(--navy);
  font-size: 23px;
}

.trust-row span {
  display: block;
  color: var(--muted);
  font-size: 13px;
}

.online-card {
  position: relative;
  z-index: 1;
  width: calc(100% - 46px);
  margin: 0 auto;
  padding: 26px;
  border-radius: 24px;
  background: var(--white);
  box-shadow: var(--shadow);
}

.hero-service-showcase {
  overflow: hidden;
  border: 1px solid rgba(8, 126, 134, 0.18);
  background:
    radial-gradient(circle at 88% 4%, rgba(115, 221, 212, 0.35), transparent 25%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(247, 252, 250, 0.98)),
    var(--white);
}

.hero-service-showcase::before {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 92px;
  height: 92px;
  border: 1px solid rgba(8, 126, 134, 0.16);
  border-radius: 28px;
  background: linear-gradient(135deg, rgba(8, 126, 134, 0.1), rgba(255, 255, 255, 0.2));
  content: "";
  pointer-events: none;
  transform: rotate(12deg);
}

.hero-service-showcase .online-head,
.hero-service-showcase .online-options,
.hero-service-showcase .online-foot {
  position: relative;
  z-index: 1;
}

.hero-service-showcase .online-option {
  position: relative;
  border-color: rgba(18, 59, 93, 0.1);
  background: #ffffff;
  box-shadow: 0 12px 24px rgba(18, 59, 93, 0.06);
}

.hero-service-showcase .online-option:hover,
.hero-service-showcase .online-option.selected {
  background: #eaf8f5;
}

.hero-service-picker {
  gap: 11px;
}

.hero-service-picker .online-option {
  display: grid;
  grid-template-columns: 54px 1fr;
  align-items: center;
  padding: 13px;
}

.hero-service-picker .online-option::after {
  position: absolute;
  right: 16px;
  color: var(--teal);
  content: "→";
  font-weight: 900;
}

.hero-service-picker .online-option em {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 4px;
  padding: 4px 9px;
  border-radius: 999px;
  background: #eefbf8;
  color: var(--teal);
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.hero-service-picker .online-option small {
  max-width: 310px;
  padding-right: 26px;
}

.online-head {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
}

.online-kicker {
  margin-bottom: 7px;
  color: var(--teal);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.online-head h2 {
  font-family: "Manrope", Arial, sans-serif;
  font-size: 25px;
  font-weight: 800;
}

.online-status {
  display: inline-flex;
  align-items: center;
  align-self: start;
  gap: 7px;
  padding: 9px 13px;
  border-radius: 30px;
  background: #eaf8ef;
  color: #137b60;
  font-size: 12px;
  font-weight: 700;
}

.online-status::before {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #20b56d;
  content: "";
}

.online-options {
  display: grid;
  gap: 12px;
}

.online-option {
  display: flex;
  gap: 15px;
  align-items: center;
  padding: 15px;
  border: 1px solid #e5ece9;
  border-radius: 15px;
  transition: border-color 180ms ease, background-color 180ms ease;
}

.online-option:hover,
.online-option.selected {
  border-color: rgba(8, 126, 134, 0.28);
  background: #f1faf8;
}

.online-option.selected .service-symbol {
  background: var(--teal);
  color: var(--white);
}

.service-symbol {
  display: grid;
  width: 43px;
  height: 43px;
  flex: 0 0 43px;
  place-items: center;
  border-radius: 12px;
  background: #e2f4f1;
  color: var(--teal);
  font-size: 12px;
  font-weight: 800;
}

.online-option strong,
.online-option small {
  display: block;
}

.online-option strong {
  margin-bottom: 3px;
  color: var(--navy);
  font-size: 15px;
}

.online-option small {
  color: var(--muted);
  font-size: 13px;
}

.online-foot {
  margin-top: 18px;
  padding: 14px 16px;
  border-radius: 12px;
  background: var(--navy);
  color: #d7e5e4;
  font-size: 13px;
}

.online-services,
.visa-planner,
.reservation-service,
.quote-hub,
.insurance-story,
.plans,
.quote-section,
.steps {
  padding: 78px 0;
}

.insurance-story {
  background: var(--white);
}

.online-services {
  padding: 78px 0;
  background: #f2faf8;
}

.quick-guides {
  padding: 70px 0;
  background: var(--white);
}

.guide-card-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 13px;
}

.guide-card {
  display: grid;
  gap: 16px;
  align-content: start;
  min-height: 420px;
  padding: 18px;
  border: 1px solid #dfeae8;
  border-radius: 20px;
  background: linear-gradient(180deg, #fffdf9, #f5fbfa);
  box-shadow: 0 12px 30px rgba(7, 53, 68, 0.05);
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.guide-card:hover {
  border-color: rgba(0, 136, 146, 0.22);
  box-shadow: 0 18px 38px rgba(7, 53, 68, 0.09);
  transform: translateY(-3px);
}

.guide-animation {
  position: relative;
  overflow: hidden;
  height: 98px;
  border-radius: 17px;
  background: linear-gradient(135deg, #123b5d, #008892);
}

.guide-animation::before {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 28% 28%, rgba(255, 255, 255, 0.22), transparent 18%),
    radial-gradient(circle at 78% 24%, rgba(233, 183, 91, 0.22), transparent 16%);
  content: "";
  animation: guide-bg-pulse 3.4s ease-in-out infinite;
}

.guide-animation span {
  position: absolute;
  display: block;
}

.guide-tag {
  display: inline-flex;
  margin-bottom: 10px;
  padding: 6px 9px;
  border-radius: 18px;
  background: #e8f6f3;
  color: var(--teal);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.guide-card h3 {
  margin-bottom: 9px;
  color: var(--navy);
  font-size: 18px;
}

.guide-card p {
  min-height: 70px;
  margin-bottom: 13px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.guide-steps {
  display: grid;
  gap: 8px;
  margin: 0 0 15px;
  padding: 0;
  list-style: none;
}

.guide-steps li {
  position: relative;
  padding-left: 20px;
  color: #31515a;
  font-size: 11px;
  line-height: 1.35;
}

.guide-steps li::before {
  position: absolute;
  top: 4px;
  left: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--teal);
  content: "";
}

.guide-details {
  margin-top: auto;
}

.guide-details summary {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  padding: 0 12px;
  border: 1px solid rgba(0, 136, 146, 0.22);
  border-radius: 18px;
  color: var(--teal);
  cursor: pointer;
  font-size: 11px;
  font-weight: 900;
  list-style: none;
}

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

.guide-details summary::after {
  margin-left: 7px;
  content: "+";
}

.guide-details[open] summary {
  margin-bottom: 10px;
  background: #eaf7f4;
}

.guide-details[open] summary::after {
  content: "-";
}

.guide-details p {
  min-height: 0;
  margin: 0 0 10px;
  padding: 10px;
  border-radius: 10px;
  background: #fff7e8;
  color: #735b27;
  font-size: 11px;
}

.mini-tutorial {
  display: grid;
  gap: 8px;
  margin: 0 0 11px;
}

.mini-tutorial div {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4px 9px;
  align-items: center;
  padding: 10px;
  overflow: hidden;
  border: 1px solid #dcecea;
  border-radius: 12px;
  background: linear-gradient(135deg, #ffffff, #f1fbfa);
  animation: tutorial-card-in 280ms ease both;
}

.mini-tutorial div:nth-child(2) {
  animation-delay: 90ms;
}

.mini-tutorial div:nth-child(3) {
  animation-delay: 180ms;
}

.mini-tutorial div::after {
  position: absolute;
  top: 0;
  bottom: 0;
  left: -45%;
  width: 38%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.72), transparent);
  content: "";
  animation: tutorial-sheen 2.4s ease-in-out infinite;
}

.mini-tutorial span {
  display: grid;
  grid-row: span 2;
  width: 27px;
  height: 27px;
  place-items: center;
  border-radius: 9px;
  background: var(--teal);
  color: var(--white);
  font-size: 11px;
  font-weight: 900;
}

.mini-tutorial strong {
  color: var(--navy);
  font-size: 12px;
}

.mini-tutorial small {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
}

@keyframes tutorial-card-in {
  from {
    opacity: 0;
    transform: translateY(6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes tutorial-sheen {
  0%, 35% {
    transform: translateX(0);
  }

  70%, 100% {
    transform: translateX(390%);
  }
}

.guide-ai span:nth-child(1) {
  top: 22px;
  left: 22px;
  width: 52px;
  height: 37px;
  border: 3px solid #dff8f5;
  border-radius: 17px;
  background: #0d334d;
}

.guide-ai span:nth-child(2),
.guide-ai span:nth-child(3) {
  top: 38px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #9ef4ec;
  animation: ai-blink 3s infinite;
}

.guide-ai span:nth-child(2) {
  left: 39px;
}

.guide-ai span:nth-child(3) {
  left: 57px;
}

.guide-doc span:nth-child(1) {
  top: 19px;
  left: 35px;
  width: 48px;
  height: 61px;
  border-radius: 8px;
  background: #f7fffd;
  box-shadow: 0 9px 18px rgba(7, 53, 68, 0.16);
  animation: guide-doc-float 3s ease-in-out infinite;
}

.guide-doc span:nth-child(2),
.guide-doc span:nth-child(3) {
  left: 45px;
  width: 28px;
  height: 3px;
  border-radius: 3px;
  background: var(--teal);
}

.guide-doc span:nth-child(2) {
  top: 42px;
}

.guide-doc span:nth-child(3) {
  top: 53px;
}

.guide-shield span:nth-child(1) {
  top: 18px;
  left: 38px;
  width: 50px;
  height: 59px;
  border-radius: 26px 26px 18px 18px;
  background: linear-gradient(145deg, #e9b75b, #19b5b0);
  clip-path: polygon(50% 0, 92% 17%, 82% 76%, 50% 100%, 18% 76%, 8% 17%);
  animation: guide-shield-pulse 2.6s ease-in-out infinite;
}

.guide-shield span:nth-child(2) {
  top: 42px;
  left: 50px;
  width: 26px;
  height: 13px;
  border-bottom: 4px solid var(--white);
  border-left: 4px solid var(--white);
  transform: rotate(-45deg);
}

.guide-flight span:nth-child(1) {
  top: 43px;
  left: 18px;
  width: 76px;
  height: 15px;
  border-radius: 18px;
  background: #e8fffb;
  transform: rotate(-10deg);
  animation: guide-flight-move 3.1s ease-in-out infinite;
}

.guide-flight span:nth-child(2) {
  top: 32px;
  left: 43px;
  width: 28px;
  height: 11px;
  border-radius: 11px;
  background: var(--gold);
  transform: rotate(-10deg);
}

.guide-flight span:nth-child(3) {
  top: 51px;
  left: 11px;
  width: 42px;
  height: 3px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.55);
  animation: guide-trail 1.7s ease-in-out infinite;
}

.guide-meeting span:nth-child(1) {
  top: 22px;
  left: 20px;
  width: 70px;
  height: 48px;
  border: 3px solid #e8fffb;
  border-radius: 13px;
}

.guide-meeting span:nth-child(2) {
  top: 37px;
  left: 42px;
  width: 23px;
  height: 23px;
  border-radius: 50%;
  background: #e9b75b;
  animation: guide-meeting-pop 2.4s ease-in-out infinite;
}

.guide-meeting span:nth-child(3) {
  top: 45px;
  right: 20px;
  border-width: 8px 0 8px 12px;
  border-style: solid;
  border-color: transparent transparent transparent #e8fffb;
}

.next-step-panel {
  padding: 0 0 58px;
  margin-top: -36px;
  background: linear-gradient(180deg, transparent 0, #f2faf8 42%);
  position: relative;
  scroll-margin-top: 88px;
  z-index: 2;
}

.next-step-box {
  display: grid;
  grid-template-columns: 0.72fr 1.28fr;
  gap: 24px;
  align-items: center;
  padding: 26px;
  border: 1px solid #d8ebe7;
  border-radius: 24px;
  background: linear-gradient(135deg, var(--navy), #0d6b78);
  color: var(--white);
  box-shadow: 0 22px 46px rgba(18, 59, 93, 0.16);
}

.next-step-box h2 {
  margin-bottom: 10px;
  color: var(--white);
  font-size: clamp(30px, 3vw, 42px);
}

.next-step-box .eyebrow {
  color: #73ddd4;
}

.next-step-box p:not(.eyebrow) {
  color: #d7e9ea;
  font-size: 14px;
}

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

.next-step-actions .button {
  width: 100%;
}

.conversion-actions {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}

.conversion-card {
  position: relative;
  display: grid;
  min-height: 156px;
  align-content: space-between;
  gap: 8px;
  overflow: hidden;
  padding: 18px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.1);
  color: var(--white);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
  transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.conversion-card::after {
  position: absolute;
  top: -24px;
  right: -26px;
  width: 78px;
  height: 78px;
  border-radius: 50%;
  background: rgba(115, 221, 212, 0.18);
  content: "";
}

.conversion-card:hover {
  background: rgba(255, 255, 255, 0.16);
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.14);
  transform: translateY(-3px);
}

.conversion-card.featured {
  background: #ffffff;
  color: var(--navy);
}

.conversion-card.portal-card {
  background: rgba(115, 221, 212, 0.18);
  border-color: rgba(115, 221, 212, 0.42);
}

.conversion-card.portal-card span {
  background: #ffffff;
  color: var(--teal);
}

.conversion-card span {
  width: fit-content;
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(115, 221, 212, 0.16);
  color: #73ddd4;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.conversion-card.featured span {
  background: #eaf8f6;
  color: var(--teal);
}

.conversion-card strong {
  display: block;
  font-size: 18px;
  line-height: 1.18;
}

.conversion-card small {
  color: rgba(255, 255, 255, 0.76);
  font-size: 12px;
  line-height: 1.45;
}

.conversion-card.featured small {
  color: #557074;
}

.conversion-card b {
  color: inherit;
  font-size: 12px;
}

.business-lines {
  padding: 42px 0 52px;
  background: #f2faf8;
  scroll-margin-top: 88px;
}

.business-line-grid,
.study-country-grid,
.seo-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.business-line-card {
  position: relative;
  overflow: hidden;
  min-height: 244px;
  padding: 28px;
  border: 1px solid #d8ebe7;
  border-radius: 26px;
  background: #ffffff;
  box-shadow: 0 20px 42px rgba(18, 59, 93, 0.08);
}

.business-line-card::after {
  position: absolute;
  right: -34px;
  bottom: -44px;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: rgba(0, 142, 149, 0.1);
  content: "";
}

.business-line-card span,
.seo-card-grid span {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 18px;
  padding: 7px 11px;
  border-radius: 999px;
  background: #e8f8f5;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.business-line-card h3 {
  position: relative;
  margin-bottom: 12px;
  color: var(--navy);
  font-size: 25px;
  z-index: 1;
}

.business-line-card p {
  position: relative;
  margin-bottom: 22px;
  color: #557074;
  line-height: 1.6;
  z-index: 1;
}

.business-line-card a,
.seo-card-grid a {
  position: relative;
  color: var(--teal);
  font-weight: 900;
  z-index: 1;
}

.travel-line {
  background: linear-gradient(150deg, #ffffff 0%, #eaf8f6 100%);
}

.migration-line {
  background: linear-gradient(150deg, #ffffff 0%, #fff6e5 100%);
}

.student-line {
  background: linear-gradient(150deg, #ffffff 0%, #eef4ff 100%);
}

.platform-growth,
.migration-focus {
  padding: 72px 0;
  background: #ffffff;
  scroll-margin-top: 88px;
}

.platform-growth {
  padding-top: 0;
  background: #f2faf8;
}

.platform-growth-panel,
.migration-focus-panel {
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  gap: 28px;
  align-items: stretch;
  padding: 34px;
  border: 1px solid #d8ebe7;
  border-radius: 32px;
  background: linear-gradient(135deg, #ffffff 0%, #effbf8 100%);
  box-shadow: 0 24px 54px rgba(18, 59, 93, 0.08);
}

.platform-growth-copy h2,
.migration-focus-panel h2 {
  margin-bottom: 14px;
}

.platform-growth-copy p,
.migration-focus-panel > div:first-child > p {
  color: #557074;
  line-height: 1.65;
}

.platform-growth-grid,
.migration-service-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.platform-growth-grid article,
.migration-service-grid article {
  padding: 22px;
  border: 1px solid #d8ebe7;
  border-radius: 22px;
  background: #ffffff;
  box-shadow: 0 14px 30px rgba(18, 59, 93, 0.06);
}

.platform-growth-grid span {
  display: inline-grid;
  width: 38px;
  height: 38px;
  place-items: center;
  margin-bottom: 13px;
  border-radius: 14px;
  background: #e8f8f5;
  color: var(--teal);
  font-weight: 900;
}

.platform-growth-grid h3 {
  margin-bottom: 8px;
  color: var(--navy);
  font-size: 18px;
}

.platform-growth-grid p,
.migration-service-grid small {
  color: #587183;
  line-height: 1.55;
}

.migration-focus-panel {
  background:
    linear-gradient(135deg, rgba(7, 34, 61, 0.94), rgba(0, 107, 120, 0.9)),
    url("assets/visuales/paris-documentos.webp") center / cover no-repeat;
  color: #ffffff;
}

.migration-focus-panel h2,
.migration-focus-panel .eyebrow {
  color: #ffffff;
}

.migration-focus-panel > div:first-child > p {
  color: #d7e9ea;
}

.migration-destinations {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 22px;
}

.migration-destinations span {
  padding: 8px 11px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  font-size: 12px;
  font-weight: 850;
  backdrop-filter: blur(8px);
}

.migration-service-grid article {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.16);
}

.migration-service-grid strong {
  display: block;
  margin-bottom: 7px;
  color: #ffffff;
  font-size: 17px;
}

.migration-service-grid small {
  color: #d7e9ea;
}

.migration-platform {
  padding: 82px 0;
  background:
    radial-gradient(circle at 12% 18%, rgba(0, 136, 146, 0.13), transparent 30%),
    linear-gradient(180deg, #f4fbfa 0%, #ffffff 100%);
  scroll-margin-top: 88px;
}

.migration-entry {
  padding: 46px 0 0;
  background: #ffffff;
  scroll-margin-top: 88px;
}

.migration-entry-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  padding: 28px;
  border: 1px solid #dcebea;
  border-radius: 28px;
  background: linear-gradient(135deg, #f4fbfa 0%, #ffffff 52%, #fff7e9 100%);
  box-shadow: 0 18px 40px rgba(18, 59, 93, 0.07);
}

.migration-entry-panel h2 {
  margin: 8px 0 10px;
  color: var(--navy);
  font-size: clamp(28px, 3.5vw, 46px);
  line-height: 1.02;
}

.migration-entry-panel p {
  max-width: 760px;
  color: #587183;
  line-height: 1.6;
}

.migration-entry-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: flex-end;
}

.migration-hero,
.visa-evaluator-grid,
.migration-tools-grid,
.express-consultation {
  display: grid;
  gap: 24px;
}

.migration-hero {
  grid-template-columns: minmax(0, 1.3fr) minmax(290px, 0.7fr);
  align-items: stretch;
  margin-bottom: 26px;
}

.migration-hero > div:first-child,
.migration-hero-card,
.visa-evaluator,
.visa-diagnosis,
.spain-ai,
.document-generator,
.express-consultation {
  border: 1px solid #dcebea;
  border-radius: 26px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 20px 48px rgba(18, 59, 93, 0.08);
}

.migration-hero > div:first-child,
.visa-evaluator,
.visa-diagnosis,
.spain-ai,
.document-generator,
.express-consultation {
  padding: clamp(22px, 3vw, 34px);
}

.migration-hero > div:first-child {
  padding: clamp(28px, 4vw, 48px);
}

.migration-hero h2 {
  max-width: 760px;
  margin: 10px 0 14px;
  color: var(--navy);
  font-size: clamp(42px, 5.5vw, 78px);
  line-height: 0.94;
}

.migration-page .migration-hero h1 {
  max-width: 760px;
  margin: 10px 0 14px;
  color: var(--navy);
  font-family: "Playfair Display", Georgia, serif;
  font-size: clamp(48px, 6.5vw, 92px);
  line-height: 0.92;
}

.migration-hero p,
.spain-ai p,
.document-generator p,
.express-consultation p {
  color: #49677a;
  line-height: 1.65;
}

.migration-hero p {
  max-width: 720px;
  font-size: 18px;
}

.migration-hero-actions,
.express-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.migration-route-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 0 0 24px;
}

.migration-route-grid a {
  display: grid;
  gap: 9px;
  min-height: 168px;
  padding: 22px;
  border: 1px solid #dcebea;
  border-radius: 24px;
  background: linear-gradient(135deg, #ffffff 0%, #f3fbfa 100%);
  box-shadow: 0 14px 32px rgba(18, 59, 93, 0.07);
  color: var(--navy);
}

.migration-route-grid span {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 15px;
  background: #e8f8f5;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
}

.migration-route-grid strong {
  font-size: 20px;
  line-height: 1.18;
}

.migration-route-grid small {
  color: #587183;
  line-height: 1.45;
}

.migration-section-card {
  margin-top: 24px;
  padding: clamp(20px, 3vw, 32px);
  border: 1px solid #dcebea;
  border-radius: 30px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 18px 48px rgba(18, 59, 93, 0.06);
}

.migration-hero-card {
  position: relative;
  display: grid;
  align-content: end;
  overflow: hidden;
  min-height: 310px;
  padding: 28px;
  background:
    linear-gradient(150deg, rgba(10, 54, 83, 0.12), rgba(0, 136, 146, 0.18)),
    url("assets/visuales/asesoria-viajeros.webp") center/cover;
  color: #ffffff;
}

.migration-hero-card::before {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8, 41, 64, 0.12), rgba(8, 41, 64, 0.78));
  content: "";
}

.migration-hero-card > * {
  position: relative;
  z-index: 1;
}

.migration-hero-card span {
  justify-self: start;
  margin-bottom: 14px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
  font-size: 12px;
  font-weight: 900;
}

.migration-hero-card strong {
  max-width: 310px;
  font-size: 28px;
  line-height: 1.08;
}

.migration-hero-card small {
  display: block;
  margin-top: 12px;
  color: #e7f2f3;
  line-height: 1.45;
}

.visa-evaluator-grid {
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.68fr);
  align-items: start;
}

.visa-evaluator h3,
.visa-diagnosis h3,
.spain-ai h3,
.document-generator h3,
.express-consultation h3 {
  margin: 12px 0 18px;
  color: var(--navy);
  font-size: clamp(25px, 3vw, 36px);
  line-height: 1.08;
}

.visa-evaluator label {
  display: grid;
  gap: 8px;
  color: var(--navy);
  font-weight: 800;
}

.visa-evaluator select {
  min-height: 54px;
  padding: 0 14px;
  border: 1px solid #d5e5e4;
  border-radius: 14px;
  background: #ffffff;
  color: var(--ink);
  font-weight: 700;
}

.visa-checklist-box {
  margin: 20px 0;
  padding: 18px;
  border: 1px solid #dcebea;
  border-radius: 18px;
  background: #f8fcfc;
}

.visa-checklist-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.visa-checklist-head strong {
  color: var(--navy);
}

.visa-checklist-head small {
  color: #658095;
}

.visa-checklist-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.visa-checklist-options label {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 45px;
  padding: 10px 12px;
  border: 1px solid #dde9e8;
  border-radius: 14px;
  background: #ffffff;
  color: #23465c;
  font-size: 14px;
  font-weight: 700;
}

.visa-checklist-options input {
  width: 17px;
  height: 17px;
  accent-color: var(--teal);
}

.visa-diagnosis {
  position: sticky;
  top: 106px;
}

.visa-score {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
}

.visa-score strong {
  color: var(--teal);
  font-size: clamp(46px, 6vw, 72px);
  line-height: 0.9;
}

.visa-score span {
  color: var(--navy);
  font-weight: 900;
}

.visa-progress {
  overflow: hidden;
  height: 10px;
  margin: 18px 0 22px;
  border-radius: 999px;
  background: #e7f1f1;
}

.visa-progress span {
  display: block;
  width: 0%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--teal), #22bd78);
  transition: width 0.25s ease;
}

.visa-missing,
.visa-solutions {
  margin-top: 18px;
}

.visa-missing strong,
.visa-solutions strong {
  display: block;
  margin-bottom: 10px;
  color: var(--navy);
}

.visa-missing ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  color: #49677a;
}

.visa-solution-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-bottom: 18px;
}

.visa-solution-actions a,
.visa-solution-actions span {
  padding: 9px 12px;
  border-radius: 999px;
  background: #e8f7f5;
  color: var(--teal);
  font-size: 13px;
  font-weight: 900;
  text-decoration: none;
}

.migration-tools-grid {
  grid-template-columns: minmax(0, 0.96fr) minmax(0, 1.04fr);
  margin-top: 24px;
}

.spain-ai-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 18px 0;
}

.spain-ai-buttons button {
  padding: 11px 13px;
  border: 1px solid #cde4e3;
  border-radius: 999px;
  background: #ffffff;
  color: var(--navy);
  font-weight: 800;
  cursor: pointer;
}

.spain-ai-buttons button.active,
.spain-ai-buttons button:hover {
  border-color: var(--teal);
  background: var(--teal);
  color: #ffffff;
}

.spain-ai-answer {
  min-height: 94px;
  padding: 18px;
  border-left: 4px solid var(--teal);
  border-radius: 16px;
  background: #f4fbfa;
  color: #294d64;
  line-height: 1.62;
}

.document-resource-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 20px 0;
}

.document-resource-list article {
  padding: 16px;
  border: 1px solid #dcebea;
  border-radius: 16px;
  background: #ffffff;
}

.document-resource-list strong,
.document-resource-list small {
  display: block;
}

.document-resource-list strong {
  margin-bottom: 7px;
  color: var(--navy);
}

.document-resource-list small {
  color: #658095;
  line-height: 1.45;
}

.express-consultation {
  grid-template-columns: minmax(0, 1fr) 160px auto;
  align-items: center;
  margin-top: 24px;
  background: linear-gradient(135deg, var(--navy), #0a7e88);
  color: #ffffff;
}

.express-consultation h2,
.express-consultation h3,
.express-consultation .eyebrow {
  color: #ffffff;
}

.express-consultation p {
  color: #d9eced;
}

.express-timer {
  display: grid;
  place-items: center;
  width: 140px;
  height: 140px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
}

.express-timer span {
  font-size: 34px;
  font-weight: 900;
}

.express-timer small {
  color: #d9eced;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.study-abroad,
.auto-quote-service,
.premium-portal,
.seo-resources {
  padding: 76px 0;
  scroll-margin-top: 88px;
}

.study-abroad-panel,
.auto-quote-panel,
.premium-portal-panel {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 28px;
  align-items: stretch;
  padding: 34px;
  border: 1px solid #d8ebe7;
  border-radius: 32px;
  background: linear-gradient(135deg, #ffffff 0%, #effbf8 100%);
  box-shadow: 0 24px 54px rgba(18, 59, 93, 0.08);
}

.study-abroad-copy h2,
.auto-quote-panel h2,
.premium-portal-copy h2 {
  margin-bottom: 14px;
}

.study-abroad-copy p,
.auto-quote-panel p,
.premium-portal-copy p {
  margin-bottom: 20px;
  color: #557074;
  line-height: 1.65;
}

.study-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 22px;
}

.study-tags span {
  padding: 9px 12px;
  border-radius: 999px;
  background: #ffffff;
  color: var(--navy);
  font-weight: 800;
  box-shadow: 0 10px 24px rgba(18, 59, 93, 0.08);
}

.study-country-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.study-country-grid article,
.auto-quote-items article,
.premium-feature-grid article,
.seo-card-grid article {
  padding: 22px;
  border: 1px solid #d8ebe7;
  border-radius: 22px;
  background: #ffffff;
  box-shadow: 0 14px 30px rgba(18, 59, 93, 0.06);
}

.study-country-grid strong,
.auto-quote-items strong,
.premium-feature-grid strong {
  display: block;
  margin-bottom: 8px;
  color: var(--navy);
  font-size: 18px;
}

.study-country-grid p,
.auto-quote-items small,
.premium-feature-grid small {
  color: #587183;
  line-height: 1.55;
}

.auto-quote-service {
  padding-top: 0;
}

.auto-quote-panel {
  grid-template-columns: 0.75fr 1.25fr auto;
  align-items: center;
  background: linear-gradient(135deg, var(--navy), #0d6b78);
  color: #ffffff;
}

.auto-quote-panel h2,
.auto-quote-panel .eyebrow {
  color: #ffffff;
}

.auto-quote-panel p {
  color: #d7e9ea;
}

.auto-quote-items,
.premium-feature-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.auto-quote-items article {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.16);
}

.auto-quote-items span,
.premium-feature-grid span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin-bottom: 12px;
  border-radius: 50%;
  background: #e8f8f5;
  color: var(--teal);
  font-weight: 900;
}

.auto-quote-items strong {
  color: #ffffff;
}

.auto-quote-items small {
  color: #d7e9ea;
}

.premium-portal {
  background: linear-gradient(180deg, #f7fbfa 0%, #ffffff 100%);
}

.premium-portal-panel {
  grid-template-columns: 0.9fr 1.1fr;
}

.premium-portal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.seo-resources {
  padding-top: 0;
}

.seo-card-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.seo-card-grid article {
  min-height: 188px;
}

.seo-card-grid h3 {
  margin-bottom: 16px;
  color: var(--navy);
  font-size: 18px;
  line-height: 1.28;
}

.trust-real-intro {
  margin: -6px 0 18px;
  color: #587183;
  font-size: 15px;
  line-height: 1.6;
}

@keyframes guide-bg-pulse {
  0%, 100% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
}

@keyframes guide-doc-float {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-5px) rotate(2deg); }
}

@keyframes guide-shield-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.08); }
}

@keyframes guide-flight-move {
  0%, 100% { transform: translateX(-4px) rotate(-10deg); }
  50% { transform: translateX(8px) rotate(-7deg); }
}

@keyframes guide-trail {
  0%, 100% { opacity: 0.25; transform: translateX(0); }
  50% { opacity: 1; transform: translateX(-8px); }
}

@keyframes guide-meeting-pop {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.15); }
}

.services-photo {
  position: relative;
  overflow: hidden;
  height: 275px;
  margin: 34px 0 0;
  border-radius: 22px;
}

.services-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 48%;
}

.services-photo::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(8, 41, 64, 0.82) 0%, rgba(8, 41, 64, 0.32) 52%, transparent 100%);
  content: "";
}

.services-photo figcaption {
  position: absolute;
  top: 50%;
  left: 34px;
  z-index: 1;
  max-width: 360px;
  transform: translateY(-50%);
  color: var(--white);
}

.services-photo strong,
.services-photo span {
  display: block;
}

.services-photo strong {
  margin-bottom: 10px;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 30px;
}

.services-photo span {
  color: #deecee;
  font-size: 14px;
}

.visa-planner {
  padding: 78px 0;
  background: var(--white);
}

.planner-heading {
  margin-bottom: 34px;
}

.planner-grid {
  display: grid;
  grid-template-columns: 0.78fr 1fr;
  gap: 24px;
  margin-top: 26px;
  align-items: start;
}

.planner-form,
.planner-presentation {
  border: 1px solid #dfecea;
  border-radius: 22px;
  background: var(--white);
}

.planner-form {
  display: grid;
  gap: 16px;
  padding: 28px;
  box-shadow: 0 18px 42px rgba(18, 59, 93, 0.07);
}

.planner-badge {
  justify-self: start;
  padding: 7px 12px;
  border-radius: 30px;
  background: #e7f6f7;
  color: var(--teal);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.planner-form h3,
.planner-presentation h3,
.planner-result h3 {
  color: var(--navy);
  font-size: 26px;
}

.planner-form label {
  display: grid;
  gap: 7px;
  color: var(--navy);
  font-size: 13px;
  font-weight: 700;
}

.planner-form input,
.planner-form select {
  width: 100%;
  min-height: 50px;
  padding: 0 14px;
  border: 1px solid #dce7e6;
  border-radius: 11px;
  background: #fbfdfd;
  color: var(--ink);
}

.planner-form input:focus,
.planner-form select:focus {
  border-color: var(--teal);
  outline: 2px solid rgba(0, 136, 146, 0.13);
}

.planner-row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.planner-form .planner-check {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 0;
  color: var(--muted);
}

.planner-check input {
  width: 17px;
  height: 17px;
  accent-color: var(--teal);
}

.planner-presentation {
  padding: 32px;
  background: linear-gradient(130deg, #fffaf2 0%, #edf8f8 100%);
}

.planner-presentation h3 {
  max-width: 470px;
  margin: 12px 0 27px;
  font-size: clamp(28px, 3vw, 35px);
}

.planner-benefits {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 13px;
}

.planner-benefits div {
  min-height: 110px;
  padding: 17px;
  border: 1px solid rgba(18, 59, 93, 0.08);
  border-radius: 14px;
  background: var(--white);
}

.planner-benefits strong,
.planner-benefits span {
  display: block;
}

.planner-benefits strong {
  margin-bottom: 8px;
  color: var(--navy);
}

.planner-benefits span {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.planner-inspirations {
  margin-top: 24px;
  padding-top: 21px;
  border-top: 1px solid #dfe9e8;
}

.inspirations-heading {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 13px;
}

.inspirations-heading strong {
  color: var(--navy);
  font-size: 15px;
}

.inspirations-heading span {
  color: var(--teal);
  font-size: 12px;
  font-weight: 700;
}

.inspiration-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 9px;
}

.inspiration-grid button {
  overflow: hidden;
  padding: 12px;
  border: 1px solid #dce8e7;
  border-radius: 12px;
  background: var(--white);
  color: var(--navy);
  cursor: pointer;
  text-align: left;
  transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}

.inspiration-grid img {
  display: block;
  width: calc(100% + 24px);
  height: 82px;
  margin: -12px -12px 11px;
  object-fit: cover;
}

.inspiration-grid button:hover,
.inspiration-grid button.selected {
  border-color: var(--teal);
  background: #edf8f8;
}

.inspiration-grid button:active {
  transform: translateY(1px);
}

.inspiration-grid strong,
.inspiration-grid small {
  display: block;
}

.inspiration-grid strong {
  margin-bottom: 5px;
  font-size: 13px;
}

.inspiration-grid small {
  color: var(--muted);
  font-size: 11px;
}

.trend-note {
  margin-top: 13px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

.planner-chat {
  display: grid;
  grid-template-columns: 0.82fr 1fr;
  gap: 28px;
  margin-top: 0;
  padding: 28px;
  border: 1px solid #dbeae8;
  border-radius: 22px;
  background: linear-gradient(118deg, #123b5d 0%, #0c5667 38%, #eef9f7 38%);
}

.planner-chat-head {
  color: var(--white);
}

.planner-chat-head .planner-badge {
  display: inline-block;
  margin-bottom: 18px;
  background: rgba(255, 255, 255, 0.14);
  color: #75ebe1;
}

.planner-chat-head h3 {
  margin: 0 0 12px;
  color: var(--white);
  font-size: clamp(26px, 3vw, 33px);
}

.planner-chat-head p {
  margin-bottom: 24px;
  color: #dbe9ee;
  font-size: 14px;
  line-height: 1.65;
}

.planner-chat-reset {
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid rgba(255, 255, 255, 0.26);
  border-radius: 23px;
  background: transparent;
  color: var(--white);
  cursor: pointer;
  font-weight: 700;
}

.planner-chat-reset:hover {
  background: rgba(255, 255, 255, 0.1);
}

.planner-chat-window {
  overflow: hidden;
  border: 1px solid #dfebea;
  border-radius: 17px;
  background: var(--white);
  box-shadow: 0 14px 30px rgba(8, 41, 64, 0.08);
}

.planner-chat-messages {
  display: grid;
  align-content: start;
  gap: 11px;
  height: 276px;
  overflow-y: auto;
  padding: 19px;
  background: #fbfdfd;
}

.planner-chat-message {
  max-width: 83%;
  padding: 12px 15px;
  border-radius: 16px;
  color: var(--ink);
  font-size: 14px;
  line-height: 1.5;
}

.planner-chat-message.assistant {
  border-bottom-left-radius: 5px;
  background: #e8f5f5;
}

.planner-chat-message.user {
  justify-self: end;
  border-bottom-right-radius: 5px;
  background: var(--teal);
  color: var(--white);
}

.planner-chat-progress {
  margin: 0;
  padding: 13px 19px 0;
  color: var(--teal);
  font-size: 12px;
  font-weight: 800;
}

.planner-suggestion-box {
  padding: 9px 19px 0;
}

.planner-suggestion-box > span {
  display: block;
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 10.5px;
  font-weight: 800;
}

.planner-chat-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  overflow-x: auto;
}

.planner-chat-suggestions button {
  flex: 0 0 auto;
  padding: 6px 9px;
  border: 1px solid #cfe6e5;
  border-radius: 14px;
  background: #f3fbfa;
  color: var(--teal);
  cursor: pointer;
  font-size: 10.5px;
  font-weight: 800;
  white-space: nowrap;
}

.planner-chat-suggestions button:hover {
  background: #ddf1ef;
}

.planner-chat-form {
  display: flex;
  gap: 9px;
  padding: 12px 19px 19px;
}

.planner-chat-form input {
  flex: 1;
  min-width: 0;
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid #dce7e6;
  border-radius: 25px;
  color: var(--ink);
}

.planner-chat-form input:focus {
  border-color: var(--teal);
  outline: 2px solid rgba(0, 136, 146, 0.13);
}

.planner-chat-form .button {
  min-width: 102px;
  min-height: 48px;
}

.planner-chat-form button:disabled,
.planner-chat-form input:disabled {
  cursor: not-allowed;
  opacity: 0.6;
}

.planner-result {
  margin-top: 26px;
  padding: 29px;
  border: 1px solid #dfecea;
  border-radius: 22px;
  background: #f8fcfc;
}

.planner-result[hidden] {
  display: none;
}

.planner-result-head {
  display: flex;
  justify-content: space-between;
  gap: 25px;
  margin-bottom: 24px;
}

.planner-result-head h3 {
  margin: 9px 0 10px;
}

.planner-result-head p:last-child {
  max-width: 735px;
  color: var(--muted);
}

.planner-result-head .planner-analysis-insight {
  margin-top: 13px;
  padding: 12px 14px;
  border-left: 3px solid var(--aqua);
  border-radius: 0 10px 10px 0;
  background: #eaf7f7;
  color: var(--navy);
  font-size: 13px;
  font-weight: 600;
}

.planner-result-showcase {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(360px, 1fr);
  gap: 18px;
  margin-bottom: 22px;
  align-items: stretch;
}

.planner-result-visual {
  position: relative;
  overflow: hidden;
  min-height: 100%;
  margin: 0;
  border-radius: 17px;
}

.planner-result-visual img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 258px;
  object-fit: cover;
}

.planner-result-visual::after {
  position: absolute;
  inset: 40% 0 0;
  background: linear-gradient(0deg, rgba(8, 41, 64, 0.72), transparent);
  content: "";
}

.planner-result-visual figcaption {
  position: absolute;
  right: 20px;
  bottom: 17px;
  left: 20px;
  z-index: 1;
  color: var(--white);
  font-size: 14px;
  font-weight: 700;
}

.planner-advice {
  align-self: start;
  padding: 9px 13px;
  border-radius: 22px;
  background: #e6f6f4;
  color: var(--teal);
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.planner-city-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 23px;
}

.planner-city-grid article {
  padding: 18px;
  border: 1px solid #dfebea;
  border-radius: 15px;
  background: var(--white);
}

.planner-city-grid article div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}

.planner-city-grid strong {
  color: var(--navy);
  font-size: 18px;
}

.planner-city-grid article div span {
  color: var(--teal);
  font-size: 12px;
  font-weight: 800;
}

.planner-city-grid p {
  margin-bottom: 12px;
  color: var(--muted);
  font-size: 13px;
}

.planner-city-grid small {
  color: var(--navy);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
}

.planner-transport {
  margin-bottom: 20px;
  padding: 20px;
  border-radius: 15px;
  background: var(--navy);
  color: var(--white);
}

.planner-transport h4 {
  margin: 0 0 13px;
  color: var(--white);
  font-size: 16px;
}

.planner-transport div {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px 18px;
}

.planner-transport p {
  display: flex;
  gap: 9px;
  color: #dce9f1;
  font-size: 13px;
}

.planner-transport span {
  color: #62ded4;
  font-weight: 800;
}

.planner-alert {
  padding: 15px 18px;
  border-left: 3px solid var(--gold);
  border-radius: 0 11px 11px 0;
  background: #fff6e6;
  color: #58646b;
  font-size: 13px;
  line-height: 1.6;
}

.planner-next-steps {
  display: grid;
  grid-template-columns: 0.78fr 1fr;
  gap: 22px;
  margin-top: 20px;
  padding: 22px;
  border: 1px solid #dbe8e7;
  border-radius: 17px;
  background: linear-gradient(135deg, var(--white) 0%, #eef9f7 100%);
}

.planner-next-steps h4 {
  margin: 13px 0 9px;
  color: var(--navy);
  font-size: 22px;
}

.planner-next-steps p {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

.planner-priority-actions {
  margin: 0;
  border-color: rgba(0, 136, 146, 0.22);
  background: linear-gradient(135deg, #e8f7f6 0%, var(--white) 100%);
  box-shadow: 0 16px 34px rgba(8, 126, 134, 0.08);
}

.planner-priority-actions h4 {
  font-size: 24px;
}

.planner-action-buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  gap: 10px;
}

.planner-action-button {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  padding: 0 15px;
  border-radius: 22px;
  background: var(--teal);
  color: var(--white);
  font-size: 13px;
  font-weight: 800;
  text-align: center;
  box-shadow: 0 10px 20px rgba(0, 136, 146, 0.16);
}

.planner-action-button:first-child {
  background: var(--navy);
}

.planner-action-button:hover {
  background: #066f76;
  color: var(--white);
}

.planner-checklist {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.planner-checklist li {
  display: flex;
  gap: 11px;
  padding: 13px;
  border: 1px solid #dfebea;
  border-radius: 13px;
  background: var(--white);
}

.planner-checklist li > span {
  display: inline-flex;
  width: 24px;
  height: 24px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-weight: 900;
}

.planner-checklist li.recommended > span {
  background: #dff6f2;
  color: var(--teal);
}

.planner-checklist li.optional > span {
  background: #f4efe5;
  color: var(--gold);
}

.planner-checklist strong,
.planner-checklist small {
  display: block;
}

.planner-checklist strong {
  margin-bottom: 4px;
  color: var(--navy);
  font-size: 14px;
}

.planner-checklist small {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.planner-check-action {
  display: inline-flex;
  width: max-content;
  margin-top: 8px;
  padding: 7px 10px;
  border-radius: 18px;
  background: #e8f6f6;
  color: var(--teal);
  font-size: 12px;
  font-weight: 800;
}

.planner-check-action:hover {
  background: #d6f0ef;
}

.migration-advice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  margin-top: 20px;
  padding: 22px;
  border: 1px solid #dbe8e7;
  border-radius: 17px;
  background: var(--white);
}

.migration-advice h4 {
  margin: 13px 0 8px;
  color: var(--navy);
  font-size: 20px;
}

.migration-advice p {
  max-width: 700px;
  color: var(--muted);
  font-size: 13px;
}

.migration-advice .button {
  flex: 0 0 auto;
}

.planner-actions {
  display: flex;
  gap: 12px;
  margin-top: 23px;
}

.planner-offers {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 23px;
}

.planner-offers article {
  padding: 16px;
  border: 1px solid #dfebea;
  border-radius: 14px;
  background: var(--white);
}

.planner-offers span,
.planner-offers strong,
.planner-offers small {
  display: block;
}

.planner-offers span {
  margin-bottom: 7px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.planner-offers strong {
  margin-bottom: 8px;
  color: var(--navy);
  font-size: 23px;
}

.planner-offers small {
  min-height: 40px;
  margin-bottom: 12px;
  color: var(--muted);
  line-height: 1.45;
}

.planner-offers a {
  color: var(--teal);
  font-size: 13px;
  font-weight: 800;
}

.reservation-service {
  padding: 78px 0;
  background: linear-gradient(180deg, #fffaf2 0%, #eaf7f7 100%);
}

.reservation-heading {
  max-width: 790px;
  margin: 0 auto 37px;
  text-align: center;
}

.reservation-heading h2 {
  margin-bottom: 16px;
  font-size: clamp(35px, 4vw, 47px);
}

.reservation-heading > p:not(.eyebrow) {
  color: var(--muted);
}

.reservation-trust {
  display: flex;
  justify-content: center;
  gap: 14px;
  margin-top: 27px;
}

.reservation-trust span {
  padding: 10px 16px;
  border: 1px solid #e1ece8;
  border-radius: 30px;
  background: var(--white);
  color: #436164;
  font-size: 13px;
  font-weight: 700;
}

.reservation-grid {
  display: grid;
  grid-template-columns: 1fr 0.46fr;
  gap: 23px;
  align-items: start;
}

.reservation-form {
  padding: 30px;
  border: 1px solid #dfecea;
  border-radius: 22px;
  background: var(--white);
  box-shadow: 0 20px 48px rgba(7, 53, 68, 0.07);
}

.consular-price {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 23px;
  padding: 18px;
  border-radius: 15px;
  background: var(--navy);
}

.consular-price .eyebrow {
  margin-bottom: 6px;
  color: #70dbd2;
}

.consular-price > div:first-child strong {
  color: var(--white);
  font-size: 17px;
}

.consular-total {
  color: #cae1df;
  font-size: 11px;
  text-align: right;
}

.consular-total span,
.consular-total strong {
  display: block;
}

.consular-total strong {
  color: var(--white);
  font-size: 33px;
}

.form-caption {
  margin-bottom: 17px;
  color: var(--navy);
  font-weight: 800;
  text-align: center;
}

.reservation-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 30px;
}

.reservation-tab {
  position: relative;
  display: flex;
  min-height: 122px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 14px 7px;
  border: 1px solid #e2eae8;
  border-radius: 17px;
  background: #fffefc;
  color: var(--navy);
  cursor: pointer;
}

.reservation-tab.selected {
  border: 2px solid var(--aqua);
  background: #effaf8;
  box-shadow: 0 11px 24px rgba(25, 169, 162, 0.12);
}

.reservation-tab strong,
.reservation-tab small {
  display: block;
}

.reservation-tab strong {
  font-size: 15px;
}

.reservation-tab small {
  color: var(--muted);
  font-size: 11px;
}

.tab-price {
  margin-top: 5px;
  color: var(--teal);
  font-size: 16px;
}

.tab-icon {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: #e4efef;
  color: var(--teal);
  font-size: 11px;
  font-weight: 800;
}

.reservation-tab.selected .tab-icon {
  background: var(--aqua);
  color: var(--white);
}

.popular-mark {
  position: absolute;
  top: -14px;
  right: 13px;
  left: 13px;
  padding: 5px 0;
  border-radius: 14px 14px 0 0;
  background: var(--gold);
  color: var(--navy);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.reservation-form h3 {
  margin-bottom: 21px;
  color: var(--navy);
  font-size: 21px;
  text-align: center;
}

.reservation-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 17px;
}

.reservation-fields .full-field {
  grid-column: 1 / -1;
}

.reservation-fields label {
  color: #344b4e;
  font-size: 13px;
  font-weight: 700;
}

.reservation-fields input,
.reservation-fields select {
  display: block;
  width: 100%;
  height: 50px;
  margin-top: 8px;
  padding: 0 14px;
  border: 1px solid #dce6e4;
  border-radius: 9px;
  background: #fffefc;
  color: var(--ink);
}

.reservation-fields input:focus,
.reservation-fields select:focus {
  outline: 2px solid rgba(8, 126, 134, 0.22);
  border-color: var(--teal);
}

.visa-extra-service {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  margin-top: 24px;
  padding: 24px 29px;
  border-radius: 19px;
  background: var(--navy);
}

.visa-extra-service h3 {
  margin: 8px 0 7px;
  color: var(--white);
  font-size: 25px;
}

.visa-extra-service p:not(.eyebrow) {
  color: #d7e5ed;
}

.visa-extra-service .eyebrow {
  color: #5bd9d2;
}

.reservation-submit {
  width: 100%;
  margin-top: 25px;
}

.hbx-search {
  margin-top: 24px;
  padding: 19px;
  border: 1px solid #dcece8;
  border-radius: 13px;
  background: #f2faf8;
}

.hbx-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 15px;
  margin-bottom: 12px;
}

.hbx-badge {
  display: inline-flex;
  margin-bottom: 8px;
  padding: 5px 9px;
  border-radius: 17px;
  background: #d9f4ef;
  color: var(--teal);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.hbx-head h4 {
  margin: 0;
  color: var(--navy);
  font-size: 17px;
}

.hbx-state {
  flex: 0 0 auto;
  padding: 7px 10px;
  border-radius: 20px;
  background: #fff4dd;
  color: #86651e;
  font-size: 11px;
  font-weight: 700;
}

.hbx-state.connected {
  background: #dff5e7;
  color: #137b60;
}

.hbx-search > p {
  margin-bottom: 16px;
  color: var(--muted);
  font-size: 13px;
}

.hbx-search .button {
  width: 100%;
}

.hbx-search .button:disabled {
  border-color: #ccd9d7;
  color: #8b9b9b;
  cursor: not-allowed;
}

.hbx-results {
  display: grid;
  gap: 9px;
  margin-top: 16px;
}

.hbx-results[hidden] {
  display: none;
}

.hbx-results > p {
  padding: 12px;
  border-radius: 8px;
  background: var(--white);
  color: var(--muted);
  font-size: 13px;
}

.hbx-hotel {
  display: flex;
  justify-content: space-between;
  gap: 13px;
  padding: 12px;
  border-radius: 9px;
  background: var(--white);
}

.hbx-hotel strong,
.hbx-hotel span {
  display: block;
}

.hbx-hotel > div > strong {
  color: var(--navy);
  font-size: 13px;
}

.hbx-hotel span {
  color: var(--muted);
  font-size: 11px;
}

.hbx-hotel > p {
  color: var(--muted);
  font-size: 11px;
  text-align: right;
}

.hbx-hotel > p strong {
  color: var(--teal);
  font-size: 14px;
}

.reservation-result {
  margin-top: 21px;
  padding: 18px;
  border-radius: 13px;
  background: #eef8f4;
}

.reservation-result[hidden] {
  display: none;
}

.reservation-result p {
  margin-bottom: 13px;
  color: var(--navy);
  font-size: 14px;
  font-weight: 600;
}

.reservation-result .button {
  width: 100%;
}

.delivery-panel {
  overflow: hidden;
  padding: 29px 25px;
  border: 1px solid #e1ece8;
  border-radius: 22px;
  background: var(--white);
}

.delivery-photo {
  display: block;
  width: calc(100% + 50px);
  height: 184px;
  margin: -29px -25px 23px;
  object-fit: cover;
}

.delivery-panel h3 {
  margin-bottom: 25px;
  color: var(--navy);
  font-size: 22px;
}

.receipt-preview {
  margin-bottom: 16px;
  padding: 16px;
  border: 1px solid #e1ece8;
  border-radius: 12px;
  background: #f7fbfa;
}

.receipt-header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 13px;
  padding-bottom: 12px;
  border-bottom: 1px solid #dfe8e6;
}

.receipt-header strong {
  color: var(--teal);
  font-size: 14px;
}

.receipt-header span {
  color: var(--muted);
  font-size: 10px;
  text-transform: uppercase;
}

.receipt-preview p {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 6px 0;
  color: var(--muted);
  font-size: 11px;
}

.receipt-preview p strong {
  color: var(--navy);
  font-size: 11px;
  text-align: right;
}

.receipt-sample-link {
  width: 100%;
  margin-bottom: 8px;
  font-size: 12px;
}

.delivery-panel article {
  display: flex;
  gap: 13px;
  padding: 17px 0;
  border-bottom: 1px solid #edf2f0;
}

.delivery-panel article > span {
  display: grid;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  place-items: center;
  border-radius: 11px;
  background: #eaf7f4;
  color: var(--teal);
  font-size: 11px;
  font-weight: 800;
}

.delivery-panel strong {
  display: block;
  margin-bottom: 3px;
  color: var(--navy);
  font-size: 14px;
}

.delivery-panel article p {
  color: var(--muted);
  font-size: 12px;
}

.delivery-note {
  margin-top: 21px;
  padding: 15px;
  border-radius: 10px;
  background: #fff6e5;
  color: #735b27;
  font-size: 12px;
  line-height: 1.55;
}

.quote-hub {
  padding: 58px 0;
  background: var(--white);
}

.quote-channel-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: 16px;
}

.quote-channel {
  position: relative;
  overflow: hidden;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 19px;
  background: var(--cream);
  box-shadow: 0 12px 30px rgba(7, 53, 68, 0.05);
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.quote-channel:hover {
  border-color: rgba(0, 136, 146, 0.22);
  box-shadow: 0 18px 38px rgba(7, 53, 68, 0.09);
  transform: translateY(-3px);
}

.quote-channel::after {
  position: absolute;
  top: -42px;
  right: -44px;
  width: 112px;
  height: 112px;
  border-radius: 50%;
  background: rgba(25, 181, 176, 0.12);
  content: "";
}

.quote-channel.active {
  display: flex;
  flex-direction: column;
  background: var(--navy);
  color: var(--white);
}

.quote-channel > * {
  position: relative;
  z-index: 1;
}

.channel-number {
  display: inline-grid;
  width: 39px;
  height: 39px;
  margin-bottom: 17px;
  place-items: center;
  border-radius: 12px;
  background: #e7f6f2;
  color: var(--teal);
  font-size: 12px;
  font-weight: 800;
}

.quote-channel.active .channel-number {
  background: rgba(255, 255, 255, 0.13);
  color: #73ddd4;
}

.quote-channel h3 {
  margin-bottom: 9px;
  color: var(--navy);
  font-size: 21px;
}

.quote-channel.active h3 {
  color: var(--white);
}

.quote-channel > p {
  margin-bottom: 18px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}

.quote-channel.active > p {
  color: #c4dadc;
}

.quick-quote-form {
  display: grid;
  gap: 14px;
}

.quote-details {
  margin-top: 16px;
}

.quote-details summary {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 0 22px;
  border: 1px solid var(--teal);
  border-radius: 9px;
  color: var(--teal);
  cursor: pointer;
  font-size: 14px;
  font-weight: 800;
  list-style: none;
  transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.quote-details summary:hover {
  background: #e8f6f3;
  transform: translateY(-1px);
}

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

.quote-details summary::after {
  margin-left: 9px;
  content: "+";
  font-weight: 800;
}

.quote-details[open] summary {
  margin-bottom: 16px;
  background: var(--teal);
  color: var(--white);
}

.quote-details[open] summary::after {
  content: "-";
}

.managed-flight-note {
  display: grid;
  gap: 4px;
  margin: 0 0 10px;
  padding: 13px 14px;
  border-radius: 10px;
  background: #eaf7f4;
}

.managed-flight-note strong {
  color: var(--teal);
  font-size: 12px;
}

.managed-flight-note span {
  color: #486265;
  font-size: 12px;
  line-height: 1.5;
}

.flight-live-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 9px;
  padding-top: 4px;
}

.flight-live-status .hbx-badge {
  margin-bottom: 0;
}

.flight-search-button {
  width: 100%;
  min-height: 48px;
}

.flight-search-button:disabled {
  background: #cfdddd;
  color: #60787a;
  cursor: not-allowed;
}

.provider-setup-link {
  color: var(--teal);
  font-size: 12px;
  font-weight: 700;
  text-align: center;
}

.provider-setup-link:hover {
  text-decoration: underline;
}

.quick-quote-form label,
.appointment-form label {
  color: #344b4e;
  font-size: 12px;
  font-weight: 700;
}

.quick-quote-form input,
.quick-quote-form select,
.appointment-form input,
.appointment-form select {
  display: block;
  width: 100%;
  height: 47px;
  margin-top: 7px;
  padding: 0 12px;
  border: 1px solid #dde6e4;
  border-radius: 8px;
  background: var(--white);
  color: var(--ink);
}

.quick-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
}

.button-outline {
  min-height: 48px;
  border: 1px solid var(--teal);
  background: transparent;
  color: var(--teal);
}

.migration-link {
  display: block;
  margin-top: 17px;
  color: var(--teal);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
}

.migration-link:hover {
  text-decoration: underline;
}

.live-flight-results {
  margin-top: 29px;
  padding: 27px;
  border: 1px solid #dcece8;
  border-radius: 18px;
  background: #f2faf8;
}

.live-flight-results[hidden] {
  display: none;
}

.live-flight-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 20px;
}

.live-flight-heading h3 {
  color: var(--navy);
  font-size: 25px;
}

.live-flight-heading > p {
  max-width: 310px;
  color: var(--muted);
  font-size: 13px;
}

.flight-options {
  display: grid;
  gap: 12px;
}

.flight-options > p {
  padding: 18px;
  border-radius: 10px;
  background: var(--white);
  color: var(--muted);
}

.flight-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 17px 19px;
  border-radius: 12px;
  background: var(--white);
}

.flight-option strong,
.flight-option span,
.flight-option small {
  display: block;
}

.flight-option > div:first-child strong {
  margin-bottom: 5px;
  color: var(--navy);
}

.flight-option > div:first-child span {
  color: #456164;
  font-size: 13px;
}

.flight-option > div:first-child small {
  margin-top: 5px;
  color: var(--muted);
}

.flight-final-price {
  min-width: 173px;
  color: var(--muted);
  font-size: 11px;
  text-align: right;
}

.flight-final-price strong {
  margin-bottom: 9px;
  color: var(--teal);
  font-size: 23px;
}

.flight-final-price .button {
  min-height: 38px;
  padding: 0 17px;
}

.live-flight-disclaimer {
  margin-top: 16px;
  color: var(--muted);
  font-size: 12px;
}

.request-ready {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 25px;
  padding: 22px 25px;
  border-radius: 15px;
  background: #eef8f4;
}

.request-ready[hidden],
.meeting-result[hidden] {
  display: none;
}

.request-ready strong {
  display: block;
  margin-bottom: 4px;
  color: var(--navy);
}

.request-ready p {
  color: var(--muted);
  font-size: 14px;
}

.section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  margin-bottom: 36px;
}

.section-heading h2,
.quote-copy h2 {
  font-size: clamp(34px, 4vw, 44px);
}

.section-heading.compact {
  display: block;
  max-width: 625px;
  margin-bottom: 45px;
}

.online-heading {
  gap: 52px;
}

.online-heading h2 {
  max-width: 650px;
}

.section-intro {
  max-width: 350px;
  color: var(--muted);
}

.service-path {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}

.service-path-card {
  position: relative;
  display: grid;
  gap: 16px;
  min-height: 205px;
  padding: 20px;
  border: 1px solid #dfeae8;
  border-radius: 19px;
  background: var(--white);
  box-shadow: 0 12px 28px rgba(7, 53, 68, 0.04);
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.service-path-card::after {
  position: absolute;
  top: 38px;
  right: -19px;
  z-index: 1;
  width: 26px;
  height: 2px;
  background: #cfe4e1;
  content: "";
}

.service-path-card:last-child::after {
  display: none;
}

.service-path-card:hover {
  border-color: rgba(0, 136, 146, 0.26);
  box-shadow: 0 18px 34px rgba(18, 59, 93, 0.08);
  transform: translateY(-3px);
}

.service-path-card.active {
  background: linear-gradient(145deg, var(--navy), #0b6070);
  color: var(--white);
}

.service-path-card span {
  display: grid;
  width: 43px;
  height: 43px;
  place-items: center;
  border-radius: 13px;
  background: #eaf7f4;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
}

.service-path-card.active span {
  background: rgba(255, 255, 255, 0.13);
  color: #73ddd4;
}

.service-path-card h3 {
  margin-bottom: 8px;
  color: var(--navy);
  font-size: 18px;
}

.service-path-card.active h3,
.service-path-card.active p,
.service-path-card.active a {
  color: var(--white);
}

.service-path-card p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.service-path-card a {
  align-self: end;
  color: var(--teal);
  font-size: 13px;
  font-weight: 900;
}

.service-path-card a::after {
  margin-left: 7px;
  content: "\2192";
}

.service-path-note {
  display: flex;
  justify-content: space-between;
  gap: 22px;
  margin-top: 18px;
  padding: 17px 20px;
  border: 1px solid #d9ebe7;
  border-radius: 16px;
  background: #ffffff;
}

.service-path-note strong {
  color: var(--navy);
}

.service-path-note span {
  max-width: 670px;
  color: var(--muted);
  font-size: 13px;
}

.card-pill {
  position: absolute;
  top: 22px;
  right: 21px;
  padding: 6px 10px;
  border-radius: 20px;
  background: #e9f6f2;
  color: var(--teal);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.service-illustration {
  position: relative;
  display: block;
  width: 52px;
  height: 52px;
  margin-bottom: 26px;
  border-radius: 15px;
  background: #eaf7f4;
}

.service-illustration::before,
.service-illustration::after {
  position: absolute;
  content: "";
}

.consultation::before {
  top: 15px;
  left: 14px;
  width: 24px;
  height: 17px;
  border: 2px solid var(--teal);
  border-radius: 6px;
}

.consultation::after {
  bottom: 14px;
  left: 18px;
  border-width: 6px 6px 0 0;
  border-style: solid;
  border-color: var(--teal) transparent transparent transparent;
}

.quote::before {
  top: 12px;
  left: 15px;
  width: 22px;
  height: 28px;
  border: 2px solid var(--teal);
  border-radius: 4px;
}

.quote::after {
  top: 20px;
  left: 21px;
  width: 12px;
  height: 2px;
  background: var(--teal);
  box-shadow: 0 7px var(--teal), 0 14px var(--teal);
}

.video::before {
  top: 16px;
  left: 12px;
  width: 22px;
  height: 19px;
  border: 2px solid var(--teal);
  border-radius: 6px;
}

.video::after {
  top: 21px;
  right: 12px;
  border-width: 6px 0 6px 8px;
  border-style: solid;
  border-color: transparent transparent transparent var(--teal);
}

.support::before {
  top: 14px;
  left: 15px;
  width: 22px;
  height: 20px;
  border: 2px solid var(--teal);
  border-radius: 13px 13px 9px 9px;
}

.support::after {
  bottom: 14px;
  left: 26px;
  width: 12px;
  height: 2px;
  background: var(--teal);
}

.online-service-card h3 {
  margin-bottom: 12px;
  color: var(--navy);
  font-size: 19px;
}

.online-service-card p {
  min-height: 78px;
  margin-bottom: 18px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.card-link {
  color: var(--teal);
  font-size: 14px;
  font-weight: 800;
}

.card-link::after {
  margin-left: 8px;
  content: "\2192";
}

.benefit-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.benefit-card {
  padding: 33px 31px;
  border: 1px solid #ebefea;
  border-radius: 18px;
  background: var(--cream);
}

.benefit-card .icon {
  display: inline-grid;
  width: 49px;
  height: 49px;
  margin-bottom: 24px;
  place-items: center;
  border-radius: 13px;
  background: #e9f6f2;
  color: var(--teal);
  font-size: 13px;
  font-weight: 800;
}

.benefit-card h3 {
  margin-bottom: 13px;
  color: var(--navy);
  font-size: 20px;
}

.benefit-card p {
  color: var(--muted);
  font-size: 14px;
}

.insurance-story {
  padding: 60px 0;
}

.insurance-story-grid {
  display: grid;
  grid-template-columns: 0.78fr 1.22fr;
  gap: 34px;
  align-items: center;
}

.insurance-visual {
  position: relative;
  overflow: hidden;
  min-height: 360px;
  margin: 0;
  border-radius: 24px;
  background: var(--navy);
  box-shadow: 0 20px 46px rgba(18, 59, 93, 0.13);
}

.insurance-visual img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
}

.insurance-visual::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(8, 41, 64, 0.76), rgba(8, 41, 64, 0.08) 58%);
  content: "";
}

.insurance-visual figcaption {
  position: absolute;
  right: 24px;
  bottom: 24px;
  left: 24px;
  z-index: 1;
  color: var(--white);
  font-size: 17px;
  font-weight: 800;
  line-height: 1.35;
}

.insurance-story-copy {
  padding: 28px 0;
}

.insurance-story-copy h2 {
  max-width: 680px;
  margin-bottom: 16px;
  font-size: clamp(36px, 4vw, 52px);
}

.insurance-story-copy > p:not(.eyebrow) {
  max-width: 650px;
  color: var(--muted);
  font-size: 15px;
}

.insurance-flow {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 25px 0 17px;
}

.insurance-flow article {
  padding: 18px;
  border: 1px solid #dfeae8;
  border-radius: 16px;
  background: #fffdf9;
}

.insurance-flow span {
  display: grid;
  width: 35px;
  height: 35px;
  margin-bottom: 13px;
  place-items: center;
  border-radius: 50%;
  background: var(--teal);
  color: var(--white);
  font-size: 13px;
  font-weight: 800;
}

.insurance-flow strong,
.insurance-flow small {
  display: block;
}

.insurance-flow strong {
  margin-bottom: 5px;
  color: var(--navy);
  font-size: 17px;
}

.insurance-flow small {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.insurance-benefit-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-bottom: 24px;
}

.insurance-benefit-chips span {
  padding: 9px 13px;
  border-radius: 24px;
  background: #eaf7f4;
  color: var(--teal);
  font-size: 12px;
  font-weight: 800;
}

.plans {
  padding: 58px 0;
  background:
    linear-gradient(90deg, rgba(246, 240, 230, 0.99) 0%, rgba(246, 240, 230, 0.93) 62%, rgba(246, 240, 230, 0.72) 100%),
    url("assets/visuales/londres.webp") center right / cover no-repeat;
}

.text-link {
  color: var(--teal);
  font-weight: 700;
}

.rates-experience {
  padding: 24px;
  border: 1px solid #e2ebe8;
  border-radius: 19px;
  background: var(--white);
  box-shadow: 0 16px 42px rgba(7, 53, 68, 0.07);
}

.rates-step {
  display: flex;
  align-items: start;
  gap: 15px;
  margin-bottom: 16px;
}

.step-pill {
  flex: 0 0 auto;
  padding: 7px 11px;
  border-radius: 22px;
  background: #e8f6f3;
  color: var(--teal);
  font-size: 11px;
  font-weight: 800;
}

.rates-step h3 {
  margin-bottom: 5px;
  color: var(--navy);
  font-size: 18px;
}

.rates-step p {
  color: var(--muted);
  font-size: 13px;
}

.term-picker {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 24px;
}

.term-choice {
  min-height: 40px;
  padding: 0 15px;
  border: 1px solid #dbe6e4;
  border-radius: 25px;
  background: var(--white);
  color: #3e5a5e;
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
}

.term-choice:hover,
.term-choice:focus-visible,
.term-choice.selected {
  border-color: var(--teal);
  background: var(--teal);
  color: var(--white);
  outline: none;
}

.region-step {
  margin-bottom: 17px;
}

.region-rate-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
}

.rate-choice {
  position: relative;
  display: flex;
  min-height: 106px;
  flex-direction: column;
  align-items: start;
  justify-content: center;
  padding: 15px 13px;
  border: 1px solid #dfeae8;
  border-radius: 14px;
  background: #fffdf9;
  color: var(--navy);
  cursor: pointer;
  text-align: left;
  transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.rate-choice span,
.rate-choice strong,
.rate-choice small {
  display: block;
}

.rate-choice span {
  margin-bottom: 7px;
  color: #3f5b60;
  font-size: 12px;
  font-weight: 700;
}

.rate-choice strong {
  margin-bottom: 3px;
  color: var(--teal);
  font-size: 23px;
}

.rate-choice small {
  color: var(--muted);
  font-size: 11px;
}

.rate-choice em {
  position: absolute;
  top: -10px;
  left: 14px;
  padding: 4px 9px;
  border-radius: 13px;
  background: var(--gold);
  color: var(--navy);
  font-size: 9px;
  font-style: normal;
  font-weight: 800;
  text-transform: uppercase;
}

.rate-choice:hover,
.rate-choice:focus-visible {
  border-color: var(--aqua);
  box-shadow: 0 9px 20px rgba(8, 126, 134, 0.09);
  outline: none;
  transform: translateY(-2px);
}

.rate-choice.selected {
  border-color: var(--teal);
  background: #eaf7f4;
  box-shadow: 0 10px 23px rgba(8, 126, 134, 0.12);
}

.additional-day-note {
  margin-top: 15px;
  padding: 11px 14px;
  border-radius: 9px;
  background: #fff5e4;
  color: #775a20;
  font-size: 11px;
}

.selected-rate {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  margin-top: 19px;
  padding: 19px 23px;
  border-radius: 15px;
  background: #eaf7f4;
}

.selected-rate[hidden] {
  display: none;
}

.selected-rate .eyebrow {
  margin-bottom: 5px;
}

.selected-rate strong,
.selected-rate span {
  display: block;
}

.selected-rate strong {
  margin-bottom: 3px;
  color: var(--navy);
}

.selected-rate span {
  color: var(--muted);
  font-size: 13px;
}

.plan-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.plan-card {
  position: relative;
  padding: 34px 29px;
  border: 1px solid #e5ece8;
  border-radius: 20px;
  background: var(--white);
  box-shadow: 0 10px 28px rgba(7, 53, 68, 0.04);
}

.plan-card.featured {
  border-color: var(--teal);
  box-shadow: 0 20px 42px rgba(8, 126, 134, 0.14);
  transform: translateY(-10px);
}

.plan-tag {
  display: inline-flex;
  margin-bottom: 22px;
  padding: 8px 12px;
  border-radius: 30px;
  background: #e9f6f2;
  color: var(--teal);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.plan-card.featured .plan-tag {
  background: var(--teal);
  color: var(--white);
}

.plan-card h3 {
  margin-bottom: 12px;
  color: var(--navy);
  font-family: "Playfair Display", Georgia, serif;
  font-size: 32px;
}

.plan-copy {
  min-height: 52px;
  color: var(--muted);
  font-size: 14px;
}

.plan-price {
  margin: 27px 0 24px;
  color: var(--muted);
  font-size: 14px;
}

.plan-price strong {
  color: var(--teal);
  font-size: 29px;
}

.plan-card ul {
  display: grid;
  gap: 13px;
  margin: 0;
  padding: 0;
  list-style: none;
  color: #38575c;
  font-size: 14px;
}

.plan-card li::before {
  margin-right: 10px;
  color: var(--aqua);
  content: "\2713";
  font-weight: 800;
}

.destination-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.destination-card {
  position: relative;
  display: flex;
  min-height: 310px;
  flex-direction: column;
  justify-content: end;
  overflow: hidden;
  padding: 29px;
  border-radius: 20px;
  color: var(--white);
}

.destination-card::before {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(3, 38, 50, 0.76), rgba(3, 38, 50, 0.03) 70%);
  content: "";
}

.destination-card > * {
  position: relative;
}

.destination-card span {
  margin-bottom: 9px;
  color: #e6f7f4;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.destination-card h3 {
  margin-bottom: 8px;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 32px;
}

.destination-card p {
  font-size: 14px;
}

.destination-card strong {
  font-size: 18px;
}

.cartagena {
  background:
    radial-gradient(circle at 75% 20%, #ffd590 0 9%, transparent 10%),
    linear-gradient(155deg, #1d8a96 0%, #3bc0c4 38%, #e2b07b 39%, #cf825d 66%, #08505a 67%);
}

.galapagos {
  background:
    radial-gradient(circle at 21% 22%, #c9eaad 0, transparent 24%),
    linear-gradient(145deg, #a9d9d0 0%, #29847e 43%, #254f4b 44%, #173b3f 100%);
}

.punta-cana {
  background:
    linear-gradient(135deg, transparent 0 50%, rgba(20, 99, 83, 0.7) 51% 67%, transparent 68%),
    linear-gradient(160deg, #55b9cc 0%, #a2e2dc 46%, #f4ddae 47%, #d29661 100%);
}

.quote-section {
  background: var(--cream);
}

.quote-grid {
  display: grid;
  grid-template-columns: 0.76fr 1fr;
  gap: 60px;
  align-items: start;
}

.quote-copy {
  padding-top: 32px;
}

.quote-copy h2 {
  margin-bottom: 22px;
}

.quote-copy > p:not(.eyebrow) {
  color: var(--muted);
}

.check-list {
  display: grid;
  gap: 17px;
  margin: 38px 0 0;
  padding: 0;
  list-style: none;
  color: var(--navy);
  font-size: 14px;
  font-weight: 600;
}

.check-list li {
  display: flex;
  gap: 13px;
  align-items: center;
}

.check-list li::before {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 50%;
  background: #e7f6f2;
  color: var(--teal);
  content: "\2713";
}

.quote-form {
  padding: 35px;
  border: 1px solid #e7eeec;
  border-radius: 20px;
  background: var(--white);
  box-shadow: 0 16px 45px rgba(7, 53, 68, 0.05);
}

.form-title {
  margin-bottom: 28px;
}

.form-title h3 {
  margin-bottom: 5px;
  color: var(--navy);
  font-size: 22px;
}

.form-title p {
  color: var(--muted);
  font-size: 14px;
}

.chosen-rate-chip {
  margin: -9px 0 25px;
  padding: 13px 15px;
  border-radius: 10px;
  background: #eaf7f4;
}

.chosen-rate-chip[hidden] {
  display: none;
}

.chosen-rate-chip span {
  display: block;
  margin-bottom: 4px;
  color: var(--teal);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.chosen-rate-chip strong {
  color: var(--navy);
  font-size: 14px;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.quote-form label,
.extras legend {
  color: #344b4e;
  font-size: 13px;
  font-weight: 700;
}

.quote-form input:not([type="checkbox"]),
.quote-form select {
  display: block;
  width: 100%;
  height: 52px;
  margin-top: 9px;
  padding: 0 15px;
  border: 1px solid #dde6e4;
  border-radius: 8px;
  background: #fffefc;
  color: var(--ink);
}

.quote-form input:focus,
.quote-form select:focus {
  outline: 2px solid rgba(8, 126, 134, 0.25);
  border-color: var(--teal);
}

.extras {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin: 27px 0;
  padding: 21px 0 0;
  border: 0;
  border-top: 1px solid #eef1ee;
}

.extras legend {
  width: 100%;
  padding-top: 20px;
}

.extras label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.extras input {
  accent-color: var(--teal);
}

.rate-rule {
  margin: 27px 0;
  padding: 16px 17px;
  border-radius: 10px;
  background: #eef8f4;
  color: #466265;
  font-size: 13px;
  line-height: 1.55;
}

.quote-button {
  width: 100%;
}

.form-note {
  margin-top: 16px;
  color: #728486;
  font-size: 12px;
  text-align: center;
}

.quote-result {
  padding: 0 0 72px;
  background: var(--cream);
}

.result-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 42px;
  padding: 34px 42px;
  border-radius: 20px;
  background: var(--navy);
  color: var(--white);
}

.result-card .eyebrow {
  color: #69ddd2;
}

.result-card h2 {
  margin-bottom: 11px;
  color: var(--white);
  font-size: 34px;
}

.result-card p:not(.eyebrow) {
  color: #c4dadc;
}

.total-box {
  min-width: 265px;
  text-align: right;
}

.total-box span {
  display: block;
  margin-bottom: 4px;
  color: #c4dadc;
  font-size: 13px;
}

.total-box strong {
  display: block;
  margin-bottom: 14px;
  color: var(--white);
  font-size: 38px;
}

.contact-banner {
  padding: 56px 0;
  background:
    linear-gradient(90deg, rgba(8, 41, 64, 0.93), rgba(8, 41, 64, 0.58)),
    url("assets/visuales/londres.webp") center 48% / cover no-repeat;
}

.steps {
  background: var(--white);
}

.virtual-appointment {
  padding: 78px 0;
  background: var(--sand);
}

.appointment-grid {
  display: grid;
  grid-template-columns: 0.8fr 1fr;
  gap: 58px;
  align-items: start;
}

.appointment-copy {
  padding-top: 34px;
}

.appointment-copy h2 {
  margin-bottom: 20px;
  font-size: clamp(34px, 4vw, 44px);
}

.appointment-copy > p:not(.eyebrow) {
  color: var(--muted);
}

.advisor-live-panel {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 16px;
  align-items: center;
  margin-top: 24px;
  padding: 18px;
  border: 1px solid #dcece8;
  border-radius: 18px;
  background: linear-gradient(135deg, #ffffff, #eef9f7);
  box-shadow: 0 14px 34px rgba(7, 53, 68, 0.07);
}

.advisor-gif {
  position: relative;
  width: 86px;
  height: 70px;
}

.advisor-gif::before {
  position: absolute;
  inset: 7px 5px 0;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(25, 181, 176, 0.18), transparent 68%);
  content: "";
  animation: advisor-glow 2.4s ease-in-out infinite;
}

.advisor-person {
  position: absolute;
  bottom: 7px;
  width: 44px;
  height: 48px;
  border-radius: 24px 24px 15px 15px;
  box-shadow: inset -8px -10px 18px rgba(7, 53, 68, 0.16), 0 10px 20px rgba(7, 53, 68, 0.12);
  animation: advisor-color-shift 3.2s ease-in-out infinite;
}

.advisor-person::before {
  position: absolute;
  top: -17px;
  left: 8px;
  width: 29px;
  height: 29px;
  border-radius: 50%;
  background: inherit;
  box-shadow: inset -7px -6px 12px rgba(7, 53, 68, 0.14);
  content: "";
}

.advisor-person-one {
  left: 6px;
  z-index: 1;
  background: linear-gradient(145deg, #a7d65f, #2f9b62);
  transform: rotate(-5deg);
}

.advisor-person-two {
  right: 4px;
  z-index: 2;
  background: linear-gradient(145deg, #2f79c7, #123b8d);
  animation-delay: 1.6s;
}

.advisor-swoosh {
  position: absolute;
  right: 4px;
  bottom: 19px;
  left: 2px;
  z-index: 3;
  height: 22px;
  border-bottom: 5px solid rgba(233, 183, 91, 0.92);
  border-radius: 50%;
  transform: rotate(-9deg);
  animation: advisor-swoosh 2.7s ease-in-out infinite;
}

.advisor-live-copy .live-label {
  display: block;
  margin-bottom: 4px;
  color: var(--teal);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.advisor-live-copy strong {
  display: block;
  color: var(--navy);
  font-size: 15px;
}

.advisor-live-copy p {
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.advisor-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 11px;
  border-radius: 22px;
  background: #eaf8ef;
  color: #137b60;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.advisor-status::before {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #20b56d;
  content: "";
  animation: advisor-blink 1.5s ease-in-out infinite;
}

.appointment-photo {
  overflow: hidden;
  height: 215px;
  margin: 27px 0 0;
  border-radius: 18px;
  box-shadow: 0 15px 32px rgba(18, 59, 93, 0.08);
}

.appointment-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.meeting-benefits {
  display: grid;
  gap: 14px;
  margin-top: 35px;
}

.meeting-benefits span {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--navy);
  font-size: 14px;
  font-weight: 700;
}

.meeting-benefits span::before {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 50%;
  background: #e7f6f2;
  color: var(--teal);
  content: "\2713";
}

.appointment-form {
  padding: 34px;
  border-radius: 20px;
  background: var(--white);
  box-shadow: 0 16px 45px rgba(7, 53, 68, 0.06);
}

.appointment-form h3 {
  margin-bottom: 26px;
  color: var(--navy);
  font-size: 22px;
}

.appointment-form .button-primary {
  width: 100%;
  margin-top: 25px;
}

.appointment-disclaimer,
.appointment-price-note {
  padding: 13px 15px;
  border-radius: 11px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.appointment-disclaimer {
  margin-top: 22px;
  border-left: 3px solid var(--gold);
  background: #fff7e8;
}

.appointment-price-note {
  margin: 18px 0 -5px;
  background: #eef8f7;
}

.meeting-result {
  margin-top: 22px;
  padding: 20px;
  border-radius: 13px;
  background: #eef8f4;
}

.meeting-result p {
  margin-bottom: 15px;
  color: var(--navy);
  font-size: 14px;
}

.meeting-result .button {
  width: 100%;
}

.how-it-works {
  padding: 72px 0;
  background: #f2faf8;
}

.process-steps {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}

.process-steps article {
  position: relative;
  display: grid;
  gap: 10px;
  min-height: 210px;
  padding: 22px;
  border: 1px solid #dbeae8;
  border-radius: 20px;
  background: var(--white);
  box-shadow: 0 16px 34px rgba(18, 59, 93, 0.07);
}

.process-steps article::after {
  position: absolute;
  top: 38px;
  right: -11px;
  z-index: 1;
  width: 22px;
  height: 2px;
  background: #b7dbd8;
  content: "";
}

.process-steps article:last-child::after {
  display: none;
}

.process-steps span {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 14px;
  background: #eaf8f6;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
}

.process-steps h3 {
  color: var(--navy);
  font-size: 18px;
  line-height: 1.16;
}

.process-steps p {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.legal-notes {
  padding: 72px 0;
  background: linear-gradient(135deg, #fffaf2, #eef8f7);
}

.legal-panel {
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  gap: 36px;
  align-items: start;
  padding: 32px;
  border: 1px solid #dce8e5;
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 22px 48px rgba(18, 59, 93, 0.1);
}

.legal-panel h2 {
  margin-bottom: 14px;
  font-size: clamp(31px, 3vw, 44px);
}

.legal-panel > div:first-child > p:not(.eyebrow) {
  color: var(--muted);
  font-size: 15px;
}

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

.legal-grid article {
  padding: 18px;
  border: 1px solid #e2ecea;
  border-radius: 16px;
  background: var(--white);
}

.legal-grid article:last-child {
  grid-column: 1 / -1;
}

.legal-grid strong {
  display: block;
  margin-bottom: 7px;
  color: var(--navy);
  font-size: 15px;
}

.legal-grid p {
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.55;
}

.trust-payment {
  padding: 72px 0;
  background: #f2faf8;
}

.trust-payment-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}

.trust-real-card,
.payment-card {
  position: relative;
  overflow: hidden;
  padding: 30px;
  border: 1px solid #d9e9e6;
  border-radius: 26px;
  background: var(--white);
  box-shadow: 0 18px 44px rgba(18, 59, 93, 0.09);
}

.trust-real-card {
  background:
    radial-gradient(circle at 92% 10%, rgba(115, 221, 212, 0.2), transparent 28%),
    var(--white);
}

.payment-card {
  background: linear-gradient(135deg, var(--navy), #0e6a76);
  color: var(--white);
}

.trust-real-card h2,
.payment-card h2 {
  margin-bottom: 18px;
  font-size: clamp(28px, 3vw, 40px);
}

.payment-card h2 {
  color: var(--white);
}

.payment-card .eyebrow {
  color: #73ddd4;
}

.trust-real-list {
  display: grid;
  gap: 12px;
  margin-bottom: 22px;
}

.trust-real-list p {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.5;
}

.trust-real-list span {
  display: grid;
  flex: 0 0 25px;
  width: 25px;
  height: 25px;
  place-items: center;
  border-radius: 50%;
  background: #eaf8f6;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
}

.trust-real-list strong {
  color: var(--navy);
}

.trust-portal-link {
  margin-top: 10px;
}

.payment-intro,
.payment-note {
  color: rgba(255, 255, 255, 0.82);
  font-size: 14px;
  line-height: 1.55;
}

.payment-methods {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 22px 0;
}

.payment-methods span {
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: var(--white);
  font-size: 13px;
  font-weight: 800;
}

.payment-note {
  padding: 13px 14px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.1);
}

@keyframes advisor-glow {
  0% {
    opacity: 0.55;
    transform: scale(0.94);
  }

  50% {
    opacity: 1;
    transform: scale(1.05);
  }

  100% {
    opacity: 0.55;
    transform: scale(0.94);
  }
}

@keyframes advisor-color-shift {
  0%,
  100% {
    filter: hue-rotate(0deg) saturate(1);
    transform: translateY(0) rotate(-4deg);
  }

  50% {
    filter: hue-rotate(36deg) saturate(1.12);
    transform: translateY(-4px) rotate(3deg);
  }
}

@keyframes advisor-swoosh {
  0%,
  100% {
    transform: translateX(-3px) rotate(-9deg);
  }

  50% {
    transform: translateX(5px) rotate(-6deg);
  }
}

@keyframes advisor-blink {
  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.35;
  }
}

.steps-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.steps-grid article {
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: 18px;
}

.steps-grid span {
  display: grid;
  width: 42px;
  height: 42px;
  margin-bottom: 22px;
  place-items: center;
  border-radius: 50%;
  background: var(--teal);
  color: var(--white);
  font-weight: 800;
}

.steps-grid h3 {
  margin-bottom: 13px;
  color: var(--navy);
  font-size: 19px;
}

.steps-grid p {
  color: var(--muted);
  font-size: 14px;
}

.banner-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

.banner-content h2 {
  color: var(--white);
  font-size: clamp(29px, 3vw, 37px);
}

.contact-banner .eyebrow {
  color: #64ddd4;
}

.site-footer {
  padding: 46px 0 20px;
  background: var(--navy-deep);
  color: #bfcfd0;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr 1fr;
  gap: 34px;
  align-items: start;
  padding-bottom: 36px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-about p,
.footer-location p {
  margin-top: 18px;
  color: #bfcfd0;
  font-size: 14px;
}

.footer-brand {
  width: fit-content;
  padding: 8px 10px;
  border-radius: 14px;
  background: var(--white);
}

.site-footer h3 {
  margin: 0 0 12px;
  color: var(--white);
  font-size: 17px;
}

.footer-map {
  position: relative;
  display: grid;
  min-height: 132px;
  margin-top: 18px;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(100, 221, 212, 0.2);
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(8, 41, 64, 0.82), rgba(0, 136, 146, 0.52)),
    radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.18) 0 9%, transparent 10%),
    linear-gradient(90deg, transparent 0 24%, rgba(255, 255, 255, 0.12) 25% 26%, transparent 27% 48%, rgba(255, 255, 255, 0.12) 49% 50%, transparent 51%),
    linear-gradient(0deg, transparent 0 33%, rgba(255, 255, 255, 0.12) 34% 35%, transparent 36% 66%, rgba(255, 255, 255, 0.12) 67% 68%, transparent 69%);
  color: var(--white);
  font-weight: 800;
}

.footer-map::before {
  width: 34px;
  height: 34px;
  border: 8px solid var(--coral);
  border-radius: 50% 50% 50% 0;
  content: "";
  transform: rotate(-45deg);
}

.footer-map span {
  position: absolute;
  bottom: 16px;
  padding: 7px 12px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.14);
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 22px;
  color: var(--white);
  font-size: 14px;
}

.footer-socials {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 18px;
}

.footer-socials a {
  padding: 9px 12px;
  border: 1px solid rgba(100, 221, 212, 0.22);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.06);
  color: #dff8f5;
  font-size: 13px;
  font-weight: 800;
}

.footer-socials a:hover,
.footer-links a:hover {
  color: #64ddd4;
}

.copyright {
  padding-top: 20px;
  color: #8fa9ab;
  font-size: 13px;
  text-align: center;
}

.instant-action {
  position: fixed;
  right: 25px;
  bottom: 23px;
  z-index: 11;
  display: flex;
  align-items: center;
  gap: 19px;
  padding: 12px 12px 12px 20px;
  border: 1px solid #dfebe7;
  border-radius: 18px;
  background: var(--white);
  box-shadow: 0 15px 35px rgba(7, 53, 68, 0.14);
}

.instant-action strong,
.instant-action span {
  display: block;
}

.instant-action strong {
  color: var(--navy);
  font-size: 14px;
}

.instant-action span {
  color: var(--muted);
  font-size: 12px;
}

.instant-action .button {
  min-height: 46px;
  padding: 0 18px;
}

.ai-launcher {
  position: fixed;
  right: 25px;
  bottom: 24px;
  z-index: 12;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  animation: ai-float 3.7s ease-in-out infinite;
}

.ai-launcher.open {
  animation-play-state: paused;
}

.ai-launcher.compact .ai-greeting {
  display: none;
}

.ai-greeting {
  display: none;
  position: relative;
  padding: 12px 15px;
  border: 1px solid #d9e9e6;
  border-radius: 18px;
  background: var(--white);
  box-shadow: 0 12px 29px rgba(7, 53, 68, 0.14);
  color: var(--navy);
  text-align: left;
  animation: ai-bubble-wave 4.8s ease-in-out infinite, ai-callout-nudge 2.9s ease-in-out infinite;
}

.ai-greeting::after {
  position: absolute;
  top: 27px;
  right: -8px;
  width: 14px;
  height: 14px;
  border-top: 1px solid #d9e9e6;
  border-right: 1px solid #d9e9e6;
  background: var(--white);
  content: "";
  transform: rotate(45deg);
}

.ai-greeting strong,
.ai-greeting small {
  display: block;
}

.ai-greeting strong {
  font-size: 13px;
}

.ai-greeting small {
  margin-top: 2px;
  color: var(--teal);
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.ai-robot-agent {
  position: relative;
  display: grid;
  width: 76px;
  height: 86px;
  place-items: center;
  filter: drop-shadow(0 14px 24px rgba(8, 126, 134, 0.24));
  animation: robot-bob 2.4s ease-in-out infinite;
}

.ai-robot-agent::before {
  position: absolute;
  inset: 17px 3px 4px;
  border-radius: 30px 30px 24px 24px;
  background: linear-gradient(145deg, #f8ffff 0%, #dff8f6 44%, #0b8e98 45%, #008892 100%);
  content: "";
}

.ai-robot-agent::after {
  position: absolute;
  right: -7px;
  bottom: 29px;
  width: 26px;
  height: 11px;
  border-radius: 0 13px 13px 0;
  background: var(--gold);
  content: "";
  transform-origin: left center;
  animation: robot-wave 1.8s ease-in-out infinite;
}

.robot-antenna {
  position: absolute;
  top: 0;
  left: 35px;
  width: 5px;
  height: 18px;
  border-radius: 5px;
  background: var(--teal);
}

.robot-antenna::before {
  position: absolute;
  top: -7px;
  left: -5px;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: var(--gold);
  content: "";
  animation: robot-signal 1.8s ease-in-out infinite;
}

.robot-face {
  position: absolute;
  top: 23px;
  left: 13px;
  z-index: 2;
  width: 50px;
  height: 34px;
  border: 3px solid #e9fbf8;
  border-radius: 16px;
  background: #123b5d;
  box-shadow: inset 0 -8px 18px rgba(0, 0, 0, 0.18);
}

.robot-eye {
  position: absolute;
  top: 12px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #bdf7f2;
  animation: ai-blink 4.3s infinite, robot-eye-glow 2.8s ease-in-out infinite;
}

.robot-eye.left {
  left: 14px;
}

.robot-eye.right {
  right: 14px;
}

.robot-smile {
  position: absolute;
  bottom: 7px;
  left: 18px;
  width: 14px;
  height: 6px;
  border-bottom: 2px solid #bdf7f2;
  border-radius: 0 0 14px 14px;
}

.robot-body {
  position: absolute;
  bottom: 6px;
  left: 21px;
  z-index: 1;
  width: 34px;
  height: 22px;
  border-radius: 14px 14px 20px 20px;
  background: linear-gradient(145deg, #19b5b0, #0b7280);
}

.robot-badge {
  position: absolute;
  right: -4px;
  top: 18px;
  z-index: 3;
  display: grid;
  width: 27px;
  height: 27px;
  place-items: center;
  border: 2px solid var(--white);
  border-radius: 50%;
  background: var(--coral);
  color: var(--white);
  font-size: 10px;
  font-weight: 900;
  animation: robot-badge-pop 3.4s ease-in-out infinite;
}

@keyframes ai-float {
  0%, 100% { transform: translateY(0) rotate(0deg) scale(1); }
  25% { transform: translateY(-11px) rotate(-2deg) scale(1.02); }
  50% { transform: translateY(-4px) rotate(2deg) scale(1); }
  75% { transform: translateY(-8px) rotate(-1deg) scale(1.03); }
}

@keyframes ai-bubble-wave {
  0%, 65%, 100% { transform: scale(1); }
  72% { transform: scale(1.045); }
  79% { transform: scale(1); }
  86% { transform: scale(1.035); }
}

@keyframes ai-callout-nudge {
  0%, 100% { box-shadow: 0 12px 29px rgba(7, 53, 68, 0.14); }
  50% { box-shadow: 0 18px 35px rgba(0, 136, 146, 0.2); }
}

@keyframes ai-blink {
  0%, 42%, 47%, 100% { transform: scaleY(1); }
  44%, 45% { transform: scaleY(0.1); }
}

@keyframes robot-signal {
  0%, 100% { box-shadow: 0 0 0 0 rgba(233, 183, 91, 0.38); }
  50% { box-shadow: 0 0 0 8px rgba(233, 183, 91, 0); }
}

@keyframes robot-eye-glow {
  0%, 100% { opacity: 0.7; }
  50% { opacity: 1; }
}

@keyframes robot-badge-pop {
  0%, 70%, 100% { transform: scale(1); }
  78% { transform: scale(1.12); }
}

@keyframes robot-bob {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-7px) rotate(-2deg); }
  72% { transform: translateY(-2px) rotate(2deg); }
}

@keyframes robot-wave {
  0%, 100% { transform: rotate(-14deg); }
  45% { transform: rotate(16deg); }
  70% { transform: rotate(-7deg); }
}

@keyframes nav-point-tap {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  35% { transform: translateY(-4px) rotate(-7deg); }
  58% { transform: translateY(1px) rotate(3deg); }
}

@keyframes insurance-cta-pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(115, 221, 212, 0.28);
    transform: translateY(0);
  }
  50% {
    box-shadow: 0 0 0 8px rgba(115, 221, 212, 0);
    transform: translateY(-2px);
  }
}

.ai-assistant {
  position: fixed;
  right: 25px;
  bottom: 155px;
  z-index: 13;
  display: flex;
  width: min(385px, calc(100% - 32px));
  max-height: min(630px, calc(100vh - 190px));
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #dbe8e5;
  border-radius: 21px;
  background: var(--white);
  box-shadow: 0 24px 58px rgba(7, 53, 68, 0.22);
}

.ai-assistant[hidden] {
  display: none;
}

.ai-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 19px;
  background: var(--navy);
  color: var(--white);
}

.ai-header strong,
.ai-header span {
  display: block;
}

.ai-header strong {
  font-size: 17px;
}

.ai-header span {
  margin-top: 3px;
  color: #c6dcde;
  font-size: 12px;
}

.ai-close {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  background: transparent;
  color: var(--white);
  cursor: pointer;
  font-size: 17px;
}

.ai-messages {
  display: grid;
  gap: 12px;
  min-height: 152px;
  overflow-y: auto;
  padding: 18px;
  background: #f7fbfa;
}

.ai-message {
  max-width: 91%;
  padding: 11px 13px;
  border-radius: 14px;
  color: #314f54;
  font-size: 13px;
  line-height: 1.55;
}

.ai-message.assistant {
  border-bottom-left-radius: 5px;
  background: #e7f6f2;
}

.ai-message.user {
  justify-self: end;
  border-bottom-right-radius: 5px;
  background: var(--teal);
  color: var(--white);
}

.ai-message-action {
  display: inline-flex;
  margin-top: 10px;
  padding: 8px 12px;
  border-radius: 18px;
  background: var(--teal);
  color: var(--white);
  font-weight: 700;
}

.ai-suggestions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 12px 15px 4px;
}

.ai-suggestions button {
  min-height: 39px;
  padding: 8px 10px;
  border: 1px solid #d6e5e2;
  border-radius: 12px;
  background: #f4fbfa;
  color: var(--teal);
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  transition: transform 160ms ease, background-color 160ms ease, border-color 160ms ease;
}

.ai-suggestions button:hover {
  border-color: rgba(0, 136, 146, 0.28);
  background: #e6f7f4;
  transform: translateY(-1px);
}

.ai-form {
  display: flex;
  gap: 8px;
  padding: 12px 15px;
}

.ai-form input {
  width: 100%;
  min-width: 0;
  height: 44px;
  padding: 0 13px;
  border: 1px solid #d8e6e3;
  border-radius: 22px;
  color: var(--ink);
}

.ai-form button {
  padding: 0 15px;
  border: 0;
  border-radius: 22px;
  background: var(--teal);
  color: var(--white);
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
}

.ai-note {
  padding: 0 15px 14px;
  color: var(--muted);
  font-size: 10px;
}

@media (max-width: 960px) {
  .hero-grid,
  .quote-grid,
  .appointment-grid,
  .footer-grid,
  .legal-panel,
  .trust-payment-grid,
  .planner-grid,
  .planner-chat,
  .planner-next-steps,
  .reservation-grid,
  .migration-hero,
  .migration-entry-panel,
  .migration-route-grid,
  .visa-evaluator-grid,
  .migration-tools-grid,
  .express-consultation {
    grid-template-columns: 1fr;
  }

  .visa-diagnosis {
    position: static;
  }

  .express-timer {
    width: 120px;
    height: 120px;
  }

  .planner-city-grid {
    grid-template-columns: 1fr;
  }

  .planner-offers {
    grid-template-columns: repeat(2, 1fr);
  }

  .planner-result-showcase {
    grid-template-columns: 1fr;
  }

  .planner-chat {
    background: linear-gradient(180deg, var(--navy) 0%, #0c5667 34%, #eef9f7 34%);
  }

  .online-card {
    width: 100%;
    max-width: 540px;
  }

  .conversion-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .main-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

  .quick-intake-grid {
    grid-template-columns: 1fr;
  }

  .business-line-grid,
  .platform-growth-panel,
  .migration-focus-panel,
  .study-abroad-panel,
  .auto-quote-panel,
  .premium-portal-panel {
    grid-template-columns: 1fr;
  }

  .seo-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hero-side {
    margin-left: 0;
    padding-top: 0;
    max-width: 560px;
  }

  .region-rate-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .service-path,
  .guide-card-grid,
  .process-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .service-path-card::after,
  .process-steps article::after {
    display: none;
  }

  .quote-channel-grid {
    grid-template-columns: 1fr;
  }

  .insurance-story-grid {
    grid-template-columns: 1fr;
  }

  .insurance-visual,
  .insurance-visual img {
    min-height: 260px;
  }

  .live-flight-heading,
  .flight-option {
    flex-direction: column;
    align-items: stretch;
  }

  .flight-final-price {
    text-align: left;
  }

  .benefit-grid,
  .plan-grid,
  .steps-grid,
  .destination-grid {
    grid-template-columns: 1fr;
  }

  .plan-card.featured {
    transform: none;
  }

  .destination-card {
    min-height: 260px;
  }
}

@media (max-width: 720px) {
  body {
    padding-bottom: 82px;
  }

  .container {
    width: min(100% - 32px, 1160px);
  }

  .nav {
    min-height: 70px;
  }

  .menu-toggle {
    display: flex;
  }

  .menu {
    position: absolute;
    top: 70px;
    right: 16px;
    left: 16px;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    overflow-y: auto;
    max-height: calc(100vh - 96px);
    border: 1px solid #e7eeec;
    border-radius: 15px;
    background: var(--white);
    box-shadow: var(--shadow);
  }

  .menu.open {
    display: flex;
  }

  .menu a {
    padding: 16px 20px;
  }

  .menu-dropdown > button {
    width: 100%;
    justify-content: space-between;
    padding: 16px 20px;
  }

  .menu-dropdown-panel {
    position: static;
    min-width: 0;
    border: 0;
    border-radius: 0;
    background: #f5fbfa;
    box-shadow: none;
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }

  .menu-dropdown-panel a {
    padding-left: 34px;
    font-size: 13px;
  }

  .nav-whatsapp {
    border-radius: 0;
  }

  .menu .nav-insurance-highlight,
  .menu .nav-portal-highlight {
    justify-content: center;
    margin: 10px 14px;
    border-radius: 18px;
  }

  .mobile-action-bar {
    position: fixed;
    right: 12px;
    bottom: 10px;
    left: 12px;
    z-index: 30;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    padding: 9px;
    border: 1px solid rgba(216, 235, 231, 0.9);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 16px 38px rgba(8, 41, 64, 0.18);
    backdrop-filter: blur(14px);
  }

  .mobile-action-bar a {
    display: grid;
    gap: 2px;
    min-height: 50px;
    place-items: center;
    padding: 8px 6px;
    border-radius: 16px;
    background: #effaf8;
    color: var(--navy);
    text-align: center;
  }

  .mobile-action-bar a:first-child {
    background: var(--navy);
    color: #ffffff;
  }

  .mobile-action-bar a:last-child {
    background: #20b970;
    color: #ffffff;
  }

  .mobile-action-bar span {
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .mobile-action-bar strong {
    font-size: 12px;
    line-height: 1.1;
  }

  .hero {
    min-height: auto;
    padding: 32px 0 42px;
    background-position: 56% center;
  }

  .migration-platform {
    padding: 48px 0;
  }

  .migration-entry {
    padding-top: 28px;
  }

  .migration-entry-panel {
    padding: 22px;
  }

  .migration-entry-actions {
    justify-content: stretch;
  }

  .migration-entry-actions .button {
    width: 100%;
  }

  .migration-hero h2 {
    font-size: clamp(36px, 12vw, 48px);
  }

  .migration-page .migration-hero h1 {
    font-size: clamp(40px, 13vw, 56px);
  }

  .migration-hero-card {
    min-height: 240px;
  }

  .visa-checklist-options,
  .document-resource-list {
    grid-template-columns: 1fr;
  }

  .visa-checklist-head,
  .visa-score {
    align-items: flex-start;
    flex-direction: column;
  }

  .spain-ai-buttons button,
  .visa-solution-actions a,
  .visa-solution-actions span {
    width: 100%;
    text-align: center;
  }

  .express-actions {
    flex-direction: column;
  }

  .hero-grid {
    gap: 22px;
  }

  .hero-copy h1 {
    max-width: 560px;
    margin-bottom: 14px;
    font-size: clamp(31px, 8vw, 40px);
    letter-spacing: -0.06em;
  }

  .hero-description {
    max-width: 540px;
    font-size: 14px;
    line-height: 1.55;
  }

  .hero .eyebrow {
    margin-bottom: 12px;
    font-size: 10px;
    letter-spacing: 0.2em;
  }

  .hero-proof {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 18px 0 0;
  }

  .hero-proof details {
    min-height: 40px;
    padding: 9px 10px;
    text-align: left;
  }

  .hero-proof summary {
    font-size: 11px;
  }

  .hero-proof small {
    font-size: 10px;
  }

  .hero-metrics {
    grid-template-columns: 1fr;
  }

  .hero-actions,
  .trust-row,
  .section-heading,
  .banner-content,
  .next-step-box,
  .footer-grid,
  .result-card,
  .selected-rate {
    flex-direction: column;
    align-items: stretch;
  }

  .business-lines,
  .main-services,
  .quick-intake,
  .platform-growth,
  .migration-focus,
  .study-abroad,
  .auto-quote-service,
  .premium-portal,
  .seo-resources {
    padding: 42px 0;
  }

  .business-line-grid,
  .main-service-grid,
  .platform-growth-grid,
  .migration-service-grid,
  .study-country-grid,
  .auto-quote-items,
  .premium-feature-grid,
  .seo-card-grid {
    grid-template-columns: 1fr;
  }

  .business-line-card,
  .main-service-card,
  .quick-intake-grid,
  .platform-growth-panel,
  .migration-focus-panel,
  .study-abroad-panel,
  .auto-quote-panel,
  .premium-portal-panel {
    padding: 22px;
    border-radius: 22px;
  }

  .business-line-card {
    min-height: auto;
  }

  .business-line-card h3 {
    font-size: 21px;
  }

  .main-service-card {
    min-height: auto;
  }

  .hero-main-photo {
    height: 310px;
  }

  .trust-row {
    gap: 22px;
  }

  .trust-row div + div::before {
    display: none;
  }

  .hero-actions .button,
  .planner-actions .button {
    width: 100%;
  }

  .hero-quote-card {
    width: 100%;
    padding: 18px;
    border-radius: 20px;
  }

  .hero-quote-card::before {
    top: -10px;
    right: 18px;
    font-size: 10px;
  }

  .hero-quote-head {
    grid-template-columns: 1fr;
    gap: 7px;
    margin-bottom: 13px;
  }

  .hero-quote-head h2 {
    font-size: 21px;
  }

  .hero-quote-card .online-status {
    width: fit-content;
  }

  .hero-quote-card input,
  .hero-quote-card select {
    min-height: 44px;
  }

  .hero-quote-note {
    display: none;
  }

  .student-banner-section {
    margin-top: -18px;
    padding: 18px 0 10px;
  }

  .student-banner {
    min-height: 150px;
    border-radius: 20px;
  }

  .student-banner img {
    height: 170px;
  }

  .student-banner-overlay {
    left: 18px;
    max-width: calc(100% - 36px);
    gap: 5px;
  }

  .student-banner-overlay small {
    padding: 5px 8px;
    font-size: 9px;
  }

  .student-banner-overlay strong {
    font-size: 28px;
  }

  .student-banner-overlay em {
    font-size: 12px;
    line-height: 1.35;
  }

  .student-banner-overlay b {
    padding: 8px 11px;
    font-size: 11px;
  }

  .next-step-panel {
    padding: 0 0 38px;
    background: #f2faf8;
  }

  .next-step-box {
    gap: 16px;
    padding: 20px;
    border-radius: 20px;
  }

  .next-step-box h2 {
    font-size: clamp(27px, 8vw, 34px);
  }

  .next-step-box p:not(.eyebrow) {
    font-size: 13px;
    line-height: 1.45;
  }

  .online-services,
  .quick-guides,
  .visa-planner,
  .reservation-service,
  .quote-hub,
  .insurance-story,
  .how-it-works,
  .legal-notes,
  .trust-payment,
  .plans,
  .quote-section,
  .steps {
    padding: 55px 0;
  }

  .virtual-appointment {
    padding: 55px 0;
  }

  .form-grid {
    grid-template-columns: 1fr;
  }

  .quote-form {
    padding: 27px 20px;
  }

  .rates-experience {
    padding: 24px 17px;
  }

  .region-rate-grid {
    grid-template-columns: 1fr;
  }

  .conversion-actions {
    grid-template-columns: 1fr;
  }

  .process-steps,
  .legal-grid {
    grid-template-columns: 1fr;
  }

  .process-steps article {
    grid-template-columns: auto 1fr;
    gap: 7px 12px;
    align-items: start;
    min-height: auto;
    padding: 16px;
  }

  .process-steps span {
    grid-row: span 2;
    width: 38px;
    height: 38px;
  }

  .process-steps h3 {
    font-size: 16px;
  }

  .process-steps p {
    font-size: 12px;
    line-height: 1.42;
  }

  .legal-panel {
    gap: 20px;
    padding: 22px;
    border-radius: 22px;
  }

  .trust-real-card,
  .payment-card {
    padding: 22px;
    border-radius: 22px;
  }

  .trust-real-card h2,
  .payment-card h2 {
    font-size: 28px;
  }

  .payment-methods span {
    padding: 9px 11px;
    font-size: 12px;
  }

  .legal-grid article:last-child {
    grid-column: auto;
  }

  .conversion-card {
    min-height: 132px;
  }

  .insurance-flow {
    grid-template-columns: 1fr;
  }

  .insurance-story-copy {
    padding: 0;
  }

  .insurance-visual figcaption {
    font-size: 15px;
  }

  .rate-choice {
    min-height: 84px;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }

  .rate-choice span,
  .rate-choice strong {
    margin-bottom: 0;
  }

  .rate-choice small {
    margin-left: auto;
  }

  .result-card {
    padding: 27px 22px;
  }

  .total-box {
    min-width: 0;
    text-align: left;
  }

  .footer-links {
    flex-direction: column;
    gap: 12px;
  }

  .online-heading,
  .online-head {
    flex-direction: column;
  }

  .service-path,
  .guide-card-grid {
    grid-template-columns: 1fr;
  }

  .guide-card {
    min-height: 0;
  }

  .service-path-card {
    min-height: 0;
  }

  .service-path-note {
    flex-direction: column;
  }

  .planner-result-head,
  .planner-actions,
  .migration-advice,
  .advisor-live-panel,
  .visa-extra-service {
    flex-direction: column;
    align-items: stretch;
  }

  .advisor-live-panel {
    grid-template-columns: 1fr;
  }

  .advisor-status {
    justify-content: center;
  }

  .advisor-gif {
    margin: 0 auto;
  }

  .planner-presentation,
  .planner-chat,
  .planner-result {
    padding: 24px 18px;
  }

  .planner-chat {
    background: linear-gradient(180deg, var(--navy) 0%, #0c5667 34%, #eef9f7 34%);
  }

  .planner-chat-form {
    flex-direction: column;
  }

  .planner-chat-form .button {
    width: 100%;
  }

  .planner-result-visual img {
    height: 220px;
    min-height: 220px;
  }

  .planner-benefits,
  .planner-transport div {
    grid-template-columns: 1fr;
  }

  .instant-action {
    right: 16px;
    bottom: 16px;
    left: auto;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .instant-action div {
    display: none;
  }

  .instant-action .button {
    min-height: 52px;
    border-radius: 28px;
    box-shadow: 0 14px 26px rgba(14, 124, 75, 0.27);
  }

  .ai-launcher {
    right: 16px;
    bottom: 18px;
  }

  .ai-assistant {
    right: 12px;
    bottom: 92px;
    left: 12px;
    width: auto;
    max-height: calc(100vh - 118px);
  }

  .ai-robot-agent {
    width: 68px;
    height: 78px;
  }

  .ai-greeting {
    padding: 10px 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ai-launcher,
  .ai-greeting,
  .robot-eye,
  .robot-antenna::before,
  .robot-badge {
    animation: none;
  }
}

@media (max-width: 520px) {
  .container {
    width: min(100% - 24px, 1160px);
  }

  .reservation-form,
  .planner-form,
  .delivery-panel {
    padding: 23px 17px;
  }

  .hero {
    padding-top: 25px;
  }

  .hero-copy h1 {
    font-size: clamp(28px, 10vw, 36px);
  }

  .hero-proof {
    grid-template-columns: 1fr;
  }

  .hero-quote-card {
    padding: 16px;
  }

  .hero-quote-card .quick-row {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .hero-quote-card label {
    gap: 5px;
    font-size: 12px;
  }

  .hero-quote-card input,
  .hero-quote-card select {
    min-height: 42px;
  }

  .hero-quote-head h2 {
    font-size: 19px;
  }

  .hero-photo {
    height: 225px;
    margin-right: 0;
    margin-left: 0;
  }

  .hero-photo figcaption {
    bottom: 57px;
    font-size: 12px;
  }

  .services-photo {
    height: 270px;
  }

  .services-photo strong {
    font-size: 26px;
  }

  .delivery-photo {
    width: calc(100% + 34px);
    margin: -23px -17px 21px;
  }

  .planner-row {
    grid-template-columns: 1fr;
  }

  .visa-planner .planner-grid {
    display: none;
  }

  .planner-chat {
    gap: 16px;
    padding: 17px 14px;
    border-radius: 17px;
  }

  .planner-chat-head h3 {
    font-size: 23px;
  }

  .planner-chat-head p {
    margin-bottom: 14px;
    font-size: 12px;
  }

  .planner-chat-messages {
    height: 178px;
    padding: 13px;
  }

  .planner-chat-message {
    max-width: 92%;
    padding: 10px 12px;
    font-size: 12px;
  }

  .planner-suggestion-box {
    padding: 7px 12px 0;
  }

  .planner-chat-suggestions button {
    padding: 5px 8px;
    font-size: 10px;
  }

  .planner-chat-form {
    padding: 9px 12px 13px;
  }

  .planner-result {
    margin-top: 16px;
    padding: 14px;
    border-radius: 17px;
  }

  .planner-result-head {
    gap: 10px;
    margin-bottom: 12px;
  }

  .planner-result-head h3 {
    margin: 6px 0 7px;
    font-size: 21px;
  }

  .planner-result-head p:last-child,
  .planner-result-head .planner-analysis-insight {
    font-size: 12px;
    line-height: 1.45;
  }

  .planner-result-head .planner-analysis-insight {
    margin-top: 9px;
    padding: 9px 10px;
  }

  .planner-advice {
    width: max-content;
    padding: 7px 10px;
    font-size: 10px;
  }

  .planner-result-showcase {
    grid-template-columns: 0.9fr 1.1fr;
    gap: 9px;
    margin-bottom: 12px;
  }

  .planner-result-visual {
    display: block;
    border-radius: 13px;
  }

  .planner-result-visual img {
    min-height: 190px;
    height: 100%;
  }

  .planner-result-visual figcaption {
    right: 10px;
    bottom: 10px;
    left: 10px;
    font-size: 10.5px;
  }

  .planner-city-grid {
    gap: 8px;
    margin-bottom: 12px;
  }

  .planner-city-grid article {
    padding: 11px;
    border-radius: 12px;
  }

  .planner-city-grid article div {
    margin-bottom: 6px;
  }

  .planner-city-grid strong {
    font-size: 15px;
  }

  .planner-city-grid p {
    margin-bottom: 0;
    font-size: 11px;
    line-height: 1.35;
  }

  .planner-city-grid small {
    display: none;
  }

  .planner-transport {
    margin-bottom: 11px;
    padding: 12px;
    border-radius: 12px;
  }

  .planner-transport h4 {
    margin-bottom: 8px;
    font-size: 14px;
  }

  .planner-transport p {
    gap: 7px;
    font-size: 11px;
    line-height: 1.35;
  }

  .planner-alert {
    display: none;
  }

  .planner-next-steps {
    gap: 11px;
    margin-top: 11px;
    padding: 12px;
    border-radius: 13px;
  }

  .planner-priority-actions {
    margin: 0 0 12px;
    padding: 11px;
  }

  .planner-priority-actions h4 {
    font-size: 15px;
  }

  .planner-action-buttons {
    grid-template-columns: repeat(2, 1fr);
    gap: 7px;
  }

  .planner-action-button {
    min-height: 39px;
    padding: 0 8px;
    border-radius: 12px;
    font-size: 11px;
  }

  .planner-next-steps h4 {
    margin: 8px 0 6px;
    font-size: 17px;
  }

  .planner-next-steps p {
    font-size: 11px;
    line-height: 1.45;
  }

  .planner-checklist {
    gap: 7px;
  }

  .planner-checklist li {
    gap: 8px;
    padding: 9px;
    border-radius: 10px;
  }

  .planner-checklist li > span {
    width: 20px;
    height: 20px;
    font-size: 11px;
  }

  .planner-checklist strong {
    margin-bottom: 2px;
    font-size: 12px;
  }

  .planner-checklist small {
    font-size: 10.5px;
    line-height: 1.32;
  }

  .planner-check-action {
    margin-top: 6px;
    padding: 6px 8px;
    font-size: 10.5px;
  }

  .migration-advice {
    gap: 11px;
    margin-top: 11px;
    padding: 12px;
    border-radius: 13px;
  }

  .migration-advice h4 {
    margin: 8px 0 5px;
    font-size: 16px;
  }

  .migration-advice p {
    font-size: 11px;
    line-height: 1.45;
  }

  .migration-advice .button,
  .planner-actions .button {
    width: 100%;
  }

  .inspiration-grid {
    grid-template-columns: 1fr;
  }

  .planner-offers {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    margin-top: 12px;
  }

  .planner-offers article {
    padding: 10px;
    border-radius: 11px;
  }

  .planner-offers span {
    margin-bottom: 4px;
    font-size: 10px;
  }

  .planner-offers strong {
    margin-bottom: 4px;
    font-size: 17px;
  }

  .planner-offers small {
    min-height: 0;
    margin-bottom: 8px;
    font-size: 10.5px;
    line-height: 1.25;
  }

  .planner-offers a {
    display: block;
    padding: 8px 6px;
    border-radius: 9px;
    background: #e8f6f6;
    font-size: 11px;
    text-align: center;
  }

  .planner-actions {
    margin-top: 12px;
  }

  .reservation-trust {
    flex-direction: column;
    align-items: stretch;
  }

  .reservation-tabs {
    gap: 7px;
  }

  .reservation-tab {
    min-height: 108px;
  }

  .reservation-tab strong {
    font-size: 13px;
  }

  .popular-mark {
    right: 5px;
    left: 5px;
  }

  .reservation-fields {
    grid-template-columns: 1fr;
  }

  .consular-price {
    align-items: start;
  }

  .hbx-head,
  .hbx-hotel {
    flex-direction: column;
  }

  .hbx-hotel > p {
    text-align: left;
  }

  .quick-row {
    grid-template-columns: 1fr;
  }

  .request-ready {
    flex-direction: column;
    align-items: stretch;
  }

  .live-flight-results {
    padding: 21px 16px;
  }

}

.hero-route-help {
  margin: -4px 0 10px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(10, 143, 150, 0.08);
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.45;
}

.visa-flight-options {
  margin: 18px 0;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 22px;
  background: rgba(10, 143, 150, 0.06);
}

.visa-flight-options[hidden] {
  display: none;
}

.visa-flight-options-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 14px;
}

.visa-flight-options-head h4 {
  margin: 5px 0 0;
  color: var(--navy);
}

.visa-flight-options-head > span {
  padding: 6px 10px;
  border-radius: 999px;
  background: #ffffff;
  color: var(--teal);
  font-weight: 800;
  font-size: 0.78rem;
}

.visa-flight-option-grid {
  display: grid;
  gap: 12px;
}

.visa-flight-choice {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 14px;
  align-items: center;
  width: 100%;
  padding: 14px;
  border: 1px solid rgba(10, 143, 150, 0.22);
  border-radius: 18px;
  background: #ffffff;
  color: var(--navy);
  text-align: left;
  cursor: pointer;
}

.visa-flight-choice strong,
.visa-flight-choice span,
.visa-flight-choice small {
  display: block;
}

.visa-flight-choice small {
  color: var(--muted);
  margin-top: 4px;
}

.visa-flight-choice em {
  font-style: normal;
  font-weight: 800;
  color: var(--teal);
}

.visa-flight-choice.selected {
  border-color: var(--teal);
  box-shadow: 0 16px 30px rgba(10, 143, 150, 0.14);
}
