/* Scoped to the ServBay footer prototype; Manrope is supplied by the local font module. */
#footer:has(.cpt-footer) { scroll-margin-top: 110px; }
.cpt-footer {
    --cpt-ink: #0a1939;
    --cpt-pink: #ea62a0;
    --cpt-blush: #fff0f6;
    --cpt-paper: #faf8f4;
    --cpt-muted: #526071;
    --cpt-line: #dbddd9;
    background: var(--cpt-paper);
    color: var(--cpt-ink);
    font-family: Manrope, sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
}
.cpt-footer *, .cpt-footer *::before, .cpt-footer *::after { box-sizing: border-box; }
.cpt-footer :where(p, ul, address) { margin: 0; padding: 0; }
/* Los títulos del pie van en p/span, no en h2/h3, para que no entren en la jerarquía de encabezados de cada página. */
.cpt-footer .cpt-footer__title { font-size: 16px; font-weight: 700; line-height: 24px; }
.cpt-footer p { line-height: 1.5; }
.cpt-footer a { color: inherit; text-decoration: none; }
.cpt-footer a:hover { color: inherit; text-decoration: underline; text-underline-offset: 4px; }
.cpt-footer :is(a, summary):focus-visible { outline: 3px solid var(--cpt-ink); outline-offset: 5px; border-radius: 3px; }
.cpt-footer__container { width: calc(100% - 128px); max-width: 1312px; margin-inline: auto; }
.cpt-footer__invitation { background: var(--cpt-blush); }
.cpt-footer__invitation-inner { display: flex; align-items: center; justify-content: space-between; gap: 64px; padding-block: 52px; }
.cpt-footer__invitation-copy { min-width: 0; }
.cpt-footer__invitation .cpt-footer__invitation-title { margin-bottom: 12px; font-size: 38px; font-weight: 700; line-height: 1.5; }
.cpt-footer__invitation p { font-size: 18px; }
.cpt-footer a.cpt-footer__whatsapp { display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; gap: 12px; min-height: 56px; padding: 14px 24px; border-radius: 8px; background: var(--cpt-pink); color: var(--cpt-ink); font-size: 16px; font-weight: 700; line-height: 24px; text-decoration: none; }
.cpt-footer__whatsapp svg { flex-shrink: 0; }
.cpt-footer a.cpt-footer__whatsapp:hover { background: #e45196; }
.cpt-footer__main { display: grid; grid-template-columns: 290px minmax(0, 1fr) minmax(0, 1fr) 330px; gap: 40px; padding-block: 56px; }
.cpt-footer__brand { display: flex; flex-direction: column; align-items: flex-start; gap: 22px; }
.cpt-footer__logo { display: block; width: 240px; max-width: 100%; }
.cpt-footer__logo img { display: block; width: 100%; height: auto; }
.cpt-footer .cpt-footer__strong-link { font-size: 14px; font-weight: 700; }
.cpt-footer__socials { display: flex; gap: 14px; }
.cpt-footer__socials a { display: flex; width: 44px; height: 44px; align-items: center; justify-content: center; border-radius: 50%; background: var(--cpt-blush); }
.cpt-footer__socials a:hover { background: var(--cpt-pink); }
.cpt-footer__accordion { margin: 0; border: 0; }
.cpt-footer__accordion summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 16px; padding: 0; color: inherit; cursor: default; list-style: none; }
.cpt-footer__accordion summary::-webkit-details-marker { display: none; }
.cpt-footer__accordion summary::marker { content: ''; }
.cpt-footer__accordion ul { display: flex; flex-direction: column; gap: 16px; list-style: none; }
.cpt-footer__accordion li { margin: 0; font-size: 15px; line-height: 23px; }
.cpt-footer__plus { display: none; }
.cpt-footer__visit { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.cpt-footer__visit address { font-size: 15px; font-style: normal; line-height: 1.5; }
.cpt-footer__hours { font-size: 14px; }
.cpt-footer__phone { font-size: 20px; font-weight: 700; }
.cpt-footer__email { max-width: 100%; font-size: 14px; overflow-wrap: anywhere; }
.cpt-footer__legal { border-top: 1px solid var(--cpt-line); color: var(--cpt-muted); font-size: 13px; }
.cpt-footer__legal-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; padding-block: 26px; }
.cpt-footer__credits { display: flex; flex-shrink: 0; flex-wrap: wrap; gap: 4px 8px; }
.cpt-footer__credits a { color: var(--cpt-ink); font-weight: 700; }
.cpt-footer__legal nav { display: flex; flex-wrap: wrap; gap: 16px 40px; padding-right: 80px; }
@media (max-width: 1199px) {
    .cpt-footer__container { width: calc(100% - 80px); }
    .cpt-footer__main { grid-template-columns: 1.2fr 1fr 1fr; gap: 40px 32px; }
    .cpt-footer__visit { grid-column: 1 / -1; }
    .cpt-footer__invitation-inner { gap: 32px; }
    .cpt-footer__invitation .cpt-footer__invitation-title { font-size: 32px; line-height: 1.25; }
}
@media (max-width: 767px) {
    .cpt-footer__container { width: calc(100% - 48px); }
    .cpt-footer__invitation-inner { flex-direction: column; align-items: stretch; gap: 18px; padding-block: 36px; }
    .cpt-footer__invitation .cpt-footer__invitation-title { margin-bottom: 18px; font-size: 32px; line-height: 1.25; }
    .cpt-footer__invitation p { font-size: 16px; }
    .cpt-footer a.cpt-footer__whatsapp { width: 100%; padding-inline: 16px; }
    .cpt-footer__main { display: flex; flex-direction: column; gap: 0; padding-block: 0; }
    .cpt-footer__brand { gap: 20px; padding: 36px 0 24px; }
    .cpt-footer__logo { width: 220px; }
    .cpt-footer__navigation { border-top: 1px solid var(--cpt-line); }
    .cpt-footer__accordion summary { min-height: 64px; margin: 0; cursor: pointer; }
    .cpt-footer__accordion ul { gap: 0; padding-bottom: 16px; }
    .cpt-footer__accordion li a { display: block; min-height: 44px; padding-block: 10px; }
    .cpt-footer__plus { display: block; position: relative; flex: 0 0 20px; height: 20px; }
    .cpt-footer__plus::before, .cpt-footer__plus::after { position: absolute; top: 9px; left: 4px; width: 12px; height: 2px; background: currentColor; content: ''; }
    .cpt-footer__plus::after { transform: rotate(90deg); }
    .cpt-footer__accordion[open] .cpt-footer__plus::after { display: none; }
    .cpt-footer__visit { gap: 16px; padding: 28px 0 36px; border-top: 1px solid var(--cpt-line); }
    .cpt-footer__visit .cpt-footer__title { font-size: 18px; line-height: 27px; }
    .cpt-footer__visit address { font-size: 16px; }
    .cpt-footer__hours-evening { display: block; }
    .cpt-footer__phone { font-size: 22px; }
    .cpt-footer__email, .cpt-footer__visit .cpt-footer__strong-link { font-size: 15px; }
    /* Deja libres los enlaces legales sobre WhatsApp y la barra móvil de compra. */
    .cpt-footer__legal-inner { flex-direction: column; align-items: flex-start; gap: 18px; padding-block: 24px 96px; }
    .cpt-footer__credits { flex-direction: column; }
    .cpt-footer__credits-separator { display: none; }
    .cpt-footer__legal nav { gap: 16px 20px; padding-right: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .cpt-footer * { scroll-behavior: auto; transition: none; }
}
/* Páginas legales (aviso legal, términos y condiciones y las dos políticas), que usan la plantilla
   «Page - Container - Center Title» de Flatsome (page-blank-title-center.php): columna de lectura centrada
   de 760px como máximo y, si la pantalla no da para tanto, con los márgenes del contenedor de la cabecera
   (48px; 20px hasta 1199px). Va aquí porque este CSS se carga en todas las páginas del rediseño. */
.page-template-page-blank-title-center-php .page-wrapper > #content { flex-basis: auto; width: calc(100% - 96px); max-width: 760px; margin-inline: auto; padding-inline: 0; }
@media (max-width: 1199px) {
    .page-template-page-blank-title-center-php .page-wrapper > #content { width: calc(100% - 40px); }
}
