:root {
    --background-50: 0.99 0.00 95;
    --background-100: 0.97 0.01 95;
    --background-200: 0.94 0.01 95;
    --background-300: 0.88 0.01 95;
    --background-400: 0.80 0.01 95;
    --background-500: 0.70 0.01 95;
    --primary-50: 0.97 0.02 85;
    --primary-100: 0.94 0.04 85;
    --primary-200: 0.90 0.06 85;
    --primary-300: 0.85 0.09 85;
    --primary-400: 0.80 0.12 85;
    --primary-500: 0.75 0.15 85;
    --primary-600: 0.68 0.14 85;
    --primary-700: 0.60 0.12 85;
    --primary-800: 0.50 0.10 85;
    --secondary-500: 0.30 0.08 220;
    --secondary-600: 0.25 0.07 220;
    --foreground-500: 0.50 0.01 95;
    --foreground-600: 0.40 0.01 95;
    --foreground-700: 0.30 0.01 95;
    --foreground-800: 0.20 0.01 95;
    --foreground-950: 0.10 0.01 95;
    --font-heading: "Poppins", sans-serif;
    --font-body: "Inter", sans-serif;
    --vc-shell: 80rem;
    --vc-whatsapp: #25d366;
    --vc-whatsapp-dark: #128c7e;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.vc-v2 {
    margin: 0;
    color: oklch(var(--foreground-950));
    background: oklch(var(--background-50));
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}
.vc-v2 img { display: block; max-width: 100%; }
.vc-v2 a { color: inherit; text-decoration: none; }
.vc-v2 button, .vc-v2 input, .vc-v2 select, .vc-v2 textarea { font: inherit; }
.vc-v2 button, .vc-v2 select, .vc-v2 summary { cursor: pointer; }
.vc-v2 h1, .vc-v2 h2, .vc-v2 h3, .vc-v2 h4 { font-family: var(--font-heading); font-weight: 600; }
.vc-v2 :focus-visible { outline: 2px solid oklch(var(--primary-400)); outline-offset: 2px; }
.vc-shell { width: 100%; max-width: 80rem; margin-inline: auto; padding-inline: 2rem; }
.vc-visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.vc-skip-link { position: fixed; z-index: 999; top: .5rem; left: .5rem; padding: .75rem 1rem; color: #fff !important; background: oklch(var(--secondary-500)); transform: translateY(-150%); }
.vc-skip-link:focus { transform: none; }

/* Header — direct port of the React/Tailwind measurements. */
.vc-header { position: sticky; z-index: 50; top: 0; border-bottom: 1px solid oklch(var(--background-200) / .7); background: rgb(255 255 255 / .95); backdrop-filter: blur(4px); }
.vc-header__inner { display: flex; width: 100%; min-height: 5rem; align-items: center; justify-content: space-between; gap: .75rem; padding-inline: 2rem; }
.vc-brand { display: flex; flex: 0 0 auto; align-items: center; gap: .5rem; }
.vc-brand img { width: auto; height: 2.5rem; }
.vc-brand span { max-width: 8.75rem; color: oklch(var(--foreground-600)); font-size: .75rem; line-height: 1.25; }
.vc-header-search { display: flex; max-width: 42rem; flex: 1; align-items: center; margin-inline: 2rem; overflow: hidden; border: 1px solid oklch(var(--background-300) / .6); border-radius: .75rem; background: oklch(var(--background-100)); }
.vc-header-search:focus-within { box-shadow: 0 0 0 2px oklch(var(--primary-400) / .5); }
.vc-header-search input { min-width: 0; flex: 1; padding: .625rem 1rem; border: 0; outline: 0; color: oklch(var(--foreground-950)); background: transparent; font-size: .875rem; }
.vc-header-search select { padding: .625rem .75rem; border: 0; border-left: 1px solid oklch(var(--background-300) / .6); outline: 0; color: oklch(var(--foreground-700)); background: transparent; font-size: .875rem; }
.vc-header-search button { align-self: stretch; padding-inline: 1rem; border: 0; color: #fff; background: oklch(var(--primary-500)); font-size: .875rem; font-weight: 500; }
.vc-header-search button i { margin-right: .25rem; }
.vc-nav, .vc-header__actions { display: flex; align-items: center; gap: .25rem; }
.vc-nav > a, .vc-category-menu > summary { padding: .5rem .75rem; border-radius: .5rem; color: oklch(var(--foreground-700)); font-size: .875rem; font-weight: 500; list-style: none; }
.vc-category-menu > summary::after { margin-left: .25rem; font-family: remixicon; content: "\ea4e"; }
.vc-category-menu { position: relative; }
.vc-category-menu__panel { position: absolute; top: calc(100% + .5rem); left: 50%; display: grid; width: 45rem; grid-template-columns: repeat(4, 1fr); gap: .75rem 1rem; padding: 1.5rem; border: 1px solid oklch(var(--background-200) / .7); border-radius: 1rem; background: #fff; transform: translateX(-50%); }
.vc-category-menu__panel a { display: flex; align-items: center; gap: .5rem; padding: .5rem .75rem; border-radius: .5rem; color: oklch(var(--foreground-700)); font-size: .875rem; }
.vc-category-menu__panel a span { display: grid; width: 2rem; height: 2rem; flex: 0 0 auto; place-items: center; border-radius: 50%; color: oklch(var(--primary-700)); background: oklch(var(--primary-100)); }
.vc-button { display: inline-flex; min-height: 2.5rem; align-items: center; justify-content: center; padding: .625rem 1rem; border-radius: .75rem; font-size: .875rem; font-weight: 600; }
.vc-button--primary { color: #fff !important; background: oklch(var(--primary-500)); }
.vc-whatsapp-button { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border-radius: .75rem; color: #fff !important; background: var(--vc-whatsapp); font-size: 0; }
.vc-whatsapp-button i { font-size: 1.125rem; }
.vc-mobile-search, .vc-mobile-toggle, .vc-mobile-menu { display: none; }

/* Homepage. */
.vc-reference-hero { position: relative; min-height: 32.5rem; overflow: hidden; }
.vc-reference-hero__backdrop { position: absolute; inset: 0; background: linear-gradient(to bottom, oklch(var(--primary-100) / .90), oklch(var(--primary-100) / .85), oklch(var(--background-50) / .95)), url("https://readdy.ai/api/search-image?query=Medellin%20Colombia%20skyline%20panoramic%20view%20of%20Valle%20de%20Aburra%20with%20mountains%20in%20background%2C%20urban%20cityscape%20with%20buildings%20and%20green%20hills%2C%20desaturated%20soft%20neutral%20tones%2C%20warm%20golden%20ambient%20light%2C%20editorial%20photography%20style%2C%20minimal%20clouds%2C%20high%20detail%20texture%20background&width=1600&height=700&seq=hero-medellin-skyline-2026&orientation=landscape") center / cover no-repeat; }
.vc-reference-hero__content { position: relative; max-width: 60rem; padding-top: 5rem; padding-bottom: 4rem; text-align: center; }
.vc-reference-hero h1 { margin: 0; font-size: 3rem; font-weight: 700; line-height: 1; }
.vc-reference-hero__content > p { max-width: 42rem; margin: 1.5rem auto 0; color: oklch(var(--foreground-700)); font-size: 1.125rem; line-height: 1.75rem; }
.vc-reference-search { display: flex; width: 100%; max-width: 48rem; min-height: 3.5rem; align-items: stretch; margin: 2rem auto 0; overflow: hidden; border: 1px solid oklch(var(--background-300) / .6); border-radius: 1rem; background: #fff; }
.vc-reference-search:focus-within { box-shadow: 0 0 0 2px oklch(var(--primary-400) / .5); }
.vc-reference-search input[type="search"] { min-width: 0; flex: 1; padding: 1rem 1.25rem; border: 0; outline: 0; color: oklch(var(--foreground-950)); background: transparent; }
.vc-reference-search select { padding-inline: 1rem; border: 0; border-left: 1px solid oklch(var(--background-300) / .6); outline: 0; color: oklch(var(--foreground-700)); background: transparent; font-size: .875rem; }
.vc-reference-search button { padding-inline: 1.5rem; border: 0; color: #fff; background: oklch(var(--primary-500)); font-weight: 600; }
.vc-reference-search button i { margin-right: .5rem; }
.vc-home-discovery { margin-top: 1.5rem; }
.vc-home-quick-links, .vc-home-city-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .5rem .75rem; }
.vc-home-city-links { margin-top: .75rem; }
.vc-home-quick-links span, .vc-home-city-links span { color: oklch(var(--foreground-500)); font-size: .875rem; }
.vc-home-quick-links a, .vc-home-city-links a { padding: .375rem .75rem; border: 1px solid oklch(var(--background-300) / .6); border-radius: 999px; color: oklch(var(--foreground-700)); background: rgb(255 255 255 / .8); font-size: .875rem; }
.vc-home-city-links a { border-color: oklch(var(--background-300) / .4); background: rgb(255 255 255 / .6); }
.vc-reference-section { padding-block: 4rem; }
.vc-reference-categories, .vc-reference-how { background: oklch(var(--background-50)); }
.vc-reference-featured { background: oklch(var(--background-100)); }
.vc-reference-about { background: oklch(var(--primary-100) / .5); }
.vc-reference-heading { margin-bottom: 2.5rem; text-align: center; }
.vc-reference-heading h2 { margin: 0; font-size: 1.875rem; line-height: 2.25rem; }
.vc-reference-heading p { margin: .5rem 0 0; color: oklch(var(--foreground-600)); }
.vc-reference-category-grid { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 1rem; }
.vc-reference-category-card { display: flex; flex-direction: column; align-items: center; padding: 1.25rem; border: 1px solid oklch(var(--background-200) / .7); border-radius: 1rem; text-align: center; background: #fff; }
.vc-reference-category-card__icon { display: grid; width: 3.5rem; height: 3.5rem; place-items: center; margin-bottom: .75rem; overflow: hidden; border-radius: 50%; color: oklch(var(--primary-700)); background: oklch(var(--primary-100)); font-size: 1.5rem; }
.vc-reference-category-card__icon i { font-size: 1.5rem; }
.vc-reference-category-card strong { overflow: hidden; max-width: 100%; color: oklch(var(--foreground-950)); font-size: 1rem; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.vc-reference-category-card small { margin-top: .25rem; color: oklch(var(--foreground-500)); font-size: .75rem; }
.vc-reference-section__action { margin-top: 2.5rem; text-align: center; }
.vc-reference-dark-button, .vc-reference-outline-button { display: inline-flex; align-items: center; gap: .5rem; padding: .75rem 1.5rem; border-radius: .75rem; color: #fff; background: oklch(var(--secondary-500)); font-weight: 500; }
.vc-v2 .vc-reference-dark-button { color: #fff; }
.vc-reference-outline-button { border: 2px solid oklch(var(--primary-400)); color: oklch(var(--primary-700)); background: transparent; }
.vc-v2 .vc-reference-outline-button { color: oklch(var(--primary-700)); }
.vc-reference-publish-button { color: #fff; background: oklch(var(--primary-500)); font-size: 1.125rem; font-weight: 600; }
.vc-reference-section__action > p { margin: .75rem 0 0; color: oklch(var(--foreground-500)); font-size: .875rem; }
.vc-reference-section__action > p a { color: oklch(var(--primary-700)); font-weight: 500; text-decoration: underline; text-underline-offset: 2px; }
.vc-reference-business-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.5rem; }
.vc-reference-business-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid oklch(var(--background-200) / .7); border-radius: 1rem; background: #fff; }
.vc-reference-business-card__image { position: relative; aspect-ratio: 16/9; overflow: hidden; background: oklch(var(--background-200)); }
.vc-reference-business-card__image img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.vc-reference-business-card__image span { position: absolute; top: .75rem; left: .75rem; padding: .25rem .75rem; border-radius: 999px; color: #fff; background: oklch(var(--primary-500) / .9); font-size: .75rem; font-weight: 500; }
.vc-reference-business-card__body { display: flex; flex: 1; flex-direction: column; gap: .75rem; padding: 1.25rem; }
.vc-reference-business-card h3 { margin: 0; color: oklch(var(--foreground-950)); font-size: 1rem; line-height: 1.375; }
.vc-reference-business-card p { margin: 0; color: oklch(var(--foreground-600)); font-size: .875rem; }
.vc-reference-business-card p::before { margin-right: .375rem; font-family: remixicon; content: "\ef14"; }
.vc-reference-business-card__actions { display: flex; gap: .5rem; margin-top: auto; padding-top: .25rem; }
.vc-reference-business-card__actions a { display: flex; min-height: 2.5rem; flex: 1; align-items: center; justify-content: center; border: 1px solid oklch(var(--primary-400)); border-radius: .75rem; color: oklch(var(--primary-700)); font-size: .875rem; font-weight: 500; }
.vc-reference-business-card__actions .vc-reference-whatsapp { border-color: var(--vc-whatsapp); color: #fff; background: var(--vc-whatsapp); }
.vc-reference-whatsapp i { margin-right: .375rem; }
.vc-reference-about__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3rem; align-items: start; }
.vc-reference-about h2 { margin: 0; font-size: 1.875rem; line-height: 1.25; }
.vc-reference-about p { color: oklch(var(--foreground-700)); line-height: 1.625; }
.vc-reference-stats { display: flex; flex-wrap: wrap; gap: 1rem; padding-top: .5rem; }
.vc-reference-stats span { display: block; padding: .625rem 1rem; border: 1px solid oklch(var(--background-200) / .7); border-radius: .75rem; color: oklch(var(--foreground-600)); background: #fff; font-size: .75rem; }
.vc-reference-stats strong { display: block; color: oklch(var(--foreground-950)); font-size: .875rem; }
.vc-reference-contact-box { padding: 1.5rem; border: 1px solid oklch(var(--background-200) / .7); border-radius: 1rem; background: #fff; }
.vc-reference-contact-box h3 { margin: 0 0 1.25rem; font-size: 1.125rem; }
.vc-reference-contact-box dl { display: grid; gap: .875rem; margin: 0; }
.vc-reference-contact-box dl div { position: relative; padding-left: 3rem; }
.vc-reference-contact-box dl div::before { position: absolute; top: 0; left: 0; display: grid; width: 2.25rem; height: 2.25rem; place-items: center; border-radius: 50%; color: oklch(var(--primary-700)); background: oklch(var(--primary-100)); font-family: remixicon; content: "\efec"; }
.vc-reference-contact-box dt { color: oklch(var(--foreground-950)); font-size: .875rem; font-weight: 500; }
.vc-reference-contact-box dd { margin: 0; color: oklch(var(--foreground-700)); font-size: .875rem; }
.vc-reference-contact-box__map { aspect-ratio: 16/9; margin-top: 1.25rem; overflow: hidden; border: 1px solid oklch(var(--background-200) / .7); border-radius: .75rem; }
.vc-reference-contact-box__map iframe { width: 100%; height: 100%; border: 0; }
.vc-reference-how .vc-shell { max-width: 64rem; }
.vc-reference-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; padding: 0; list-style: none; }
.vc-reference-steps li { position: relative; padding: 2rem; border: 1px solid oklch(var(--background-200) / .7); border-radius: 1rem; text-align: center; background: #fff; }
.vc-reference-steps li > span { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; margin: 0 auto 1rem; border-radius: 50%; color: #fff; background: oklch(var(--primary-500)); font-size: .875rem; font-weight: 700; }
.vc-reference-step__icon { display: grid; width: 3rem; height: 3rem; place-items: center; margin: 0 auto 1rem; border-radius: 50%; color: oklch(var(--primary-700)); background: oklch(var(--primary-100)); font-size: 1.5rem; }
.vc-reference-steps h3 { margin: 0 0 .5rem; font-size: 1.125rem; }
.vc-reference-steps p { margin: 0; color: oklch(var(--foreground-600)); font-size: .875rem; line-height: 1.625; }
.vc-reference-close { padding-block: 5rem; color: #fff; text-align: center; background: oklch(var(--secondary-500)); }
.vc-reference-close .vc-shell { max-width: 56rem; }
.vc-reference-close h2 { margin: 0; font-size: 2.25rem; font-weight: 700; line-height: 1.25; }
.vc-reference-close p { max-width: 42rem; margin: 1.5rem auto 0; color: rgb(255 255 255 / .8); line-height: 1.625; }
.vc-reference-close__actions { display: flex; align-items: center; justify-content: center; gap: 1rem; padding-top: 2rem; }
.vc-reference-close a { padding: 1rem 2rem; border-radius: .75rem; color: #fff; background: oklch(var(--primary-500)); font-size: 1.125rem; font-weight: 600; }
.vc-reference-close a + a { background: rgb(255 255 255 / .1); font-weight: 500; }

/* Listing. */
.vc-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; color: oklch(var(--foreground-600)); font-size: .875rem; }
.vc-reference-listing { min-height: 60vh; background: oklch(var(--background-50)); }
.vc-reference-listing .vc-shell, .vc-reference-detail > .vc-shell { max-width: 80rem; }
.vc-reference-listing__header { padding-block: 2.5rem 1.5rem; }
.vc-reference-listing__heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-top: 1rem; }
.vc-reference-listing__heading h1 { margin: 0; font-size: 2.25rem; font-weight: 700; line-height: 1.25; }
.vc-reference-listing__heading p { max-width: 45rem; margin: .75rem 0 0; color: oklch(var(--foreground-600)); line-height: 1.625; }
.vc-reference-listing__count { margin-top: .75rem !important; color: oklch(var(--foreground-700)) !important; font-size: .875rem; font-weight: 600; }
.vc-reference-filter-section { padding-bottom: 1.5rem; background: oklch(var(--background-50)); }
.vc-filter-bar { position: sticky; z-index: 30; top: 5rem; display: flex; align-items: center; gap: .75rem; padding-block: .5rem; background: oklch(var(--background-50) / .95); backdrop-filter: blur(8px); }
.vc-filter-bar label { position: relative; flex: 0 1 auto; }
.vc-filter-bar label > i { position: absolute; z-index: 1; top: 50%; left: .75rem; color: oklch(var(--foreground-500)); font-size: .875rem; transform: translateY(-50%); pointer-events: none; }
.vc-filter-bar select { min-height: 2.625rem; padding: .625rem 2rem .625rem .875rem; border: 1px solid oklch(var(--background-300) / .6); border-radius: .75rem; color: oklch(var(--foreground-700)); background: #fff; font-size: .875rem; }
.vc-filter-bar label > i + span + select { padding-left: 2.25rem; }
.vc-filter-bar button { min-height: 2.625rem; padding-inline: 1rem; border: 0; border-radius: .75rem; color: #fff; background: oklch(var(--primary-500)); font-weight: 600; }
.vc-filter-mobile-trigger, .vc-filter-mobile-header, .vc-filter-mobile-actions, .vc-filter-backdrop { display: none; }
.vc-filter-mobile-label { display: none; }
.vc-filter-active { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.vc-filter-active span { display: inline-flex; align-items: center; gap: .375rem; padding: .375rem .75rem; border-radius: 999px; color: oklch(var(--primary-800)); background: oklch(var(--primary-100)); font-size: .875rem; }
.vc-filter-active span a { display: grid; width: 1rem; height: 1rem; place-items: center; color: inherit; }
.vc-filter-active > a { color: oklch(var(--primary-700)); font-size: .875rem; font-weight: 500; text-decoration: underline; text-underline-offset: 2px; }
.vc-reference-results { padding-block: 2rem; }
.vc-reference-results__heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.25rem; }
.vc-reference-results__heading h2 { margin: 0; font-size: 1.25rem; }
.vc-reference-results-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; }
.vc-reference-result-card { overflow: hidden; border: 1px solid oklch(var(--background-200) / .7); border-radius: 1rem; background: #fff; }
.vc-reference-result-card__image { position: relative; display: block; aspect-ratio: 16/9; overflow: hidden; background: oklch(var(--background-200)); }
.vc-reference-result-card__image img { width: 100%; height: 100%; object-fit: cover; }
.vc-reference-result-card__image span { position: absolute; top: .75rem; left: .75rem; padding: .25rem .75rem; border-radius: 999px; color: #fff; background: oklch(var(--primary-500) / .9); font-size: .75rem; }
.vc-reference-result-card__body { display: flex; min-height: 10rem; flex-direction: column; padding: 1.25rem; }
.vc-reference-result-card h3 { margin: 0; font-size: 1rem; line-height: 1.375; }
.vc-reference-result-card p { margin: .75rem 0; color: oklch(var(--foreground-600)); font-size: .875rem; }
.vc-reference-result-card__location { display: flex; align-items: center; gap: .375rem; min-width: 0; }
.vc-reference-result-card__location i { flex: 0 0 auto; color: oklch(var(--foreground-500)); }
.vc-reference-result-card__location span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vc-reference-result-card__actions { display: flex; gap: .5rem; margin-top: auto; }
.vc-reference-result-card__actions a { display: flex; min-height: 2.5rem; flex: 1; align-items: center; justify-content: center; border: 1px solid oklch(var(--primary-400)); border-radius: .75rem; color: oklch(var(--primary-700)); font-size: .875rem; font-weight: 500; }
.vc-reference-result-card__actions .vc-reference-whatsapp { color: #fff; border-color: var(--vc-whatsapp); background: var(--vc-whatsapp); }
.vc-pagination { display: flex; justify-content: center; gap: .5rem; padding-top: 2rem; }
.vc-pagination a, .vc-pagination span { display: grid; min-width: 2.5rem; height: 2.5rem; place-items: center; border: 1px solid oklch(var(--background-300) / .6); border-radius: .75rem; background: #fff; }
.vc-pagination span[aria-current="page"] { border-color: oklch(var(--primary-500)); color: #fff; background: oklch(var(--primary-500)); }
.vc-reference-empty { max-width: 42rem; margin-inline: auto; padding: 4rem 1rem; text-align: center; }
.vc-reference-empty__icon { display: grid; width: 5rem; height: 5rem; place-items: center; margin: 0 auto 1.5rem; border-radius: 50%; color: oklch(var(--foreground-400)); background: oklch(var(--background-200) / .7); font-size: 2.25rem; }
.vc-reference-empty h2 { margin: 0; font-size: 1.25rem; }
.vc-reference-empty > p { margin: .75rem 0 0; color: oklch(var(--foreground-600)); }
.vc-reference-empty__actions { display: flex; justify-content: center; gap: .75rem; margin-top: 1.5rem; }
.vc-reference-empty__actions .vc-reference-whatsapp { border-color: var(--vc-whatsapp); color: #fff; background: var(--vc-whatsapp); }
.vc-reference-empty__suggestions { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid oklch(var(--background-200) / .7); color: oklch(var(--foreground-700)); font-size: .875rem; }
.vc-reference-empty__suggestions strong { display: block; margin-bottom: 1rem; }
.vc-reference-empty__suggestions > div { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; }
.vc-reference-empty__suggestions a { display: inline-flex; align-items: center; gap: .375rem; padding: .5rem .75rem; border: 1px solid oklch(var(--background-300) / .6); border-radius: .75rem; color: oklch(var(--foreground-700)); background: #fff; }
.vc-reference-internal-links { padding-block: 3rem; background: oklch(var(--background-100)); }
.vc-reference-internal-links__grid { display: grid; gap: 2rem; }
.vc-reference-internal-links h3 { margin: 0 0 1rem; font-size: 1.125rem; }
.vc-reference-internal-links__items { display: flex; flex-wrap: wrap; gap: .5rem; }
.vc-reference-internal-links a { display: block; padding: .5rem .75rem; border: 1px solid oklch(var(--background-300) / .6); border-radius: .75rem; color: oklch(var(--foreground-700)); background: #fff; font-size: .875rem; }

/* Business detail. */
.vc-reference-detail { padding-block: 2.5rem; background: oklch(var(--background-50)); }
.vc-reference-detail__breadcrumb { margin-bottom: 2rem; }
.vc-reference-detail__layout { display: flex; gap: 2.5rem; }
.vc-reference-detail__main { width: 65%; min-width: 0; }
.vc-reference-detail__title { margin-bottom: 2rem; }
.vc-reference-detail__title > div { display: flex; flex-wrap: wrap; gap: .5rem; }
.vc-reference-detail__title > div a, .vc-reference-detail__title > div span { display: inline-flex; align-items: center; gap: .25rem; padding: .25rem .75rem; border-radius: 999px; color: oklch(var(--primary-800)); background: oklch(var(--primary-100)); font-size: .75rem; font-weight: 500; }
.vc-reference-detail__title > div span { color: oklch(var(--foreground-600)); background: oklch(var(--background-100)); }
.vc-reference-detail__title h1 { margin: .75rem 0 0; font-size: 1.875rem; line-height: 1.2; }
.vc-reference-gallery__main { position: relative; display: block; aspect-ratio: 16/9; overflow: hidden; border-radius: 1rem; background: oklch(var(--background-200)); }
.vc-reference-gallery__main img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.vc-reference-gallery__main span { position: absolute; right: .75rem; bottom: .75rem; display: inline-flex; align-items: center; gap: .375rem; padding: .375rem .75rem; border-radius: .5rem; color: #fff; background: rgb(0 0 0 / .7); font-size: .75rem; }
.vc-reference-gallery__thumbs { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap: .75rem; margin-top: .75rem; }
.vc-reference-gallery__thumbs a { aspect-ratio: 4/3; overflow: hidden; border: 2px solid transparent; border-radius: .5rem; }
.vc-reference-gallery__thumbs a[aria-current="true"] { border-color: oklch(var(--primary-500)); }
.vc-reference-gallery__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.vc-reference-detail__description { padding-block: 2rem; color: oklch(var(--foreground-700)); line-height: 1.625; }
.vc-reference-detail__description p { margin: 0; }
.vc-reference-content-block, .vc-reference-location, .vc-reference-related, .vc-detail-tags { margin-top: 2rem; }
.vc-reference-content-block h2, .vc-reference-location h2, .vc-reference-related h2 { margin: 0 0 1.25rem; font-size: 1.25rem; }
.vc-reference-editorial { color: oklch(var(--foreground-700)); line-height: 1.625; }
.vc-reference-editorial > :first-child { margin-top: 0; }
.vc-reference-editorial img, .vc-reference-editorial iframe { max-width: 100%; }
.vc-reference-check-list { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.vc-reference-check-list li { color: oklch(var(--foreground-700)); }
.vc-reference-check-list li::before { display: inline-grid; width: 1.25rem; height: 1.25rem; place-items: center; margin-right: .75rem; border-radius: 50%; color: oklch(var(--primary-700)); background: oklch(var(--primary-100)); font-family: remixicon; font-size: .75rem; content: "\eb7b"; }
.vc-reference-ideal-list { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.vc-reference-ideal-list li { display: flex; align-items: flex-start; gap: .5rem; color: oklch(var(--foreground-700)); font-size: .875rem; }
.vc-reference-ideal-list li i { margin-top: .45rem; color: oklch(var(--primary-600)); font-size: .375rem; }
.vc-detail-tags a { padding: .375rem .75rem; border-radius: .5rem; color: oklch(var(--foreground-600)); background: oklch(var(--background-100)); font-size: .75rem; }
.vc-reference-location__card { display: grid; gap: 1rem; padding: 1.5rem; border: 1px solid oklch(var(--background-200) / .7); border-radius: 1rem; background: oklch(var(--background-100)); }
.vc-reference-location__card > div:not(.vc-reference-location__map) { display: flex; align-items: flex-start; gap: .75rem; }
.vc-reference-location__card > div > i { width: 1.25rem; flex: 0 0 auto; margin-top: .125rem; color: oklch(var(--primary-600)); text-align: center; }
.vc-reference-location__card p, .vc-reference-location__card strong, .vc-reference-location__card span, .vc-reference-location__card a { display: block; margin: 0; font-size: .875rem; }
.vc-reference-location__card strong { color: oklch(var(--foreground-800)); }
.vc-reference-location__card span { margin-top: .125rem; color: oklch(var(--foreground-600)); }
.vc-reference-location__map { min-height: 16rem; overflow: hidden; border-radius: .75rem; }
.vc-reference-location__map iframe { width: 100%; min-height: 16rem; border: 0; }
.vc-reference-related__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.vc-reference-related article { overflow: hidden; border: 1px solid oklch(var(--background-200) / .7); border-radius: 1rem; background: #fff; }
.vc-reference-related__image { position: relative; display: block; aspect-ratio: 16/9; overflow: hidden; }
.vc-reference-related__image img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.vc-reference-related__image span { position: absolute; top: .75rem; left: .75rem; padding: .25rem .75rem; border-radius: 999px; color: #fff; background: oklch(var(--primary-500) / .9); font-size: .75rem; }
.vc-reference-related__body { display: flex; min-height: 9.5rem; flex-direction: column; gap: .75rem; padding: 1.25rem; }
.vc-reference-related__body h3 { margin: 0; font-size: 1rem; }
.vc-reference-related__body > p { display: flex; align-items: center; gap: .375rem; margin: 0; color: oklch(var(--foreground-600)); font-size: .875rem; }
.vc-reference-related__body > div { display: flex; gap: .5rem; margin-top: auto; }
.vc-reference-related__body > div a { display: flex; min-height: 2.5rem; flex: 1; align-items: center; justify-content: center; gap: .375rem; border: 1px solid oklch(var(--primary-400)); border-radius: .75rem; color: oklch(var(--primary-700)); font-size: .75rem; font-weight: 500; }
.vc-reference-related__body > div .vc-reference-whatsapp { border-color: var(--vc-whatsapp); color: #fff; background: var(--vc-whatsapp); }
.vc-detail-tags { display: flex; flex-wrap: wrap; gap: .5rem; }
.vc-reference-contact-card { width: 35%; }
.vc-reference-contact-card__sticky { position: sticky; top: 6rem; padding: 1.5rem; border: 1px solid oklch(var(--background-200) / .7); border-radius: 1rem; background: #fff; }
.vc-reference-contact-card__whatsapp, .vc-reference-contact-card__call, .vc-reference-share { display: flex; width: 100%; min-height: 3.5rem; align-items: center; justify-content: center; gap: .5rem; border: 1px solid oklch(var(--background-300)); border-radius: .75rem; font-weight: 600; }
.vc-v2 .vc-reference-contact-card__whatsapp { border-color: var(--vc-whatsapp); color: #fff; background: var(--vc-whatsapp); }
.vc-reference-contact-card__call { margin-top: .75rem; border-width: 2px; }
.vc-reference-contact-card__links { display: grid; gap: .75rem; margin-block: 1.25rem; }
.vc-reference-contact-card__links > a { display: flex; min-width: 0; align-items: center; gap: .75rem; color: oklch(var(--foreground-700)); font-size: .875rem; overflow-wrap: anywhere; }
.vc-reference-contact-card__links > a > span, .vc-reference-contact-card__social a { display: grid; width: 2rem; height: 2rem; flex: 0 0 auto; place-items: center; border-radius: .5rem; color: oklch(var(--foreground-600)); background: oklch(var(--background-100)); }
.vc-reference-contact-card__social { display: flex; gap: .75rem; }
.vc-reference-hours { padding: 1rem; border-radius: .75rem; background: oklch(var(--background-100)); }
.vc-reference-hours > span { display: inline-flex; align-items: center; gap: .25rem; padding: .125rem .5rem; border-radius: 999px; color: oklch(var(--primary-800)); background: oklch(var(--primary-100)); font-size: .625rem; font-weight: 700; }
.vc-reference-hours > span i { width: .375rem; height: .375rem; border-radius: 50%; background: oklch(var(--primary-500)); }
.vc-reference-hours--open > span { color: #166534; background: #dcfce7; }
.vc-reference-hours--open > span i { background: #16a34a; }
.vc-reference-hours--closed > span { color: oklch(var(--foreground-700)); background: oklch(var(--background-200)); }
.vc-reference-hours--closed > span i { background: oklch(var(--foreground-400)); }
.vc-reference-hours p, .vc-reference-hours__title { margin: .5rem 0 0; color: oklch(var(--foreground-600)); font-size: .75rem; }
.vc-reference-hours__title { font-weight: 600; color: oklch(var(--foreground-700)); }
.vc-reference-hours ul { display: grid; gap: .25rem; margin: .5rem 0 0; padding: 0; list-style: none; }
.vc-reference-hours li { display: flex; justify-content: space-between; gap: .75rem; color: oklch(var(--foreground-600)); font-size: .75rem; }
.vc-reference-hours li.is-today { color: oklch(var(--foreground-800)); font-weight: 600; }
.vc-reference-share { margin-top: 1rem; color: oklch(var(--foreground-700)); background: #fff; }
.vc-contact-form-disclosure { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid oklch(var(--background-200) / .7); }
.vc-contact-form-disclosure summary { font-size: .875rem; font-weight: 500; }
.vc-contact-form-disclosure form { display: grid; gap: .75rem; margin-top: 1rem; }
.vc-contact-form-disclosure label { display: grid; gap: .25rem; color: oklch(var(--foreground-700)); font-size: .75rem; font-weight: 500; }
.vc-contact-form-disclosure input, .vc-contact-form-disclosure textarea { width: 100%; padding: .625rem .75rem; border: 1px solid oklch(var(--background-300) / .6); border-radius: .75rem; background: oklch(var(--background-50)); }
.vc-detail-mobile-actions { position: fixed; z-index: 60; right: 0; bottom: 0; left: 0; display: none; grid-template-columns: 1fr 1fr; gap: .75rem; padding: .75rem 1rem; border-top: 1px solid oklch(var(--background-200) / .7); background: #fff; }
.vc-detail-mobile-actions a { display: flex; min-height: 3rem; align-items: center; justify-content: center; border: 1px solid oklch(var(--background-300)); border-radius: .75rem; font-weight: 600; }
.vc-detail-mobile-actions a:first-child { border-color: var(--vc-whatsapp); color: #fff; background: var(--vc-whatsapp); }

/* Interior pages. */
.vc-interior { min-height: 60vh; background: oklch(var(--background-50)); }
.vc-interior-hero { padding-block: 2.5rem 3rem; border-bottom: 1px solid oklch(var(--background-200) / .7); background: oklch(var(--primary-100) / .5); }
.vc-interior-hero__grid { display: flex; align-items: end; justify-content: space-between; gap: 3rem; }
.vc-interior-hero__grid > div:first-child { max-width: 48rem; }
.vc-interior-breadcrumb { margin-bottom: 2rem; }
.vc-interior-breadcrumb i { color: oklch(var(--foreground-400)); }
.vc-eyebrow { margin: 0 0 .75rem; color: oklch(var(--primary-700)); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.vc-interior-hero h1 { margin: 0; font-size: 2.25rem; line-height: 1.2; }
.vc-interior-hero__intro { max-width: 42rem; margin: 1rem 0 0; color: oklch(var(--foreground-700)); font-size: 1.125rem; line-height: 1.75; }
.vc-interior-actions { display: flex; flex: 0 0 auto; gap: .75rem; }
.vc-button--secondary, .vc-not-found__secondary { display: inline-flex; min-height: 2.5rem; align-items: center; justify-content: center; gap: .5rem; padding: .625rem 1rem; border: 1px solid oklch(var(--background-300) / .7); border-radius: .75rem; color: oklch(var(--foreground-800)); background: #fff; font-size: .875rem; font-weight: 600; }
.vc-interior-content { padding-top: 3rem; padding-bottom: 4rem; }
.vc-interior-content--split { display: grid; grid-template-columns: minmax(0,1fr) minmax(22rem,28rem); gap: 3rem; align-items: start; }
.vc-interior-content__main { min-width: 0; }
.vc-interior-panel { padding: 2rem; border: 1px solid oklch(var(--background-200) / .7); border-radius: 1rem; background: #fff; }
.vc-interior-section + .vc-interior-section { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid oklch(var(--background-200) / .7); }
.vc-interior-section h2 { margin: 0 0 1rem; font-size: 1.25rem; }
.vc-interior-section p { margin: 0 0 .875rem; color: oklch(var(--foreground-700)); line-height: 1.7; }
.vc-interior-section p:last-child { margin-bottom: 0; }
.vc-interior-section ul { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.vc-interior-section li { display: flex; gap: .75rem; color: oklch(var(--foreground-700)); }
.vc-interior-section li i { display: grid; width: 1.25rem; height: 1.25rem; flex: 0 0 auto; place-items: center; margin-top: .1rem; border-radius: 50%; color: oklch(var(--primary-800)); background: oklch(var(--primary-100)); }
.vc-interior-card-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
.vc-interior-panel + .vc-interior-card-grid { margin-top: 2rem; }
.vc-interior-card { padding: 1.5rem; border: 1px solid oklch(var(--background-200) / .7); border-radius: 1rem; background: #fff; transition: border-color 150ms ease, background-color 150ms ease; }
.vc-interior-card__number { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; margin-bottom: 1.25rem; border-radius: 50%; color: oklch(var(--primary-800)); background: oklch(var(--primary-100)); font-size: .75rem; font-weight: 700; }
.vc-interior-card h2 { margin: 0 0 .625rem; font-size: 1.125rem; }
.vc-interior-card p { margin: 0; color: oklch(var(--foreground-600)); font-size: .875rem; line-height: 1.625; }
.vc-interior-service-card { position: relative; overflow: hidden; padding: 0 0 1.5rem; }
.vc-interior-service-card__image { display: grid; min-height: 12rem; place-items: center; margin-bottom: 1.25rem; background: var(--vc-service-tone); }
.vc-interior-service-card__image img { width: 100%; height: 12rem; object-fit: contain; transition: transform 300ms ease; }
.vc-interior-service-card .vc-interior-card__number, .vc-interior-service-card h2, .vc-interior-service-card p { margin-right: 1.5rem; margin-left: 1.5rem; }
.vc-interior-stats { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem; }
.vc-interior-stats > div { display: flex; align-items: center; gap: .75rem; padding: .75rem 1rem; border: 1px solid oklch(var(--background-200) / .7); border-radius: .75rem; background: #fff; }
.vc-interior-stats > div > span, .vc-interior-contact-list > li > span { display: grid; width: 2.25rem; height: 2.25rem; flex: 0 0 auto; place-items: center; border-radius: 50%; color: oklch(var(--primary-700)); background: oklch(var(--primary-100)); }
.vc-interior-stats p { margin: 0; }
.vc-interior-stats strong, .vc-interior-stats small { display: block; }
.vc-interior-stats strong { color: oklch(var(--foreground-950)); font-size: .875rem; }
.vc-interior-stats small { color: oklch(var(--foreground-600)); font-size: .75rem; }
.vc-interior-allies { margin-top: 3rem; }
.vc-interior-allies h2 { margin: 0 0 1.5rem; font-size: 1.25rem; }
.vc-interior-allies > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.vc-interior-allies figure { display: grid; min-height: 9rem; place-items: center; margin: 0; padding: 1.25rem; border: 1px solid oklch(var(--background-200) / .7); border-radius: 1rem; background: #fff; }
.vc-interior-allies img { max-width: 100%; max-height: 4.5rem; object-fit: contain; }
.vc-interior-allies figcaption { margin-top: .75rem; color: oklch(var(--foreground-600)); font-size: .75rem; }
.vc-interior-form-card { position: sticky; top: 6rem; padding: 1.5rem; border: 1px solid oklch(var(--background-200) / .7); border-radius: 1rem; background: #fff; }
.vc-interior-form-card > h2 { margin: 0 0 1.25rem; font-size: 1.25rem; }
.vc-interior-contact-list { display: grid; gap: 1rem; margin: 0 0 1.5rem; padding: 0 0 1.5rem; border-bottom: 1px solid oklch(var(--background-200) / .7); list-style: none; }
.vc-interior-contact-list li { display: flex; align-items: flex-start; gap: .75rem; }
.vc-interior-contact-list strong, .vc-interior-contact-list a, .vc-interior-contact-list p { display: block; font-size: .875rem; }
.vc-interior-contact-list strong { margin-bottom: .125rem; color: oklch(var(--foreground-950)); }
.vc-interior-contact-list a, .vc-interior-contact-list p { margin: 0; color: oklch(var(--foreground-600)); line-height: 1.5; overflow-wrap: anywhere; }
.vc-interior-form__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.vc-interior-form label { display: grid; gap: .375rem; color: oklch(var(--foreground-700)); font-size: .75rem; font-weight: 600; }
.vc-interior-form__wide { grid-column: 1 / -1; }
.vc-interior-form input, .vc-interior-form textarea { width: 100%; padding: .75rem; border: 1px solid oklch(var(--background-300) / .7); border-radius: .75rem; color: oklch(var(--foreground-900)); background: oklch(var(--background-50)); font: inherit; resize: vertical; }
.vc-interior-form input:focus, .vc-interior-form textarea:focus { border-color: transparent; outline: 0; box-shadow: 0 0 0 2px oklch(var(--primary-400) / .5); }
.vc-interior-form > button { width: 100%; margin-top: 1rem; border: 0; }
.vc-interior-form__captcha { margin-top: 1rem; overflow: hidden; }
.vc-interior-form__status { min-height: 1.25rem; margin: .75rem 0 0; color: oklch(var(--foreground-600)); font-size: .75rem; text-align: center; }

/* V2 not-found page. */
.vc-not-found { display: grid; min-height: calc(100vh - 5rem); place-items: center; padding-block: 5rem; background: oklch(var(--background-50)); }
.vc-not-found__content { max-width: 46rem; text-align: center; }
.vc-not-found__icon { display: grid; width: 5rem; height: 5rem; place-items: center; margin: 0 auto 1.5rem; border-radius: 50%; color: oklch(var(--primary-800)); background: oklch(var(--primary-100)); font-size: 2.25rem; }
.vc-not-found__code { margin: 0; color: oklch(var(--primary-600)); font-family: var(--font-heading); font-size: 1rem; font-weight: 700; letter-spacing: .18em; }
.vc-not-found h1 { margin: .75rem 0 0; font-size: 2.25rem; line-height: 1.2; }
.vc-not-found__content > p:not(.vc-not-found__code) { max-width: 34rem; margin: 1rem auto 0; color: oklch(var(--foreground-600)); font-size: 1.0625rem; line-height: 1.7; }
.vc-not-found__actions { display: flex; justify-content: center; gap: .75rem; margin-top: 2rem; }
.vc-not-found__actions a { gap: .5rem; }
.vc-not-found__links { display: flex; justify-content: center; gap: 1.5rem; margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid oklch(var(--background-200) / .7); }
.vc-not-found__links a { color: oklch(var(--primary-700)); font-size: .875rem; font-weight: 500; }

@media (hover: hover) {
    .vc-interior-card:hover { border-color: oklch(var(--primary-400) / .4); background: oklch(var(--primary-50) / .35); }
    .vc-button--secondary:hover, .vc-not-found__secondary:hover { border-color: oklch(var(--foreground-400)); color: oklch(var(--foreground-950)); }
    .vc-not-found__links a:hover { color: oklch(var(--primary-800)); }
    .vc-interior-service-card:hover .vc-interior-service-card__image img { transform: scale(1.05); }
}

/* Footer. */
.vc-footer { color: #fff; background: oklch(var(--secondary-500)); }
.vc-footer__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 2.5rem; padding-top: 4rem; padding-bottom: 4rem; }
.vc-footer h2, .vc-footer h3 { margin: 0 0 1rem; color: #fff; font-size: .875rem; }
.vc-footer p, .vc-footer li, .vc-footer a { color: rgb(255 255 255 / .8); font-size: .875rem; }
.vc-footer ul { display: grid; gap: .625rem; margin: 0; padding: 0; list-style: none; }
.vc-footer__about img { width: auto; height: 2rem; filter: brightness(0) invert(1); }
.vc-footer__about > p { line-height: 1.625; }
.vc-footer__social { display: flex; gap: .75rem; padding-top: .5rem; }
.vc-footer__social a { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; border-radius: .5rem; background: rgb(255 255 255 / .1); font-size: 0; }
.vc-footer__social a i { font-size: .875rem; }
.vc-footer__accent { color: oklch(var(--primary-400)) !important; }
.vc-footer__bottom { border-top: 1px solid rgb(255 255 255 / .1); }
.vc-footer__bottom .vc-shell { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding-top: 1.25rem; padding-bottom: 1.25rem; }
.vc-footer__bottom p { margin: 0; color: rgb(255 255 255 / .6); font-size: .75rem; }

/* Interaction layer — mirrors the React reference transitions and states. */
.vc-header-search, .vc-reference-search { transition: box-shadow 150ms ease; }
.vc-header-search button, .vc-reference-search button, .vc-button, .vc-whatsapp-button,
.vc-nav > a, .vc-category-menu > summary, .vc-category-menu__panel a,
.vc-mobile-search, .vc-mobile-toggle, .vc-mobile-menu > a,
.vc-home-quick-links a, .vc-home-city-links a,
.vc-reference-dark-button, .vc-reference-outline-button, .vc-reference-publish-button,
.vc-reference-close a, .vc-filter-bar button, .vc-filter-bar select,
.vc-pagination a, .vc-reference-internal-links a, .vc-breadcrumb a,
.vc-reference-detail__title > div a, .vc-reference-ideal-list span, .vc-detail-tags a,
.vc-reference-contact-card a, .vc-reference-share, .vc-contact-form-disclosure summary,
.vc-contact-form-disclosure input, .vc-contact-form-disclosure textarea,
.vc-detail-mobile-actions a, .vc-footer a { transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease; }
.vc-reference-category-card, .vc-reference-business-card, .vc-reference-result-card,
.vc-reference-related article, .vc-reference-steps li { transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease; }
.vc-reference-category-card__icon, .vc-reference-category-card strong,
.vc-reference-business-card h3, .vc-reference-result-card h3,
.vc-reference-business-card__image img, .vc-reference-result-card__image img,
.vc-reference-related article img, .vc-reference-gallery__main img,
.vc-reference-gallery__main::after, .vc-reference-gallery__thumbs a { transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease, transform 500ms ease; }

@media (hover: hover) {
    .vc-header-search button:hover, .vc-reference-search button:hover, .vc-button--primary:hover,
    .vc-reference-publish-button:hover, .vc-reference-close a:first-child:hover, .vc-filter-bar button:hover { background: oklch(var(--primary-600)); }
    .vc-whatsapp-button:hover, .vc-reference-whatsapp:hover, .vc-reference-contact-card__whatsapp:hover,
    .vc-detail-mobile-actions a:first-child:hover { background: var(--vc-whatsapp-dark); }
    .vc-nav > a:hover, .vc-category-menu > summary:hover, .vc-category-menu__panel a:hover,
    .vc-mobile-search:hover, .vc-mobile-toggle:hover, .vc-mobile-menu > a:hover { color: oklch(var(--foreground-950)); background: oklch(var(--background-100)); }
    .vc-home-quick-links a:hover, .vc-home-city-links a:hover, .vc-reference-internal-links a:hover,
    .vc-reference-gallery__thumbs a:hover { border-color: oklch(var(--primary-400)); color: oklch(var(--primary-700)); }
    .vc-reference-category-card:hover { border-color: oklch(var(--primary-400) / .4); background: oklch(var(--primary-50) / .5); }
    .vc-reference-category-card:hover .vc-reference-category-card__icon { color: oklch(var(--primary-800)); background: oklch(var(--primary-200)); }
    .vc-reference-category-card:hover strong { color: oklch(var(--primary-700)); }
    .vc-reference-business-card:hover, .vc-reference-result-card:hover, .vc-reference-related article:hover { border-color: oklch(var(--primary-400) / .4); background: oklch(var(--primary-50) / .3); }
    .vc-reference-business-card:hover .vc-reference-business-card__image img,
    .vc-reference-result-card:hover .vc-reference-result-card__image img,
    .vc-reference-related article:hover img { transform: scale(1.05); }
    .vc-reference-business-card:hover h3, .vc-reference-result-card:hover h3,
    .vc-reference-related article:hover h3 { color: oklch(var(--primary-700)); }
    .vc-reference-business-card:hover .vc-reference-business-card__actions a:not(.vc-reference-whatsapp),
    .vc-reference-result-card:hover .vc-reference-result-card__actions a:not(.vc-reference-whatsapp),
    .vc-reference-outline-button:hover { color: #fff; background: oklch(var(--primary-500)); }
    .vc-reference-dark-button:hover { background: oklch(var(--secondary-600)); }
    .vc-reference-close a + a:hover, .vc-footer__social a:hover { background: rgb(255 255 255 / .2); }
    .vc-breadcrumb a:hover, .vc-reference-location a:hover, .vc-reference-contact-card dd a:hover,
    .vc-reference-section__action > p a:hover { color: oklch(var(--primary-700)); }
    .vc-reference-detail__title > div a:hover { background: oklch(var(--primary-200)); }
    .vc-reference-ideal-list span:hover, .vc-detail-tags a:hover { color: oklch(var(--foreground-800)); background: oklch(var(--background-200)); }
    .vc-reference-contact-card__call:hover, .vc-reference-share:hover { border-color: oklch(var(--foreground-400)); color: oklch(var(--foreground-950)); }
    .vc-pagination a:hover { color: oklch(var(--foreground-950)); background: oklch(var(--background-100)); }
    .vc-footer a:hover { color: #fff; }
    .vc-reference-gallery__main:hover img { transform: scale(1.02); }
    .vc-reference-gallery__main:hover::after { background: rgb(0 0 0 / .1); }
}

.vc-reference-gallery__main::after { position: absolute; inset: 0; background: transparent; content: ""; pointer-events: none; }
.vc-category-menu[open] > summary::after { display: inline-block; transform: rotate(180deg); }
.vc-category-menu > summary::after { display: inline-block; transition: transform 150ms ease; }
.vc-contact-form-disclosure summary::after { display: inline-block; margin-left: .375rem; font-family: remixicon; content: "\ea4e"; transition: transform 150ms ease; }
.vc-contact-form-disclosure[open] summary::after { transform: rotate(180deg); }
.vc-contact-form-disclosure input:focus, .vc-contact-form-disclosure textarea:focus, .vc-filter-bar select:focus { border-color: transparent; outline: 0; box-shadow: 0 0 0 2px oklch(var(--primary-400) / .5); }

body.vc-gallery-open { overflow: hidden; }
.vc-gallery-lightbox[hidden] { display: none; }
.vc-gallery-lightbox { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; padding: 4rem 5rem 6.5rem; color: #fff; background: rgb(0 0 0 / .92); animation: vc-gallery-fade 180ms ease-out; }
.vc-gallery-lightbox figure { display: grid; max-width: min(75rem, 100%); max-height: 100%; place-items: center; margin: 0; }
.vc-gallery-lightbox figure img { max-width: 100%; max-height: calc(100vh - 11rem); border-radius: .75rem; object-fit: contain; }
.vc-gallery-lightbox figcaption { margin-top: .75rem; color: rgb(255 255 255 / .75); font-size: .875rem; }
.vc-gallery-lightbox > button { position: absolute; display: grid; width: 3rem; height: 3rem; place-items: center; border: 0; border-radius: 50%; color: rgb(255 255 255 / .8); background: rgb(255 255 255 / .1); font-size: 1.5rem; transition: color 150ms ease, background-color 150ms ease; }
.vc-gallery-lightbox > button:hover { color: #fff; background: rgb(255 255 255 / .2); }
.vc-gallery-lightbox__close { top: 1rem; right: 1rem; }
.vc-gallery-lightbox__previous { top: 50%; left: 1.5rem; transform: translateY(-50%); }
.vc-gallery-lightbox__next { top: 50%; right: 1.5rem; transform: translateY(-50%); }
.vc-gallery-lightbox__thumbs { position: absolute; right: 1rem; bottom: 1rem; left: 1rem; display: flex; max-width: calc(100% - 2rem); justify-content: center; gap: .5rem; overflow-x: auto; }
.vc-gallery-lightbox__thumbs button { width: 4rem; height: 2.75rem; flex: 0 0 4rem; padding: 0; overflow: hidden; border: 2px solid rgb(255 255 255 / .3); border-radius: .375rem; background: transparent; }
.vc-gallery-lightbox__thumbs button[aria-current="true"] { border-color: oklch(var(--primary-500)); }
.vc-gallery-lightbox__thumbs img { width: 100%; height: 100%; object-fit: cover; }
@keyframes vc-gallery-fade { from { opacity: 0; } to { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
    .vc-v2 *, .vc-v2 *::before, .vc-v2 *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .vc-shell { padding-inline: 1.5rem; }
    .vc-header__inner { min-height: 4rem; }
    .vc-reference-hero__content { padding-top: 4rem; padding-bottom: 4rem; }
    .vc-reference-hero h1 { font-size: 2.25rem; line-height: 2.5rem; }
    .vc-reference-heading h2, .vc-reference-about h2 { font-size: 1.5rem; line-height: 2rem; }
}

@media (min-width: 768px) and (max-width: 1199px) {
    .vc-brand span, .vc-nav { display: none; }
    .vc-header-search { max-width: none; margin-inline: 1rem; }
    .vc-header__actions { flex: 0 0 auto; }
}

@media (max-width: 1023px) {
    .vc-header__inner { min-height: 4rem; padding-inline: 1.5rem; }
    .vc-brand img { height: 2.5rem; }
    .vc-nav { display: none; }
    .vc-reference-category-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .vc-reference-business-grid, .vc-reference-results-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .vc-reference-about__grid { grid-template-columns: 1fr; }
    .vc-reference-detail__layout { display: block; }
    .vc-reference-detail__main { width: 100%; }
    .vc-reference-contact-card { display: none; }
    .vc-detail-mobile-actions { display: grid; }
    .vc-footer__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .vc-interior-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .vc-interior-content--split { grid-template-columns: 1fr; gap: 2rem; }
    .vc-interior-form-card { position: static; }
}

@media (max-width: 767px) {
    .vc-shell { padding-inline: 1rem; }
    .vc-header__inner { min-height: 4rem; padding-inline: 1rem; }
    .vc-brand img { height: 2rem; }
    .vc-brand span, .vc-header-search, .vc-header__actions { display: none; }
    .vc-mobile-search, .vc-mobile-toggle { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: 0; border-radius: .5rem; color: oklch(var(--foreground-700)); background: transparent; }
    .vc-mobile-search { margin-left: auto; }
    .vc-mobile-search i { font-size: 0; }
    .vc-mobile-search i::before { font-family: remixicon; font-size: 1.125rem; content: "\f0d1"; }
    .vc-mobile-toggle { border: 1px solid oklch(var(--background-200) / .8); border-radius: .75rem; background: oklch(var(--background-100)); }
    .vc-mobile-toggle i { font-size: 1.375rem; line-height: 1; transform: scaleX(1.08); }
    .vc-mobile-menu:not([hidden]) { display: grid; grid-template-columns: minmax(0, 1fr); gap: .75rem; padding: 1rem; border-top: 1px solid oklch(var(--background-200) / .7); background: #fff; }
    .vc-mobile-menu > * { width: 100%; min-width: 0; }
    .vc-mobile-menu form > label { display: block; margin-bottom: .375rem; font-size: .75rem; font-weight: 600; }
    .vc-mobile-menu form > div { display: flex; overflow: hidden; border: 1px solid oklch(var(--background-300) / .6); border-radius: .75rem; background: oklch(var(--background-100)); }
    .vc-mobile-menu input { min-width: 0; flex: 1; padding: .75rem 1rem; border: 0; background: transparent; }
    .vc-mobile-menu button { padding-inline: 1rem; border: 0; color: #fff; background: oklch(var(--primary-500)); }
    .vc-mobile-menu > a { padding: .625rem .75rem; border-radius: .5rem; font-size: .875rem; font-weight: 500; }
    .vc-reference-hero { min-height: 26.25rem; }
    .vc-reference-hero__content { padding-top: 3rem; padding-bottom: 3rem; }
    .vc-reference-hero h1 { font-size: 1.5rem; line-height: 1.25; }
    .vc-reference-hero__content > p { margin-top: 1.5rem; font-size: 1rem; line-height: 1.625rem; }
    .vc-reference-search { flex-direction: column; min-height: 0; margin-top: 1.5rem; }
    .vc-reference-search input[type="search"] { height: 3.25rem; min-height: 0; }
    .vc-reference-search select { height: 2.75rem; min-height: 0; }
    .vc-reference-search button { height: 3.25rem; min-height: 0; }
    .vc-reference-search select { border-top: 1px solid oklch(var(--background-300) / .6); border-left: 0; }
    .vc-reference-section { padding-block: 3rem; }
    .vc-reference-heading { margin-bottom: 2rem; }
    .vc-reference-heading h2, .vc-reference-about h2 { font-size: 1.25rem; line-height: 1.75rem; }
    .vc-reference-category-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
    .vc-reference-category-card { padding: 1rem; }
    .vc-reference-business-grid, .vc-reference-results-grid, .vc-reference-steps, .vc-reference-internal-links__grid { grid-template-columns: 1fr; }
    .vc-reference-close { padding-block: 3rem; }
    .vc-reference-close h2 { font-size: 1.25rem; line-height: 1.75rem; }
    .vc-reference-close__actions { flex-direction: column; }
    .vc-reference-listing__header { padding-block: 2rem 1rem; }
    .vc-reference-listing__heading { display: block; }
    .vc-reference-listing__heading h1 { font-size: 1.5rem; }
    .vc-reference-filter-section { padding-block: .75rem; }
    .vc-filter-mobile-trigger { display: inline-flex; min-height: 2.625rem; align-items: center; gap: .5rem; padding-inline: 1rem; border: 1px solid oklch(var(--background-300) / .7); border-radius: .75rem; color: oklch(var(--foreground-800)); background: #fff; font-weight: 600; }
    .vc-filter-backdrop { position: fixed; z-index: 79; inset: 0; width: 100%; height: 100%; border: 0; background: rgb(0 0 0 / .45); opacity: 0; pointer-events: none; transition: opacity 180ms ease; }
    .vc-filter-backdrop.is-open { display: block; opacity: 1; pointer-events: auto; }
    .vc-filter-bar { position: fixed; z-index: 80; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: 1fr; gap: 1rem; padding: 1.25rem 1rem max(1rem, env(safe-area-inset-bottom)); border-radius: 1.25rem 1.25rem 0 0; background: #fff; box-shadow: 0 -1rem 3rem rgb(0 0 0 / .15); transform: translateY(110%); visibility: hidden; transition: transform 220ms ease, visibility 220ms; }
    .vc-filter-bar.is-open { transform: translateY(0); visibility: visible; }
    .vc-filter-bar label, .vc-filter-bar select, .vc-filter-bar button { width: 100%; }
    .vc-filter-mobile-label { display: block; margin-bottom: .5rem; color: oklch(var(--foreground-700)); font-size: .875rem; font-weight: 500; }
    .vc-filter-bar label > i { display: none; }
    .vc-filter-bar label > i + span + select { padding-left: 1rem; }
    .vc-filter-mobile-header { display: flex; align-items: center; justify-content: space-between; padding-bottom: .25rem; }
    .vc-filter-mobile-header strong { font-family: var(--font-heading); font-size: 1.125rem; }
    .vc-filter-mobile-header button { display: grid; width: 2.5rem; min-height: 2.5rem; place-items: center; padding: 0; color: oklch(var(--foreground-700)); background: oklch(var(--background-100)); }
    .vc-filter-mobile-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; padding-top: .25rem; }
    .vc-filter-mobile-actions a, .vc-filter-mobile-actions button { display: flex; min-height: 2.75rem; align-items: center; justify-content: center; border-radius: .75rem; font-weight: 600; }
    .vc-filter-mobile-actions a { border: 1px solid oklch(var(--background-300) / .7); color: oklch(var(--foreground-800)); }
    body.vc-filter-open { overflow: hidden; }
    .vc-reference-results { padding-block: 1.5rem; }
    .vc-reference-empty { padding-block: 3rem; }
    .vc-reference-empty__actions { flex-direction: column; }
    .vc-interior-hero { padding-block: 1.5rem 2rem; }
    .vc-interior-hero__grid { display: block; }
    .vc-interior-breadcrumb { margin-bottom: 1.5rem; }
    .vc-interior-hero h1 { font-size: 1.75rem; }
    .vc-interior-hero__intro { font-size: 1rem; }
    .vc-interior-actions { flex-wrap: wrap; margin-top: 1.5rem; }
    .vc-interior-content { padding-top: 2rem; padding-bottom: 3rem; }
    .vc-interior-panel { padding: 1.25rem; }
    .vc-interior-card-grid { grid-template-columns: 1fr; }
    .vc-interior-form__grid, .vc-interior-allies > div { grid-template-columns: 1fr; }
    .vc-interior-form-card { padding: 1.25rem; }
    .vc-interior-form__captcha { transform-origin: left top; }
    .vc-interior-stats { display: grid; grid-template-columns: 1fr; }
    .vc-not-found { min-height: calc(100vh - 4rem); padding-block: 3rem; }
    .vc-not-found h1 { font-size: 1.75rem; }
    .vc-not-found__actions { flex-direction: column; }
    .vc-not-found__links { flex-wrap: wrap; gap: .75rem 1.25rem; }
    .vc-reference-detail { padding-block: 1.5rem 5.5rem; }
    .vc-reference-detail__breadcrumb { margin-bottom: 1.5rem; }
    .vc-reference-detail__title { margin-bottom: 1.5rem; }
    .vc-reference-detail__title h1 { font-size: 1.25rem; line-height: 1.5; }
    .vc-reference-gallery__thumbs { display: flex; overflow-x: auto; }
    .vc-reference-gallery__thumbs a { width: 5rem; flex: 0 0 5rem; }
    .vc-reference-related__grid { grid-template-columns: 1fr; }
    .vc-gallery-lightbox { padding: 3.5rem 2.75rem 6rem; }
    .vc-gallery-lightbox__previous { left: .25rem; }
    .vc-gallery-lightbox__next { right: .25rem; }
    .vc-footer__grid { grid-template-columns: 1fr; gap: 2rem; padding-top: 3rem; padding-bottom: 3rem; }
    .vc-footer__bottom .vc-shell { flex-direction: column; text-align: center; }
}
