:root {
    --verde-oscuro: #4a7c59;
    --verde-medio: #7da87b;
    --verde-suave: #eaf2ea;
    --rosa-medio: #e9a8a6;
    --rosa-suave: #faf0ee;
    --rosa-degrade: #f3e7e4;
    --crema: #fdfbf9;
    --texto: #333333;
    --texto-titulo: #222222;
    --texto-secundario: #666666;
    --texto-tenue: #888888;
    --borde: #eeeeee;
}

* { box-sizing: border-box; }

html { height: 100%; }
body {
    margin: 0;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    background: var(--crema);
    color: var(--texto);
    font-family: 'Montserrat', sans-serif;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, .logo {
    font-family: 'Playfair Display', Georgia, serif;
}

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

.topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 24px;
    border-bottom: 1px solid var(--borde);
    background: #fff;
    flex-shrink: 0;
}

.logo { font-size: 1.3rem; font-weight: 700; color: var(--texto-titulo); }
.logo .v { color: var(--verde-oscuro); }
.logo .r { color: var(--rosa-medio); }

.topbar-nav { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.topbar-link { font-size: 0.86rem; font-weight: 600; color: var(--texto-secundario); }
.topbar-link:hover { color: var(--texto-titulo); }
.topbar-link-cta {
    background: var(--verde-suave); color: var(--verde-oscuro);
    padding: 8px 14px; border-radius: 999px;
}
.topbar-link-cta:hover { color: var(--verde-oscuro); background: #dcedde; }

.bandera-icono {
    display: inline-block; vertical-align: middle;
    width: 20px; height: 14px; border-radius: 2px;
    object-fit: cover; margin-right: 2px;
}
.bandera-icono-titulo { width: 30px; height: 20px; border-radius: 3px; margin-right: 8px; }

.pais-switcher { position: relative; }
.pais-switcher summary {
    list-style: none;
    display: flex; align-items: center; gap: 6px;
    padding: 8px 14px;
    border: 1px solid var(--borde);
    border-radius: 999px;
    font-size: 0.85rem; font-weight: 600; color: var(--texto-titulo);
    cursor: pointer;
}
.pais-switcher summary::-webkit-details-marker { display: none; }
.pais-switcher[open] summary { border-color: var(--verde-medio); }
.pais-switcher-menu {
    position: absolute; top: calc(100% + 8px); right: 0;
    background: #fff; border: 1px solid var(--borde); border-radius: 12px;
    box-shadow: 0 12px 28px rgba(74,60,45,0.14);
    padding: 6px; min-width: 170px; z-index: 20;
}
.pais-switcher-item {
    display: flex; align-items: center; gap: 8px;
    padding: 9px 12px; border-radius: 8px; font-size: 0.9rem; font-weight: 600;
    color: var(--texto);
}
.pais-switcher-item:hover { background: var(--verde-suave); }
.pais-switcher-item-actual { color: var(--verde-oscuro); background: var(--verde-suave); }

main {
    flex: 1 0 auto;
    width: 100%;
    max-width: 1080px;
    margin: 0 auto;
    padding: 40px 24px 80px;
}

.footer {
    flex-shrink: 0;
    text-align: center;
    padding: 24px;
    color: var(--texto-tenue);
    font-size: 0.85rem;
    border-top: 1px solid var(--borde);
}

/* Hub de países */
.hub-hero {
    text-align: center;
    margin: -8px -8px 52px;
    padding: 56px 24px 48px;
    border-radius: 24px;
    background:
        radial-gradient(circle at 18% 20%, rgba(127,168,141,0.16), transparent 55%),
        radial-gradient(circle at 82% 30%, rgba(233,168,166,0.20), transparent 55%),
        var(--surface, #fff);
}
.hub-hero h1 {
    font-size: clamp(2rem, 4.4vw, 2.9rem);
    color: var(--texto-titulo);
    margin-bottom: 12px;
    text-wrap: balance;
}
.hub-hero p { color: var(--texto-secundario); font-size: 1.08rem; }

/* Home por país */
.home-hero-bandera { width: 40px; height: 27px; border-radius: 5px; margin-bottom: 14px; box-shadow: 0 2px 8px rgba(0,0,0,0.15); }
.home-hero-cta { display: inline-block; margin-top: 22px; }
.home-destacados { margin-bottom: 48px; }
.home-destacados-titulo { font-size: 1.5rem; color: var(--texto-titulo); text-align: center; margin-bottom: 24px; }
.ver-todos-link {
    display: block; text-align: center; margin-top: 28px;
    color: var(--verde-oscuro); font-weight: 700; font-size: 0.95rem;
}
.ver-todos-link:hover { text-decoration: underline; }

.paises-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
}
.pais-card {
    position: relative;
    background: #fff;
    border: 1px solid var(--borde);
    border-radius: 16px;
    padding: 30px 20px 26px;
    text-align: center;
    box-shadow: 0 1px 3px rgba(74,60,45,0.05);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
    overflow: hidden;
}
.pais-card::before {
    content: '';
    position: absolute; top: 0; left: 0; right: 0; height: 4px;
    background: linear-gradient(90deg, var(--verde-medio), var(--rosa-medio));
    opacity: 0; transition: opacity 0.18s ease;
}
.pais-card:hover { transform: translateY(-4px); box-shadow: 0 14px 32px rgba(74,60,45,0.12); border-color: transparent; }
.pais-card:hover::before { opacity: 1; }
.pais-bandera {
    display: block;
    width: 64px; height: 43px;
    margin: 0 auto 14px;
    border-radius: 6px;
    object-fit: cover;
    box-shadow: 0 2px 8px rgba(74,60,45,0.15);
}
.pais-nombre { font-weight: 600; color: var(--texto-titulo); font-size: 1.08rem; }
.pais-vacio {
    grid-column: 1 / -1;
    text-align: center;
    color: var(--texto-tenue);
    padding: 40px 0;
}

/* Buscador por país */
.buscador-head { margin-bottom: 24px; }
.buscador-head h1 { font-size: 1.8rem; color: var(--texto-titulo); margin-bottom: 4px; }
.buscador-head .volver { font-size: 0.85rem; color: var(--verde-oscuro); font-weight: 600; }

.hub-stat-confianza {
    display: inline-block; margin-top: 14px;
    background: var(--verde-suave); color: var(--verde-oscuro);
    font-weight: 600; font-size: 0.85rem;
    padding: 8px 16px; border-radius: 999px;
}

.filtros {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 28px;
}
.filtros select {
    padding: 9px 12px;
    border-radius: 8px;
    border: 1px solid var(--borde);
    background: #fff;
    font-family: inherit;
    font-size: 0.9rem;
}

.psicologos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
    gap: 26px;
}
.psicologo-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--borde);
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(74,60,45,0.05);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.psicologo-card:hover { transform: translateY(-4px); box-shadow: 0 18px 36px rgba(74,60,45,0.14); border-color: transparent; }

.psicologo-foto-wrap {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    background: var(--surface-2, #f5f2ee);
}
.psicologo-foto {
    width: 100%; height: 100%; display: block; object-fit: cover;
}
.psicologo-foto-vacia {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, var(--verde-oscuro), #a5566f);
    color: #fff; font-family: 'Playfair Display', serif; font-weight: 700; font-size: 3rem;
}
.psicologo-precio-burbuja {
    position: absolute; top: 14px; right: 14px;
    background: #fff; color: var(--texto-titulo); font-weight: 700; font-size: 0.9rem;
    padding: 7px 14px; border-radius: 999px;
    box-shadow: 0 4px 14px rgba(0,0,0,0.18);
}

.psicologo-card-body { padding: 22px 22px 24px; text-align: center; }

.psicologo-nombre-link { display: block; }
.psicologo-nombre { font-weight: 700; color: var(--texto-titulo); font-size: 1.15rem; }

.psicologo-linea {
    display: flex; align-items: center; justify-content: center; gap: 6px;
    color: var(--texto-secundario); font-size: 0.85rem; margin-top: 10px;
}
.psicologo-linea svg { color: var(--verde-medio); flex-shrink: 0; }
.psicologo-modalidad { gap: 14px; }
.psicologo-modalidad span { display: inline-flex; align-items: center; gap: 4px; }
.psicologo-modalidad svg { color: var(--rosa-medio); }

.psicologo-orientacion {
    font-family: 'Caveat', cursive;
    font-weight: 700;
    font-size: 1.55rem;
    color: var(--verde-oscuro);
    margin-top: 14px;
    line-height: 1.1;
}

.psicologo-chips {
    display: flex; flex-wrap: wrap; justify-content: center; gap: 7px;
    margin-top: 16px;
}
.psicologo-chip {
    background: var(--rosa-suave); color: #96355c;
    font-size: 0.76rem; font-weight: 600;
    padding: 5px 12px; border-radius: 999px;
}

.psicologo-card-botones { display: flex; flex-direction: column; gap: 9px; width: 100%; margin-top: 22px; }
.btn-secundario-card {
    display: block; text-align: center;
    background: #fff; color: var(--texto-titulo); font-weight: 700;
    border: 1px solid var(--borde);
    padding: 12px; border-radius: 11px; font-size: 0.92rem;
}
.btn-ver-perfil {
    display: block; text-align: center;
    background: var(--rosa-medio); color: #fff; font-weight: 700;
    padding: 13px; border-radius: 11px; font-size: 0.92rem;
}
.psicologo-card-botones .btn-whatsapp {
    display: flex; align-items: center; justify-content: center; gap: 7px;
    padding: 13px; border-radius: 11px; font-size: 0.92rem; font-weight: 700;
}
.sin-resultados {
    grid-column: 1 / -1;
    text-align: center;
    color: var(--texto-tenue);
    padding: 40px 0;
}

.mensajes { list-style: none; padding: 0; margin: 0 0 20px; }
.mensaje { padding: 10px 16px; border-radius: 8px; font-size: 0.88rem; margin-bottom: 8px; }
.mensaje-success { background: var(--verde-suave); color: var(--verde-oscuro); }
.mensaje-error { background: var(--rosa-suave); color: #c1467a; }

/* Perfil individual */
.volver { display: inline-block; margin-bottom: 20px; font-size: 0.85rem; color: var(--verde-oscuro); font-weight: 600; }
.perfil { max-width: 640px; }
.perfil-header { display: flex; gap: 20px; align-items: flex-start; margin-bottom: 28px; }
.perfil-foto {
    width: 108px; height: 108px; border-radius: 50%; object-fit: cover; flex-shrink: 0;
    box-shadow: 0 0 0 4px #fff, 0 4px 16px rgba(74,60,45,0.18);
}
.perfil-header h1 { font-size: 1.6rem; margin: 0 0 4px; color: var(--texto-titulo); }
.perfil-meta { color: var(--texto-secundario); font-size: 0.9rem; margin: 0 0 4px; }
.perfil-matricula { color: var(--texto-tenue); font-size: 0.82rem; margin: 0; }
.perfil-experiencia { color: var(--texto-tenue); font-size: 0.82rem; margin: 4px 0 0; }
.perfil-precio { color: var(--verde-oscuro); font-weight: 600; margin: 6px 0 0; }
.perfil-seccion { margin-bottom: 24px; }
.perfil-seccion h2 { font-size: 1.1rem; color: var(--texto-titulo); margin-bottom: 8px; }
.perfil-formacion { padding-left: 20px; color: var(--texto); }
.perfil-formacion li { margin-bottom: 4px; }
.btn-whatsapp {
    display: inline-block;
    background: #25d366;
    color: #fff;
    font-weight: 600;
    padding: 11px 20px;
    border-radius: 8px;
}

/* Portal (cuentas de profesionales) */
.portal-card {
    max-width: 520px;
    background: #fff;
    border: 1px solid var(--borde);
    border-radius: 14px;
    padding: 32px;
}

.registro-beneficios { max-width: 520px; margin-bottom: 20px; }
.registro-beneficios-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.registro-beneficios-lista li {
    display: flex; align-items: flex-start; gap: 14px;
    background: var(--verde-suave); border-radius: 12px; padding: 14px 16px;
}
.registro-beneficios-lista svg { color: var(--verde-oscuro); flex-shrink: 0; margin-top: 2px; }
.registro-beneficios-lista strong { color: var(--texto-titulo); }
.registro-beneficios-lista div { font-size: 0.9rem; color: var(--texto-secundario); line-height: 1.4; }
.portal-card h1 { font-size: 1.4rem; color: var(--texto-titulo); margin: 0 0 8px; }
.portal-subtitulo { font-size: 1rem; color: var(--texto-titulo); margin: 24px 0 10px; }
.portal-lead { color: var(--texto-secundario); font-size: 0.92rem; margin-bottom: 20px; }
.portal-lead-sm { color: var(--texto-secundario); font-size: 0.85rem; margin-top: 16px; display: block; }
.portal-form { display: flex; flex-direction: column; gap: 14px; }
.portal-field { display: flex; flex-direction: column; gap: 5px; }
.portal-field label { font-size: 0.85rem; font-weight: 600; color: var(--texto-titulo); }
.portal-field input, .portal-field textarea, .portal-field select {
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid var(--borde);
    font-family: inherit;
    font-size: 0.95rem;
}
.portal-error { color: #c1467a; font-size: 0.8rem; margin: 0; }
.portal-field-ayuda { color: var(--texto-tenue); font-size: 0.78rem; margin: 0; }
.portal-formacion-fila { display: flex; gap: 8px; align-items: center; margin-bottom: 8px; }
.portal-formacion-fila input[type="text"] { flex: 1; padding: 9px 10px; border-radius: 8px; border: 1px solid var(--borde); }
.portal-check-eliminar { font-size: 0.78rem; color: var(--texto-tenue); white-space: nowrap; }
.portal-inline-form { display: inline; }

.btn-primario, .btn-secundario {
    display: inline-block;
    text-align: center;
    padding: 11px 20px;
    border-radius: 8px;
    font-weight: 600;
    font-size: 0.92rem;
    border: none;
    cursor: pointer;
    font-family: inherit;
}
.btn-primario { background: var(--verde-oscuro); color: #fff; }
.btn-secundario { background: #fff; color: var(--verde-oscuro); border: 1px solid var(--verde-oscuro); }

.portal-estado { margin-bottom: 18px; }
.portal-badge { display: inline-block; padding: 6px 14px; border-radius: 999px; font-size: 0.85rem; font-weight: 600; }
.portal-badge-ok { background: var(--verde-suave); color: var(--verde-oscuro); }
.portal-badge-warn { background: var(--rosa-suave); color: #c1467a; }

.portal-checklist { list-style: none; padding: 0; margin: 0 0 24px; display: flex; flex-direction: column; gap: 6px; }
.portal-checklist li { font-size: 0.88rem; color: var(--texto-tenue); padding-left: 22px; position: relative; }
.portal-checklist li::before { content: '○'; position: absolute; left: 0; }
.portal-checklist li.ok { color: var(--texto); }
.portal-checklist li.ok::before { content: '●'; color: var(--verde-oscuro); }

.portal-acciones { display: flex; gap: 10px; flex-wrap: wrap; }
.portal-dev-box { background: var(--rosa-suave); border-radius: 10px; padding: 16px; margin-top: 8px; }
.portal-dev-box p { margin: 0 0 10px; font-size: 0.85rem; }
.perfil-acciones { display: flex; gap: 10px; flex-wrap: wrap; }

/* Wizard de reserva de turno */
.wizard-card {
    max-width: 720px;
    background: #fff;
    border: 1px solid var(--borde);
    border-radius: 16px;
    padding: 28px 32px 32px;
}
.wizard-body h1 { font-size: 1.4rem; color: var(--texto-titulo); margin: 0 0 4px; }
.wizard-subtitulo { color: var(--texto-secundario); font-size: 0.9rem; margin: 0 0 22px; }
.wizard-subtitulo-seccion { font-size: 1.05rem; color: var(--texto-titulo); margin: 24px 0 4px; }

.wizard-progreso { margin-bottom: 26px; }
.wizard-barra { height: 6px; background: var(--borde); border-radius: 999px; overflow: hidden; margin-bottom: 14px; }
.wizard-barra-fill { height: 100%; background: var(--texto-titulo); border-radius: 999px; transition: width 0.25s ease; }
.wizard-cabecera { display: flex; justify-content: space-between; font-size: 0.82rem; color: var(--texto-tenue); margin-bottom: 12px; }
.wizard-cabecera .wizard-paso-nombre { font-weight: 600; color: var(--texto-titulo); }
.wizard-pills { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.wizard-pill {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 5px 11px; border-radius: 999px; font-size: 0.76rem; font-weight: 600;
    background: var(--surface-2, #f5f2ee); color: var(--texto-tenue);
}
.wizard-pill-ok { background: var(--verde-suave); color: var(--verde-oscuro); }
.wizard-pill-actual { background: var(--texto-titulo); color: #fff; }
.wizard-sep { color: var(--texto-tenue); font-size: 0.8rem; }

.wizard-opciones { display: flex; flex-direction: column; gap: 10px; margin-bottom: 24px; }
.wizard-opcion {
    display: flex; align-items: center; gap: 12px;
    border: 1px solid var(--borde); border-radius: 12px; padding: 16px 18px;
    cursor: pointer; transition: border-color 0.15s ease, background 0.15s ease;
}
.wizard-opcion:hover { border-color: var(--verde-medio); }
.wizard-opcion-elegida { border-color: var(--verde-oscuro); background: var(--verde-suave); }
.wizard-opcion input[type="radio"] { width: 18px; height: 18px; accent-color: var(--verde-oscuro); flex-shrink: 0; }
.wizard-opcion-texto { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.wizard-opcion-texto strong { color: var(--texto-titulo); font-size: 0.95rem; }
.wizard-opcion-sub { color: var(--texto-tenue); font-size: 0.82rem; }
.wizard-opcion-precio { font-weight: 700; color: var(--texto-titulo); font-size: 1rem; white-space: nowrap; }

.wizard-nav { display: flex; justify-content: space-between; gap: 10px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--borde); }

.wizard-aviso-huso {
    display: inline-block; background: var(--rosa-suave); color: #96355c;
    font-size: 0.78rem; font-weight: 600; padding: 5px 12px; border-radius: 999px; margin-bottom: 18px;
}

.wizard-calendario-layout { display: grid; grid-template-columns: 1.1fr 1fr; gap: 24px; }
.calendario-cabecera { display: flex; justify-content: space-between; align-items: center; font-weight: 600; color: var(--texto-titulo); margin-bottom: 10px; }
.calendario-nav { color: var(--texto-secundario); font-size: 1.1rem; padding: 2px 8px; border-radius: 6px; }
.calendario-nav:hover { background: var(--borde); }
.calendario-dias-semana { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; font-size: 0.75rem; color: var(--texto-tenue); margin-bottom: 6px; }
.calendario-semana { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; margin-bottom: 3px; }
.calendario-dia {
    display: flex; align-items: center; justify-content: center;
    aspect-ratio: 1; border-radius: 8px; font-size: 0.85rem;
}
.calendario-dia-disponible { background: var(--verde-suave); color: var(--verde-oscuro); font-weight: 600; }
.calendario-dia-disponible:hover { background: var(--verde-medio); color: #fff; }
.calendario-dia-elegido { background: var(--texto-titulo) !important; color: #fff !important; }
.calendario-dia-no-disponible { color: #c1467a; text-decoration: line-through; opacity: 0.6; }
.calendario-dia-fuera { color: var(--texto-tenue); opacity: 0.45; }
.calendario-leyenda { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 14px; font-size: 0.75rem; color: var(--texto-tenue); }
.calendario-leyenda span { display: inline-flex; align-items: center; gap: 5px; }
.calendario-punto { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.calendario-punto-disponible { background: var(--verde-oscuro); }
.calendario-punto-no-disponible { background: #c1467a; }
.calendario-punto-fuera { background: var(--texto-tenue); }

.calendario-slots-cabecera { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 14px; }
.calendario-duracion { font-size: 0.78rem; color: var(--texto-tenue); }
.calendario-slots-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.calendario-slot {
    padding: 10px; border-radius: 8px; border: 1px solid var(--borde); background: #fff;
    font-family: inherit; font-size: 0.88rem; cursor: pointer; font-variant-numeric: tabular-nums;
}
.calendario-slot:hover:not(:disabled) { border-color: var(--verde-oscuro); color: var(--verde-oscuro); }
.calendario-slot:disabled { background: var(--surface-2, #f5f2ee); color: var(--texto-tenue); text-decoration: line-through; cursor: not-allowed; }

.wizard-resumen { background: var(--surface-2, #f8f6f3); border-radius: 12px; padding: 16px 18px; margin-bottom: 22px; }
.wizard-resumen-titulo { display: block; font-size: 0.8rem; color: var(--texto-tenue); text-transform: uppercase; letter-spacing: 0.03em; margin-bottom: 8px; }
.wizard-resumen-fila { display: flex; justify-content: space-between; font-size: 0.9rem; color: var(--texto); padding: 3px 0; }
.wizard-resumen-precio { font-weight: 700; color: var(--verde-oscuro); }
.wizard-nota-pago { font-size: 0.82rem; color: var(--texto-tenue); margin: -4px 0 4px; }

.wizard-confirmado { text-align: center; padding: 44px 32px; }
.wizard-check-grande { display: inline-flex; color: var(--verde-oscuro); margin-bottom: 12px; }
.wizard-confirmado h1 { font-size: 1.5rem; margin: 0 0 10px; }

/* FAQ */
.faq-head { margin-bottom: 36px; }
.faq-head h1 { font-size: 1.8rem; color: var(--texto-titulo); margin-bottom: 6px; }
.faq-grupo { max-width: 720px; margin-bottom: 36px; }
.faq-grupo h2 { font-size: 1.2rem; color: var(--verde-oscuro); margin-bottom: 14px; }
.faq-item {
    background: #fff; border: 1px solid var(--borde); border-radius: 12px;
    padding: 4px 18px; margin-bottom: 10px;
}
.faq-item summary {
    padding: 14px 0; font-weight: 600; color: var(--texto-titulo);
    cursor: pointer; list-style: none;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: '+'; float: right; color: var(--texto-tenue); font-weight: 400; }
.faq-item[open] summary::after { content: '−'; }

/* Términos y Condiciones */
.terminos { max-width: 720px; }
.terminos h1 { font-size: 1.8rem; color: var(--texto-titulo); margin-bottom: 4px; }
.terminos-fecha { color: var(--texto-tenue); font-size: 0.85rem; margin-bottom: 28px; }
.terminos-seccion { margin-bottom: 26px; }
.terminos-seccion h2 { font-size: 1.1rem; color: var(--verde-oscuro); margin-bottom: 10px; }
.terminos-seccion p, .terminos-seccion li { color: var(--texto-secundario); line-height: 1.6; font-size: 0.95rem; }
.terminos-seccion ul { padding-left: 20px; margin: 0; display: flex; flex-direction: column; gap: 8px; }

.terminos-planes-pais { margin-top: 22px; }
.terminos-planes-pais h3 { display: flex; align-items: center; font-size: 1rem; color: var(--texto-titulo); margin-bottom: 10px; }
.terminos-planes-pais .bandera-icono { width: 24px; height: 16px; border-radius: 2px; margin-right: 8px; }

/* Placas de precio (usadas acá y en el alta de profesionales) */
.terminos-planes, .placas-precio { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 8px; }
@media (max-width: 560px) { .terminos-planes, .placas-precio { grid-template-columns: 1fr; } }
.terminos-plan, .placa-precio {
    border: 1px solid var(--borde); border-radius: 12px; padding: 18px;
    background: var(--crema);
}
.terminos-plan-premium, .placa-precio-premium {
    border-color: var(--verde-medio); background: var(--verde-suave);
}
.terminos-plan-nombre, .placa-precio-nombre {
    font-weight: 700; color: var(--texto-titulo); font-size: 0.95rem; margin: 0 0 4px;
}
.terminos-plan-precio, .placa-precio-monto {
    font-size: 1.5rem; font-weight: 700; color: var(--verde-oscuro); margin: 0 0 8px;
}
.terminos-plan-precio span, .placa-precio-monto span {
    font-size: 0.8rem; font-weight: 500; color: var(--texto-tenue);
}
.terminos-plan-incluye, .placa-precio-incluye {
    font-size: 0.85rem !important; color: var(--texto-secundario); margin: 0 !important; line-height: 1.5 !important;
}

/* Footer */
.footer {
    border-top: 1px solid var(--borde); margin-top: 48px; padding: 28px 5%;
    display: flex; flex-wrap: wrap; gap: 20px; align-items: center; justify-content: space-between;
    font-size: 0.85rem; color: var(--texto-tenue);
}
.footer-links { display: flex; flex-wrap: wrap; gap: 16px; }
.footer-links a { color: var(--texto-tenue); text-decoration: none; }
.footer-links a:hover { color: var(--verde-oscuro); }
.footer-redes { display: flex; gap: 12px; }
.footer-redes a { color: var(--texto-tenue); display: inline-flex; }
.footer-redes a:hover { color: var(--verde-oscuro); }
.faq-item p { margin: 0 0 16px; color: var(--texto-secundario); font-size: 0.92rem; line-height: 1.55; }

@media (max-width: 480px) {
    main { padding: 28px 16px 60px; }
    .portal-card { padding: 22px; }
    .perfil-header { flex-direction: column; align-items: flex-start; }
    .wizard-card { padding: 20px; }
    .wizard-calendario-layout { grid-template-columns: 1fr; }
    .wizard-pills { display: none; }
    .topbar { flex-direction: column; align-items: flex-start; gap: 12px; }
    .topbar-nav { width: 100%; justify-content: space-between; }
}
