/* ============================================================
   Concerto — Unified Venue Info component
   Styled to inherit the venue page's own design tokens so each
   feature renders as a native "tool-section" card.
   ============================================================ */
.cvi{ font-family:var(--body,'DM Sans',sans-serif); color:var(--text,#121E36); }
.cvi *{ box-sizing:border-box; }
.cvi [hidden]{ display:none !important; }

/* one card per feature — mirrors .tool-section */
.cvi-feature{
  background:var(--card-bg,#fff);
  border:1px solid var(--border,rgba(18,30,54,.08));
  border-radius:var(--radius-lg,24px);
  padding:2.5rem;
  margin:0 4% 1.5rem;
  max-width:calc(1280px - 8%);
  box-shadow:var(--shadow-sm,0 2px 12px rgba(18,30,54,.04));
}
.cvi-feature-head{ margin-bottom:1.5rem; }
.cvi-eyebrow{
  display:block;font-size:.6rem;font-weight:700;letter-spacing:.28em;
  text-transform:uppercase;color:var(--gold,#C9A84C);margin-bottom:.55rem;
}
.cvi-title{
  font-family:var(--display,'Playfair Display',serif);font-size:1.8rem;
  font-weight:700;letter-spacing:-.02em;color:var(--text,#121E36);line-height:1.1;
}
.cvi-desc{
  font-size:.95rem;font-weight:300;color:var(--text-dim,rgba(18,30,54,.52));
  line-height:1.75;margin:0 0 1.25rem;
}
.cvi-desc:last-child{ margin-bottom:0; }

.cvi-block{ margin-top:1.5rem;border-top:1px solid var(--border,rgba(18,30,54,.08));padding-top:1.5rem; }
.cvi-block-label{
  display:block;font-size:.58rem;font-weight:700;letter-spacing:.22em;
  text-transform:uppercase;color:var(--text-xdim,rgba(18,30,54,.28));margin-bottom:.85rem;
}
.cvi-block-label.allow{ color:#2E7D46; }
.cvi-block-label.deny{ color:#B23B3B; }

.cvi-list{ list-style:none;margin:0;padding:0;display:grid;gap:.55rem; }
.cvi-list li{
  position:relative;padding-left:1.1rem;font-size:.9rem;line-height:1.5;
  color:var(--text-dim,rgba(18,30,54,.52));
}
.cvi-list li::before{
  content:'';position:absolute;left:0;top:.52em;width:5px;height:5px;
  border-radius:50%;background:var(--gold,#C9A84C);
}

.cvi-subgrid{ display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.5rem;
  border-top:1px solid var(--border,rgba(18,30,54,.08));padding-top:1.5rem; }
.cvi-subcard{ background:var(--bg,#F8F9F9);border:1px solid var(--border,rgba(18,30,54,.08));
  border-radius:16px;padding:1.25rem 1.4rem; }
.cvi-subcard .cvi-list li{ font-size:.86rem; }

/* rideshare buttons */
.cvi-ride-grid{ display:grid;grid-template-columns:1fr 1fr;gap:.75rem; }
.cvi-btn{
  display:block;text-align:center;padding:1rem;border-radius:14px;
  font-size:.8rem;font-weight:600;text-decoration:none;
  background:var(--bg,#F8F9F9);border:1px solid var(--border,rgba(18,30,54,.08));
  color:var(--text,#121E36);
  transition:transform .25s var(--ease-out,ease),border-color .25s,box-shadow .25s;
}
.cvi-btn:hover{ transform:translateY(-2px);border-color:var(--border-mid,rgba(18,30,54,.14));
  box-shadow:var(--shadow-sm,0 2px 12px rgba(18,30,54,.04)); }

/* official-guide pill — mirrors .tool-cta */
.cvi-cta{
  display:inline-flex;align-items:center;gap:.5rem;margin-top:1.5rem;
  background:var(--text,#121E36);color:var(--card-bg,#fff);
  padding:.8rem 1.6rem;border-radius:99px;font-size:.68rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.1em;text-decoration:none;
  transition:transform .3s var(--ease-out,ease),box-shadow .3s;
}
.cvi-cta:hover{ transform:translateY(-2px);box-shadow:var(--shadow-md,0 8px 32px rgba(18,30,54,.07)); }

.cvi-empty{ font-size:.9rem;color:var(--text-xdim,rgba(18,30,54,.28));font-style:italic; }

@media(max-width:768px){
  .cvi-feature{ margin:0 5% 1.2rem;padding:1.75rem; }
  .cvi-subgrid,.cvi-ride-grid{ grid-template-columns:1fr; }
}
