/* ------ T-VINE Business Directory ---------------------------------------
   Loaded only by the directory pages (resources/views/front/directory). */

.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.tvd-form [hidden], [data-locked][hidden], .tvd-error[hidden] { display:none !important; }

/* Search + list */
.tvd-search { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; text-align:left; }
.tvd-search .form-control { flex:1 1 200px; margin:0 !important; }
.tvd-search .btn-a { margin:0; }
.tvd-result-count { text-align:left; font-size:13px; margin-bottom:14px; }
.tvd-card { display:flex; gap:18px; padding:18px; margin-bottom:14px; background:#fff; border:1px solid #eee; border-radius:2px; text-align:left; transition:box-shadow 150ms linear; }
.tvd-card:hover { box-shadow:0 4px 18px rgba(0,0,0,.07); }
.tvd-card.is-featured { border-color:#bcd532; border-left:4px solid #bcd532; }
.tvd-card__logo { flex:0 0 88px; height:88px; display:flex; align-items:center; justify-content:center; background:#f5f5f5; border-radius:2px; overflow:hidden; }
.tvd-card__logo img { width:100%; height:100%; object-fit:contain; }
.tvd-card__logo span { font-size:34px; font-weight:700; color:#e93314; }
.tvd-card__body { flex:1; min-width:0; }
.tvd-card__title { margin:0 0 6px; font-size:18px; line-height:1.3; text-align:left; }
.tvd-card__title a { color:#222; }
.tvd-card__title a:hover { color:#e93314; }
.tvd-card__meta { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px; }
.tvd-card__text { margin:0 0 8px; font-size:13px; line-height:1.6; color:#555; }
.tvd-card__contact { display:flex; flex-wrap:wrap; gap:4px 16px; margin:0; padding:0; list-style:none; font-size:12px; color:#666; }
.tvd-card__contact i { color:#e93314; margin-right:4px; }
.tvd-badge, .tvd-chip { display:inline-block; padding:2px 8px; font-size:11px; font-weight:600; line-height:1.6; border-radius:2px; }
.tvd-badge--featured { background:#bcd532; color:#222; }
.tvd-badge--offer { background:#e93314; color:#fff; }
.tvd-chip { background:#f2f2f2; color:#555; }
.tvd-chip:hover { background:#292929; color:#fff; }
.tvd-empty { padding:30px; background:#f9f9f9; border:1px dashed #ddd; text-align:center; }
.tvd-aside .btn-a { display:block; text-align:center; margin:0 0 8px; }
.tvd-cats li.is-active > a { color:#e93314; font-weight:700; }

/* Business page */
.tvd-profile { text-align:left; }
.tvd-profile__head { display:flex; gap:18px; align-items:center; margin-bottom:20px; }
.tvd-profile__logo { width:110px; height:110px; object-fit:contain; background:#f5f5f5; border-radius:2px; }
.tvd-profile__title { margin:0 0 8px; font-size:28px; line-height:1.2; text-align:left; }
.tvd-profile__text { font-size:15px; line-height:1.8; color:#333; margin-bottom:24px; }
.tvd-h2 { margin:26px 0 12px; font-size:18px; font-weight:700; text-align:left; }
.tvd-offer { margin:0 0 22px; padding:14px 18px; background:#f3f8dc; border-left:4px solid #bcd532; }
.tvd-offer p { margin:4px 0 0; }
.tvd-gallery { display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:8px; }
.tvd-gallery img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:2px; }
.tvd-videos { display:grid; gap:14px; }
.tvd-video { position:relative; padding-top:56.25%; background:#000; }
.tvd-video iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.tvd-details { margin:0; padding:0; list-style:none; text-align:left; }
.tvd-details li { display:flex; gap:10px; padding:6px 0; font-size:13px; border-bottom:1px solid #f0f0f0; word-break:break-word; }
.tvd-details li i { color:#e93314; width:16px; padding-top:3px; }
.tvd-social { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 0; padding:0; list-style:none; }
.tvd-social a { display:flex; width:34px; height:34px; align-items:center; justify-content:center; background:#292929; color:#fff; border-radius:2px; }
.tvd-social a:hover { background:#e93314; }
.tvd-hours { width:100%; font-size:13px; }
.tvd-hours th, .tvd-hours td { padding:5px 0; border-bottom:1px solid #f0f0f0; text-align:left; }
.tvd-hours td { text-align:right; }

/* Packages */
.tvd-intro { max-width:820px; text-align:left; font-size:15px; line-height:1.8; }
.tvd-plans { display:grid; grid-template-columns:repeat(auto-fit, minmax(230px, 1fr)); gap:18px; margin-top:26px; }
.tvd-plan { position:relative; display:flex; flex-direction:column; padding:26px 22px; background:#fff; border:1px solid #e5e5e5; border-radius:2px; text-align:left; }
.tvd-plan.is-popular { border:2px solid #e93314; }
.tvd-plan__flag { position:absolute; top:-11px; left:22px; padding:2px 10px; background:#e93314; color:#fff; font-size:11px; font-weight:700; text-transform:uppercase; }
.tvd-plan__name { margin:0; font-size:20px; text-align:left; }
.tvd-plan__price { margin:8px 0 14px; font-size:34px; font-weight:700; color:#222; line-height:1.1; }
.tvd-plan__price small { display:block; margin-top:4px; font-size:12px; font-weight:400; color:#777; }
.tvd-plan__points { flex:1; margin:0 0 18px; padding:0; list-style:none; font-size:13px; }
.tvd-plan__points li { position:relative; padding:5px 0 5px 22px; }
.tvd-plan__points li:before { content:"\f00c"; font-family:"Font Awesome 5 Pro"; font-weight:900; position:absolute; left:0; color:#9bb222; }
.tvd-plan .btn-a { display:block; text-align:center; margin:0; }
.tvd-table-wrap { overflow-x:auto; }
.tvd-compare { width:100%; min-width:560px; border-collapse:collapse; background:#fff; font-size:13px; }
.tvd-compare th, .tvd-compare td { padding:11px 14px; border-bottom:1px solid #eee; text-align:center; }
.tvd-compare tbody th { text-align:left; font-weight:500; color:#333; }
.tvd-compare thead th { background:#292929; color:#fff; font-size:14px; }
.tvd-compare thead th small { display:block; font-weight:400; color:#bcd532; }
.tvd-compare tbody tr:nth-child(even) { background:#fafafa; }
.tvd-compare tfoot td { border-bottom:0; }
.tvd-compare tfoot .btn-a { margin:0; }
.tvd-yes { color:#7a9a0e; font-size:15px; }
.tvd-no { color:#d0d0d0; font-size:15px; }
.tvd-list { margin:0; padding-left:18px; list-style:disc; text-align:left; }
.tvd-list li { padding:3px 0; }
.tvd-list--numbered { list-style:decimal; }

/* Submission form */
.tvd-step { margin:0 0 26px; padding:0; border:0; min-width:0; }
.tvd-step legend { width:100%; margin-bottom:12px; font-size:16px; }
.tvd-req { color:#c00; }
.tvd-package-pick { display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; margin-bottom:6px; }
.content form .tvd-package-option { position:relative; margin:0; cursor:pointer; }
.content form .tvd-package-option input { position:absolute; opacity:0; }
.tvd-package-option__box { display:block; padding:14px; border:2px solid #e5e5e5; border-radius:2px; text-align:center; transition:border-color 120ms linear; }
.tvd-package-option__price { display:block; margin-top:2px; font-size:18px; font-weight:700; color:#e93314; }
.tvd-package-option input:checked + .tvd-package-option__box { border-color:#e93314; background:#fff6f4; }
.tvd-package-option input:focus-visible + .tvd-package-option__box { outline:2px solid #292929; outline-offset:2px; }
.tvd-checkgrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(210px, 1fr)); gap:4px 14px; padding:12px; border:1px solid #e5e5e5; background:#fcfcfc; }
.content form .tvd-checkgrid label { margin:0; font-size:13px; }
.tvd-checkgrid label:has(input:disabled) { color:#aaa; }
.tvd-hours-grid { display:grid; grid-template-columns:110px 1fr; gap:6px 12px; align-items:center; }
.content form .tvd-hours-grid .form-control { margin:0; }
.content form input[data-video-slot] { margin-bottom:6px; }
.tvd-locked { margin:0 0 26px; padding:10px 14px; background:#f6f6f6; color:#777; font-size:13px; text-align:left; }
.tvd-error { margin-top:4px; color:#c00; font-size:12px; }
.tvd-submit { padding:13px 30px; font-size:13px; }
.tvd-done { padding:34px; background:#fff; border:1px solid #eee; text-align:left; }
.tvd-done > i { font-size:40px; color:#7a9a0e; }
.tvd-done h2 { margin:10px 0 14px; font-size:24px; font-weight:700; line-height:1.3; color:#222; text-align:left; }
.tvd-done__upsell { padding:10px 14px; background:#f9f9f9; }

@media only screen and (max-width: 640px) {
    .tvd-card { flex-direction:column; }
    .tvd-card__logo { flex-basis:auto; width:72px; height:72px; }
    .tvd-package-pick { grid-template-columns:1fr; }
    .tvd-hours-grid { grid-template-columns:1fr; }
    .tvd-profile__head { flex-direction:column; align-items:flex-start; }
}
