/* Alan Aguirre · estilos contenidos para coexistir con el tema WordPress */
.alan-hero,.alan-block{box-sizing:border-box;color:#eaf1ff;font-family:inherit;max-width:1200px;margin:22px auto;padding:clamp(22px,5vw,50px);background:#101c30;border:1px solid #283a57;border-radius:22px}
.alan-hero{background:linear-gradient(115deg,#101c30,#182e50)}.alan-hero h1{font-size:clamp(2rem,4.7vw,3.8rem);line-height:1.12;color:#fff;max-width:850px;margin:12px 0}.alan-hero p{font-size:clamp(1rem,2vw,1.2rem);max-width:750px;color:#c3d3ea;line-height:1.65}
.alan-head h2{font-size:clamp(1.5rem,3vw,2.3rem);color:#fff;margin:9px 0}.alan-head p{color:#c3d3ea;line-height:1.6;margin:0 0 25px}.alan-kicker{font-size:.76rem;color:#80d5f7;letter-spacing:.1em;font-weight:700;text-transform:uppercase}
.alan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.alan-card{min-width:0;border:1px solid #314360;border-radius:17px;overflow:hidden;background:#1a2942;display:flex;flex-direction:column}.alan-picture{display:block;background:#0e192b;aspect-ratio:16/10;overflow:hidden}.alan-card-img{display:block;width:100%;height:100%;object-fit:contain;box-sizing:border-box;padding:16px}.alan-no-image{height:100%;display:grid;place-items:center;color:#8dd8ff;font-size:2rem}.alan-card-text{padding:20px;flex:1;display:flex;flex-direction:column}.alan-card h3{margin:10px 0;font-size:1.25rem;color:#fff}.alan-card h3 a{color:inherit;text-decoration:none}.alan-card p{color:#c3d3ea;font-size:.95rem;line-height:1.5;flex:1}.alan-actions{display:flex;gap:16px;flex-wrap:wrap}.alan-actions a{color:#92dbff;text-decoration:none;font-size:.91rem;font-weight:700}.alan-actions a:hover,.alan-card h3 a:hover{text-decoration:underline}
.alan-skill-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.alan-skill{background:#1a2942;border:1px solid #334765;padding:18px;border-radius:12px;min-width:0}.alan-skill strong{display:block;color:#fff;font-size:1rem;overflow-wrap:anywhere}.alan-skill small{display:block;color:#c5d5e9;margin-top:7px;line-height:1.4;font-size:.85rem}
@media(max-width:900px){.alan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.alan-skill-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.alan-grid,.alan-skill-grid{grid-template-columns:1fr}.alan-hero,.alan-block{padding:22px 17px;margin:14px auto;border-radius:15px}.alan-card-text{padding:16px}}

/* Descripciones editables, diseño sobrio */
.alan-description{margin-top:10px;font-size:.9rem;overflow-wrap:anywhere}.alan-description p{margin:0 0 8px}.alan-description a{overflow-wrap:anywhere}
/* v1.2: bitacora sencilla, compatible con el tema clasico */
.alan-updates{color:#182437;background:#fff;border:1px solid #d6dce5;border-radius:4px;padding:24px}.alan-updates .alan-head h2{color:#182437;font-size:1.55rem}.alan-update-list{display:grid;gap:14px}.alan-update{background:#fafbfc;border:1px solid #dce2e9;display:flex;gap:18px;padding:16px;min-width:0}.alan-update-image{flex:0 0 140px}.alan-update-image img{display:block;max-width:100%;height:auto;max-height:120px;object-fit:contain}.alan-update-body{min-width:0;flex:1}.alan-update-body time,.alan-update-project{color:#626d7c;font-size:.86rem}.alan-update-body h3{font-size:1.15rem;margin:7px 0;color:#152b4a}.alan-update-body p{font-size:.95rem;line-height:1.5;color:#3c4859;margin:5px 0 10px}.alan-update a{color:#154d89;text-decoration:underline}.alan-empty{color:#516071}@media(max-width:600px){.alan-update{display:block}.alan-update-image{display:block;margin-bottom:12px}.alan-updates{padding:16px}}

/* v1.3: filtro accesible y linea de tiempo simple */
.alan-timeline .alan-update-list{position:relative;border-left:2px solid #bcc9d9;margin:12px 0 0 9px;padding-left:23px}
.alan-timeline .alan-update{position:relative;border-radius:3px}
.alan-timeline .alan-update::before{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:#1c507f;border:2px solid white;left:-31px;top:21px;box-shadow:0 0 0 1px #bcc9d9}
.alan-filter{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:15px 0 22px}
.alan-filter label{font-weight:600;color:#293b51}.alan-filter select{max-width:100%;min-height:38px;border:1px solid #aebbc9;background:white;color:#192e48;padding:6px}
.alan-filter button{min-height:38px;background:#194a78;border:1px solid #194a78;color:white;padding:6px 14px;cursor:pointer;border-radius:2px}
.alan-filter button:hover,.alan-filter button:focus-visible{background:#103251}
@media(max-width:600px){.alan-timeline .alan-update-list{padding-left:17px}.alan-timeline .alan-update::before{left:-25px}.alan-filter{align-items:stretch;flex-direction:column}.alan-filter select,.alan-filter button{width:100%}}

/* v1.4: listado simple de artículos técnicos. */
.alan-articles .alan-article-grid{align-items:stretch}
.alan-articles .alan-article-topics{font-size:.85rem;color:#4b5563;margin:.5rem 0}
.alan-articles time{font-size:.85rem;color:#555}
.alan-articles .alan-article .alan-card-text{display:flex;flex-direction:column;gap:.4rem}
.alan-articles .alan-article .alan-card-text>a:last-child{margin-top:auto}

/* v1.6 — fichas clásicas informativas, adaptables y editables */
.alan-detail{background:#fff;color:#263646;border:1px solid #c8d1dc;margin:22px auto;padding:clamp(16px,3.2vw,32px);max-width:1040px;line-height:1.65}
.alan-detail a{color:#155486}
.alan-detail-back{margin:0 0 16px;font-size:.92rem}
.alan-detail-head{display:grid;grid-template-columns:180px minmax(0,1fr);gap:25px;align-items:center;padding-bottom:20px;border-bottom:1px solid #d5dde6}
.alan-detail-visual{width:100%;max-width:180px;min-height:150px;background:#f1f5fa;border:1px solid #d4dce4;display:flex;align-items:center;justify-content:center;padding:12px;box-sizing:border-box}
.alan-detail-image{max-height:120px;max-width:100%;width:auto;height:auto;object-fit:contain}
.alan-detail-fallback{font-weight:bold;font-size:1.6rem;color:#345370;text-align:center}
.alan-detail-category{font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:#456989;font-weight:700;margin:0 0 4px}
.alan-detail h1{font-size:clamp(1.65rem,3.5vw,2.5rem);margin:0 0 9px;color:#173b69}
.alan-detail-excerpt{font-size:1.06rem;margin:12px 0 0;color:#46576a}
.alan-detail-state{display:inline-block;background:#e9f0f8;border:1px solid #a9bdd2;padding:3px 10px;color:#17446d;font-weight:600;font-size:.87rem;margin:2px 0}
.alan-detail-section{margin-top:22px}
.alan-detail-section h2{font-size:1.24rem;color:#173b69;border-bottom:1px solid #d5dde6;padding-bottom:6px;margin:0 0 12px}
.alan-detail-section p{margin:0 0 9px}
.alan-detail-link{margin-top:22px}
.alan-detail-note{margin-top:28px;border-top:1px solid #d5dde6;padding-top:10px;font-size:.87rem;color:#586a7c}
@media(max-width:650px){.alan-detail-head{grid-template-columns:1fr;gap:14px}.alan-detail-visual{max-width:220px;min-height:140px}.alan-detail-image{max-height:110px}.alan-detail{margin:12px auto}}

/* v1.7: enlace principal de cada ficha. */
.alan-detail-cta{margin:20px 0 0}
.alan-detail .alan-detail-cta a{display:inline-block;background:#1b4679;color:#fff;text-decoration:none;padding:10px 18px;border:1px solid #17385f;font-weight:600;border-radius:2px}
.alan-detail .alan-detail-cta a:hover,.alan-detail .alan-detail-cta a:focus-visible{background:#123252;color:#fff;text-decoration:underline}

/* v1.9: galería y características de proyectos, estilo clásico */
.alan-detail .alan-feature-list{padding-left:23px;margin:6px 0 0}
.alan-detail .alan-feature-list li{margin:5px 0}
.alan-detail-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.alan-detail-gallery a{display:flex;align-items:center;justify-content:center;background:#f4f7fa;border:1px solid #d0d9e3;padding:8px;min-height:140px}
.alan-detail-gallery .alan-gallery-img{display:block;width:100%;height:150px;max-width:100%;object-fit:contain}
@media(max-width:680px){.alan-detail-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.alan-detail-gallery .alan-gallery-img{height:110px}.alan-detail-gallery a{min-height:105px}}
@media(max-width:400px){.alan-detail-gallery{grid-template-columns:1fr}}

/* v2.0: ampliación sencilla de capturas sin salir de la ficha */
.alan-detail-gallery [data-alan-gallery-link]{cursor:zoom-in}
.alan-gallery-dialog{border:1px solid #7892ad;background:#fff;max-width:min(94vw,1150px);max-height:94vh;padding:12px;box-shadow:0 9px 32px #0007}
.alan-gallery-dialog::backdrop{background:rgba(5,17,32,.78)}
.alan-gallery-dialog-inner{display:flex;flex-direction:column;gap:10px;align-items:flex-end}
.alan-gallery-dialog img{display:block;max-width:calc(94vw - 24px);max-height:calc(88vh - 65px);width:auto;height:auto;object-fit:contain}
.alan-gallery-close{background:#1b4679;color:#fff;border:1px solid #17385f;padding:8px 15px;cursor:pointer}
