/* ═══════════════════════════════════════════════════════════════
       DESIGN TOKENS
    ═══════════════════════════════════════════════════════════════ */
    :root {
      /* Color palette */
      --gold:        #B8963E;
      --gold-light:  #D4AF6A;
      --gold-dark:   #8B6E2A;
      --gold-subtle: rgba(184,150,62,.12);
      --black:       #0E0D0C;
      --dark:        #1A1917;
      --cream:       #FDFAF4;
      --cream-mid:   #F0EAD6;
      --warm-gray:   #7A7265;
      --border:      rgba(184,150,62,.22);
      --border-light:rgba(184,150,62,.12);

      /* Typography */
      --serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
      --sans:  'Lato', system-ui, -apple-system, sans-serif;

      /* Layout */
      --nav-h:  76px;
      --max-w:  1280px;
      --sp:     96px;      /* section vertical padding */
      --gutter: 32px;
    }

    /* ═══════════════════════════════════════════════════════════════
       RESET
    ═══════════════════════════════════════════════════════════════ */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; font-size: 16px; }
    body {
      font-family: var(--sans);
      background: var(--cream);
      color: var(--dark);
      -webkit-font-smoothing: antialiased;
      overflow-x: hidden;
    }
    img { max-width: 100%; display: block; }
    a   { color: inherit; text-decoration: none; }
    button { cursor: pointer; border: none; background: none; font-family: inherit; }
    address { font-style: normal; }

    /* ═══════════════════════════════════════════════════════════════
       UTILITIES
    ═══════════════════════════════════════════════════════════════ */
    .wrap {
      max-width: var(--max-w);
      margin: 0 auto;
      padding: 0 var(--gutter);
    }
    .label {
      font-family: var(--sans);
      font-size: 10.5px;
      font-weight: 700;
      letter-spacing: 3.5px;
      text-transform: uppercase;
      color: var(--gold);
    }
    .h2 {
      font-family: var(--serif);
      font-size: clamp(2rem, 3.8vw, 3.2rem);
      font-weight: 600;
      line-height: 1.14;
      color: var(--dark);
    }
    .h2.on-dark { color: #fff; }

    /* Ornamental rule */
    .orn {
      display: flex;
      align-items: center;
      gap: 14px;
      margin: 14px 0 26px;
    }
    .orn::before, .orn::after {
      content: '';
      flex: 1;
      max-width: 64px;
      height: 1px;
      background: var(--border);
    }
    .orn span { color: var(--gold); font-size: 14px; letter-spacing: 4px; }

    /* Buttons */
    .btn {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      font-family: var(--sans);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 2.5px;
      text-transform: uppercase;
      padding: 15px 34px;
      transition: all .28s ease;
      position: relative;
    }
    .btn-gold { background: var(--gold); color: var(--black); }
    .btn-gold:hover { background: var(--gold-dark); transform: translateY(-2px); box-shadow: 0 8px 28px rgba(184,150,62,.32); }
    .btn-outline { border: 1px solid var(--gold); color: var(--gold); }
    .btn-outline:hover { background: var(--gold); color: var(--black); }
    .btn-ghost-white { border: 1px solid rgba(255,255,255,.5); color: rgba(255,255,255,.9); }
    .btn-ghost-white:hover { background: rgba(255,255,255,.1); border-color: #fff; color: #fff; }

    /* Body copy */
    .body-copy p {
      font-family: var(--sans);
      font-size: .975rem;
      line-height: 1.9;
      color: var(--warm-gray);
      margin-bottom: 18px;
    }
    .body-copy p:last-child { margin-bottom: 0; }

    /* Reveal animations (3D depth) */
    .reveal {
      opacity: 0;
      transform: perspective(1000px) translateY(38px) rotateX(8deg) scale(.985);
      transform-origin: 50% 100%;
      transition: opacity .85s cubic-bezier(.16,.84,.34,1), transform .95s cubic-bezier(.16,.84,.34,1);
      will-change: opacity, transform;
    }
    .reveal.vis { opacity: 1; transform: none; }
    .d1 { transition-delay: .08s; }
    .d2 { transition-delay: .16s; }
    .d3 { transition-delay: .24s; }
    .d4 { transition-delay: .32s; }

    /* Scroll progress bar + 3D tilt helpers */
    #progress {
      position: fixed; top: 0; left: 0; height: 3px; width: 100%;
      transform: scaleX(0); transform-origin: 0 50%;
      background: linear-gradient(90deg, var(--gold-dark), var(--gold-light));
      z-index: 950; pointer-events: none;
    }
    .fx-tilt { transition: transform .45s cubic-bezier(.16,.84,.34,1); will-change: transform; }
    #hero .hero-content { will-change: transform, opacity; }
    @media (prefers-reduced-motion: reduce) {
      .reveal { opacity: 1 !important; transform: none !important; transition: none; }
    }

    /* ═══════════════════════════════════════════════════════════════
       NAVIGATION
    ═══════════════════════════════════════════════════════════════ */
    #nav {
      position: fixed;
      inset: 0 0 auto;
      z-index: 900;
      height: var(--nav-h);
      transition: background .35s ease, box-shadow .35s ease;
    }
    #nav.solid {
      background: rgba(253,250,244,.97);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      box-shadow: 0 1px 0 var(--border-light), 0 4px 32px rgba(0,0,0,.06);
    }
    .nav-inner {
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }
    /* Logo wrapper — frosted badge so logo is always legible */
    .nav-logo-wrap {
      padding: 6px 16px 6px 4px;
      background: rgba(253,250,244,.88);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      transition: background .35s;
    }
    #nav.solid .nav-logo-wrap { background: transparent; backdrop-filter: none; }
    .nav-logo-wrap img { height: 40px; width: auto; display: block; }

    .nav-links {
      display: flex;
      align-items: center;
      gap: 34px;
      list-style: none;
    }
    .nav-links a {
      font-family: var(--sans);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 1.8px;
      text-transform: uppercase;
      color: rgba(255,255,255,.85);
      position: relative;
      padding-bottom: 3px;
      transition: color .2s;
    }
    #nav.solid .nav-links a { color: var(--dark); }
    .nav-links a::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0;
      width: 0; height: 1px;
      background: var(--gold);
      transition: width .3s ease;
    }
    .nav-links a:hover { color: var(--gold) !important; }
    .nav-links a:hover::after { width: 100%; }
    .nav-links .nav-cta {
      background: var(--gold);
      color: var(--black) !important;
      padding: 10px 22px;
      letter-spacing: 2px !important;
      transition: background .2s, transform .2s !important;
    }
    .nav-links .nav-cta::after { display: none !important; }
    .nav-links .nav-cta:hover { background: var(--gold-dark) !important; transform: none; }

    .nav-burger {
      display: none;
      flex-direction: column;
      gap: 5px;
      padding: 6px 2px;
    }
    .nav-burger span {
      display: block;
      width: 24px; height: 2px;
      background: #fff;
      border-radius: 2px;
      transition: all .3s;
    }
    #nav.solid .nav-burger span { background: var(--dark); }

    /* Mobile drawer */
    .nav-drawer {
      position: fixed;
      inset: var(--nav-h) 0 0;
      background: rgba(253,250,244,.98);
      backdrop-filter: blur(20px);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 32px;
      z-index: 850;
      opacity: 0;
      pointer-events: none;
      transition: opacity .3s ease;
    }
    .nav-drawer.open { opacity: 1; pointer-events: all; }
    .nav-drawer a {
      font-family: var(--serif);
      font-size: 2rem;
      font-weight: 500;
      color: var(--dark);
      transition: color .2s;
    }
    .nav-drawer a:hover { color: var(--gold); }

    /* ═══════════════════════════════════════════════════════════════
       HERO
    ═══════════════════════════════════════════════════════════════ */
    #hero {
      position: relative;
      height: 100vh;
      min-height: 680px;
      display: flex;
      align-items: center;
      overflow: hidden;
    }
    .hero-bg {
      position: absolute;
      inset: -6% 0;
      background-image: url('assets/palacio/DSC_0022_retocada.webp');
      background-size: cover;
      background-position: center 35%;
      transform: scale(1.12);
      will-change: transform;
    }

    .hero-vignette {
      position: absolute;
      inset: 0;
      background:
        linear-gradient(to right,  rgba(10,8,5,.8) 0%, rgba(10,8,5,.35) 65%, rgba(10,8,5,.1) 100%),
        linear-gradient(to bottom, rgba(10,8,5,.4) 0%, rgba(10,8,5,0) 40%);
    }
    .hero-content {
      position: relative;
      z-index: 2;
      max-width: 720px;
    }
    .hero-eyebrow {
      font-family: var(--sans);
      font-size: 10.5px;
      font-weight: 700;
      letter-spacing: 4px;
      text-transform: uppercase;
      color: var(--gold-light);
      margin-bottom: 22px;
      opacity: 0;
      animation: fUp .8s .4s forwards;
    }
    .hero-title {
      font-family: var(--serif);
      font-size: clamp(3rem, 6.5vw, 5.8rem);
      font-weight: 600;
      line-height: 1.07;
      color: #fff;
      margin-bottom: 28px;
      opacity: 0;
      animation: fUp .85s .6s forwards;
    }
    .hero-title em { font-style: italic; color: var(--gold-light); }
    .hero-desc {
      font-family: var(--sans);
      font-size: 1.05rem;
      font-weight: 300;
      line-height: 1.75;
      color: rgba(255,255,255,.78);
      max-width: 500px;
      margin-bottom: 44px;
      opacity: 0;
      animation: fUp .85s .8s forwards;
    }
    .hero-ctas {
      display: flex;
      flex-wrap: wrap;
      gap: 14px;
      opacity: 0;
      animation: fUp .85s 1s forwards;
    }
    .hero-scroll-hint {
      position: absolute;
      bottom: 36px;
      left: 50%;
      transform: translateX(-50%);
      z-index: 2;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      opacity: 0;
      animation: fIn 1s 1.6s forwards;
    }
    .hero-scroll-hint span {
      font-family: var(--sans);
      font-size: 9px;
      font-weight: 700;
      letter-spacing: 3.5px;
      text-transform: uppercase;
      color: rgba(255,255,255,.4);
    }
    .scroll-line {
      width: 1px;
      height: 52px;
      background: linear-gradient(to bottom, rgba(255,255,255,.4), transparent);
      animation: pulse 2.2s 1.8s ease-in-out infinite;
    }
    @keyframes pulse {
      0%,100% { transform: scaleY(1); opacity: .45; }
      50%      { transform: scaleY(1.15); opacity: .9; }
    }
    @keyframes fUp {
      from { opacity: 0; transform: translateY(22px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    @keyframes fIn { from { opacity: 0; } to { opacity: 1; } }

    /* ═══════════════════════════════════════════════════════════════
       SECTION: SOBRE NOSOTROS
    ═══════════════════════════════════════════════════════════════ */
    #sobre {
      padding: var(--sp) 0;
      background: var(--cream);
    }
    .sobre-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: center;
    }
    .sobre-text .label { margin-bottom: 12px; display: block; }
    .sobre-text .h2    { margin-bottom: 0; }
    .sobre-text .body-copy { margin-top: 28px; }
    .sobre-text .btn   { margin-top: 36px; }

    .sobre-img {
      position: relative;
    }
    .sobre-img img {
      width: 100%;
      aspect-ratio: 4/5;
      object-fit: cover;
      object-position: center;
      display: block;
    }
    /* Decorative offset frame */
    .sobre-img::before {
      content: '';
      position: absolute;
      top: -18px; left: -18px;
      right: 18px; bottom: 18px;
      border: 1px solid var(--border);
      z-index: -1;
      pointer-events: none;
    }
    /* Gold accent square */
    .sobre-img::after {
      content: '';
      position: absolute;
      bottom: -18px; right: -18px;
      width: 72px; height: 72px;
      background: var(--gold);
      z-index: -1;
    }

    /* ═══════════════════════════════════════════════════════════════
       SECTION: STATS
    ═══════════════════════════════════════════════════════════════ */
    #stats {
      background: var(--black);
      padding: 76px 0;
      position: relative;
      overflow: hidden;
    }
    #stats::before {
      content: '';
      position: absolute;
      inset: 0;
      background:
        radial-gradient(ellipse 60% 100% at 15% 50%, rgba(184,150,62,.07) 0%, transparent 70%),
        radial-gradient(ellipse 50% 80% at 85% 50%, rgba(184,150,62,.05) 0%, transparent 70%);
    }
    .stats-row {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      position: relative;
    }
    .stat {
      padding: 28px 32px;
      text-align: center;
      border-right: 1px solid rgba(255,255,255,.07);
    }
    .stat:last-child { border-right: none; }
    .stat-n {
      font-family: var(--serif);
      font-size: clamp(2.6rem, 4vw, 4rem);
      font-weight: 600;
      color: var(--gold);
      line-height: 1;
      margin-bottom: 8px;
      display: block;
    }
    .stat-l {
      font-family: var(--sans);
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 2.5px;
      text-transform: uppercase;
      color: rgba(255,255,255,.38);
    }

    /* ═══════════════════════════════════════════════════════════════
       SECTION: HISTORIA
    ═══════════════════════════════════════════════════════════════ */
    #historia {
      padding: var(--sp) 0;
      background: #fff;
    }
    .historia-grid {
      display: grid;
      grid-template-columns: 380px 1fr;
      gap: 80px;
      align-items: start;
    }
    .historia-left { display: flex; flex-direction: column; gap: 24px; }
    .historia-portrait {
      width: 100%;
      aspect-ratio: 3/4;
      object-fit: cover;
      object-position: top center;
      display: block;
    }
    .historia-quote {
      padding: 22px 26px;
      border-left: 3px solid var(--gold);
      background: var(--cream);
    }
    .historia-quote p {
      font-family: var(--serif);
      font-size: 1.15rem;
      font-style: italic;
      line-height: 1.6;
      color: var(--dark);
    }
    .historia-quote cite {
      display: block;
      margin-top: 12px;
      font-family: var(--sans);
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--gold);
      font-style: normal;
    }
    .historia-right .label { display: block; margin-bottom: 12px; }
    .historia-right .h2   { margin-bottom: 4px; }
    .historia-dates        { font-family: var(--serif); font-size: 1.1rem; font-style: italic; color: var(--warm-gray); margin-bottom: 0; }
    .historia-right .body-copy { margin-top: 28px; }
    /* Timeline */
    .timeline {
      margin-top: 40px;
      padding-left: 24px;
      border-left: 1px solid var(--border);
      display: flex;
      flex-direction: column;
      gap: 0;
    }
    .tl-item {
      position: relative;
      padding-bottom: 28px;
    }
    .tl-item:last-child { padding-bottom: 0; }
    .tl-item::before {
      content: '';
      position: absolute;
      left: -28.5px; top: 5px;
      width: 8px; height: 8px;
      border-radius: 50%;
      background: var(--gold);
      box-shadow: 0 0 0 3px #fff, 0 0 0 4px var(--gold);
    }
    .tl-year {
      font-family: var(--serif);
      font-size: 1.05rem;
      font-weight: 600;
      color: var(--gold);
      margin-bottom: 3px;
    }
    .tl-text {
      font-family: var(--sans);
      font-size: .875rem;
      line-height: 1.65;
      color: var(--warm-gray);
    }

    /* ═══════════════════════════════════════════════════════════════
       SECTION: ACTIVIDADES / NOTICIAS
    ═══════════════════════════════════════════════════════════════ */
    #actividades {
      padding: var(--sp) 0;
      background: var(--cream);
    }
    .sec-hdr {
      display: flex;
      justify-content: space-between;
      align-items: flex-end;
      margin-bottom: 52px;
    }
    .sec-hdr-left .label { display: block; margin-bottom: 10px; }
    .cards {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 26px;
    }
    .card {
      background: #fff;
      border: 1px solid rgba(0,0,0,.06);
      overflow: hidden;
      transition: transform .3s ease, box-shadow .3s ease;
    }
    .card:hover { transform: translateY(-7px); box-shadow: 0 16px 48px rgba(0,0,0,.09); }
    .card-thumb {
      aspect-ratio: 16/10;
      overflow: hidden;
    }
    .card-thumb img {
      width: 100%; height: 100%;
      object-fit: cover;
      transition: transform .5s ease;
    }
    .card:hover .card-thumb img { transform: scale(1.06); }
    .card-body { padding: 26px 26px 30px; }
    .card-tag {
      font-family: var(--sans);
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 10px;
    }
    .card-title {
      font-family: var(--serif);
      font-size: 1.3rem;
      font-weight: 600;
      line-height: 1.28;
      color: var(--dark);
      margin-bottom: 12px;
    }
    .card-text {
      font-family: var(--sans);
      font-size: .875rem;
      line-height: 1.72;
      color: var(--warm-gray);
      margin-bottom: 20px;
    }
    .card-link {
      font-family: var(--sans);
      font-size: 10.5px;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--gold);
      display: inline-flex;
      align-items: center;
      gap: 7px;
      border-bottom: 1px solid var(--border);
      padding-bottom: 2px;
      transition: gap .22s, border-color .22s;
    }
    .card-link:hover { gap: 12px; border-color: var(--gold); }
    .card-link svg { transition: transform .22s; }
    .card-link:hover svg { transform: translateX(4px); }

    /* ═══════════════════════════════════════════════════════════════
       SECTION: ESPACIOS
    ═══════════════════════════════════════════════════════════════ */
    #espacios {
      padding: var(--sp) 0;
      background: var(--dark);
      position: relative;
      overflow: hidden;
    }
    #espacios::before {
      content: '';
      position: absolute;
      inset: 0;
      background: url('assets/palacio/DSC_0079.webp') center/cover no-repeat;
      opacity: .08;
    }
    .esp-head {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 64px;
      align-items: end;
      margin-bottom: 46px;
      position: relative;
    }
    .esp-content .label { display: block; margin-bottom: 12px; }
    .esp-content .orn { margin-bottom: 0; }
    .esp-content .orn::before,
    .esp-content .orn::after { background: rgba(184,150,62,.2); }
    .esp-intro p {
      font-family: var(--sans);
      font-size: .975rem;
      line-height: 1.88;
      color: rgba(255,255,255,.58);
      margin-bottom: 26px;
    }
    .esp-features {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px 26px;
    }
    .esp-feat {
      display: flex;
      align-items: flex-start;
      gap: 12px;
    }
    .esp-feat-icon {
      width: 30px; height: 30px;
      min-width: 30px;
      border: 1px solid rgba(184,150,62,.3);
      display: flex; align-items: center; justify-content: center;
      color: var(--gold);
      margin-top: 1px;
    }
    .esp-feat-txt {
      font-family: var(--sans);
      font-size: .84rem;
      line-height: 1.5;
      color: rgba(255,255,255,.5);
    }
    /* Spaces gallery */
    .esp-gallery {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      grid-auto-rows: 190px;
      gap: 12px;
      position: relative;
    }
    .eg {
      position: relative;
      overflow: hidden;
      display: block;
      background: var(--black);
    }
    .eg.feature { grid-row: span 2; }
    .eg img {
      width: 100%; height: 100%;
      object-fit: cover;
      transition: transform .6s ease, filter .6s ease;
      filter: brightness(.9);
    }
    .eg:hover img { transform: scale(1.05); filter: brightness(.68); }
    .eg-cap {
      position: absolute;
      inset: auto 0 0 0;
      padding: 24px 22px 20px;
      background: linear-gradient(to top, rgba(10,8,5,.92) 0%, rgba(10,8,5,.45) 55%, transparent 100%);
      pointer-events: none;
    }
    .eg-tag {
      font-family: var(--sans);
      font-size: 9.5px;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--gold-light);
      margin-bottom: 5px;
    }
    .eg-name {
      font-family: var(--serif);
      font-size: 1.32rem;
      font-weight: 600;
      color: #fff;
      line-height: 1.1;
    }
    .esp-cta { text-align: center; margin-top: 44px; }

    /* ═══════════════════════════════════════════════════════════════
       SECTION: INSTAGRAM
    ═══════════════════════════════════════════════════════════════ */
    #instagram {
      padding: var(--sp) 0;
      background: #fff;
      text-align: center;
    }
    #instagram .label { display: block; margin-bottom: 10px; }
    #instagram .h2    { margin-bottom: 6px; }
    .ig-handle {
      font-family: var(--serif);
      font-size: 1.15rem;
      font-style: italic;
      color: var(--warm-gray);
      margin-bottom: 48px;
    }
    .redes-sub {
      font-family: var(--sans);
      font-size: .98rem;
      line-height: 1.7;
      color: var(--warm-gray);
      max-width: 520px;
      margin: 0 auto 42px;
    }
    .redes-row {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 16px;
      max-width: 900px;
      margin: 0 auto;
    }
    .redes-card {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 12px;
      padding: 36px 20px 30px;
      background: #fff;
      border: 1px solid var(--border-light);
      transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
    }
    .redes-card:hover {
      transform: translateY(-6px);
      border-color: var(--gold);
      box-shadow: 0 18px 40px rgba(184,150,62,.14);
    }
    .redes-ic {
      width: 56px; height: 56px;
      border-radius: 50%;
      border: 1px solid var(--border);
      display: flex; align-items: center; justify-content: center;
      color: var(--gold);
      transition: background .25s ease, color .25s ease;
    }
    .redes-card:hover .redes-ic { background: var(--gold); color: #fff; }
    .redes-name {
      font-family: var(--serif);
      font-size: 1.35rem;
      font-weight: 600;
      color: var(--dark);
    }
    .redes-go {
      font-family: var(--sans);
      font-size: .75rem;
      color: var(--warm-gray);
      letter-spacing: .3px;
      text-align: center;
    }

    /* ═══════════════════════════════════════════════════════════════
       SECTION: CENTRO DE LA MUJER
    ═══════════════════════════════════════════════════════════════ */
    #centro {
      padding: var(--sp) 0;
      background: var(--cream);
    }
    .centro-grid {
      display: grid;
      grid-template-columns: 1fr 460px;
      gap: 64px;
      align-items: center;
    }
    .centro-content .label { display: block; margin-bottom: 12px; }
    .centro-content .body-copy { margin-top: 24px; margin-bottom: 32px; }
    .cursos { display: flex; flex-direction: column; gap: 10px; }
    .curso {
      background: #fff;
      border: 1px solid var(--border-light);
      padding: 20px 24px;
      display: flex;
      align-items: flex-start;
      gap: 16px;
      transition: border-color .22s, box-shadow .22s;
    }
    .curso:hover { border-color: var(--gold); box-shadow: 0 4px 20px rgba(184,150,62,.1); }
    .curso-badge {
      background: var(--gold);
      color: var(--black);
      font-family: var(--sans);
      font-size: 9.5px;
      font-weight: 700;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      padding: 4px 10px;
      white-space: nowrap;
      flex-shrink: 0;
      margin-top: 3px;
    }
    .curso h4 {
      font-family: var(--serif);
      font-size: 1.1rem;
      font-weight: 600;
      color: var(--dark);
      margin-bottom: 4px;
    }
    .curso p {
      font-family: var(--sans);
      font-size: .86rem;
      line-height: 1.55;
      color: var(--warm-gray);
    }

    /* ═══════════════════════════════════════════════════════════════
       SECTION: CONTACTO
    ═══════════════════════════════════════════════════════════════ */
    #contacto {
      padding: var(--sp) 0;
      background: #fff;
    }
    .contacto-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 64px;
    }
    .contacto-left .label { display: block; margin-bottom: 12px; }
    .contacto-details {
      margin-top: 32px;
      display: flex;
      flex-direction: column;
      gap: 22px;
      margin-bottom: 40px;
    }
    .c-detail {
      display: flex;
      align-items: flex-start;
      gap: 16px;
    }
    .c-icon {
      width: 38px; height: 38px;
      min-width: 38px;
      border: 1px solid var(--border);
      display: flex; align-items: center; justify-content: center;
      color: var(--gold);
    }
    .c-info strong {
      display: block;
      font-family: var(--sans);
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--dark);
      margin-bottom: 4px;
    }
    .c-info span, .c-info a {
      font-family: var(--sans);
      font-size: .9rem;
      color: var(--warm-gray);
      line-height: 1.55;
      transition: color .2s;
    }
    .c-info a:hover { color: var(--gold); }

    /* Form */
    .contacto-form {
      display: flex;
      flex-direction: column;
      gap: 14px;
    }
    .contacto-form input,
    .contacto-form textarea,
    .contacto-form select {
      width: 100%;
      padding: 14px 16px;
      border: 1px solid var(--border-light);
      background: var(--cream);
      font-family: var(--sans);
      font-size: .9rem;
      color: var(--dark);
      outline: none;
      transition: border-color .22s;
      appearance: none;
    }
    .contacto-form input::placeholder,
    .contacto-form textarea::placeholder { color: rgba(122,114,101,.6); }
    .contacto-form input:focus,
    .contacto-form textarea:focus { border-color: var(--gold); }
    .contacto-form textarea { min-height: 130px; resize: vertical; }
    .contacto-form .btn { align-self: flex-start; width: 100%; justify-content: center; }

    /* Map */
    .map-wrap {
      width: 100%;
      height: 100%;
      min-height: 420px;
      overflow: hidden;
      border: 1px solid var(--border-light);
    }
    .map-wrap iframe { width: 100%; height: 100%; border: none; display: block; }

    /* ═══════════════════════════════════════════════════════════════
       FOOTER
    ═══════════════════════════════════════════════════════════════ */
    footer {
      background: var(--black);
      padding-top: 72px;
    }
    .footer-grid {
      display: grid;
      grid-template-columns: 260px 1fr 1fr 1fr;
      gap: 48px;
      padding-bottom: 56px;
      border-bottom: 1px solid rgba(255,255,255,.07);
    }
    .footer-brand img {
      height: 64px;
      width: auto;
      display: block;
      background: #fff;
      padding: 11px 15px;
      border-radius: 4px;
      margin-bottom: 22px;
    }
    .footer-brand p {
      font-family: var(--sans);
      font-size: .855rem;
      line-height: 1.78;
      color: rgba(255,255,255,.35);
      margin-bottom: 28px;
    }
    .footer-social { display: flex; gap: 10px; }
    .footer-social a {
      width: 34px; height: 34px;
      border: 1px solid rgba(255,255,255,.13);
      display: flex; align-items: center; justify-content: center;
      color: rgba(255,255,255,.45);
      transition: border-color .2s, color .2s;
    }
    .footer-social a:hover { border-color: var(--gold); color: var(--gold); }
    .footer-col h4 {
      font-family: var(--sans);
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 2.5px;
      text-transform: uppercase;
      color: rgba(255,255,255,.28);
      margin-bottom: 20px;
    }
    .footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }
    .footer-col ul a {
      font-family: var(--sans);
      font-size: .875rem;
      color: rgba(255,255,255,.45);
      transition: color .2s;
    }
    .footer-col ul a:hover { color: var(--gold); }
    .footer-col address {
      font-family: var(--sans);
      font-size: .875rem;
      line-height: 1.85;
      color: rgba(255,255,255,.45);
    }
    .footer-col address a { transition: color .2s; }
    .footer-col address a:hover { color: var(--gold); }
    .footer-bottom {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 22px 0;
    }
    .footer-bottom p {
      font-family: var(--sans);
      font-size: .79rem;
      color: rgba(255,255,255,.22);
    }
    .footer-bottom a:hover { color: rgba(255,255,255,.45); }
    .eu-note {
      font-family: var(--sans);
      font-size: .75rem;
      color: rgba(255,255,255,.18);
      text-align: right;
      line-height: 1.5;
    }

    /* Footer partners (subvencionan / colaboran) */
    .footer-partners {
      display: flex;
      flex-wrap: wrap;
      gap: 40px 72px;
      align-items: flex-start;
      padding: 44px 0;
      border-bottom: 1px solid rgba(255,255,255,.07);
    }
    .fp-group { display: flex; flex-direction: column; gap: 16px; }
    .fp-label {
      font-family: var(--sans); font-size: 10px; font-weight: 700;
      letter-spacing: 2.5px; text-transform: uppercase; color: var(--gold);
    }
    .fp-logos { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
    .fp-plate {
      background: #fff; border-radius: 6px; padding: 9px 14px; height: 58px;
      display: inline-flex; align-items: center; justify-content: center;
      transition: transform .25s ease, box-shadow .25s ease;
    }
    .fp-plate:hover { transform: translateY(-3px); box-shadow: 0 10px 26px rgba(0,0,0,.3); }
    .fp-plate img { height: 100%; width: auto; max-width: 158px; object-fit: contain; display: block; }
    .fp-plate { cursor: zoom-in; }
    .lightbox { position: fixed; inset: 0; z-index: 1000; background: rgba(10,8,5,.9); display: flex; align-items: center; justify-content: center; padding: 6vh 6vw; opacity: 0; pointer-events: none; transition: opacity .3s; }
    .lightbox.open { opacity: 1; pointer-events: auto; }
    .lightbox img { max-width: min(88vw, 760px); max-height: 82vh; width: auto; height: auto; background: #fff; padding: 30px; border-radius: 8px; box-shadow: 0 30px 90px rgba(0,0,0,.55); }
    .lb-close { position: absolute; top: 22px; right: 26px; width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 24px; line-height: 1; background: rgba(0,0,0,.25); transition: background .2s, border-color .2s; }
    .lb-close:hover { background: rgba(255,255,255,.14); border-color: #fff; }
    .lb-cap { position: absolute; bottom: 26px; left: 0; right: 0; text-align: center; color: rgba(255,255,255,.72); font-size: .82rem; padding: 0 24px; }

    /* ═══════════════════════════════════════════════════════════════
       RESPONSIVE
    ═══════════════════════════════════════════════════════════════ */
    @media (max-width: 1040px) {
      .nav-links { display: none; }
      .nav-burger { display: flex; }
    }
    @media (max-width: 1100px) {
      .sobre-grid,
      .historia-grid,
      .esp-head,
      .centro-grid,
      .contacto-grid { grid-template-columns: 1fr; gap: 48px; }

      .historia-left { max-width: 440px; }
      .stats-row { grid-template-columns: repeat(2, 1fr); }
      .stat { border-bottom: 1px solid rgba(255,255,255,.07); }
      .stat:nth-child(2) { border-right: none; }
      .cards { grid-template-columns: 1fr 1fr; }
      .redes-row { grid-template-columns: repeat(2, 1fr); }
      .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; }
    }
    @media (max-width: 768px) {
      :root { --sp: 64px; --gutter: 20px; }
      .nav-links { display: none; }
      .nav-burger { display: flex; }
      .sobre-img::before, .sobre-img::after { display: none; }
      .cards { grid-template-columns: 1fr; }
      .sec-hdr { flex-direction: column; align-items: flex-start; gap: 16px; }
      .esp-features { grid-template-columns: 1fr; }
      .esp-gallery { grid-template-columns: 1fr; }
      .eg.feature { grid-row: span 1; }
      .redes-row { grid-template-columns: repeat(2, 1fr); max-width: 440px; }
      .footer-grid { grid-template-columns: 1fr; }
      .footer-bottom { flex-direction: column; gap: 10px; text-align: center; }
      .eu-note { text-align: center; }
    }