/* ==========================================================================
   Directorio /salas — se apoya en /styles.css (mismo sistema visual que la
   landing: .btn, .eyebrow, .sec-lede, .lp-header, .lp-footer, tokens…).
   Solo agrega los componentes propios del directorio (.dir-*).
   Fuente: docs/fuentes/generar-directorio-salas.py (constante CSS).
   ========================================================================== */
body.dir{padding-bottom:0}
.dir main{padding-bottom:clamp(56px,8vw,96px)}

/* header / footer: reusa .lp-header y .lp-footer de styles.css */
.dir-hnav{margin-left:auto;display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.dir-hnav .btn{margin-left:8px}
.dir-footer{margin-top:clamp(48px,7vw,88px)}
.dir-foot-top{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-bottom:22px;border-bottom:1px solid var(--line)}
.dir-foot-nav{display:flex;flex-wrap:wrap;gap:6px 20px}
.dir-foot-nav a{color:var(--bone-dim);font-size:13.5px;text-decoration:none}
.dir-foot-nav a:hover{color:var(--amber)}
.dir-note{margin:20px 0 0;color:var(--bone-faint);font-size:12.5px;line-height:1.6;max-width:74ch}
.dir-note a{color:var(--bone-dim);text-underline-offset:2px}
.dir-footer .foot-bottom{margin-top:22px}

/* ---------- hub: hero ---------- */
.dir-hero{padding:clamp(46px,7vw,88px) 0 clamp(24px,3vw,36px);text-align:center;position:relative;overflow:hidden}
.dir-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(60% 60% at 50% 0%,color-mix(in srgb,var(--amber) 12%,transparent),transparent 70%)}
.dir-hero>.wrap{position:relative}
.dir-hero .eyebrow{margin-bottom:12px}
.dir-hero h1{font-family:var(--font-display);font-weight:900;font-size:clamp(30px,5.6vw,56px);line-height:1.02;letter-spacing:-.03em;text-transform:uppercase;color:var(--bone);margin:0 auto;max-width:15ch}
.dir-hero .sec-lede{margin:16px auto 0;max-width:52ch}

.dir-search{position:relative;max-width:540px;margin:26px auto 0}
.dir-search svg{position:absolute;left:17px;top:50%;transform:translateY(-50%);width:19px;height:19px;fill:none;stroke:var(--bone-faint);stroke-width:2;stroke-linecap:round}
.dir-search input{width:100%;min-height:54px;padding:11px 18px 11px 46px;border:1px solid var(--line);border-radius:14px;background:var(--graphite-2);color:var(--bone);font:inherit;font-size:15px;outline:none;transition:border-color .2s ease,box-shadow .2s ease}
.dir-search input::placeholder{color:var(--bone-faint)}
.dir-search input:focus{border-color:var(--amber);box-shadow:0 0 0 3px color-mix(in srgb,var(--amber) 16%,transparent)}

.dir-seg{display:inline-flex;gap:4px;margin:16px auto 0;padding:4px;background:var(--card-2);border:1px solid var(--line);border-radius:100px;max-width:100%;flex-wrap:wrap;justify-content:center}
.dir-seg-btn{border:0;background:none;cursor:pointer;font-family:var(--font-display);font-weight:800;font-size:12.5px;letter-spacing:.02em;text-transform:uppercase;color:var(--bone-dim);padding:9px 16px;border-radius:100px;display:inline-flex;align-items:center;gap:6px;transition:background .2s ease,color .2s ease}
.dir-seg-btn b{font-weight:700;opacity:.5}
.dir-seg-btn[aria-pressed="true"]{background:var(--amber);color:var(--on-amber)}
.dir-seg-btn[aria-pressed="true"] b{opacity:.7}

/* ---------- secciones del hub / barrio ---------- */
.dir-sec{padding:clamp(28px,4vw,44px) 0 0}
.dir-h2{font-family:var(--font-display);font-weight:800;font-size:clamp(17px,2.2vw,22px);text-transform:uppercase;letter-spacing:-.01em;color:var(--bone);margin:0 0 6px}
.dir-sub{color:var(--bone-dim);font-size:14px;margin:0 0 18px}

/* grilla de barrios (reemplaza los muros de chips) */
.dir-barrios{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:10px}
.dir-barrio{display:flex;flex-direction:column;gap:3px;padding:13px 15px;border:1px solid var(--line);border-radius:13px;background:var(--card);text-decoration:none;transition:transform .2s var(--glide),border-color .2s ease}
.dir-barrio:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--amber) 42%,var(--line))}
.dir-barrio b{font-family:var(--font-display);font-weight:700;font-size:14.5px;color:var(--bone);letter-spacing:-.01em}
.dir-barrio span{font-size:12px;color:var(--bone-faint)}

/* grilla de tarjetas de espacio */
.dir-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.dir-card{position:relative;border:1px solid var(--line);border-radius:15px;background:var(--card);padding:15px 16px;transition:transform .2s var(--glide),border-color .2s ease}
.dir-card.is-link:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--amber) 40%,var(--line))}
.dir-card h4{font-family:var(--font-display);font-weight:700;font-size:15px;line-height:1.3;margin:0 0 5px;letter-spacing:-.01em}
.dir-card h4 a,.dir-card h4 span{color:var(--bone);text-decoration:none}
.dir-card.is-link h4 a::after{content:"";position:absolute;inset:0}
.dir-card.is-link:hover h4 a{color:var(--amber)}
.dir-card-addr{margin:0 0 8px;font-size:13px;color:var(--bone-dim)}
.dir-card-cont{margin:0;font-size:12px;color:var(--bone-faint);display:flex;flex-wrap:wrap;gap:5px 8px;position:relative;z-index:1}
.dir-card-cont a{color:var(--bone-dim);text-decoration:none}
.dir-card-cont a:hover{color:var(--amber)}
.dir-card-cont>span{opacity:.4}
.dir-card-cont em{font-style:normal;color:var(--bone-dim)}

.dir-empty{padding:44px 0;text-align:center;color:var(--bone-faint);font-size:14px}

/* ---------- breadcrumb ---------- */
.bc{font-size:11.5px;color:var(--bone-faint);margin:22px 0 0;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;display:flex;flex-wrap:wrap;align-items:center}
.bc a{color:var(--bone-dim);text-decoration:none}
.bc a:hover{color:var(--amber)}
.bc i{opacity:.35;font-style:normal;margin:0 7px}
.bc span[aria-current]{color:var(--bone)}

/* ---------- página de barrio ---------- */
.dir-page{padding-bottom:8px}
.dir-phead{padding:14px 0 24px;border-bottom:1px solid var(--line);margin-bottom:24px}
.dir-page-h1{font-family:var(--font-display);font-weight:900;font-size:clamp(26px,4.8vw,46px);line-height:1.02;letter-spacing:-.03em;text-transform:uppercase;color:var(--bone);margin:8px 0 0}
.dir-phead .sec-lede{margin-top:14px}
.dir-cross{display:inline-flex;align-items:baseline;gap:8px;margin-top:16px;font-family:var(--font-display);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.02em;color:var(--amber);text-decoration:none;padding:9px 14px;border:1px solid color-mix(in srgb,var(--amber) 34%,var(--line));border-radius:100px;background:color-mix(in srgb,var(--amber) 7%,transparent)}
.dir-cross span{color:var(--bone-dim);font-weight:600}
.dir-cross:hover{border-color:var(--amber);background:color-mix(in srgb,var(--amber) 12%,transparent)}
.dir-otros{margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}
.dir-otros-all{margin:16px 0 0;font-size:13.5px}
.dir-otros-all a{color:var(--amber);text-decoration:none;font-weight:600}

/* ---------- página de espacio ---------- */
.dir-venue-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;align-items:start}
.dir-venue-main{padding:clamp(20px,3vw,28px)}
.dir-blk-h{font-family:var(--font-display);font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--bone-faint);margin:0 0 8px}
.dir-contact+.dir-blk-h,.dir-maps+.dir-blk-h{margin-top:22px}
.dir-venue-addr{margin:0 0 14px;font-size:16px;color:var(--bone);line-height:1.45}
.dir-venue-addr span{color:var(--bone-dim);font-size:14px}
.dir-maps{align-self:flex-start}
.dir-maps svg{width:15px;height:15px}
.dir-contact{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.dir-contact li{display:flex;gap:14px;font-size:15px;align-items:baseline}
.dir-contact li span{flex:none;width:88px;color:var(--bone-faint);font-family:var(--font-display);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.dir-contact li a{color:var(--bone);text-decoration:none;border-bottom:1px solid var(--line);word-break:break-word}
.dir-contact li a:hover{color:var(--amber);border-color:var(--amber)}
.dir-venue-claim{margin:24px 0 0;padding-top:16px;border-top:1px solid var(--line);font-size:12.5px;color:var(--bone-faint);line-height:1.6}
.dir-venue-claim a{color:var(--bone-dim)}
.dir-aside{padding:20px 18px;align-self:start}
.dir-aside .dir-blk-h{margin-bottom:12px}
.dir-mini-list{display:grid;gap:2px}
.dir-mini{display:block;padding:9px 10px;margin:0 -10px;border-radius:10px;text-decoration:none;transition:background .15s ease}
.dir-mini:hover{background:var(--graphite-2)}
.dir-mini b{display:block;font-family:var(--font-display);font-weight:600;font-size:13.5px;color:var(--bone)}
.dir-mini:hover b{color:var(--amber)}
.dir-mini span{display:block;font-size:11.5px;color:var(--bone-faint);margin-top:1px}
.dir-aside-all{display:inline-block;margin-top:12px;font-family:var(--font-display);font-weight:700;font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--amber);text-decoration:none}
.dir-vnav{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-top:30px;padding-top:18px;border-top:1px solid var(--line)}
.dir-vnav-b{font-family:var(--font-display);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--bone-dim);text-decoration:none}
.dir-vnav-b:hover{color:var(--amber)}

@media(max-width:900px){
  .dir-venue-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .dir-contact li{flex-direction:column;gap:2px}
  .dir-contact li span{width:auto}
  .dir-hnav .nav-link{display:none}
}
