/* Talleres ALFA DIY: inscripción y ubicación. Reutiliza las variables y el estilo del sitio. */
.taller-intro { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:20px; max-width:1100px; margin:0 auto 30px; }
.taller-card { background:var(--card-bg); border:1px solid var(--border-color); border-radius:16px; padding:24px; transition:.3s; }
.taller-card:hover { border-color:var(--accent-blue); transform:translateY(-4px); box-shadow:0 0 25px rgba(59,130,246,.2); }
.taller-card h3 { font-size:1.25rem; margin-bottom:6px; }
.taller-card .taller-age { display:inline-block; color:#60a5fa; font-weight:600; font-size:.9rem; margin-bottom:8px; }
.taller-card p { color:var(--text-muted); font-size:.95rem; }

.taller-box { background:var(--card-bg); border:1px solid var(--border-color); border-radius:16px; padding:40px; max-width:760px; margin:0 auto; box-shadow:0 0 30px rgba(0,0,0,.4); }
.taller-box h3 { font-size:1.6rem; margin-bottom:6px; text-align:center; }
.taller-box > p.taller-lead { text-align:center; color:var(--text-muted); margin-bottom:10px; }
.taller-form { display:grid; gap:4px; text-align:left; }
.taller-form [hidden] { display:none !important; }
.taller-form a { color:#93c5fd; }
.taller-form label, .taller-form fieldset legend { display:block; font-weight:600; margin:14px 0 0; }
.taller-form .taller-opt { font-weight:400; color:var(--text-muted); font-size:.85rem; }
.taller-form input:not([type=checkbox]), .taller-form select, .taller-form textarea {
  width:100%; margin-top:6px; padding:12px; border:1px solid #475569; border-radius:8px;
  background:#080e19; color:#f8fafc; font:inherit;
}
.taller-form textarea { resize:vertical; }
.taller-form select option { background:#080e19; color:#f8fafc; }
.taller-form input:focus-visible, .taller-form select:focus-visible, .taller-form textarea:focus-visible,
.taller-form button:focus-visible { outline:3px solid #93c5fd; outline-offset:3px; }
.taller-row { display:grid; grid-template-columns:1fr 1fr; gap:0 18px; }
.taller-form fieldset { border:1px solid #334155; border-radius:10px; padding:6px 16px 16px; margin:18px 0 0; min-width:0; }
.taller-form fieldset legend { padding:0 8px; margin:0; }
.taller-checks { display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:10px; }
.taller-form .taller-check { display:flex; align-items:center; gap:8px; margin:0; font-weight:400; cursor:pointer; }
.taller-form .taller-check input { width:auto; margin:0; flex:none; }
.taller-form .taller-consent { align-items:flex-start; font-size:.87rem; margin-top:18px; }
.taller-form .taller-consent input { margin-top:4px; }
.taller-hint { color:var(--text-muted); font-size:.85rem; margin-top:6px; }
.taller-submit { margin-top:22px; width:100%; border:0; font:inherit; font-size:1rem; }
.taller-submit:disabled { opacity:.55; cursor:wait; }
.taller-trap { position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.taller-status { margin-top:14px; padding:12px 16px; border-radius:8px; border-left:3px solid #60a5fa; background:#101b30; color:#bfdbfe; }
.taller-status:empty { display:none; }
.taller-status.error { border-left-color:#f87171; background:#2a1316; color:#fecaca; }
.taller-status.ok { border-left-color:#34d399; background:#0f2a22; color:#a7f3d0; }
.taller-form.is-done > :not(.taller-status):not(.taller-another) { display:none !important; }
.taller-another { display:none; margin-top:14px; width:100%; background:rgba(255,255,255,.08); color:#fff; border:1px solid var(--border-color); border-radius:8px; padding:12px 20px; font:inherit; font-weight:600; cursor:pointer; }
.taller-another:hover { background:#fff; color:#000; }
.taller-form.is-done .taller-another { display:block; }

/* Mapa */
.map-box { max-width:1000px; margin:0 auto; background:var(--card-bg); border:1px solid var(--border-color); border-radius:16px; padding:16px; box-shadow:0 0 30px rgba(59,130,246,.12); }
.map-frame { width:100%; height:380px; border:0; border-radius:10px; background:#0b0c10; display:block; }
.map-info { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; padding:16px 6px 4px; }
.map-info strong { display:block; font-size:1.05rem; }
.map-info span { color:var(--text-muted); font-size:.92rem; }

@media(max-width:600px) {
  .taller-box { padding:24px 18px; }
  .taller-row { grid-template-columns:1fr; }
  .map-frame { height:300px; }
}
