
    /* ============================================================
       VARIABLES Y RESET
    ============================================================ */
    :root {
      --azul:       #1a3a8f;
      --azul-osc:   #0f2260;
      --azul-med:   #2655c0;
      --verde:      #1d8a3c;
      --verde-med:  #25b050;
      --verde-claro:#34d162;
      --dorado:     #d4a017;
      --dorado-claro:#f0c53a;
      --blanco:     #ffffff;
      --gris-claro: #f4f6fb;
      --gris-text:  #4a5568;
      --sombra:     0 8px 32px rgba(26,58,143,0.12);
      --sombra-hover:0 16px 48px rgba(26,58,143,0.22);
      --radius:     16px;
      --radius-sm:  10px;
      --transition: 0.35s cubic-bezier(.4,0,.2,1);
    }

    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    html { scroll-behavior: smooth; font-size: 16px; }

    body {
      font-family: 'Outfit', sans-serif;
      color: #1e293b;
      background: var(--blanco);
      overflow-x: hidden;
    }

    img { max-width: 100%; height: auto; display: block; }
    a   { text-decoration: none; color: inherit; }
    ul  { list-style: none; }

    .container {
      width: 100%;
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 24px;
    }

    .section-title {
      font-family: 'Playfair Display', serif;
      font-size: clamp(1.8rem, 4vw, 2.8rem);
      font-weight: 900;
      color: var(--azul-osc);
      text-align: center;
      margin-bottom: 12px;
    }
    .section-subtitle {
      text-align: center;
      color: var(--gris-text);
      font-size: 1.05rem;
      margin-bottom: 52px;
      max-width: 620px;
      margin-left: auto;
      margin-right: auto;
    }
    .badge {
      display: inline-block;
      padding: 4px 14px;
      border-radius: 99px;
      font-size: 0.78rem;
      font-weight: 700;
      letter-spacing: .04em;
      text-transform: uppercase;
    }
    .badge-green  { background: #dcfce7; color: #166534; }
    .badge-blue   { background: #dbeafe; color: #1e40af; }
    .badge-yellow { background: #fef9c3; color: #854d0e; }
    .badge-orange { background: #ffedd5; color: #9a3412; }

    section { padding: 90px 0; }

    /* ============================================================
       HEADER / NAV
    ============================================================ */
    #header {
      position: fixed;
      top: 0; left: 0; right: 0;
      z-index: 1000;
      transition: background var(--transition), box-shadow var(--transition);
    }
    #header.scrolled {
      background: rgba(10,20,70,0.95);
      backdrop-filter: blur(18px);
      box-shadow: 0 2px 24px rgba(0,0,0,0.25);
    }
    .nav-inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      height: 72px;
    }
    .nav-logo {
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .nav-logo img {
      height: 52px;
      width: auto;
      object-fit: contain;
      filter: drop-shadow(0 2px 8px rgba(0,0,0,0.3));
    }
    .nav-logo-text {
      display: flex;
      flex-direction: column;
      line-height: 1.1;
    }
    .nav-logo-text strong {
      font-family: 'Playfair Display', serif;
      font-size: 1rem;
      color: var(--blanco);
      font-weight: 700;
    }
    .nav-logo-text span {
      font-size: 0.72rem;
      color: var(--dorado-claro);
      letter-spacing: .05em;
      text-transform: uppercase;
    }
    .nav-links {
      display: flex;
      align-items: center;
      gap: 4px;
    }
    .nav-links a {
      color: rgba(255,255,255,0.88);
      font-size: 0.88rem;
      font-weight: 500;
      padding: 8px 14px;
      border-radius: 8px;
      transition: background var(--transition), color var(--transition);
      letter-spacing: .02em;
    }
    .nav-links a:hover {
      background: rgba(255,255,255,0.12);
      color: var(--blanco);
    }
    .nav-cta {
      background: linear-gradient(135deg, var(--dorado), var(--dorado-claro)) !important;
      color: var(--azul-osc) !important;
      font-weight: 700 !important;
      padding: 8px 18px !important;
    }
    .nav-cta:hover { opacity: 0.9; }

    /* Hamburger */
    .hamburger {
      display: none;
      flex-direction: column;
      gap: 5px;
      cursor: pointer;
      padding: 6px;
    }
    .hamburger span {
      width: 26px; height: 2.5px;
      background: var(--blanco);
      border-radius: 2px;
      transition: var(--transition);
    }
    .hamburger.open span:nth-child(1){ transform: translateY(7.5px) rotate(45deg); }
    .hamburger.open span:nth-child(2){ opacity: 0; }
    .hamburger.open span:nth-child(3){ transform: translateY(-7.5px) rotate(-45deg); }

    .mobile-menu {
      display: none;
      position: fixed;
      top: 72px; left: 0; right: 0;
      background: rgba(10,20,70,0.97);
      backdrop-filter: blur(20px);
      flex-direction: column;
      padding: 20px 24px 32px;
      gap: 4px;
      z-index: 999;
      border-top: 1px solid rgba(255,255,255,0.08);
    }
    .mobile-menu.open { display: flex; }
    .mobile-menu a {
      color: rgba(255,255,255,0.9);
      font-size: 1rem;
      font-weight: 500;
      padding: 14px 18px;
      border-radius: 10px;
      transition: background var(--transition);
    }
    .mobile-menu a:hover { background: rgba(255,255,255,0.1); }

    /* ============================================================
       HERO
    ============================================================ */
    #inicio {
      min-height: 100vh;
      display: flex;
      align-items: center;
      position: relative;
      overflow: hidden;
      background: linear-gradient(135deg, #060e2e 0%, #0f2260 35%, #1a3a8f 60%, #1d6a3c 100%);
      padding: 100px 0 60px;
    }
    /* Formas decorativas hero */
    #inicio::before {
      content: '';
      position: absolute;
      inset: 0;
      background:
        radial-gradient(ellipse 600px 400px at 80% 20%, rgba(212,160,23,0.12) 0%, transparent 70%),
        radial-gradient(ellipse 500px 500px at 10% 80%, rgba(29,138,60,0.18) 0%, transparent 70%),
        radial-gradient(ellipse 700px 300px at 50% 50%, rgba(38,85,192,0.15) 0%, transparent 70%);
      pointer-events: none;
    }
    .hero-shape {
      position: absolute;
      border-radius: 50%;
      opacity: 0.06;
      animation: floatAnim 8s ease-in-out infinite;
    }
    .hero-shape-1 {
      width: 600px; height: 600px;
      background: var(--dorado);
      top: -150px; right: -150px;
      animation-duration: 10s;
    }
    .hero-shape-2 {
      width: 300px; height: 300px;
      background: var(--verde-claro);
      bottom: -80px; left: 20%;
      animation-duration: 7s;
      animation-delay: -3s;
    }
    .hero-shape-3 {
      width: 200px; height: 200px;
      background: var(--dorado-claro);
      top: 30%; left: -60px;
      animation-duration: 9s;
      animation-delay: -5s;
    }
    @keyframes floatAnim {
      0%,100%{ transform: translateY(0) scale(1); }
      50%{ transform: translateY(-30px) scale(1.05); }
    }

    .hero-content {
      position: relative;
      z-index: 2;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 60px;
      align-items: center;
    }
    .hero-text { animation: fadeInLeft 0.9s ease both; }
    @keyframes fadeInLeft {
      from { opacity:0; transform: translateX(-40px); }
      to   { opacity:1; transform: translateX(0); }
    }
    .hero-tag {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: rgba(212,160,23,0.18);
      border: 1px solid rgba(212,160,23,0.35);
      color: var(--dorado-claro);
      padding: 6px 16px;
      border-radius: 99px;
      font-size: 0.82rem;
      font-weight: 600;
      letter-spacing: .06em;
      text-transform: uppercase;
      margin-bottom: 24px;
    }
    .hero-tag i { font-size: 0.75rem; }
    .hero-title {
      font-family: 'Playfair Display', serif;
      font-size: clamp(1.9rem, 4.2vw, 3.4rem);
      font-weight: 900;
      color: var(--blanco);
      line-height: 1.15;
      margin-bottom: 20px;
    }
    .hero-title .highlight {
      background: linear-gradient(90deg, var(--dorado-claro), var(--verde-claro));
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }
    .hero-subtitle {
      color: rgba(255,255,255,0.75);
      font-size: 1.1rem;
      line-height: 1.7;
      margin-bottom: 36px;
      font-weight: 300;
    }
    .hero-btns {
      display: flex;
      gap: 14px;
      flex-wrap: wrap;
    }
    .btn {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 14px 28px;
      border-radius: 12px;
      font-size: 0.95rem;
      font-weight: 600;
      cursor: pointer;
      border: none;
      transition: var(--transition);
      letter-spacing: .02em;
    }
    .btn-primary {
      background: linear-gradient(135deg, var(--verde), var(--verde-med));
      color: var(--blanco);
      box-shadow: 0 6px 24px rgba(29,138,60,0.35);
    }
    .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 32px rgba(29,138,60,0.45); }
    .btn-wa {
      background: linear-gradient(135deg, #25d366, #128c7e);
      color: var(--blanco);
      box-shadow: 0 6px 24px rgba(37,211,102,0.3);
    }
    .btn-wa:hover { transform: translateY(-2px); box-shadow: 0 12px 32px rgba(37,211,102,0.4); }
    .btn-outline {
      background: transparent;
      color: var(--blanco);
      border: 2px solid rgba(255,255,255,0.4);
    }
    .btn-outline:hover { background: rgba(255,255,255,0.1); border-color: var(--blanco); }

    .hero-image {
      display: flex;
      justify-content: center;
      animation: fadeInRight 0.9s ease 0.3s both;
    }
    @keyframes fadeInRight {
      from { opacity:0; transform: translateX(40px); }
      to   { opacity:1; transform: translateX(0); }
    }
    .hero-logo-wrap {
      position: relative;
      width: 420px;
      max-width: 100%;
    }
    .hero-logo-wrap::before {
      content: '';
      position: absolute;
      inset: -30px;
      border-radius: 50%;
      background: radial-gradient(ellipse, rgba(212,160,23,0.2) 0%, transparent 70%);
      animation: pulseSoft 3s ease-in-out infinite;
    }
    @keyframes pulseSoft {
      0%,100%{ transform: scale(1); opacity: 0.5; }
      50%{ transform: scale(1.08); opacity: 1; }
    }
    .hero-logo-wrap img {
      position: relative;
      z-index: 1;
      filter: drop-shadow(0 8px 40px rgba(0,0,0,0.4));
      animation: logoFloat 6s ease-in-out infinite;
    }
    @keyframes logoFloat {
      0%,100%{ transform: translateY(0); }
      50%{ transform: translateY(-14px); }
    }

    /* Scroll indicator */
    .scroll-indicator {
      position: absolute;
      bottom: 32px;
      left: 50%;
      transform: translateX(-50%);
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;
      color: rgba(255,255,255,0.45);
      font-size: 0.75rem;
      letter-spacing: .08em;
      text-transform: uppercase;
      animation: bounce 2s ease-in-out infinite;
    }
    @keyframes bounce {
      0%,100%{ transform: translateX(-50%) translateY(0); }
      50%{ transform: translateX(-50%) translateY(8px); }
    }

    /* ============================================================
       STATS
    ============================================================ */
    #gestion-resumen {
      background: var(--gris-claro);
      padding: 80px 0;
    }
    .stats-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
      gap: 24px;
    }
    .stat-card {
      background: var(--blanco);
      border-radius: var(--radius);
      padding: 36px 24px;
      text-align: center;
      box-shadow: var(--sombra);
      transition: var(--transition);
      position: relative;
      overflow: hidden;
    }
    .stat-card::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 4px;
      background: linear-gradient(90deg, var(--azul), var(--verde));
    }
    .stat-card:hover { transform: translateY(-6px); box-shadow: var(--sombra-hover); }
    .stat-icon {
      width: 64px; height: 64px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.6rem;
      margin: 0 auto 16px;
    }
    .stat-icon.blue  { background: #dbeafe; color: var(--azul-med); }
    .stat-icon.green { background: #dcfce7; color: var(--verde); }
    .stat-icon.gold  { background: #fef9c3; color: var(--dorado); }
    .stat-icon.teal  { background: #ccfbf1; color: #0d9488; }
    .stat-icon.purple{ background: #ede9fe; color: #7c3aed; }
    .stat-number {
      font-family: 'Playfair Display', serif;
      font-size: 2.8rem;
      font-weight: 900;
      color: var(--azul-osc);
      line-height: 1;
      margin-bottom: 8px;
    }
    .stat-label { font-size: 0.9rem; color: var(--gris-text); font-weight: 500; }

    /* ============================================================
       LOGROS
    ============================================================ */
    #logros { background: var(--blanco); }
    .logros-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
      gap: 28px;
    }
    .logro-card {
      border-radius: var(--radius);
      border: 1px solid #e2e8f0;
      padding: 30px 26px;
      transition: var(--transition);
      position: relative;
      overflow: hidden;
      background: var(--blanco);
    }
    .logro-card::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0; right: 0;
      height: 3px;
      background: linear-gradient(90deg, var(--verde), var(--azul));
      transform: scaleX(0);
      transition: var(--transition);
    }
    .logro-card:hover { transform: translateY(-4px); box-shadow: var(--sombra-hover); }
    .logro-card:hover::after { transform: scaleX(1); }
    .logro-icon-wrap {
      width: 56px; height: 56px;
      border-radius: 14px;
      background: linear-gradient(135deg, var(--azul), var(--verde));
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.4rem;
      color: var(--blanco);
      margin-bottom: 18px;
    }
    .logro-date {
      font-size: 0.75rem;
      color: var(--dorado);
      font-weight: 700;
      letter-spacing: .05em;
      text-transform: uppercase;
      margin-bottom: 8px;
    }
    .logro-title {
      font-size: 1.1rem;
      font-weight: 700;
      color: var(--azul-osc);
      margin-bottom: 10px;
    }
    .logro-desc {
      font-size: 0.9rem;
      color: var(--gris-text);
      line-height: 1.65;
    }
    .logro-footer {
      margin-top: 18px;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    /* ============================================================
       PROYECTOS
    ============================================================ */
    #proyectos { background: var(--gris-claro); }
    .proyectos-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
      gap: 28px;
    }
    .proyecto-card {
      background: var(--blanco);
      border-radius: var(--radius);
      overflow: hidden;
      box-shadow: var(--sombra);
      transition: var(--transition);
    }
    .proyecto-card:hover { transform: translateY(-5px); box-shadow: var(--sombra-hover); }
    .proyecto-img {
      width: 100%;
      height: 180px;
      object-fit: cover;
      background: linear-gradient(135deg, var(--azul-osc), var(--verde));
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 3rem;
      color: rgba(255,255,255,0.4);
    }
    .proyecto-body { padding: 24px; }
    .proyecto-title {
      font-size: 1.1rem;
      font-weight: 700;
      color: var(--azul-osc);
      margin-bottom: 10px;
    }
    .proyecto-desc {
      font-size: 0.88rem;
      color: var(--gris-text);
      line-height: 1.6;
      margin-bottom: 20px;
    }
    .progress-label {
      display: flex;
      justify-content: space-between;
      font-size: 0.82rem;
      font-weight: 600;
      color: var(--azul);
      margin-bottom: 6px;
    }
    .progress-bar {
      height: 8px;
      background: #e2e8f0;
      border-radius: 99px;
      overflow: hidden;
      margin-bottom: 18px;
    }
    .progress-fill {
      height: 100%;
      border-radius: 99px;
      background: linear-gradient(90deg, var(--verde), var(--azul-med));
      width: 0%;
      transition: width 1.4s cubic-bezier(.4,0,.2,1);
    }
    .proyecto-footer {
      display: flex;
      justify-content: space-between;
      align-items: center;
    }

    /* ============================================================
       OBRAS
    ============================================================ */
    #obras { background: var(--blanco); }
    .obras-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
      gap: 28px;
    }
    .obra-card {
      border-radius: var(--radius);
      overflow: hidden;
      box-shadow: var(--sombra);
      transition: var(--transition);
      background: var(--blanco);
      border: 1px solid #e2e8f0;
    }
    .obra-card:hover { transform: translateY(-5px); box-shadow: var(--sombra-hover); }
    .obra-img-wrap {
      width: 100%;
      height: 200px;
      overflow: hidden;
      position: relative;
      background: linear-gradient(135deg, #0f2260, #1d8a3c);
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .obra-img-wrap .obra-placeholder {
      font-size: 3.5rem;
      color: rgba(255,255,255,0.3);
    }
    .obra-img-wrap img {
      width: 100%; height: 100%;
      object-fit: cover;
      transition: transform 0.5s ease;
    }
    .obra-card:hover .obra-img-wrap img { transform: scale(1.06); }
    .obra-status-badge {
      position: absolute;
      top: 12px; right: 12px;
    }
    .obra-body { padding: 22px; }
    .obra-meta {
      display: flex;
      gap: 10px;
      font-size: 0.78rem;
      color: var(--gris-text);
      margin-bottom: 10px;
      flex-wrap: wrap;
    }
    .obra-meta span { display: flex; align-items: center; gap: 4px; }
    .obra-title {
      font-size: 1rem;
      font-weight: 700;
      color: var(--azul-osc);
      margin-bottom: 8px;
    }
    .obra-desc { font-size: 0.85rem; color: var(--gris-text); line-height: 1.55; }

    /* ============================================================
       EQUIPO
    ============================================================ */
    #equipo { background: var(--gris-claro); }
    .equipo-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
      gap: 28px;
    }
    .equipo-card {
      background: var(--blanco);
      border-radius: var(--radius);
      padding: 32px 24px;
      text-align: center;
      box-shadow: var(--sombra);
      transition: var(--transition);
      position: relative;
      overflow: hidden;
    }
    .equipo-card::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 80px;
      background: linear-gradient(135deg, var(--azul), var(--verde));
    }
    .equipo-card:hover { transform: translateY(-6px); box-shadow: var(--sombra-hover); }
    .equipo-avatar {
      width: 90px; height: 90px;
      border-radius: 50%;
      border: 4px solid var(--blanco);
      background: linear-gradient(135deg, var(--azul-med), var(--verde));
      margin: 0 auto 16px;
      position: relative;
      z-index: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 2.2rem;
      color: var(--blanco);
      overflow: hidden;
      box-shadow: 0 4px 16px rgba(0,0,0,0.15);
    }
    .equipo-avatar img {
      width: 100%; height: 100%;
      object-fit: cover;
    }
    .equipo-name {
      font-family: 'Playfair Display', serif;
      font-size: 1.05rem;
      font-weight: 700;
      color: var(--azul-osc);
      margin-bottom: 4px;
    }
    .equipo-cargo {
      font-size: 0.82rem;
      font-weight: 600;
      color: var(--verde);
      text-transform: uppercase;
      letter-spacing: .05em;
      margin-bottom: 12px;
    }
    .equipo-desc { font-size: 0.85rem; color: var(--gris-text); line-height: 1.6; }

    /* ============================================================
       GALERÍA
    ============================================================ */
    #galeria { background: var(--blanco); }
    .galeria-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
      gap: 16px;
    }
    .galeria-item {
      position: relative;
      border-radius: var(--radius-sm);
      overflow: hidden;
      cursor: pointer;
      aspect-ratio: 4/3;
      background: linear-gradient(135deg, var(--azul-osc), var(--verde));
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .galeria-item img {
      width: 100%; height: 100%;
      object-fit: cover;
      transition: transform 0.5s ease;
    }
    .galeria-item:hover img { transform: scale(1.08); }
    .galeria-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(10,20,70,0.75) 0%, transparent 60%);
      opacity: 0;
      transition: var(--transition);
      display: flex;
      align-items: flex-end;
      padding: 16px;
    }
    .galeria-item:hover .galeria-overlay { opacity: 1; }
    .galeria-overlay p {
      color: var(--blanco);
      font-size: 0.88rem;
      font-weight: 600;
    }
    .galeria-placeholder {
      font-size: 2.5rem;
      color: rgba(255,255,255,0.3);
      flex-direction: column;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .galeria-placeholder span {
      font-size: 0.75rem;
      color: rgba(255,255,255,0.4);
      text-align: center;
      padding: 0 16px;
    }

    /* Lightbox */
    .lightbox {
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,0.92);
      z-index: 9999;
      display: none;
      align-items: center;
      justify-content: center;
    }
    .lightbox.active { display: flex; }
    .lightbox-inner { position: relative; max-width: 90vw; max-height: 90vh; }
    .lightbox-inner img { max-width: 100%; max-height: 85vh; border-radius: 12px; }
    .lightbox-close {
      position: absolute;
      top: -40px; right: 0;
      color: var(--blanco);
      font-size: 1.5rem;
      cursor: pointer;
      background: none;
      border: none;
    }

    /* ============================================================
       TIMELINE
    ============================================================ */
    #timeline { background: var(--gris-claro); }
    .timeline-wrap {
      position: relative;
      max-width: 800px;
      margin: 0 auto;
    }
    .timeline-wrap::before {
      content: '';
      position: absolute;
      left: 50%;
      top: 0; bottom: 0;
      width: 3px;
      background: linear-gradient(to bottom, var(--azul), var(--verde));
      transform: translateX(-50%);
    }
    .timeline-item {
      display: flex;
      align-items: flex-start;
      gap: 30px;
      margin-bottom: 48px;
      position: relative;
    }
    .timeline-item:nth-child(odd)  { flex-direction: row-reverse; }
    .timeline-item:nth-child(odd) .tl-card  { text-align: right; }
    .timeline-dot {
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      width: 16px; height: 16px;
      border-radius: 50%;
      background: var(--dorado);
      border: 3px solid var(--blanco);
      box-shadow: 0 0 0 3px var(--dorado);
      z-index: 1;
      top: 6px;
    }
    .tl-card {
      flex: 1;
      background: var(--blanco);
      border-radius: var(--radius-sm);
      padding: 22px 24px;
      box-shadow: var(--sombra);
      transition: var(--transition);
    }
    .tl-card:hover { box-shadow: var(--sombra-hover); }
    .tl-date {
      font-size: 0.78rem;
      font-weight: 700;
      color: var(--dorado);
      text-transform: uppercase;
      letter-spacing: .06em;
      margin-bottom: 6px;
    }
    .tl-title {
      font-weight: 700;
      color: var(--azul-osc);
      margin-bottom: 6px;
    }
    .tl-desc { font-size: 0.88rem; color: var(--gris-text); line-height: 1.6; }

    /* ============================================================
       MENSAJE
    ============================================================ */
    #mensaje {
      background: linear-gradient(135deg, var(--azul-osc) 0%, var(--azul) 50%, var(--verde) 100%);
      position: relative;
      overflow: hidden;
    }
    #mensaje::before {
      content: '"';
      position: absolute;
      top: -60px; left: 40px;
      font-size: 25rem;
      font-family: 'Playfair Display', serif;
      color: rgba(255,255,255,0.04);
      line-height: 1;
      pointer-events: none;
    }
    .mensaje-inner {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 60px;
      align-items: center;
      position: relative;
      z-index: 1;
    }
    .mensaje-photo {
      width: 220px; height: 270px;
      border-radius: 20px;
      background: linear-gradient(135deg, rgba(255,255,255,0.15), rgba(255,255,255,0.05));
      border: 3px solid rgba(255,255,255,0.2);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 4rem;
      color: rgba(255,255,255,0.3);
      overflow: hidden;
      flex-shrink: 0;
      backdrop-filter: blur(4px);
    }
    .mensaje-photo img { width: 100%; height: 100%; object-fit: cover; }
    .mensaje-quote {
      font-size: 0.9rem;
      color: var(--dorado-claro);
      font-weight: 700;
      letter-spacing: .06em;
      text-transform: uppercase;
      margin-bottom: 20px;
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .mensaje-quote::before, .mensaje-quote::after {
      content: '';
      flex: 1;
      height: 1px;
      background: rgba(240,197,58,0.4);
    }
    .mensaje-text {
      font-family: 'Playfair Display', serif;
      font-size: clamp(1.1rem, 2.5vw, 1.45rem);
      color: var(--blanco);
      line-height: 1.75;
      font-style: italic;
      margin-bottom: 28px;
    }
    .mensaje-firma {
      color: var(--dorado-claro);
      font-weight: 700;
      font-size: 1.05rem;
    }
    .mensaje-firma small {
      display: block;
      font-weight: 400;
      color: rgba(255,255,255,0.6);
      font-size: 0.85rem;
      margin-top: 2px;
    }

    /* ============================================================
       CONTACTO
    ============================================================ */
    #contacto { background: var(--blanco); }
    .contacto-inner {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 60px;
      align-items: start;
    }
    .contacto-info h3 {
      font-family: 'Playfair Display', serif;
      font-size: 1.8rem;
      color: var(--azul-osc);
      margin-bottom: 14px;
    }
    .contacto-info p {
      color: var(--gris-text);
      line-height: 1.7;
      margin-bottom: 32px;
    }
    .contacto-items { display: flex; flex-direction: column; gap: 18px; margin-bottom: 32px; }
    .contacto-item {
      display: flex;
      align-items: center;
      gap: 16px;
    }
    .contacto-item-icon {
      width: 48px; height: 48px;
      border-radius: 12px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.1rem;
      flex-shrink: 0;
    }
    .ci-blue  { background: #dbeafe; color: var(--azul-med); }
    .ci-green { background: #dcfce7; color: var(--verde); }
    .ci-gold  { background: #fef9c3; color: var(--dorado); }
    .ci-red   { background: #fee2e2; color: #dc2626; }
    .contacto-item-text strong {
      display: block;
      font-weight: 600;
      color: var(--azul-osc);
      font-size: 0.88rem;
    }
    .contacto-item-text span { font-size: 0.9rem; color: var(--gris-text); }
    .social-links { display: flex; gap: 12px; }
    .social-link {
      width: 44px; height: 44px;
      border-radius: 12px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.1rem;
      color: var(--blanco);
      transition: var(--transition);
    }
    .social-link:hover { transform: translateY(-3px); opacity: 0.9; }
    .sl-fb { background: #1877f2; }
    .sl-tw { background: #000; }
    .sl-ig { background: linear-gradient(135deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); }
    .sl-yt { background: #ff0000; }
    .sl-wa { background: #25d366; }

    /* Formulario */
    .form-card {
      background: var(--gris-claro);
      border-radius: var(--radius);
      padding: 36px;
    }
    .form-card h3 {
      font-family: 'Playfair Display', serif;
      font-size: 1.4rem;
      color: var(--azul-osc);
      margin-bottom: 24px;
    }
    .form-group { margin-bottom: 18px; }
    .form-group label {
      display: block;
      font-size: 0.85rem;
      font-weight: 600;
      color: var(--azul-osc);
      margin-bottom: 6px;
    }
    .form-group input,
    .form-group textarea,
    .form-group select {
      width: 100%;
      padding: 12px 16px;
      border: 1.5px solid #e2e8f0;
      border-radius: 10px;
      font-family: 'Outfit', sans-serif;
      font-size: 0.9rem;
      color: #1e293b;
      background: var(--blanco);
      transition: border-color var(--transition);
      outline: none;
    }
    .form-group input:focus,
    .form-group textarea:focus { border-color: var(--azul-med); }
    .form-group textarea { height: 120px; resize: vertical; }
    .btn-submit {
      width: 100%;
      padding: 14px;
      background: linear-gradient(135deg, var(--azul), var(--azul-med));
      color: var(--blanco);
      border: none;
      border-radius: 12px;
      font-family: 'Outfit', sans-serif;
      font-size: 1rem;
      font-weight: 700;
      cursor: pointer;
      transition: var(--transition);
    }
    .btn-submit:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(26,58,143,0.3); }

    /* WhatsApp flotante */
    .wa-float {
      position: fixed;
      bottom: 28px; right: 28px;
      z-index: 999;
      width: 60px; height: 60px;
      border-radius: 50%;
      background: #25d366;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.6rem;
      color: var(--blanco);
      box-shadow: 0 6px 24px rgba(37,211,102,0.5);
      transition: var(--transition);
      animation: waPulse 2.5s ease-in-out infinite;
    }
    .wa-float:hover { transform: scale(1.1); }
    @keyframes waPulse {
      0%,100%{ box-shadow: 0 6px 24px rgba(37,211,102,0.5); }
      50%{ box-shadow: 0 6px 40px rgba(37,211,102,0.75); }
    }

    /* ============================================================
       FOOTER
    ============================================================ */
    footer {
      background: var(--azul-osc);
      color: var(--blanco);
      padding: 60px 0 30px;
    }
    .footer-top {
      display: grid;
      grid-template-columns: 2fr 1fr 1fr;
      gap: 48px;
      margin-bottom: 48px;
    }
    .footer-brand img {
      height: 60px;
      margin-bottom: 16px;
      filter: brightness(1.1) drop-shadow(0 2px 8px rgba(0,0,0,0.3));
    }
    .footer-brand p {
      color: rgba(255,255,255,0.6);
      font-size: 0.9rem;
      line-height: 1.7;
      margin-bottom: 20px;
    }
    .footer-slogan {
      font-family: 'Playfair Display', serif;
      color: var(--dorado-claro);
      font-style: italic;
      font-size: 0.95rem;
    }
    .footer-col h4 {
      font-size: 1rem;
      font-weight: 700;
      color: var(--dorado-claro);
      margin-bottom: 18px;
      text-transform: uppercase;
      letter-spacing: .05em;
    }
    .footer-col ul { display: flex; flex-direction: column; gap: 10px; }
    .footer-col ul li a {
      color: rgba(255,255,255,0.65);
      font-size: 0.9rem;
      transition: color var(--transition);
      display: flex;
      align-items: center;
      gap: 6px;
    }
    .footer-col ul li a:hover { color: var(--dorado-claro); }
    .footer-col ul li a::before { content: '›'; color: var(--dorado); }
    .footer-bottom {
      border-top: 1px solid rgba(255,255,255,0.08);
      padding-top: 24px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      flex-wrap: wrap;
      gap: 10px;
    }
    .footer-bottom p { font-size: 0.82rem; color: rgba(255,255,255,0.45); }

    /* ============================================================
       SCROLL ANIMATIONS
    ============================================================ */
    .reveal {
      opacity: 0;
      transform: translateY(30px);
      transition: opacity 0.7s ease, transform 0.7s ease;
    }
    .reveal.visible { opacity: 1; transform: translateY(0); }
    .reveal-delay-1 { transition-delay: 0.1s; }
    .reveal-delay-2 { transition-delay: 0.2s; }
    .reveal-delay-3 { transition-delay: 0.3s; }
    .reveal-delay-4 { transition-delay: 0.4s; }

    /* Section header accent */
    .section-accent {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 12px;
      margin-bottom: 14px;
    }
    .section-accent span {
      height: 2px;
      width: 40px;
      background: linear-gradient(90deg, var(--azul), var(--verde));
      border-radius: 99px;
    }
    .section-accent i { color: var(--dorado); font-size: 1.1rem; }

    /* ============================================================
       RESPONSIVE
    ============================================================ */
    @media (max-width: 1024px) {
      .hero-content { gap: 40px; }
      .footer-top { grid-template-columns: 1fr 1fr; }
      .footer-brand { grid-column: 1/-1; }
      .contacto-inner { gap: 40px; }
      .mensaje-inner { gap: 40px; }
    }

    @media (max-width: 768px) {
      section { padding: 64px 0; }
      .nav-links { display: none; }
      .hamburger { display: flex; }

      .hero-content { grid-template-columns: 1fr; gap: 32px; text-align: center; }
      .hero-image { order: -1; }
      .hero-logo-wrap { width: 260px; margin: 0 auto; }
      .hero-btns { justify-content: center; }

      .timeline-wrap::before { left: 20px; }
      .timeline-item,
      .timeline-item:nth-child(odd) { flex-direction: column; padding-left: 48px; }
      .timeline-item:nth-child(odd) .tl-card { text-align: left; }
      .timeline-dot { left: 20px; }

      .mensaje-inner { grid-template-columns: 1fr; gap: 32px; }
      .mensaje-photo {
        width: 150px; height: 190px;
        margin: 0 auto;
      }
      .mensaje-text { font-size: 1.05rem; }

      .contacto-inner { grid-template-columns: 1fr; }
      .footer-top { grid-template-columns: 1fr; gap: 32px; }
      .footer-bottom { flex-direction: column; text-align: center; }

      .stats-grid { grid-template-columns: repeat(2, 1fr); }
      .logros-grid,
      .proyectos-grid,
      .obras-grid { grid-template-columns: 1fr; }
      .equipo-grid { grid-template-columns: repeat(2, 1fr); }
      .galeria-grid { grid-template-columns: repeat(2, 1fr); }
    }

    @media (max-width: 480px) {
      .stats-grid { grid-template-columns: 1fr; }
      .equipo-grid { grid-template-columns: 1fr; }
      .galeria-grid { grid-template-columns: 1fr; }
      .hero-btns { flex-direction: column; align-items: center; }
      .btn { width: 100%; justify-content: center; }
    }
  

/* ===== Ajustes dinámicos y mejoras responsive agregadas ===== */
.empty-state{padding:34px;border:1px dashed #cbd5e1;border-radius:16px;text-align:center;color:#64748b;background:#f8fafc}
.proyecto-img img{width:100%;height:100%;object-fit:cover}
.admin-link{display:none}
@media(max-width:768px){
  #inicio{padding-top:92px;min-height:auto}
  .scroll-indicator{display:none}
  .container{padding:0 18px}
  .form-card{padding:24px}
  .wa-float{width:54px;height:54px;right:18px;bottom:18px}
}

/* Ajustes extra para header/footer editables */
.nav-logo{min-width:0}.nav-logo-text{min-width:0}.nav-logo-text strong,.nav-logo-text span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.footer-brand img{object-fit:contain;max-width:180px}.footer-brand p{max-width:620px}
@media(max-width:768px){.nav-logo img{height:44px}.nav-logo-text strong{font-size:.9rem;max-width:190px}.nav-logo-text span{font-size:.64rem;max-width:190px}.mobile-menu{max-height:calc(100vh - 72px);overflow:auto}.footer-brand img{margin-left:auto;margin-right:auto}.footer-brand p{text-align:center}.footer-slogan{text-align:center}}
@media(max-width:420px){.nav-logo-text strong{max-width:150px}.nav-logo-text span{max-width:150px}.nav-logo{gap:8px}.nav-logo img{height:40px}}

/* ============================================================
   ACTUALIZACIÓN: cards iguales, degradado sobre imagen y Ver más
============================================================ */
.proyecto-card{display:flex;flex-direction:column;height:100%;border:1px solid #e2e8f0}
.proyecto-img{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.proyecto-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  position:relative;
  z-index:1;
  transition:transform .5s ease;
}
.proyecto-img::after{
  content:"";
  position:absolute;
  inset:0;
  background:inherit;
  opacity:.52;
  z-index:2;
  pointer-events:none;
}
.proyecto-img > i,
.proyecto-img .obra-placeholder{
  position:relative;
  z-index:3;
  font-size:3.5rem;
  color:rgba(255,255,255,.34);
}
.proyecto-card:hover .proyecto-img img{transform:scale(1.06)}
.proyecto-body{display:flex;flex-direction:column;flex:1}
.proyecto-desc{
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.card-mini-text{font-size:.8rem;color:var(--gris-text);text-align:right}
.btn-card-more{
  margin-top:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:10px 16px;
  border-radius:11px;
  font-size:.86rem;
  font-weight:800;
  color:var(--blanco);
  background:linear-gradient(135deg,var(--azul),var(--verde));
  box-shadow:0 6px 18px rgba(26,58,143,.18);
  transition:var(--transition);
}
.btn-card-more:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(26,58,143,.28)}
.logro-card-modern .logro-date{margin-bottom:10px}
.obra-card-modern .obra-meta-modern{margin:12px 0 14px;line-height:1.45}
.obra-card-modern .obra-meta-modern span{min-width:0}

/* En celular estas secciones quedan de 2 en 2; en PC se mantiene el grid original */
@media(max-width:768px){
  .stats-grid,
  .logros-grid,
  .proyectos-grid,
  .obras-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:22px}
  .proyecto-img{height:185px}
  .proyecto-body{padding:20px}
  .proyecto-title{font-size:1.02rem;line-height:1.35}
  .proyecto-desc{font-size:.86rem;line-height:1.55;-webkit-line-clamp:4}
}
@media(max-width:480px){
  .stats-grid,
  .logros-grid,
  .proyectos-grid,
  .obras-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:18px}
  .stats-grid .stat-card{padding:22px 12px}
  .stats-grid .stat-icon{width:48px;height:48px;font-size:1.15rem}
  .stats-grid .stat-number{font-size:2rem}
  .stats-grid .stat-label{font-size:.78rem}
  .proyecto-img{height:150px}
  .proyecto-body{padding:16px}
  .proyecto-title{font-size:.94rem;line-height:1.35;margin-bottom:8px}
  .proyecto-desc{font-size:.8rem;line-height:1.5;-webkit-line-clamp:4;margin-bottom:14px}
  .progress-label{font-size:.72rem;gap:8px;align-items:center}
  .progress-bar{height:7px;margin-bottom:14px}
  .proyecto-footer{flex-direction:column;align-items:flex-start;gap:8px}
  .badge{font-size:.64rem;padding:4px 10px}
  .card-mini-text{font-size:.74rem;text-align:left}
  .btn-card-more{width:100%;font-size:.75rem;padding:9px 10px;margin-top:12px}
  .obra-meta-modern{font-size:.72rem;gap:6px;display:flex;flex-direction:column}
}
@media(max-width:360px){
  .container{padding:0 12px}
  .stats-grid,
  .logros-grid,
  .proyectos-grid,
  .obras-grid{gap:12px}
  .proyecto-img{height:132px}
  .proyecto-body{padding:13px}
  .proyecto-title{font-size:.86rem}
  .proyecto-desc{font-size:.75rem;-webkit-line-clamp:3}
}


/* ============================================================
   AJUSTE FINAL MÓVIL: logros alineados y botón Ver más mejorado
   Mantiene PC igual y optimiza celular.
============================================================ */
.proyecto-card .proyecto-footer{
  margin-top:auto;
}
.proyecto-card a.btn-card-more,
a.btn-card-more{
  text-decoration:none !important;
  color:#ffffff !important;
  background:linear-gradient(135deg,var(--azul),var(--verde)) !important;
  border-radius:999px !important;
  border:0 !important;
  box-shadow:0 8px 20px rgba(26,58,143,.22) !important;
}
.proyecto-card a.btn-card-more i{
  color:#ffffff !important;
}

@media(max-width:768px){
  #logros .logros-grid,
  #proyectos .proyectos-grid,
  #obras .obras-grid{
    align-items:stretch;
  }
  #logros .proyecto-card,
  #proyectos .proyecto-card,
  #obras .proyecto-card{
    height:100%;
  }
  #logros .proyecto-body,
  #proyectos .proyecto-body,
  #obras .proyecto-body{
    display:flex;
    flex-direction:column;
  }
}

@media(max-width:480px){
  #logros .proyecto-img,
  #proyectos .proyecto-img,
  #obras .proyecto-img{
    height:150px !important;
  }
  #logros .proyecto-title,
  #proyectos .proyecto-title,
  #obras .proyecto-title{
    min-height:3.9em;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  #logros .proyecto-desc,
  #proyectos .proyecto-desc,
  #obras .proyecto-desc{
    min-height:6em;
    margin-bottom:12px;
  }
  #logros .logro-date{
    min-height:16px;
    margin-bottom:8px;
    font-size:.62rem;
    letter-spacing:.09em;
  }
  #logros .proyecto-footer,
  #proyectos .proyecto-footer,
  #obras .proyecto-footer{
    min-height:44px;
    margin-top:auto;
  }
  #logros .card-mini-text:empty,
  #proyectos .card-mini-text:empty,
  #obras .card-mini-text:empty{
    display:none;
  }
  #logros .badge,
  #proyectos .badge,
  #obras .badge{
    max-width:100%;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  #logros a.btn-card-more,
  #proyectos a.btn-card-more,
  #obras a.btn-card-more{
    width:auto !important;
    align-self:flex-start;
    margin-top:10px !important;
    padding:7px 11px !important;
    font-size:.69rem !important;
    line-height:1 !important;
    gap:5px !important;
    letter-spacing:.02em;
  }
}

@media(max-width:360px){
  #logros .proyecto-img,
  #proyectos .proyecto-img,
  #obras .proyecto-img{
    height:132px !important;
  }
  #logros .proyecto-title,
  #proyectos .proyecto-title,
  #obras .proyecto-title{
    min-height:3.7em;
  }
  #logros .proyecto-desc,
  #proyectos .proyecto-desc,
  #obras .proyecto-desc{
    min-height:4.6em;
  }
  #logros a.btn-card-more,
  #proyectos a.btn-card-more,
  #obras a.btn-card-more{
    padding:6px 9px !important;
    font-size:.66rem !important;
  }
}

/* ============================================================
   MODAL DE LOGROS / PROPUESTAS
   El botón Ver más de logros abre un modal flotante, no detalle.php.
============================================================ */
.logro-modal{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;padding:22px}
.logro-modal.active{display:flex}
.logro-modal-backdrop{position:absolute;inset:0;background:rgba(4,12,42,.72);backdrop-filter:blur(8px)}
.logro-modal-card{position:relative;z-index:1;width:min(620px,100%);background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 30px 80px rgba(7,22,74,.34);animation:logroModalIn .25s ease both}
@keyframes logroModalIn{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.logro-modal-close{position:absolute;top:13px;right:13px;width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:#0f2260;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:3;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.logro-modal-media{height:210px;background:linear-gradient(135deg,#0f2260,#1d8a3c);background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;position:relative}
.logro-modal-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,20,61,.06),rgba(6,20,61,.34));pointer-events:none}
.logro-modal-media i{font-size:4.6rem;color:rgba(255,255,255,.38);position:relative;z-index:1}
.logro-modal-body{padding:26px 28px 30px}
.logro-modal-date{font-size:.78rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#b99121;margin-bottom:10px}
.logro-modal-body h3{font-family:'Playfair Display',serif;color:#0f2260;font-size:1.75rem;line-height:1.16;margin:0 0 14px}
.logro-modal-body p{color:#4a5568;font-size:1rem;line-height:1.7;margin:0 0 20px}
.logro-modal-meta{display:flex;flex-wrap:wrap;gap:10px}
.logro-modal-meta span{display:inline-flex;align-items:center;gap:7px;border-radius:999px;background:#eef4ff;color:#15377d;padding:8px 13px;font-size:.82rem;font-weight:800}
#logroModalState{background:#dcfce7;color:#166534}
#logroModalExtra:empty,#logroModalLocation:empty{display:none}
button.btn-card-more{border:0;cursor:pointer;font-family:inherit}
@media(max-width:640px){.logro-modal{align-items:flex-end;padding:12px}.logro-modal-card{border-radius:22px 22px 16px 16px;max-height:88vh;overflow:auto}.logro-modal-media{height:160px}.logro-modal-body{padding:20px 20px 24px}.logro-modal-body h3{font-size:1.35rem}.logro-modal-body p{font-size:.9rem}.logro-modal-meta span{font-size:.72rem;padding:7px 10px}}


/* ============================================================
   LOGROS: formulario simplificado y card móvil sin descripción
   La descripción completa se muestra solo en el modal Ver más.
============================================================ */
#logros button.btn-card-more{
  text-decoration:none !important;
  color:#ffffff !important;
  background:linear-gradient(135deg,var(--azul),var(--verde)) !important;
  border-radius:999px !important;
  border:0 !important;
  box-shadow:0 8px 20px rgba(26,58,143,.22) !important;
}
#logros button.btn-card-more i{color:#ffffff !important;}

@media(max-width:768px){
  #logros .proyecto-desc{
    display:none !important;
    min-height:0 !important;
    height:0 !important;
    margin:0 !important;
    padding:0 !important;
  }
  #logros .proyecto-body{
    display:flex !important;
    flex-direction:column !important;
  }
  #logros .proyecto-footer{
    margin-top:auto !important;
  }
  #logros button.btn-card-more{
    width:auto !important;
    align-self:flex-start !important;
    margin-top:10px !important;
    padding:7px 11px !important;
    font-size:.69rem !important;
    line-height:1 !important;
    gap:5px !important;
    letter-spacing:.02em !important;
  }
}

@media(max-width:360px){
  #logros button.btn-card-more{
    padding:6px 9px !important;
    font-size:.66rem !important;
  }
}

/* ============================================================
   CORRECCIÓN TIMELINE MÓVIL: alinear punto con cada card
   ============================================================ */
@media (max-width: 768px) {
  .timeline-wrap {
    padding-left: 0;
  }

  .timeline-wrap::before {
    left: 24px !important;
    transform: none !important;
  }

  .timeline-item,
  .timeline-item:nth-child(odd) {
    display: block !important;
    flex-direction: initial !important;
    padding-left: 62px !important;
    margin-bottom: 34px !important;
    min-height: auto !important;
  }

  /* Oculta los separadores usados para alternar las cards en PC.
     En móvil esos separadores dejaban el punto separado del card. */
  .timeline-item > div[style*="flex:1"] {
    display: none !important;
  }

  .timeline-dot {
    left: 24px !important;
    top: 28px !important;
    transform: translateX(-50%) !important;
  }

  .tl-card {
    width: 100% !important;
    text-align: left !important;
  }
}

/* ============================================================
   CORRECCIÓN FINAL TIMELINE PC/MÓVIL
   - PC: diseño alternado a los costados de la línea, como estaba antes.
   - Móvil: card al lado de la línea y punto alineado con el card.
   ============================================================ */
.timeline-clean {
  max-width: 920px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  position: relative !important;
}

.timeline-clean::before {
  left: 50% !important;
  transform: translateX(-50%) !important;
}

.timeline-clean .timeline-item,
.timeline-clean .timeline-item:nth-child(odd) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 0 !important;
  position: relative !important;
  margin-bottom: 52px !important;
  padding-left: 0 !important;
  flex-direction: initial !important;
  align-items: start !important;
}

.timeline-clean .timeline-content {
  min-width: 0 !important;
}

.timeline-clean .timeline-left .timeline-content {
  grid-column: 1 !important;
  padding-right: 42px !important;
}

.timeline-clean .timeline-right .timeline-content {
  grid-column: 2 !important;
  padding-left: 42px !important;
}

.timeline-clean .timeline-left .tl-card {
  text-align: right !important;
}

.timeline-clean .timeline-right .tl-card {
  text-align: left !important;
}

.timeline-clean .timeline-dot {
  left: 50% !important;
  top: 26px !important;
  transform: translateX(-50%) !important;
}

@media (max-width: 768px) {
  .timeline-clean {
    max-width: 100% !important;
    padding-left: 0 !important;
  }

  .timeline-clean::before {
    left: 30px !important;
    transform: none !important;
  }

  .timeline-clean .timeline-item,
  .timeline-clean .timeline-item:nth-child(odd),
  .timeline-clean .timeline-left,
  .timeline-clean .timeline-right {
    display: block !important;
    padding-left: 58px !important;
    margin-bottom: 36px !important;
    min-height: auto !important;
  }

  .timeline-clean .timeline-left .timeline-content,
  .timeline-clean .timeline-right .timeline-content {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .timeline-clean .timeline-left .tl-card,
  .timeline-clean .timeline-right .tl-card,
  .timeline-clean .tl-card {
    width: 100% !important;
    text-align: left !important;
  }

  .timeline-clean .timeline-dot {
    left: 30px !important;
    top: 24px !important;
    transform: translateX(-50%) !important;
  }
}

/* ============================================================
   LÍNEA DE TIEMPO PREMIUM - PC estilo maqueta + móvil alineado
   ============================================================ */
#timeline.timeline-premium-section{
  position:relative !important;
  overflow:hidden !important;
  background:
    radial-gradient(circle at 95% 18%, rgba(26,58,143,.08), transparent 28%),
    radial-gradient(circle at 10% 82%, rgba(29,138,60,.08), transparent 28%),
    linear-gradient(135deg,#f8fbff 0%,#ffffff 45%,#eef4fb 100%) !important;
  padding:34px 0 56px !important;
}
#timeline.timeline-premium-section::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:radial-gradient(rgba(10,20,70,.10) 1px, transparent 1px);
  background-size:12px 12px;
  opacity:.16;
  pointer-events:none;
  mask-image:linear-gradient(90deg,#000 0%,transparent 28%,transparent 72%,#000 100%);
}
#timeline.timeline-premium-section::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:160px;
  background:linear-gradient(0deg,rgba(26,58,143,.10),transparent);
  pointer-events:none;
}
.timeline-premium-container{
  position:relative !important;
  z-index:1 !important;
}
.timeline-premium-accent{margin-bottom:8px !important;}
#timeline.timeline-premium-section .section-title{
  margin-bottom:8px !important;
  line-height:1.05 !important;
}
#timeline.timeline-premium-section .section-subtitle{
  margin-bottom:22px !important;
  color:#2f3a4d !important;
}
#timeline.timeline-premium-section .section-subtitle strong{color:var(--verde) !important;}
.timeline-premium-layout{
  display:grid !important;
  grid-template-columns:390px minmax(0,1fr) !important;
  gap:34px !important;
  align-items:center !important;
  max-width:1040px !important;
  margin:0 auto !important;
}
.timeline-premium-profile{
  position:relative !important;
  min-height:475px !important;
  display:flex !important;
  align-items:flex-end !important;
  justify-content:center !important;
}
.timeline-person-frame{
  position:absolute !important;
  left:-16px !important;
  bottom:55px !important;
  width:360px !important;
  height:430px !important;
  display:flex !important;
  align-items:flex-end !important;
  justify-content:center !important;
  overflow:visible !important;
}
.timeline-person-frame img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center bottom !important;
  filter:drop-shadow(0 26px 36px rgba(10,20,70,.18)) !important;
}
.timeline-person-placeholder{
  width:280px !important;
  height:360px !important;
  border-radius:28px !important;
  background:linear-gradient(135deg,rgba(26,58,143,.16),rgba(29,138,60,.13)) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:rgba(26,58,143,.38) !important;
  font-size:6rem !important;
  border:1px solid rgba(26,58,143,.10) !important;
}
.timeline-quote-card{
  position:relative !important;
  z-index:2 !important;
  width:310px !important;
  margin-right:26px !important;
  margin-bottom:18px !important;
  padding:25px 28px 23px !important;
  color:#fff !important;
  border-radius:18px !important;
  background:linear-gradient(135deg,rgba(9,25,73,.90),rgba(20,56,126,.80)) !important;
  box-shadow:0 22px 55px rgba(8,22,70,.25) !important;
  overflow:hidden !important;
}
.timeline-quote-card::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:7px;
  background:linear-gradient(90deg,var(--dorado),var(--verde),var(--azul-med));
}
.timeline-quote-mark{
  color:var(--dorado-claro) !important;
  font-size:1.55rem !important;
  margin-bottom:8px !important;
}
.timeline-quote-card p{
  font-size:.94rem !important;
  line-height:1.45 !important;
  color:rgba(255,255,255,.92) !important;
  margin:0 0 14px !important;
}
.timeline-quote-card p span{color:var(--dorado-claro) !important;font-weight:700 !important;}
.timeline-quote-card strong{
  display:block !important;
  font-family:'Playfair Display',serif !important;
  font-size:1.02rem !important;
  font-style:italic !important;
  font-weight:700 !important;
  color:#fff !important;
  margin-bottom:3px !important;
}
.timeline-quote-card small{
  color:var(--verde-claro) !important;
  font-size:.68rem !important;
  font-weight:800 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
}
.timeline-premium-list{
  position:relative !important;
  display:flex !important;
  flex-direction:column !important;
  gap:18px !important;
  padding:6px 0 !important;
}
.timeline-premium-row{
  --tl-accent:var(--dorado);
  position:relative !important;
  display:grid !important;
  grid-template-columns:106px 18px minmax(0,1fr) !important;
  align-items:center !important;
  min-height:116px !important;
  gap:0 !important;
  margin:0 !important;
  padding:0 !important;
}
.timeline-premium-color-2{--tl-accent:var(--verde) !important;}
.timeline-premium-color-3{--tl-accent:var(--azul-med) !important;}
.timeline-icon-bubble{
  width:74px !important;
  height:74px !important;
  border-radius:50% !important;
  background:#fff !important;
  color:var(--tl-accent) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  justify-self:center !important;
  font-size:1.7rem !important;
  box-shadow:0 14px 32px rgba(10,20,70,.13) !important;
  border:1px solid rgba(10,20,70,.05) !important;
}
.timeline-icon-bubble span{font-size:1.7rem !important;line-height:1 !important;}
.timeline-row-dot{
  width:15px !important;
  height:15px !important;
  border-radius:50% !important;
  background:#fff !important;
  border:5px solid var(--tl-accent) !important;
  box-shadow:0 0 0 5px rgba(255,255,255,.92) !important;
  display:block !important;
  justify-self:center !important;
  z-index:2 !important;
}
.timeline-premium-card{
  position:relative !important;
  background:#fff !important;
  border-radius:10px !important;
  padding:18px 24px 18px 26px !important;
  min-height:104px !important;
  box-shadow:0 14px 34px rgba(10,20,70,.09) !important;
  border:1px solid rgba(10,20,70,.04) !important;
  border-right:4px solid var(--tl-accent) !important;
  transition:transform .25s ease, box-shadow .25s ease !important;
}
.timeline-premium-card:hover{
  transform:translateX(4px) !important;
  box-shadow:0 20px 44px rgba(10,20,70,.13) !important;
}
.timeline-premium-card .tl-date{
  color:var(--tl-accent) !important;
  margin-bottom:4px !important;
  font-size:.76rem !important;
  letter-spacing:.06em !important;
}
.timeline-premium-card .tl-title{
  color:var(--azul-osc) !important;
  font-size:1.02rem !important;
  line-height:1.22 !important;
  margin-bottom:7px !important;
  font-weight:800 !important;
}
.timeline-premium-card .tl-desc{
  color:#3f4858 !important;
  font-size:.88rem !important;
  line-height:1.55 !important;
  margin:0 !important;
}
.timeline-premium-pill{
  width:max-content !important;
  max-width:100% !important;
  margin:18px auto 0 !important;
  padding:13px 34px !important;
  border-radius:999px !important;
  background:linear-gradient(135deg,var(--azul-osc),#10296d) !important;
  color:#fff !important;
  box-shadow:0 12px 30px rgba(10,20,70,.16) !important;
  font-weight:700 !important;
  font-size:.92rem !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
}
.timeline-premium-pill i{color:var(--dorado-claro) !important;}
.timeline-premium-pill strong{color:var(--verde-claro) !important;}

@media (min-width: 769px){
  #timeline.timeline-premium-section .timeline-premium-list::before{
    content:"";
    position:absolute;
    left:115px;
    top:28px;
    bottom:28px;
    width:2px;
    background:linear-gradient(to bottom,transparent,rgba(26,58,143,.15),transparent);
  }
}

@media (max-width: 768px){
  #timeline.timeline-premium-section{
    padding:64px 0 !important;
    background:var(--gris-claro) !important;
  }
  #timeline.timeline-premium-section::before,
  #timeline.timeline-premium-section::after{display:none !important;}
  #timeline.timeline-premium-section .section-subtitle{margin-bottom:34px !important;}
  .timeline-premium-layout{
    display:block !important;
    max-width:100% !important;
  }
  .timeline-premium-profile{display:none !important;}
  .timeline-premium-list{
    display:block !important;
    padding-left:0 !important;
  }
  .timeline-premium-list::before{
    content:"";
    position:absolute;
    left:24px;
    top:18px;
    bottom:18px;
    width:3px;
    background:linear-gradient(to bottom,var(--azul),var(--verde));
    border-radius:999px;
  }
  .timeline-premium-row{
    display:block !important;
    min-height:0 !important;
    padding-left:64px !important;
    margin:0 0 34px !important;
  }
  .timeline-icon-bubble{
    position:absolute !important;
    left:24px !important;
    top:22px !important;
    transform:translateX(-50%) !important;
    width:20px !important;
    height:20px !important;
    border:4px solid var(--tl-accent) !important;
    background:#fff !important;
    box-shadow:0 0 0 4px #fff !important;
    font-size:0 !important;
    z-index:3 !important;
  }
  .timeline-icon-bubble span,
  .timeline-icon-bubble i{display:none !important;}
  .timeline-row-dot{display:none !important;}
  .timeline-premium-card{
    width:100% !important;
    min-height:auto !important;
    border-right:none !important;
    border-left:0 !important;
    border-radius:14px !important;
    padding:22px 24px !important;
    box-shadow:var(--sombra) !important;
  }
  .timeline-premium-card .tl-title{
    font-size:1rem !important;
  }
  .timeline-premium-card .tl-desc{
    font-size:.88rem !important;
    line-height:1.6 !important;
  }
  .timeline-premium-pill{display:none !important;}
}

/* Permite desactivar el degradado encima de imágenes desde el dashboard */
.proyecto-img.degradado-off::after{display:none!important}
.proyecto-img.degradado-off img{filter:none!important}
