/* ===== COLORES Y FUENTE (cambiar aquí para retocar todo el diseño) ===== */
:root {
    --cm-font: 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --cm-ink: #0A0A0A;          /* negro */
    --cm-ink-soft: #111111;
    --cm-accent: #4A5058;       /* plata oscuro: sustituye al azul de la referencia (bordes, precios, iconos) */
    --cm-accent-hover: #2B3036;
    --cm-silver: #A8ADB3;
    --cm-silver-light: #D7DADE;
    --cm-bg-soft: #F8F9FA;      /* fondo suave alterno */
    --cm-border: #F3F4F6;
    --cm-yellow: #F5B301;       /* estrellas */
}
html { scroll-behavior: smooth; scroll-padding-top: 5.5rem; }
body { font-family: var(--cm-font); background: #fff; color: #111111; overflow-x: hidden; margin: 0; }
h1, h2, h3, h4 { font-family: var(--cm-font); }
:focus-visible { outline: 2px solid #A8ADB3; outline-offset: 3px; }
.admin-bar .cm-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .cm-header { top: 46px; } }

/* HERO: la foto se cambia en el atributo style="--hero-img:url('...')" de la sección, dentro de la página Inicio */
.hero-bg {
    --hero-img: url('hero.jpg');   /* foto por defecto del tema; la de "Fotos de la web" la sustituye */
    background:
        linear-gradient(rgba(0,0,0,.65), rgba(0,0,0,.8)),
        var(--hero-img) center 55% / cover no-repeat,
        linear-gradient(135deg, #111111 0%, #2B3036 100%);
}

/* Servicios */
.svc { border: 1px solid #E2E4E7; background: #fff; transition: border-color .2s, box-shadow .2s; }
.svc:hover { border-color: #A8ADB3; box-shadow: 0 6px 22px rgba(10,10,10,.07); }

/* Preguntas frecuentes */
.faq { border-bottom: 1px solid #E2E4E7; }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 1.5rem; align-items: center; padding: 1.25rem 0; font-family: var(--cm-font); font-size: 1.4rem; font-weight: 600; line-height: 1.25; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; font-family: var(--cm-font); font-weight: 300; font-size: 1.75rem; color: #A8ADB3; flex-shrink: 0; transition: transform .2s; }
.faq[open] summary::after { transform: rotate(45deg); }
.faq .faq-a { padding: 0 0 1.5rem; color: #4A4F55; max-width: 62ch; line-height: 1.7; }

/* Ventana de resultados */
.modal-enter { opacity: 0; transform: translateY(12px) scale(.98); transition: opacity .25s ease-out, transform .25s ease-out; }
.modal-active { opacity: 1; transform: none; }

/* Páginas normales (aviso legal, privacidad...) */
.cm-page p { margin: 0 0 1.1rem; line-height: 1.75; color: #3A3E44; }
.cm-page h2 { font-size: 2rem; font-weight: 700; margin: 2rem 0 .75rem; }
.cm-page h3 { font-size: 1.5rem; font-weight: 700; margin: 1.5rem 0 .5rem; }
.cm-page ul { list-style: disc; padding-left: 1.5rem; margin: 0 0 1.1rem; }
.cm-page a { text-decoration: underline; }

/* Servicios en móvil: nombre en una línea y descripción recortada a 2 líneas con "Ver más" al final de la segunda */
.svc-desc { position: relative; }
.svc-more { background: none; border: 0; padding: 0; font: inherit; font-weight: 500; color: #16171A; text-decoration: underline; cursor: pointer; }
.svc-more[hidden] { display: none; }
@media (min-width: 768px) { .svc-more { display: none !important; } }
@media (max-width: 767px) {
    .svc-desc.cm-clamp { max-height: 3.25em; overflow: hidden; }
    .svc-desc.cm-clamp .svc-more { position: absolute; right: 0; bottom: 0; padding-left: 2.2rem; background: linear-gradient(to right, transparent, var(--cm-card-bg, #fff) 1.6rem); }
    .svc-desc.cm-clamp .svc-more::before { content: "… "; display: inline-block; color: #6B7178; text-decoration: none; margin-right: .15em; }
    .svc-desc:not(.cm-clamp) .svc-more { margin-left: .35rem; }
}

/* Equipo: tarjetas deslizables */
.cm-team-wrap { position: relative; }
.cm-team { list-style: none; margin: 0; padding: 0 0 1rem; display: flex; gap: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: #A8ADB3 transparent; }
.cm-card { flex: 0 0 min(82%, 320px); scroll-snap-align: start; background: #17181A; border: 1px solid rgba(255,255,255,.15); border-radius: .5rem; overflow: hidden; display: flex; flex-direction: column; }
.cm-card-photo { aspect-ratio: 4 / 5; background: #202124; display: flex; align-items: center; justify-content: center; }
.cm-photo { width: 100%; height: 100%; object-fit: cover; display: block; }
.cm-initial { font-family: var(--cm-font); font-weight: 700; font-size: 5rem; color: #D7DADE; }
.cm-card-body { padding: 1.25rem 1.25rem 1.5rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.cm-name { font-family: var(--cm-font); font-size: 1.9rem; font-weight: 700; color: #fff; line-height: 1.1; margin: 0; }
.cm-role { color: #A8ADB3; font-size: .95rem; margin: 0; }
.cm-text p { color: #D7DADE; line-height: 1.65; margin: 0 0 .5rem; font-size: .98rem; }
.cm-links { display: flex; gap: 1rem; margin-top: auto; padding-top: .5rem; }
.cm-links a { color: #A8ADB3; transition: color .2s; }
.cm-links a:hover { color: #fff; }
.cm-links svg { width: 1.6rem; height: 1.6rem; display: block; }
.cm-team-nav { display: none; gap: .75rem; margin-top: 1rem; justify-content: flex-end; }
.cm-team-nav.is-active { display: flex; }
.cm-team-nav button { width: 2.75rem; height: 2.75rem; border-radius: 9999px; border: 1px solid rgba(255,255,255,.3); background: transparent; color: #fff; font-size: 1.1rem; cursor: pointer; transition: background .2s, color .2s; }
.cm-team-nav button:hover { background: #fff; color: #0A0A0A; }

/* Equipo: pestañas y panel ancho en ordenador */
.cm-tabs { display: none; }
@keyframes cmfade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (min-width: 1024px) {
    .cm-tabs { display: flex; gap: .75rem; margin-bottom: 1.75rem; flex-wrap: wrap; }
    .cm-tab { background: transparent; color: #D7DADE; border: 1px solid rgba(255,255,255,.3); border-radius: 9999px; padding: .65rem 1.6rem; font-family: var(--cm-font); font-size: 1rem; font-weight: 500; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
    .cm-tab:hover { border-color: #fff; color: #fff; }
    .cm-tab[aria-pressed="true"] { background: #fff; color: #0A0A0A; border-color: #fff; }

    .cm-team { display: block; overflow: visible; padding: 0; }
    .cm-card { display: none; flex: none; width: 100%; }
    .cm-card.is-active { display: grid; grid-template-columns: minmax(300px, 5fr) 7fr; animation: cmfade .3s ease; }
    .cm-card-photo { position: relative; aspect-ratio: auto; min-height: 480px; }
    .cm-card-photo .cm-photo { position: absolute; inset: 0; }
    .cm-card-body { padding: 3rem 3.5rem; justify-content: center; gap: .9rem; }
    .cm-name { font-size: 3.4rem; }
    .cm-role { font-size: 1.15rem; }
    .cm-text p { font-size: 1.2rem; max-width: 58ch; }
    .cm-links { margin-top: 1rem; gap: 1.25rem; }
    .cm-links svg { width: 2rem; height: 2rem; }
    .cm-team-nav, .cm-team-nav.is-active { display: none; }
}

/* Resultados de autor: carrusel con avance automático por pasos, flechas y deslizamiento */
.cm-carousel { position: relative; --gap: 16px; --v: 2; }
@media (min-width: 768px) { .cm-carousel { --v: 4; } }
.cm-belt {
    overflow-x: auto; overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scrollbar-width: none; -ms-overflow-style: none;
    overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch;
    container-type: inline-size;
}
.cm-belt::-webkit-scrollbar { display: none; }
.cm-track {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-auto-flow: column; grid-template-rows: repeat(2, auto); row-gap: var(--gap);
    grid-auto-columns: 50vw;
    grid-auto-columns: calc((100cqw + var(--gap)) / var(--v));
    width: max-content;
}
@media (min-width: 768px) { .cm-track { grid-template-rows: auto; grid-auto-columns: 25vw; grid-auto-columns: calc((100cqw + var(--gap)) / var(--v)); } }
.cm-item { padding-right: var(--gap); min-width: 0; scroll-snap-align: start; }
.cm-sq { aspect-ratio: 1; border-radius: .5rem; overflow: hidden; background: #fff; border: 1px solid #E2E4E7; }
.cm-sq img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; user-select: none; -webkit-user-drag: none; }
.cm-item:hover .cm-sq img { transform: scale(1.05); }
.cm-ph { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; text-align: center; padding: 1rem; font-size: .875rem; color: #6B7178; }
.cm-spacer { display: none; }
@media (max-width: 767px) { .cm-spacer { display: block; } .cm-spacer .cm-sq { border-color: transparent; background: transparent; } }
.cm-belt.is-drag { cursor: grabbing; }

.cm-arrow { position: absolute; top: calc(50% - 10px); transform: translateY(-50%); z-index: 3; width: 48px; height: 48px; border-radius: 9999px; border: 1px solid rgba(255,255,255,.35); background: rgba(10,10,10,.6); color: #fff; display: none; align-items: center; justify-content: center; cursor: pointer; padding: 0; opacity: 0; transition: opacity .25s, background .2s; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.cm-arrow svg { width: 20px; height: 20px; }
.cm-arrow:hover { background: #0A0A0A; }
.cm-arrow.prev { left: 12px; }
.cm-arrow.next { right: 12px; }
@media (hover: hover) and (pointer: fine) {
    .cm-arrow { display: flex; }
    .cm-carousel:hover .cm-arrow, .cm-carousel:focus-within .cm-arrow { opacity: 1; }
}
.cm-carousel.is-static .cm-arrow, .cm-carousel.is-static .cm-progress { display: none; }
.cm-progress { position: relative; height: 2px; margin-top: 20px; background: #D7DADE; border-radius: 2px; overflow: hidden; }
.cm-progress span { position: absolute; top: 0; bottom: 0; left: 0; width: 33%; background: linear-gradient(90deg, #6F767E, #A8ADB3); border-radius: 2px; }

/* Opiniones: carrusel con puntos, flechas y avance automático */
.cm-rev-track { display: flex; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scroll-padding-left: 4px; padding: 8px 4px 20px; margin: -8px -4px -20px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.cm-rev-track::-webkit-scrollbar { display: none; }
.cm-rev .cm-rev-card { flex: 0 0 100%; scroll-snap-align: start; display: flex; flex-direction: column; }
@media (min-width: 768px) { .cm-rev .cm-rev-card { flex-basis: calc((100% - 48px) / 3); } }
.cm-rev-text { display: -webkit-box; -webkit-line-clamp: 7; -webkit-box-orient: vertical; overflow: hidden; }
.cm-rev-when::before { content: " · "; }
.cm-rev-when:empty::before { content: ""; }
.cm-rev-ctrl { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 28px; }
.cm-rev-ctrl[hidden] { display: none; }
.cm-rev-btn { width: 44px; height: 44px; border-radius: 9999px; border: 1px solid #8A9199; background: linear-gradient(180deg, #fff, #EDEFF1); color: #3F454C; font-size: 18px; line-height: 1; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: background .2s, border-color .2s, transform .2s; }
.cm-rev-btn:hover { background: linear-gradient(180deg, #E6E9EC, #C3C8CD); border-color: #5F666E; color: #0A0A0A; }
.cm-rev-dots { display: flex; gap: 8px; }
.cm-rev-dot { width: 8px; height: 8px; border-radius: 9999px; border: 0; padding: 0; background: #C3C8CD; cursor: pointer; transition: background .2s, transform .2s; }
.cm-rev-dot[aria-current="true"] { background: #3F454C; transform: scale(1.25); }

/* =====================================================================
   DISEÑO v1.8: tipografía y espacios de la web de referencia (Montserrat), en negro, plata y blanco
   ===================================================================== */
.cm-hero { min-height: 80vh; display: flex; align-items: center; padding: 4rem 0; }
.cm-eyebrow { margin: 0 0 1rem; font-family: var(--cm-font); font-size: .8rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--cm-silver-light); line-height: 1.5; }
.cm-hero-title { margin: 0 0 1rem; font-family: var(--cm-font); font-weight: 800; font-size: 2.25rem; line-height: 1.1; letter-spacing: -.025em; color: #fff; }
.cm-hero-sub { margin: 0 0 2rem; max-width: 42rem; font-weight: 300; font-size: 1.125rem; line-height: 1.6; color: #E5E7EB; }
.cm-hero-cta { display: flex; flex-direction: column; gap: 1rem; }
.cm-btn { display: inline-block; text-align: center; border-radius: .375rem; font-family: var(--cm-font); font-weight: 700; font-size: 1.125rem; padding: 1rem 2rem; text-decoration: none; transition: background .2s, color .2s, border-color .2s; }
.cm-btn-silver { background: linear-gradient(180deg, #E9ECEF, #BFC4CA); color: var(--cm-ink); box-shadow: 0 10px 15px -3px rgba(0,0,0,.35); }
.cm-btn-silver:hover { background: #fff; }
.cm-btn-outline { background: transparent; border: 2px solid #fff; color: #fff; }
.cm-btn-outline:hover { background: #fff; color: var(--cm-ink); }
@media (min-width: 640px) {
    .cm-eyebrow { font-size: .9rem; }
    .cm-hero-title { font-size: 3.75rem; }
    .cm-hero-sub { font-size: 1.25rem; }
    .cm-hero-cta { flex-direction: row; }
}

.bg-ink.text-white.py-6 [aria-hidden="true"] { color: var(--cm-yellow); }

/* Hero (móvil y ordenador): palabras clave en plateado brillante oscuro y rayita plateada en el h1 */
.cm-hl { white-space: nowrap; color: #B9BEC4; background: linear-gradient(180deg, #F4F5F7 0%, #B4B9BF 48%, #7E858D 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.cm-eyebrow { display: flex; align-items: center; gap: .75rem; }
.cm-eyebrow::before { content: ""; flex: none; width: 1.75rem; height: 2px; background: linear-gradient(90deg, #8A9199, #D7DADE); }

/* Títulos de sección */
#servicios h2, #resultados h2, #preguntas h2 { font-size: 1.875rem; font-weight: 800; text-transform: uppercase; letter-spacing: .025em; line-height: 1.2; }
#opiniones h2, #equipo h2 { font-size: 1.875rem; font-weight: 800; line-height: 1.2; }
#contacto h2 { font-size: 1.5rem; font-weight: 700; text-transform: uppercase; letter-spacing: -.05em; }

/* Título visible de cada sección (misma apariencia que tenía el H2). El H2 con las palabras clave va dentro del texto de debajo. */
.cm-sec-title { font-family: var(--cm-font); font-size: clamp(1.05rem, 5.2vw, 1.875rem); font-weight: 800; line-height: 1.2; }
#servicios .cm-sec-title, #resultados .cm-sec-title, #preguntas .cm-sec-title { text-transform: uppercase; letter-spacing: .025em; }
/* H2 integrado en el párrafo: se ve igual que el resto del texto */
#servicios h2.cm-h2-inline, #resultados h2.cm-h2-inline, #opiniones h2.cm-h2-inline, #equipo h2.cm-h2-inline, #preguntas h2.cm-h2-inline, #contacto h2.cm-h2-inline { display: inline; font: inherit; text-transform: none; letter-spacing: inherit; line-height: inherit; }
#resultados a.inline-block { text-transform: uppercase; letter-spacing: .025em; font-weight: 700; border-bottom-width: 2px; }

/* Servicios: grupos con icono y filas como en la referencia */
#servicios h3 { display: flex; align-items: center; gap: .75rem; font-size: 1.5rem; font-weight: 700; color: var(--cm-ink-soft); border-bottom-width: 2px; border-color: var(--cm-accent); padding-bottom: .5rem; }
#servicios h3::before { content: ""; flex: none; width: 1.5rem; height: 1.5rem; background: var(--cm-accent); -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
#servicios .grid > div:nth-child(1) h3 { --ico: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%205l7%207m0%200l-7%207m7-7H3%27%2F%3E%3C%2Fsvg%3E"); }
#servicios .grid > div:nth-child(2) h3 { --ico: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%205l7%207m0%200l-7%207m7-7H3%27%2F%3E%3C%2Fsvg%3E"); }

.svc { --cm-card-bg: #fff; display: grid; grid-template-columns: 1fr auto; column-gap: 1rem; align-items: center; background: var(--cm-card-bg); border: 1px solid var(--cm-border); box-shadow: 0 1px 2px rgba(0,0,0,.05); padding: 1rem 1.25rem; }
#servicios .space-y-4 > .svc:nth-child(odd) { --cm-card-bg: var(--cm-bg-soft); }
.svc:hover { border-color: var(--cm-accent); box-shadow: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1); }
.svc > div:first-child { display: contents; }
.svc h4 { grid-column: 1 / -1; grid-row: 1; margin: 0; font-size: 1.125rem; font-weight: 700; line-height: 1.3; color: var(--cm-ink-soft); }
.svc .svc-desc { grid-column: 1 / -1; grid-row: 2; margin: .25rem 0 0; font-size: .875rem; line-height: 1.625; }
.svc .svc-price { grid-column: 1; grid-row: 3; justify-self: start; margin-top: 1rem; font-size: 1.5rem; font-weight: 800; color: var(--cm-accent); line-height: 1; }
.svc > div:last-child { grid-column: 2; grid-row: 3; margin-top: 1rem; justify-content: flex-end; }
.svc a[data-book] { font-weight: 700; }
.svc a[data-book]:hover { background: var(--cm-accent); }
.svc-more { font-weight: 600; }

/* Opiniones, equipo y preguntas */
.cm-rev-text { font-size: .875rem; }
.cm-name { font-size: 1.5rem; font-weight: 800; letter-spacing: -.01em; }
.cm-role { font-weight: 500; }
.cm-text p { font-size: .95rem; font-weight: 300; }
.faq summary { font-size: 1.05rem; font-weight: 600; line-height: 1.4; }
.faq .faq-a { font-size: .95rem; }
@media (min-width: 1024px) {
    .cm-name { font-size: 2.25rem; }
    .cm-text p { font-size: 1.05rem; }
}

/* Contacto */
a[href*="wa.me"] { background: #16A34A; color: #fff; border-color: #16A34A; box-shadow: 0 4px 6px -1px rgba(0,0,0,.1); }
a[href*="wa.me"]:hover { background: #15803D; color: #fff; border-color: #15803D; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .modal-enter, .svc, .faq summary::after { transition: none; }
    .cm-card.is-active { animation: none; }

}

/* =====================================================================
   MÓVIL v1.9 (solo pantallas pequeñas; el ordenador no cambia)
   ===================================================================== */
@media (max-width: 639px) {
    /* Hero: texto alineado a la izquierda, palabras clave en plata brillante oscuro */
    .cm-hero { min-height: calc(100svh - 80px - 6.5rem); padding: 2rem 0 1.75rem; }
    .cm-hero > div { text-align: left; }
    .cm-eyebrow { font-size: .68rem; letter-spacing: .14em; margin: 0 0 1rem; }
    .cm-hero-title { font-size: 2.15rem; line-height: 1.12; margin: 0 0 .9rem; text-wrap: balance; }
    .cm-hero-title br { display: none; }
    .cm-hero-sub { font-size: 1rem; line-height: 1.55; margin: 0 0 1.4rem; max-width: 30rem; }
    .cm-hero-cta { gap: .7rem; }
    .cm-btn { font-size: 1rem; padding: .85rem 1.25rem; }

    /* Barra de valoración: estrellas y 5.0 visibles nada más cargar */
    .bg-ink.text-white.py-6 { padding-top: .9rem; padding-bottom: .9rem; }
    .bg-ink.text-white.py-6 > div { gap: .2rem; }
    .bg-ink.text-white.py-6 [aria-hidden="true"] { font-size: 1.5rem; line-height: 1.2; }
    .bg-ink.text-white.py-6 p.font-semibold { font-size: 1rem; }
    .bg-ink.text-white.py-6 p.italic { font-size: .85rem; }
}

@media (max-width: 767px) {
    /* Servicios compactos: nombre y precio arriba; descripción (2 líneas) a la izquierda y botón Elegir a la derecha */
    #servicios { padding-top: 3rem; padding-bottom: 3rem; }
    #servicios .text-center.mb-14 { margin-bottom: 1.75rem; }
    #servicios .grid { gap: 2rem; }
    #servicios h3 { font-size: 1.25rem; margin-bottom: .75rem; padding-bottom: .4rem; }
    #servicios h3::before { width: 1.25rem; height: 1.25rem; }
    #servicios .space-y-4 > * + * { margin-top: .5rem; }
    .svc { padding: .7rem .85rem; column-gap: .75rem; row-gap: 0; align-items: start; }
    .svc h4 { grid-column: 1; grid-row: 1; font-size: 1rem; line-height: 1.25; }
    .svc .svc-price { grid-column: 2; grid-row: 1; justify-self: end; margin: 0; font-size: 1.1rem; }
    .svc .svc-desc { grid-column: 1; grid-row: 2; margin: .25rem 0 0; font-size: .8rem; line-height: 1.4; }
    .svc .svc-desc.cm-clamp { max-height: 2.8em; }   /* 2 líneas */
    .svc > div:last-child { grid-column: 2; grid-row: 2; align-self: end; margin: .25rem 0 0; justify-content: flex-end; flex-wrap: nowrap; }
    .svc > div:last-child > * { flex: none; text-align: center; padding: .4rem 1rem; font-size: .8rem; line-height: 1.2; }
    .svc-more { font-size: .8rem; }

    /* Preguntas frecuentes: pregunta en una sola línea (completa al abrir) */
    .faq summary { display: block; position: relative; padding: 1rem 2rem 1rem 0; font-size: .95rem; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .faq summary::after { position: absolute; right: 0; top: 50%; margin-top: -.9rem; line-height: 1.8rem; }
    .faq[open] summary { white-space: normal; overflow: visible; }
}

/* Equipo en móvil y tablet: tarjetas compactas en fila (foto pequeña redonda + nombre y cargo + redes), sin crecer en vertical */
@media (max-width: 1023px) {
    .cm-team { display: flex; flex-direction: column; gap: .75rem; overflow: visible; scroll-snap-type: none; padding: 0; }
    .cm-card { flex: none; width: 100%; flex-direction: row; align-items: center; gap: 1rem; padding: .9rem 1.1rem; border-color: rgba(255,255,255,.14); }
    .cm-card-photo { flex: none; width: 4rem; height: 4rem; aspect-ratio: 1; border-radius: 9999px; overflow: hidden; background: linear-gradient(160deg, #E9ECEF, #7E858D); }
    .cm-photo { object-position: center 20%; }   /* encuadra la cara y no la recorta */
    .cm-initial { font-size: 1.75rem; color: #0A0A0A; }
    .cm-card-body { flex: 1; min-width: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: .75rem; align-items: center; gap: 0 .75rem; }
    .cm-name { grid-column: 1; grid-row: 1; font-size: 1.25rem; }
    .cm-role { grid-column: 1; grid-row: 2; font-size: .85rem; }
    .cm-text { display: none; }
    .cm-links { grid-column: 2; grid-row: 1 / span 2; margin: 0; padding: 0; gap: .75rem; align-items: center; }
    .cm-links svg { width: 1.75rem; height: 1.75rem; }
    .cm-team-nav, .cm-team-nav.is-active { display: none; }
}

/* Foto del equipo: solo en móvil y tablet, encima del título de la sección Equipo (se sube en "Fotos de la web") */
.cm-team-photo { display: none; margin: 0 0 1.75rem; }
@media (max-width: 1023px) {
    .cm-team-photo { display: block; }
    .cm-team-photo img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: center 30%; border-radius: .5rem; border: 1px solid rgba(255,255,255,.15); background: #202124; }
}

/* Barra móvil: Llamar + Cómo llegar. Oculta al cargar; aparece al pasar el primer pantallazo (main.js añade .is-visible) */
.cm-mbar { display: none; }
@media (max-width: 1023px) {
    .cm-mbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; padding: .5rem .75rem calc(.5rem + env(safe-area-inset-bottom, 0px)); background: #fff; border-top: 1px solid #E2E4E7; box-shadow: 0 -4px 12px rgba(10,10,10,.06); transform: translateY(110%); visibility: hidden; }
    .cm-mbar.is-visible { transform: none; visibility: visible; }
    .cm-mbar a { display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 44px; border-radius: .375rem; font-weight: 700; font-size: .95rem; text-decoration: none; }
    .cm-mbar a:focus-visible { outline: 2px solid #0A0A0A; outline-offset: 2px; }
    .cm-mbar svg { width: 1.15rem; height: 1.15rem; flex: none; }
    .cm-mbar-call { background: #0A0A0A; color: #fff; }
    .cm-mbar-map { background: #fff; color: #0A0A0A; border: 1px solid #0A0A0A; }
    html.cm-lb-open .cm-mbar { display: none; }
    .cm-footer { padding-bottom: calc(3.5rem + env(safe-area-inset-bottom, 0px)); }   /* hueco para que la barra no tape el pie */
}
@media (max-width: 1023px) and (prefers-reduced-motion: no-preference) {
    .cm-mbar { transition: transform .25s ease-out, visibility 0s linear .25s; }
    .cm-mbar.is-visible { transition: transform .25s ease-out, visibility 0s; }
}

/* Contacto + pie: la tarjeta de contacto "cabalga" entre el fondo claro y el pie negro */
.cm-contact { padding: 4rem 0; background: linear-gradient(to bottom, #F4F5F6 calc(100% - 7rem), #0A0A0A calc(100% - 7rem)); }
.cm-contact-card { background: #fff; border: 1px solid #E2E4E7; border-radius: .75rem; padding: 1.5rem; box-shadow: 0 12px 32px rgba(10,10,10,.08); }
@media (min-width: 1024px) { .cm-contact-card { padding: 2.5rem; } }
.cm-footer { background: #0A0A0A; color: #D7DADE; padding-top: 1.5rem; }
.cm-footer a { color: inherit; transition: color .2s; }
.cm-footer a:hover { color: #fff; }
.cm-footer-bar { border-top: 1px solid rgba(215,218,222,.16); color: #A8ADB3; }
.cm-footer-bar a { color: #A8ADB3; }
.cm-footer-bar a:hover { color: #fff; }

/* =====================================================================
   MÓVIL v1.9.4: textos y títulos más compactos (el ordenador no cambia)
   ===================================================================== */
@media (max-width: 767px) {
    /* Menos aire arriba y abajo en cada bloque */
    #servicios, #resultados, #opiniones, #equipo, #preguntas { padding-top: 2.25rem; padding-bottom: 2.25rem; }

    /* Título (una sola línea: el tamaño se adapta al ancho) y texto SEO más pequeño y pegado al título */
    #servicios .cm-sec-title, #resultados .cm-sec-title, #opiniones .cm-sec-title, #equipo .cm-sec-title, #preguntas .cm-sec-title { margin-bottom: .4rem; }
    #servicios .cm-sec-text, #resultados .cm-sec-text, #opiniones .cm-sec-text, #equipo .cm-sec-text, #preguntas .cm-sec-text { font-size: .9rem; line-height: 1.5; margin-top: 0; }

    /* Servicios y Resultados: título y texto alineados a la izquierda, como el resto de bloques */
    #servicios .text-center.mb-14, #resultados .text-center.mb-12 { text-align: left; margin-bottom: 1.25rem; }
    #servicios .cm-sec-text, #resultados .cm-sec-text { max-width: none; margin-left: 0; margin-right: 0; }

    #opiniones .flex.flex-col { margin-bottom: 1rem; gap: .6rem; }
    #equipo .max-w-3xl { margin-bottom: 1.25rem; }
    #equipo .cm-sec-text.mb-6 { margin-bottom: .6rem; }
    #preguntas .mb-10 { margin-bottom: 1rem; }
    #preguntas .cm-faq-group { font-size: 1.05rem; line-height: 1.3; margin-top: 1.5rem; margin-bottom: 0; }
    #preguntas .cm-faq-group.cm-faq-first { margin-top: 0; }

    /* Contacto: tarjeta y textos más compactos, botones repartidos a lo ancho */
    .cm-contact { padding: 2.25rem 0; background: linear-gradient(to bottom, #F4F5F6 calc(100% - 4.5rem), #0A0A0A calc(100% - 4.5rem)); }
    .cm-contact-card { padding: 1.25rem; }
    .cm-contact-card.grid { gap: 1.25rem; }
    #contacto .cm-contact-card h2 { font-size: min(1.2rem, 4vw); }   /* título en una sola línea */
    .cm-contact-card .cm-c-intro { font-size: .95rem; margin-bottom: .9rem; }
    .cm-contact-card .text-lg { font-size: 1rem; }
    .cm-contact-card .mb-4 { margin-bottom: .75rem; }
    .cm-contact-card .mb-8 { margin-bottom: 1.1rem; }
    .cm-contact-card .cm-cta-row { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
    .cm-contact-card .cm-cta-row a { padding: .75rem .5rem; font-size: .95rem; }
    .cm-contact-card [data-cm-map] { height: 12.5rem; }
}

/* Texto de la tarjeta de contacto y texto de Opiniones en una sola línea en ordenador */
.cm-c-intro { font-size: 1rem; line-height: 1.55; }
@media (min-width: 1024px) { #opiniones .cm-sec-text { white-space: nowrap; } }
@media (min-width: 1024px) and (max-width: 1199px) { #contacto .cm-contact-card h2 { font-size: 1.3rem; } }
