/*
Theme Name: Andopiso Theme
Theme URI: https://andopiso.com
Author: Comunidad Andopiso
Author URI: https://andopiso.com
Description: Tema para Andopiso.com — compartir piso en Andorra. Las personas publican su perfil de búsqueda y contactan por chat interno. Diseño azul oscuro + naranja, coherente y legible.
Version: 2.0.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.0
License: GPL v2 or later
Text Domain: andopiso
Tags: blog, services, custom-colors, custom-menu, featured-images, translation-ready
*/

/* ============================================================================
   ANDOPISO — SISTEMA DE DISEÑO ÚNICO Y COHERENTE
   Fondo: AZUL OSCURO (navy). Acentos: NARANJA. Tarjetas: BLANCAS con texto
   oscuro (siempre legibles). Sin fondos blancos sueltos, sin texto oscuro
   sobre oscuro. Un solo lugar define los colores: las variables de abajo.
   ============================================================================ */

:root {
    /* Marca */
    --aps-primary:        #1e3a8a;   /* azul oscuro */
    --aps-primary-dark:   #16285f;
    --aps-primary-light:  #3b5fdc;
    --aps-secondary:      #ea580c;   /* naranja */
    --aps-secondary-dark: #c2410c;
    --aps-secondary-light:#fb923c;
    --aps-accent:         #f59e0b;

    /* Superficies OSCURAS (página) */
    --aps-bg:       #12224f;   /* fondo principal: azul oscuro */
    --aps-bg-2:     #0d1a40;   /* nav / footer arriba */
    --aps-bg-3:     #091233;   /* footer abajo */
    --aps-bg-soft:  #1b2e63;   /* paneles elevados sobre el navy */
    --aps-hairline: rgba(255,255,255,.10);
    --aps-hairline-2: rgba(255,255,255,.16);

    /* Texto sobre OSCURO */
    --aps-ink:       #eaf1ff;
    --aps-ink-muted: #aab8db;
    --aps-ink-dim:   #8294bd;

    /* Superficies CLARAS (tarjetas) y su texto */
    --aps-card:        #ffffff;
    --aps-card-2:      #f1f5f9;
    --aps-card-border: #e2e8f0;
    --aps-card-border-2:#cbd5e1;
    --aps-card-text:   #1e293b;
    --aps-card-muted:  #5b6b85;
    --aps-card-dim:    #94a3b8;

    --aps-success: #16a34a;

    --aps-radius:    12px;
    --aps-radius-sm: 8px;
    --aps-radius-lg: 18px;
    --aps-shadow:        0 2px 10px rgba(5, 12, 38, .25);
    --aps-shadow-md:     0 10px 28px rgba(5, 12, 38, .35);
    --aps-shadow-strong: 0 18px 44px rgba(5, 12, 38, .45);

    --aps-container:        1200px;
    --aps-container-narrow: 760px;
    --aps-container-wide:   1320px;
    --aps-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--aps-bg); }

body {
    margin: 0;
    padding: 0;
    background: var(--aps-bg);
    color: var(--aps-ink);
    font-family: var(--aps-sans);
    line-height: 1.7;
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--aps-secondary-light); text-decoration: none; transition: color .15s; }
a:hover { color: var(--aps-secondary); }

::selection { background: var(--aps-secondary); color: #fff; }

h1, h2, h3, h4, h5, h6 {
    font-family: var(--aps-sans);
    font-weight: 700;
    line-height: 1.22;
    margin: 0 0 1rem;
    letter-spacing: -0.02em;
    color: var(--aps-ink);
}
h1 { font-size: clamp(2rem, 4.5vw, 3rem); font-weight: 800; line-height: 1.12; letter-spacing: -0.03em; }
h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 800; }
h3 { font-size: clamp(1.12rem, 2.2vw, 1.35rem); font-weight: 700; }
h4 { font-size: 1.1rem; font-weight: 700; }

/* ============================================================================
   LAYOUT
   ============================================================================ */
.aps-main { display: block; }

.aps-container {
    max-width: var(--aps-container);
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}
.aps-container-narrow { max-width: var(--aps-container-narrow); }
.aps-container-wide   { max-width: var(--aps-container-wide); }

.aps-section { margin: 3.25rem 0; }
.aps-section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.aps-section-head h2 {
    margin: 0;
    color: var(--aps-ink);
    font-size: clamp(1.4rem, 2.6vw, 1.8rem);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.02em;
}
.aps-section-head .aps-link-more {
    color: var(--aps-secondary-light);
    font-weight: 700;
    font-size: .92rem;
    white-space: nowrap;
}
.aps-section-head .aps-link-more::after { content: " →"; transition: margin-left .15s; }
.aps-section-head .aps-link-more:hover { color: var(--aps-secondary); }
.aps-section-head .aps-link-more:hover::after { margin-left: 4px; }

/* ============================================================================
   MASTHEAD  (cabecera grande sobre el navy)
   ============================================================================ */
.aps-masthead {
    background: transparent;
    border: 0;
    padding: 2rem 1.25rem 1.25rem;
    text-align: center;
}
.aps-masthead-brand {
    display: inline-block;
    color: #fff;
    font-family: var(--aps-sans);
    font-size: clamp(2.1rem, 5.5vw, 3.1rem);
    font-weight: 800;
    letter-spacing: -0.04em;
    text-decoration: none;
    line-height: 1;
    margin: 0 0 .5rem;
}
.aps-masthead-brand:hover { color: var(--aps-secondary-light); }
.aps-masthead-tag {
    font-size: .98rem;
    color: var(--aps-ink-muted);
    font-weight: 400;
    margin: 0 auto;
    max-width: 640px;
}

/* ============================================================================
   NAVEGACIÓN  (barra sticky bajo el masthead)
   ============================================================================ */
.aps-nav-wrap {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--aps-bg-2);
    border-top: 1px solid var(--aps-hairline);
    border-bottom: 1px solid var(--aps-hairline);
    box-shadow: 0 6px 20px rgba(5,12,38,.25);
}
.aps-nav {
    display: flex;
    width: 100%;
    max-width: var(--aps-container);
    margin: 0 auto;
    gap: .25rem;
    padding: 0 1rem;
    justify-content: center;
    flex-wrap: wrap;
    align-items: center;
    list-style: none;
    overflow-x: auto;
}
.aps-nav::-webkit-scrollbar { display: none; }
.aps-nav-link {
    color: var(--aps-ink-muted);
    font-weight: 600;
    font-size: .93rem;
    white-space: nowrap;
    padding: .9rem 1.05rem;
    border-bottom: 2px solid transparent;
    transition: color .15s, border-color .15s;
    display: inline-block;
}
.aps-nav-link:hover { color: #fff; border-bottom-color: var(--aps-secondary); }
.aps-nav-link.current { color: #fff; border-bottom-color: var(--aps-secondary); }
.aps-nav-link.aps-nav-cta {
    background: var(--aps-secondary);
    color: #fff;
    border-radius: var(--aps-radius-sm);
    padding: .55rem 1.1rem;
    margin-left: .35rem;
    border-bottom: 0;
    font-weight: 700;
}
.aps-nav-link.aps-nav-cta:hover { background: var(--aps-secondary-dark); color: #fff; }

/* ============================================================================
   HERO
   ============================================================================ */
.aps-hero {
    padding: 3.25rem 1.25rem 2.5rem;
    text-align: center;
}
.aps-hero-inner { max-width: 820px; margin: 0 auto; }
.aps-hero h1 {
    color: #fff;
    font-size: clamp(2rem, 4.8vw, 3rem);
    line-height: 1.1;
    margin: 0 0 1.15rem;
    font-weight: 800;
    letter-spacing: -0.035em;
}
.aps-hero p.lead {
    color: var(--aps-ink-muted);
    font-size: 1.12rem;
    line-height: 1.6;
    margin: 0 auto 1.9rem;
    max-width: 660px;
}
.aps-hero p.lead strong { color: #fff; font-weight: 700; }
.aps-hero-actions { display: flex; gap: .8rem; justify-content: center; flex-wrap: wrap; }

/* ============================================================================
   BOTONES
   ============================================================================ */
.aps-btn {
    display: inline-block;
    padding: .85rem 1.7rem;
    border-radius: var(--aps-radius);
    font-weight: 700;
    text-decoration: none;
    transition: transform .15s, background .15s, box-shadow .15s, color .15s;
    cursor: pointer;
    border: 2px solid transparent;
    font-family: inherit;
    font-size: .98rem;
    line-height: 1.2;
}
.aps-btn-primary { background: var(--aps-secondary); color: #fff; border-color: var(--aps-secondary); box-shadow: 0 6px 18px rgba(234,88,12,.32); }
.aps-btn-primary:hover { background: var(--aps-secondary-dark); border-color: var(--aps-secondary-dark); color: #fff; transform: translateY(-1px); }
.aps-btn-ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.45); }
.aps-btn-ghost:hover { background: rgba(255,255,255,.1); border-color: #fff; color: #fff; transform: translateY(-1px); }
.aps-btn-secondary { background: var(--aps-primary-light); color: #fff; border-color: var(--aps-primary-light); }
.aps-btn-secondary:hover { background: var(--aps-primary); border-color: var(--aps-primary); color: #fff; }

/* ============================================================================
   GRIDS  (máximo 3 por fila en escritorio, 2 en móvil)
   ============================================================================ */
.aps-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(3, 1fr); }
.aps-grid-2 { grid-template-columns: repeat(2, 1fr); }
.aps-grid-3 { grid-template-columns: repeat(3, 1fr); }
.aps-grid-cats { grid-template-columns: repeat(3, 1fr); gap: 1rem; }

/* ============================================================================
   TARJETA DE PARROQUIA  (atajo, sin subtítulos)
   ============================================================================ */
.aps-cat-card {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 84px;
    padding: 1.25rem 1rem;
    background: var(--aps-card);
    border: 1px solid var(--aps-card-border);
    border-radius: var(--aps-radius);
    color: var(--aps-card-text);
    text-decoration: none;
    box-shadow: var(--aps-shadow);
    transition: transform .2s, box-shadow .2s, border-color .2s, color .2s;
}
.aps-cat-card:hover {
    transform: translateY(-3px);
    border-color: var(--aps-secondary);
    color: var(--aps-secondary-dark);
    box-shadow: var(--aps-shadow-md);
}
.aps-cat-card h3 { font-size: 1.06rem; margin: 0; color: inherit; font-weight: 700; letter-spacing: -0.01em; }

/* ============================================================================
   LAYOUT EDITORIAL  (artículo destacado + lista lateral)
   ============================================================================ */
.aps-editorial-layout {
    display: grid;
    grid-template-columns: 1.7fr 1fr;
    gap: 2rem;
    margin: 2.5rem 0 3rem;
    align-items: start;
}
.aps-featured-main {
    background: var(--aps-card);
    border: 1px solid var(--aps-card-border);
    border-radius: var(--aps-radius-lg);
    overflow: hidden;
    box-shadow: var(--aps-shadow);
    transition: transform .2s, box-shadow .2s;
}
.aps-featured-main:hover { transform: translateY(-2px); box-shadow: var(--aps-shadow-md); }
.aps-featured-link { display: block; color: inherit; text-decoration: none; }
.aps-featured-thumb {
    position: relative;
    aspect-ratio: 16/9;
    overflow: hidden;
    background: linear-gradient(135deg, var(--aps-primary) 0%, var(--aps-primary-light) 100%);
}
.aps-featured-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.aps-featured-main:hover .aps-featured-thumb img { transform: scale(1.03); }
.aps-featured-body { padding: 1.6rem 1.75rem 1.75rem; }
.aps-featured-title {
    font-size: clamp(1.3rem, 2.4vw, 1.7rem);
    line-height: 1.22;
    color: var(--aps-card-text);
    margin: 0 0 .75rem;
    font-weight: 800;
    letter-spacing: -0.02em;
}
.aps-featured-main:hover .aps-featured-title { color: var(--aps-primary); }
.aps-featured-excerpt { color: var(--aps-card-muted); font-size: 1rem; line-height: 1.6; margin: 0; }

/* Lista lateral como tarjeta blanca con separadores */
.aps-featured-side {
    background: var(--aps-card);
    border: 1px solid var(--aps-card-border);
    border-radius: var(--aps-radius-lg);
    box-shadow: var(--aps-shadow);
    padding: .35rem 1.25rem;
    display: flex;
    flex-direction: column;
}
.aps-side-item { border-bottom: 1px solid var(--aps-card-border); padding: 1.05rem 0; }
.aps-side-item:last-child { border-bottom: 0; }
.aps-side-item a { color: inherit; text-decoration: none; display: block; }
.aps-side-cat {
    display: inline-block;
    color: var(--aps-secondary);
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    font-weight: 700;
    margin-bottom: .4rem;
}
.aps-side-title {
    font-size: 1.05rem;
    line-height: 1.35;
    color: var(--aps-card-text);
    margin: 0;
    font-weight: 700;
    letter-spacing: -0.01em;
    transition: color .15s;
}
.aps-side-item:hover .aps-side-title { color: var(--aps-primary); }

/* ============================================================================
   TARJETA  (artículos, "cómo funciona")
   ============================================================================ */
.aps-card {
    background: var(--aps-card);
    border: 1px solid var(--aps-card-border);
    border-radius: var(--aps-radius-lg);
    overflow: hidden;
    box-shadow: var(--aps-shadow);
    transition: transform .2s, box-shadow .2s, border-color .2s;
    color: var(--aps-card-text);
}
.aps-card:hover { transform: translateY(-3px); box-shadow: var(--aps-shadow-md); border-color: var(--aps-card-border-2); }
.aps-card a { color: inherit; text-decoration: none; display: block; }
.aps-card-thumb {
    position: relative;
    aspect-ratio: 16/10;
    overflow: hidden;
    background: linear-gradient(135deg, var(--aps-primary) 0%, var(--aps-primary-light) 100%);
}
.aps-card-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.aps-card:hover .aps-card-thumb img { transform: scale(1.04); }
.aps-card-thumb-fallback {
    position: absolute; inset: 0;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    background: linear-gradient(135deg, var(--aps-primary) 0%, var(--aps-primary-light) 100%);
}
.aps-card-thumb-overlay {
    position: absolute; inset: 0;
    display: flex; align-items: flex-end;
    padding: 1rem;
    background: linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.5) 100%);
    pointer-events: none;
}
.aps-card-thumb-overlay .cat,
.aps-card-thumb-fallback .cat {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: #fff;
    font-weight: 700;
    background: rgba(0,0,0,.28);
    padding: .3rem .7rem;
    border-radius: 999px;
    backdrop-filter: blur(4px);
}
.aps-card-body { padding: 1.2rem 1.35rem 1.4rem; }
.aps-card-body h3 {
    font-weight: 800;
    font-size: 1.08rem;
    line-height: 1.32;
    margin: 0 0 .5rem;
    letter-spacing: -0.015em;
    color: var(--aps-card-text);
}
.aps-card:hover .aps-card-body h3 { color: var(--aps-primary); }
.aps-card-body .excerpt,
.aps-card-body p {
    color: var(--aps-card-muted);
    font-size: .93rem;
    line-height: 1.55;
    margin: 0;
}
.aps-card-body .excerpt {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ============================================================================
   ARTÍCULO (single) — "hoja" blanca legible sobre el navy
   ============================================================================ */
.aps-single, .aps-page { padding-bottom: 1rem; }
.aps-article-header { padding: 3rem 1.25rem 1.25rem; text-align: center; }
.aps-article-header-inner { max-width: var(--aps-container-narrow); margin: 0 auto; }
.aps-article-cat-link {
    display: inline-block;
    background: var(--aps-secondary);
    color: #fff;
    padding: .35rem .9rem;
    border-radius: 999px;
    font-size: .74rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    margin-bottom: 1.25rem;
}
.aps-article-cat-link:hover { background: var(--aps-secondary-dark); color: #fff; }
.aps-article-title { color: #fff; margin: 0 0 1rem; line-height: 1.14; font-weight: 800; letter-spacing: -0.03em; }
.aps-article-excerpt { color: var(--aps-ink-muted); font-size: 1.15rem; line-height: 1.55; max-width: 680px; margin: 0 auto 1.25rem; }
.aps-article-meta {
    display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; justify-content: center;
    color: var(--aps-ink-dim); font-size: .88rem; font-weight: 500;
}
.aps-article-meta a, .aps-meta-cat { color: var(--aps-secondary-light) !important; font-weight: 600; }
.aps-article-meta a:hover { color: var(--aps-secondary) !important; }
.aps-meta-sep { opacity: .5; }

.aps-article-featured { max-width: var(--aps-container-wide); margin: 0 auto; padding: 1.5rem 1.25rem 0; }
.aps-article-featured-img { width: 100%; height: auto; display: block; object-fit: cover; aspect-ratio: 16/9; border-radius: var(--aps-radius-lg); box-shadow: var(--aps-shadow-md); }

.aps-article-body {
    max-width: var(--aps-container-narrow);
    margin: 1.75rem auto 2.5rem;
    background: var(--aps-card);
    color: var(--aps-card-text);
    padding: 2.5rem 2.75rem;
    border-radius: var(--aps-radius-lg);
    border: 1px solid var(--aps-card-border);
    box-shadow: var(--aps-shadow);
    font-size: 1.07rem;
    line-height: 1.8;
}
.aps-article-body p, .aps-article-body li { color: var(--aps-card-text); }
.aps-article-body p { margin: 0 0 1.35rem; }
.aps-article-body h2 {
    margin: 2.25rem 0 1.1rem;
    font-size: 1.55rem;
    line-height: 1.25;
    color: var(--aps-primary);
    font-weight: 800;
    letter-spacing: -0.025em;
}
.aps-article-body h3 {
    margin: 1.9rem 0 .8rem;
    color: var(--aps-primary-dark);
    font-size: 1.28rem;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: -0.02em;
}
.aps-article-body h4, .aps-article-body h5, .aps-article-body h6 { margin: 1.5rem 0 .7rem; color: var(--aps-card-text); font-weight: 700; }
.aps-article-body a { color: var(--aps-primary); border-bottom: 2px solid rgba(30,58,138,.35); font-weight: 600; transition: all .15s; }
.aps-article-body a:hover { color: var(--aps-primary-dark); border-bottom-color: var(--aps-primary); background: rgba(30,58,138,.07); }
.aps-article-body strong, .aps-article-body b { color: var(--aps-card-text); font-weight: 700; }
.aps-article-body ul, .aps-article-body ol { margin: 0 0 1.4rem 1.4rem; padding: 0; }
.aps-article-body li { margin-bottom: .55rem; }
.aps-article-body blockquote {
    border-left: 4px solid var(--aps-secondary);
    padding: 1.1rem 1.6rem;
    background: var(--aps-card-2);
    margin: 1.8rem 0;
    border-radius: var(--aps-radius-sm);
    font-size: 1.08rem;
    color: var(--aps-card-text);
    font-style: italic;
}
.aps-article-body code {
    background: var(--aps-card-2);
    padding: .15rem .45rem;
    border-radius: var(--aps-radius-sm);
    font-size: .92em;
    color: var(--aps-primary);
    font-family: 'SF Mono', Monaco, Consolas, monospace;
}
.aps-article-body table {
    width: 100%; border-collapse: collapse; margin: 1.5rem 0 2rem; font-size: .95rem;
    border-radius: var(--aps-radius-sm); overflow: hidden;
}
.aps-article-body table th, .aps-article-body table td { border: 1px solid var(--aps-card-border); padding: .7rem .9rem; text-align: left; }
.aps-article-body table th { background: var(--aps-primary); color: #fff; font-weight: 700; font-size: .88rem; }
.aps-article-body table tr:nth-child(even) { background: var(--aps-card-2); }

/* CTA dentro de artículos */
.aps-cta-box {
    background: linear-gradient(135deg, var(--aps-primary) 0%, var(--aps-primary-dark) 100%);
    color: #fff;
    padding: 1.75rem 1.85rem;
    border-radius: var(--aps-radius-lg);
    margin: 2.5rem 0;
    text-align: center;
    box-shadow: var(--aps-shadow-md);
}
.aps-cta-box h3 { color: #fff; margin: 0 0 .5rem; font-size: 1.3rem; }
.aps-cta-box p { color: rgba(255,255,255,.9); margin: 0 0 1.1rem; }
.aps-cta-box a {
    display: inline-block;
    background: var(--aps-secondary);
    color: #fff;
    padding: .85rem 1.75rem;
    border-radius: var(--aps-radius);
    font-weight: 700;
    transition: transform .15s, background .15s;
}
.aps-cta-box a:hover { transform: translateY(-2px); background: var(--aps-secondary-dark); color: #fff; }

/* Caja de autor */
.aps-author-box {
    max-width: var(--aps-container-narrow);
    margin: 0 auto;
    padding: 1.6rem 1.85rem;
    background: var(--aps-bg-soft);
    border: 1px solid var(--aps-hairline);
    border-radius: var(--aps-radius-lg);
    display: flex; gap: 1.25rem; align-items: flex-start;
}
.aps-author-box .info { flex: 1; color: var(--aps-ink); }
.aps-author-box .info .label { font-size: .7rem; text-transform: uppercase; letter-spacing: 1.4px; color: var(--aps-ink-dim); font-weight: 700; display: block; }
.aps-author-box .info h3 { font-size: 1.2rem; margin: .35rem 0; color: #fff; font-weight: 800; }
.aps-author-name-link { color: #fff; }
.aps-author-name-link:hover { color: var(--aps-secondary-light); }
.aps-author-box .role { color: var(--aps-secondary-light); font-size: .88rem; margin: 0 0 .6rem; font-weight: 600; }
.aps-author-box .bio { color: var(--aps-ink-muted); font-size: .95rem; line-height: 1.65; margin: 0; }

.aps-related { max-width: var(--aps-container); margin: 3rem auto; padding: 0 1.25rem; }

/* ============================================================================
   ARCHIVO / BÚSQUEDA
   ============================================================================ */
.aps-archive-header { padding: 3rem 1.25rem 1.5rem; text-align: center; }
.aps-archive-header h1 { color: #fff; margin: 0 auto .5rem; line-height: 1.14; font-weight: 800; letter-spacing: -0.03em; }
.aps-archive-header p { color: var(--aps-ink-muted); margin: 0 auto; max-width: 620px; font-size: 1.05rem; }

/* ============================================================================
   PAGINACIÓN
   ============================================================================ */
.aps-pagination { display: flex; gap: .4rem; justify-content: center; margin: 3rem 0; flex-wrap: wrap; }
.aps-pagination a, .aps-pagination span {
    display: inline-block; padding: .55rem 1rem;
    background: var(--aps-bg-soft); border: 1px solid var(--aps-hairline);
    border-radius: var(--aps-radius-sm); color: var(--aps-ink); font-weight: 600; font-size: .92rem;
    transition: all .15s;
}
.aps-pagination a:hover { background: var(--aps-secondary); border-color: var(--aps-secondary); color: #fff; }
.aps-pagination .current { background: var(--aps-secondary); border-color: var(--aps-secondary); color: #fff; }

/* ============================================================================
   FOOTER
   ============================================================================ */
.aps-footer {
    background: var(--aps-bg-2);
    margin-top: 4.5rem;
    padding: 3.5rem 0 0;
    color: var(--aps-ink-muted);
    border-top: 1px solid var(--aps-hairline);
}
.aps-footer-inner {
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
    gap: 2.5rem;
    max-width: var(--aps-container);
    margin: 0 auto;
    padding: 0 1.25rem 2.5rem;
}
.aps-footer h3, .aps-footer h4 {
    color: #fff; font-size: .85rem; margin: 0 0 1rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 1px;
}
.aps-footer .brand-block h3 { font-size: 1.6rem; font-weight: 800; letter-spacing: -0.02em; text-transform: none; }
.aps-footer p { margin: 0 0 .75rem; line-height: 1.65; color: var(--aps-ink-muted); font-size: .92rem; }
.aps-footer ul { list-style: none; padding: 0; margin: 0; }
.aps-footer li { margin-bottom: .55rem; }
.aps-footer a { color: var(--aps-ink-muted); font-size: .92rem; transition: color .15s; }
.aps-footer a:hover { color: var(--aps-secondary-light); }
.aps-footer-bottom {
    padding: 1.25rem;
    text-align: center;
    background: var(--aps-bg-3);
    border-top: 1px solid var(--aps-hairline);
    font-size: .82rem;
    color: var(--aps-ink-dim);
}
.aps-footer-bottom p { margin: 0; color: var(--aps-ink-dim); font-size: .82rem; }

/* ============================================================================
   COOKIES / BREADCRUMB / 404
   ============================================================================ */
.aps-cookies {
    position: fixed; bottom: 1.25rem; left: 1.25rem; right: 1.25rem; max-width: 460px;
    margin-left: auto; background: var(--aps-card); border: 1px solid var(--aps-card-border);
    color: var(--aps-card-text); padding: 1.25rem 1.5rem; z-index: 9999; display: none;
    font-size: .92rem; box-shadow: var(--aps-shadow-strong); border-radius: var(--aps-radius-lg);
}
.aps-cookies.show { display: block; }
.aps-cookies p { margin: 0 0 1rem; line-height: 1.5; color: var(--aps-card-text); }
.aps-cookies a { color: var(--aps-primary); text-decoration: underline; }
.aps-cookies > div { display: flex; gap: .65rem; justify-content: flex-end; }
.aps-cookies button { padding: .55rem 1.2rem; border: 0; border-radius: var(--aps-radius); cursor: pointer; font-weight: 700; font-family: inherit; font-size: .88rem; transition: all .15s; }
.aps-cookies .accept { background: var(--aps-secondary); color: #fff; }
.aps-cookies .accept:hover { background: var(--aps-secondary-dark); }
.aps-cookies .reject { background: var(--aps-card-2); color: var(--aps-card-muted); border: 1px solid var(--aps-card-border-2); }

.aps-breadcrumb { max-width: var(--aps-container-narrow); margin: 0 auto 1rem; padding: 0 1.25rem; font-size: .85rem; color: var(--aps-ink-dim); font-weight: 500; }
.aps-breadcrumb a { color: var(--aps-secondary-light); }
.aps-breadcrumb .sep { margin: 0 .5rem; opacity: .5; }

.aps-404 { max-width: 600px; margin: 5rem auto; text-align: center; padding: 0 1.25rem; }
.aps-404 h1 { font-size: 7rem; color: var(--aps-secondary); margin: 0; font-weight: 900; line-height: 1; letter-spacing: -0.05em; }
.aps-404 p { font-size: 1.05rem; color: var(--aps-ink-muted); margin: 1rem 0 2rem; }

/* ============================================================================
   WP defaults
   ============================================================================ */
.alignleft { float: left; margin: 0 1rem 1rem 0; }
.alignright { float: right; margin: 0 0 1rem 1rem; }
.aligncenter { display: block; margin: 1rem auto; }
.wp-block-image { margin: 1.5rem 0; border-radius: var(--aps-radius); overflow: hidden; }
.wp-block-button__link { background: var(--aps-secondary) !important; color: #fff !important; padding: .85rem 1.65rem !important; border-radius: var(--aps-radius) !important; font-weight: 700 !important; text-decoration: none !important; }
.wp-block-button__link:hover { background: var(--aps-secondary-dark) !important; }
.screen-reader-text { position: absolute !important; clip: rect(1px,1px,1px,1px); padding: 0 !important; border: 0 !important; height: 1px !important; width: 1px !important; overflow: hidden; }
.home .wp-block-site-title, .home .wp-block-post-title, .home .entry-title { display: none !important; }

/* ============================================================================
   APP (plugin perfiles + chat)  —  pd-*  sobre el navy
   Página = navy. Tarjetas/paneles = blancos con texto oscuro.
   ============================================================================ */
.aps-app-wrap { max-width: var(--aps-container); margin: 0 auto; padding: 1.75rem 1.1rem 3rem; width: 100%; }

/* Cabeceras/textos que van directamente sobre el navy → claros */
.pd-directory-header h1, .pd-directory-header h2,
.pd-dashboard-header h1, .pd-list-header h1, .pd-list-header p,
.pd-cv-id h1, .pd-profile-header h1, .pd-login-title, .pd-login-subtitle,
.pd-chat-wrapper > h1, .pd-empty-text { color: #fff !important; }
.pd-empty-state p, .pd-muted, .pd-login-desc { color: var(--aps-ink-muted) !important; }

/* Botón Filtrar (outline sobre navy) */
.pd-dir-topbar { display: flex; justify-content: flex-end; margin-bottom: 1rem; }
.pd-btn-outline { background: transparent !important; color: #fff !important; border: 1px solid var(--aps-hairline-2) !important; }
.pd-btn-outline:hover { background: rgba(255,255,255,.08) !important; border-color: #fff !important; }

/* Botones del plugin → naranja de marca */
.pd-btn-primary { background: var(--aps-secondary) !important; border-color: var(--aps-secondary) !important; color: #fff !important; }
.pd-btn-primary:hover { background: var(--aps-secondary-dark) !important; border-color: var(--aps-secondary-dark) !important; }

/* Tarjetas y paneles blancos */
.pd-card, .pd-filters-panel, .pd-provider-card, .pd-login-card, .pd-login-card-fancy,
.pd-profile-card, .pd-profile-section, .pd-cv-main, .pd-cv-side, .pd-dashboard-grid > *,
.pd-cv-block, .pd-fav-card, .pd-cp-list, .pd-chat-wrapper {
    background: var(--aps-card) !important;
    border: 1px solid var(--aps-card-border) !important;
    border-radius: var(--aps-radius-lg) !important;
    box-shadow: var(--aps-shadow) !important;
    color: var(--aps-card-text) !important;
}
.pd-card h1, .pd-card h2, .pd-card h3, .pd-card h4, .pd-card label,
.pd-provider-card h3, .pd-filters-panel label, .pd-profile-card h1,
.pd-profile-card h2, .pd-profile-card h3 { color: var(--aps-card-text) !important; }

/* Filtros */
.pd-filters-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.pd-filter-group { display: flex; flex-direction: column; gap: 5px; }
.pd-filter-group label { font-size: .8rem; font-weight: 700; color: var(--aps-card-muted) !important; }
.pd-filters-panel select, .pd-filters-panel input,
.pd-form-group input, .pd-form-group select, .pd-form-group textarea {
    width: 100%; padding: .6rem .75rem; border: 1px solid var(--aps-card-border-2);
    border-radius: var(--aps-radius-sm); font-family: inherit; font-size: .95rem;
    color: var(--aps-card-text); background: #fff;
}
.pd-filters-panel select:focus, .pd-filters-panel input:focus,
.pd-form-group input:focus, .pd-form-group select:focus, .pd-form-group textarea:focus {
    outline: none; border-color: var(--aps-secondary); box-shadow: 0 0 0 3px rgba(234,88,12,.15);
}

/* DIRECTORIO: 3 por fila / 2 en móvil / 1 en muy pequeño */
.pd-providers-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap: 16px !important; }

.pd-provider-card {
    position: relative;
    overflow: visible !important;
    display: flex; flex-direction: column;
    transition: transform .2s, box-shadow .2s;
}
.pd-provider-card:hover { transform: translateY(-3px); box-shadow: var(--aps-shadow-md) !important; }
.pd-provider-inner { display: flex; flex-direction: column; gap: 10px; padding: 16px; color: inherit; text-decoration: none; flex: 1 1 auto; }
.pd-provider-top-row { display: flex; gap: 12px; align-items: flex-start; }
.pd-provider-thumb-col { position: relative; flex: 0 0 auto; }
.pd-provider-thumb, .pd-provider-thumb-ini { width: 64px; height: 64px; border-radius: 14px; object-fit: cover; }
.pd-provider-thumb-ini {
    display: flex !important; align-items: center; justify-content: center;
    background: linear-gradient(135deg, var(--aps-primary), var(--aps-secondary)) !important;
    color: #fff !important; font-weight: 800; font-size: 30px; line-height: 1;
}
.pd-thumb-lock { position: absolute; right: -4px; bottom: -4px; background: var(--aps-primary); color: #fff; border-radius: 50%; width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; border: 2px solid #fff; }
.pd-provider-info { flex: 1 1 auto; min-width: 0; }
.pd-provider-info h3 { margin: 0 0 2px; font-size: 1.05rem; font-weight: 800; overflow-wrap: anywhere; }
.pd-provider-occ { font-size: 13px; color: var(--aps-card-muted) !important; margin: 0 0 3px; overflow-wrap: anywhere; }
.pd-provider-rate-inline { font-size: 15px; font-weight: 800; color: var(--aps-primary) !important; overflow-wrap: anywhere; }
.pd-provider-bottom { display: flex; flex-direction: column; gap: 8px; }
.pd-provider-desc {
    margin: 0; font-size: .9rem; color: var(--aps-card-muted) !important; line-height: 1.5;
    overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}

/* Chips y tags: SIEMPRE separados (nunca pegados) */
.pd-provider-chips, .pd-provider-zones { display: flex !important; flex-wrap: wrap !important; gap: 6px !important; margin: 0 !important; }
.pd-chip {
    display: inline-block !important; padding: 3px 10px !important;
    background: var(--aps-card-2) !important; color: var(--aps-card-text) !important;
    border: 1px solid var(--aps-card-border) !important; border-radius: 999px !important;
    font-size: 12px !important; font-weight: 600 !important; line-height: 1.5 !important; white-space: nowrap;
}
.pd-tag {
    display: inline-block !important; padding: 3px 10px !important;
    background: rgba(30,58,138,.08) !important; color: var(--aps-primary) !important;
    border: 1px solid rgba(30,58,138,.18) !important; border-radius: 999px !important;
    font-size: 12px !important; font-weight: 600 !important; line-height: 1.5 !important; white-space: nowrap;
}

/* Acciones al pie de la tarjeta */
.pd-provider-bottom-actions { padding: 0 16px 14px; }
.pd-provider-cta { color: var(--aps-secondary-dark) !important; font-weight: 700; font-size: .9rem; }
.pd-provider-cta:hover { color: var(--aps-secondary) !important; }
.pd-provider-fav-wrap { position: absolute; top: 12px; right: 12px; }
.pd-btn-fav { background: rgba(255,255,255,.92); border: 1px solid var(--aps-card-border); border-radius: 50%; width: 34px; height: 34px; cursor: pointer; font-size: 16px; color: var(--aps-secondary); }
.pd-btn-fav.pd-fav-active { background: var(--aps-secondary); color: #fff; }

/* Badge Nuevo/Destacado: nunca cortado */
.pd-badge-new, .pd-badge-featured {
    position: absolute; top: 12px; left: 12px; z-index: 2;
    white-space: nowrap !important; width: auto !important; max-width: none !important;
    height: auto !important; overflow: visible !important;
    padding: 3px 10px !important; font-size: 11px !important; font-weight: 700 !important;
    line-height: 1.5 !important; border-radius: 6px !important;
}
.pd-badge-featured { background: var(--aps-secondary) !important; color: #fff !important; }
.pd-badge-new { background: var(--aps-primary) !important; color: #fff !important; }

/* Tarjeta "únete" al final del directorio */
.pd-join-card { background: linear-gradient(135deg, var(--aps-primary) 0%, var(--aps-primary-dark) 100%) !important; border: 0 !important; color: #fff !important; }
.pd-join-inner { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: 22px 18px; }
.pd-join-card h3 { color: #fff !important; margin: 0; }
.pd-join-card p { color: rgba(255,255,255,.9) !important; margin: 0; font-size: .92rem; }
.pd-join-icon { width: 46px; height: 46px; border-radius: 50%; background: var(--aps-secondary); color: #fff; font-size: 28px; font-weight: 700; display: flex; align-items: center; justify-content: center; }

/* Estados vacíos / carga */
.pd-empty-state { text-align: center; padding: 2.5rem 1rem; }
.pd-loading { display: flex; justify-content: center; padding: 2rem; }
.pd-spinner { width: 34px; height: 34px; border: 3px solid var(--aps-hairline-2); border-top-color: var(--aps-secondary); border-radius: 50%; animation: pd-spin .8s linear infinite; }
@keyframes pd-spin { to { transform: rotate(360deg); } }

/* ============================================================================
   ASISTENTE DE PERFIL (wizard) — fácil de rellenar, opciones grandes
   ============================================================================ */
.pd-wizard {
    max-width: 720px; margin: 0 auto;
    background: var(--aps-card); color: var(--aps-card-text);
    border: 1px solid var(--aps-card-border); border-radius: var(--aps-radius-lg);
    box-shadow: var(--aps-shadow); padding: 1.6rem 1.85rem 1.5rem;
}
.pd-incomplete-card { background: #fff1ec !important; border: 1px solid #fcd9cd !important; color: var(--aps-card-text) !important; max-width: 720px; margin: 0 auto 1.25rem; }
.pd-incomplete-card strong { color: var(--aps-secondary-dark); }
/* .pd-muted vive sobre tarjeta clara aquí: usa el gris legible de tarjeta, no el de fondo navy */
.pd-wizard .pd-muted, .pd-incomplete-card .pd-muted { color: var(--aps-card-muted) !important; }

/* Progreso */
.pd-wiz-progress { margin-bottom: 1.6rem; }
.pd-wiz-dots { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
.pd-wiz-dot {
    width: 32px; height: 32px; border-radius: 50%; padding: 0;
    appearance: none; -webkit-appearance: none; font-family: inherit;
    display: flex; align-items: center; justify-content: center;
    font-weight: 800; font-size: .85rem; cursor: pointer;
    background: var(--aps-card-2); color: var(--aps-card-muted);
    border: 2px solid var(--aps-card-border-2); transition: all .15s; user-select: none;
}
.pd-wiz-dot:focus-visible { outline: 2px solid var(--aps-secondary); outline-offset: 2px; }
.pd-wiz-dot:hover { border-color: var(--aps-secondary); }
.pd-wiz-dot.is-active { background: var(--aps-primary); color: #fff; border-color: var(--aps-primary); }
.pd-wiz-dot.is-done { background: var(--aps-secondary); color: #fff; border-color: var(--aps-secondary); }
.pd-wiz-bar { height: 7px; border-radius: 999px; background: var(--aps-card-2); overflow: hidden; }
.pd-wiz-bar i { display: block; height: 100%; width: 20%; border-radius: 999px; background: linear-gradient(90deg, var(--aps-primary), var(--aps-secondary)); transition: width .3s ease; }
.pd-wiz-label { text-align: center; font-weight: 800; color: var(--aps-card-text); margin: 11px 0 0; font-size: .95rem; letter-spacing: -0.01em; }

/* Pasos */
.pd-step { display: none; animation: pd-wiz-fade .25s ease; }
.pd-step.is-active { display: block; }
@keyframes pd-wiz-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.pd-step h3 { margin: 0 0 1.25rem; color: var(--aps-primary) !important; font-size: 1.28rem; letter-spacing: -0.02em; }
.pd-step .pd-form-group { margin-bottom: 1.15rem; }
.pd-step .pd-form-group > label { display: block; font-weight: 700; color: var(--aps-card-text) !important; margin-bottom: .5rem; font-size: .95rem; }
.pd-step .pd-form-group > label small { font-weight: 500; }
.pd-form-row { display: flex; flex-wrap: wrap; gap: 1rem; }
.pd-form-row .pd-form-group { flex: 1 1 180px; }
.pd-required { color: var(--aps-secondary); font-weight: 800; }
.pd-input-euro { position: relative; display: flex; align-items: center; }
.pd-input-euro input { padding-right: 2rem; }
.pd-input-euro span { position: absolute; right: .85rem; color: var(--aps-card-muted); font-weight: 700; }

/* Tiles (una sola elección) — grandes, fáciles de tocar */
.pd-tile-group { display: flex; flex-wrap: wrap; gap: 10px; }
.pd-tile {
    appearance: none; -webkit-appearance: none; cursor: pointer; font-family: inherit;
    font-size: .95rem; font-weight: 700; line-height: 1.2;
    padding: .7rem 1.15rem; border-radius: 12px;
    border: 2px solid var(--aps-card-border-2); background: #fff; color: var(--aps-card-text);
    transition: all .15s;
}
.pd-tile:hover { border-color: var(--aps-secondary); color: var(--aps-secondary-dark); }
.pd-tile:focus-visible { outline: 2px solid var(--aps-secondary); outline-offset: 2px; }
.pd-tile.is-selected { border-color: var(--aps-secondary); background: var(--aps-secondary); color: #fff; box-shadow: 0 4px 14px rgba(234,88,12,.28); }
/* Pista NO basada solo en color: tilde en la opción elegida */
.pd-tile.is-selected::before { content: "\2713"; font-weight: 900; margin-right: .4em; }

/* Chips (varias opciones / checkbox) */
.pd-checkbox-grid { display: flex; flex-wrap: wrap; gap: 10px; }
.pd-checkbox-label {
    display: inline-flex; align-items: center; gap: .55rem; cursor: pointer;
    padding: .55rem 1rem; border-radius: 999px;
    border: 2px solid var(--aps-card-border-2); background: #fff; color: var(--aps-card-text);
    font-weight: 600; font-size: .92rem; transition: all .15s; user-select: none;
}
.pd-checkbox-label:hover { border-color: var(--aps-secondary); }
.pd-checkbox-label input { accent-color: var(--aps-secondary); width: 16px; height: 16px; cursor: pointer; }
.pd-checkbox-label.is-checked { border-color: var(--aps-secondary); background: rgba(234,88,12,.08); color: var(--aps-secondary-dark); }

/* Foto */
.pd-photo-upload { display: flex; align-items: center; gap: 14px; }
.pd-photo-preview { width: 76px; height: 76px; border-radius: 16px; object-fit: cover; border: 1px solid var(--aps-card-border); }
.pd-photo-empty { display: flex; align-items: center; justify-content: center; background: var(--aps-card-2); color: var(--aps-card-dim); font-size: .8rem; text-align: center; }

/* Navegación */
.pd-wiz-nav { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--aps-card-border); }
.pd-wiz-nav .pd-btn { min-width: 120px; }
.pd-wiz-nav #pd-save-all { margin-left: auto; }
.pd-char-counter { display: block; margin-top: 5px; font-size: .82rem; color: var(--aps-card-muted); }
.pd-field-hint { display: block; margin-top: 5px; font-size: .82rem; color: var(--aps-card-dim); }

/* Cabecera del panel sobre el navy */
.pd-dashboard-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; max-width: 720px; margin: 0 auto 1.25rem; }
.pd-dashboard-user { display: flex; align-items: center; gap: 12px; }
.pd-dashboard-avatar { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; border: 2px solid var(--aps-hairline-2); }
.pd-dashboard-header h1 { color: #fff !important; margin: 0; font-size: 1.4rem; }
.pd-rating-inline { color: var(--aps-ink-muted); font-size: .9rem; }
.pd-dashboard-actions-top { display: flex; gap: .5rem; flex-wrap: wrap; }

/* ============================================================================
   RESPONSIVE
   ============================================================================ */
@media (max-width: 980px) {
    .aps-editorial-layout { grid-template-columns: 1fr; gap: 1.75rem; }
    .aps-footer-inner { grid-template-columns: 1fr 1fr; gap: 2rem; }
    .pd-filters-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
    .aps-masthead { padding: 1.5rem .9rem 1rem; }
    .aps-nav { justify-content: flex-start; flex-wrap: nowrap; padding: 0 .5rem; }
    .aps-nav-link { font-size: .88rem; padding: .8rem .85rem; }
    .aps-container { padding-left: 1rem; padding-right: 1rem; }
    .aps-hero { padding: 2.25rem 1rem 1.75rem; }
    .aps-article-header { padding: 2rem 1rem 1rem; }
    .aps-article-body { padding: 1.5rem 1.25rem; margin: 1.25rem auto 2rem; }
    .aps-article-featured { padding: 1.25rem 1rem 0; }
    .aps-author-box { flex-direction: column; text-align: center; align-items: center; margin: 0 1rem; }
    /* Máximo 2 por fila en móvil */
    .aps-grid, .aps-grid-2, .aps-grid-3, .aps-grid-cats { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .pd-providers-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
    .pd-filters-grid { grid-template-columns: 1fr; }
    .pd-wizard { padding: 1.25rem 1.1rem 1.25rem; }
    .pd-form-row { gap: .75rem; }
    .pd-form-row .pd-form-group { flex: 1 1 100%; }
    .pd-wiz-nav { flex-wrap: wrap; }
    .pd-wiz-nav .pd-btn { flex: 1 1 auto; min-width: 0; }
    .pd-tile { flex: 1 1 auto; text-align: center; }
    .pd-dashboard-header { justify-content: center; text-align: center; }
}
@media (max-width: 460px) {
    /* En pantallas muy pequeñas, una sola columna */
    .aps-grid, .aps-grid-2, .aps-grid-3 { grid-template-columns: 1fr; }
    .aps-grid-cats { grid-template-columns: repeat(2, 1fr); }
    .pd-providers-grid { grid-template-columns: 1fr !important; }
    .aps-footer-inner { grid-template-columns: 1fr; gap: 1.75rem; }
    .aps-masthead-brand { font-size: 2rem; }
}

/* ============================================================================
   FAQ — preguntas frecuentes (acordeón nativo <details>, sin JS)
   ============================================================================ */
.aps-faq { max-width: 820px; margin: 0 auto; display: grid; gap: .7rem; }
.aps-faq-item {
    background: var(--aps-card); border: 1px solid var(--aps-card-border);
    border-radius: var(--aps-radius); overflow: hidden; transition: border-color .15s, box-shadow .15s;
}
.aps-faq-item[open] { border-color: var(--aps-secondary); box-shadow: var(--aps-shadow); }
.aps-faq-q {
    cursor: pointer; list-style: none; padding: 1.05rem 1.3rem;
    font-weight: 700; font-size: 1.04rem; color: var(--aps-card-text);
    display: flex; justify-content: space-between; align-items: center; gap: 1rem;
}
.aps-faq-q::-webkit-details-marker { display: none; }
.aps-faq-q::after {
    content: "+"; font-size: 1.55rem; font-weight: 400; line-height: 1;
    color: var(--aps-secondary); flex: 0 0 auto; transition: transform .2s;
}
.aps-faq-item[open] .aps-faq-q::after { content: "\2212"; }
.aps-faq-q:hover { color: var(--aps-secondary-dark); }
.aps-faq-a { padding: 0 1.3rem 1.15rem; color: var(--aps-card-muted); line-height: 1.65; }
.aps-faq-a a { color: var(--aps-secondary-dark); font-weight: 600; }


/* ============================================================================
   ANDOPISO 3.0 — directorio único (dos lados), panel con selector de modo,
   tarjetas de habitación, galería del piso y mapas de zona aproximada
   ============================================================================ */

/* Selector de lado del directorio */
.pd-side-switch { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; max-width: 760px; margin: 0 auto 1.1rem; }
.pd-side-btn {
    appearance: none; -webkit-appearance: none; cursor: pointer; font-family: inherit; text-align: left;
    display: flex; align-items: center; gap: 12px; padding: .85rem 1rem;
    background: var(--aps-bg-soft); color: var(--aps-ink); border: 2px solid var(--aps-hairline-2); border-radius: var(--aps-radius-lg);
    transition: all .15s;
}
.pd-side-btn:hover { border-color: rgba(255,255,255,.4); }
.pd-side-btn.is-active { background: #fff; color: var(--aps-card-text); border-color: var(--aps-secondary); box-shadow: 0 6px 20px rgba(234,88,12,.25); }
.pd-side-ic { font-size: 1.6rem; line-height: 1; flex: 0 0 auto; }
.pd-side-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pd-side-txt strong { font-size: 1rem; line-height: 1.2; }
.pd-side-txt small { font-size: .78rem; opacity: .8; line-height: 1.2; }
.pd-side-btn.is-active .pd-side-txt small { color: var(--aps-card-muted); opacity: 1; }

.pd-dir-topbar { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 1rem; }
.pd-dir-count { color: var(--aps-ink-muted); font-weight: 700; font-size: .9rem; }
.pd-dir-tools { display: flex; gap: 8px; }
.pd-filters-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.pd-filter-checks { display: flex; flex-wrap: wrap; gap: 6px 14px; padding-top: 6px; }
.pd-check-inline { display: inline-flex; align-items: center; gap: 6px; font-size: .9rem; color: var(--aps-card-text); cursor: pointer; }
.pd-check-inline input { accent-color: var(--aps-secondary); width: 16px; height: 16px; }

/* Mapa del directorio */
.pd-dir-map-wrap { margin-bottom: 1.25rem; }
.pd-dir-map { height: 520px; border-radius: var(--aps-radius-lg); overflow: hidden; border: 1px solid var(--aps-hairline-2); background: #dfe7f2; }
.pd-dir-map-hint { color: var(--aps-ink-muted); font-size: .85rem; margin: 8px 0 0; text-align: center; }
.pd-map-pop { display: flex; flex-direction: column; gap: 4px; min-width: 160px; }
.pd-map-pop img { width: 100%; height: 100px; object-fit: cover; border-radius: 8px; margin-bottom: 4px; }
.pd-map-pop strong { font-size: 1.05rem; color: var(--aps-primary); }
.pd-map-pop span { font-size: .85rem; color: var(--aps-card-muted); }
.pd-map-pop a { font-weight: 700; color: var(--aps-secondary-dark); }
.leaflet-container { font-family: inherit; }

/* Tarjeta de habitación (tengo piso) */
.pd-flat-card .pd-provider-inner { padding-top: 30px; }
.pd-flat-cover { position: relative; margin: -30px -16px 12px; height: 170px; overflow: hidden; border-radius: var(--aps-radius-lg) var(--aps-radius-lg) 0 0; background: var(--aps-card-2); }
.pd-flat-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-flat-photos { position: absolute; right: 10px; bottom: 10px; background: rgba(9,18,51,.75); color: #fff; font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 6px; }
.pd-flat-card .pd-badge-new, .pd-flat-card .pd-badge-featured { top: 12px; left: 12px; }
.pd-flat-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding-top: 12px; }
.pd-flat-card .pd-flat-cover + .pd-flat-head { padding-top: 0; }
.pd-flat-price { font-size: 1.45rem; font-weight: 900; color: var(--aps-primary); letter-spacing: -0.02em; }
.pd-flat-price small { font-size: .85rem; font-weight: 700; color: var(--aps-card-muted); margin-left: 2px; }
.pd-flat-city { font-weight: 700; color: var(--aps-card-text); font-size: .95rem; text-align: right; }
.pd-flat-specs { font-size: .88rem; color: var(--aps-card-muted); font-weight: 600; }
.pd-flat-owner { padding-top: 6px; border-top: 1px dashed var(--aps-card-border); }
.pd-flat-owner .pd-provider-thumb, .pd-flat-owner .pd-provider-thumb-ini { width: 44px; height: 44px; border-radius: 50%; font-size: 20px; }
.pd-flat-owner h3 { font-size: .95rem !important; }
.pd-chip-ok { background: rgba(22,163,74,.12) !important; color: #15803d !important; border-color: rgba(22,163,74,.3) !important; }
/* Quien ya esta en Andorra y quien viene de camino */
.pd-chip-inc { background: #eef4ff !important; color: #1d4ed8 !important; border-color: #c7d8ff !important; }
.pd-chip-inc.is-viaje { background: #fff4e8 !important; color: #c2410c !important; border-color: #ffd9b8 !important; }

/* Panel: selector de modo */
.pd-mode-card { max-width: 720px; margin: 0 auto 1.25rem; background: var(--aps-card); border: 1px solid var(--aps-card-border); border-radius: var(--aps-radius-lg); box-shadow: var(--aps-shadow); padding: 1.25rem 1.5rem; color: var(--aps-card-text); }
.pd-mode-title { margin: 0 0 .75rem; font-weight: 800; color: var(--aps-primary); font-size: 1.05rem; }
.pd-mode-switch { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pd-mode-btn {
    appearance: none; -webkit-appearance: none; cursor: pointer; font-family: inherit; text-align: left;
    display: flex; flex-direction: column; gap: 4px; padding: .9rem 1rem;
    background: #fff; color: var(--aps-card-text); border: 2px solid var(--aps-card-border-2); border-radius: 14px; transition: all .15s;
}
.pd-mode-btn:hover { border-color: var(--aps-secondary); }
.pd-mode-btn.is-active { border-color: var(--aps-secondary); background: rgba(234,88,12,.07); box-shadow: 0 4px 14px rgba(234,88,12,.18); }
.pd-mode-btn.is-active strong::before { content: "\2713"; margin-right: .4em; color: var(--aps-secondary); }
.pd-mode-btn:disabled { opacity: .6; cursor: wait; }
.pd-mode-ic { font-size: 1.5rem; line-height: 1; }
.pd-mode-btn strong { font-size: 1rem; line-height: 1.2; }
.pd-mode-btn small { font-size: .8rem; color: var(--aps-card-muted); line-height: 1.3; }
.pd-mode-hint { margin: .85rem 0 0; font-size: .88rem; color: var(--aps-card-muted); }
.pd-favs-card { max-width: 720px; margin: 0 auto 1.25rem; }
.pd-favs-card h3 { margin-top: 0; }
.pd-mini-list { display: flex; flex-direction: column; gap: 6px; }
.pd-mini-item { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 10px; color: var(--aps-card-text); }
.pd-mini-item:hover { background: var(--aps-card-2); }
.pd-mini-avatar { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; }
.pd-mini-avatar-placeholder { display: inline-flex; align-items: center; justify-content: center; background: var(--aps-primary); color: #fff; font-weight: 800; }
.pd-mini-info { display: flex; flex-direction: column; }
.pd-mini-info small { color: var(--aps-card-muted); }

/* Panel: mapa de zona + galería */
.pd-map-flat { height: 300px; border-radius: 12px; overflow: hidden; border: 1px solid var(--aps-card-border-2); background: #dfe7f2; }
.pd-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; }
.pd-gallery-item { position: relative; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; border: 1px solid var(--aps-card-border); background: var(--aps-card-2); }
.pd-gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-gallery-del { position: absolute; top: 6px; right: 6px; width: 26px; height: 26px; border-radius: 50%; border: 0; background: rgba(9,18,51,.75); color: #fff; font-size: 18px; line-height: 1; cursor: pointer; }
.pd-gallery-del:hover { background: #dc2626; }
.pd-gallery-add { aspect-ratio: 4 / 3; border: 2px dashed var(--aps-card-border-2); border-radius: 12px; background: #fff; color: var(--aps-secondary-dark); font-weight: 800; font-family: inherit; cursor: pointer; font-size: .95rem; }
.pd-gallery-add:hover { border-color: var(--aps-secondary); background: rgba(234,88,12,.05); }
.pd-gallery-add:disabled { opacity: .6; cursor: wait; }

/* Ficha: galería, mapa, visor */
.pd-cv-gallery { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-auto-rows: 150px; gap: 8px; margin-bottom: 1.25rem; border-radius: var(--aps-radius-lg); overflow: hidden; }
.pd-cv-gal-item { display: block; overflow: hidden; background: var(--aps-card-2); }
.pd-cv-gal-item.is-main { grid-row: span 2; }
.pd-cv-gal-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .2s; }
.pd-cv-gal-item:hover img { transform: scale(1.03); }
.pd-cv-gal-item:nth-child(n+6) { display: none; }
.pd-cv-badge-mode { background: var(--aps-primary) !important; color: #fff !important; }
.pd-cv-map { height: 280px; border-radius: 12px; overflow: hidden; border: 1px solid var(--aps-card-border); background: #dfe7f2; }
.pd-lightbox { position: fixed; inset: 0; z-index: 9999; background: rgba(5,12,38,.92); display: flex; align-items: center; justify-content: center; }
.pd-lightbox img { max-width: 92vw; max-height: 88vh; border-radius: 10px; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.pd-lb-close, .pd-lb-prev, .pd-lb-next { position: absolute; border: 0; background: rgba(255,255,255,.12); color: #fff; cursor: pointer; font-size: 30px; line-height: 1; width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.pd-lb-close:hover, .pd-lb-prev:hover, .pd-lb-next:hover { background: var(--aps-secondary); }
.pd-lb-close { top: 16px; right: 16px; }
.pd-lb-prev { left: 16px; top: 50%; transform: translateY(-50%); }
.pd-lb-next { right: 16px; top: 50%; transform: translateY(-50%); }

@media (max-width: 720px) {
    .pd-side-switch { grid-template-columns: 1fr; }
    .pd-mode-switch { grid-template-columns: 1fr; }
    .pd-dir-map { height: 380px; }
    .pd-cv-gallery { grid-template-columns: 1fr 1fr; grid-auto-rows: 120px; }
    .pd-cv-gal-item.is-main { grid-column: span 2; }
    .pd-cv-gal-item:nth-child(n+4) { display: none; }
    .pd-flat-head { flex-direction: column; align-items: flex-start; gap: 2px; }
    .pd-flat-city { text-align: left; }
}
/* Galería de la ficha con pocas fotos: no dejar huecos */
.pd-cv-gallery:has(.pd-cv-gal-item:first-child:last-child) { grid-template-columns: 1fr; grid-auto-rows: 320px; }
.pd-cv-gallery:has(.pd-cv-gal-item:nth-child(2):last-child) { grid-template-columns: 1fr 1fr; grid-auto-rows: 300px; }
.pd-cv-gallery:has(.pd-cv-gal-item:nth-child(-n+2):last-child) .pd-cv-gal-item.is-main { grid-row: auto; }

/* ── Legibilidad: dentro de tarjetas BLANCAS los botones "outline" van en azul
   oscuro (antes salían blancos sobre blanco) y los textos naranja pasan a azul ── */
.pd-card .pd-btn-outline, .pd-wizard .pd-btn-outline, .pd-mode-card .pd-btn-outline,
.pd-filters-panel .pd-btn-outline, .pd-cv .pd-btn-outline, .pd-provider-card .pd-btn-outline,
.pd-chat-wrapper .pd-btn-outline, .pd-modal-content .pd-btn-outline, .pd-login-card .pd-btn-outline,
.pd-done-card .pd-btn-outline {
    color: var(--aps-primary) !important; border: 2px solid var(--aps-primary) !important; background: #fff !important;
}
.pd-card .pd-btn-outline:hover, .pd-wizard .pd-btn-outline:hover, .pd-filters-panel .pd-btn-outline:hover,
.pd-cv .pd-btn-outline:hover, .pd-chat-wrapper .pd-btn-outline:hover, .pd-modal-content .pd-btn-outline:hover,
.pd-done-card .pd-btn-outline:hover {
    background: var(--aps-primary) !important; color: #fff !important;
}
/* Enlaces dentro de las pistas de formulario: azul, nunca el naranja claro */
.pd-wizard .pd-field-hint a, .pd-card .pd-field-hint a {
    color: var(--aps-primary) !important; text-decoration: underline; font-weight: 700;
}
.pd-btn-danger-outline { color: #b91c1c !important; border: 2px solid #b91c1c !important; background: #fff !important; }
.pd-dashboard-actions-top .pd-btn-danger-outline { background: transparent !important; color: #fff !important; border-color: rgba(255,255,255,.5) !important; }
.pd-provider-cta, .pd-provider-cta:hover { color: var(--aps-primary) !important; }
.pd-tile:hover { color: var(--aps-primary) !important; border-color: var(--aps-primary) !important; }
.pd-tile.is-selected, .pd-tile.is-selected:hover { color: #fff !important; }
.pd-checkbox-label.is-checked { color: var(--aps-primary) !important; background: rgba(30,58,138,.08) !important; border-color: var(--aps-primary) !important; }
.pd-gallery-add { color: var(--aps-primary) !important; border-color: var(--aps-primary) !important; }
.pd-map-pop a { color: var(--aps-primary) !important; }
.pd-incomplete-card strong { color: #9a3412 !important; }
.pd-cv-featured-link { color: var(--aps-primary) !important; }
.pd-link-more, .aps-link-more { color: #fff !important; }

/* Menú: Habitaciones / Gente que busca como botones bordeados (estilo andomes) */
.aps-nav-btn { border: 2px solid rgba(255,255,255,.55) !important; border-radius: 10px; padding: .45rem 1rem !important; font-weight: 800; color: #fff !important; }
.aps-nav-btn:hover { border-color: #fff !important; background: rgba(255,255,255,.08); }
@media (max-width: 640px) { .aps-nav-btn { padding: .4rem .7rem !important; } }

/* Menú centrado también en móvil */
.aps-nav { justify-content: center !important; align-items: center; flex-wrap: wrap; }
@media (max-width: 768px) { .aps-nav { justify-content: center !important; flex-wrap: wrap; } }

.pd-filter-wide { grid-column: 1 / -1; }
.pd-filter-checks .pd-check-inline { font-weight: 600; }

/* ── Móvil / legibilidad, ronda 2 ── */
/* Ficha: una sola tarjeta; las secciones interiores NO son tarjetas anidadas (se recortaban a la derecha) */
.pd-cv { background: #fff; border-radius: var(--aps-radius-lg); overflow: hidden; }
.pd-cv-side, .pd-cv-main { background: transparent !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important; min-width: 0; }
.pd-cv-side { background: var(--aps-card-2) !important; }
.pd-cv-block { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; border-radius: 0 !important; margin: 0 0 22px !important; }
.pd-cv-block:last-child { margin-bottom: 0 !important; }
.pd-cv-facts li, .pd-cv-about { overflow-wrap: anywhere; }
.pd-cv-about { color: var(--aps-card-text) !important; }
.pd-cv-h3 { color: var(--aps-primary) !important; }
.pd-chat-empty a, .pd-cv-side a, .pd-cv-main a:not(.pd-btn) { color: var(--aps-primary) !important; text-decoration: underline; }
@media (max-width: 720px) {
    .pd-cv-side, .pd-cv-main { padding: 18px 16px !important; }
    .pd-cv-head { padding: 22px 16px !important; }
    .pd-cv-actions { flex-direction: column; }
    .pd-cv-actions .pd-btn { width: 100%; justify-content: center; }
}
/* Panel: botones de la cabecera apilados a todo el ancho en móvil */
@media (max-width: 640px) {
    .pd-dashboard-header { flex-direction: column; align-items: stretch; }
    .pd-dashboard-user { justify-content: center; }
    .pd-dashboard-actions-top { flex-direction: column; width: 100%; }
    .pd-dashboard-actions-top .pd-btn { width: 100%; justify-content: center; text-align: center; }
    .pd-wizard { padding: 1.2rem 1rem 1.25rem; }
    .pd-mode-card { padding: 1rem; }
    .pd-wiz-nav .pd-btn { min-width: 0; flex: 1 1 auto; }
    .pd-form-row .pd-form-group { flex: 1 1 100%; }
    .pd-filters-grid { grid-template-columns: 1fr !important; }
    .pd-dir-topbar { flex-wrap: wrap; }
    .pd-dir-count { width: 100%; }
}
/* Menú compacto en móvil: que quepan los cuatro enlaces */
@media (max-width: 480px) {
    .aps-nav { gap: .3rem; padding: 0 .4rem; }
    .aps-nav-link { font-size: .8rem !important; padding: .55rem .45rem !important; }
    .aps-nav-btn { padding: .35rem .55rem !important; }
    .aps-masthead-tag { font-size: .85rem; padding: 0 1rem; }
}
@media (max-width: 480px) {
    .aps-nav { display: grid !important; grid-template-columns: 1fr 1fr; gap: .4rem; padding: .5rem .6rem; }
    .aps-nav-link { text-align: center; padding: .5rem .3rem !important; white-space: nowrap; }
    .aps-nav-btn { padding: .45rem .3rem !important; }
}

/* Login: sus pasos no son los del asistente (el .pd-step{display:none} del wizard los ocultaba) */
.pd-login-wrapper .pd-step { display: block; }
.pd-login-wrapper .pd-step[style*="display:none"], .pd-login-wrapper .pd-step[style*="display: none"] { display: none; }

/* Avatares sin foto en el chat: inicial sobre azul */
.pd-av-ini { display: inline-flex !important; align-items: center; justify-content: center; background: var(--aps-primary); color: #fff; font-weight: 800; }
.pd-chat-header-avatar.pd-av-ini { width: 36px; height: 36px; border-radius: 50%; }
.pd-message-avatar.pd-av-ini { width: 32px; height: 32px; border-radius: 50%; font-size: 14px; }
.pd-chat-item-avatar.pd-av-ini { width: 44px; height: 44px; border-radius: 50%; }
/* Galería de la ficha: rejilla sin huecos según nº de fotos */
.pd-cv-gallery:has(.pd-cv-gal-item:nth-child(3):last-child) { grid-template-columns: 2fr 1fr; grid-auto-rows: 150px; }
.pd-cv-gallery:has(.pd-cv-gal-item:nth-child(4):last-child) { grid-template-columns: 1fr 1fr; grid-auto-rows: 170px; }
.pd-cv-gallery:has(.pd-cv-gal-item:nth-child(4):last-child) .pd-cv-gal-item.is-main { grid-row: auto; }

.pd-providers-grid.pd-hidden { display: none !important; }
/* Campo de fecha que aparece al elegir "Antes de una fecha" */
.pd-date-wrap { display: none; margin-top: 10px; padding: 12px 14px; background: var(--aps-card-2); border: 1px solid var(--aps-card-border); border-radius: 12px; }
.pd-date-label { display: block; font-weight: 700; font-size: .88rem; color: var(--aps-card-text) !important; margin-bottom: 6px; }
.pd-date-wrap input[type=date] { width: auto; min-width: 180px; padding: .6rem .75rem; border: 2px solid var(--aps-card-border-2); border-radius: 10px; font-family: inherit; font-size: .95rem; color: var(--aps-card-text); background: #fff; }
.pd-date-wrap input[type=date]:focus { outline: none; border-color: var(--aps-secondary); }

/* ══ CONTRASTE (auditoría 10-09-2026) ══
   Nada de texto claro sobre naranja claro ni azul sobre azul. */
/* 1) Naranja de botones: el de marca (#ea580c) con texto blanco da 3,5:1. Los
      botones usan el tono oscuro (4,9:1); el claro se queda para acentos. */
.pd-btn-primary, .aps-btn-primary { background: var(--aps-secondary-dark) !important; border-color: var(--aps-secondary-dark) !important; color: #fff !important; }
.pd-btn-primary:hover, .aps-btn-primary:hover { background: #9a3412 !important; border-color: #9a3412 !important; color: #fff !important; }
.pd-badge-featured, .pd-cv-badge-feat { background: var(--aps-secondary-dark) !important; color: #fff !important; }

/* 2) "Ver piso y contactar": botón azul sólido con texto BLANCO (en móvil el
      plugin le pone fondo azul y el color heredado quedaba azul sobre azul). */
.pd-provider-bottom-actions { padding: 0 16px 14px; }
.pd-provider-bottom-actions .pd-provider-cta {
    display: flex; align-items: center; justify-content: center;
    min-height: 44px; padding: 10px 14px; border-radius: 12px;
    background: var(--aps-primary) !important; color: #fff !important;
    font-weight: 700; font-size: .92rem; text-decoration: none;
}
.pd-provider-bottom-actions .pd-provider-cta:hover { background: var(--aps-primary-dark) !important; color: #fff !important; }
.pd-card-featured .pd-provider-bottom-actions .pd-provider-cta { background: var(--aps-secondary-dark) !important; color: #fff !important; }

/* 3) Corazón de favoritos: azul de marca sobre blanco (el naranja daba 3,5:1) */
.pd-btn-fav { color: var(--aps-primary) !important; border-color: var(--aps-card-border-2) !important; }
.pd-btn-fav.pd-fav-active { background: var(--aps-secondary-dark) !important; color: #fff !important; border-color: var(--aps-secondary-dark) !important; }

/* 4) Iniciales de avatar: fondo sólido por si el degradado no carga */
.pd-provider-thumb-ini, .pd-cv-avatar-ph, .pd-fav-placeholder, .pd-mini-avatar-placeholder { background-color: var(--aps-primary) !important; color: #fff !important; }

/* 5) Enlaces sobre fondo claro: azul, nunca naranja */
.pd-chat-empty a, .pd-empty-text a, .pd-incomplete-notice a:not(.pd-btn) { color: var(--aps-primary) !important; text-decoration: underline; }
.pd-tile.is-selected, .pd-tile.is-selected:hover { background: var(--aps-secondary-dark) !important; border-color: var(--aps-secondary-dark) !important; color: #fff !important; }
.pd-photo-empty { color: var(--aps-card-muted) !important; background: var(--aps-card-2) !important; }
.pd-wiz-dot.is-done { background: var(--aps-secondary-dark) !important; border-color: var(--aps-secondary-dark) !important; color: #fff !important; }
.pd-join-icon, .pd-side-btn.is-active { color: inherit; }
.pd-join-icon { background: var(--aps-secondary-dark) !important; }
.pd-required { color: var(--aps-secondary-dark) !important; }
.pd-field-hint, .pd-char-counter, .pd-dir-map-hint { color: var(--aps-card-muted) !important; }
.pd-field-hint strong { color: var(--aps-card-text) !important; }
.pd-cv-fact-k { color: var(--aps-card-muted) !important; }

/* Home: los h3 sueltos dentro de tarjetas blancas salían en blanco (ilegibles) */
.aps-card h3, .aps-card p, .aps-faq-item, .aps-faq-a { color: var(--aps-card-text) !important; }
.aps-card p, .aps-faq-a { color: var(--aps-card-muted) !important; }
.aps-side-cat, .aps-card-cat { color: var(--aps-secondary-dark) !important; }
.aps-section[style] .aps-btn { background: var(--aps-secondary-dark) !important; color: #fff !important; }
/* Ficha: cabecera azul, textos secundarios legibles */
.pd-cv-rate-from, .pd-cv-rate-unit { color: rgba(255,255,255,.88) !important; }
/* Chat: título de la lista sobre tarjeta blanca */
.pd-chat-wrapper h3, .pd-chat-sidebar h3, .pd-chat-list-header { color: var(--aps-card-text) !important; }
/* Artículos: metadatos y enlaces legibles sobre blanco */
.aps-article-body label, .aps-single-meta label, .aps-article-body small { color: var(--aps-card-muted) !important; }
.aps-article-body a { color: var(--aps-primary) !important; }
.aps-article-body a:hover { color: var(--aps-primary-dark) !important; }

/* CTA de los artículos: van sobre el navy, así que texto claro (no azul) */
.aps-cta-box, .aps-related { color: var(--aps-ink) !important; }
.aps-cta-box a, .aps-related a, .aps-related h3 a { color: #fff !important; font-weight: 800; text-decoration: underline; }
.aps-cta-box a:hover, .aps-related a:hover { color: var(--aps-secondary-light) !important; }
.aps-article-body label, .aps-single-meta label { color: var(--aps-ink-muted) !important; }
.aps-article-body .aps-cta-box a { color: #fff !important; }
/* Cualquier botón/píldora naranja de marca con texto blanco → tono oscuro (4,9:1) */
.aps-cta-box a, .aps-cta-box a:hover, .page-numbers.current, .aps-pagination .current,
.aps-badge, .aps-tag-orange { background: var(--aps-secondary-dark) !important; color: #fff !important; text-decoration: none !important; }
.aps-article-body label, .aps-single-meta label, .aps-article-meta label { color: var(--aps-ink) !important; }
.aps-author .label, .info .label, span.label { color: var(--aps-ink-muted) !important; filter: brightness(1.18); }

/* ════════ LOGIN compacto (móvil primero) ════════ */
.pd-login-wrapper { display: flex; justify-content: center; padding: 1.25rem 0 2rem; }
.pd-login-card {
    width: 100%; max-width: 430px; background: var(--aps-card); color: var(--aps-card-text);
    border: 1px solid var(--aps-card-border); border-radius: var(--aps-radius-lg);
    box-shadow: var(--aps-shadow-md); padding: 1.5rem 1.35rem 1.4rem;
}
.pd-login-card .pd-login-title { color: var(--aps-card-text) !important; font-size: 1.35rem; margin: 0 0 .35rem; text-align: center; letter-spacing: -0.02em; }
.pd-login-card .pd-login-subtitle { color: var(--aps-card-muted) !important; font-size: .93rem; margin: 0 0 1.1rem; text-align: center; line-height: 1.45; }
.pd-login-note { color: var(--aps-card-muted) !important; font-size: .8rem; text-align: center; margin: .8rem 0 0; line-height: 1.4; }
.pd-login-error { color: #b91c1c; font-weight: 700; text-align: center; margin: 0 0 .8rem; }
.pd-login-actions { display: flex; flex-direction: column; gap: .55rem; }
.pd-login-actions .pd-btn { width: 100%; justify-content: center; }
.pd-btn-block { display: flex !important; width: 100%; justify-content: center; }

.pd-google-button {
    display: flex; align-items: center; justify-content: center; gap: .6rem; width: 100%;
    min-height: 50px; padding: .8rem 1rem; cursor: pointer; font-family: inherit;
    font-size: 1rem; font-weight: 700; color: var(--aps-card-text);
    background: #fff; border: 2px solid var(--aps-card-border-2); border-radius: 12px; transition: all .15s;
}
.pd-google-button:hover { border-color: var(--aps-primary); background: #f8fafc; }

/* Tarjetas de situación: fila compacta icono + texto */
.pd-role-cards { display: flex; flex-direction: column; gap: .6rem; margin-bottom: 1rem; }
.pd-role-card {
    display: flex; align-items: center; gap: .8rem; width: 100%; text-align: left;
    padding: .85rem .9rem; cursor: pointer; font-family: inherit;
    background: #fff; color: var(--aps-card-text);
    border: 2px solid var(--aps-card-border-2); border-radius: 14px; transition: all .15s;
}
.pd-role-card:hover { border-color: var(--aps-secondary-dark); }
.pd-role-card.is-selected { border-color: var(--aps-secondary-dark); background: rgba(194,65,12,.07); box-shadow: 0 4px 14px rgba(194,65,12,.16); }
.pd-role-card.is-selected .pd-role-txt strong::before { content: "\2713 "; color: var(--aps-secondary-dark); }
.pd-role-icon { font-size: 1.6rem; line-height: 1; flex: 0 0 auto; }
.pd-role-txt { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.pd-role-txt strong { font-size: .98rem; line-height: 1.25; }
.pd-role-txt small { font-size: .8rem; color: var(--aps-card-muted); line-height: 1.3; }

/* Condiciones */
.pd-terms-box { background: var(--aps-card-2); border: 1px solid var(--aps-card-border); border-radius: 12px; padding: .6rem .75rem; margin-bottom: .8rem; }
.pd-terms-head { margin: 0 0 .5rem; font-weight: 800; font-size: .88rem; color: var(--aps-primary) !important; text-transform: uppercase; letter-spacing: .03em; }
.pd-terms-list { margin: 0 0 .8rem; padding-left: 1.05rem; display: flex; flex-direction: column; gap: .35rem; }
.pd-terms-list li { font-size: .85rem; line-height: 1.45; color: var(--aps-card-text); }
.pd-terms-check { display: flex; align-items: flex-start; gap: .55rem; cursor: pointer; font-size: .85rem; line-height: 1.4; color: var(--aps-card-text); }
.pd-terms-check input { width: 20px; height: 20px; margin-top: 1px; accent-color: var(--aps-secondary-dark); flex: 0 0 auto; cursor: pointer; }
.pd-terms-check a, .pd-gate-check a { color: var(--aps-primary) !important; text-decoration: underline; font-weight: 700; }
.pd-btn-primary:disabled, .pd-btn:disabled { opacity: .5; cursor: not-allowed; }

/* Puerta de condiciones del panel */
.pd-gate-wrapper { display: flex; justify-content: center; padding: 1.25rem 0 2.5rem; }
.pd-gate-card { width: 100%; max-width: 560px; background: var(--aps-card); color: var(--aps-card-text); border: 1px solid var(--aps-card-border); border-radius: var(--aps-radius-lg); box-shadow: var(--aps-shadow-md); padding: 1.6rem 1.4rem; }
.pd-gate-title { margin: 0 0 .4rem; font-size: 1.4rem; color: var(--aps-card-text) !important; }
.pd-gate-lead { margin: 0 0 1rem; color: var(--aps-card-muted); font-size: .95rem; }
.pd-gate-list { margin: 0 0 1.1rem; padding-left: 1.1rem; display: flex; flex-direction: column; gap: .5rem; }
.pd-gate-list li { font-size: .9rem; line-height: 1.5; }
.pd-gate-check { display: flex; align-items: flex-start; gap: .6rem; cursor: pointer; font-size: .9rem; line-height: 1.45; background: var(--aps-card-2); border: 1px solid var(--aps-card-border); border-radius: 12px; padding: .8rem .9rem; margin-bottom: 1rem; }
.pd-gate-check input { width: 20px; height: 20px; margin-top: 1px; accent-color: var(--aps-secondary-dark); flex: 0 0 auto; }
.pd-gate-actions { display: flex; flex-direction: column; gap: .55rem; }
.pd-gate-actions .pd-btn { width: 100%; justify-content: center; }
@media (min-width: 560px) { .pd-gate-actions { flex-direction: row; } .pd-gate-actions .pd-btn { width: auto; } }
/* Login: pegado arriba (el plugin lo centraba en 70vh y dejaba un hueco enorme) */
.pd-login-wrapper { align-items: flex-start !important; min-height: 0 !important; padding: 1.25rem 1rem 2.5rem !important; }
.pd-login-card { text-align: center; }
.pd-terms-list, .pd-terms-check, .pd-role-card { text-align: left; }
.pd-terms-list li { text-align: left; }
@media (max-width: 400px) {
    .pd-role-txt strong { font-size: .92rem; }
    .pd-role-icon { font-size: 1.4rem; }
    .pd-role-card { padding: .75rem .8rem; gap: .65rem; }
    .pd-terms-list li { font-size: .82rem; }
    .pd-login-card { padding: 1.25rem 1.1rem 1.2rem; }
}
/* Interruptor de avisos por correo */
.pd-notify-row { background: var(--aps-card-2); border: 1px solid var(--aps-card-border); border-radius: 12px; padding: .85rem .95rem; }
.pd-switch-label { display: flex; align-items: flex-start; gap: .6rem; cursor: pointer; }
.pd-switch-label input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--aps-secondary-dark); flex: 0 0 auto; }
.pd-switch-label span { display: flex; flex-direction: column; gap: 2px; }
.pd-switch-label strong { font-size: .95rem; color: var(--aps-card-text); }
.pd-switch-label small { font-size: .82rem; color: var(--aps-card-muted); line-height: 1.4; }
/* Condiciones: desplegable con el texto completo */
.pd-terms-more { margin: 0 0 .8rem; border-top: 1px solid var(--aps-card-border); padding-top: .7rem; }
.pd-terms-more summary { cursor: pointer; font-weight: 800; font-size: .87rem; color: var(--aps-primary); list-style: none; display: flex; align-items: center; gap: .4rem; }
.pd-terms-more summary::-webkit-details-marker { display: none; }
.pd-terms-more summary::before { content: "▸"; font-size: .9em; transition: transform .15s; }
.pd-terms-more[open] summary::before { transform: rotate(90deg); }
.pd-terms-more summary:hover { color: var(--aps-secondary-dark); }
.pd-terms-full { max-height: 320px; overflow-y: auto; margin-top: .7rem; padding: .8rem .9rem; background: #fff; border: 1px solid var(--aps-card-border); border-radius: 10px; -webkit-overflow-scrolling: touch; }
.pd-terms-full h4 { margin: 0 0 .35rem; font-size: .88rem; color: var(--aps-primary) !important; }
.pd-terms-full h4:not(:first-child) { margin-top: .9rem; }
.pd-terms-full p, .pd-terms-full li { font-size: .82rem; line-height: 1.5; color: var(--aps-card-text); margin: 0 0 .5rem; }
.pd-terms-full ul { margin: 0 0 .5rem; padding-left: 1.05rem; }
.pd-terms-full li { margin-bottom: .25rem; }
.pd-terms-law { font-size: .78rem !important; color: var(--aps-card-muted) !important; border-top: 1px solid var(--aps-card-border); padding-top: .5rem; margin-top: .7rem !important; }
.pd-terms-full a { color: var(--aps-primary) !important; text-decoration: underline; }
.pd-gate-card .pd-terms-box { margin-bottom: 1rem; }
.pd-terms-full, .pd-terms-full p, .pd-terms-full h4, .pd-terms-full li, .pd-terms-more summary { text-align: left; }

/* Condiciones: una línea discreta, el resto en el desplegable */
.pd-terms-mini { margin: 0 0 .5rem; font-size: .78rem; line-height: 1.4; color: var(--aps-card-text); opacity: .9; }
.pd-terms-more { margin: 0 0 .55rem; padding-top: .45rem; }
.pd-terms-more summary { font-size: .78rem; font-weight: 700; }
.pd-terms-check { font-size: .78rem; line-height: 1.35; }
.pd-terms-check input { width: 18px; height: 18px; }

/* ════════ Landings de zona y footer SEO ════════ */
.pd-zone-h1 { color: #fff !important; font-size: 1.6rem; line-height: 1.2; margin: 0 0 1rem; letter-spacing: -0.02em; text-align: center; max-width: 900px; margin-inline: auto; }
.pd-zone-foot { max-width: var(--aps-container); margin: 2.5rem auto 0; padding-top: 2rem; border-top: 1px solid var(--aps-hairline); }

/* Bloque de contenido propio: imagen + texto */
.pd-seo-block { display: grid; grid-template-columns: 400px 1fr; gap: 1.75rem; align-items: start; }
.pd-seo-block.pd-seo-noimg { grid-template-columns: 1fr; max-width: 800px; margin: 0 auto; }
.pd-seo-media { border-radius: var(--aps-radius-lg); overflow: hidden; background: var(--aps-bg-soft); border: 1px solid var(--aps-hairline-2); position: sticky; top: 5rem; }
.pd-seo-media img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.pd-seo-text { min-width: 0; color: var(--aps-ink-muted); font-size: .95rem; line-height: 1.65; }
.pd-seo-text h2 { color: #fff !important; font-size: 1.3rem; line-height: 1.25; margin: 0 0 .9rem; letter-spacing: -0.01em; }
.pd-seo-text p { margin: 0 0 .85rem; }
.pd-seo-text strong { color: #fff; }
.pd-seo-tips { margin: 0 0 1rem; padding: 0; list-style: none; display: flex; flex-direction: column; gap: .5rem; }
.pd-seo-tips li { position: relative; padding-left: 1.5rem; font-size: .92rem; }
.pd-seo-tips li::before { content: "✓"; position: absolute; left: 0; color: var(--aps-secondary-light); font-weight: 800; }
@media (max-width: 900px) {
    .pd-seo-block { grid-template-columns: 1fr; gap: 1.1rem; }
    .pd-seo-media { position: static; max-width: 520px; }
    .pd-seo-text h2 { font-size: 1.2rem; }
}
.pd-zone-intro { color: var(--aps-ink-muted); font-size: .95rem; line-height: 1.6; }
.pd-zone-intro p { margin: 0 0 .7rem; }
.pd-zone-intro strong { color: #fff; }
.pd-zone-data { background: var(--aps-bg-soft); border: 1px solid var(--aps-hairline-2); border-radius: 12px; padding: .7rem 1rem; display: inline-block; }
.pd-zone-cross a { color: #fff !important; font-weight: 800; text-decoration: underline; }
.pd-zone-links { font-size: .88rem; color: var(--aps-ink-dim); }
.pd-zone-links a { color: var(--aps-ink-muted) !important; text-decoration: underline; }
.pd-zone-links a:hover { color: #fff !important; }
@media (max-width: 640px) { .pd-zone-h1 { font-size: 1.3rem; text-align: left; } .pd-seo-text { font-size: .9rem; } }

.aps-footer-zonas { max-width: var(--aps-container); margin: 0 auto; padding: 1.5rem 1.5rem 0; border-top: 1px solid var(--aps-hairline); }
.aps-footer-zonas h4 { color: #fff; font-size: .92rem; margin: 1rem 0 .5rem; }
.aps-footer-zonalist { display: flex; flex-wrap: wrap; gap: .35rem .9rem; margin: 0 0 .5rem; }
.aps-footer-zonalist a { color: var(--aps-ink-dim) !important; font-size: .82rem; text-decoration: none; }
.aps-footer-zonalist a:hover { color: #fff !important; text-decoration: underline; }
.aps-footer-disclaimer { max-width: var(--aps-container); margin: 1.25rem auto 0; padding: 0 1.5rem; font-size: .82rem; color: var(--aps-ink-dim); }
.aps-footer-disclaimer a { color: var(--aps-ink-muted) !important; text-decoration: underline; }
.aps-nav-btn.current { background: var(--aps-secondary-dark) !important; border-color: var(--aps-secondary-dark) !important; }

/* ============================================================================
   HOME v2 — foto en el hero, parroquias y temas con imagen
   ============================================================================ */
.aps-hero-photo {
    background-size: cover;
    background-position: center;
    padding: 4.5rem 1.25rem 3.5rem;
}
.aps-hero-data {
    display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; justify-content: center;
    margin: 1.6rem 0 0; font-size: .95rem; color: var(--aps-ink-muted);
}
.aps-hero-data span { display: inline-flex; align-items: center; gap: .35rem; }
.aps-hero-data strong { color: #fff; font-weight: 800; }
.aps-section-first { margin-top: 2.5rem; }

/* Parroquias con foto (solo en la home; en el pie sigue la tarjeta simple) */
.aps-cat-card.aps-cat-photo {
    display: block; padding: 0; min-height: 0; overflow: hidden; text-align: left;
}
.aps-cat-photo img { display: block; width: 100%; height: 132px; object-fit: cover; transition: transform .4s; }
.aps-cat-photo:hover img { transform: scale(1.05); }
.aps-cat-photo .aps-cat-body { display: block; padding: .85rem 1rem 1rem; }
.aps-cat-photo h3 { font-size: 1.02rem; margin: 0 0 .2rem; }
.aps-cat-photo small { display: block; font-size: .82rem; color: var(--aps-card-muted); line-height: 1.35; }

/* Temas */
.aps-grid-temas { gap: 1.1rem; }
.aps-tema-card {
    position: relative; display: block; overflow: hidden; border-radius: var(--aps-radius);
    background: var(--aps-card); border: 1px solid var(--aps-card-border);
    box-shadow: var(--aps-shadow); text-decoration: none; min-height: 150px;
    transition: transform .2s, box-shadow .2s;
}
.aps-tema-card:hover { transform: translateY(-3px); box-shadow: var(--aps-shadow-md); }
.aps-tema-card img { display: block; width: 100%; height: 150px; object-fit: cover; }
.aps-tema-body {
    position: absolute; inset: auto 0 0 0; padding: 1.6rem .95rem .85rem;
    background: linear-gradient(180deg, rgba(10,20,50,0), rgba(10,20,50,.9));
}
.aps-tema-body strong { color: #fff; font-size: .98rem; font-weight: 800; line-height: 1.3; letter-spacing: -0.01em; }

/* Lista lateral de artículos con miniatura */
.aps-side-item a { display: flex; gap: .85rem; align-items: flex-start; }
.aps-side-thumb { flex: 0 0 88px; }
.aps-side-thumb img { display: block; width: 88px; height: 66px; object-fit: cover; border-radius: 8px; }
.aps-side-text { min-width: 0; }
.aps-side-text .aps-side-cat { margin-bottom: .25rem; }

@media (max-width: 640px) {
    .aps-hero-photo { padding: 3rem 1rem 2.25rem; }
    .aps-cat-photo img { height: 108px; }
    .aps-tema-card img, .aps-tema-card { min-height: 128px; height: auto; }
    .aps-tema-card img { height: 128px; }
    .aps-hero-data { font-size: .88rem; gap: .35rem 1rem; }
}

/* Pie: cuatro columnas exactas, sin columnas sueltas que dejen hueco */
.aps-footer .brand-block p { max-width: 34ch; }
.aps-footer .brand-block strong { color: #fff; }
.aps-footer-cta a { color: var(--aps-secondary-light); font-weight: 700; }
@media (min-width: 1101px) { .aps-footer-inner { grid-template-columns: 1.5fr 1fr 1fr .8fr; } }

/* ============================================================================
   FRANJA «JUNTAOS Y ALQUILAD UN PISO ENTERO» (home)
   Tarjeta blanca: nada de naranja dentro, los acentos van en azul de marca.
   ============================================================================ */
.aps-together {
    display: flex;
    align-items: center;
    gap: 1.75rem;
    margin: 2.25rem 0 .5rem;
    padding: 1.6rem 1.8rem;
    background: var(--aps-card);
    border: 1px solid var(--aps-card-border);
    border-left: 6px solid var(--aps-primary);
    border-radius: var(--aps-radius);
    box-shadow: var(--aps-shadow);
}
.aps-together-txt { flex: 1 1 auto; min-width: 0; }
.aps-together h2 {
    margin: 0 0 .5rem;
    font-size: 1.3rem;
    line-height: 1.25;
    color: var(--aps-primary);
}
.aps-together p {
    margin: 0;
    color: var(--aps-card-text);
    font-size: .98rem;
    line-height: 1.55;
    max-width: 68ch;
}
.aps-together-actions {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: .6rem;
    text-align: center;
}
.aps-together-link { color: var(--aps-primary); font-weight: 700; font-size: .92rem; }
.aps-together-link:hover { color: var(--aps-primary-dark); text-decoration: underline; }

@media (max-width: 860px) {
    .aps-together { flex-direction: column; align-items: flex-start; gap: 1.1rem; padding: 1.35rem 1.25rem; }
    .aps-together h2 { font-size: 1.15rem; }
    .aps-together-actions { width: 100%; }
}
