/* Tema "Prime Care", fiel a https://primecare.framer.website/ : Geist en mayúsculas, botón en pastilla con círculo azul,
   bloques blancos de radio 12 a 16 sobre gris, secciones a todo lo ancho que alternan blanco y gris, consultorio en degradado
   azul con franjas y pie azul con tarjeta blanca. Las secciones son las nuestras: solo cambia cómo se ven. */
.tema-prime { --bg: #f2f4f7; --ink: #1d2838; --muted: #4b5563; --line: #dfe3ea; --navy: #051c34; --accent: #2a6ff0; --accent-deep: #1e58cf; --accent-soft: #e3ecff; --radius: 16px; --head: 'Geist', 'Inter', system-ui, sans-serif; --ancho: max(var(--pad), calc((100% - 1240px) / 2)); font-family: 'Geist', Inter, system-ui, sans-serif; font-size: 16px; line-height: 1.5; }
.tema-prime h1, .tema-prime h2, .tema-prime h3 { font-weight: 600; letter-spacing: 0; line-height: 1.1; }
.tema-prime h2 { font-size: clamp(1.9rem, 1.45rem + 1.5vw, 2.5rem); }
.tema-prime h3 { font-weight: 500; font-size: 1rem; line-height: 1.2; }
.tema-prime .sec-head h2, .tema-prime .price-intro h2 { max-width: 22ch; }

/* Enlaces de texto: --accent no llega a AA sobre los fondos grises */
.tema-prime .sec-head a:not(.btn), .tema-prime .g-meta a { color: var(--accent-deep); }

/* Entradas: aparecen desenfocadas y se enfocan, como en la plantilla */
.js .tema-prime [data-reveal] { filter: blur(12px); transition: opacity 1s var(--ease), transform 1s var(--ease), filter 1s var(--ease); }
.js .tema-prime [data-reveal].in, .rv-done .tema-prime [data-reveal] { filter: none; }
@media (prefers-reduced-motion: reduce), print { .js .tema-prime [data-reveal] { filter: none; } }

/* Botón: una sola pastilla con el círculo azul de la flecha adentro. El dibujo va en pseudoelementos para no tocar el texto. */
.tema-prime main .btn { position: relative; isolation: isolate; min-height: 48px; padding: 0 54px 0 22px; background: none; color: #fff; box-shadow: none; font-weight: 500; font-size: 15px; }
.tema-prime main .btn .ico { display: none; }
.tema-prime main .btn::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: 999px; background: var(--navy); transition: background-color 0.25s; }
.tema-prime main .btn::after { content: ""; position: absolute; top: 5px; right: 5px; width: 38px; height: 38px; border-radius: 50%; background: var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E") center / 16px no-repeat; transition: transform 0.35s var(--ease); }
.tema-prime main .btn:hover { background: none; box-shadow: none; transform: none; }
.tema-prime main .btn:hover::after { transform: rotate(45deg); }
.tema-prime main .btn-ghost { color: var(--ink); }
.tema-prime main .btn-ghost::before { background: #e4e8ef; }
.tema-prime main .duo-contact .btn-light { color: var(--ink); }
.tema-prime main .duo-contact .btn-light::before { background: #fff; }
.tema-prime main .btn-glass::before { background: rgba(255, 255, 255, 0.2); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }

/* Barra transparente a todo lo ancho; se vuelve sólida al bajar */
.tema-prime .nav { top: 0; width: 100%; border-radius: 0; padding: 14px var(--ancho); background: transparent; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; transition: background-color 0.3s, box-shadow 0.3s; }
.tema-prime .nav.scrolled { background: rgba(242, 244, 247, 0.92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: 0 1px 0 var(--line); }
.tema-prime .nav-links { margin-inline: auto; }
.tema-prime .nav-links a { color: var(--ink); }
.tema-prime .nav .btn-sm { background: transparent; color: var(--accent-deep); box-shadow: inset 0 0 0 1.5px var(--accent); }
.tema-prime .nav .btn-sm:hover { background: var(--accent); color: #fff; }

/* Portada: texto a la izquierda, doctor sin marco a la derecha y firma enorme detrás */
.hero-prime { position: relative; display: grid; grid-template-columns: 1.1fr 1fr; align-items: end; gap: 24px; max-width: none; margin: 0; padding: 104px var(--ancho) 0; width: 100%; overflow: hidden; }
.hero-prime .hero-script { top: 96px; left: calc(var(--ancho) - 24px); color: rgba(255, 255, 255, 0.95); -webkit-text-stroke: 1px #dfe4ef; z-index: 0; }
.hero-prime .hero-copy { position: relative; z-index: 1; padding-bottom: 48px; }
.hero-prime h1 { font-size: clamp(2.6rem, 1.5rem + 3.4vw, 4.25rem); line-height: 1.1; margin-top: 20px; }
.hero-prime .hero-name { color: var(--ink); font-weight: 500; font-size: 1.1rem; }
.hero-prime .chip { box-shadow: none; }
.h1-flower { display: inline-block; width: 0.62em; height: 0.62em; margin-left: 0.08em; vertical-align: -0.04em; stroke: var(--accent); stroke-width: 2.6; fill: none; animation: girar 14s linear infinite; }
@keyframes girar { to { transform: rotate(360deg); } }
.prime-proof { width: fit-content; margin-top: 26px; }
.prime-proof .hero-proof { margin: 0; }
.prime-proof .hero-proof p { padding: 8px 20px 8px 14px; border-radius: 12px; background: linear-gradient(90deg, #fff, rgba(255, 255, 255, 0)); }
.hero-prime .cedula { background: none; padding: 0; margin-top: 22px; font-size: 15px; }
.prime-photo { position: relative; margin: 0; align-self: end; height: min(82svh, 720px); }
.prime-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 10%; -webkit-mask-image: radial-gradient(ellipse 54% 64% at 50% 48%, #000 58%, transparent 98%); mask-image: radial-gradient(ellipse 54% 64% at 50% 48%, #000 58%, transparent 98%); }
.prime-photo .float { left: 6%; bottom: 14%; border-radius: 12px; }

/* Contacto rápido: foto con botones y tarjeta blanca con líneas finas */
.tema-prime .duo { max-width: none; margin: 0; padding: 20px var(--ancho) 96px; grid-template-columns: 1fr 1.15fr; }
.tema-prime .duo-card { border-radius: var(--radius); min-height: 340px; }
.tema-prime .duo-contact h2, .tema-prime .duo-info h2 { font-size: 1.5rem; font-weight: 500; }
.tema-prime .duo-local { display: flex; background: #fff repeating-radial-gradient(circle at 100% 100%, transparent 0 13px, rgba(42, 111, 240, 0.07) 13px 14px); }
.tema-prime .duo-info { flex: 1; min-width: 0; padding: 32px; }
.duo-map { order: 2; flex: 0 0 46%; margin: 12px 12px 12px 0; border-radius: 12px; overflow: hidden; background: #e4e8ef; }
.duo-map iframe { display: block; width: 100%; height: 100%; min-height: 240px; border: 0; pointer-events: none; }
.tema-prime .duo-info h2 { margin-bottom: auto; }

/* Cifras: mosaico con una foto alta al centro */
.tema-prime .stats { grid-template-columns: 1fr 1.35fr 1fr; grid-auto-rows: minmax(170px, auto); gap: 16px; max-width: none; margin: 0; padding: 0 var(--ancho) 112px; }
.tema-prime .stats p { display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: 24px 28px; border-radius: 12px; background: #fff; }
.tema-prime .stats strong { font-weight: 600; font-size: clamp(2.4rem, 1.9rem + 1.6vw, 3.4rem); line-height: 1.1; letter-spacing: -0.01em; color: var(--ink); }
.tema-prime .stats span { font-size: 15px; color: var(--muted); }
.tema-prime .stats p:nth-child(1) { background: var(--navy); }
.tema-prime .stats p:nth-child(1) strong, .tema-prime .stats p:nth-child(1) span { color: #fff; }
.tema-prime .stats p:nth-child(5) { background: linear-gradient(120deg, #fff 40%, #bcd2ff 72%, #8fb3fb); }
.tema-prime .stats p:nth-child(5) span { color: var(--ink); }
.stats-photo { grid-column: 2; grid-row: 1 / span 2; margin: 0; border-radius: 12px; overflow: hidden; }
.stats-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 12%; }

/* Sobre mí: título con botón a la derecha, pestañas subrayadas y foto */
.tema-prime section.about { max-width: none; margin: 0; padding: 0 var(--ancho) 112px; }
.tema-prime .about .sec-head { padding-bottom: 28px; align-items: center; }
.tema-prime .about-body { grid-template-columns: 1fr 1.1fr; gap: 48px; }
.tema-prime .tabs { padding-right: 24px; }
.tema-prime .tab-list { display: flex; gap: 28px; padding: 0; border-radius: 0; background: none; box-shadow: inset 0 -1px 0 var(--line); }
.tema-prime .tab-list button { padding: 10px 2px; border-radius: 0; }
.tema-prime .tab-list button[aria-selected="true"] { background: none; color: var(--accent-deep); box-shadow: inset 0 -2px 0 var(--accent); }
.tema-prime .tab-photos { border-radius: 12px; }
.tema-prime .datos div { border-radius: 12px; }
.tema-prime .firma { font-weight: 500; }
.tema-prime .firma span { font-family: inherit; }
.tema-prime .compromiso { grid-template-columns: minmax(0, 1fr); gap: 28px; }
.tema-prime .compromiso h3 { max-width: none; text-align: center; font-weight: 600; font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
.tema-prime .promesas { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tema-prime .promesas li { border-radius: 12px; font-size: 1rem; }

/* Servicios: título centrado con línea; dos tarjetas, foto y cuatro tarjetas abajo */
.tema-prime section.services { max-width: none; margin: 0; padding: 0 var(--ancho) 112px; }
.tema-prime .services .sec-head { flex-direction: column; align-items: center; text-align: center; padding-bottom: 32px; margin-bottom: 32px; border-bottom: 1px solid var(--line); }
.tema-prime .serv-card { min-height: 0; padding: 24px; border-radius: 12px; background: #fff; }
.tema-prime .serv-card h3 { margin-top: 6px; padding-right: 36px; transition: color 0.25s; }
.tema-prime .serv-card:nth-of-type(n+3) { order: 2; }
.tema-prime .serv-photo { order: 1; position: relative; border-radius: 12px; min-height: 0; }
.tema-prime .serv-photo img { position: absolute; inset: 0; }
.tema-prime .serv-photo::after { content: ""; position: absolute; right: 22px; bottom: 22px; width: 56px; height: 56px; border-radius: 50%; background: var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / 24px no-repeat; }
.tema-prime .serv-n::before { content: none; }
.tema-prime .serv-card h3 { line-height: 1.25; }
.tema-prime .serv-dark { background: #fff; color: var(--ink); }
.tema-prime .serv-dark p, .tema-prime .serv-dark .serv-n { color: var(--muted); }
/* En la plantilla la tarjeta no lleva flecha: toda la tarjeta es el enlace para agendar */
.tema-prime .serv-link, .tema-prime .serv-card:hover .serv-link, .tema-prime .serv-dark .serv-link { inset: 0; width: auto; height: auto; border-radius: 12px; background: none; transform: none; }
.tema-prime .serv-link .ico { display: none; }
/* Señal al pasar el cursor: marco azul y círculo con flecha, para decir que la tarjeta lleva a agendar */
.tema-prime .serv-card { transition: transform 0.35s var(--ease), box-shadow 0.25s; }
.tema-prime .serv-link::after { content: ""; position: absolute; top: 16px; right: 16px; width: 38px; height: 38px; border-radius: 50%; background: var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E") center / 16px no-repeat; opacity: 0; transform: scale(0.7); transition: opacity 0.2s, transform 0.3s var(--ease); }
.tema-prime .serv-card:hover .serv-link::after, .tema-prime .serv-link:focus-visible::after { opacity: 1; transform: none; }
.tema-prime .serv-card:hover { box-shadow: inset 0 0 0 1.5px var(--accent), 0 18px 40px -26px rgba(5, 28, 52, 0.45); }
.tema-prime .serv-card:hover h3 { color: var(--accent-deep); }

/* Precios: banda blanca; texto a la izquierda y tarjetas grises apiladas con precio azul */
.tema-prime section.pricing { max-width: none; margin: 0 0 112px; padding: 96px var(--ancho); background: #fff; grid-template-columns: minmax(0, 1fr); gap: 40px; }
/* Sin la lista de la plantilla, la columna izquierda quedaba vacía: título centrado y las tres tarjetas en fila */
.tema-prime .price-intro { text-align: center; }
.tema-prime .price-intro h2 { max-width: none; }
.tema-prime .price-intro > p { margin-top: 12px; padding-bottom: 32px; max-width: none; border-bottom: 1px solid var(--line); }
.tema-prime .price-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.tema-prime .price-card, .tema-prime .price-main { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto 1fr auto; grid-template-areas: "price" "h" "p" "btn"; gap: 12px; padding: 28px; border-radius: var(--radius); background: var(--bg); color: var(--ink); }
.tema-prime .price-card:hover { transform: none; }
.tema-prime .price-card .price, .tema-prime .price-main .price { display: flex; justify-content: space-between; align-items: center; gap: 16px; justify-self: stretch; font-weight: 600; font-size: clamp(2.2rem, 1.4rem + 1.7vw, 3rem); line-height: 1.2; letter-spacing: -0.03em; color: var(--accent-deep); }
.tema-prime .price-card .price small, .tema-prime .price-main .price small { padding: 8px 24px; border-inline: 1px solid #c9d0db; font-family: inherit; font-size: 14px; letter-spacing: 0; color: var(--accent-deep); }
.tema-prime .price-card h3 { font-size: 1.05rem; }
.tema-prime .price-main > p:not(.price), .tema-prime .price-card > p:not(.price) { color: var(--muted); max-width: none; }
/* Aquí el botón es la pastilla azul lisa de la plantilla */
.tema-prime main .price-card .btn { justify-self: start; padding: 0 24px; color: #fff; }
.tema-prime main .price-card .btn::before { inset: 0; background: var(--accent); }
.tema-prime main .price-card .btn:hover::before { background: var(--accent-deep); }
.tema-prime main .price-card .btn::after { content: none; }

/* Consultorio: degradado azul, título gigante, fotos en una sola pieza y franjas al final */
.tema-prime .inst { position: relative; max-width: none; margin: -112px 0 0; padding: 96px var(--ancho) 200px; background: linear-gradient(180deg, #fff 0%, #dbe7ff 22%, #6f9bf7 62%, #2a5fdc 100%); }
.tema-prime .inst::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 88px; background: repeating-linear-gradient(180deg, transparent 0 8px, rgba(255, 255, 255, 0.92) 8px 11px); }
.tema-prime .inst .sec-head { justify-content: center; text-align: center; margin-bottom: 32px; }
.tema-prime .inst .sec-head h2 { max-width: none; font-size: clamp(2.2rem, 1.2rem + 3.4vw, 4rem); color: var(--accent-deep); }
.tema-prime .inst-grid { gap: 0; border-radius: var(--radius); overflow: hidden; }
.tema-prime .inst-grid figure { border-radius: 0; aspect-ratio: 1; }

/* Testimonios: título y flechas a la izquierda, retrato al centro y cita a la derecha */
.tema-prime section.reviews { display: grid; grid-template-columns: 1fr 2.5fr; gap: 0 40px; background: #fff; max-width: none; margin: 0; padding: 104px var(--ancho); }
.tema-prime .reviews .sec-head { flex-direction: column; align-items: stretch; grid-row: 1; margin: 0; }
.tema-prime .reviews .sec-head h2 { padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.tema-prime .g-score { width: fit-content; background: var(--bg); }
.tema-prime .g-num { font-weight: 600; }
.rev-arrows { grid-row: 2; grid-column: 1; align-self: end; display: flex; gap: 10px; margin-top: 24px; }
.rev-arrows button { width: 44px; height: 44px; border-radius: 50%; border: 0; background: #fff; box-shadow: inset 0 0 0 1.5px var(--line); color: var(--ink); cursor: pointer; display: grid; place-items: center; transition: background-color 0.2s, color 0.2s; }
.rev-arrows button:hover { background: var(--accent); color: #fff; box-shadow: none; }
.tema-prime .rev-track { grid-row: 1 / span 2; grid-column: 2; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; gap: 0; }
.tema-prime .rev-card { flex: 0 0 100%; scroll-snap-align: start; display: grid; grid-template-columns: 130px minmax(0, 1fr); grid-template-rows: auto auto auto; align-content: center; align-items: center; gap: 12px 36px; background: var(--bg); padding: 36px 40px; border-radius: var(--radius); }
.tema-prime .rev-card:hover { transform: none; }
.tema-prime .rev-top { display: contents; }
/* Sin fotos de pacientes: el retrato de la plantilla se vuelve un monograma con sus iniciales */
.tema-prime .rev-av { grid-column: 1; grid-row: 1 / span 3; align-self: center; width: 130px; height: 130px; border-radius: var(--radius); background: linear-gradient(160deg, #5b88ef, var(--accent)); color: #fff; font: 600 2.75rem/1 var(--head); }
.tema-prime .rev-card blockquote { grid-column: 2; grid-row: 1; font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.25rem); line-height: 1.45; font-weight: 500; }
.tema-prime .rev-card blockquote::before { content: "\201C\201C"; display: block; font: 700 64px/0.6 Georgia, serif; letter-spacing: -0.12em; color: var(--accent); margin-bottom: 18px; }
.tema-prime .rev-stars { grid-column: 2; grid-row: 2; }
.tema-prime .rev-top figcaption { grid-column: 2; grid-row: 3; }
.tema-prime .rev-top strong { text-transform: uppercase; font-weight: 500; font-size: 1rem; }
.tema-prime .g-sm { display: none; }

/* Agenda: foto alta a la izquierda y formulario claro a la derecha */
.tema-prime .book { max-width: none; margin: 0; padding: 104px var(--ancho); }
.tema-prime .book-card { display: grid; grid-template-columns: 0.9fr 1.3fr; gap: 0 40px; background: transparent; color: var(--ink); padding: 0; border-radius: 0; overflow: visible; }
.tema-prime .book-card::after { display: none; }
.book-photo { grid-row: 1 / span 3; width: 100%; height: 100%; min-height: 460px; object-fit: cover; object-position: 55% 50%; border-radius: var(--radius); }
.tema-prime .book-head { flex-direction: column; align-items: flex-start; }
.tema-prime .book-head h2 { max-width: 20ch; }
.tema-prime .book-head p { max-width: none; }
.tema-prime .book-head p, .tema-prime .book-foot { color: var(--muted); }
.tema-prime .book-hint a { color: var(--accent-deep); }
.tema-prime .booker { grid-template-columns: minmax(0, 1fr); margin-top: 28px; }
.tema-prime .field { min-height: 72px; border-radius: 8px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); }
.tema-prime .field:hover { background: #fff; }
.tema-prime .field:focus-within { box-shadow: inset 0 0 0 2px var(--accent); }
.tema-prime .field span, .tema-prime .chev { color: var(--muted); }
.tema-prime .field select { color: var(--ink); }
.tema-prime main .send { width: fit-content; }
.tema-prime .book-tel { margin-top: 4px; font-size: 1.25rem; font-weight: 500; color: var(--ink); }
.tema-prime .book-tel a { font-size: 1.5rem; font-weight: 600; white-space: nowrap; color: var(--accent-deep); }
.tema-prime .book-foot { margin-top: 28px; }

/* Ubicación: la plantilla no la trae. Mapa a todo lo ancho con una tarjeta blanca encima, del lado que no tapa el punto ni los controles */
.tema-prime section.location { grid-template-columns: minmax(0, 1fr); gap: 0; max-width: none; margin: 0; padding: 96px var(--ancho); background: #fff; }
.tema-prime .loc-map { grid-area: 1 / 1; height: 660px; border-radius: var(--radius); }
.tema-prime .loc-info { grid-area: 1 / 1; z-index: 1; justify-self: end; align-self: center; width: min(440px, calc(100% - 64px)); margin: 32px; padding: 32px; border-radius: var(--radius); background: #fff; box-shadow: 0 28px 60px -32px rgba(5, 28, 52, 0.55); }
.tema-prime .loc-info h2 { padding-bottom: 18px; margin-bottom: 20px; border-bottom: 1px solid var(--line); font-size: clamp(1.6rem, 1.3rem + 0.8vw, 2rem); }
.tema-prime .loc-addr { margin-top: 0; }
.tema-prime .hours { margin-top: 16px; border-radius: 12px; background: var(--bg); }
.tema-prime .hours th, .tema-prime .hours td { padding: 10px 16px; }
.tema-prime .loc-actions { margin-top: 20px; gap: 10px; }
.tema-prime .loc-actions .btn { flex: 1 1 100%; justify-content: flex-start; }

/* Preguntas: banda gris; acordeón con línea y círculo con flecha; la abierta se enmarca en azul */
.tema-prime section.faq { max-width: none; margin: 0; padding: 96px var(--ancho); background: #e9edf3; }
.tema-prime .faq-list { gap: 0; }
.tema-prime details { border-radius: 12px; background: transparent; box-shadow: inset 0 -1px 0 #d3d9e2; }
.tema-prime details[open] { background: rgba(255, 255, 255, 0.45); box-shadow: inset 0 0 0 1.5px var(--accent); }
.tema-prime summary { padding: 18px 12px; font-size: 1.15rem; font-weight: 500; }
.tema-prime details[open] summary { padding-inline: 16px; }
.tema-prime summary .ico { width: 36px; height: 36px; padding: 9px; background: #fff; }
.tema-prime details[open] summary .ico { transform: rotate(180deg); background: var(--accent); color: #fff; }
.tema-prime details p { padding: 0 16px 20px; }

/* Pie: degradado azul con tarjeta blanca */
.tema-prime .foot { background: linear-gradient(180deg, var(--bg) 6%, #b9d0ff 34%, var(--accent) 70%, var(--accent-deep) 85%); color: var(--ink); padding: 112px var(--ancho) 28px; }
.tema-prime .foot-top { max-width: none; background: #fff; border-radius: var(--radius); padding: 40px; grid-template-columns: 1.6fr 1fr 1fr; min-height: 300px; }
.tema-prime .foot ul { grid-template-columns: 1fr; align-content: start; }
.tema-prime .foot li a { padding: 6px 0; }
.tema-prime .foot .brand-light { color: var(--ink); }
.tema-prime .foot-top a:hover { color: var(--accent-deep); }
.tema-prime .foot-legal { max-width: none; margin-top: 56px; color: #fff; border-top: 0; font-size: 14px; }
.tema-prime .foot-legal a:focus-visible { outline-color: #fff; }
.tema-prime .foot-legal a, .tema-prime .foot-legal a:hover { color: #fff; }

@media (max-width: 1100px) {
  .tema-prime .nav { background: rgba(242, 244, 247, 0.92); }
  .tema-prime .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stats-photo { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 16 / 9; order: -1; }
  .tema-prime .serv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tema-prime .promesas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tema-prime .price-cards { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 860px) {
  .tema-prime { font-size: 17px; }
  .tema-prime .contact-row { flex-wrap: wrap; }
  .hero-prime { grid-template-columns: minmax(0, 1fr); padding-top: 100px; }
  .prime-photo { height: 64svh; }
  .tema-prime .duo, .tema-prime .about-body, .tema-prime section.pricing, .tema-prime section.location, .tema-prime section.faq { grid-template-columns: minmax(0, 1fr); }
  .tema-prime .duo { padding-bottom: 72px; }
  .tema-prime .stats, .tema-prime section.about, .tema-prime section.services { padding-bottom: 80px; }
  .tema-prime section.pricing, .tema-prime section.location, .tema-prime section.faq, .tema-prime section.reviews, .tema-prime .book { padding-block: 72px; }
  .tema-prime section.pricing { margin-bottom: 80px; }
  .tema-prime .inst { margin-top: -80px; padding-top: 72px; padding-bottom: 152px; }
  .tema-prime .about .sec-head { align-items: flex-start; }
  .tema-prime .tabs { padding-right: 0; }
  .tema-prime section.reviews { grid-template-columns: minmax(0, 1fr); }
  .tema-prime .rev-track { grid-column: 1; grid-row: auto; margin: 28px 0 0; padding: 0; }
  .tema-prime .rev-card { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; padding: 24px; justify-items: center; text-align: center; }
  .tema-prime .rev-top figcaption { align-items: center; }
  .tema-prime .rev-av, .tema-prime .rev-card blockquote, .tema-prime .rev-stars, .tema-prime .rev-top figcaption { grid-column: 1; grid-row: auto; }
  .tema-prime .rev-av { width: 96px; height: 96px; font-size: 2rem; }
  .tema-prime .rev-card blockquote { order: 1; }
  .tema-prime .rev-stars { order: 2; }
  .tema-prime .rev-top figcaption { order: 3; }
  .rev-arrows { grid-row: auto; margin-top: 16px; }
  .tema-prime .book-card { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .book-photo { grid-row: auto; min-height: 280px; }
  .tema-prime .loc-info { grid-area: auto; width: 100%; margin: 0; padding: 0; border-radius: 0; box-shadow: none; }
  .tema-prime .loc-map { grid-area: auto; height: 320px; margin-top: 24px; }
  .tema-prime .duo-local { flex-direction: column; }
  .duo-map { order: 2; flex: none; height: 200px; margin: 0 12px 12px; }
  .duo-map iframe { min-height: 200px; }
  .tema-prime .foot { padding-top: 72px; }
  .tema-prime .foot-top { grid-template-columns: minmax(0, 1fr); padding: 28px; }
}
@media (max-width: 560px) {
  .tema-prime .promesas { grid-template-columns: minmax(0, 1fr); }
  /* Servicios en carrusel para ahorrar espacio; la siguiente tarjeta asoma para indicar que se puede deslizar */
  .tema-prime .serv-grid { display: flex; gap: 12px; margin-inline: calc(-1 * var(--ancho)); padding-inline: var(--ancho); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--ancho); scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .tema-prime .serv-grid::-webkit-scrollbar { display: none; }
  .tema-prime .serv-card, .tema-prime .serv-photo { flex: 0 0 84%; scroll-snap-align: start; }
  .tema-prime .serv-photo { min-height: 220px; }
  .tema-prime .stats p { min-height: 130px; padding: 18px; }
  .tema-prime .stats strong { font-size: 2rem; }
  .tema-prime .price-card .price, .tema-prime .price-main .price { font-size: 2.5rem; }
  .tema-prime main .send, .tema-prime main .hero-actions .btn { width: 100%; }
}
@media (max-width: 400px) { .hero-prime h1 { font-size: min(2.6rem, 11.5vw); } }
@media (max-width: 350px) { .tema-prime .stats { grid-template-columns: minmax(0, 1fr); } .tema-prime .stats p { min-height: 110px; } }
