/* landing.css — Páginas landing limpias (Cursos Subvencionats, Idiomes i Reforç).
   Mismo lenguaje visual que Sobre Nosaltres / Catàleg para coherencia total. */

.vs-lp { color:#20202e; }
.vs-lp section { padding: 80px 0; }
.vs-lp .vs-wrap { max-width:1180px; margin:0 auto; padding:0 24px; }
.vs-lp .eyebrow { display:inline-block; font-size:.78rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:#c4365a; margin-bottom:14px; }
.vs-lp h2 { font-size:clamp(1.7rem,3.6vw,2.4rem); font-weight:800; color:#14141f; line-height:1.18; letter-spacing:-.02em; margin:0 0 14px; }
.vs-lp .section-intro { font-size:1.1rem; line-height:1.7; color:#555; max-width:760px; margin:0 0 8px; }
.vs-lp .center { text-align:center; }
.vs-lp .center .section-intro { margin-left:auto; margin-right:auto; }
.vs-bg-soft { background:#faf7f8; }

/* HERO (con imagen de fondo + overlay para legibilidad) */
.vs-lp-hero {
    color:#fff; position:relative; overflow:hidden;
    min-height:72vh; display:flex; align-items:center;
    padding:120px 0 80px;
    background:linear-gradient(125deg, rgba(20,20,31,.92) 0%, rgba(20,20,31,.8) 55%, rgba(158,43,72,.66) 100%), #15151f;
    background-size:cover; background-position:center;
}
.vs-lp-hero .vs-wrap { width:100%; position:relative; z-index:2; }
/* (línea magenta superior eliminada) */
body.page-subvencionats .vs-lp-hero {
    background-image:linear-gradient(125deg, rgba(20,20,31,.94) 0%, rgba(20,20,31,.82) 50%, rgba(158,43,72,.6) 100%),
        url('/assets/img/about/academia-versailles-cursos-formatius-16.jpeg');
}
body.page-idiomes .vs-lp-hero {
    background-image:linear-gradient(125deg, rgba(20,20,31,.94) 0%, rgba(20,20,31,.82) 50%, rgba(158,43,72,.6) 100%),
        url('/assets/img/about/academia-versailles-cursos-formatius-25.jpeg');
}
.vs-lp-hero .badge { display:inline-block; padding:7px 16px; border-radius:50px; font-size:.8rem; font-weight:700; letter-spacing:1px; text-transform:uppercase; background:rgba(196,54,90,.22); color:#f3aebf; margin-bottom:22px; }
.vs-lp-hero h1 { font-size:clamp(2rem,5vw,3.3rem); font-weight:800; line-height:1.1; letter-spacing:-.02em; margin:0 0 18px; max-width:900px; }
.vs-lp-hero p { font-size:1.18rem; line-height:1.7; color:rgba(255,255,255,.82); max-width:760px; margin:0 0 28px; }
.vs-lp-hero .actions { display:flex; gap:14px; flex-wrap:wrap; }
.vs-lp-hero .btn-solid, .vs-lp-hero .btn-ghost { display:inline-flex; align-items:center; gap:8px; padding:14px 28px; border-radius:50px; font-weight:700; text-decoration:none; transition:transform .2s ease, box-shadow .2s ease; }
.vs-lp-hero .btn-solid { background:#fff; color:#9e2b48; }
.vs-lp-hero .btn-ghost { background:rgba(255,255,255,.1); color:#fff; border:2px solid rgba(255,255,255,.55); }
.vs-lp-hero .btn-solid:hover, .vs-lp-hero .btn-ghost:hover { transform:translateY(-3px); box-shadow:0 10px 26px rgba(0,0,0,.25); }

/* FEATURE GRID (USPs) */
.vs-feat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:44px; }
@media (max-width:900px){ .vs-feat-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .vs-feat-grid{grid-template-columns:1fr;} }
.vs-feat { background:#fff; border:1px solid #eceaf0; border-radius:16px; padding:30px 28px; box-shadow:0 4px 18px rgba(0,0,0,.05); transition:transform .25s ease, box-shadow .25s ease; }
.vs-feat:hover { transform:translateY(-5px); box-shadow:0 16px 38px rgba(196,54,90,.12); }
.vs-feat .ico { width:52px; height:52px; border-radius:13px; background:var(--vs-rose,#fdf2f4); color:#c4365a; display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
.vs-feat .ico svg { width:26px; height:26px; fill:#c4365a; }
.vs-feat h3 { font-size:1.18rem; font-weight:700; color:#14141f; margin:0 0 10px; }
.vs-feat p { color:#555; line-height:1.65; margin:0; font-size:.97rem; }

/* STATS STRIP */
.vs-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:40px; }
@media (max-width:760px){ .vs-stats{grid-template-columns:repeat(2,1fr);} }
@media (max-width:400px){ .vs-stats{grid-template-columns:1fr;} }
.vs-stat { min-width:0; text-align:center; padding:26px 16px; background:#fff; border:1px solid #eceaf0; border-radius:16px; overflow-wrap:break-word; }
.vs-stat .n { font-size:1.7rem; font-weight:800; color:#c4365a; line-height:1; margin-bottom:8px; }
.vs-stat .t { color:#555; font-size:.9rem; }

/* GRUPOS DE CURSOS */
.vs-cgroup { margin-top:48px; }
.vs-cgroup-head { display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; margin-bottom:6px; }
.vs-cgroup h3 { font-size:1.4rem; font-weight:800; color:#14141f; margin:0; }
.vs-cgroup .tag { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:#9e2b48; background:#fdf2f4; padding:5px 12px; border-radius:50px; }
.vs-cgroup .desc { color:#666; margin:0 0 22px; line-height:1.6; max-width:760px; }
.vs-levels { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
@media (max-width:1000px){ .vs-levels{grid-template-columns:repeat(3,1fr);} }
@media (max-width:760px){ .vs-levels{grid-template-columns:repeat(2,1fr);} }
@media (max-width:480px){ .vs-levels{grid-template-columns:1fr;} }
.vs-level {
    display:block; width:100%; min-height:44px; font-family:inherit; cursor:pointer;
    background:#fff; border:1px solid #eceaf0; border-left:4px solid #c4365a; border-radius:12px;
    padding:18px 18px; text-align:left; transition:transform .2s ease, box-shadow .2s ease;
}
.vs-level:hover, .vs-level:focus-visible { transform:translateY(-3px); box-shadow:0 10px 26px rgba(196,54,90,.12); }
.vs-level .name { font-weight:700; color:#14141f; font-size:1rem; margin-bottom:5px; }
.vs-level .note { color:#777; font-size:.85rem; line-height:1.4; }
.vs-level-status { display:inline-block; margin-top:9px; padding:4px 11px; border-radius:50px; font-size:.7rem; font-weight:700; }
.vs-level-status.is-open { background:#dcfce7; color:#15803d; }
.vs-level-status.is-started { background:#fef3c7; color:#b45309; }
.vs-level-apply { display:block; margin-top:10px; color:#c4365a; font-size:.82rem; font-weight:700; }

/* ACORDEÓN (desplegable) de familias de cursos */
.vs-acc { background:#fff; border:1px solid #eceaf0; border-radius:14px; margin-bottom:14px; overflow:hidden; box-shadow:0 2px 12px rgba(0,0,0,.04); transition:box-shadow .2s ease; }
.vs-acc.open { box-shadow:0 10px 30px rgba(196,54,90,.10); }
.vs-acc-head { width:100%; display:flex; align-items:center; gap:16px; padding:18px 22px; background:none; border:none; cursor:pointer; text-align:left; font-family:inherit; }
.vs-acc-head:hover { background:#fdf2f4; }
.vs-acc-badge { width:42px; height:42px; min-width:42px; border-radius:11px; background:var(--vs-gradient,#c4365a); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.8rem; }
.vs-acc-titles { flex:1; display:flex; flex-direction:column; }
.vs-acc-titles .t { font-weight:700; color:#14141f; font-size:1.08rem; line-height:1.3; }
.vs-acc-titles .n { color:#777; font-size:.88rem; margin-top:3px; }
.vs-acc-meta { color:#9e2b48; font-weight:700; font-size:.82rem; white-space:nowrap; }
.vs-acc-chev { width:11px; height:11px; min-width:11px; border-right:2.5px solid #c4365a; border-bottom:2.5px solid #c4365a; transform:rotate(45deg); transition:transform .3s ease; margin-left:2px; }
.vs-acc.open .vs-acc-chev { transform:rotate(-135deg); }
.vs-acc-body { max-height:0; overflow:hidden; transition:max-height .4s cubic-bezier(.4,0,.2,1); }
.vs-acc-inner { padding:4px 22px 24px; }
@media (max-width:560px){ .vs-acc-meta{ display:none; } .vs-acc-head{ gap:12px; padding:16px; } }

/* SUBGRUPO (familia con su intro) */
.vs-fam { margin-top:38px; }
.vs-fam-title { display:flex; align-items:center; gap:12px; margin-bottom:4px; }
.vs-fam-title .badge2 { width:40px; height:40px; border-radius:11px; background:var(--vs-gradient,#c4365a); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.85rem; }
.vs-fam-title h4 { font-size:1.12rem; font-weight:700; color:#1a1a2e; margin:0; }
.vs-fam .fam-note { color:#777; font-size:.92rem; margin:0 0 16px 52px; }

/* REQUISITOS */
.vs-req-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; margin-top:40px; }
@media (max-width:760px){ .vs-req-grid{grid-template-columns:1fr;} }
.vs-req { background:#fff; border:1px solid #eceaf0; border-radius:18px; padding:30px; box-shadow:0 4px 18px rgba(0,0,0,.05); }
.vs-req h3 { font-size:1.2rem; font-weight:700; color:#14141f; margin:0 0 18px; }
.vs-req ul { list-style:none; margin:0; padding:0; }
.vs-req li { position:relative; padding:9px 0 9px 32px; color:#2b2b38; line-height:1.5; border-bottom:1px solid #f3eef0; }
.vs-req li:last-child { border-bottom:none; }
.vs-req li::before { content:"✓"; position:absolute; left:0; top:9px; color:#15803d; font-weight:800; }

/* SECCIÓN FORMULARIO */
.vs-form-section .card { background:#fff; border:1px solid #eceaf0; border-radius:20px; padding:40px; box-shadow:0 12px 44px rgba(0,0,0,.07); max-width:760px; margin:0 auto; }
.vs-form-section .card h2 { text-align:center; }
.vs-form-section .card .section-intro { text-align:center; margin:0 auto 26px; }

/* ===== Fitxa de curs subvencionat (SOC detail) ===== */
.vs-soc-detail-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px}
.vs-soc-detail-facts .fact{display:flex;align-items:center;gap:13px;background:#fff;border:1px solid #ece8ee;border-radius:13px;padding:16px 18px;box-shadow:0 4px 14px rgba(20,20,31,.04)}
.vs-soc-detail-facts .fi{flex:none;width:42px;height:42px;border-radius:11px;background:#fdf2f4;display:flex;align-items:center;justify-content:center}
.vs-soc-detail-facts .fi svg{width:21px;height:21px;fill:#c4365a}
.vs-soc-detail-facts b{display:block;color:#15151f;font-size:.95rem;line-height:1.25}
.vs-soc-detail-facts span{font-size:.78rem;color:#8a8a96}

.vs-soc-detail-cols{display:grid;grid-template-columns:1fr;gap:34px}
@media(min-width:900px){.vs-soc-detail-cols{grid-template-columns:1.7fr 1fr;align-items:start}}
.vs-soc-detail-main h2{font-size:1.5rem;color:#15151f;font-weight:800;margin:0 0 12px}
.vs-soc-detail-main h2:not(:first-child){margin-top:34px}
.vs-soc-detail-main p{color:#44444f;line-height:1.7;margin:0 0 14px}
.vs-soc-reqs{list-style:none;padding:0;margin:0 0 14px}
.vs-soc-reqs li{position:relative;padding-left:30px;margin-bottom:11px;color:#44444f;line-height:1.55}
.vs-soc-reqs li::before{content:"";position:absolute;left:0;top:2px;width:18px;height:18px;border-radius:50%;background:#eaf7ef url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2316a34a'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") center/13px no-repeat}
.vs-soc-help{font-size:.95rem}
.vs-soc-note{display:flex;gap:12px;align-items:flex-start;background:#fff8e6;border:1px solid #f3e2b8;border-radius:12px;padding:15px 18px;margin:4px 0 20px;color:#7a5a12;font-size:.92rem;line-height:1.5}
.vs-soc-note svg{flex:none;width:20px;height:20px;fill:#c9a227;margin-top:1px}

.vs-soc-aside-card{background:linear-gradient(160deg,#1f1f33,#3a1d31);color:#fff;border-radius:18px;padding:30px 28px;position:sticky;top:96px;box-shadow:0 18px 40px rgba(26,26,46,.18);overflow:hidden}
.vs-soc-aside-card .vs-soc-grup{display:inline-block;margin:0 0 16px;background:rgba(255,255,255,.14);color:#fff;padding:6px 13px;font-size:.66rem}
.vs-soc-aside-card h3{font-size:1.35rem;font-weight:800;margin:0 0 10px;line-height:1.25;color:#fff}
.vs-soc-aside-card p{color:rgba(255,255,255,.82);line-height:1.6;margin:0 0 20px;font-size:.95rem}
.vs-soc-aside-card .btn-solid{display:flex;align-items:center;justify-content:center;text-align:center;width:100%;background:#fff;color:#9e2b48;padding:14px 20px;border-radius:50px;font-weight:700;text-decoration:none;transition:transform .2s,box-shadow .2s}
.vs-soc-aside-card .btn-solid:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.25)}
.vs-soc-aside-info{display:flex;align-items:center;gap:11px;margin-top:20px;padding-top:18px;border-top:1px solid rgba(255,255,255,.16)}
.vs-soc-aside-info svg{width:20px;height:20px;fill:#f3c3d0;flex:none}
.vs-soc-aside-info a{color:#fff;font-weight:700;text-decoration:none;font-size:1.1rem;letter-spacing:.3px}
.vs-soc-aside-info a:hover{text-decoration:underline}
@media(max-width:899px){.vs-soc-aside-card{position:static;margin-top:8px}}

.vs-soc-related{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:8px}
.vs-soc-rel{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid #ece8ee;border-radius:14px;padding:20px;text-decoration:none;color:#15151f;transition:transform .2s ease,box-shadow .2s ease}
.vs-soc-rel:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(196,54,90,.12)}
.vs-soc-rel .vs-soc-ico{width:42px;height:42px;border-radius:11px;background:#fdf2f4;display:flex;align-items:center;justify-content:center}
.vs-soc-rel .vs-soc-ico svg{width:22px;height:22px;fill:#c4365a}
.vs-soc-rel strong{font-size:.98rem;line-height:1.35}
.vs-soc-rel .go{display:inline-flex;align-items:center;gap:6px;color:#c4365a;font-weight:700;font-size:.86rem;margin-top:auto}
.vs-soc-rel .go svg{width:15px;height:15px;fill:currentColor}
