/* ══ site-fixes.css — correcciones de auditoría (2026-10) ══
   1) Fuentes autoalojadas (Inter, Syne · licencia OFL) — sin peticiones a Google.
   2) Foco visible, enlaces legales del pie, avisos de IA, FAQ de la home. */
/* inter-latin-ext-wght-normal */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(../assets/fonts/inter-latin-ext-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* inter-latin-wght-normal */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(../assets/fonts/inter-latin-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* syne-latin-ext-wght-normal */
@font-face {
  font-family: 'Syne';
  font-style: normal;
  font-display: swap;
  font-weight: 400 800;
  src: url(../assets/fonts/syne-latin-ext-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* syne-latin-wght-normal */
@font-face {
  font-family: 'Syne';
  font-style: normal;
  font-display: swap;
  font-weight: 400 800;
  src: url(../assets/fonts/syne-latin-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* ── Imágenes con width/height: mantienen proporción (especificidad 0, no pisa reglas existentes) ── */
:where(img[width][height]){height:auto}

/* ── Foco visible (WCAG 2.4.7) ── */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid #fff;outline-offset:3px}
#dont-touch:focus-visible{outline:2px solid #fff;outline-offset:3px}
.hero-dot{cursor:default}

/* ── Enlaces legales del pie ── */
.footer-legal{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 22px;font-size:.8rem;color:var(--text-muted)}
.footer-legal a,.footer-legal button{color:var(--text-secondary);text-decoration:none;background:none;border:0;padding:4px 0;font:inherit;cursor:pointer;transition:color .3s ease}
.footer-legal a:hover,.footer-legal button:hover{color:var(--text-primary);text-decoration:underline}
.site-footer{background:var(--bg-tertiary)}
.site-footer .footer-bar{margin-top:0}
.site-footer>.footer-legal{padding:0 20px 30px}
.intro-privacy a{color:#fff;text-decoration:underline}
.intro-privacy .footer-legal{justify-content:flex-start;margin-top:12px;font-size:.75rem}

/* ── Páginas legales ── */
.policy-page{max-width:800px;margin:0 auto;padding:180px 20px 80px}
.policy-page h1{font-family:var(--font-display);font-size:2.5rem;font-weight:800;margin-bottom:40px}
.policy-page h2{font-family:var(--font-display);font-size:1.4rem;font-weight:700;color:var(--accent-primary);margin:40px 0 15px}
.policy-page p,.policy-page li{font-size:1rem;color:var(--text-secondary);line-height:1.8;margin-bottom:15px}
.policy-page ul{padding-left:20px}
.policy-page a{color:var(--text-primary)}
.policy-page table{width:100%;border-collapse:collapse;margin:10px 0 25px;font-size:.9rem}
.policy-page th,.policy-page td{border:1px solid var(--glass-border);padding:10px 12px;text-align:left;vertical-align:top;color:var(--text-secondary)}
.policy-page th{color:var(--text-primary);font-weight:600}
.policy-footer{text-align:center;padding:40px 20px;border-top:1px solid var(--glass-border);margin-top:80px;color:var(--text-muted);font-size:.85rem;display:flex;flex-direction:column;gap:14px;align-items:center}

/* ── Aviso de contenido generado con IA en páginas de proyecto ── */

/* ── FAQ en acordeón (servicios + home) ── */
/* ── FAQ Accordion ── */
.faq-section {
    padding: 80px 20px;
    max-width: 800px;
    margin: 0 auto;
}

.faq-item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.faq-item:first-child {
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.faq-trigger {
    width: 100%;
    background: none;
    border: none;
    color: var(--text-primary);
    font-family: var(--font-body, 'Inter', sans-serif);
    font-size: 1.05rem;
    font-weight: 500;
    text-align: left;
    padding: 24px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    cursor: pointer;
    transition: color 0.25s ease;
}

.faq-trigger:hover {
    color: var(--accent-primary);
}

.faq-chevron {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    color: var(--accent-primary);
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq-item.open .faq-chevron {
    transform: rotate(180deg);
}

.faq-body {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq-item.open .faq-body {
    grid-template-rows: 1fr;
}

.faq-body-inner {
    overflow: hidden;
}

.faq-body-inner p {
    color: var(--text-secondary);
    line-height: 1.75;
    padding-bottom: 24px;
}
.faq-trigger:focus-visible{outline:2px solid var(--accent-primary);outline-offset:4px}
.home-faq{background:var(--bg-secondary);min-height:auto;padding:100px 0 80px}
.home-faq .faq-section{padding:0 20px;margin:0 auto;max-width:800px;width:100%}
.home-faq .section-title{text-align:center;margin-bottom:40px}
@media (prefers-reduced-motion:reduce){.faq-body,.faq-chevron{transition:none}}
