/* Las Vegas wedding venue guide — overview filters, comparison table, detail tiles.
   Extends /css/style.css; keep palette and radii consistent with the hotel field guide. */
.wv-hero { background:#F2F8F7; border-bottom:1px solid #CBE7E1; padding:3rem 1.5rem 2.5rem; }
.wv-hero__inner { max-width:1140px; margin:0 auto; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr); gap:2rem; align-items:center; }
.wv-hero h1 { font-size:clamp(28px,4vw,40px); line-height:1.12; margin:0 0 12px; color:var(--navy); }
.wv-hero p.lead { font-size:16.5px; color:var(--text-dim); margin:0 0 14px; max-width:640px; }
.wv-hero__photo { border-radius:16px; overflow:hidden; background:#DCE9E6; min-height:220px; }
.wv-hero__photo img { width:100%; height:100%; min-height:220px; object-fit:cover; border-radius:0; }
.wv-kicker { color:var(--gold); font-weight:800; font-size:12px; letter-spacing:1.4px; text-transform:uppercase; margin:0 0 8px; }
.wv-editorial { border-left:4px solid var(--gold); background:#FFFFFF; border:1px solid var(--line); border-left-width:4px; border-radius:0 12px 12px 0; padding:1rem 1.25rem; margin:1.5rem 0; color:var(--text-dim); font-size:14.5px; line-height:1.65; }
.wv-editorial strong { color:var(--navy); }

/* Filters */
.wv-filters { position:sticky; top:66px; z-index:50; background:rgba(255,255,255,.97); backdrop-filter:blur(8px); border:1px solid var(--line); border-radius:14px; padding:.9rem 1rem; margin:1.5rem 0 1rem; box-shadow:var(--shadow-sm); }
.wv-chips { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:.75rem; }
.wv-chip { border:1px solid var(--line-strong); background:#FFFFFF; color:var(--text); font:inherit; font-size:13px; font-weight:700; padding:8px 14px; border-radius:999px; cursor:pointer; min-height:40px; transition:all .12s ease; }
.wv-chip:hover { background:#F3F4F6; }
.wv-chip[aria-pressed="true"] { background:var(--gold); border-color:var(--gold); color:#FFFFFF; }
.wv-controls { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; align-items:end; }
.wv-controls label { display:flex; flex-direction:column; gap:4px; font-size:12px; font-weight:800; color:var(--text-dim); text-transform:uppercase; letter-spacing:.4px; }
.wv-controls select, .wv-controls input[type="search"] { min-height:42px; border:1px solid var(--line-strong); border-radius:8px; background:#FFFFFF; color:var(--text); font:inherit; font-size:14px; font-weight:500; padding:.5rem .7rem; text-transform:none; letter-spacing:0; }
.wv-toggles { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:.75rem; }
.wv-toggles label { display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--text); cursor:pointer; min-height:32px; }
.wv-toggles input { width:18px; height:18px; accent-color:var(--gold); }
.wv-status { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin:.75rem 0 0; font-size:13.5px; color:var(--text-dim); }
.wv-status button { border:0; background:none; color:var(--navy); font:inherit; font-weight:800; cursor:pointer; text-decoration:underline; padding:6px 0; }
.wv-empty { display:none; border:1px dashed var(--line-strong); border-radius:12px; padding:1.5rem; text-align:center; color:var(--text-dim); margin:1rem 0; }
.wv-empty.is-visible { display:block; }

/* Venue cards */
.wv-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1.5rem; margin:1.25rem 0 2rem; }
.wv-card { display:flex; flex-direction:column; background:#FFFFFF; border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .2s, box-shadow .2s; }
.wv-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-md); }
.wv-card.is-hidden { display:none; }
.wv-card__media { aspect-ratio:16/10; background:#E8F2F0; position:relative; }
.wv-card__media img { width:100%; height:100%; object-fit:cover; border-radius:0; }
.wv-card__media .wv-nophoto { display:flex; align-items:center; justify-content:center; height:100%; color:#3E6B63; font-size:13px; font-weight:700; text-align:center; padding:1rem; background:linear-gradient(135deg,#E8F2F0,#D2E7E2); }
.wv-card__body { padding:1.15rem 1.25rem 1.25rem; display:flex; flex-direction:column; flex:1; gap:.55rem; }
.wv-card__area { font-size:11.5px; font-weight:800; color:var(--text-muted); text-transform:uppercase; letter-spacing:.6px; }
.wv-card h3 { margin:0; font-size:19px; color:var(--navy); line-height:1.2; }
.wv-card h3 a { color:inherit; }
.wv-card p { margin:0; font-size:14px; color:var(--text-dim); line-height:1.55; }
.wv-tags { display:flex; flex-wrap:wrap; gap:6px; }
.wv-tag { background:#EDF7F5; border:1px solid #CBE7E1; color:#056253; border-radius:999px; font-size:11.5px; font-weight:800; padding:3px 9px; }
.wv-tag--desert { background:#FBF3E6; border-color:#F0DDB8; color:#8A5A0B; }
.wv-facts { display:grid; grid-template-columns:1fr 1fr; gap:8px 12px; margin:.35rem 0 .25rem; font-size:13px; }
.wv-facts div span { display:block; font-size:10.5px; font-weight:800; color:var(--text-muted); text-transform:uppercase; letter-spacing:.4px; }
.wv-facts div strong { color:var(--navy); font-weight:700; }
.wv-card__actions { margin-top:auto; display:flex; flex-wrap:wrap; gap:8px 14px; padding-top:.5rem; font-size:13.5px; }
.wv-card__actions a { font-weight:800; }
.wv-card__actions a.viator { color:var(--gold); }

/* Comparison table */
.wv-table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:12px; margin:1rem 0 2rem; -webkit-overflow-scrolling:touch; }
.wv-table { width:100%; min-width:920px; border-collapse:collapse; font-size:13.5px; }
.wv-table th, .wv-table td { text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:top; }
.wv-table th { background:#F3F4F6; font-size:11.5px; text-transform:uppercase; letter-spacing:.5px; color:var(--text-dim); position:sticky; top:0; }
.wv-table tbody tr.is-hidden { display:none; }
.wv-table td:first-child { font-weight:700; color:var(--navy); white-space:nowrap; }
.wv-table td small { color:var(--text-muted); display:block; font-size:12px; }

/* Detail page */
.wv-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin:1.5rem 0; }
.wv-stat { background:#0F172A; border:1px solid #334155; border-radius:10px; padding:14px; display:flex; flex-direction:column; gap:4px; }
.wv-stat .label { font-size:11px; font-weight:800; color:#94A3B8; text-transform:uppercase; letter-spacing:.5px; }
.wv-stat .value { font-size:16.5px; font-weight:800; color:#FFFFFF !important; line-height:1.25; }
.wv-stat .sub { font-size:12px; color:#CBD5E1; }
.wv-photo { margin:1.5rem 0 .4rem; border-radius:12px; overflow:hidden; background:#E8F2F0; }
.wv-photo img { width:100%; max-height:460px; object-fit:cover; border-radius:0; }
.wv-photo .wv-nophoto { display:flex; align-items:center; justify-content:center; min-height:200px; color:#3E6B63; font-weight:700; text-align:center; padding:1rem; background:linear-gradient(135deg,#E8F2F0,#D2E7E2); }
.wv-credit { font-size:11.5px; color:var(--text-muted); margin:0 2px 1.5rem; }
.wv-section-label { display:flex; align-items:center; gap:12px; margin:2rem 0 1.25rem; }
.wv-section-label span { font-size:13px; font-weight:800; color:var(--text-muted); text-transform:uppercase; letter-spacing:1.5px; white-space:nowrap; }
.wv-section-label i { flex:1; height:2px; background:var(--line); }
.info-card ul { margin:.35rem 0 0; padding-left:1.1rem; color:var(--text-dim); font-size:14px; line-height:1.55; }
.info-card li { margin:.25rem 0; }
.wv-cta { background:var(--navy); border-radius:14px; padding:2rem 1.5rem; text-align:center; margin:2.5rem 0; box-shadow:var(--shadow-md); }
.wv-cta h2 { color:#FFFFFF !important; margin:0 0 6px; font-size:22px; }
.wv-cta p { color:#CBD5E1 !important; margin:0 0 16px; font-size:14.5px; }
.wv-cta__buttons { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.wv-btn { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:12px 24px; border-radius:10px; font-weight:800; font-size:15px; text-decoration:none !important; }
.wv-btn--viator { background:var(--gold); color:#FFFFFF !important; }
.wv-btn--viator:hover { background:var(--gold-hover); }
.wv-btn--official { background:#FFFFFF; color:var(--navy) !important; border:1px solid var(--line-strong); }
.wv-btn--official:hover { background:#F3F4F6; }
.wv-btn--outline { background:transparent; color:#FFFFFF !important; border:1px solid rgba(255,255,255,.5); }
.wv-btn--outline:hover { background:rgba(255,255,255,.08); }
.wv-note { border:1px solid var(--line); border-radius:12px; background:#FFFFFF; padding:1.1rem 1.25rem; margin:1.5rem 0; font-size:14px; color:var(--text-dim); line-height:1.6; }
.wv-note--desert { border-left:4px solid #C9962B; background:#FFFBF2; }
.wv-note--verify { border-left:4px solid var(--gold); background:#F8FAFC; }
.wv-sources { font-size:12.5px; color:var(--text-muted); }
.wv-sources a { color:var(--text-dim); word-break:break-all; font-weight:500; }
.wv-book { background:#FFFFFF; border:1px solid #E2E8F0; border-left:4px solid var(--gold); border-radius:12px; padding:1.5rem; margin:2.5rem 0; box-shadow:var(--shadow-sm); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; }
.wv-book h3 { margin:0 0 6px; font-size:16.5px; color:var(--navy); }
.wv-book p { margin:0; font-size:13.5px; color:var(--text-dim); max-width:650px; }
.wv-book a.wv-btn { background:var(--navy); color:#FFF !important; font-size:13.5px; padding:11px 22px; min-height:44px; }

@media (max-width: 868px) {
  .wv-hero__inner { grid-template-columns:1fr; }
  .wv-hero__photo { min-height:180px; }
  .wv-stats { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 767px) {
  .wv-filters { position:static; padding:.8rem .85rem; }
  .wv-chip { padding:8px 12px; font-size:12.5px; }
  .wv-grid { grid-template-columns:1fr; }
  .wv-facts { grid-template-columns:1fr 1fr; }
  .wv-cta__buttons a { width:100%; }
}

/* Photography referral shared with the wedding hub. */
.wv-photography { background:#eef4f8; border:1px solid #c5d8e6; border-radius:14px; padding:clamp(1.25rem,4vw,2rem); margin:2rem 0; }
.wv-photography h2 { font-size:clamp(1.5rem,3vw,2rem); color:var(--navy); margin:0 0 1rem; }
.wv-photography p { font-size:1rem; line-height:1.7; max-width:80ch; }
.wv-photography .wv-btn { background:#173952; color:#fff; font-size:.9375rem; }
.wv-photography p.wv-photography__note { font-size:.875rem; color:#465a68; }
.wv-hero__photo .wv-credit { background:#fff; color:#465a68; padding:.6rem; margin:0; }
.wv-table-wrap { max-width:100%; }

/* Contextual recommendation, secondary to venue research. */
.wv-photography{background:transparent!important;border:0!important;border-top:1px solid #d5e0e8!important;border-radius:0!important;box-shadow:none!important;padding:1.25rem 0!important;margin:2rem 0!important;color:#334155!important}.wv-photography h2{font-size:1.25rem!important;color:#152d45!important}.wv-photography p{font-size:1rem;line-height:1.7}.wv-photography__note{font-size:.875rem!important;color:#526071!important}
