/* shadcn/ui refresh layer for VizesizGez.com. */
:root {
    color-scheme: light;
    --background: #ffffff;
    --foreground: #09090b;
    --card: #ffffff;
    --card-foreground: #09090b;
    --popover: #ffffff;
    --popover-foreground: #09090b;
    --primary: #18181b;
    --primary-foreground: #fafafa;
    --secondary: #f4f4f5;
    --secondary-foreground: #18181b;
    --muted: #f4f4f5;
    --muted-foreground: #71717a;
    --accent: #f4f4f5;
    --accent-foreground: #18181b;
    --destructive: #dc2626;
    --destructive-foreground: #fef2f2;
    --border: #e4e4e7;
    --input: #e4e4e7;
    --ring: #18181b;
    --radius: .625rem;
    --radius-sm: .375rem;
    --radius-lg: .75rem;
    --shadow-xs: 0 1px 1px rgba(24, 24, 27, .03);
    --shadow-sm: 0 1px 2px rgba(24, 24, 27, .06);
    --shadow-md: 0 8px 20px rgba(24, 24, 27, .08);
    --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-mono: "Fira Code", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    --primary-color: var(--primary);
    --primary-dark: var(--primary);
    --primary-darker: #09090b;
    --secondary-color: var(--muted-foreground);
    --accent-color: var(--accent);
    --bg-light: var(--muted);
    --bg-white: var(--background);
    --text-dark: var(--foreground);
    --text-main: var(--foreground);
    --text-muted: var(--muted-foreground);
    --card-shadow: var(--shadow-sm);
    --hover-shadow: var(--shadow-md);
    --border-radius-xl: var(--radius-lg);
    --border-radius-lg: var(--radius);
    --border-radius-md: var(--radius-sm);
}

*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-x: hidden !important; background: var(--background) !important; }
body, body.site-shell, body.admin-shell, body.auth-shell {
    min-height: 100vh;
    margin: 0;
    background: var(--background) !important;
    color: var(--foreground) !important;
    font-family: var(--font-sans) !important;
    letter-spacing: 0 !important;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}
body::before, body::after { display: none !important; content: none !important; }
a { color: inherit; text-underline-offset: 4px; }
a:hover { color: var(--foreground); }
img, svg, video { max-width: 100%; height: auto; }
.container, .container-lg, .container-xl, .container-xxl { max-width: 1180px !important; --bs-gutter-x: 1.5rem; }
.container-fluid { --bs-gutter-x: 1.5rem; }
.main-content { background: var(--background) !important; min-height: 62vh; }
.main-content > .container.py-4 { padding-top: 2rem !important; padding-bottom: 3rem !important; }

h1, h2, h3, h4, h5, h6,
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6,
.page-title, .section-title, .hero-title, .card-title {
    color: var(--foreground) !important;
    font-family: var(--font-sans) !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    line-height: 1.12 !important;
}
p, .lead, .text-muted, .muted, .card-text, .section-subtitle, .hero-subtitle {
    color: var(--muted-foreground) !important;
    letter-spacing: 0 !important;
}
.small, small { letter-spacing: 0 !important; }
code, pre, kbd { font-family: var(--font-mono) !important; }
h1, .display-1, .display-2, .hero-title { font-size: 3rem !important; }
h2, .display-3, .display-4 { font-size: 2.25rem !important; }
h3, .display-5 { font-size: 1.5rem !important; }

/* shadcn uses Lucide icons; these rules normalize runtime SVG replacements. */
.lucide,
svg[class*="fa-"],
svg.shadcn-lucide-source {
    width: 1em;
    height: 1em;
    min-width: 1em;
    stroke: currentColor;
    stroke-width: 2;
    fill: none;
    flex-shrink: 0;
    vertical-align: -0.15em;
}
svg.fa-fw { width: 1.25em; min-width: 1.25em; }
svg.fa-lg { width: 1.18em; height: 1.18em; }
svg.fa-2x { width: 2em; height: 2em; }
svg.fa-3x { width: 3em; height: 3em; }
svg.fa-4x { width: 4em; height: 4em; }
svg.fa-5x { width: 5em; height: 5em; }
.btn .lucide,
.badge .lucide,
.alert .lucide,
.dropdown-item .lucide,
.nav-link .lucide,
.footer-links .lucide {
    width: 1em;
    height: 1em;
}
.brand-mark .lucide,
.footer-brand-icon .lucide,
.sidebar-brand .lucide {
    width: 1.15rem;
    height: 1.15rem;
}
@media (max-width: 991.98px) {
    h1, .display-1, .display-2, .hero-title { font-size: 2.5rem !important; }
    h2, .display-3, .display-4 { font-size: 2rem !important; }
}
@media (max-width: 575.98px) {
    h1, .display-1, .display-2, .hero-title { font-size: 2.125rem !important; }
    h2, .display-3, .display-4 { font-size: 1.625rem !important; }
}

.modern-header, .shadcn-header, .navbar.modern-header, .navbar.shadcn-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 1100 !important;
    min-height: 4rem;
    padding: .625rem 0 !important;
    background: rgba(255, 255, 255, .94) !important;
    border-bottom: 1px solid var(--border) !important;
    color: var(--foreground) !important;
    box-shadow: none !important;
    backdrop-filter: blur(16px) saturate(160%) !important;
}
.modern-header *, .shadcn-header * { text-shadow: none !important; }
.navbar-brand, .modern-header .navbar-brand, .shadcn-header .navbar-brand {
    gap: .625rem;
    color: var(--foreground) !important;
    font-weight: 700 !important;
    font-size: 1rem !important;
    letter-spacing: 0 !important;
}
.brand-logo { max-height: 2.125rem; width: auto; object-fit: contain; }
.brand-mark, .footer-brand-icon, .sidebar-brand i, .admin-shell .sidebar-brand i {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 2rem !important;
    height: 2rem !important;
    min-width: 2rem !important;
    border-radius: var(--radius) !important;
    border: 1px solid var(--border) !important;
    background: var(--secondary) !important;
    color: var(--foreground) !important;
    box-shadow: none !important;
}
.modern-header .nav-link, .shadcn-header .nav-link {
    min-height: 2.25rem;
    display: inline-flex !important;
    align-items: center;
    gap: .5rem;
    padding: .45rem .75rem !important;
    border: 1px solid transparent !important;
    border-radius: var(--radius-sm) !important;
    color: var(--muted-foreground) !important;
    background: transparent !important;
    font-size: .875rem !important;
    font-weight: 500 !important;
}
.modern-header .nav-link:hover, .modern-header .nav-link.active,
.shadcn-header .nav-link:hover, .shadcn-header .nav-link.active {
    color: var(--foreground) !important;
    background: var(--accent) !important;
    border-color: var(--border) !important;
}
.modern-header .btn-login, .shadcn-header .btn-login, .navbar .btn-login {
    background: var(--primary) !important;
    border-color: var(--primary) !important;
    color: var(--primary-foreground) !important;
}
.user-avatar, .admin-shell .user-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 999px;
    background: var(--secondary) !important;
    color: var(--foreground) !important;
    border: 1px solid var(--border) !important;
    font-size: .75rem;
    font-weight: 700;
}
.navbar-toggler {
    width: 2.5rem;
    height: 2.5rem;
    padding: 0 !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
    background: var(--background) !important;
    color: var(--foreground) !important;
    box-shadow: none !important;
}
.navbar-toggler:focus { box-shadow: 0 0 0 3px rgba(24, 24, 27, .12) !important; }
.navbar-toggler-icon { filter: none !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%2309090b' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important; }
.dropdown-menu {
    background: var(--popover) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
    color: var(--popover-foreground) !important;
    box-shadow: var(--shadow-md) !important;
    padding: .35rem !important;
}
.dropdown-item {
    display: flex !important;
    align-items: center;
    gap: .5rem;
    min-height: 2.25rem;
    color: var(--foreground) !important;
    border-radius: var(--radius-sm) !important;
    font-size: .875rem;
}
.dropdown-item:hover, .dropdown-item:focus, .dropdown-item.active { background: var(--accent) !important; color: var(--foreground) !important; }
.dropdown-divider { border-color: var(--border) !important; margin: .35rem 0 !important; }

@media (max-width: 991.98px) {
    .navbar-collapse {
        margin-top: .75rem;
        padding: .75rem;
        background: var(--popover) !important;
        border: 1px solid var(--border) !important;
        border-radius: var(--radius-lg) !important;
        box-shadow: var(--shadow-md) !important;
    }
    .navbar-nav { align-items: stretch !important; gap: .25rem !important; }
    .modern-header .nav-link, .shadcn-header .nav-link { width: 100%; justify-content: flex-start; }
}

.btn, button, [type="button"], [type="submit"], [type="reset"] {
    border-radius: var(--radius-sm) !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    box-shadow: none !important;
    transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease, box-shadow 140ms ease !important;
}
.btn:not(.btn-link), button:not(.btn-link) { min-height: 2.5rem; }
.btn-primary, .btn-dark, .btn-success, .btn-info, .btn-warning, .btn-login, .btn-gradient, .search-btn,
.newsletter-form button[type="submit"], .im-search-panel button, .im-newsletter-form button {
    background: var(--primary) !important;
    border-color: var(--primary) !important;
    color: var(--primary-foreground) !important;
}
.btn-primary:hover, .btn-dark:hover, .btn-success:hover, .btn-info:hover, .btn-warning:hover, .btn-login:hover,
.btn-gradient:hover, .search-btn:hover, .newsletter-form button[type="submit"]:hover,
.im-search-panel button:hover, .im-newsletter-form button:hover {
    background: #27272a !important;
    border-color: #27272a !important;
    color: #ffffff !important;
}
.btn-outline-primary, .btn-outline-secondary, .btn-outline-dark, .btn-outline-info,
.btn-outline-success, .btn-outline-warning, .btn-light, .btn-secondary {
    background: var(--background) !important;
    border-color: var(--border) !important;
    color: var(--foreground) !important;
}
.btn-outline-primary:hover, .btn-outline-secondary:hover, .btn-outline-dark:hover, .btn-outline-info:hover,
.btn-outline-success:hover, .btn-outline-warning:hover, .btn-light:hover, .btn-secondary:hover {
    background: var(--accent) !important;
    border-color: var(--border) !important;
    color: var(--accent-foreground) !important;
}
.btn-danger, .btn-outline-danger:hover {
    background: var(--destructive) !important;
    border-color: var(--destructive) !important;
    color: var(--destructive-foreground) !important;
}
.btn-link { color: var(--foreground) !important; text-decoration: none !important; }
.btn:focus-visible, button:focus-visible, a:focus-visible,
.form-control:focus, .form-select:focus, .form-check-input:focus {
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(24, 24, 27, .12) !important;
    border-color: var(--ring) !important;
}
.form-control, .form-select, .input-group-text, select, textarea,
input[type="text"], input[type="email"], input[type="password"], input[type="search"],
input[type="number"], input[type="url"], input[type="tel"] {
    min-height: 2.5rem;
    background: var(--background) !important;
    color: var(--foreground) !important;
    border: 1px solid var(--input) !important;
    border-radius: var(--radius-sm) !important;
    box-shadow: none !important;
}
textarea.form-control, textarea { min-height: 7rem; }
.form-control::placeholder, input::placeholder, textarea::placeholder { color: #a1a1aa !important; opacity: 1; }
.form-label { color: var(--foreground) !important; font-weight: 500 !important; }
.form-text { color: var(--muted-foreground) !important; }
.form-check-input:checked { background-color: var(--primary) !important; border-color: var(--primary) !important; }
.badge, .tag, .status-badge, .category-badge, .continent-badge, .visa-badge, .admin-badge, .im-kicker {
    display: inline-flex !important;
    align-items: center;
    gap: .375rem;
    min-height: 1.5rem;
    padding: .25rem .625rem !important;
    border: 1px solid var(--border) !important;
    border-radius: 999px !important;
    background: var(--secondary) !important;
    color: var(--secondary-foreground) !important;
    font-size: .75rem !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
}
.badge.bg-primary, .badge.bg-success, .badge.bg-info, .badge.bg-warning, .badge.bg-danger {
    background: var(--primary) !important;
    color: var(--primary-foreground) !important;
    border-color: var(--primary) !important;
}

.card, .admin-card, .stat-card, .dashboard-card, .content-card, .info-card, .feature-card,
.blog-card, .blog-card-main, .blog-card-side, .country-card, .city-card, .city-list-card, .hotel-card,
.restaurant-card, .tour-card, .review-card, .media-card, .gallery-card, .contact-card,
.auth-card, .login-card, .profile-card, .newsletter-form-wrapper, .newsletter-sidebar,
.filter-sidebar, .search-card, .pagination-wrapper, .table-container, .settings-card,
.form-card, .widget, .panel, .box, .glass-card, .floating-card, .continent-card,
.info-box, .stat-box, .quick-action-btn, .im-route-card, .im-blog-card, .im-city-row,
.im-home-feature, .im-cta-panel, .im-search-panel, .im-home-stats > div {
    background: var(--card) !important;
    color: var(--card-foreground) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-xs) !important;
    overflow: hidden;
    transform: none !important;
}
.card:hover, .feature-card:hover, .blog-card:hover, .country-card:hover, .city-card:hover,
.hotel-card:hover, .restaurant-card:hover, .tour-card:hover, .quick-action-btn:hover,
.im-route-card:hover, .im-blog-card:hover, .im-city-row:hover {
    border-color: #d4d4d8 !important;
    box-shadow: var(--shadow-sm) !important;
    transform: none !important;
}
.card-header, .card-footer, .admin-card-header, .table-header, .modal-header, .modal-footer {
    background: var(--muted) !important;
    border-color: var(--border) !important;
    color: var(--foreground) !important;
}
.card-body { color: var(--foreground) !important; }
.bg-light, .bg-white, section.bg-light, section.bg-white { background: var(--background) !important; }
.bg-dark, .text-bg-dark, .card.bg-dark { background: var(--primary) !important; color: var(--primary-foreground) !important; }
.text-white { color: #ffffff !important; }
.text-white-50 { color: rgba(255, 255, 255, .72) !important; }
.hero-section .text-white, .hero-section .text-white-50,
.blog-hero .text-white, .blog-hero .text-white-50,
.country-hero .text-white, .country-hero .text-white-50,
.city-hero .text-white, .city-hero .text-white-50,
.hotel-hero .text-white, .hotel-hero .text-white-50,
.restaurant-hero .text-white, .restaurant-hero .text-white-50,
.tour-hero .text-white, .tour-hero .text-white-50,
.hero-v2 .text-white, .hero-v2 .text-white-50,
.hero-badge .text-white {
    color: var(--foreground) !important;
}
.bg-dark .text-white, .bg-dark .text-white-50, .text-bg-dark .text-white, .card.bg-dark .text-white,
.card-overlay-gradient .text-white, .image-overlay .text-white, .overlay .text-white,
.bg-primary.text-white, .bg-secondary.text-white, .bg-success.text-white,
.bg-info.text-white, .bg-warning.text-white, .bg-danger.text-white {
    color: var(--primary-foreground) !important;
}
.text-primary, .text-info, .text-success, .text-warning, .text-danger { color: var(--foreground) !important; }
.bg-primary-soft, .bg-success-soft, .bg-info-soft, .bg-warning-soft, .bg-danger-soft { background: var(--secondary) !important; }
.icon-box, .quick-action-icon, .footer-contact-icon, .search-icon, .stat-icon {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    min-width: 2.25rem;
    border-radius: var(--radius) !important;
    background: var(--secondary) !important;
    color: var(--foreground) !important;
    border: 1px solid var(--border) !important;
    box-shadow: none !important;
}

section, .page-section, .content-section, .featured-section, .popular-section,
.countries-section, .cities-section, .hotels-section, .restaurants-section, .blog-section {
    background: var(--background) !important;
}
.hero-section, .hero, .page-hero, .hero-v2, .blog-hero, .country-hero, .city-hero,
.hotel-hero, .restaurant-hero, .tour-hero, .contact-hero, .about-hero, .faq-hero,
.search-hero, [class*="hero-section"] {
    min-height: auto !important;
    margin: 0 !important;
    padding: 4rem 0 !important;
    background: var(--background) !important;
    color: var(--foreground) !important;
    border-bottom: 1px solid var(--border) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: hidden !important;
}
.hero-section[style], [class*="hero"][style], .bg-dark[style], .card[style*="linear-gradient"] {
    background-image: none !important;
    background-color: var(--background) !important;
}
.hero-overlay, .bg-gradient-overlay, .bg-gradient-dark, .bg-gradient-to-t,
.card-overlay-gradient, .city-overlay, .continent-overlay {
    background: rgba(255, 255, 255, .86) !important;
    opacity: 1 !important;
    filter: none !important;
}
.hero-bg-slider, .hero-bg-slider .hero-slide, .hero-image, .hero-bg {
    opacity: .12 !important;
    filter: saturate(.75) contrast(.95) !important;
}
.hero-title, .hero-subtitle, .hero-content h1, .hero-content h2, .hero-content p,
[class*="hero"] h1, [class*="hero"] h2, [class*="hero"] p, [class*="hero"] .lead {
    color: var(--foreground) !important;
    text-shadow: none !important;
}
[class*="hero"] p, [class*="hero"] .lead { color: var(--muted-foreground) !important; }
.text-gradient, .gradient-text {
    background: none !important;
    -webkit-text-fill-color: currentColor !important;
    color: var(--foreground) !important;
}

.im-home { background: var(--background) !important; }
.im-home-hero {
    padding: 4.5rem 0 3rem !important;
    border-bottom: 1px solid var(--border) !important;
    background: var(--background) !important;
}
.im-home-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
    gap: 2rem;
    align-items: center;
}
.im-home-copy h1 {
    max-width: 12ch;
    margin: .875rem 0 1rem;
    font-size: 3.5rem !important;
    line-height: 1.02 !important;
}
.im-home-copy p {
    max-width: 44rem;
    margin: 0 0 1.25rem;
    color: var(--muted-foreground) !important;
    font-size: 1rem;
    line-height: 1.75;
}
.im-search-panel {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .75rem;
    max-width: 43rem;
    padding: .5rem;
}
.im-search-panel i { margin-left: .625rem; color: var(--muted-foreground) !important; }
.im-search-panel input {
    min-width: 0;
    width: 100%;
    height: 2.75rem;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
}
.im-search-panel button, .im-newsletter-form button {
    min-height: 2.75rem;
    padding: 0 1rem;
    border-radius: var(--radius-sm) !important;
}
.im-home-links {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: 1rem;
}
.im-home-links a, .im-link-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.25rem;
    padding: .45rem .75rem;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius-sm) !important;
    background: var(--background) !important;
    color: var(--foreground) !important;
    text-decoration: none !important;
    font-size: .875rem;
    font-weight: 500;
}
.im-home-links a:hover, .im-link-button:hover { background: var(--accent) !important; }
.im-home-feature { position: relative; min-height: 25rem; }
.im-home-feature img, .im-route-image img, .im-city-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.im-home-feature img { min-height: 25rem; }
.im-feature-meta {
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    padding: 1rem;
    border: 1px solid rgba(255,255,255,.35);
    border-radius: var(--radius-lg);
    background: rgba(255,255,255,.9);
    backdrop-filter: blur(12px);
    box-shadow: var(--shadow-sm);
}
.im-feature-meta span { color: var(--muted-foreground); font-size: .75rem; font-weight: 600; }
.im-feature-meta strong { display: block; color: var(--foreground); font-size: 1.25rem; margin: .25rem 0; }
.im-feature-meta p { margin: 0; color: var(--muted-foreground) !important; }
.im-image-fallback {
    min-height: 25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--muted-foreground);
    background: var(--muted);
}
.im-home-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin-top: 2rem;
}
.im-home-stats > div { padding: 1rem; }
.im-home-stats strong { display: block; color: var(--foreground); font-size: 1.5rem; line-height: 1.1; }
.im-home-stats span { color: var(--muted-foreground); font-size: .875rem; }
.im-section { padding: 3.5rem 0 !important; border-bottom: 1px solid var(--border); background: var(--background) !important; }
.im-section-muted { background: var(--muted) !important; }
.im-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.im-section-head h2 { margin: .5rem 0 0; font-size: 2.25rem !important; }
.im-route-grid, .im-blog-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}
.im-route-card {
    display: grid;
    grid-template-columns: 7.5rem minmax(0, 1fr);
    min-height: 9rem;
    text-decoration: none !important;
}
.im-route-image { background: var(--muted); min-height: 100%; }
.im-route-body { padding: 1rem; }
.im-route-body span, .im-blog-card span { color: var(--muted-foreground); font-size: .75rem; font-weight: 600; }
.im-route-body h3, .im-city-row h3, .im-blog-card h3 { margin: .35rem 0; font-size: 1rem !important; line-height: 1.35 !important; }
.im-route-body p, .im-city-row p, .im-blog-card p { margin: 0; color: var(--muted-foreground) !important; }
.im-city-list { display: grid; gap: .75rem; }
.im-city-row {
    display: grid;
    grid-template-columns: 4.5rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    padding: .75rem 1rem .75rem .75rem;
    text-decoration: none !important;
}
.im-city-thumb {
    width: 4.5rem;
    height: 4.5rem;
    border-radius: var(--radius) !important;
    overflow: hidden;
    background: var(--muted);
    display: flex;
    align-items: center;
    justify-content: center;
}
.im-city-row > span { color: var(--muted-foreground); font-size: .875rem; font-weight: 500; }
.im-blog-card a {
    display: flex;
    flex-direction: column;
    min-height: 13rem;
    padding: 1rem;
    color: inherit;
    text-decoration: none !important;
}
.im-blog-card h3 { font-size: 1.125rem !important; }
.im-blog-card em { margin-top: auto; color: var(--muted-foreground); font-style: normal; font-size: .875rem; }
.im-home-cta { padding: 3.5rem 0 4rem !important; background: var(--background) !important; }
.im-cta-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
    align-items: center;
    gap: 1rem;
    padding: 1.25rem;
}
.im-cta-panel h2 { margin: .5rem 0 0; font-size: 1.5rem !important; }
.im-newsletter-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem; }

.card-img-top, .card-img-wrapper, .country-card img, .city-card img, .hotel-card img,
.restaurant-card img, .blog-card img, .gallery-item img {
    border-radius: 0 !important;
    box-shadow: none !important;
}
.card-overlay-gradient, .overlay, .image-overlay { background: linear-gradient(180deg, transparent 0%, rgba(9,9,11,.62) 100%) !important; }
.rating i, .stars i, .fa-star { color: #eab308 !important; }
.pagination .page-link {
    min-width: 2.25rem;
    min-height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-color: var(--border) !important;
    color: var(--foreground) !important;
    background: var(--background) !important;
    box-shadow: none !important;
}
.pagination .page-item.active .page-link {
    background: var(--primary) !important;
    color: var(--primary-foreground) !important;
    border-color: var(--primary) !important;
}
.breadcrumb { color: var(--muted-foreground) !important; }
.breadcrumb a { color: var(--foreground) !important; text-decoration: none; }
.alert {
    border: 1px solid var(--border) !important;
    border-radius: var(--radius-lg) !important;
    background: var(--background) !important;
    color: var(--foreground) !important;
    box-shadow: var(--shadow-xs) !important;
}
.alert-danger { border-color: #fecaca !important; background: #fef2f2 !important; }
.alert-success { border-color: #bbf7d0 !important; background: #f0fdf4 !important; }
.alert-warning { border-color: #fde68a !important; background: #fffbeb !important; }
.alert-info { border-color: #bfdbfe !important; background: #eff6ff !important; }

.table-responsive, .dataTables_wrapper {
    border: 1px solid var(--border) !important;
    border-radius: var(--radius-lg) !important;
    background: var(--card) !important;
    overflow: auto;
    box-shadow: var(--shadow-xs) !important;
}
.table, .table-modern { margin-bottom: 0 !important; color: var(--foreground) !important; }
.table thead th, .table-modern th {
    background: var(--muted) !important;
    color: var(--muted-foreground) !important;
    border-bottom: 1px solid var(--border) !important;
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0 !important;
}
.table td, .table th { border-color: var(--border) !important; vertical-align: middle; }
.table tbody tr:hover { background: #fafafa !important; }
.nav-tabs, .nav-pills, #settingsTabs {
    gap: .25rem;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius-lg) !important;
    background: var(--muted) !important;
    padding: .25rem !important;
}
.nav-tabs .nav-link, .nav-pills .nav-link, #settingsTabs .list-group-item {
    border: 0 !important;
    border-radius: var(--radius-sm) !important;
    color: var(--muted-foreground) !important;
    background: transparent !important;
    font-weight: 500 !important;
}
.nav-tabs .nav-link.active, .nav-pills .nav-link.active, #settingsTabs .list-group-item.active {
    background: var(--background) !important;
    color: var(--foreground) !important;
    box-shadow: var(--shadow-xs) !important;
}
.modal-content, .offcanvas, .popover, .toast {
    background: var(--popover) !important;
    color: var(--popover-foreground) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-md) !important;
}

.modern-footer, .shadcn-footer, .footer {
    background: var(--background) !important;
    color: var(--foreground) !important;
    border-top: 1px solid var(--border) !important;
    padding: 3rem 0 2rem !important;
    box-shadow: none !important;
}
.modern-footer p, .shadcn-footer p, .footer-contact-item, .footer-bottom, .footer-bottom a {
    color: var(--muted-foreground) !important;
}
.footer-brand-text, .footer-section-title { color: var(--foreground) !important; font-weight: 700 !important; }
.footer-links a, .footer-bottom-links a {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    color: var(--muted-foreground) !important;
    text-decoration: none !important;
    min-height: 1.75rem;
}
.footer-links a:hover, .footer-bottom-links a:hover, .footer-contact-item a:hover { color: var(--foreground) !important; }
.social-link, .footer-social-link {
    width: 2.25rem;
    height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
    background: var(--background) !important;
    color: var(--foreground) !important;
    text-decoration: none !important;
}
.social-link:hover, .footer-social-link:hover { background: var(--accent) !important; }
.back-to-top {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    z-index: 1080;
    width: 2.75rem;
    height: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
    background: var(--background) !important;
    color: var(--foreground) !important;
    box-shadow: var(--shadow-md) !important;
    opacity: 0;
    visibility: hidden;
    transform: translateY(.5rem);
    transition: opacity 140ms ease, transform 140ms ease, visibility 140ms ease;
}
.back-to-top.show { opacity: 1; visibility: visible; transform: translateY(0); }

.admin-shell { --sidebar-width: 280px; background: var(--background) !important; }
.admin-shell .sidebar {
    width: var(--sidebar-width) !important;
    background: var(--background) !important;
    border-right: 1px solid var(--border) !important;
    box-shadow: none !important;
    color: var(--foreground) !important;
}
.admin-shell .sidebar-header, .admin-shell .sidebar-footer {
    background: var(--background) !important;
    border-color: var(--border) !important;
}
.admin-shell .sidebar-brand, .admin-shell .sidebar .user-name, .admin-shell .sidebar .user-profile {
    color: var(--foreground) !important;
}
.admin-shell .sidebar .user-role, .admin-shell .nav-section-title {
    color: var(--muted-foreground) !important;
    letter-spacing: 0 !important;
    font-size: .75rem !important;
    text-transform: none !important;
}
.admin-shell .sidebar .nav-link {
    min-height: 2.35rem;
    display: flex;
    align-items: center;
    gap: .625rem;
    margin: .125rem .75rem;
    padding: .5rem .75rem !important;
    border: 1px solid transparent !important;
    border-radius: var(--radius-sm) !important;
    background: transparent !important;
    color: var(--muted-foreground) !important;
    font-size: .875rem !important;
    font-weight: 500 !important;
    transform: none !important;
}
.admin-shell .sidebar .nav-link:hover, .admin-shell .sidebar .nav-link.active {
    background: var(--accent) !important;
    color: var(--foreground) !important;
    border-color: var(--border) !important;
    box-shadow: none !important;
}
.admin-shell .sidebar .nav-link i { color: currentColor !important; margin-right: 0 !important; }
.admin-shell .main-content { margin-left: var(--sidebar-width); background: var(--background) !important; }
.admin-shell .page-wrapper, .admin-shell .container-fluid.py-4 { background: var(--background) !important; padding: 1.5rem !important; }
.admin-shell .top-header, .admin-shell .page-header {
    background: var(--background) !important;
    border-bottom: 1px solid var(--border) !important;
    box-shadow: none !important;
    color: var(--foreground) !important;
}
.admin-shell .page-title { font-size: 1.75rem !important; }
.admin-shell .welcome-hero {
    background: var(--card) !important;
    color: var(--foreground) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-xs) !important;
    padding: 1.25rem !important;
    margin-bottom: 1.5rem !important;
}
.admin-shell .welcome-hero h2 { font-size: 1.5rem !important; }
.admin-shell .welcome-hero p, .admin-shell .welcome-hero .opacity-75 {
    color: var(--muted-foreground) !important;
    opacity: 1 !important;
}
.admin-shell .welcome-hero .bg-white, .admin-shell .welcome-hero .bg-opacity-25 {
    background: var(--muted) !important;
    color: var(--foreground) !important;
    border: 1px solid var(--border) !important;
}
.admin-shell .quick-action-btn {
    min-height: 7rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    text-decoration: none !important;
    padding: 1rem;
}
.admin-shell .quick-action-icon { width: 2.5rem; height: 2.5rem; }
.admin-shell .header-icon-btn, .admin-shell .toggle-sidebar-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
    background: var(--background) !important;
    color: var(--foreground) !important;
    box-shadow: none !important;
}
.admin-shell .header-icon-btn:hover, .admin-shell .toggle-sidebar-btn:hover { background: var(--accent) !important; }
.admin-shell .dataTables_filter input, .admin-shell .dataTables_length select { min-height: 2.25rem; }
.admin-shell .tox-tinymce, .admin-shell .note-editor.note-frame,
.admin-shell .note-editor.note-airframe, .admin-shell .image-upload-box {
    border: 1px solid var(--border) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: none !important;
}
.admin-shell .note-toolbar, .admin-shell .tox .tox-toolbar, .admin-shell .tox .tox-toolbar__primary {
    background: var(--muted) !important;
    border-color: var(--border) !important;
}

.auth-shell .auth-wrapper, .auth-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
    background: var(--background) !important;
}
.auth-card, .login-card { width: min(100%, 28rem); }
.auth-card .card-body { padding: 1.5rem !important; }


@media (max-width: 991.98px) {
    .im-home-hero-grid, .im-cta-panel { grid-template-columns: 1fr; }
    .im-route-grid, .im-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .im-home-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-shell .main-content { margin-left: 0 !important; }
    .admin-shell .sidebar { transform: translateX(-100%); }
    .admin-shell .sidebar.show,
    .admin-shell .sidebar.open { transform: translateX(0); box-shadow: var(--shadow-md) !important; }
}
@media (max-width: 767.98px) {
    .container, .container-fluid { --bs-gutter-x: 1rem; }
    .hero-section, .hero, .page-hero, [class*="hero-section"], .im-home-hero { padding: 2.75rem 0 !important; }
    .im-home-copy h1 { font-size: 2.25rem !important; max-width: 100%; }
    .im-route-grid, .im-blog-grid, .im-home-stats { grid-template-columns: 1fr; }
    .im-route-card { grid-template-columns: 1fr; }
    .im-route-image { min-height: 11rem; }
    .im-city-row { grid-template-columns: 3.75rem minmax(0, 1fr); }
    .im-city-row > span { grid-column: 2; }
    .im-search-panel, .im-newsletter-form { grid-template-columns: 1fr; }
    .im-search-panel i { display: none !important; }
    .im-search-panel input { padding: 0 .5rem !important; }
    .im-home-feature, .im-home-feature img, .im-image-fallback { min-height: 20rem; }
    .modern-footer, .shadcn-footer { padding-bottom: 5rem !important; }
    .admin-shell .page-wrapper, .admin-shell .container-fluid.py-4 { padding: 1rem !important; }
    .admin-shell .card-header.d-flex, .admin-shell .page-header,
    .admin-shell .d-flex.justify-content-between {
        align-items: flex-start !important;
        flex-direction: column !important;
        gap: .75rem !important;
    }
    .admin-shell .btn { width: 100%; }
}

/* Homepage responsive rebuild */
.home-shell,
.home-shell * {
    min-width: 0;
}
.home-shell {
    background: var(--background) !important;
    color: var(--foreground) !important;
}
.home-hero {
    padding: 4.5rem 0 2rem !important;
    background: var(--background) !important;
    border-bottom: 1px solid var(--border) !important;
    overflow: hidden;
}
.home-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, .82fr);
    gap: 2rem;
    align-items: center;
}
.home-hero-copy { max-width: 48rem; }
.home-kicker,
.home-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-height: 1.6rem;
    padding: .3rem .65rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--secondary);
    color: var(--secondary-foreground);
    font-size: .76rem;
    font-weight: 650;
    line-height: 1;
    letter-spacing: 0;
}
.home-hero-copy h1 {
    max-width: 12ch;
    margin: 1rem 0 1rem;
    color: var(--foreground) !important;
    font-size: 3.45rem !important;
    line-height: 1.02 !important;
    letter-spacing: 0 !important;
    overflow-wrap: anywhere;
}
.home-hero-lead {
    max-width: 43rem;
    margin: 0 0 1.25rem;
    color: var(--muted-foreground) !important;
    font-size: 1rem;
    line-height: 1.75;
}
.home-search {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .55rem;
    width: min(100%, 46rem);
    padding: .5rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--card);
    box-shadow: var(--shadow-xs);
}
.home-search-field {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-height: 2.75rem;
    padding: 0 .75rem;
}
.home-search-field i {
    color: var(--muted-foreground) !important;
    flex: 0 0 auto;
}
.home-search input,
.home-newsletter-form input {
    width: 100%;
    min-width: 0;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--foreground) !important;
    padding: 0 !important;
}
.home-search button,
.home-newsletter-form button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 2.75rem;
    white-space: nowrap;
}
.home-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: 1rem;
    max-width: 46rem;
}
.home-chip-row a,
.home-link-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 2.35rem;
    max-width: 100%;
    padding: .48rem .78rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--background);
    color: var(--foreground) !important;
    font-size: .875rem;
    font-weight: 500;
    text-decoration: none !important;
    white-space: nowrap;
}
.home-chip-row a:hover,
.home-link-button:hover { background: var(--accent); }
.home-link-button.full { width: 100%; margin-top: .9rem; }
.home-hero-card,
.home-insight-panel,
.home-list-panel,
.home-blog-card,
.home-country-card,
.home-process-grid article,
.home-metric-card,
.home-cta-panel,
.home-empty {
    border: 1px solid var(--border) !important;
    border-radius: var(--radius-lg) !important;
    background: var(--card) !important;
    color: var(--card-foreground) !important;
    box-shadow: var(--shadow-xs) !important;
    overflow: hidden;
}
.home-hero-card {
    align-self: stretch;
    display: flex;
    flex-direction: column;
}
.home-hero-media,
.home-card-media {
    position: relative;
    aspect-ratio: 16 / 10;
    background: var(--muted);
    overflow: hidden;
}
.home-hero-media img,
.home-card-media img,
.home-city-thumb img,
.home-mini-row img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}
.home-image-fallback,
.home-card-media span,
.home-city-thumb,
.home-mini-row > span {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--muted);
    color: var(--muted-foreground);
}
.home-image-fallback {
    width: 100%;
    height: 100%;
    font-size: 2.5rem;
}
.home-media-badge {
    position: absolute;
    left: .85rem;
    bottom: .85rem;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    max-width: calc(100% - 1.7rem);
    padding: .38rem .65rem;
    border: 1px solid rgba(255,255,255,.4);
    border-radius: 999px;
    background: rgba(255,255,255,.92);
    color: var(--foreground);
    font-size: .78rem;
    font-weight: 650;
    box-shadow: var(--shadow-xs);
}
.home-hero-card-body {
    display: grid;
    gap: 1rem;
    padding: 1rem;
}
.home-hero-card-body h2 {
    margin: .55rem 0 .45rem;
    font-size: 1.45rem !important;
    line-height: 1.18 !important;
}
.home-hero-card-body p {
    margin: 0;
    color: var(--muted-foreground) !important;
    line-height: 1.6;
}
.home-hero-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .5rem;
    padding-top: .25rem;
}
.home-hero-facts div {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: .65rem;
    background: var(--background);
}
.home-hero-facts span,
.home-hero-facts strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.home-hero-facts span {
    color: var(--muted-foreground);
    font-size: .74rem;
}
.home-hero-facts strong {
    color: var(--foreground);
    font-size: .9rem;
    margin-top: .2rem;
}
.home-metrics,
.home-section,
.home-cta {
    padding: 3.25rem 0 !important;
    background: var(--background) !important;
    border-bottom: 1px solid var(--border);
}
.home-metrics { padding: 1.25rem 0 3.25rem !important; }
.home-section-soft { background: var(--muted) !important; }
.home-metric-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
}
.home-metric-card {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    padding: 1rem;
}
.home-card-icon,
.home-panel-title > i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.45rem;
    height: 2.45rem;
    min-width: 2.45rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--secondary);
    color: var(--foreground);
}
.home-metric-card strong {
    display: block;
    color: var(--foreground);
    font-size: 1.55rem;
    line-height: 1;
}
.home-metric-card span {
    display: block;
    margin-top: .25rem;
    color: var(--foreground);
    font-weight: 650;
}
.home-metric-card p {
    margin: .2rem 0 0;
    color: var(--muted-foreground) !important;
    font-size: .85rem;
}
.home-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.4rem;
}
.home-section-head.stacked,
.home-section-head.centered { display: block; }
.home-section-head.centered {
    max-width: 44rem;
    margin: 0 auto 1.5rem;
    text-align: center;
}
.home-section-head h2 {
    margin: .65rem 0 0;
    font-size: 2.2rem !important;
    line-height: 1.12 !important;
    overflow-wrap: anywhere;
}
.home-section-head p {
    max-width: 42rem;
    margin: .7rem 0 0;
    color: var(--muted-foreground) !important;
    line-height: 1.7;
}
.home-process-grid,
.home-country-grid,
.home-blog-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}
.home-process-grid article { padding: 1.1rem; }
.home-process-grid i { color: var(--foreground) !important; }
.home-process-grid h3 {
    margin: .85rem 0 .45rem;
    font-size: 1.05rem !important;
}
.home-process-grid p {
    margin: 0;
    color: var(--muted-foreground) !important;
    line-height: 1.65;
}
.home-country-card,
.home-blog-card a {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    color: inherit;
    text-decoration: none !important;
}
.home-card-media span {
    width: 100%;
    height: 100%;
    font-size: 2rem;
}
.home-card-media em {
    position: absolute;
    top: .75rem;
    right: .75rem;
    max-width: calc(100% - 1.5rem);
    padding: .3rem .55rem;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 999px;
    background: rgba(255,255,255,.92);
    color: var(--foreground);
    font-size: .75rem;
    font-style: normal;
    font-weight: 650;
    white-space: nowrap;
}
.home-country-body { padding: 1rem; }
.home-country-body span,
.home-blog-card span,
.home-panel-title span {
    color: var(--muted-foreground);
    font-size: .76rem;
    font-weight: 650;
}
.home-country-body h3,
.home-blog-card h3,
.home-panel-title h3 {
    margin: .35rem 0;
    font-size: 1.1rem !important;
    line-height: 1.3 !important;
}
.home-country-body p,
.home-blog-card p,
.home-muted {
    margin: 0;
    color: var(--muted-foreground) !important;
    line-height: 1.55;
}
.home-country-body p {
    display: flex;
    align-items: center;
    gap: .35rem;
}
.home-two-column,
.home-split-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(300px, .88fr);
    gap: 1rem;
    align-items: start;
}
.home-city-list { display: grid; gap: .65rem; }
.home-city-row,
.home-mini-row {
    display: grid;
    align-items: center;
    gap: .75rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--card);
    color: inherit;
    text-decoration: none !important;
    box-shadow: var(--shadow-xs);
}
.home-city-row {
    grid-template-columns: 4.5rem minmax(0, 1fr) auto;
    padding: .65rem .85rem .65rem .65rem;
}
.home-city-thumb {
    width: 4.5rem;
    height: 4.5rem;
    min-width: 4.5rem;
    border-radius: var(--radius);
    overflow: hidden;
}
.home-city-copy strong,
.home-city-copy small,
.home-mini-row strong,
.home-mini-row small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.home-city-copy strong,
.home-mini-row strong {
    color: var(--foreground);
    font-size: .98rem;
}
.home-city-copy small,
.home-mini-row small {
    color: var(--muted-foreground);
    margin-top: .18rem;
}
.home-row-action {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: var(--muted-foreground);
    font-size: .86rem;
    font-weight: 550;
    white-space: nowrap;
}
.home-insight-panel,
.home-list-panel { padding: 1.1rem; }
.home-insight-panel h3 {
    margin: .7rem 0 .75rem;
    font-size: 1.25rem !important;
}
.home-insight-panel ul {
    display: grid;
    gap: .7rem;
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
}
.home-insight-panel li {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    color: var(--muted-foreground);
    line-height: 1.45;
}
.home-insight-panel li i {
    margin-top: .15rem;
    color: var(--foreground) !important;
}
.home-split-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.home-panel-title {
    display: flex;
    align-items: center;
    gap: .85rem;
    margin-bottom: .85rem;
}
.home-panel-title h3 { margin-bottom: 0; }
.home-mini-row {
    grid-template-columns: 3.75rem minmax(0, 1fr) auto;
    padding: .55rem .7rem .55rem .55rem;
    margin-top: .55rem;
}
.home-mini-row > span {
    width: 3.75rem;
    height: 3.75rem;
    border-radius: var(--radius);
    overflow: hidden;
}
.home-mini-row em {
    min-width: 2.2rem;
    padding: .25rem .4rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    color: var(--foreground);
    background: var(--secondary);
    font-style: normal;
    font-size: .78rem;
    text-align: center;
}
.home-blog-card a {
    padding: 1rem;
    min-height: 13rem;
}
.home-blog-card h3 {
    margin: .55rem 0 .55rem;
    font-size: 1.15rem !important;
    line-height: 1.35 !important;
}
.home-blog-card em {
    margin-top: auto;
    color: var(--muted-foreground);
    font-size: .85rem;
    font-style: normal;
}
.home-empty {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: 1rem;
    color: var(--muted-foreground);
}
.home-cta {
    border-bottom: 0;
    padding-bottom: 4rem !important;
}
.home-cta-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
    gap: 1rem;
    align-items: center;
    padding: 1.25rem;
}
.home-cta-panel h2 {
    margin: .65rem 0 .5rem;
    font-size: 1.65rem !important;
}
.home-cta-panel p {
    margin: 0;
    color: var(--muted-foreground) !important;
    line-height: 1.6;
}
.home-newsletter-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .55rem;
    padding: .5rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--background);
}
.home-newsletter-form input {
    min-height: 2.75rem;
    padding: 0 .65rem !important;
}
@media (max-width: 1199.98px) {
    .home-hero-copy h1 { font-size: 3rem !important; }
    .home-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(300px, .78fr); }
}
@media (max-width: 991.98px) {
    .home-hero { padding-top: 3.5rem !important; }
    .home-hero-grid,
    .home-two-column,
    .home-cta-panel { grid-template-columns: 1fr; }
    .home-hero-copy { max-width: 100%; }
    .home-hero-copy h1 { max-width: 13ch; font-size: 2.7rem !important; }
    .home-metric-grid,
    .home-country-grid,
    .home-blog-grid,
    .home-process-grid,
    .home-split-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-insight-panel { order: -1; }
}
@media (max-width: 767.98px) {
    .home-hero { padding: 2.75rem 0 1.5rem !important; }
    .home-metrics,
    .home-section,
    .home-cta { padding: 2.5rem 0 !important; }
    .home-hero-copy h1 { max-width: 100%; font-size: 2.18rem !important; }
    .home-hero-lead { font-size: .98rem; }
    .home-search,
    .home-newsletter-form { grid-template-columns: 1fr; }
    .home-search-field { padding: 0 .55rem; }
    .home-search button,
    .home-newsletter-form button { width: 100%; }
    .home-chip-row a { flex: 1 1 calc(50% - .5rem); }
    .home-metric-grid,
    .home-country-grid,
    .home-blog-grid,
    .home-process-grid,
    .home-split-grid { grid-template-columns: 1fr; }
    .home-section-head { align-items: flex-start; flex-direction: column; }
    .home-section-head.centered { text-align: left; }
    .home-section-head h2 { font-size: 1.72rem !important; }
    .home-hero-facts { grid-template-columns: 1fr; }
    .home-city-row { grid-template-columns: 3.75rem minmax(0, 1fr); padding-right: .65rem; }
    .home-city-thumb { width: 3.75rem; height: 3.75rem; min-width: 3.75rem; }
    .home-row-action { grid-column: 2; justify-content: flex-start; }
    .home-mini-row { grid-template-columns: 3.35rem minmax(0, 1fr); }
    .home-mini-row > span { width: 3.35rem; height: 3.35rem; }
    .home-mini-row em { grid-column: 2; width: max-content; }
}
@media (max-width: 420px) {
    .home-chip-row a { flex-basis: 100%; }
    .home-metric-card { align-items: center; }
    .home-hero-card-body,
    .home-list-panel,
    .home-insight-panel,
    .home-cta-panel { padding: .9rem; }
}
/* Hotels listing responsive rebuild */
.shadcn-ui .hotel-page {
    background: var(--background);
    color: var(--foreground);
    overflow-x: hidden;
}
.shadcn-ui .hotel-page,
.shadcn-ui .hotel-page * {
    min-width: 0;
}
.shadcn-ui .hotel-hero {
    position: relative;
    padding: 4.5rem 0 2.75rem;
    background:
        linear-gradient(180deg, rgba(250, 250, 250, .96) 0%, rgba(255, 255, 255, 1) 58%, rgba(244, 244, 245, .7) 100%);
    border-bottom: 1px solid var(--border);
    overflow: hidden;
}
.shadcn-ui .hotel-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(24, 24, 27, .04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(24, 24, 27, .04) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, .62), transparent 78%);
}
.shadcn-ui .hotel-hero .container,
.shadcn-ui .hotel-filter-section .container,
.shadcn-ui .hotel-results-section .container {
    position: relative;
    z-index: 1;
}
.shadcn-ui .hotel-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, .75fr);
    gap: 1.4rem;
    align-items: stretch;
}
.shadcn-ui .hotel-hero-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: 760px;
}
.shadcn-ui .hotel-eyebrow,
.shadcn-ui .hotel-section-kicker {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    width: fit-content;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--background);
    color: var(--muted-foreground);
    font-size: .8rem;
    font-weight: 700;
    line-height: 1;
    padding: .48rem .7rem;
    box-shadow: var(--shadow-xs);
}
.shadcn-ui .hotel-eyebrow i,
.shadcn-ui .hotel-section-kicker i {
    color: var(--foreground);
}
.shadcn-ui .hotel-hero-copy h1 {
    margin: 1.1rem 0 .95rem;
    max-width: 12ch;
    color: var(--foreground) !important;
    font-size: 4rem !important;
    font-weight: 850 !important;
    line-height: .98 !important;
    letter-spacing: 0 !important;
}
.shadcn-ui .hotel-hero-copy p {
    max-width: 660px;
    margin: 0;
    color: var(--muted-foreground) !important;
    font-size: 1.06rem;
    line-height: 1.75;
}
.shadcn-ui .hotel-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1.35rem;
}
.shadcn-ui .hotel-hero-btn {
    min-height: 2.8rem;
    border-radius: var(--radius) !important;
    gap: .45rem;
}
.shadcn-ui .hotel-hero-card,
.shadcn-ui .hotel-filter-panel,
.shadcn-ui .hotel-empty {
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, .92);
    box-shadow: var(--shadow-sm);
}
.shadcn-ui .hotel-hero-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
}
.shadcn-ui .hotel-hero-card-head {
    display: grid;
    grid-template-columns: 2.65rem minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    padding-bottom: .85rem;
    border-bottom: 1px solid var(--border);
}
.shadcn-ui .hotel-hero-card-head > span,
.shadcn-ui .hotel-hero-note i,
.shadcn-ui .hotel-empty > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.65rem;
    height: 2.65rem;
    border-radius: var(--radius);
    background: var(--primary);
    color: var(--primary-foreground);
}
.shadcn-ui .hotel-hero-card-head strong {
    display: block;
    color: var(--foreground);
    font-size: .98rem;
    line-height: 1.2;
}
.shadcn-ui .hotel-hero-card-head small {
    display: block;
    margin-top: .2rem;
    color: var(--muted-foreground);
    font-size: .82rem;
}
.shadcn-ui .hotel-stat-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .6rem;
}
.shadcn-ui .hotel-stat-card {
    min-height: 5.35rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--muted);
    padding: .8rem;
}
.shadcn-ui .hotel-stat-card span {
    display: block;
    color: var(--foreground);
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.1;
    overflow-wrap: anywhere;
}
.shadcn-ui .hotel-stat-card small {
    display: block;
    margin-top: .35rem;
    color: var(--muted-foreground);
    font-size: .78rem;
    line-height: 1.35;
}
.shadcn-ui .hotel-hero-note {
    display: grid;
    grid-template-columns: 2.65rem minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    color: var(--muted-foreground);
    font-size: .9rem;
    line-height: 1.5;
}
.shadcn-ui .hotel-filter-section {
    padding: 1.5rem 0 1.25rem;
    background: var(--background);
}
.shadcn-ui .hotel-filter-panel {
    padding: 1rem;
}
.shadcn-ui .hotel-filter-panel.is-loading {
    opacity: .78;
    pointer-events: none;
}
.shadcn-ui .hotel-filter-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border);
}
.shadcn-ui .hotel-filter-head h2,
.shadcn-ui .hotel-results-head h2 {
    margin: .65rem 0 0;
    color: var(--foreground) !important;
    font-size: 1.7rem !important;
    font-weight: 780 !important;
    line-height: 1.15 !important;
}
.shadcn-ui .hotel-filter-head p,
.shadcn-ui .hotel-results-head p {
    max-width: 440px;
    margin: 0;
    color: var(--muted-foreground) !important;
    font-size: .95rem;
    line-height: 1.55;
}
.shadcn-ui .hotel-filter-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: .75rem;
    margin-top: 1rem;
}
.shadcn-ui .hotel-field {
    display: flex;
    flex-direction: column;
    grid-column: span 2;
    gap: .38rem;
}
.shadcn-ui .hotel-field-wide {
    grid-column: span 4;
}

.shadcn-ui .hotel-field span {
    color: var(--foreground);
    font-size: .8rem;
    font-weight: 700;
    line-height: 1.25;
}
.shadcn-ui .hotel-input-wrap {
    position: relative;
}
.shadcn-ui .hotel-input-wrap i {
    position: absolute;
    left: .8rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--muted-foreground);
    pointer-events: none;
}
.shadcn-ui .hotel-input-wrap input {
    padding-left: 2.35rem !important;
}
.shadcn-ui .hotel-field input,
.shadcn-ui .hotel-field select {
    width: 100%;
    min-height: 2.75rem;
    border: 1px solid var(--input) !important;
    border-radius: var(--radius) !important;
    background: var(--background) !important;
    color: var(--foreground) !important;
    font-size: .92rem !important;
    line-height: 1.3;
    box-shadow: none !important;
}
.shadcn-ui .hotel-field input:focus,
.shadcn-ui .hotel-field select:focus {
    border-color: var(--ring) !important;
    box-shadow: 0 0 0 3px rgba(24, 24, 27, .1) !important;
    outline: none !important;
}
.shadcn-ui .hotel-filter-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .6rem;
    margin-top: 1rem;
}
.shadcn-ui .hotel-filter-actions .btn {
    min-height: 2.75rem;
    border-radius: var(--radius) !important;
    gap: .45rem;
}
.shadcn-ui .hotel-clear-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .42rem;
    min-height: 2.75rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--background);
    color: var(--foreground);
    font-size: .9rem;
    font-weight: 700;
    padding: 0 .9rem;
    text-decoration: none;
}
.shadcn-ui .hotel-clear-btn:hover {
    background: var(--muted);
    color: var(--foreground);
}
.shadcn-ui .hotel-results-section {
    padding: 1.5rem 0 4rem;
    background: var(--background);
}
.shadcn-ui .hotel-results-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}
.shadcn-ui .hotel-active-filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .45rem;
    max-width: 520px;
}
.shadcn-ui .hotel-active-filters span,
.shadcn-ui .hotel-active-filters a {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--secondary);
    color: var(--secondary-foreground);
    font-size: .78rem;
    font-weight: 700;
    padding: .2rem .65rem;
    text-decoration: none;
}
.shadcn-ui .hotel-active-filters a {
    background: var(--primary);
    color: var(--primary-foreground);
    border-color: var(--primary);
}
.shadcn-ui .hotel-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}
.shadcn-ui .hotel-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--card);
    color: var(--card-foreground);
    box-shadow: var(--shadow-xs);
    overflow: hidden;
}
.shadcn-ui .hotel-card-media {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    background: var(--muted);
    overflow: hidden;
}
.shadcn-ui .hotel-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.shadcn-ui .hotel-media-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--muted-foreground);
    font-size: 2rem;
}
.shadcn-ui .hotel-media-shade {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 48%;
    background: linear-gradient(180deg, transparent, rgba(9, 9, 11, .58));
    pointer-events: none;
}
.shadcn-ui .hotel-card-badges {
    position: absolute;
    left: .7rem;
    right: .7rem;
    bottom: .7rem;
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}
.shadcn-ui .hotel-card-badges span {
    display: inline-flex;
    align-items: center;
    gap: .32rem;
    min-height: 1.85rem;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 999px;
    background: rgba(9, 9, 11, .72);
    color: #fff;
    font-size: .76rem;
    font-weight: 800;
    padding: .15rem .55rem;
    backdrop-filter: blur(12px);
}
.shadcn-ui .hotel-card-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: .95rem;
}
.shadcn-ui .hotel-card-title-row h3 {
    margin: 0;
    color: var(--foreground) !important;
    font-size: 1.08rem !important;
    font-weight: 780 !important;
    line-height: 1.28 !important;
}
.shadcn-ui .hotel-card-title-row a {
    color: inherit;
    text-decoration: none;
}
.shadcn-ui .hotel-card-title-row a:hover {
    text-decoration: underline;
}
.shadcn-ui .hotel-location {
    display: flex;
    align-items: flex-start;
    gap: .45rem;
    min-height: 1.5rem;
    margin: .55rem 0 0;
    color: var(--muted-foreground) !important;
    font-size: .88rem;
    line-height: 1.45;
}
.shadcn-ui .hotel-location i {
    margin-top: .14rem;
    color: var(--foreground);
}
.shadcn-ui .hotel-desc {
    margin: .65rem 0 0;
    color: var(--muted-foreground) !important;
    font-size: .9rem;
    line-height: 1.6;
}
.shadcn-ui .hotel-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-top: .85rem;
}
.shadcn-ui .hotel-card-meta span {
    display: inline-flex;
    align-items: center;
    gap: .34rem;
    min-height: 1.85rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--muted);
    color: var(--muted-foreground);
    font-size: .76rem;
    font-weight: 700;
    padding: .1rem .55rem;
}
.shadcn-ui .hotel-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    margin-top: auto;
    padding-top: 1rem;
}
.shadcn-ui .hotel-card-footnote {
    display: inline-flex;
    align-items: center;
    gap: .38rem;
    min-height: 2.35rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--muted);
    color: var(--muted-foreground);
    font-size: .82rem;
    font-weight: 800;
    padding: 0 .72rem;
    white-space: nowrap;
}
.shadcn-ui .hotel-card-footnote i {
    color: var(--primary);
}
.shadcn-ui .hotel-detail-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    min-height: 2.35rem;
    border: 1px solid var(--primary);
    border-radius: var(--radius);
    background: var(--primary);
    color: var(--primary-foreground);
    font-size: .86rem;
    font-weight: 800;
    padding: 0 .8rem;
    text-decoration: none;
    white-space: nowrap;
}
.shadcn-ui .hotel-detail-link:hover {
    color: var(--primary-foreground);
    filter: brightness(.96);
}
.shadcn-ui .hotel-pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .45rem;
    margin-top: 1.5rem;
}
.shadcn-ui .hotel-page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.45rem;
    height: 2.45rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--background);
    color: var(--foreground);
    font-size: .9rem;
    font-weight: 800;
    text-decoration: none;
}
.shadcn-ui .hotel-page-link.is-active {
    background: var(--primary);
    color: var(--primary-foreground);
    border-color: var(--primary);
}
.shadcn-ui .hotel-page-link.is-disabled {
    opacity: .45;
    cursor: not-allowed;
}
.shadcn-ui .hotel-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2.5rem 1rem;
}
.shadcn-ui .hotel-empty > span {
    margin-bottom: .8rem;
}
.shadcn-ui .hotel-empty h3 {
    margin: 0;
    color: var(--foreground) !important;
    font-size: 1.45rem !important;
}
.shadcn-ui .hotel-empty p {
    max-width: 520px;
    margin: .55rem 0 1rem;
    color: var(--muted-foreground) !important;
    line-height: 1.6;
}
@media (max-width: 1199.98px) {
    .shadcn-ui .hotel-hero-copy h1 { font-size: 3.35rem !important; }
    .shadcn-ui .hotel-filter-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .shadcn-ui .hotel-field { grid-column: span 2; }
    .shadcn-ui .hotel-field-wide { grid-column: span 6; }
}
@media (max-width: 991.98px) {
    .shadcn-ui .hotel-hero { padding: 3.5rem 0 2rem; }
    .shadcn-ui .hotel-hero-grid { grid-template-columns: 1fr; }
    .shadcn-ui .hotel-hero-copy { max-width: 100%; }
    .shadcn-ui .hotel-hero-copy h1 { max-width: 13ch; font-size: 3rem !important; }
    .shadcn-ui .hotel-filter-head,
    .shadcn-ui .hotel-results-head { align-items: flex-start; flex-direction: column; }
    .shadcn-ui .hotel-filter-head p,
    .shadcn-ui .hotel-results-head p { max-width: 100%; }
    .shadcn-ui .hotel-active-filters { justify-content: flex-start; max-width: 100%; }
    .shadcn-ui .hotel-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .shadcn-ui .hotel-hero { padding: 2.8rem 0 1.5rem; }
    .shadcn-ui .hotel-hero-copy h1 { max-width: 100%; font-size: 2.28rem !important; }
    .shadcn-ui .hotel-hero-copy p { font-size: .98rem; }
    .shadcn-ui .hotel-hero-actions,
    .shadcn-ui .hotel-filter-actions { flex-direction: column; align-items: stretch; }
    .shadcn-ui .hotel-hero-actions .btn,
    .shadcn-ui .hotel-filter-actions .btn,
    .shadcn-ui .hotel-clear-btn { width: 100%; }
    .shadcn-ui .hotel-stat-grid,
    .shadcn-ui .hotel-filter-grid,
    .shadcn-ui .hotel-grid { grid-template-columns: 1fr; }
    .shadcn-ui .hotel-field,
    .shadcn-ui .hotel-field-wide { grid-column: auto; }
    .shadcn-ui .hotel-filter-panel,
    .shadcn-ui .hotel-hero-card { padding: .85rem; }
    .shadcn-ui .hotel-filter-head h2,
    .shadcn-ui .hotel-results-head h2 { font-size: 1.45rem !important; }
    .shadcn-ui .hotel-card-footer { align-items: stretch; flex-direction: column; }
    .shadcn-ui .hotel-detail-link { width: 100%; }
}
@media (max-width: 420px) {
    .shadcn-ui .hotel-eyebrow,
    .shadcn-ui .hotel-section-kicker { width: 100%; justify-content: center; text-align: center; }
    .shadcn-ui .hotel-hero-card-head,
    .shadcn-ui .hotel-hero-note { grid-template-columns: 2.35rem minmax(0, 1fr); }
    .shadcn-ui .hotel-hero-card-head > span,
    .shadcn-ui .hotel-hero-note i,
    .shadcn-ui .hotel-empty > span { width: 2.35rem; height: 2.35rem; }
    .shadcn-ui .hotel-card-body { padding: .82rem; }
    .shadcn-ui .hotel-page-link { width: 2.25rem; height: 2.25rem; }
}
/* Hotels hero overrides for the global hero normalizer */
.shadcn-ui .hotel-page .hotel-hero {
    min-height: auto !important;
    margin: 0 !important;
    padding: 4.5rem 0 2.75rem !important;
    background:
        linear-gradient(180deg, rgba(250, 250, 250, .96) 0%, rgba(255, 255, 255, 1) 58%, rgba(244, 244, 245, .7) 100%) !important;
    border-bottom: 1px solid var(--border) !important;
    color: var(--foreground) !important;
    overflow: hidden !important;
}
@media (max-width: 991.98px) {
    .shadcn-ui .hotel-page .hotel-hero { padding: 3.5rem 0 2rem !important; }
}
@media (max-width: 767.98px) {
    .shadcn-ui .hotel-page .hotel-hero { padding: 2.8rem 0 1.5rem !important; }
}
/* Restaurants listing responsive rebuild */
.shadcn-ui .restaurant-page {
    background: var(--background);
    color: var(--foreground);
    overflow-x: hidden;
}
.shadcn-ui .restaurant-page,
.shadcn-ui .restaurant-page * {
    min-width: 0;
}
.shadcn-ui .restaurant-hero {
    position: relative;
    padding: 4.5rem 0 2.75rem !important;
    background:
        linear-gradient(180deg, rgba(250, 250, 250, .97) 0%, rgba(255, 255, 255, 1) 58%, rgba(244, 244, 245, .72) 100%) !important;
    border-bottom: 1px solid var(--border) !important;
    color: var(--foreground) !important;
    overflow: hidden !important;
}
.shadcn-ui .restaurant-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(24, 24, 27, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(24, 24, 27, .045) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, .58), transparent 78%);
}
.shadcn-ui .restaurant-hero .container,
.shadcn-ui .restaurant-filter-section .container,
.shadcn-ui .restaurant-results-section .container {
    position: relative;
    z-index: 1;
}
.shadcn-ui .restaurant-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, .75fr);
    gap: 1.4rem;
    align-items: stretch;
}
.shadcn-ui .restaurant-hero-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: 780px;
}
.shadcn-ui .restaurant-eyebrow,
.shadcn-ui .restaurant-section-kicker {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    width: fit-content;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--background);
    color: var(--muted-foreground);
    font-size: .8rem;
    font-weight: 700;
    line-height: 1;
    padding: .48rem .7rem;
    box-shadow: var(--shadow-xs);
}
.shadcn-ui .restaurant-eyebrow i,
.shadcn-ui .restaurant-section-kicker i {
    color: var(--foreground);
}
.shadcn-ui .restaurant-hero-copy h1 {
    margin: 1.1rem 0 .95rem;
    max-width: 13ch;
    color: var(--foreground) !important;
    font-size: 4rem !important;
    font-weight: 850 !important;
    line-height: .98 !important;
    letter-spacing: 0 !important;
}
.shadcn-ui .restaurant-hero-copy p {
    max-width: 660px;
    margin: 0;
    color: var(--muted-foreground) !important;
    font-size: 1.06rem;
    line-height: 1.75;
}
.shadcn-ui .restaurant-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1.35rem;
}
.shadcn-ui .restaurant-hero-btn {
    min-height: 2.8rem;
    border-radius: var(--radius) !important;
    gap: .45rem;
}
.shadcn-ui .restaurant-hero-card,
.shadcn-ui .restaurant-filter-panel,
.shadcn-ui .restaurant-empty {
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, .92);
    box-shadow: var(--shadow-sm);
}
.shadcn-ui .restaurant-hero-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
}
.shadcn-ui .restaurant-hero-card-head {
    display: grid;
    grid-template-columns: 2.65rem minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    padding-bottom: .85rem;
    border-bottom: 1px solid var(--border);
}
.shadcn-ui .restaurant-hero-card-head > span,
.shadcn-ui .restaurant-hero-note i,
.shadcn-ui .restaurant-empty > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.65rem;
    height: 2.65rem;
    border-radius: var(--radius);
    background: var(--primary);
    color: var(--primary-foreground);
}
.shadcn-ui .restaurant-hero-card-head strong {
    display: block;
    color: var(--foreground);
    font-size: .98rem;
    line-height: 1.2;
}
.shadcn-ui .restaurant-hero-card-head small {
    display: block;
    margin-top: .2rem;
    color: var(--muted-foreground);
    font-size: .82rem;
}
.shadcn-ui .restaurant-stat-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .6rem;
}
.shadcn-ui .restaurant-stat-card {
    min-height: 5.35rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--muted);
    padding: .8rem;
}
.shadcn-ui .restaurant-stat-card span {
    display: block;
    color: var(--foreground);
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.1;
    overflow-wrap: anywhere;
}
.shadcn-ui .restaurant-stat-card small {
    display: block;
    margin-top: .35rem;
    color: var(--muted-foreground);
    font-size: .78rem;
    line-height: 1.35;
}
.shadcn-ui .restaurant-hero-note {
    display: grid;
    grid-template-columns: 2.65rem minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    color: var(--muted-foreground);
    font-size: .9rem;
    line-height: 1.5;
}
.shadcn-ui .restaurant-filter-section {
    padding: 1.5rem 0 1.25rem;
    background: var(--background);
}
.shadcn-ui .restaurant-filter-panel {
    padding: 1rem;
}
.shadcn-ui .restaurant-filter-panel.is-loading {
    opacity: .78;
    pointer-events: none;
}
.shadcn-ui .restaurant-filter-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border);
}
.shadcn-ui .restaurant-filter-head h2,
.shadcn-ui .restaurant-results-head h2 {
    margin: .65rem 0 0;
    color: var(--foreground) !important;
    font-size: 1.7rem !important;
    font-weight: 780 !important;
    line-height: 1.15 !important;
}
.shadcn-ui .restaurant-filter-head p,
.shadcn-ui .restaurant-results-head p {
    max-width: 440px;
    margin: 0;
    color: var(--muted-foreground) !important;
    font-size: .95rem;
    line-height: 1.55;
}
.shadcn-ui .restaurant-filter-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: .75rem;
    margin-top: 1rem;
}
.shadcn-ui .restaurant-field {
    display: flex;
    flex-direction: column;
    grid-column: span 2;
    gap: .38rem;
}
.shadcn-ui .restaurant-field-wide {
    grid-column: span 4;
}
.shadcn-ui .restaurant-field span {
    color: var(--foreground);
    font-size: .8rem;
    font-weight: 700;
    line-height: 1.25;
}
.shadcn-ui .restaurant-input-wrap {
    position: relative;
}
.shadcn-ui .restaurant-input-wrap i {
    position: absolute;
    left: .8rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--muted-foreground);
    pointer-events: none;
}
.shadcn-ui .restaurant-input-wrap input {
    padding-left: 2.35rem !important;
}
.shadcn-ui .restaurant-field input,
.shadcn-ui .restaurant-field select {
    width: 100%;
    min-height: 2.75rem;
    border: 1px solid var(--input) !important;
    border-radius: var(--radius) !important;
    background: var(--background) !important;
    color: var(--foreground) !important;
    font-size: .92rem !important;
    line-height: 1.3;
    box-shadow: none !important;
}
.shadcn-ui .restaurant-field input:focus,
.shadcn-ui .restaurant-field select:focus {
    border-color: var(--ring) !important;
    box-shadow: 0 0 0 3px rgba(24, 24, 27, .1) !important;
    outline: none !important;
}
.shadcn-ui .restaurant-filter-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .6rem;
    margin-top: 1rem;
}
.shadcn-ui .restaurant-filter-actions .btn {
    min-height: 2.75rem;
    border-radius: var(--radius) !important;
    gap: .45rem;
}
.shadcn-ui .restaurant-clear-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .42rem;
    min-height: 2.75rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--background);
    color: var(--foreground);
    font-size: .9rem;
    font-weight: 700;
    padding: 0 .9rem;
    text-decoration: none;
}
.shadcn-ui .restaurant-clear-btn:hover {
    background: var(--muted);
    color: var(--foreground);
}
.shadcn-ui .restaurant-cuisine-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    margin-top: .8rem;
}
.shadcn-ui .restaurant-cuisine-strip span,
.shadcn-ui .restaurant-cuisine-strip a {
    display: inline-flex;
    align-items: center;
    gap: .34rem;
    min-height: 2rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--background);
    color: var(--muted-foreground);
    font-size: .78rem;
    font-weight: 750;
    padding: .2rem .65rem;
    text-decoration: none;
}
.shadcn-ui .restaurant-cuisine-strip span {
    background: var(--muted);
    color: var(--foreground);
}
.shadcn-ui .restaurant-cuisine-strip a:hover,
.shadcn-ui .restaurant-cuisine-strip a.is-active {
    background: var(--primary);
    border-color: var(--primary);
    color: var(--primary-foreground);
}
.shadcn-ui .restaurant-results-section {
    padding: 1.5rem 0 4rem;
    background: var(--background);
}
.shadcn-ui .restaurant-results-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}
.shadcn-ui .restaurant-active-filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .45rem;
    max-width: 540px;
}
.shadcn-ui .restaurant-active-filters span,
.shadcn-ui .restaurant-active-filters a {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--secondary);
    color: var(--secondary-foreground);
    font-size: .78rem;
    font-weight: 700;
    padding: .2rem .65rem;
    text-decoration: none;
}
.shadcn-ui .restaurant-active-filters a {
    background: var(--primary);
    color: var(--primary-foreground);
    border-color: var(--primary);
}
.shadcn-ui .restaurant-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}
.shadcn-ui .restaurant-list-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--card);
    color: var(--card-foreground);
    box-shadow: var(--shadow-xs);
    overflow: hidden;
}
.shadcn-ui .restaurant-card-media {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    background: var(--muted);
    overflow: hidden;
}
.shadcn-ui .restaurant-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.shadcn-ui .restaurant-media-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--muted-foreground);
    font-size: 2rem;
}
.shadcn-ui .restaurant-media-shade {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 50%;
    background: linear-gradient(180deg, transparent, rgba(9, 9, 11, .6));
    pointer-events: none;
}
.shadcn-ui .restaurant-card-badges {
    position: absolute;
    left: .7rem;
    right: .7rem;
    bottom: .7rem;
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}
.shadcn-ui .restaurant-card-badges span {
    display: inline-flex;
    align-items: center;
    gap: .32rem;
    min-height: 1.85rem;
    max-width: 100%;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 999px;
    background: rgba(9, 9, 11, .72);
    color: #fff;
    font-size: .76rem;
    font-weight: 800;
    padding: .15rem .55rem;
    backdrop-filter: blur(12px);
    overflow-wrap: anywhere;
}
.shadcn-ui .restaurant-card-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: .95rem;
}
.shadcn-ui .restaurant-card-body h3 {
    margin: 0;
    color: var(--foreground) !important;
    font-size: 1.08rem !important;
    font-weight: 780 !important;
    line-height: 1.28 !important;
}
.shadcn-ui .restaurant-card-body h3 a {
    color: inherit;
    text-decoration: none;
}
.shadcn-ui .restaurant-card-body h3 a:hover {
    text-decoration: underline;
}
.shadcn-ui .restaurant-location {
    display: flex;
    align-items: flex-start;
    gap: .45rem;
    min-height: 1.5rem;
    margin: .55rem 0 0;
    color: var(--muted-foreground) !important;
    font-size: .88rem;
    line-height: 1.45;
}
.shadcn-ui .restaurant-location i {
    margin-top: .14rem;
    color: var(--foreground);
}
.shadcn-ui .restaurant-desc {
    margin: .65rem 0 0;
    color: var(--muted-foreground) !important;
    font-size: .9rem;
    line-height: 1.6;
}
.shadcn-ui .restaurant-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-top: .85rem;
}
.shadcn-ui .restaurant-card-meta span {
    display: inline-flex;
    align-items: center;
    gap: .34rem;
    min-height: 1.85rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--muted);
    color: var(--muted-foreground);
    font-size: .76rem;
    font-weight: 700;
    padding: .1rem .55rem;
    overflow-wrap: anywhere;
}
.shadcn-ui .restaurant-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    margin-top: auto;
    padding-top: 1rem;
}
.shadcn-ui .restaurant-price {
    display: flex;
    flex-direction: column;
    gap: .1rem;
}
.shadcn-ui .restaurant-price small {
    color: var(--muted-foreground);
    font-size: .76rem;
    font-weight: 700;
}
.shadcn-ui .restaurant-price strong {
    color: var(--foreground);
    font-size: 1.02rem;
    line-height: 1.1;
    overflow-wrap: anywhere;
}
.shadcn-ui .restaurant-detail-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    min-height: 2.35rem;
    border: 1px solid var(--primary);
    border-radius: var(--radius);
    background: var(--primary);
    color: var(--primary-foreground);
    font-size: .86rem;
    font-weight: 800;
    padding: 0 .8rem;
    text-decoration: none;
    white-space: nowrap;
}
.shadcn-ui .restaurant-detail-link:hover {
    color: var(--primary-foreground);
    filter: brightness(.96);
}
.shadcn-ui .restaurant-pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .45rem;
    margin-top: 1.5rem;
}
.shadcn-ui .restaurant-page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.45rem;
    height: 2.45rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--background);
    color: var(--foreground);
    font-size: .9rem;
    font-weight: 800;
    text-decoration: none;
}
.shadcn-ui .restaurant-page-link.is-active {
    background: var(--primary);
    color: var(--primary-foreground);
    border-color: var(--primary);
}
.shadcn-ui .restaurant-page-link.is-disabled {
    opacity: .45;
    cursor: not-allowed;
}
.shadcn-ui .restaurant-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2.5rem 1rem;
}
.shadcn-ui .restaurant-empty > span {
    margin-bottom: .8rem;
}
.shadcn-ui .restaurant-empty h3 {
    margin: 0;
    color: var(--foreground) !important;
    font-size: 1.45rem !important;
}
.shadcn-ui .restaurant-empty p {
    max-width: 540px;
    margin: .55rem 0 1rem;
    color: var(--muted-foreground) !important;
    line-height: 1.6;
}
@media (max-width: 1199.98px) {
    .shadcn-ui .restaurant-hero-copy h1 { font-size: 3.35rem !important; }
    .shadcn-ui .restaurant-filter-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .shadcn-ui .restaurant-field { grid-column: span 3; }
    .shadcn-ui .restaurant-field-wide { grid-column: span 6; }
}
@media (max-width: 991.98px) {
    .shadcn-ui .restaurant-hero { padding: 3.5rem 0 2rem !important; }
    .shadcn-ui .restaurant-hero-grid { grid-template-columns: 1fr; }
    .shadcn-ui .restaurant-hero-copy { max-width: 100%; }
    .shadcn-ui .restaurant-hero-copy h1 { max-width: 13ch; font-size: 3rem !important; }
    .shadcn-ui .restaurant-filter-head,
    .shadcn-ui .restaurant-results-head { align-items: flex-start; flex-direction: column; }
    .shadcn-ui .restaurant-filter-head p,
    .shadcn-ui .restaurant-results-head p { max-width: 100%; }
    .shadcn-ui .restaurant-active-filters { justify-content: flex-start; max-width: 100%; }
    .shadcn-ui .restaurant-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .shadcn-ui .restaurant-hero { padding: 2.8rem 0 1.5rem !important; }
    .shadcn-ui .restaurant-hero-copy h1 { max-width: 100%; font-size: 2.28rem !important; }
    .shadcn-ui .restaurant-hero-copy p { font-size: .98rem; }
    .shadcn-ui .restaurant-hero-actions,
    .shadcn-ui .restaurant-filter-actions { flex-direction: column; align-items: stretch; }
    .shadcn-ui .restaurant-hero-actions .btn,
    .shadcn-ui .restaurant-filter-actions .btn,
    .shadcn-ui .restaurant-clear-btn { width: 100%; }
    .shadcn-ui .restaurant-stat-grid,
    .shadcn-ui .restaurant-filter-grid,
    .shadcn-ui .restaurant-grid { grid-template-columns: 1fr; }
    .shadcn-ui .restaurant-field,
    .shadcn-ui .restaurant-field-wide { grid-column: auto; }
    .shadcn-ui .restaurant-filter-panel,
    .shadcn-ui .restaurant-hero-card { padding: .85rem; }
    .shadcn-ui .restaurant-filter-head h2,
    .shadcn-ui .restaurant-results-head h2 { font-size: 1.45rem !important; }
    .shadcn-ui .restaurant-card-footer { align-items: stretch; flex-direction: column; }
    .shadcn-ui .restaurant-detail-link { width: 100%; }
    .shadcn-ui .restaurant-cuisine-strip span,
    .shadcn-ui .restaurant-cuisine-strip a { flex: 1 1 calc(50% - .45rem); justify-content: center; text-align: center; }
}
@media (max-width: 420px) {
    .shadcn-ui .restaurant-eyebrow,
    .shadcn-ui .restaurant-section-kicker { width: 100%; justify-content: center; text-align: center; }
    .shadcn-ui .restaurant-hero-card-head,
    .shadcn-ui .restaurant-hero-note { grid-template-columns: 2.35rem minmax(0, 1fr); }
    .shadcn-ui .restaurant-hero-card-head > span,
    .shadcn-ui .restaurant-hero-note i,
    .shadcn-ui .restaurant-empty > span { width: 2.35rem; height: 2.35rem; }
    .shadcn-ui .restaurant-card-body { padding: .82rem; }
    .shadcn-ui .restaurant-page-link { width: 2.25rem; height: 2.25rem; }
    .shadcn-ui .restaurant-cuisine-strip span,
    .shadcn-ui .restaurant-cuisine-strip a { flex-basis: 100%; }
}
/* Cities listing responsive rebuild */
.shadcn-ui .city-page {
    background: var(--background);
    color: var(--foreground);
    overflow-x: hidden;
}
.shadcn-ui .city-page,
.shadcn-ui .city-page * {
    min-width: 0;
}
.shadcn-ui .city-page .city-hero {
    position: relative;
    min-height: auto !important;
    margin: 0 !important;
    padding: 4.5rem 0 2.75rem !important;
    background:
        linear-gradient(180deg, rgba(250, 250, 250, .97) 0%, rgba(255, 255, 255, 1) 58%, rgba(244, 244, 245, .72) 100%) !important;
    border-bottom: 1px solid var(--border) !important;
    color: var(--foreground) !important;
    overflow: hidden !important;
}
.shadcn-ui .city-page .city-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(24, 24, 27, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(24, 24, 27, .045) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, .58), transparent 78%);
}
.shadcn-ui .city-page .city-hero .container,
.shadcn-ui .city-filter-section .container,
.shadcn-ui .city-featured-section .container,
.shadcn-ui .city-results-section .container {
    position: relative;
    z-index: 1;
}
.shadcn-ui .city-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, .75fr);
    gap: 1.4rem;
    align-items: stretch;
}
.shadcn-ui .city-hero-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: 780px;
}
.shadcn-ui .city-eyebrow,
.shadcn-ui .city-section-kicker {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    width: fit-content;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--background);
    color: var(--muted-foreground);
    font-size: .8rem;
    font-weight: 700;
    line-height: 1;
    padding: .48rem .7rem;
    box-shadow: var(--shadow-xs);
}
.shadcn-ui .city-eyebrow i,
.shadcn-ui .city-section-kicker i {
    color: var(--foreground);
}
.shadcn-ui .city-hero-copy h1 {
    margin: 1.1rem 0 .95rem;
    max-width: 13ch;
    color: var(--foreground) !important;
    font-size: 4rem !important;
    font-weight: 850 !important;
    line-height: .98 !important;
    letter-spacing: 0 !important;
}
.shadcn-ui .city-hero-copy p {
    max-width: 660px;
    margin: 0;
    color: var(--muted-foreground) !important;
    font-size: 1.06rem;
    line-height: 1.75;
}
.shadcn-ui .city-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1.35rem;
}
.shadcn-ui .city-hero-btn {
    min-height: 2.8rem;
    border-radius: var(--radius) !important;
    gap: .45rem;
}
.shadcn-ui .city-hero-card,
.shadcn-ui .city-filter-panel,
.shadcn-ui .city-empty {
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, .92);
    box-shadow: var(--shadow-sm);
}
.shadcn-ui .city-hero-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
}
.shadcn-ui .city-hero-card-head {
    display: grid;
    grid-template-columns: 2.65rem minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    padding-bottom: .85rem;
    border-bottom: 1px solid var(--border);
}
.shadcn-ui .city-hero-card-head > span,
.shadcn-ui .city-hero-note i,
.shadcn-ui .city-empty > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.65rem;
    height: 2.65rem;
    border-radius: var(--radius);
    background: var(--primary);
    color: var(--primary-foreground);
}
.shadcn-ui .city-hero-card-head strong {
    display: block;
    color: var(--foreground);
    font-size: .98rem;
    line-height: 1.2;
}
.shadcn-ui .city-hero-card-head small {
    display: block;
    margin-top: .2rem;
    color: var(--muted-foreground);
    font-size: .82rem;
}
.shadcn-ui .city-stat-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .6rem;
}
.shadcn-ui .city-stat-card {
    min-height: 5.35rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--muted);
    padding: .8rem;
}
.shadcn-ui .city-stat-card span {
    display: block;
    color: var(--foreground);
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.1;
    overflow-wrap: anywhere;
}
.shadcn-ui .city-stat-card small {
    display: block;
    margin-top: .35rem;
    color: var(--muted-foreground);
    font-size: .78rem;
    line-height: 1.35;
}
.shadcn-ui .city-hero-note {
    display: grid;
    grid-template-columns: 2.65rem minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    color: var(--muted-foreground);
    font-size: .9rem;
    line-height: 1.5;
}
.shadcn-ui .city-filter-section,
.shadcn-ui .city-featured-section,
.shadcn-ui .city-results-section {
    background: var(--background) !important;
}
.shadcn-ui .city-filter-section {
    padding: 1.5rem 0 1.25rem;
}
.shadcn-ui .city-filter-panel {
    padding: 1rem;
}
.shadcn-ui .city-filter-panel.is-loading {
    opacity: .78;
    pointer-events: none;
}
.shadcn-ui .city-filter-head,
.shadcn-ui .city-section-head,
.shadcn-ui .city-results-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
}
.shadcn-ui .city-filter-head {
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border);
}
.shadcn-ui .city-section-head {
    margin-bottom: 1rem;
}
.shadcn-ui .city-filter-head h2,
.shadcn-ui .city-section-head h2,
.shadcn-ui .city-results-head h2 {
    margin: .65rem 0 0;
    color: var(--foreground) !important;
    font-size: 1.7rem !important;
    font-weight: 780 !important;
    line-height: 1.15 !important;
}
.shadcn-ui .city-filter-head p,
.shadcn-ui .city-section-head p,
.shadcn-ui .city-results-head p {
    max-width: 460px;
    margin: 0;
    color: var(--muted-foreground) !important;
    font-size: .95rem;
    line-height: 1.55;
}
.shadcn-ui .city-filter-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: .75rem;
    margin-top: 1rem;
}
.shadcn-ui .city-field,
.shadcn-ui .city-switch-field {
    display: flex;
    flex-direction: column;
    grid-column: span 2;
    gap: .38rem;
}
.shadcn-ui .city-field-wide {
    grid-column: span 5;
}
.shadcn-ui .city-switch-field {
    grid-column: span 3;
}
.shadcn-ui .city-field > span,
.shadcn-ui .city-switch-field > span {
    color: var(--foreground);
    font-size: .8rem;
    font-weight: 700;
    line-height: 1.25;
}
.shadcn-ui .city-input-wrap {
    position: relative;
}
.shadcn-ui .city-input-wrap i {
    position: absolute;
    left: .8rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--muted-foreground);
    pointer-events: none;
}
.shadcn-ui .city-input-wrap input {
    padding-left: 2.35rem !important;
}
.shadcn-ui .city-field input,
.shadcn-ui .city-field select {
    width: 100%;
    min-height: 2.75rem;
    border: 1px solid var(--input) !important;
    border-radius: var(--radius) !important;
    background: var(--background) !important;
    color: var(--foreground) !important;
    font-size: .92rem !important;
    line-height: 1.3;
    box-shadow: none !important;
}
.shadcn-ui .city-field input:focus,
.shadcn-ui .city-field select:focus {
    border-color: var(--ring) !important;
    box-shadow: 0 0 0 3px rgba(24, 24, 27, .1) !important;
    outline: none !important;
}
.shadcn-ui .city-switch-control {
    cursor: pointer;
    display: block;
    margin: 0;
}
.shadcn-ui .city-switch-control input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.shadcn-ui .city-switch-control span {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 2.75rem;
    width: 100%;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--background);
    color: var(--foreground);
    font-size: .9rem;
    font-weight: 800;
    padding: 0 .75rem;
}
.shadcn-ui .city-switch-control input:checked + span {
    background: var(--primary);
    border-color: var(--primary);
    color: var(--primary-foreground);
}
.shadcn-ui .city-filter-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .6rem;
    margin-top: 1rem;
}
.shadcn-ui .city-filter-actions .btn {
    min-height: 2.75rem;
    border-radius: var(--radius) !important;
    gap: .45rem;
}
.shadcn-ui .city-clear-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .42rem;
    min-height: 2.75rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--background);
    color: var(--foreground);
    font-size: .9rem;
    font-weight: 700;
    padding: 0 .9rem;
    text-decoration: none;
}
.shadcn-ui .city-clear-btn:hover {
    background: var(--muted);
    color: var(--foreground);
}
.shadcn-ui .city-featured-section {
    padding: 1.25rem 0 1.5rem;
}
.shadcn-ui .city-featured-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .75rem;
}
.shadcn-ui .city-featured-card {
    position: relative;
    display: block;
    min-height: 14.5rem;
    aspect-ratio: 3 / 4;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--muted);
    overflow: hidden;
    text-decoration: none;
    box-shadow: var(--shadow-xs);
}
.shadcn-ui .city-featured-card img,
.shadcn-ui .city-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.shadcn-ui .city-featured-fallback,
.shadcn-ui .city-media-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--muted-foreground);
    font-size: 2rem;
}
.shadcn-ui .city-featured-shade,
.shadcn-ui .city-media-shade {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 55%;
    background: linear-gradient(180deg, transparent, rgba(9, 9, 11, .64));
    pointer-events: none;
}
.shadcn-ui .city-featured-copy {
    position: absolute;
    left: .75rem;
    right: .75rem;
    bottom: .75rem;
    display: flex;
    flex-direction: column;
    gap: .2rem;
    color: #fff;
}
.shadcn-ui .city-featured-copy strong {
    font-size: 1rem;
    line-height: 1.15;
    overflow-wrap: anywhere;
}
.shadcn-ui .city-featured-copy small {
    color: rgba(255, 255, 255, .82);
    font-size: .78rem;
    font-weight: 700;
}
.shadcn-ui .city-results-section {
    padding: 1.5rem 0 4rem;
}
.shadcn-ui .city-results-head {
    margin-bottom: 1rem;
}
.shadcn-ui .city-active-filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .45rem;
    max-width: 540px;
}
.shadcn-ui .city-active-filters span,
.shadcn-ui .city-active-filters a {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--secondary);
    color: var(--secondary-foreground);
    font-size: .78rem;
    font-weight: 700;
    padding: .2rem .65rem;
    text-decoration: none;
}
.shadcn-ui .city-active-filters a {
    background: var(--primary);
    color: var(--primary-foreground);
    border-color: var(--primary);
}
.shadcn-ui .city-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}
.shadcn-ui .city-list-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--card);
    color: var(--card-foreground);
    box-shadow: var(--shadow-xs);
    overflow: hidden;
}
.shadcn-ui .city-card-media {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    background: var(--muted);
    overflow: hidden;
}
.shadcn-ui .city-card-badges {
    position: absolute;
    left: .7rem;
    right: .7rem;
    bottom: .7rem;
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}
.shadcn-ui .city-card-badges span {
    display: inline-flex;
    align-items: center;
    gap: .32rem;
    min-height: 1.85rem;
    max-width: 100%;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 999px;
    background: rgba(9, 9, 11, .72);
    color: #fff;
    font-size: .76rem;
    font-weight: 800;
    padding: .15rem .55rem;
    backdrop-filter: blur(12px);
    overflow-wrap: anywhere;
}
.shadcn-ui .city-card-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: .95rem;
}
.shadcn-ui .city-card-body h3 {
    margin: 0;
    color: var(--foreground) !important;
    font-size: 1.08rem !important;
    font-weight: 780 !important;
    line-height: 1.28 !important;
}
.shadcn-ui .city-card-body h3 a {
    color: inherit;
    text-decoration: none;
}
.shadcn-ui .city-card-body h3 a:hover {
    text-decoration: underline;
}
.shadcn-ui .city-desc {
    margin: .65rem 0 0;
    color: var(--muted-foreground) !important;
    font-size: .9rem;
    line-height: 1.6;
}
.shadcn-ui .city-card-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .5rem;
    margin-top: .9rem;
}
.shadcn-ui .city-card-stats span {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 3.7rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--muted);
    padding: .55rem;
}
.shadcn-ui .city-card-stats strong {
    color: var(--foreground);
    font-size: 1.02rem;
    line-height: 1.1;
    overflow-wrap: anywhere;
}
.shadcn-ui .city-card-stats small {
    margin-top: .2rem;
    color: var(--muted-foreground);
    font-size: .72rem;
    font-weight: 750;
}
.shadcn-ui .city-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    margin-top: auto;
    padding-top: 1rem;
}
.shadcn-ui .city-meta-note {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: var(--muted-foreground);
    font-size: .8rem;
    font-weight: 700;
}
.shadcn-ui .city-detail-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    min-height: 2.35rem;
    border: 1px solid var(--primary);
    border-radius: var(--radius);
    background: var(--primary);
    color: var(--primary-foreground);
    font-size: .86rem;
    font-weight: 800;
    padding: 0 .8rem;
    text-decoration: none;
    white-space: nowrap;
}
.shadcn-ui .city-detail-link:hover {
    color: var(--primary-foreground);
    filter: brightness(.96);
}
.shadcn-ui .city-pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .45rem;
    margin-top: 1.5rem;
}
.shadcn-ui .city-page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.45rem;
    height: 2.45rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--background);
    color: var(--foreground);
    font-size: .9rem;
    font-weight: 800;
    text-decoration: none;
}
.shadcn-ui .city-page-link.is-active {
    background: var(--primary);
    color: var(--primary-foreground);
    border-color: var(--primary);
}
.shadcn-ui .city-page-link.is-disabled {
    opacity: .45;
    cursor: not-allowed;
}
.shadcn-ui .city-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2.5rem 1rem;
}
.shadcn-ui .city-empty > span {
    margin-bottom: .8rem;
}
.shadcn-ui .city-empty h3 {
    margin: 0;
    color: var(--foreground) !important;
    font-size: 1.45rem !important;
}
.shadcn-ui .city-empty p {
    max-width: 540px;
    margin: .55rem 0 1rem;
    color: var(--muted-foreground) !important;
    line-height: 1.6;
}
@media (max-width: 1199.98px) {
    .shadcn-ui .city-hero-copy h1 { font-size: 3.35rem !important; }
    .shadcn-ui .city-filter-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .shadcn-ui .city-field { grid-column: span 3; }
    .shadcn-ui .city-field-wide { grid-column: span 6; }
    .shadcn-ui .city-switch-field { grid-column: span 3; }
    .shadcn-ui .city-featured-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 991.98px) {
    .shadcn-ui .city-page .city-hero { padding: 3.5rem 0 2rem !important; }
    .shadcn-ui .city-hero-grid { grid-template-columns: 1fr; }
    .shadcn-ui .city-hero-copy { max-width: 100%; }
    .shadcn-ui .city-hero-copy h1 { max-width: 13ch; font-size: 3rem !important; }
    .shadcn-ui .city-filter-head,
    .shadcn-ui .city-section-head,
    .shadcn-ui .city-results-head { align-items: flex-start; flex-direction: column; }
    .shadcn-ui .city-filter-head p,
    .shadcn-ui .city-section-head p,
    .shadcn-ui .city-results-head p { max-width: 100%; }
    .shadcn-ui .city-active-filters { justify-content: flex-start; max-width: 100%; }
    .shadcn-ui .city-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .shadcn-ui .city-page .city-hero { padding: 2.8rem 0 1.5rem !important; }
    .shadcn-ui .city-hero-copy h1 { max-width: 100%; font-size: 2.28rem !important; }
    .shadcn-ui .city-hero-copy p { font-size: .98rem; }
    .shadcn-ui .city-hero-actions,
    .shadcn-ui .city-filter-actions { flex-direction: column; align-items: stretch; }
    .shadcn-ui .city-hero-actions .btn,
    .shadcn-ui .city-filter-actions .btn,
    .shadcn-ui .city-clear-btn { width: 100%; }
    .shadcn-ui .city-stat-grid,
    .shadcn-ui .city-filter-grid,
    .shadcn-ui .city-featured-grid,
    .shadcn-ui .city-grid { grid-template-columns: 1fr; }
    .shadcn-ui .city-field,
    .shadcn-ui .city-field-wide,
    .shadcn-ui .city-switch-field { grid-column: auto; }
    .shadcn-ui .city-filter-panel,
    .shadcn-ui .city-hero-card { padding: .85rem; }
    .shadcn-ui .city-filter-head h2,
    .shadcn-ui .city-section-head h2,
    .shadcn-ui .city-results-head h2 { font-size: 1.45rem !important; }
    .shadcn-ui .city-card-footer { align-items: stretch; flex-direction: column; }
    .shadcn-ui .city-detail-link { width: 100%; }
}
@media (max-width: 420px) {
    .shadcn-ui .city-eyebrow,
    .shadcn-ui .city-section-kicker { width: 100%; justify-content: center; text-align: center; }
    .shadcn-ui .city-hero-card-head,
    .shadcn-ui .city-hero-note { grid-template-columns: 2.35rem minmax(0, 1fr); }
    .shadcn-ui .city-hero-card-head > span,
    .shadcn-ui .city-hero-note i,
    .shadcn-ui .city-empty > span { width: 2.35rem; height: 2.35rem; }
    .shadcn-ui .city-card-body { padding: .82rem; }
    .shadcn-ui .city-card-stats { grid-template-columns: 1fr; }
    .shadcn-ui .city-page-link { width: 2.25rem; height: 2.25rem; }
}
/* Blog listing responsive rebuild */
.shadcn-ui .blog-page {
    background: var(--background);
    color: var(--foreground);
    overflow-x: hidden;
}
.shadcn-ui .blog-page,
.shadcn-ui .blog-page * {
    min-width: 0;
}
.shadcn-ui .blog-page .blog-hero {
    position: relative;
    min-height: auto !important;
    margin: 0 !important;
    padding: 4.5rem 0 2.75rem !important;
    background:
        linear-gradient(180deg, rgba(250, 250, 250, .97) 0%, rgba(255, 255, 255, 1) 58%, rgba(244, 244, 245, .72) 100%) !important;
    border-bottom: 1px solid var(--border) !important;
    color: var(--foreground) !important;
    overflow: hidden !important;
}
.shadcn-ui .blog-page .blog-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(24, 24, 27, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(24, 24, 27, .045) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, .58), transparent 78%);
}
.shadcn-ui .blog-page .blog-hero .container,
.shadcn-ui .blog-filter-section .container,
.shadcn-ui .blog-featured-section .container,
.shadcn-ui .blog-results-section .container,
.shadcn-ui .blog-cta-section .container {
    position: relative;
    z-index: 1;
}
.shadcn-ui .blog-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, .75fr);
    gap: 1.4rem;
    align-items: stretch;
}
.shadcn-ui .blog-hero-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: 800px;
}
.shadcn-ui .blog-eyebrow,
.shadcn-ui .blog-section-kicker {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    width: fit-content;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--background);
    color: var(--muted-foreground);
    font-size: .8rem;
    font-weight: 700;
    line-height: 1;
    padding: .48rem .7rem;
    box-shadow: var(--shadow-xs);
}
.shadcn-ui .blog-eyebrow i,
.shadcn-ui .blog-section-kicker i {
    color: var(--foreground);
}
.shadcn-ui .blog-hero-copy h1 {
    margin: 1.1rem 0 .95rem;
    max-width: 14ch;
    color: var(--foreground) !important;
    font-size: 4rem !important;
    font-weight: 850 !important;
    line-height: .98 !important;
    letter-spacing: 0 !important;
}
.shadcn-ui .blog-hero-copy p {
    max-width: 680px;
    margin: 0;
    color: var(--muted-foreground) !important;
    font-size: 1.06rem;
    line-height: 1.75;
}
.shadcn-ui .blog-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1.35rem;
}
.shadcn-ui .blog-hero-btn {
    min-height: 2.8rem;
    border-radius: var(--radius) !important;
    gap: .45rem;
}
.shadcn-ui .blog-hero-card,
.shadcn-ui .blog-filter-panel,
.shadcn-ui .blog-empty,
.shadcn-ui .blog-side-panel,
.shadcn-ui .blog-cta-panel {
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, .92);
    box-shadow: var(--shadow-sm);
}
.shadcn-ui .blog-hero-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
}
.shadcn-ui .blog-hero-card-head {
    display: grid;
    grid-template-columns: 2.65rem minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    padding-bottom: .85rem;
    border-bottom: 1px solid var(--border);
}
.shadcn-ui .blog-hero-card-head > span,
.shadcn-ui .blog-hero-note i,
.shadcn-ui .blog-empty > span,
.shadcn-ui .blog-side-head span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.65rem;
    height: 2.65rem;
    border-radius: var(--radius);
    background: var(--primary);
    color: var(--primary-foreground);
}
.shadcn-ui .blog-hero-card-head strong {
    display: block;
    color: var(--foreground);
    font-size: .98rem;
    line-height: 1.2;
}
.shadcn-ui .blog-hero-card-head small {
    display: block;
    margin-top: .2rem;
    color: var(--muted-foreground);
    font-size: .82rem;
}
.shadcn-ui .blog-stat-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .6rem;
}
.shadcn-ui .blog-stat-card {
    min-height: 5.35rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--muted);
    padding: .8rem;
}
.shadcn-ui .blog-stat-card span {
    display: block;
    color: var(--foreground);
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.1;
    overflow-wrap: anywhere;
}
.shadcn-ui .blog-stat-card small {
    display: block;
    margin-top: .35rem;
    color: var(--muted-foreground);
    font-size: .78rem;
    line-height: 1.35;
}
.shadcn-ui .blog-hero-note {
    display: grid;
    grid-template-columns: 2.65rem minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    color: var(--muted-foreground);
    font-size: .9rem;
    line-height: 1.5;
}
.shadcn-ui .blog-filter-section,
.shadcn-ui .blog-featured-section,
.shadcn-ui .blog-results-section,
.shadcn-ui .blog-cta-section {
    background: var(--background) !important;
}
.shadcn-ui .blog-filter-section {
    padding: 1.5rem 0 1.25rem;
}
.shadcn-ui .blog-filter-panel {
    padding: 1rem;
}
.shadcn-ui .blog-filter-panel.is-loading {
    opacity: .78;
    pointer-events: none;
}
.shadcn-ui .blog-filter-head,
.shadcn-ui .blog-section-head,
.shadcn-ui .blog-results-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
}
.shadcn-ui .blog-filter-head {
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border);
}
.shadcn-ui .blog-section-head,
.shadcn-ui .blog-results-head {
    margin-bottom: 1rem;
}
.shadcn-ui .blog-filter-head h2,
.shadcn-ui .blog-section-head h2,
.shadcn-ui .blog-results-head h2,
.shadcn-ui .blog-cta-panel h2 {
    margin: .65rem 0 0;
    color: var(--foreground) !important;
    font-size: 1.7rem !important;
    font-weight: 780 !important;
    line-height: 1.15 !important;
}
.shadcn-ui .blog-filter-head p,
.shadcn-ui .blog-section-head p,
.shadcn-ui .blog-results-head p,
.shadcn-ui .blog-cta-panel p {
    max-width: 470px;
    margin: 0;
    color: var(--muted-foreground) !important;
    font-size: .95rem;
    line-height: 1.55;
}
.shadcn-ui .blog-filter-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: .75rem;
    margin-top: 1rem;
}
.shadcn-ui .blog-field {
    display: flex;
    flex-direction: column;
    grid-column: span 3;
    gap: .38rem;
}
.shadcn-ui .blog-field-wide {
    grid-column: span 6;
}
.shadcn-ui .blog-field span {
    color: var(--foreground);
    font-size: .8rem;
    font-weight: 700;
    line-height: 1.25;
}
.shadcn-ui .blog-input-wrap {
    position: relative;
}
.shadcn-ui .blog-input-wrap i {
    position: absolute;
    left: .8rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--muted-foreground);
    pointer-events: none;
}
.shadcn-ui .blog-input-wrap input {
    padding-left: 2.35rem !important;
}
.shadcn-ui .blog-field input,
.shadcn-ui .blog-field select,
.shadcn-ui .blog-newsletter-form input {
    width: 100%;
    min-height: 2.75rem;
    border: 1px solid var(--input) !important;
    border-radius: var(--radius) !important;
    background: var(--background) !important;
    color: var(--foreground) !important;
    font-size: .92rem !important;
    line-height: 1.3;
    box-shadow: none !important;
}
.shadcn-ui .blog-field input:focus,
.shadcn-ui .blog-field select:focus,
.shadcn-ui .blog-newsletter-form input:focus {
    border-color: var(--ring) !important;
    box-shadow: 0 0 0 3px rgba(24, 24, 27, .1) !important;
    outline: none !important;
}
.shadcn-ui .blog-filter-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .6rem;
    margin-top: 1rem;
}
.shadcn-ui .blog-filter-actions .btn {
    min-height: 2.75rem;
    border-radius: var(--radius) !important;
    gap: .45rem;
}
.shadcn-ui .blog-clear-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .42rem;
    min-height: 2.75rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--background);
    color: var(--foreground);
    font-size: .9rem;
    font-weight: 700;
    padding: 0 .9rem;
    text-decoration: none;
}
.shadcn-ui .blog-clear-btn:hover {
    background: var(--muted);
    color: var(--foreground);
}
.shadcn-ui .blog-category-strip,
.shadcn-ui .blog-active-filters,
.shadcn-ui .blog-side-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}
.shadcn-ui .blog-category-strip {
    align-items: center;
    margin-top: .8rem;
}
.shadcn-ui .blog-category-strip span,
.shadcn-ui .blog-category-strip a,
.shadcn-ui .blog-active-filters span,
.shadcn-ui .blog-active-filters a,
.shadcn-ui .blog-side-chips a {
    display: inline-flex;
    align-items: center;
    gap: .34rem;
    min-height: 2rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--background);
    color: var(--muted-foreground);
    font-size: .78rem;
    font-weight: 750;
    padding: .2rem .65rem;
    text-decoration: none;
}
.shadcn-ui .blog-category-strip span {
    background: var(--muted);
    color: var(--foreground);
}
.shadcn-ui .blog-category-strip a:hover,
.shadcn-ui .blog-category-strip a.is-active,
.shadcn-ui .blog-active-filters a {
    background: var(--primary);
    border-color: var(--primary);
    color: var(--primary-foreground);
}
.shadcn-ui .blog-featured-section {
    padding: 1.25rem 0 1.5rem;
}
.shadcn-ui .blog-featured-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .9rem;
}
.shadcn-ui .blog-featured-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--card);
    box-shadow: var(--shadow-xs);
    overflow: hidden;
}
.shadcn-ui .blog-featured-card.is-large {
    grid-column: span 2;
    grid-row: span 2;
}
.shadcn-ui .blog-featured-media,
.shadcn-ui .blog-card-media {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    background: var(--muted);
    overflow: hidden;
}
.shadcn-ui .blog-featured-card.is-large .blog-featured-media {
    aspect-ratio: 16 / 9;
}
.shadcn-ui .blog-featured-media img,
.shadcn-ui .blog-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.shadcn-ui .blog-featured-fallback,
.shadcn-ui .blog-media-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--muted-foreground);
    font-size: 2rem;
}
.shadcn-ui .blog-featured-shade {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 45%;
    background: linear-gradient(180deg, transparent, rgba(9, 9, 11, .5));
    pointer-events: none;
}
.shadcn-ui .blog-featured-copy,
.shadcn-ui .blog-card-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: .95rem;
}
.shadcn-ui .blog-featured-copy > span,
.shadcn-ui .blog-card-badge {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    align-items: center;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--muted);
    color: var(--foreground);
    font-size: .74rem;
    font-weight: 800;
    padding: .22rem .58rem;
    overflow-wrap: anywhere;
}
.shadcn-ui .blog-card-badge {
    position: absolute;
    left: .65rem;
    bottom: .65rem;
    background: rgba(9, 9, 11, .72);
    border-color: rgba(255, 255, 255, .25);
    color: #fff;
    backdrop-filter: blur(12px);
}
.shadcn-ui .blog-featured-copy h3,
.shadcn-ui .blog-card-body h3 {
    margin: .65rem 0 0;
    color: var(--foreground) !important;
    font-size: 1.08rem !important;
    font-weight: 780 !important;
    line-height: 1.28 !important;
}
.shadcn-ui .blog-featured-card.is-large .blog-featured-copy h3 {
    font-size: 1.35rem !important;
}
.shadcn-ui .blog-featured-copy h3 a,
.shadcn-ui .blog-card-body h3 a {
    color: inherit;
    text-decoration: none;
}
.shadcn-ui .blog-featured-copy h3 a:hover,
.shadcn-ui .blog-card-body h3 a:hover {
    text-decoration: underline;
}
.shadcn-ui .blog-featured-copy p,
.shadcn-ui .blog-card-body p {
    margin: .58rem 0 0;
    color: var(--muted-foreground) !important;
    font-size: .9rem;
    line-height: 1.6;
}
.shadcn-ui .blog-featured-copy small {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-top: auto;
    padding-top: .85rem;
    color: var(--muted-foreground);
    font-size: .8rem;
    font-weight: 700;
}
.shadcn-ui .blog-results-section {
    padding: 1.5rem 0 3rem;
}
.shadcn-ui .blog-results-head {
    margin-bottom: 1rem;
}
.shadcn-ui .blog-active-filters {
    justify-content: flex-end;
    max-width: 540px;
}
.shadcn-ui .blog-active-filters span {
    background: var(--secondary);
    color: var(--secondary-foreground);
}
.shadcn-ui .blog-content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .34fr);
    gap: 1rem;
    align-items: start;
}
.shadcn-ui .blog-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.shadcn-ui .blog-list-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--card);
    color: var(--card-foreground);
    box-shadow: var(--shadow-xs);
    overflow: hidden;
}
.shadcn-ui .blog-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}
.shadcn-ui .blog-card-meta span {
    display: inline-flex;
    align-items: center;
    gap: .32rem;
    min-height: 1.75rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--muted);
    color: var(--muted-foreground);
    font-size: .75rem;
    font-weight: 750;
    padding: .1rem .5rem;
}
.shadcn-ui .blog-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    margin-top: auto;
    padding-top: 1rem;
}
.shadcn-ui .blog-author {
    display: grid;
    grid-template-columns: 2.2rem minmax(0, 1fr);
    align-items: center;
    gap: .55rem;
}
.shadcn-ui .blog-author span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 999px;
    background: var(--muted);
    color: var(--foreground);
    font-size: .82rem;
    font-weight: 850;
}
.shadcn-ui .blog-author small {
    color: var(--muted-foreground);
    font-size: .8rem;
    font-weight: 750;
    overflow-wrap: anywhere;
}
.shadcn-ui .blog-detail-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    min-height: 2.35rem;
    border: 1px solid var(--primary);
    border-radius: var(--radius);
    background: var(--primary);
    color: var(--primary-foreground);
    font-size: .86rem;
    font-weight: 800;
    padding: 0 .8rem;
    text-decoration: none;
    white-space: nowrap;
}
.shadcn-ui .blog-detail-link:hover {
    color: var(--primary-foreground);
    filter: brightness(.96);
}
.shadcn-ui .blog-side-column {
    display: grid;
    gap: .8rem;
    position: sticky;
    top: 5.25rem;
}
.shadcn-ui .blog-side-panel {
    padding: .9rem;
}
.shadcn-ui .blog-side-head {
    display: grid;
    grid-template-columns: 2.4rem minmax(0, 1fr);
    align-items: center;
    gap: .65rem;
    padding-bottom: .7rem;
    border-bottom: 1px solid var(--border);
}
.shadcn-ui .blog-side-head span {
    width: 2.4rem;
    height: 2.4rem;
}
.shadcn-ui .blog-side-head strong {
    color: var(--foreground);
    font-size: .95rem;
}
.shadcn-ui .blog-side-list {
    display: grid;
    gap: .55rem;
    margin-top: .7rem;
}
.shadcn-ui .blog-side-list a {
    display: grid;
    gap: .2rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--muted);
    color: var(--foreground);
    padding: .65rem;
    text-decoration: none;
}
.shadcn-ui .blog-side-list strong {
    font-size: .87rem;
    line-height: 1.35;
}
.shadcn-ui .blog-side-list small {
    color: var(--muted-foreground);
    font-size: .76rem;
    font-weight: 700;
}
.shadcn-ui .blog-side-chips {
    margin-top: .7rem;
}
.shadcn-ui .blog-side-chips a:hover {
    background: var(--primary);
    border-color: var(--primary);
    color: var(--primary-foreground);
}
.shadcn-ui .blog-pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .45rem;
    margin-top: 1.5rem;
}
.shadcn-ui .blog-page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.45rem;
    height: 2.45rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--background);
    color: var(--foreground);
    font-size: .9rem;
    font-weight: 800;
    text-decoration: none;
}
.shadcn-ui .blog-page-link.is-active {
    background: var(--primary);
    color: var(--primary-foreground);
    border-color: var(--primary);
}
.shadcn-ui .blog-page-link.is-disabled {
    opacity: .45;
    cursor: not-allowed;
}
.shadcn-ui .blog-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2.5rem 1rem;
}
.shadcn-ui .blog-empty > span {
    margin-bottom: .8rem;
}
.shadcn-ui .blog-empty h3 {
    margin: 0;
    color: var(--foreground) !important;
    font-size: 1.45rem !important;
}
.shadcn-ui .blog-empty p {
    max-width: 540px;
    margin: .55rem 0 1rem;
    color: var(--muted-foreground) !important;
    line-height: 1.6;
}
.shadcn-ui .blog-cta-section {
    padding: 0 0 4rem;
}
.shadcn-ui .blog-cta-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .65fr);
    gap: 1rem;
    align-items: center;
    padding: 1.25rem;
}
.shadcn-ui .blog-newsletter-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .55rem;
}
.shadcn-ui .blog-newsletter-form button {
    min-height: 2.75rem;
    border-radius: var(--radius) !important;
}
@media (max-width: 1199.98px) {
    .shadcn-ui .blog-hero-copy h1 { font-size: 3.35rem !important; }
    .shadcn-ui .blog-featured-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .shadcn-ui .blog-featured-card.is-large { grid-column: span 2; }
    .shadcn-ui .blog-content-grid { grid-template-columns: minmax(0, 1fr) minmax(260px, .42fr); }
}
@media (max-width: 991.98px) {
    .shadcn-ui .blog-page .blog-hero { padding: 3.5rem 0 2rem !important; }
    .shadcn-ui .blog-hero-grid,
    .shadcn-ui .blog-content-grid,
    .shadcn-ui .blog-cta-panel { grid-template-columns: 1fr; }
    .shadcn-ui .blog-hero-copy { max-width: 100%; }
    .shadcn-ui .blog-hero-copy h1 { max-width: 14ch; font-size: 3rem !important; }
    .shadcn-ui .blog-filter-head,
    .shadcn-ui .blog-section-head,
    .shadcn-ui .blog-results-head { align-items: flex-start; flex-direction: column; }
    .shadcn-ui .blog-filter-head p,
    .shadcn-ui .blog-section-head p,
    .shadcn-ui .blog-results-head p { max-width: 100%; }
    .shadcn-ui .blog-active-filters { justify-content: flex-start; max-width: 100%; }
    .shadcn-ui .blog-side-column { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .shadcn-ui .blog-page .blog-hero { padding: 2.8rem 0 1.5rem !important; }
    .shadcn-ui .blog-hero-copy h1 { max-width: 100%; font-size: 2.28rem !important; }
    .shadcn-ui .blog-hero-copy p { font-size: .98rem; }
    .shadcn-ui .blog-hero-actions,
    .shadcn-ui .blog-filter-actions { flex-direction: column; align-items: stretch; }
    .shadcn-ui .blog-hero-actions .btn,
    .shadcn-ui .blog-filter-actions .btn,
    .shadcn-ui .blog-clear-btn { width: 100%; }
    .shadcn-ui .blog-stat-grid,
    .shadcn-ui .blog-filter-grid,
    .shadcn-ui .blog-featured-grid,
    .shadcn-ui .blog-grid,
    .shadcn-ui .blog-side-column { grid-template-columns: 1fr; }
    .shadcn-ui .blog-field,
    .shadcn-ui .blog-field-wide { grid-column: auto; }
    .shadcn-ui .blog-featured-card.is-large { grid-column: auto; grid-row: auto; }
    .shadcn-ui .blog-filter-panel,
    .shadcn-ui .blog-hero-card,
    .shadcn-ui .blog-side-panel { padding: .85rem; }
    .shadcn-ui .blog-filter-head h2,
    .shadcn-ui .blog-section-head h2,
    .shadcn-ui .blog-results-head h2,
    .shadcn-ui .blog-cta-panel h2 { font-size: 1.45rem !important; }
    .shadcn-ui .blog-card-footer { align-items: stretch; flex-direction: column; }
    .shadcn-ui .blog-detail-link { width: 100%; }
    .shadcn-ui .blog-category-strip span,
    .shadcn-ui .blog-category-strip a { flex: 1 1 calc(50% - .45rem); justify-content: center; text-align: center; }
    .shadcn-ui .blog-newsletter-form { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
    .shadcn-ui .blog-eyebrow,
    .shadcn-ui .blog-section-kicker { width: 100%; justify-content: center; text-align: center; }
    .shadcn-ui .blog-hero-card-head,
    .shadcn-ui .blog-hero-note { grid-template-columns: 2.35rem minmax(0, 1fr); }
    .shadcn-ui .blog-hero-card-head > span,
    .shadcn-ui .blog-hero-note i,
    .shadcn-ui .blog-empty > span { width: 2.35rem; height: 2.35rem; }
    .shadcn-ui .blog-card-body,
    .shadcn-ui .blog-featured-copy { padding: .82rem; }
    .shadcn-ui .blog-category-strip span,
    .shadcn-ui .blog-category-strip a { flex-basis: 100%; }
    .shadcn-ui .blog-page-link { width: 2.25rem; height: 2.25rem; }
}
/* City detail responsive rebuild */
.shadcn-ui .city-detail-page {
    background: var(--background);
    color: var(--foreground);
    overflow-x: hidden;
}
.shadcn-ui .city-detail-page,
.shadcn-ui .city-detail-page * {
    min-width: 0;
}
.shadcn-ui .city-detail-hero {
    position: relative;
    padding: 4.5rem 0 2.75rem;
    background:
        linear-gradient(180deg, rgba(250, 250, 250, .97) 0%, rgba(255, 255, 255, 1) 58%, rgba(244, 244, 245, .72) 100%);
    border-bottom: 1px solid var(--border);
    overflow: hidden;
}
.shadcn-ui .city-detail-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(24, 24, 27, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(24, 24, 27, .045) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, .58), transparent 78%);
}
.shadcn-ui .city-detail-hero .container,
.shadcn-ui .city-detail-stats .container,
.shadcn-ui .city-detail-body .container {
    position: relative;
    z-index: 1;
}
.shadcn-ui .city-detail-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(340px, .9fr);
    gap: 1.4rem;
    align-items: stretch;
}
.shadcn-ui .city-detail-hero-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: 780px;
}
.shadcn-ui .city-detail-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    margin-bottom: .9rem;
    color: var(--muted-foreground);
    font-size: .82rem;
    font-weight: 700;
}
.shadcn-ui .city-detail-breadcrumb a {
    color: var(--muted-foreground);
    text-decoration: none;
}
.shadcn-ui .city-detail-breadcrumb a:hover {
    color: var(--foreground);
}
.shadcn-ui .city-detail-eyebrow,
.shadcn-ui .city-detail-kicker {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    width: fit-content;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--background);
    color: var(--muted-foreground);
    font-size: .8rem;
    font-weight: 700;
    line-height: 1;
    padding: .48rem .7rem;
    box-shadow: var(--shadow-xs);
}
.shadcn-ui .city-detail-eyebrow i,
.shadcn-ui .city-detail-kicker i {
    color: var(--foreground);
}
.shadcn-ui .city-detail-hero-copy h1 {
    margin: 1.1rem 0 .95rem;
    max-width: 11ch;
    color: var(--foreground) !important;
    font-size: 4rem !important;
    font-weight: 850 !important;
    line-height: .98 !important;
    letter-spacing: 0 !important;
    overflow-wrap: anywhere;
}
.shadcn-ui .city-detail-hero-copy p {
    max-width: 680px;
    margin: 0;
    color: var(--muted-foreground) !important;
    font-size: 1.06rem;
    line-height: 1.75;
}
.shadcn-ui .city-detail-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1.35rem;
}
.shadcn-ui .city-detail-hero-btn {
    min-height: 2.8rem;
    border-radius: var(--radius) !important;
    gap: .45rem;
}
.shadcn-ui .city-detail-hero-card,
.shadcn-ui .city-detail-panel,
.shadcn-ui .city-detail-mini-panel,
.shadcn-ui .city-detail-side-panel {
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, .92);
    box-shadow: var(--shadow-sm);
}
.shadcn-ui .city-detail-hero-card {
    display: flex;
    flex-direction: column;
    gap: .8rem;
    padding: .8rem;
}
.shadcn-ui .city-detail-media {
    position: relative;
    aspect-ratio: 16 / 11;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--muted);
    overflow: hidden;
}
.shadcn-ui .city-detail-media img,
.shadcn-ui .city-detail-gallery-item img,
.shadcn-ui .city-detail-place-media img,
.shadcn-ui .city-detail-related-card img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}
.shadcn-ui .city-detail-media > span,
.shadcn-ui .city-detail-place-media span,
.shadcn-ui .city-detail-related-card > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--muted-foreground);
    font-size: 2rem;
}
.shadcn-ui .city-detail-media::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 50%;
    background: linear-gradient(180deg, transparent, rgba(9, 9, 11, .64));
    pointer-events: none;
}
.shadcn-ui .city-detail-media-badges {
    position: absolute;
    left: .75rem;
    right: .75rem;
    bottom: .75rem;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}
.shadcn-ui .city-detail-media-badges span {
    display: inline-flex;
    align-items: center;
    gap: .34rem;
    min-height: 1.9rem;
    max-width: 100%;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 999px;
    background: rgba(9, 9, 11, .72);
    color: #fff;
    font-size: .78rem;
    font-weight: 800;
    padding: .16rem .6rem;
    backdrop-filter: blur(12px);
    overflow-wrap: anywhere;
}
.shadcn-ui .city-detail-hero-note {
    display: grid;
    grid-template-columns: 2.55rem minmax(0, 1fr);
    gap: .7rem;
    align-items: center;
    color: var(--muted-foreground);
    font-size: .9rem;
    line-height: 1.5;
}
.shadcn-ui .city-detail-hero-note i,
.shadcn-ui .city-detail-stat-card i,
.shadcn-ui .city-detail-mini-panel > span,
.shadcn-ui .city-detail-side-head span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.55rem;
    height: 2.55rem;
    border-radius: var(--radius);
    background: var(--primary);
    color: var(--primary-foreground);
}
.shadcn-ui .city-detail-stats {
    padding: 1.25rem 0;
    background: var(--background);
}
.shadcn-ui .city-detail-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}
.shadcn-ui .city-detail-stat-card {
    display: grid;
    grid-template-columns: 2.55rem minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: center;
    gap: .1rem .7rem;
    min-height: 5.5rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--card);
    padding: .9rem;
    box-shadow: var(--shadow-xs);
}
.shadcn-ui .city-detail-stat-card i {
    grid-row: 1 / span 2;
}
.shadcn-ui .city-detail-stat-card strong {
    color: var(--foreground);
    font-size: 1.25rem;
    line-height: 1.1;
    overflow-wrap: anywhere;
}
.shadcn-ui .city-detail-stat-card span {
    color: var(--muted-foreground);
    font-size: .8rem;
    font-weight: 750;
}
.shadcn-ui .city-detail-body {
    padding: 1rem 0 4rem;
    background: var(--background);
}
.shadcn-ui .city-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(290px, .34fr);
    gap: 1rem;
    align-items: start;
}
.shadcn-ui .city-detail-main {
    display: grid;
    gap: 1rem;
}
.shadcn-ui .city-detail-panel {
    padding: 1rem;
}
.shadcn-ui .city-detail-panel-head {
    margin-bottom: .9rem;
}
.shadcn-ui .city-detail-panel-head.inline {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
}
.shadcn-ui .city-detail-panel-head h2 {
    margin: .65rem 0 0;
    color: var(--foreground) !important;
    font-size: 1.7rem !important;
    font-weight: 780 !important;
    line-height: 1.15 !important;
}
.shadcn-ui .city-detail-lead {
    margin: 0;
    color: var(--muted-foreground) !important;
    font-size: 1rem;
    line-height: 1.75;
}
.shadcn-ui .city-detail-richtext {
    margin-top: 1rem;
    color: var(--foreground);
    line-height: 1.75;
}
.shadcn-ui .city-detail-richtext img,
.shadcn-ui .city-detail-richtext iframe {
    max-width: 100%;
    border-radius: var(--radius);
}
.shadcn-ui .city-detail-info-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}
.shadcn-ui .city-detail-mini-panel {
    display: grid;
    grid-template-columns: 2.55rem minmax(0, 1fr);
    gap: .7rem;
    padding: .9rem;
}
.shadcn-ui .city-detail-mini-panel h3,
.shadcn-ui .city-detail-subtitle {
    margin: 0;
    color: var(--foreground) !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
}
.shadcn-ui .city-detail-mini-panel p {
    margin: .35rem 0 0;
    color: var(--muted-foreground) !important;
    font-size: .9rem;
    line-height: 1.6;
}
.shadcn-ui .city-detail-map-btn,
.shadcn-ui .city-detail-section-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    min-height: 2.25rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--background);
    color: var(--foreground);
    font-size: .84rem;
    font-weight: 800;
    padding: 0 .75rem;
    text-decoration: none;
}
.shadcn-ui .city-detail-map-btn:hover,
.shadcn-ui .city-detail-section-actions a:hover {
    background: var(--muted);
}
.shadcn-ui .city-detail-map-wrap {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
    background: var(--muted);
}
.shadcn-ui .city-detail-map {
    height: 26rem;
    width: 100%;
}
.shadcn-ui .city-detail-panel.is-map-fullscreen {
    position: fixed;
    inset: .75rem;
    z-index: 9999;
    display: flex;
    flex-direction: column;
}
.shadcn-ui .city-detail-panel.is-map-fullscreen .city-detail-map-wrap,
.shadcn-ui .city-detail-panel.is-map-fullscreen .city-detail-map {
    flex: 1 1 auto;
    height: auto;
}
.shadcn-ui .city-detail-gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .6rem;
}
.shadcn-ui .city-detail-gallery-item {
    display: block;
    aspect-ratio: 4 / 3;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--muted);
    overflow: hidden;
}
.shadcn-ui .city-detail-section-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}
.shadcn-ui .city-detail-split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.shadcn-ui .city-detail-subtitle {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .65rem;
}
.shadcn-ui .city-detail-card-grid {
    display: grid;
    gap: .65rem;
}
.shadcn-ui .city-detail-place-card {
    display: grid;
    grid-template-columns: 6rem minmax(0, 1fr);
    gap: .75rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--background);
    padding: .55rem;
}
.shadcn-ui .city-detail-place-media {
    display: block;
    aspect-ratio: 1 / 1;
    border-radius: var(--radius-sm);
    background: var(--muted);
    overflow: hidden;
}
.shadcn-ui .city-detail-place-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.shadcn-ui .city-detail-place-body h4 {
    margin: 0;
    color: var(--foreground) !important;
    font-size: .98rem !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
}
.shadcn-ui .city-detail-place-body h4 a {
    color: inherit;
    text-decoration: none;
}
.shadcn-ui .city-detail-place-body p {
    margin: .35rem 0 0;
    color: var(--muted-foreground) !important;
    font-size: .82rem;
    line-height: 1.45;
}
.shadcn-ui .city-detail-place-body small {
    display: inline-flex;
    align-items: center;
    gap: .32rem;
    margin-top: .5rem;
    color: var(--foreground);
    font-size: .78rem;
    font-weight: 800;
}
.shadcn-ui .city-detail-empty-small {
    border: 1px dashed var(--border);
    border-radius: var(--radius);
    color: var(--muted-foreground);
    background: var(--muted);
    padding: .9rem;
    font-size: .9rem;
    line-height: 1.55;
}
.shadcn-ui .city-detail-review-list {
    display: grid;
    gap: .7rem;
}
.shadcn-ui .city-detail-review-card {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--background);
    padding: .85rem;
}
.shadcn-ui .city-detail-review-head {
    display: grid;
    grid-template-columns: 2.5rem minmax(0, 1fr) auto;
    gap: .65rem;
    align-items: center;
}
.shadcn-ui .city-detail-review-head > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 999px;
    background: var(--primary);
    color: var(--primary-foreground);
    font-weight: 850;
}
.shadcn-ui .city-detail-review-head strong {
    display: block;
    color: var(--foreground);
    font-size: .92rem;
}
.shadcn-ui .city-detail-review-head small {
    color: var(--muted-foreground);
    font-size: .78rem;
    font-weight: 700;
}
.shadcn-ui .city-detail-review-head em {
    display: inline-flex;
    align-items: center;
    gap: .28rem;
    color: var(--foreground);
    font-size: .8rem;
    font-style: normal;
    font-weight: 850;
}
.shadcn-ui .city-detail-review-card p {
    margin: .75rem 0 0;
    color: var(--muted-foreground) !important;
    line-height: 1.65;
}
.shadcn-ui .city-detail-review-form {
    display: grid;
    gap: .75rem;
    margin-top: .9rem;
    border-top: 1px solid var(--border);
    padding-top: .9rem;
}
.shadcn-ui .city-detail-review-form label {
    display: grid;
    gap: .35rem;
}
.shadcn-ui .city-detail-review-form label > span {
    color: var(--foreground);
    font-size: .82rem;
    font-weight: 800;
}
.shadcn-ui .city-detail-review-form select,
.shadcn-ui .city-detail-review-form textarea {
    width: 100%;
    border: 1px solid var(--input) !important;
    border-radius: var(--radius) !important;
    background: var(--background) !important;
    color: var(--foreground) !important;
    padding: .75rem !important;
}
.shadcn-ui .city-detail-related-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}
.shadcn-ui .city-detail-related-card {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--muted);
    color: #fff;
    overflow: hidden;
    text-decoration: none;
}
.shadcn-ui .city-detail-related-card::after {
    content: "";
    position: absolute;
    inset: auto 0 0 0;
    height: 55%;
    background: linear-gradient(180deg, transparent, rgba(9, 9, 11, .68));
}
.shadcn-ui .city-detail-related-card strong {
    position: absolute;
    left: .65rem;
    right: .65rem;
    bottom: .65rem;
    z-index: 1;
    color: #fff;
    font-size: .92rem;
    line-height: 1.2;
    overflow-wrap: anywhere;
}
.shadcn-ui .city-detail-sidebar {
    display: grid;
    gap: .8rem;
    position: sticky;
    top: 5.25rem;
}
.shadcn-ui .city-detail-side-panel {
    padding: .9rem;
}
.shadcn-ui .city-detail-side-head {
    display: grid;
    grid-template-columns: 2.4rem minmax(0, 1fr);
    align-items: center;
    gap: .65rem;
    padding-bottom: .7rem;
    border-bottom: 1px solid var(--border);
}
.shadcn-ui .city-detail-side-head span {
    width: 2.4rem;
    height: 2.4rem;
}
.shadcn-ui .city-detail-side-head strong {
    color: var(--foreground);
    font-size: .95rem;
}
.shadcn-ui .city-detail-info-list {
    display: grid;
    gap: .55rem;
    margin-top: .7rem;
}
.shadcn-ui .city-detail-info-list a,
.shadcn-ui .city-detail-info-list div,
.shadcn-ui .city-detail-share-grid a {
    display: grid;
    grid-template-columns: 2.2rem minmax(0, 1fr);
    align-items: center;
    gap: .55rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--muted);
    color: var(--foreground);
    padding: .62rem;
    text-decoration: none;
}
.shadcn-ui .city-detail-info-list i,
.shadcn-ui .city-detail-share-grid i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: var(--radius-sm);
    background: var(--background);
    color: var(--foreground);
}
.shadcn-ui .city-detail-info-list span {
    display: grid;
    gap: .12rem;
    color: var(--muted-foreground);
    font-size: .74rem;
    font-weight: 750;
}
.shadcn-ui .city-detail-info-list strong {
    color: var(--foreground);
    font-size: .9rem;
    line-height: 1.25;
    overflow-wrap: anywhere;
}
.shadcn-ui .city-detail-share-grid {
    display: grid;
    gap: .55rem;
    margin-top: .7rem;
}
.shadcn-ui .city-detail-share-grid a:hover {
    background: var(--primary);
    color: var(--primary-foreground);
    border-color: var(--primary);
}
.shadcn-ui .city-detail-checklist {
    display: grid;
    gap: .45rem;
    margin: .7rem 0 0;
    padding: 0;
    list-style: none;
}
.shadcn-ui .city-detail-checklist li {
    position: relative;
    color: var(--muted-foreground);
    font-size: .88rem;
    line-height: 1.45;
    padding-left: 1.2rem;
}
.shadcn-ui .city-detail-checklist li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .45rem;
    width: .42rem;
    height: .42rem;
    border-radius: 999px;
    background: var(--primary);
}
@media (max-width: 1199.98px) {
    .shadcn-ui .city-detail-hero-copy h1 { font-size: 3.35rem !important; }
    .shadcn-ui .city-detail-info-grid { grid-template-columns: 1fr; }
    .shadcn-ui .city-detail-layout { grid-template-columns: minmax(0, 1fr) minmax(260px, .42fr); }
}
@media (max-width: 991.98px) {
    .shadcn-ui .city-detail-hero { padding: 3.5rem 0 2rem; }
    .shadcn-ui .city-detail-hero-grid,
    .shadcn-ui .city-detail-layout,
    .shadcn-ui .city-detail-split { grid-template-columns: 1fr; }
    .shadcn-ui .city-detail-sidebar { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .shadcn-ui .city-detail-stat-grid,
    .shadcn-ui .city-detail-gallery-grid,
    .shadcn-ui .city-detail-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .shadcn-ui .city-detail-hero { padding: 2.8rem 0 1.5rem; }
    .shadcn-ui .city-detail-hero-copy h1 { max-width: 100%; font-size: 2.28rem !important; }
    .shadcn-ui .city-detail-hero-copy p { font-size: .98rem; }
    .shadcn-ui .city-detail-hero-actions { flex-direction: column; align-items: stretch; }
    .shadcn-ui .city-detail-hero-actions .btn { width: 100%; }
    .shadcn-ui .city-detail-stat-grid,
    .shadcn-ui .city-detail-sidebar,
    .shadcn-ui .city-detail-gallery-grid,
    .shadcn-ui .city-detail-related-grid { grid-template-columns: 1fr; }
    .shadcn-ui .city-detail-panel,
    .shadcn-ui .city-detail-side-panel { padding: .85rem; }
    .shadcn-ui .city-detail-panel-head.inline { align-items: flex-start; flex-direction: column; }
    .shadcn-ui .city-detail-panel-head h2 { font-size: 1.45rem !important; }
    .shadcn-ui .city-detail-place-card { grid-template-columns: 4.8rem minmax(0, 1fr); }
    .shadcn-ui .city-detail-review-head { grid-template-columns: 2.5rem minmax(0, 1fr); }
    .shadcn-ui .city-detail-review-head em { grid-column: 2; }
    .shadcn-ui .city-detail-map { height: 20rem; }
}
@media (max-width: 420px) {
    .shadcn-ui .city-detail-eyebrow,
    .shadcn-ui .city-detail-kicker { width: 100%; justify-content: center; text-align: center; }
    .shadcn-ui .city-detail-hero-note { grid-template-columns: 2.35rem minmax(0, 1fr); }
    .shadcn-ui .city-detail-hero-note i { width: 2.35rem; height: 2.35rem; }
    .shadcn-ui .city-detail-media { aspect-ratio: 4 / 3; }
    .shadcn-ui .city-detail-place-card { grid-template-columns: 1fr; }
    .shadcn-ui .city-detail-place-media { aspect-ratio: 16 / 9; }
}
/* Countries index shadcn rebuild */
.shadcn-ui .countries-page{background:var(--background);color:var(--foreground);overflow-x:hidden}.shadcn-ui .countries-page,.shadcn-ui .countries-page *{min-width:0}.shadcn-ui .countries-hero{position:relative;padding:4.5rem 0 2.75rem;border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(250,250,250,.98),#fff 58%,rgba(244,244,245,.72));overflow:hidden}.shadcn-ui .countries-hero:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(24,24,27,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(24,24,27,.045) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(180deg,rgba(0,0,0,.62),transparent 78%)}.shadcn-ui .countries-hero .container,.shadcn-ui .countries-featured .container,.shadcn-ui .countries-filter-band .container,.shadcn-ui .countries-results .container{position:relative;z-index:1}.shadcn-ui .countries-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.55fr);gap:1.2rem;align-items:stretch}.shadcn-ui .countries-hero-copy{max-width:800px;display:flex;flex-direction:column;justify-content:center}.shadcn-ui .countries-eyebrow,.shadcn-ui .countries-kicker{display:inline-flex;align-items:center;gap:.5rem;width:fit-content;border:1px solid var(--border);border-radius:999px;background:var(--background);color:var(--muted-foreground);font-size:.8rem;font-weight:750;line-height:1;padding:.48rem .72rem;box-shadow:var(--shadow-xs)}.shadcn-ui .countries-eyebrow i,.shadcn-ui .countries-kicker i{color:var(--foreground)}.shadcn-ui .countries-hero-copy h1{max-width:12ch;margin:1.05rem 0 .95rem;color:var(--foreground)!important;font-size:4rem!important;font-weight:850!important;line-height:.98!important;letter-spacing:0!important;overflow-wrap:anywhere}.shadcn-ui .countries-hero-copy p{max-width:700px;margin:0;color:var(--muted-foreground)!important;font-size:1.05rem;line-height:1.75}.shadcn-ui .countries-hero-search{display:grid;grid-template-columns:2.45rem minmax(0,1fr) auto;align-items:center;gap:.5rem;width:min(100%,42rem);min-height:3.35rem;margin-top:1.35rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--background);padding:.35rem;box-shadow:var(--shadow-sm)}.shadcn-ui .countries-hero-search>i{display:inline-flex;align-items:center;justify-content:center;width:2.45rem;height:2.45rem;border-radius:var(--radius);background:var(--muted);color:var(--foreground)}.shadcn-ui .countries-hero-search input{width:100%;border:0!important;background:transparent!important;color:var(--foreground)!important;outline:0;font-size:.98rem}.shadcn-ui .countries-hero-search button{min-height:2.55rem;border:0;border-radius:var(--radius);background:var(--primary);color:var(--primary-foreground);font-weight:800;padding:0 1rem}.shadcn-ui .countries-hero-panel,.shadcn-ui .countries-filter-panel,.shadcn-ui .countries-card,.shadcn-ui .countries-empty{border:1px solid var(--border);border-radius:var(--radius-lg);background:rgba(255,255,255,.94);box-shadow:var(--shadow-sm)}.shadcn-ui .countries-hero-panel{display:flex;flex-direction:column;justify-content:space-between;gap:1rem;padding:1rem}.shadcn-ui .countries-hero-panel-head{display:grid;grid-template-columns:2.75rem minmax(0,1fr);align-items:center;gap:.75rem}.shadcn-ui .countries-hero-panel-head>span,.shadcn-ui .countries-empty>span{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:var(--radius);background:var(--primary);color:var(--primary-foreground)}.shadcn-ui .countries-hero-panel-head strong{display:block;color:var(--foreground);font-size:1rem}.shadcn-ui .countries-hero-panel-head small{color:var(--muted-foreground);font-weight:700}.shadcn-ui .countries-hero-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}.shadcn-ui .countries-hero-mini-grid div{border:1px solid var(--border);border-radius:var(--radius);background:var(--muted);padding:.75rem}.shadcn-ui .countries-hero-mini-grid strong{display:block;color:var(--foreground);font-size:1.15rem;line-height:1.1}.shadcn-ui .countries-hero-mini-grid span{display:block;margin-top:.25rem;color:var(--muted-foreground);font-size:.76rem;font-weight:750}.shadcn-ui .countries-featured,.shadcn-ui .countries-filter-band,.shadcn-ui .countries-results{padding:1.25rem 0;background:var(--background)}.shadcn-ui .countries-section-head{margin-bottom:.9rem}.shadcn-ui .countries-section-head.inline{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.shadcn-ui .countries-section-head h2{margin:.65rem 0 0;color:var(--foreground)!important;font-size:1.75rem!important;font-weight:800!important;line-height:1.15!important}.shadcn-ui .countries-section-head p{margin:0;color:var(--muted-foreground);font-weight:700}.shadcn-ui .countries-section-head>a,.shadcn-ui .countries-card-link{color:var(--foreground);font-size:.86rem;font-weight:850;text-decoration:none}.shadcn-ui .countries-featured-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem}.shadcn-ui .countries-featured-card{position:relative;display:block;aspect-ratio:4/3;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--muted);color:#fff;overflow:hidden;text-decoration:none;box-shadow:var(--shadow-xs)}.shadcn-ui .countries-featured-card:after,.shadcn-ui .countries-card-media:after{content:"";position:absolute;inset:auto 0 0 0;height:60%;background:linear-gradient(180deg,transparent,rgba(9,9,11,.7));pointer-events:none}.shadcn-ui .countries-featured-card img,.shadcn-ui .countries-card-media img{width:100%;height:100%;display:block;object-fit:cover}.shadcn-ui .countries-featured-card>span,.shadcn-ui .countries-card-media>span{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--muted-foreground);font-size:2rem}.shadcn-ui .countries-featured-card strong,.shadcn-ui .countries-featured-card em{position:absolute;z-index:1;color:#fff}.shadcn-ui .countries-featured-card strong{left:.7rem;right:.7rem;bottom:.7rem;font-size:.94rem;line-height:1.15;overflow-wrap:anywhere}.shadcn-ui .countries-featured-card em{top:.6rem;right:.6rem;display:inline-flex;align-items:center;gap:.28rem;border-radius:999px;background:rgba(9,9,11,.72);font-size:.78rem;font-style:normal;font-weight:850;padding:.28rem .55rem}.shadcn-ui .countries-filter-panel{display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(3,minmax(140px,.8fr)) auto;gap:.75rem;align-items:end;padding:.9rem}.shadcn-ui .countries-filter-panel label{display:grid;gap:.35rem}.shadcn-ui .countries-filter-panel label>span{color:var(--foreground);font-size:.78rem;font-weight:850}.shadcn-ui .countries-filter-panel input,.shadcn-ui .countries-filter-panel select{width:100%;min-height:2.6rem;border:1px solid var(--input)!important;border-radius:var(--radius)!important;background:var(--background)!important;color:var(--foreground)!important;padding:0 .75rem!important}.shadcn-ui .countries-filter-actions{display:flex;gap:.5rem;flex-wrap:wrap}.shadcn-ui .countries-filter-actions .btn{min-height:2.6rem;border-radius:var(--radius)!important;font-weight:800}.shadcn-ui .countries-continent-strip{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.shadcn-ui .countries-continent-strip a{display:inline-flex;align-items:center;justify-content:center;min-height:2.25rem;border:1px solid var(--border);border-radius:999px;background:var(--background);color:var(--foreground);font-size:.84rem;font-weight:800;padding:0 .8rem;text-decoration:none}.shadcn-ui .countries-continent-strip a.is-active,.shadcn-ui .countries-continent-strip a:hover{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.shadcn-ui .countries-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.shadcn-ui .countries-card{overflow:hidden}.shadcn-ui .countries-card-media{position:relative;display:block;aspect-ratio:16/10;background:var(--muted);overflow:hidden}.shadcn-ui .countries-card-media em{position:absolute;left:.7rem;top:.7rem;z-index:1;display:inline-flex;align-items:center;gap:.32rem;max-width:calc(100% - 1.4rem);border-radius:999px;color:#fff;font-size:.78rem;font-style:normal;font-weight:850;padding:.28rem .6rem;backdrop-filter:blur(12px)}.shadcn-ui .countries-card-media em.is-free{background:rgba(22,163,74,.86)}.shadcn-ui .countries-card-media em.is-required{background:rgba(225,29,72,.86)}.shadcn-ui .countries-card-body{padding:.9rem}.shadcn-ui .countries-card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.65rem}.shadcn-ui .countries-card-title-row h3{margin:0;color:var(--foreground)!important;font-size:1.05rem!important;font-weight:850!important;line-height:1.25!important}.shadcn-ui .countries-card-title-row h3 a{color:inherit;text-decoration:none}.shadcn-ui .countries-card-title-row span{display:inline-flex;align-items:center;gap:.28rem;border:1px solid var(--border);border-radius:999px;background:var(--muted);color:var(--foreground);font-size:.78rem;font-weight:850;padding:.2rem .48rem}.shadcn-ui .countries-card-body p{margin:.55rem 0 0;color:var(--muted-foreground)!important;font-size:.9rem;line-height:1.55}.shadcn-ui .countries-card-meta{display:flex;flex-wrap:wrap;gap:.42rem;margin-top:.75rem}.shadcn-ui .countries-card-meta span{display:inline-flex;align-items:center;gap:.32rem;border:1px solid var(--border);border-radius:999px;background:var(--muted);color:var(--muted-foreground);font-size:.76rem;font-weight:800;padding:.24rem .52rem}.shadcn-ui .countries-card-link{display:inline-flex;align-items:center;gap:.35rem;margin-top:.85rem}.shadcn-ui .countries-empty{display:grid;justify-items:center;text-align:center;gap:.65rem;padding:2rem}.shadcn-ui .countries-empty h3{margin:0;color:var(--foreground)!important;font-size:1.25rem!important}.shadcn-ui .countries-empty p{margin:0;color:var(--muted-foreground)}.shadcn-ui .countries-pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;margin-top:1.2rem}.shadcn-ui .countries-pagination a,.shadcn-ui .countries-pagination span{display:inline-flex;align-items:center;justify-content:center;width:2.35rem;height:2.35rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--background);color:var(--foreground);font-size:.86rem;font-weight:850;text-decoration:none}.shadcn-ui .countries-pagination a.is-active,.shadcn-ui .countries-pagination a:hover{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}
@media (max-width:1199.98px){.shadcn-ui .countries-hero-copy h1{font-size:3.35rem!important}.shadcn-ui .countries-filter-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.shadcn-ui .countries-filter-actions{grid-column:1/-1}}@media (max-width:991.98px){.shadcn-ui .countries-hero{padding:3.5rem 0 2rem}.shadcn-ui .countries-hero-grid{grid-template-columns:1fr}.shadcn-ui .countries-featured-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.shadcn-ui .countries-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:767.98px){.shadcn-ui .countries-hero{padding:2.8rem 0 1.5rem}.shadcn-ui .countries-hero-copy h1{max-width:100%;font-size:2.3rem!important}.shadcn-ui .countries-hero-copy p{font-size:.98rem}.shadcn-ui .countries-hero-search{grid-template-columns:2.35rem minmax(0,1fr)}.shadcn-ui .countries-hero-search button{grid-column:1/-1;width:100%}.shadcn-ui .countries-hero-mini-grid,.shadcn-ui .countries-featured-grid,.shadcn-ui .countries-grid,.shadcn-ui .countries-filter-panel{grid-template-columns:1fr}.shadcn-ui .countries-section-head.inline{align-items:flex-start;flex-direction:column}.shadcn-ui .countries-section-head h2{font-size:1.45rem!important}.shadcn-ui .countries-filter-actions .btn{width:100%}}@media (max-width:420px){.shadcn-ui .countries-eyebrow,.shadcn-ui .countries-kicker{width:100%;justify-content:center;text-align:center}.shadcn-ui .countries-card-body{padding:.8rem}}
/* Country detail responsive rebuild */
.shadcn-ui .country-detail-page{background:var(--background);color:var(--foreground);overflow-x:hidden}.shadcn-ui .country-detail-page,.shadcn-ui .country-detail-page *{min-width:0}.shadcn-ui .country-detail-hero{position:relative;padding:4.5rem 0 2.75rem;border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(250,250,250,.97),#fff 58%,rgba(244,244,245,.72));overflow:hidden}.shadcn-ui .country-detail-hero:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(24,24,27,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(24,24,27,.045) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(180deg,rgba(0,0,0,.58),transparent 78%)}.shadcn-ui .country-detail-hero .container,.shadcn-ui .country-detail-stats .container,.shadcn-ui .country-detail-body .container{position:relative;z-index:1}.shadcn-ui .country-detail-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);gap:1.4rem;align-items:stretch}.shadcn-ui .country-detail-hero-copy{display:flex;flex-direction:column;justify-content:center;max-width:800px}.shadcn-ui .country-detail-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.9rem;color:var(--muted-foreground);font-size:.82rem;font-weight:700}.shadcn-ui .country-detail-breadcrumb a{color:var(--muted-foreground);text-decoration:none}.shadcn-ui .country-detail-breadcrumb a:hover{color:var(--foreground)}.shadcn-ui .country-detail-eyebrow,.shadcn-ui .country-detail-kicker{display:inline-flex;align-items:center;gap:.5rem;width:fit-content;border:1px solid var(--border);border-radius:999px;background:var(--background);color:var(--muted-foreground);font-size:.8rem;font-weight:750;line-height:1;padding:.48rem .7rem;box-shadow:var(--shadow-xs)}.shadcn-ui .country-detail-eyebrow i,.shadcn-ui .country-detail-kicker i{color:var(--foreground)}.shadcn-ui .country-detail-hero-copy h1{margin:1.1rem 0 .95rem;max-width:11ch;color:var(--foreground)!important;font-size:4rem!important;font-weight:850!important;line-height:.98!important;letter-spacing:0!important;overflow-wrap:anywhere}.shadcn-ui .country-detail-hero-copy p{max-width:700px;margin:0;color:var(--muted-foreground)!important;font-size:1.06rem;line-height:1.75}.shadcn-ui .country-detail-hero-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.35rem}.shadcn-ui .country-detail-hero-btn{min-height:2.8rem;border-radius:var(--radius)!important;gap:.45rem}.shadcn-ui .country-favorite-btn.is-active{border-color:rgba(225,29,72,.35)!important;color:#be123c!important;background:rgba(255,241,242,.9)!important}.shadcn-ui .country-detail-hero-card,.shadcn-ui .country-detail-panel,.shadcn-ui .country-detail-mini-panel,.shadcn-ui .country-detail-side-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:rgba(255,255,255,.92);box-shadow:var(--shadow-sm)}.shadcn-ui .country-detail-hero-card{display:flex;flex-direction:column;gap:.8rem;padding:.8rem}.shadcn-ui .country-detail-media{position:relative;aspect-ratio:16/11;border:1px solid var(--border);border-radius:var(--radius);background:var(--muted);overflow:hidden}.shadcn-ui .country-detail-media img,.shadcn-ui .country-detail-city-card img,.shadcn-ui .country-detail-place-media img,.shadcn-ui .country-detail-related-card img{width:100%;height:100%;display:block;object-fit:cover}.shadcn-ui .country-detail-media>span,.shadcn-ui .country-detail-city-card>span,.shadcn-ui .country-detail-place-media span,.shadcn-ui .country-detail-related-card>span{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--muted-foreground);font-size:2rem}.shadcn-ui .country-detail-media:after{content:"";position:absolute;left:0;right:0;bottom:0;height:50%;background:linear-gradient(180deg,transparent,rgba(9,9,11,.64));pointer-events:none}.shadcn-ui .country-detail-media-badges{position:absolute;left:.75rem;right:.75rem;bottom:.75rem;z-index:1;display:flex;flex-wrap:wrap;gap:.45rem}.shadcn-ui .country-detail-media-badges span{display:inline-flex;align-items:center;gap:.34rem;max-width:100%;min-height:1.9rem;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(9,9,11,.72);color:#fff;font-size:.78rem;font-weight:850;padding:.16rem .6rem;backdrop-filter:blur(12px);overflow-wrap:anywhere}.shadcn-ui .country-detail-media-badges span.is-free{background:rgba(22,163,74,.86)}.shadcn-ui .country-detail-media-badges span.is-required{background:rgba(225,29,72,.86)}.shadcn-ui .country-detail-hero-note{display:grid;grid-template-columns:2.55rem minmax(0,1fr);gap:.7rem;align-items:center;color:var(--muted-foreground);font-size:.9rem;line-height:1.5}.shadcn-ui .country-detail-hero-note img,.shadcn-ui .country-detail-hero-note i,.shadcn-ui .country-detail-stat-card i,.shadcn-ui .country-detail-mini-panel>span,.shadcn-ui .country-detail-side-head span{display:inline-flex;align-items:center;justify-content:center;width:2.55rem;height:2.55rem;border-radius:var(--radius);background:var(--primary);color:var(--primary-foreground);object-fit:cover}.shadcn-ui .country-detail-stats{padding:1.25rem 0;background:var(--background)}.shadcn-ui .country-detail-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.shadcn-ui .country-detail-stat-card{display:grid;grid-template-columns:2.55rem minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:.1rem .7rem;min-height:5.5rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);padding:.9rem;box-shadow:var(--shadow-xs)}.shadcn-ui .country-detail-stat-card i{grid-row:1/span 2}.shadcn-ui .country-detail-stat-card strong{color:var(--foreground);font-size:1.25rem;line-height:1.1;overflow-wrap:anywhere}.shadcn-ui .country-detail-stat-card span{color:var(--muted-foreground);font-size:.8rem;font-weight:750}.shadcn-ui .country-detail-body{padding:1rem 0 4rem;background:var(--background)}.shadcn-ui .country-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,.34fr);gap:1rem;align-items:start}.shadcn-ui .country-detail-main,.shadcn-ui .country-detail-review-list{display:grid;gap:1rem}.shadcn-ui .country-detail-panel,.shadcn-ui .country-detail-side-panel{padding:1rem}.shadcn-ui .country-detail-panel-head{margin-bottom:.9rem}.shadcn-ui .country-detail-panel-head.inline{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.shadcn-ui .country-detail-panel-head h2{margin:.65rem 0 0;color:var(--foreground)!important;font-size:1.7rem!important;font-weight:800!important;line-height:1.15!important}.shadcn-ui .country-detail-lead,.shadcn-ui .country-detail-richtext{color:var(--muted-foreground)!important;line-height:1.75}.shadcn-ui .country-detail-lead{margin:0;font-size:1rem}.shadcn-ui .country-detail-richtext{margin-top:1rem;color:var(--foreground)!important}.shadcn-ui .country-detail-richtext img,.shadcn-ui .country-detail-richtext iframe{max-width:100%;border-radius:var(--radius)}.shadcn-ui .country-detail-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.shadcn-ui .country-detail-mini-panel{display:grid;grid-template-columns:2.55rem minmax(0,1fr);gap:.7rem;padding:.9rem}.shadcn-ui .country-detail-mini-panel h3,.shadcn-ui .country-detail-subtitle{margin:0;color:var(--foreground)!important;font-size:1rem!important;font-weight:850!important;line-height:1.25!important}.shadcn-ui .country-detail-mini-panel p,.shadcn-ui .country-detail-mini-panel div div{margin:.35rem 0 0;color:var(--muted-foreground)!important;font-size:.9rem;line-height:1.6}.shadcn-ui .country-detail-map-btn,.shadcn-ui .country-detail-section-actions a{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:2.25rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--background);color:var(--foreground);font-size:.84rem;font-weight:850;padding:0 .75rem;text-decoration:none}.shadcn-ui .country-detail-map-btn:hover,.shadcn-ui .country-detail-section-actions a:hover{background:var(--muted)}.shadcn-ui .country-detail-map-wrap{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--muted)}.shadcn-ui .country-detail-map{width:100%;height:26rem}.shadcn-ui .country-detail-panel.is-map-fullscreen{position:fixed;inset:.75rem;z-index:9999;display:flex;flex-direction:column}.shadcn-ui .country-detail-panel.is-map-fullscreen .country-detail-map-wrap,.shadcn-ui .country-detail-panel.is-map-fullscreen .country-detail-map{flex:1 1 auto;height:auto}.shadcn-ui .country-detail-section-block{margin-bottom:1rem}.shadcn-ui .country-detail-subtitle{display:inline-flex;align-items:center;gap:.45rem;margin-bottom:.65rem}.shadcn-ui .country-detail-city-grid,.shadcn-ui .country-detail-related-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.shadcn-ui .country-detail-city-card,.shadcn-ui .country-detail-related-card{position:relative;display:grid;align-content:end;min-height:12rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--muted);color:#fff;overflow:hidden;text-decoration:none;padding:.75rem}.shadcn-ui .country-detail-city-card:after,.shadcn-ui .country-detail-related-card:after{content:"";position:absolute;inset:auto 0 0 0;height:68%;background:linear-gradient(180deg,transparent,rgba(9,9,11,.72));pointer-events:none}.shadcn-ui .country-detail-city-card img,.shadcn-ui .country-detail-city-card>span,.shadcn-ui .country-detail-related-card img,.shadcn-ui .country-detail-related-card>span{position:absolute;inset:0}.shadcn-ui .country-detail-city-card strong,.shadcn-ui .country-detail-city-card small,.shadcn-ui .country-detail-related-card strong,.shadcn-ui .country-detail-related-card em{position:relative;z-index:1;color:#fff}.shadcn-ui .country-detail-city-card strong,.shadcn-ui .country-detail-related-card strong{font-size:.96rem;line-height:1.15;overflow-wrap:anywhere}.shadcn-ui .country-detail-city-card small{margin-top:.25rem;color:rgba(255,255,255,.82);font-size:.76rem;line-height:1.35}.shadcn-ui .country-detail-related-card em{width:fit-content;margin-top:.3rem;border-radius:999px;background:rgba(22,163,74,.84);font-size:.72rem;font-style:normal;font-weight:850;padding:.18rem .48rem}.shadcn-ui .country-detail-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.shadcn-ui .country-detail-card-grid{display:grid;gap:.65rem}.shadcn-ui .country-detail-place-card{display:grid;grid-template-columns:6rem minmax(0,1fr);gap:.75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--background);padding:.55rem}.shadcn-ui .country-detail-place-media{display:block;aspect-ratio:1/1;border-radius:var(--radius-sm);background:var(--muted);overflow:hidden}.shadcn-ui .country-detail-place-body{display:flex;flex-direction:column;justify-content:center}.shadcn-ui .country-detail-place-body h4{margin:0;color:var(--foreground)!important;font-size:.98rem!important;font-weight:850!important;line-height:1.25!important}.shadcn-ui .country-detail-place-body h4 a{color:inherit;text-decoration:none}.shadcn-ui .country-detail-place-body p{margin:.35rem 0 0;color:var(--muted-foreground)!important;font-size:.82rem;line-height:1.45}.shadcn-ui .country-detail-place-body small{display:inline-flex;align-items:center;gap:.32rem;margin-top:.5rem;color:var(--foreground);font-size:.78rem;font-weight:850}.shadcn-ui .country-detail-empty-small{border:1px dashed var(--border);border-radius:var(--radius);color:var(--muted-foreground);background:var(--muted);padding:.9rem;font-size:.9rem;line-height:1.55}.shadcn-ui .country-detail-review-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--background);padding:.85rem}.shadcn-ui .country-detail-review-head{display:grid;grid-template-columns:2.5rem minmax(0,1fr) auto;gap:.65rem;align-items:center}.shadcn-ui .country-detail-review-head>span{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:999px;background:var(--primary);color:var(--primary-foreground);font-weight:850}.shadcn-ui .country-detail-review-head strong{display:block;color:var(--foreground);font-size:.92rem}.shadcn-ui .country-detail-review-head small{color:var(--muted-foreground);font-size:.78rem;font-weight:700}.shadcn-ui .country-detail-review-head em{display:inline-flex;align-items:center;gap:.28rem;color:var(--foreground);font-size:.8rem;font-style:normal;font-weight:850}.shadcn-ui .country-detail-review-card h3{margin:.75rem 0 0;color:var(--foreground)!important;font-size:.98rem!important;font-weight:850!important}.shadcn-ui .country-detail-review-card p{margin:.6rem 0 0;color:var(--muted-foreground)!important;line-height:1.65}.shadcn-ui .country-detail-review-form{display:grid;gap:.75rem;margin-top:.9rem;border-top:1px solid var(--border);padding-top:.9rem}.shadcn-ui .country-detail-review-form label{display:grid;gap:.35rem}.shadcn-ui .country-detail-review-form label>span{color:var(--foreground);font-size:.82rem;font-weight:850}.shadcn-ui .country-detail-review-form input,.shadcn-ui .country-detail-review-form select,.shadcn-ui .country-detail-review-form textarea{width:100%;border:1px solid var(--input)!important;border-radius:var(--radius)!important;background:var(--background)!important;color:var(--foreground)!important;padding:.75rem!important}.shadcn-ui .country-detail-sidebar{display:grid;gap:.8rem;position:sticky;top:5.25rem}.shadcn-ui .country-detail-side-head{display:grid;grid-template-columns:2.4rem minmax(0,1fr);align-items:center;gap:.65rem;padding-bottom:.7rem;border-bottom:1px solid var(--border)}.shadcn-ui .country-detail-side-head span{width:2.4rem;height:2.4rem}.shadcn-ui .country-detail-side-head strong{color:var(--foreground);font-size:.95rem}.shadcn-ui .country-detail-info-list,.shadcn-ui .country-detail-share-grid,.shadcn-ui .country-detail-checklist{display:grid;gap:.55rem;margin-top:.7rem}.shadcn-ui .country-detail-info-list div,.shadcn-ui .country-detail-share-grid a{display:grid;grid-template-columns:2.2rem minmax(0,1fr);align-items:center;gap:.55rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--muted);color:var(--foreground);padding:.62rem;text-decoration:none}.shadcn-ui .country-detail-info-list i,.shadcn-ui .country-detail-share-grid i{display:inline-flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;border-radius:var(--radius-sm);background:var(--background);color:var(--foreground)}.shadcn-ui .country-detail-info-list span{display:grid;gap:.12rem;color:var(--muted-foreground);font-size:.74rem;font-weight:750}.shadcn-ui .country-detail-info-list strong{color:var(--foreground);font-size:.9rem;line-height:1.25;overflow-wrap:anywhere}.shadcn-ui .country-detail-visa-panel{display:grid;justify-items:center;text-align:center;gap:.55rem}.shadcn-ui .country-detail-visa-icon{display:inline-flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;border-radius:999px;color:#fff;font-size:1.35rem}.shadcn-ui .country-detail-visa-icon.is-free{background:#16a34a}.shadcn-ui .country-detail-visa-icon.is-required{background:#e11d48}.shadcn-ui .country-detail-visa-panel h3{margin:0;color:var(--foreground)!important;font-size:1.1rem!important;font-weight:850!important}.shadcn-ui .country-detail-visa-panel p{margin:0;color:var(--muted-foreground)!important;line-height:1.55}.shadcn-ui .country-detail-visa-panel strong{width:100%;border:1px solid var(--border);border-radius:var(--radius);background:var(--muted);color:var(--foreground);padding:.65rem}.shadcn-ui .country-detail-share-grid a:hover{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.shadcn-ui .country-detail-checklist{margin-bottom:0;padding:0;list-style:none}.shadcn-ui .country-detail-checklist li{position:relative;color:var(--muted-foreground);font-size:.88rem;line-height:1.45;padding-left:1.2rem}.shadcn-ui .country-detail-checklist li:before{content:"";position:absolute;left:0;top:.45rem;width:.42rem;height:.42rem;border-radius:999px;background:var(--primary)}
@media (max-width:1199.98px){.shadcn-ui .country-detail-hero-copy h1{font-size:3.35rem!important}.shadcn-ui .country-detail-info-grid{grid-template-columns:1fr}.shadcn-ui .country-detail-layout{grid-template-columns:minmax(0,1fr) minmax(260px,.42fr)}}@media (max-width:991.98px){.shadcn-ui .country-detail-hero{padding:3.5rem 0 2rem}.shadcn-ui .country-detail-hero-grid,.shadcn-ui .country-detail-layout,.shadcn-ui .country-detail-split{grid-template-columns:1fr}.shadcn-ui .country-detail-sidebar{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.shadcn-ui .country-detail-stat-grid,.shadcn-ui .country-detail-city-grid,.shadcn-ui .country-detail-related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:767.98px){.shadcn-ui .country-detail-hero{padding:2.8rem 0 1.5rem}.shadcn-ui .country-detail-hero-copy h1{max-width:100%;font-size:2.28rem!important}.shadcn-ui .country-detail-hero-copy p{font-size:.98rem}.shadcn-ui .country-detail-hero-actions{flex-direction:column;align-items:stretch}.shadcn-ui .country-detail-hero-actions .btn{width:100%}.shadcn-ui .country-detail-stat-grid,.shadcn-ui .country-detail-sidebar,.shadcn-ui .country-detail-city-grid,.shadcn-ui .country-detail-related-grid{grid-template-columns:1fr}.shadcn-ui .country-detail-panel,.shadcn-ui .country-detail-side-panel{padding:.85rem}.shadcn-ui .country-detail-panel-head.inline{align-items:flex-start;flex-direction:column}.shadcn-ui .country-detail-panel-head h2{font-size:1.45rem!important}.shadcn-ui .country-detail-place-card{grid-template-columns:4.8rem minmax(0,1fr)}.shadcn-ui .country-detail-review-head{grid-template-columns:2.5rem minmax(0,1fr)}.shadcn-ui .country-detail-review-head em{grid-column:2}.shadcn-ui .country-detail-map{height:20rem}}@media (max-width:420px){.shadcn-ui .country-detail-eyebrow,.shadcn-ui .country-detail-kicker{width:100%;justify-content:center;text-align:center}.shadcn-ui .country-detail-hero-note{grid-template-columns:2.35rem minmax(0,1fr)}.shadcn-ui .country-detail-hero-note img,.shadcn-ui .country-detail-hero-note i{width:2.35rem;height:2.35rem}.shadcn-ui .country-detail-media{aspect-ratio:4/3}.shadcn-ui .country-detail-place-card{grid-template-columns:1fr}.shadcn-ui .country-detail-place-media{aspect-ratio:16/9}}
/* Country detail polish pass */
.shadcn-ui .country-detail-page {
  background: var(--background);
  padding-bottom: max(1.5rem, env(safe-area-inset-bottom));
}

.shadcn-ui .country-detail-hero {
  isolation: isolate;
  padding-top: clamp(2.75rem, 5vw, 5rem);
}

.shadcn-ui .country-detail-hero-grid {
  grid-template-columns: minmax(0, 1fr) minmax(20rem, 28rem);
  gap: clamp(1rem, 2.5vw, 2rem);
}

.shadcn-ui .country-detail-hero-copy {
  width: 100%;
}

.shadcn-ui .country-detail-hero-copy h1 {
  max-width: min(100%, 920px) !important;
  text-wrap: balance;
}

.shadcn-ui .country-detail-hero-copy p,
.shadcn-ui .country-detail-lead,
.shadcn-ui .country-detail-richtext {
  overflow-wrap: anywhere;
}

.shadcn-ui .country-detail-hero-actions {
  align-items: center;
}

.shadcn-ui .country-detail-hero-actions .btn,
.shadcn-ui .country-detail-map-btn,
.shadcn-ui .country-detail-section-actions a {
  white-space: normal;
  text-align: center;
}

.shadcn-ui .country-detail-hero-card {
  min-height: 100%;
  background: color-mix(in srgb, var(--card) 94%, transparent);
}

.shadcn-ui .country-detail-media {
  min-height: 16rem;
}

.shadcn-ui .country-detail-media img,
.shadcn-ui .country-detail-city-card img,
.shadcn-ui .country-detail-place-media img,
.shadcn-ui .country-detail-related-card img {
  transition: transform .22s ease;
}

.shadcn-ui .country-detail-media-badges span {
  box-shadow: 0 10px 26px rgba(9, 9, 11, .18);
}

.shadcn-ui .country-detail-stat-card,
.shadcn-ui .country-detail-panel,
.shadcn-ui .country-detail-mini-panel,
.shadcn-ui .country-detail-side-panel,
.shadcn-ui .country-detail-place-card,
.shadcn-ui .country-detail-review-card {
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.shadcn-ui .country-detail-stat-card:hover,
.shadcn-ui .country-detail-panel:hover,
.shadcn-ui .country-detail-side-panel:hover,
.shadcn-ui .country-detail-place-card:hover,
.shadcn-ui .country-detail-review-card:hover {
  border-color: color-mix(in srgb, var(--foreground) 18%, var(--border));
  box-shadow: var(--shadow-sm);
}

.shadcn-ui .country-detail-layout {
  grid-template-columns: minmax(0, 1fr) clamp(18rem, 27vw, 22rem);
  gap: clamp(1rem, 2vw, 1.4rem);
}

.shadcn-ui .country-detail-main {
  align-content: start;
}

.shadcn-ui .country-detail-panel {
  overflow: hidden;
}

.shadcn-ui .country-detail-panel-head.inline {
  align-items: flex-start;
}

.shadcn-ui .country-detail-panel-head h2 {
  text-wrap: balance;
}

.shadcn-ui .country-detail-richtext :where(h2, h3, h4) {
  margin: 1.2rem 0 .55rem;
  color: var(--foreground) !important;
  font-weight: 850 !important;
  line-height: 1.2 !important;
}

.shadcn-ui .country-detail-richtext :where(p, ul, ol, blockquote) {
  margin: .75rem 0 0;
  color: var(--muted-foreground) !important;
  line-height: 1.75;
}

.shadcn-ui .country-detail-richtext :where(ul, ol) {
  padding-left: 1.25rem;
}

.shadcn-ui .country-detail-richtext a {
  color: var(--foreground);
  text-decoration: underline;
  text-underline-offset: .18em;
}

.shadcn-ui .country-detail-richtext table {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
}

.shadcn-ui .country-detail-richtext :where(img, iframe, video) {
  max-width: 100%;
  height: auto;
}

.shadcn-ui .country-detail-info-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.shadcn-ui .country-detail-mini-panel {
  align-items: flex-start;
  min-height: 100%;
}

.shadcn-ui .country-detail-mini-panel > div,
.shadcn-ui .country-detail-mini-panel > div > div,
.shadcn-ui .country-detail-mini-panel > div > div * {
  min-width: 0;
  max-width: 100%;
}

.shadcn-ui .country-detail-mini-panel > div > div :where(p, ul, ol) {
  margin: .45rem 0 0;
  color: var(--muted-foreground) !important;
  line-height: 1.65;
}

.shadcn-ui .country-detail-map-wrap {
  min-height: 20rem;
}

.shadcn-ui .country-detail-map {
  min-height: 20rem;
}

.shadcn-ui .country-detail-panel.is-map-fullscreen {
  inset: clamp(.5rem, 2vw, 1rem);
  z-index: 10020;
  max-width: none;
  background: var(--background);
  box-shadow: 0 24px 80px rgba(9, 9, 11, .28);
}

.shadcn-ui .country-detail-panel.is-map-fullscreen .country-detail-panel-head {
  flex: 0 0 auto;
}

.shadcn-ui .country-detail-section-block {
  min-width: 0;
}

.shadcn-ui .country-detail-city-grid,
.shadcn-ui .country-detail-related-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.shadcn-ui .country-detail-city-card,
.shadcn-ui .country-detail-related-card {
  isolation: isolate;
  aspect-ratio: 4 / 3;
  min-height: 0;
  transform: translateZ(0);
}

.shadcn-ui .country-detail-city-card:hover img,
.shadcn-ui .country-detail-related-card:hover img,
.shadcn-ui .country-detail-place-card:hover img {
  transform: scale(1.035);
}

.shadcn-ui .country-detail-city-card img,
.shadcn-ui .country-detail-city-card > span,
.shadcn-ui .country-detail-related-card img,
.shadcn-ui .country-detail-related-card > span {
  z-index: -1;
}

.shadcn-ui .country-detail-city-card strong,
.shadcn-ui .country-detail-city-card small,
.shadcn-ui .country-detail-related-card strong,
.shadcn-ui .country-detail-related-card em {
  text-shadow: 0 1px 18px rgba(0, 0, 0, .28);
}

.shadcn-ui .country-detail-split {
  align-items: start;
}

.shadcn-ui .country-detail-place-card {
  min-height: 7.25rem;
  align-items: center;
}

.shadcn-ui .country-detail-place-media {
  min-height: 5.25rem;
}

.shadcn-ui .country-detail-place-body h4 a:hover {
  color: var(--primary);
}

.shadcn-ui .country-detail-review-head {
  min-width: 0;
}

.shadcn-ui .country-detail-review-head > div,
.shadcn-ui .country-detail-review-card p {
  min-width: 0;
  overflow-wrap: anywhere;
}

.shadcn-ui .country-detail-review-form button {
  justify-self: start;
}

.shadcn-ui .country-detail-sidebar {
  align-self: start;
  z-index: 2;
}

.shadcn-ui .country-detail-info-list div,
.shadcn-ui .country-detail-share-grid a {
  min-width: 0;
}

.shadcn-ui .country-detail-share-grid a {
  grid-template-columns: 2.2rem minmax(0, 1fr);
  overflow-wrap: anywhere;
}

.shadcn-ui .country-detail-checklist li {
  overflow-wrap: anywhere;
}

@media (max-width: 1199.98px) {
  .shadcn-ui .country-detail-hero-grid,
  .shadcn-ui .country-detail-layout {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .country-detail-hero-card {
    max-width: 44rem;
  }

  .shadcn-ui .country-detail-sidebar {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .shadcn-ui .country-detail-info-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .shadcn-ui .country-detail-hero-card {
    max-width: none;
  }

  .shadcn-ui .country-detail-stat-grid,
  .shadcn-ui .country-detail-city-grid,
  .shadcn-ui .country-detail-related-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .shadcn-ui .country-detail-hero {
    padding-top: 2.25rem;
  }

  .shadcn-ui .country-detail-breadcrumb {
    font-size: .76rem;
  }

  .shadcn-ui .country-detail-hero-actions {
    align-items: stretch;
  }

  .shadcn-ui .country-detail-hero-actions .btn,
  .shadcn-ui .country-detail-review-form button {
    width: 100%;
  }

  .shadcn-ui .country-detail-media {
    min-height: 13rem;
  }

  .shadcn-ui .country-detail-info-grid,
  .shadcn-ui .country-detail-sidebar,
  .shadcn-ui .country-detail-split {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .country-detail-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .shadcn-ui .country-detail-panel-head.inline {
    gap: .75rem;
  }

  .shadcn-ui .country-detail-section-actions,
  .shadcn-ui .country-detail-section-actions a,
  .shadcn-ui .country-detail-map-btn {
    width: 100%;
  }

  .shadcn-ui .country-detail-city-card,
  .shadcn-ui .country-detail-related-card {
    aspect-ratio: 16 / 10;
  }
}

@media (max-width: 575.98px) {
  .shadcn-ui .country-detail-stat-grid,
  .shadcn-ui .country-detail-city-grid,
  .shadcn-ui .country-detail-related-grid {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .country-detail-hero-copy h1 {
    font-size: 2.05rem !important;
    line-height: 1.05 !important;
  }

  .shadcn-ui .country-detail-place-card {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .country-detail-place-media {
    aspect-ratio: 16 / 9;
  }

  .shadcn-ui .country-detail-panel.is-map-fullscreen {
    inset: .35rem;
    padding: .75rem;
  }
}
/* Country detail image layer fix */
.shadcn-ui .country-detail-city-card img,
.shadcn-ui .country-detail-city-card > span,
.shadcn-ui .country-detail-related-card img,
.shadcn-ui .country-detail-related-card > span {
  z-index: 0;
}

.shadcn-ui .country-detail-city-card:after,
.shadcn-ui .country-detail-related-card:after {
  z-index: 1;
}

.shadcn-ui .country-detail-city-card strong,
.shadcn-ui .country-detail-city-card small,
.shadcn-ui .country-detail-related-card strong,
.shadcn-ui .country-detail-related-card em {
  z-index: 2;
}
/* Country detail floating controls fix */
body.shadcn-ui:has(.country-detail-page) .back-to-top,
body.shadcn-ui:has(.country-detail-page) #scrollToTop {
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  width: 2.75rem;
  height: 2.75rem;
  z-index: 1060;
}

body.shadcn-ui:has(.country-detail-panel.is-map-fullscreen) .back-to-top,
body.shadcn-ui:has(.country-detail-panel.is-map-fullscreen) #scrollToTop {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

@media (max-width: 575.98px) {
  body.shadcn-ui:has(.country-detail-page) .back-to-top,
  body.shadcn-ui:has(.country-detail-page) #scrollToTop {
    right: .75rem;
    bottom: .75rem;
    width: 2.5rem;
    height: 2.5rem;
  }
}
/* Blog detail responsive rebuild */
.shadcn-ui .blog-detail-page {
  background: var(--background);
  color: var(--foreground);
  overflow-x: hidden;
}

.shadcn-ui .blog-detail-page,
.shadcn-ui .blog-detail-page * {
  min-width: 0;
}

.shadcn-ui .blog-detail-hero {
  position: relative;
  padding: clamp(2.75rem, 5vw, 5rem) 0 2.25rem;
  border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(250, 250, 250, .98), var(--background) 58%, rgba(244, 244, 245, .72));
  overflow: hidden;
  isolation: isolate;
}

.shadcn-ui .blog-detail-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(24, 24, 27, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(24, 24, 27, .045) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, .62), transparent 78%);
}

.shadcn-ui .blog-detail-hero .container,
.shadcn-ui .blog-detail-stats .container,
.shadcn-ui .blog-detail-body .container {
  position: relative;
  z-index: 1;
}

.shadcn-ui .blog-detail-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(20rem, 29rem);
  gap: clamp(1rem, 2.5vw, 2rem);
  align-items: stretch;
}

.shadcn-ui .blog-detail-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  max-width: 900px;
}

.shadcn-ui .blog-detail-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem;
  margin-bottom: .9rem;
  color: var(--muted-foreground);
  font-size: .82rem;
  font-weight: 740;
}

.shadcn-ui .blog-detail-breadcrumb a,
.shadcn-ui .blog-detail-breadcrumb span {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  color: var(--muted-foreground);
  text-decoration: none;
}

.shadcn-ui .blog-detail-breadcrumb a:hover {
  color: var(--foreground);
}

.shadcn-ui .blog-detail-eyebrow,
.shadcn-ui .blog-detail-kicker {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  width: fit-content;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--background);
  color: var(--muted-foreground);
  font-size: .8rem;
  font-weight: 780;
  line-height: 1;
  padding: .48rem .72rem;
  text-decoration: none;
  box-shadow: var(--shadow-xs);
}

.shadcn-ui .blog-detail-eyebrow i,
.shadcn-ui .blog-detail-kicker i {
  color: var(--foreground);
}

.shadcn-ui .blog-detail-hero-copy h1 {
  margin: 1rem 0 .95rem;
  max-width: min(100%, 940px);
  color: var(--foreground) !important;
  font-size: clamp(2.35rem, 5vw, 4.35rem) !important;
  font-weight: 860 !important;
  line-height: 1.02 !important;
  letter-spacing: 0 !important;
  text-wrap: balance;
  overflow-wrap: anywhere;
}

.shadcn-ui .blog-detail-hero-copy p {
  max-width: 740px;
  margin: 0;
  color: var(--muted-foreground) !important;
  font-size: 1.04rem;
  line-height: 1.75;
  overflow-wrap: anywhere;
}

.shadcn-ui .blog-detail-meta,
.shadcn-ui .blog-detail-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-top: 1.15rem;
}

.shadcn-ui .blog-detail-meta span {
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  min-height: 2.1rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--card);
  color: var(--muted-foreground);
  font-size: .8rem;
  font-weight: 780;
  padding: .2rem .72rem;
}

.shadcn-ui .blog-detail-btn {
  min-height: 2.78rem;
  border-radius: var(--radius) !important;
  gap: .45rem;
  white-space: normal;
  text-align: center;
}

.shadcn-ui .blog-detail-hero-card,
.shadcn-ui .blog-detail-panel,
.shadcn-ui .blog-detail-side-panel,
.shadcn-ui .blog-detail-stat-card,
.shadcn-ui .blog-detail-related-card {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--card) 94%, transparent);
  box-shadow: var(--shadow-sm);
}

.shadcn-ui .blog-detail-hero-card {
  display: flex;
  flex-direction: column;
  gap: .8rem;
  min-height: 100%;
  padding: .8rem;
}

.shadcn-ui .blog-detail-media {
  position: relative;
  min-height: 16rem;
  aspect-ratio: 16 / 11;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--muted);
  overflow: hidden;
}

.shadcn-ui .blog-detail-media img,
.shadcn-ui .blog-detail-related-media img,
.shadcn-ui .blog-detail-recent-media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.shadcn-ui .blog-detail-media > span,
.shadcn-ui .blog-detail-related-media > span,
.shadcn-ui .blog-detail-recent-media {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: var(--muted-foreground);
  font-size: 2rem;
}

.shadcn-ui .blog-detail-media::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 50%;
  background: linear-gradient(180deg, transparent, rgba(9, 9, 11, .62));
  pointer-events: none;
}

.shadcn-ui .blog-detail-media-badge {
  position: absolute;
  left: .75rem;
  bottom: .75rem;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  max-width: calc(100% - 1.5rem);
  min-height: 1.95rem;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 999px;
  background: rgba(9, 9, 11, .72);
  color: #fff;
  font-size: .78rem;
  font-weight: 850;
  padding: .18rem .62rem;
  backdrop-filter: blur(12px);
  box-shadow: 0 10px 26px rgba(9, 9, 11, .18);
}

.shadcn-ui .blog-detail-author-card {
  display: grid;
  grid-template-columns: 2.65rem minmax(0, 1fr);
  gap: .7rem;
  align-items: center;
  color: var(--muted-foreground);
}

.shadcn-ui .blog-detail-author-card > span,
.shadcn-ui .blog-detail-author-large > span,
.shadcn-ui .blog-detail-stat-card i,
.shadcn-ui .blog-detail-summary > span,
.shadcn-ui .blog-detail-side-head span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: var(--radius);
  background: var(--primary);
  color: var(--primary-foreground);
  font-weight: 850;
}

.shadcn-ui .blog-detail-author-card strong {
  display: block;
  color: var(--foreground);
  font-size: .92rem;
}

.shadcn-ui .blog-detail-author-card small {
  color: var(--muted-foreground);
  font-size: .78rem;
  font-weight: 730;
}

.shadcn-ui .blog-detail-stats {
  padding: 1.25rem 0;
}

.shadcn-ui .blog-detail-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}

.shadcn-ui .blog-detail-stat-card {
  display: grid;
  grid-template-columns: 2.6rem minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-items: center;
  gap: .1rem .7rem;
  min-height: 5.5rem;
  padding: .9rem;
}

.shadcn-ui .blog-detail-stat-card i {
  grid-row: 1 / span 2;
}

.shadcn-ui .blog-detail-stat-card strong {
  color: var(--foreground);
  font-size: 1rem;
  line-height: 1.18;
  overflow-wrap: anywhere;
}

.shadcn-ui .blog-detail-stat-card span {
  color: var(--muted-foreground);
  font-size: .78rem;
  font-weight: 780;
}

.shadcn-ui .blog-detail-body {
  padding: 1rem 0 4rem;
}

.shadcn-ui .blog-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(18rem, 27vw, 22rem);
  gap: clamp(1rem, 2vw, 1.4rem);
  align-items: start;
}

.shadcn-ui .blog-detail-main,
.shadcn-ui .blog-detail-sidebar,
.shadcn-ui .blog-detail-recent-list,
.shadcn-ui .blog-detail-category-list {
  display: grid;
  gap: .85rem;
}

.shadcn-ui .blog-detail-sidebar {
  position: sticky;
  top: 5.25rem;
  align-self: start;
}

.shadcn-ui .blog-detail-panel,
.shadcn-ui .blog-detail-side-panel {
  padding: 1rem;
  overflow: hidden;
}

.shadcn-ui .blog-detail-panel-head {
  margin-bottom: .9rem;
}

.shadcn-ui .blog-detail-panel-head.inline {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.shadcn-ui .blog-detail-panel-head h2 {
  margin: .65rem 0 0;
  color: var(--foreground) !important;
  font-size: 1.55rem !important;
  font-weight: 820 !important;
  line-height: 1.18 !important;
  text-wrap: balance;
}

.shadcn-ui .blog-detail-panel-link,
.shadcn-ui .blog-detail-copy-btn,
.shadcn-ui .blog-detail-share-grid button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  min-height: 2.35rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--background);
  color: var(--foreground);
  font-size: .84rem;
  font-weight: 820;
  padding: 0 .75rem;
  text-decoration: none;
  white-space: normal;
}

.shadcn-ui .blog-detail-panel-link:hover,
.shadcn-ui .blog-detail-copy-btn:hover,
.shadcn-ui .blog-detail-share-grid button:hover {
  background: var(--muted);
}

.shadcn-ui .blog-detail-summary {
  display: grid;
  grid-template-columns: 2.6rem minmax(0, 1fr);
  gap: .75rem;
  align-items: start;
  margin-bottom: 1.2rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--muted);
  padding: .9rem;
}

.shadcn-ui .blog-detail-summary strong {
  display: block;
  color: var(--foreground);
  font-size: .95rem;
  font-weight: 850;
}

.shadcn-ui .blog-detail-summary p {
  margin: .28rem 0 0;
  color: var(--muted-foreground) !important;
  line-height: 1.65;
}

.shadcn-ui .blog-detail-content {
  color: var(--foreground);
  font-size: 1.03rem;
  line-height: 1.82;
  overflow-wrap: anywhere;
}

.shadcn-ui .blog-detail-content :where(p, ul, ol, blockquote) {
  margin: 1rem 0 0;
  color: var(--muted-foreground) !important;
  line-height: 1.82;
}

.shadcn-ui .blog-detail-content :where(h2, h3, h4) {
  margin: 1.6rem 0 .65rem;
  color: var(--foreground) !important;
  font-weight: 850 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
}

.shadcn-ui .blog-detail-content h2 {
  font-size: 1.75rem !important;
}

.shadcn-ui .blog-detail-content h3 {
  font-size: 1.35rem !important;
}

.shadcn-ui .blog-detail-content h4 {
  font-size: 1.12rem !important;
}

.shadcn-ui .blog-detail-content :where(ul, ol) {
  padding-left: 1.25rem;
}

.shadcn-ui .blog-detail-content li {
  margin: .45rem 0 0;
}

.shadcn-ui .blog-detail-content a {
  color: var(--foreground);
  text-decoration: underline;
  text-underline-offset: .18em;
}

.shadcn-ui .blog-detail-content blockquote {
  border-left: 3px solid var(--primary);
  border-radius: var(--radius-sm);
  background: var(--muted);
  color: var(--foreground) !important;
  padding: .9rem 1rem;
}

.shadcn-ui .blog-detail-content :where(img, iframe, video) {
  max-width: 100%;
  height: auto;
  border-radius: var(--radius);
}

.shadcn-ui .blog-detail-content img {
  display: block;
  margin: 1.25rem 0;
  border: 1px solid var(--border);
}

.shadcn-ui .blog-detail-content table {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
}

.shadcn-ui .blog-detail-tags {
  display: grid;
  gap: .65rem;
  margin-top: 1.3rem;
  border-top: 1px solid var(--border);
  padding-top: 1rem;
}

.shadcn-ui .blog-detail-tags strong {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  color: var(--foreground);
  font-size: .9rem;
}

.shadcn-ui .blog-detail-tags div {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.shadcn-ui .blog-detail-tags a,
.shadcn-ui .blog-detail-category-list a {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: .45rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--background);
  color: var(--foreground);
  font-size: .8rem;
  font-weight: 780;
  padding: .38rem .7rem;
  text-decoration: none;
}

.shadcn-ui .blog-detail-tags a:hover,
.shadcn-ui .blog-detail-category-list a:hover,
.shadcn-ui .blog-detail-category-list a.is-active {
  background: var(--primary);
  border-color: var(--primary);
  color: var(--primary-foreground);
}

.shadcn-ui .blog-detail-share-mobile {
  display: none;
}

.shadcn-ui .blog-detail-share-grid {
  display: grid;
  gap: .55rem;
  margin-top: .7rem;
}

.shadcn-ui .blog-detail-share-grid a,
.shadcn-ui .blog-detail-share-grid button {
  display: grid;
  grid-template-columns: 2.2rem minmax(0, 1fr);
  align-items: center;
  gap: .55rem;
  width: 100%;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--muted);
  color: var(--foreground);
  padding: .62rem;
  text-align: left;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.shadcn-ui .blog-detail-share-grid i,
.shadcn-ui .blog-detail-recent-media i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: var(--radius-sm);
  background: var(--background);
  color: var(--foreground);
}

.shadcn-ui .blog-detail-share-grid a:hover {
  background: var(--primary);
  border-color: var(--primary);
  color: var(--primary-foreground);
}

.shadcn-ui .blog-detail-related-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .85rem;
}

.shadcn-ui .blog-detail-related-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  overflow: hidden;
}

.shadcn-ui .blog-detail-related-media {
  display: block;
  aspect-ratio: 16 / 10;
  background: var(--muted);
  overflow: hidden;
}

.shadcn-ui .blog-detail-related-card > div {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  padding: .85rem;
}

.shadcn-ui .blog-detail-related-card small {
  color: var(--muted-foreground);
  font-size: .75rem;
  font-weight: 760;
}

.shadcn-ui .blog-detail-related-card h3 {
  margin: .45rem 0 0;
  color: var(--foreground) !important;
  font-size: 1rem !important;
  font-weight: 850 !important;
  line-height: 1.28 !important;
}

.shadcn-ui .blog-detail-related-card h3 a {
  color: inherit;
  text-decoration: none;
}

.shadcn-ui .blog-detail-related-card h3 a:hover {
  text-decoration: underline;
}

.shadcn-ui .blog-detail-related-card p {
  margin: .45rem 0 0;
  color: var(--muted-foreground) !important;
  font-size: .85rem;
  line-height: 1.55;
}

.shadcn-ui .blog-detail-side-head {
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr);
  align-items: center;
  gap: .65rem;
  padding-bottom: .7rem;
  border-bottom: 1px solid var(--border);
}

.shadcn-ui .blog-detail-side-head span {
  width: 2.4rem;
  height: 2.4rem;
}

.shadcn-ui .blog-detail-side-head strong {
  color: var(--foreground);
  font-size: .95rem;
}

.shadcn-ui .blog-detail-author-large {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: .75rem;
  align-items: start;
  margin-top: .8rem;
}

.shadcn-ui .blog-detail-author-large > span {
  width: 3rem;
  height: 3rem;
  border-radius: 999px;
}

.shadcn-ui .blog-detail-author-large h3 {
  margin: 0;
  color: var(--foreground) !important;
  font-size: 1rem !important;
  font-weight: 850 !important;
}

.shadcn-ui .blog-detail-author-large p {
  margin: .35rem 0 0;
  color: var(--muted-foreground) !important;
  font-size: .86rem;
  line-height: 1.55;
}

.shadcn-ui .blog-detail-category-list {
  margin-top: .7rem;
}

.shadcn-ui .blog-detail-category-list a {
  width: 100%;
  border-radius: var(--radius);
  background: var(--muted);
}

.shadcn-ui .blog-detail-recent-list {
  margin-top: .7rem;
}

.shadcn-ui .blog-detail-recent-list a {
  display: grid;
  grid-template-columns: 4.25rem minmax(0, 1fr);
  gap: .65rem;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--muted);
  color: var(--foreground);
  padding: .55rem;
  text-decoration: none;
}

.shadcn-ui .blog-detail-recent-media {
  width: 4.25rem;
  height: 4.25rem;
  border-radius: var(--radius-sm);
  background: var(--background);
  overflow: hidden;
}

.shadcn-ui .blog-detail-recent-list strong {
  display: block;
  color: var(--foreground);
  font-size: .84rem;
  font-weight: 820;
  line-height: 1.32;
  overflow-wrap: anywhere;
}

.shadcn-ui .blog-detail-recent-list small {
  display: block;
  margin-top: .25rem;
  color: var(--muted-foreground);
  font-size: .74rem;
  font-weight: 720;
}

.shadcn-ui .blog-detail-checklist {
  display: grid;
  gap: .55rem;
  margin: .8rem 0 0;
  padding: 0;
  list-style: none;
}

.shadcn-ui .blog-detail-checklist li {
  position: relative;
  color: var(--muted-foreground);
  font-size: .86rem;
  line-height: 1.5;
  padding-left: 1.2rem;
  overflow-wrap: anywhere;
}

.shadcn-ui .blog-detail-checklist li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .48rem;
  width: .42rem;
  height: .42rem;
  border-radius: 999px;
  background: var(--primary);
}

@media (max-width: 1199.98px) {
  .shadcn-ui .blog-detail-hero-grid,
  .shadcn-ui .blog-detail-layout {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .blog-detail-hero-card {
    max-width: 44rem;
  }

  .shadcn-ui .blog-detail-sidebar {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .shadcn-ui .blog-detail-hero-card {
    max-width: none;
  }

  .shadcn-ui .blog-detail-stat-grid,
  .shadcn-ui .blog-detail-related-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .shadcn-ui .blog-detail-share-mobile {
    display: block;
  }

  .shadcn-ui .blog-detail-share-side {
    display: none;
  }
}

@media (max-width: 767.98px) {
  .shadcn-ui .blog-detail-hero {
    padding-top: 2.25rem;
  }

  .shadcn-ui .blog-detail-breadcrumb {
    font-size: .76rem;
  }

  .shadcn-ui .blog-detail-hero-actions,
  .shadcn-ui .blog-detail-panel-head.inline {
    align-items: stretch;
    flex-direction: column;
  }

  .shadcn-ui .blog-detail-hero-actions .btn,
  .shadcn-ui .blog-detail-panel-link,
  .shadcn-ui .blog-detail-copy-btn {
    width: 100%;
  }

  .shadcn-ui .blog-detail-media {
    min-height: 13rem;
  }

  .shadcn-ui .blog-detail-sidebar {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .blog-detail-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .shadcn-ui .blog-detail-panel,
  .shadcn-ui .blog-detail-side-panel {
    padding: .85rem;
  }

  .shadcn-ui .blog-detail-content h2 {
    font-size: 1.45rem !important;
  }

  .shadcn-ui .blog-detail-content h3 {
    font-size: 1.18rem !important;
  }
}

@media (max-width: 575.98px) {
  .shadcn-ui .blog-detail-hero-copy h1 {
    font-size: 2.05rem !important;
    line-height: 1.08 !important;
  }

  .shadcn-ui .blog-detail-meta,
  .shadcn-ui .blog-detail-stat-grid,
  .shadcn-ui .blog-detail-related-grid {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .blog-detail-meta {
    display: grid;
  }

  .shadcn-ui .blog-detail-meta span,
  .shadcn-ui .blog-detail-tags a {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .shadcn-ui .blog-detail-summary,
  .shadcn-ui .blog-detail-author-large {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .blog-detail-recent-list a {
    grid-template-columns: 3.75rem minmax(0, 1fr);
  }

  .shadcn-ui .blog-detail-recent-media {
    width: 3.75rem;
    height: 3.75rem;
  }
}
/* Country detail planning insights redesign */
.shadcn-ui .country-detail-insights {
  position: relative;
  background: linear-gradient(180deg, color-mix(in srgb, var(--card) 96%, transparent), var(--background));
}

.shadcn-ui .country-detail-insights .country-detail-panel-head.inline {
  align-items: flex-start;
  border-bottom: 1px solid var(--border);
  margin-bottom: 1rem;
  padding-bottom: .9rem;
}

.shadcn-ui .country-detail-insight-note {
  display: inline-flex;
  align-items: center;
  max-width: 21rem;
  min-height: 2.3rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--muted);
  color: var(--muted-foreground);
  font-size: .78rem;
  font-weight: 760;
  line-height: 1.35;
  padding: .38rem .72rem;
  overflow-wrap: anywhere;
}

.shadcn-ui .country-detail-insight-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
  gap: .85rem;
  align-items: stretch;
}

.shadcn-ui .country-detail-insight-card {
  --insight-accent: var(--primary);
  --insight-soft: var(--muted);
  position: relative;
  display: grid;
  grid-template-columns: 2.85rem minmax(0, 1fr);
  gap: .85rem;
  align-items: flex-start;
  min-height: 100%;
  border-color: color-mix(in srgb, var(--insight-accent) 22%, var(--border));
  background: linear-gradient(180deg, color-mix(in srgb, var(--insight-soft) 40%, var(--background)), var(--background));
  padding: 1rem;
  overflow: hidden;
}

.shadcn-ui .country-detail-insight-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: .22rem;
  background: var(--insight-accent);
}

.shadcn-ui .country-detail-insight-card.is-tips {
  --insight-accent: #2563eb;
  --insight-soft: rgba(37, 99, 235, .1);
}

.shadcn-ui .country-detail-insight-card.is-budget {
  --insight-accent: #059669;
  --insight-soft: rgba(5, 150, 105, .1);
}

.shadcn-ui .country-detail-insight-card.is-season {
  --insight-accent: #d97706;
  --insight-soft: rgba(217, 119, 6, .11);
}

.shadcn-ui .country-detail-insight-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.85rem;
  height: 2.85rem;
  border-radius: var(--radius);
  background: var(--insight-accent);
  color: #fff;
  box-shadow: 0 10px 24px color-mix(in srgb, var(--insight-accent) 22%, transparent);
}

.shadcn-ui .country-detail-insight-copy {
  display: grid;
  gap: .28rem;
  min-width: 0;
}

.shadcn-ui .country-detail-insight-copy small {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  border: 1px solid color-mix(in srgb, var(--insight-accent) 24%, var(--border));
  border-radius: 999px;
  background: color-mix(in srgb, var(--insight-accent) 8%, var(--background));
  color: color-mix(in srgb, var(--insight-accent) 70%, var(--foreground));
  font-size: .72rem;
  font-weight: 850;
  line-height: 1;
  padding: .26rem .52rem;
  overflow-wrap: anywhere;
}

.shadcn-ui .country-detail-insight-copy h3 {
  margin: .12rem 0 0 !important;
  color: var(--foreground) !important;
  font-size: 1.04rem !important;
  font-weight: 860 !important;
  line-height: 1.22 !important;
  overflow-wrap: anywhere;
}

.shadcn-ui .country-detail-insight-content {
  min-width: 0;
  max-width: 100%;
  margin-top: .15rem !important;
  color: var(--muted-foreground) !important;
  font-size: .92rem;
  line-height: 1.68;
  overflow-wrap: anywhere;
}

.shadcn-ui .country-detail-insight-content :where(p, div, ul, ol, blockquote) {
  max-width: 100%;
  margin: .48rem 0 0 !important;
  color: var(--muted-foreground) !important;
  font-size: .92rem;
  line-height: 1.68;
  overflow-wrap: anywhere;
}

.shadcn-ui .country-detail-insight-content :where(p, div, ul, ol, blockquote):first-child {
  margin-top: 0 !important;
}

.shadcn-ui .country-detail-insight-content :where(ul, ol) {
  padding-left: 1.1rem;
}

.shadcn-ui .country-detail-insight-content li {
  margin-top: .35rem;
}

.shadcn-ui .country-detail-insight-content :where(a) {
  color: var(--foreground);
  text-decoration: underline;
  text-underline-offset: .18em;
}

.shadcn-ui .country-detail-insight-content :where(table) {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
}

.shadcn-ui .country-detail-insight-content :where(img, iframe, video) {
  max-width: 100%;
  height: auto;
  border-radius: var(--radius-sm);
}

@media (max-width: 767.98px) {
  .shadcn-ui .country-detail-insights .country-detail-panel-head.inline {
    align-items: stretch;
  }

  .shadcn-ui .country-detail-insight-note {
    width: 100%;
    max-width: none;
    border-radius: var(--radius);
  }

  .shadcn-ui .country-detail-insight-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 420px) {
  .shadcn-ui .country-detail-insight-card {
    grid-template-columns: 1fr;
    gap: .7rem;
    padding: .9rem;
  }

  .shadcn-ui .country-detail-insight-icon {
    width: 2.55rem;
    height: 2.55rem;
  }
}
/* Hotel and restaurant detail responsive rebuild */
.shadcn-ui .place-detail-page {
  --place-accent: var(--primary);
  --place-soft: var(--muted);
  background: var(--background);
  color: var(--foreground);
  overflow-x: hidden;
}

.shadcn-ui .place-detail-page.is-hotel {
  --place-accent: #2563eb;
  --place-soft: rgba(37, 99, 235, .08);
}

.shadcn-ui .place-detail-page.is-restaurant {
  --place-accent: #dc2626;
  --place-soft: rgba(220, 38, 38, .08);
}

.shadcn-ui .place-detail-page,
.shadcn-ui .place-detail-page * {
  min-width: 0;
}

.shadcn-ui .place-detail-hero {
  position: relative;
  padding: clamp(2.75rem, 5vw, 5rem) 0 2.25rem;
  border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, color-mix(in srgb, var(--place-soft) 48%, var(--background)), var(--background) 64%);
  overflow: hidden;
  isolation: isolate;
}

.shadcn-ui .place-detail-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(24, 24, 27, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(24, 24, 27, .045) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, .62), transparent 78%);
}

.shadcn-ui .place-detail-hero .container,
.shadcn-ui .place-detail-stats .container,
.shadcn-ui .place-detail-body .container {
  position: relative;
  z-index: 1;
}

.shadcn-ui .place-detail-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(20rem, 29rem);
  gap: clamp(1rem, 2.5vw, 2rem);
  align-items: stretch;
}

.shadcn-ui .place-detail-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  max-width: 900px;
}

.shadcn-ui .place-detail-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem;
  margin-bottom: .9rem;
  color: var(--muted-foreground);
  font-size: .82rem;
  font-weight: 740;
}

.shadcn-ui .place-detail-breadcrumb a,
.shadcn-ui .place-detail-breadcrumb span {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  color: var(--muted-foreground);
  text-decoration: none;
}

.shadcn-ui .place-detail-breadcrumb a:hover {
  color: var(--foreground);
}

.shadcn-ui .place-detail-eyebrow,
.shadcn-ui .place-detail-kicker {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  width: fit-content;
  border: 1px solid color-mix(in srgb, var(--place-accent) 22%, var(--border));
  border-radius: 999px;
  background: var(--background);
  color: var(--muted-foreground);
  font-size: .8rem;
  font-weight: 800;
  line-height: 1;
  padding: .48rem .72rem;
  text-decoration: none;
  box-shadow: var(--shadow-xs);
}

.shadcn-ui .place-detail-eyebrow i,
.shadcn-ui .place-detail-kicker i {
  color: var(--place-accent);
}

.shadcn-ui .place-detail-hero-copy h1 {
  margin: 1rem 0 .95rem;
  max-width: min(100%, 940px);
  color: var(--foreground) !important;
  font-size: clamp(2.35rem, 5vw, 4.3rem) !important;
  font-weight: 860 !important;
  line-height: 1.03 !important;
  letter-spacing: 0 !important;
  text-wrap: balance;
  overflow-wrap: anywhere;
}

.shadcn-ui .place-detail-hero-copy p {
  max-width: 740px;
  margin: 0;
  color: var(--muted-foreground) !important;
  font-size: 1.04rem;
  line-height: 1.75;
  overflow-wrap: anywhere;
}

.shadcn-ui .place-detail-meta,
.shadcn-ui .place-detail-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-top: 1.15rem;
}

.shadcn-ui .place-detail-meta span {
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  min-height: 2.1rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--card);
  color: var(--muted-foreground);
  font-size: .8rem;
  font-weight: 780;
  padding: .2rem .72rem;
  overflow-wrap: anywhere;
}

.shadcn-ui .place-detail-btn {
  min-height: 2.78rem;
  border-radius: var(--radius) !important;
  gap: .45rem;
  white-space: normal;
  text-align: center;
}

.shadcn-ui .place-favorite-btn.is-active {
  border-color: rgba(225, 29, 72, .35) !important;
  color: #be123c !important;
  background: rgba(255, 241, 242, .9) !important;
}

.shadcn-ui .place-detail-hero-card,
.shadcn-ui .place-detail-panel,
.shadcn-ui .place-detail-side-panel,
.shadcn-ui .place-detail-stat-card,
.shadcn-ui .place-detail-review-card,
.shadcn-ui .place-detail-menu-grid article {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--card) 94%, transparent);
  box-shadow: var(--shadow-sm);
}

.shadcn-ui .place-detail-hero-card {
  display: flex;
  flex-direction: column;
  gap: .8rem;
  min-height: 100%;
  padding: .8rem;
}

.shadcn-ui .place-detail-media {
  position: relative;
  min-height: 16rem;
  aspect-ratio: 16 / 11;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--muted);
  overflow: hidden;
}

.shadcn-ui .place-detail-media img,
.shadcn-ui .place-detail-gallery-grid img,
.shadcn-ui .place-detail-nearby-list img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.shadcn-ui .place-detail-media > span,
.shadcn-ui .place-detail-nearby-list a > span:first-child {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: var(--muted-foreground);
  font-size: 2rem;
}

.shadcn-ui .place-detail-media::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 54%;
  background: linear-gradient(180deg, transparent, rgba(9, 9, 11, .68));
  pointer-events: none;
}

.shadcn-ui .place-detail-media-badges {
  position: absolute;
  left: .75rem;
  right: .75rem;
  bottom: .75rem;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.shadcn-ui .place-detail-media-badges span {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  max-width: 100%;
  min-height: 1.95rem;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 999px;
  background: rgba(9, 9, 11, .72);
  color: #fff;
  font-size: .78rem;
  font-weight: 850;
  padding: .18rem .62rem;
  backdrop-filter: blur(12px);
  overflow-wrap: anywhere;
}

.shadcn-ui .place-detail-hero-note {
  display: grid;
  grid-template-columns: 2.6rem minmax(0, 1fr);
  gap: .7rem;
  align-items: center;
  color: var(--muted-foreground);
  font-size: .9rem;
  line-height: 1.5;
}

.shadcn-ui .place-detail-hero-note i,
.shadcn-ui .place-detail-stat-card i,
.shadcn-ui .place-detail-side-head span,
.shadcn-ui .place-detail-booking-panel > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: var(--radius);
  background: var(--place-accent);
  color: #fff;
}

.shadcn-ui .place-detail-stats {
  padding: 1.25rem 0;
}

.shadcn-ui .place-detail-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}

.shadcn-ui .place-detail-stat-card {
  display: grid;
  grid-template-columns: 2.6rem minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-items: center;
  gap: .1rem .7rem;
  min-height: 5.5rem;
  padding: .9rem;
}

.shadcn-ui .place-detail-stat-card i {
  grid-row: 1 / span 2;
}

.shadcn-ui .place-detail-stat-card strong {
  color: var(--foreground);
  font-size: 1rem;
  line-height: 1.18;
  overflow-wrap: anywhere;
}

.shadcn-ui .place-detail-stat-card span {
  color: var(--muted-foreground);
  font-size: .78rem;
  font-weight: 780;
}

.shadcn-ui .place-detail-body {
  padding: 1rem 0 4rem;
}

.shadcn-ui .place-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(18rem, 27vw, 22rem);
  gap: clamp(1rem, 2vw, 1.4rem);
  align-items: start;
}

.shadcn-ui .place-detail-main,
.shadcn-ui .place-detail-sidebar,
.shadcn-ui .place-detail-review-list,
.shadcn-ui .place-detail-nearby-list {
  display: grid;
  gap: .85rem;
}

.shadcn-ui .place-detail-sidebar {
  position: sticky;
  top: 5.25rem;
  align-self: start;
}

.shadcn-ui .place-detail-panel,
.shadcn-ui .place-detail-side-panel {
  padding: 1rem;
  overflow: hidden;
}

.shadcn-ui .place-detail-panel-head {
  margin-bottom: .9rem;
}

.shadcn-ui .place-detail-panel-head.inline {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.shadcn-ui .place-detail-panel-head h2 {
  margin: .65rem 0 0;
  color: var(--foreground) !important;
  font-size: 1.6rem !important;
  font-weight: 830 !important;
  line-height: 1.18 !important;
  text-wrap: balance;
}

.shadcn-ui .place-detail-panel-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  min-height: 2.35rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--background);
  color: var(--foreground);
  font-size: .84rem;
  font-weight: 820;
  padding: 0 .75rem;
  text-decoration: none;
  white-space: normal;
}

.shadcn-ui .place-detail-panel-link:hover {
  background: var(--muted);
}

.shadcn-ui .place-detail-richtext {
  color: var(--muted-foreground) !important;
  font-size: 1rem;
  line-height: 1.78;
  overflow-wrap: anywhere;
}

.shadcn-ui .place-detail-richtext :where(p, ul, ol, blockquote) {
  margin: .75rem 0 0;
  color: var(--muted-foreground) !important;
  line-height: 1.78;
}

.shadcn-ui .place-detail-richtext :where(p, ul, ol, blockquote):first-child {
  margin-top: 0;
}

.shadcn-ui .place-detail-chip-grid {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.shadcn-ui .place-detail-chip-grid span {
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  min-height: 2.15rem;
  border: 1px solid color-mix(in srgb, var(--place-accent) 18%, var(--border));
  border-radius: 999px;
  background: color-mix(in srgb, var(--place-accent) 7%, var(--background));
  color: var(--foreground);
  font-size: .84rem;
  font-weight: 780;
  padding: .25rem .72rem;
  overflow-wrap: anywhere;
}

.shadcn-ui .place-detail-chip-grid i {
  color: var(--place-accent);
}

.shadcn-ui .place-detail-map-wrap {
  min-height: 20rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--muted);
  overflow: hidden;
}

.shadcn-ui .place-detail-map {
  width: 100%;
  height: 25rem;
  min-height: 20rem;
}

.shadcn-ui .place-detail-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .65rem;
}

.shadcn-ui .place-detail-gallery-grid a {
  display: block;
  aspect-ratio: 4 / 3;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--muted);
  overflow: hidden;
}

.shadcn-ui .place-detail-menu-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}

.shadcn-ui .place-detail-menu-grid article {
  padding: .85rem;
}

.shadcn-ui .place-detail-menu-grid strong {
  display: block;
  color: var(--foreground);
  font-size: .95rem;
  font-weight: 850;
}

.shadcn-ui .place-detail-menu-grid span {
  display: inline-flex;
  margin-top: .3rem;
  color: var(--place-accent);
  font-size: .86rem;
  font-weight: 850;
}

.shadcn-ui .place-detail-menu-grid p {
  margin: .4rem 0 0;
  color: var(--muted-foreground) !important;
  font-size: .86rem;
  line-height: 1.55;
}

.shadcn-ui .place-detail-empty {
  border: 1px dashed var(--border);
  border-radius: var(--radius);
  background: var(--muted);
  color: var(--muted-foreground);
  padding: .9rem;
  font-size: .9rem;
  line-height: 1.55;
}

.shadcn-ui .place-detail-review-card {
  padding: .85rem;
}

.shadcn-ui .place-detail-review-head {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr) auto;
  gap: .65rem;
  align-items: center;
}

.shadcn-ui .place-detail-review-head > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  background: var(--place-accent);
  color: #fff;
  font-weight: 850;
}

.shadcn-ui .place-detail-review-head strong {
  display: block;
  color: var(--foreground);
  font-size: .92rem;
}

.shadcn-ui .place-detail-review-head small {
  color: var(--muted-foreground);
  font-size: .78rem;
  font-weight: 720;
}

.shadcn-ui .place-detail-review-head em {
  display: inline-flex;
  align-items: center;
  gap: .28rem;
  color: var(--foreground);
  font-size: .8rem;
  font-style: normal;
  font-weight: 850;
}

.shadcn-ui .place-detail-review-card p {
  margin: .7rem 0 0;
  color: var(--muted-foreground) !important;
  line-height: 1.65;
  overflow-wrap: anywhere;
}

.shadcn-ui .place-detail-review-form {
  display: grid;
  gap: .75rem;
  margin-top: .9rem;
  border-top: 1px solid var(--border);
  padding-top: .9rem;
}

.shadcn-ui .place-detail-review-form label {
  display: grid;
  gap: .35rem;
}

.shadcn-ui .place-detail-review-form label > span {
  color: var(--foreground);
  font-size: .82rem;
  font-weight: 850;
}

.shadcn-ui .place-detail-review-form input,
.shadcn-ui .place-detail-review-form select,
.shadcn-ui .place-detail-review-form textarea {
  width: 100%;
  border: 1px solid var(--input) !important;
  border-radius: var(--radius) !important;
  background: var(--background) !important;
  color: var(--foreground) !important;
  padding: .75rem !important;
}

.shadcn-ui .place-detail-review-form button {
  justify-self: start;
}

.shadcn-ui .place-detail-form-status {
  color: #be123c;
  font-size: .86rem;
  font-weight: 760;
}

.shadcn-ui .place-detail-form-status.is-success {
  color: #15803d;
}

.shadcn-ui .place-detail-side-head {
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr);
  align-items: center;
  gap: .65rem;
  padding-bottom: .7rem;
  border-bottom: 1px solid var(--border);
}

.shadcn-ui .place-detail-side-head span {
  width: 2.4rem;
  height: 2.4rem;
}

.shadcn-ui .place-detail-side-head strong {
  color: var(--foreground);
  font-size: .95rem;
}

.shadcn-ui .place-detail-booking-panel {
  display: grid;
  justify-items: center;
  text-align: center;
  gap: .55rem;
}

.shadcn-ui .place-detail-booking-panel h3 {
  margin: 0;
  color: var(--foreground) !important;
  font-size: 1.1rem !important;
  font-weight: 850 !important;
}

.shadcn-ui .place-detail-booking-panel p {
  margin: 0;
  color: var(--muted-foreground) !important;
  line-height: 1.55;
}

.shadcn-ui .place-detail-booking-panel strong {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--muted);
  color: var(--foreground);
  padding: .65rem;
}

.shadcn-ui .place-detail-booking-panel .btn {
  width: 100%;
  border-radius: var(--radius) !important;
}

.shadcn-ui .place-detail-info-list,
.shadcn-ui .place-detail-nearby-list {
  margin-top: .7rem;
}

.shadcn-ui .place-detail-info-list {
  display: grid;
  gap: .55rem;
}

.shadcn-ui .place-detail-info-list div {
  display: grid;
  grid-template-columns: 2.2rem minmax(0, 1fr);
  align-items: center;
  gap: .55rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--muted);
  color: var(--foreground);
  padding: .62rem;
}

.shadcn-ui .place-detail-info-list i,
.shadcn-ui .place-detail-nearby-list a > span:first-child i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: var(--radius-sm);
  background: var(--background);
  color: var(--foreground);
}

.shadcn-ui .place-detail-info-list span {
  display: grid;
  gap: .12rem;
  color: var(--muted-foreground);
  font-size: .74rem;
  font-weight: 750;
}

.shadcn-ui .place-detail-info-list strong {
  color: var(--foreground);
  font-size: .9rem;
  line-height: 1.28;
  overflow-wrap: anywhere;
}

.shadcn-ui .place-detail-info-list a {
  color: inherit;
  text-decoration: none;
}

.shadcn-ui .place-detail-info-list a:hover {
  text-decoration: underline;
}

.shadcn-ui .place-detail-nearby-list a {
  display: grid;
  grid-template-columns: 4.25rem minmax(0, 1fr);
  gap: .65rem;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--muted);
  color: var(--foreground);
  padding: .55rem;
  text-decoration: none;
}

.shadcn-ui .place-detail-nearby-list a > span:first-child {
  width: 4.25rem;
  height: 4.25rem;
  border-radius: var(--radius-sm);
  background: var(--background);
  overflow: hidden;
}

.shadcn-ui .place-detail-nearby-list strong {
  display: block;
  color: var(--foreground);
  font-size: .84rem;
  font-weight: 820;
  line-height: 1.32;
  overflow-wrap: anywhere;
}

.shadcn-ui .place-detail-nearby-list small {
  display: block;
  margin-top: .25rem;
  color: var(--muted-foreground);
  font-size: .74rem;
  font-weight: 720;
}

@media (max-width: 1199.98px) {
  .shadcn-ui .place-detail-hero-grid,
  .shadcn-ui .place-detail-layout {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .place-detail-hero-card {
    max-width: 44rem;
  }

  .shadcn-ui .place-detail-sidebar {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .shadcn-ui .place-detail-hero-card {
    max-width: none;
  }

  .shadcn-ui .place-detail-stat-grid,
  .shadcn-ui .place-detail-gallery-grid,
  .shadcn-ui .place-detail-menu-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .shadcn-ui .place-detail-hero {
    padding-top: 2.25rem;
  }

  .shadcn-ui .place-detail-breadcrumb {
    font-size: .76rem;
  }

  .shadcn-ui .place-detail-hero-actions,
  .shadcn-ui .place-detail-panel-head.inline {
    align-items: stretch;
    flex-direction: column;
  }

  .shadcn-ui .place-detail-hero-actions .btn,
  .shadcn-ui .place-detail-panel-link,
  .shadcn-ui .place-detail-review-form button {
    width: 100%;
  }

  .shadcn-ui .place-detail-media {
    min-height: 13rem;
  }

  .shadcn-ui .place-detail-sidebar {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .place-detail-stat-grid,
  .shadcn-ui .place-detail-gallery-grid,
  .shadcn-ui .place-detail-menu-grid {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .place-detail-panel,
  .shadcn-ui .place-detail-side-panel {
    padding: .85rem;
  }

  .shadcn-ui .place-detail-map {
    height: 20rem;
  }

  .shadcn-ui .place-detail-review-head {
    grid-template-columns: 2.5rem minmax(0, 1fr);
  }

  .shadcn-ui .place-detail-review-head em {
    grid-column: 2;
  }
}

@media (max-width: 575.98px) {
  .shadcn-ui .place-detail-hero-copy h1 {
    font-size: 2.05rem !important;
    line-height: 1.08 !important;
  }

  .shadcn-ui .place-detail-meta {
    display: grid;
  }

  .shadcn-ui .place-detail-meta span {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .shadcn-ui .place-detail-hero-note {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .place-detail-nearby-list a {
    grid-template-columns: 3.75rem minmax(0, 1fr);
  }

  .shadcn-ui .place-detail-nearby-list a > span:first-child {
    width: 3.75rem;
    height: 3.75rem;
  }
}
/* Auth and contact pages responsive rebuild */
.shadcn-ui .auth-modern-page,
.shadcn-ui .contact-modern-page {
  background: var(--background);
  color: var(--foreground);
  overflow-x: hidden;
}

.shadcn-ui .auth-modern-page,
.shadcn-ui .auth-modern-page *,
.shadcn-ui .contact-modern-page,
.shadcn-ui .contact-modern-page * {
  min-width: 0;
}

.shadcn-ui.auth-shell {
  min-height: 100vh;
  background: var(--background);
}

.shadcn-ui .auth-modern-page {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 100vh;
  padding: clamp(1rem, 3vw, 2rem);
  isolation: isolate;
}

.shadcn-ui .auth-modern-page::before,
.shadcn-ui .contact-modern-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(24, 24, 27, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(24, 24, 27, .045) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, .62), transparent 78%);
}

.shadcn-ui .auth-modern-home {
  position: fixed;
  top: 1rem;
  left: 1rem;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 2.45rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--background) 92%, transparent);
  color: var(--foreground);
  font-size: .84rem;
  font-weight: 820;
  padding: 0 .8rem;
  text-decoration: none;
  box-shadow: var(--shadow-xs);
  backdrop-filter: blur(14px);
}

.shadcn-ui .auth-modern-home:hover {
  background: var(--muted);
}

.shadcn-ui .auth-modern-shell {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(22rem, 29rem);
  width: min(100%, 68rem);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--card);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
}

.shadcn-ui .auth-modern-shell.is-wide {
  width: min(100%, 76rem);
  grid-template-columns: minmax(0, .9fr) minmax(26rem, 34rem);
}

.shadcn-ui .auth-modern-story {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1rem;
  min-height: 39rem;
  padding: clamp(1.25rem, 4vw, 2.5rem);
  background: #111827;
  color: #fff;
  overflow: hidden;
}

.shadcn-ui .auth-modern-story::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(255, 255, 255, .08) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .08) 1px, transparent 1px);
  background-size: 36px 36px;
  mask-image: linear-gradient(135deg, rgba(0, 0, 0, .78), transparent 76%);
  pointer-events: none;
}

.shadcn-ui .auth-modern-story > * {
  position: relative;
  z-index: 1;
}

.shadcn-ui .auth-modern-brand,
.shadcn-ui .auth-modern-kicker,
.shadcn-ui .contact-modern-kicker,
.shadcn-ui .contact-modern-breadcrumb,
.shadcn-ui .contact-modern-breadcrumb a {
  display: inline-flex;
  align-items: center;
}

.shadcn-ui .auth-modern-brand {
  gap: .65rem;
  color: #fff;
  font-weight: 880;
}

.shadcn-ui .auth-modern-brand .brand-mark {
  width: 2.65rem;
  height: 2.65rem;
  border-radius: var(--radius);
  background: #fff;
  color: #111827;
}

.shadcn-ui .auth-modern-kicker,
.shadcn-ui .contact-modern-kicker {
  width: fit-content;
  gap: .45rem;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 999px;
  background: rgba(255, 255, 255, .1);
  color: rgba(255, 255, 255, .86);
  font-size: .78rem;
  font-weight: 850;
  line-height: 1;
  padding: .5rem .72rem;
}

.shadcn-ui .auth-modern-story h1 {
  max-width: 11ch;
  margin: 0;
  color: #fff !important;
  font-size: clamp(2.25rem, 5vw, 4rem) !important;
  font-weight: 880 !important;
  line-height: 1.02 !important;
  letter-spacing: 0 !important;
  overflow-wrap: anywhere;
}

.shadcn-ui .auth-modern-story p {
  max-width: 36rem;
  margin: 0;
  color: rgba(255, 255, 255, .74) !important;
  font-size: 1rem;
  line-height: 1.72;
}

.shadcn-ui .auth-modern-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .6rem;
  margin-top: .35rem;
}

.shadcn-ui .auth-modern-metrics div {
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .08);
  padding: .75rem;
}

.shadcn-ui .auth-modern-metrics strong {
  display: block;
  color: #fff;
  font-size: 1.2rem;
  line-height: 1.05;
}

.shadcn-ui .auth-modern-metrics span {
  display: block;
  margin-top: .25rem;
  color: rgba(255, 255, 255, .68);
  font-size: .74rem;
  font-weight: 760;
  line-height: 1.35;
}

.shadcn-ui .auth-modern-checklist,
.shadcn-ui .contact-modern-promise ul {
  display: grid;
  gap: .65rem;
  margin: .25rem 0 0;
  padding: 0;
  list-style: none;
}

.shadcn-ui .auth-modern-checklist li,
.shadcn-ui .contact-modern-promise li {
  display: grid;
  grid-template-columns: 1.3rem minmax(0, 1fr);
  gap: .55rem;
  align-items: start;
  color: rgba(255, 255, 255, .78);
  font-size: .9rem;
  line-height: 1.5;
}

.shadcn-ui .auth-modern-checklist i {
  color: #22c55e;
  margin-top: .1rem;
}

.shadcn-ui .auth-modern-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1rem;
  padding: clamp(1.1rem, 3vw, 2rem);
  background: color-mix(in srgb, var(--card) 96%, transparent);
}

.shadcn-ui .auth-modern-panel-head,
.shadcn-ui .contact-modern-summary-head {
  display: grid;
  grid-template-columns: 2.7rem minmax(0, 1fr);
  gap: .75rem;
  align-items: center;
}

.shadcn-ui .auth-modern-panel-head > span,
.shadcn-ui .contact-modern-summary-head > span,
.shadcn-ui .contact-modern-info-list i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.7rem;
  height: 2.7rem;
  border-radius: var(--radius);
  background: var(--primary);
  color: var(--primary-foreground);
}

.shadcn-ui .auth-modern-panel-head h2,
.shadcn-ui .contact-modern-panel-head h2 {
  margin: 0;
  color: var(--foreground) !important;
  font-size: 1.55rem !important;
  font-weight: 860 !important;
  line-height: 1.16 !important;
  letter-spacing: 0 !important;
}

.shadcn-ui .auth-modern-panel-head p,
.shadcn-ui .contact-modern-panel-head p,
.shadcn-ui .auth-modern-switch,
.shadcn-ui .auth-modern-password-note,
.shadcn-ui .contact-modern-form-foot small {
  margin: .22rem 0 0;
  color: var(--muted-foreground) !important;
  font-size: .9rem;
  line-height: 1.5;
}

.shadcn-ui .auth-modern-alert {
  display: grid;
  grid-template-columns: 1.25rem minmax(0, 1fr);
  gap: .55rem;
  align-items: start;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--muted);
  color: var(--foreground);
  padding: .75rem;
  font-size: .88rem;
  line-height: 1.5;
}

.shadcn-ui .auth-modern-alert.is-success {
  border-color: rgba(22, 163, 74, .22);
  background: rgba(240, 253, 244, .92);
}

.shadcn-ui .auth-modern-alert.is-error,
.shadcn-ui .auth-modern-alert.is-danger {
  border-color: rgba(225, 29, 72, .22);
  background: rgba(255, 241, 242, .92);
}

.shadcn-ui .auth-modern-form,
.shadcn-ui .contact-modern-form {
  display: grid;
  gap: .85rem;
}

.shadcn-ui .auth-modern-grid,
.shadcn-ui .contact-modern-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}

.shadcn-ui .auth-modern-field,
.shadcn-ui .contact-modern-form label {
  display: grid;
  gap: .38rem;
}

.shadcn-ui .auth-modern-field > span,
.shadcn-ui .contact-modern-form label > span {
  color: var(--foreground);
  font-size: .82rem;
  font-weight: 850;
}

.shadcn-ui .auth-modern-field > div {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr) auto;
  align-items: center;
  min-height: 2.95rem;
  border: 1px solid var(--input);
  border-radius: var(--radius);
  background: var(--background);
  overflow: hidden;
}

.shadcn-ui .auth-modern-field > div > i {
  justify-self: center;
  color: var(--muted-foreground);
}

.shadcn-ui .auth-modern-field input,
.shadcn-ui .contact-modern-form input,
.shadcn-ui .contact-modern-form textarea {
  width: 100%;
  border: 0 !important;
  background: transparent !important;
  color: var(--foreground) !important;
  outline: 0;
  padding: .78rem .75rem !important;
  font-size: .95rem;
}

.shadcn-ui .contact-modern-form input,
.shadcn-ui .contact-modern-form textarea {
  border: 1px solid var(--input) !important;
  border-radius: var(--radius) !important;
  background: var(--background) !important;
}

.shadcn-ui .contact-modern-form textarea {
  resize: vertical;
  min-height: 10rem;
}

.shadcn-ui .auth-modern-field > div:focus-within,
.shadcn-ui .contact-modern-form input:focus,
.shadcn-ui .contact-modern-form textarea:focus {
  border-color: color-mix(in srgb, var(--primary) 45%, var(--input)) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 14%, transparent);
}

.shadcn-ui .auth-modern-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.65rem;
  height: 2.65rem;
  border: 0;
  background: transparent;
  color: var(--muted-foreground);
}

.shadcn-ui .auth-modern-ghost:hover {
  color: var(--foreground);
  background: var(--muted);
}

.shadcn-ui .auth-modern-row,
.shadcn-ui .contact-modern-form-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  flex-wrap: wrap;
}

.shadcn-ui .auth-modern-row a,
.shadcn-ui .auth-modern-switch a,
.shadcn-ui .auth-modern-check a {
  color: var(--foreground);
  font-weight: 850;
  text-decoration: none;
}

.shadcn-ui .auth-modern-row a:hover,
.shadcn-ui .auth-modern-switch a:hover,
.shadcn-ui .auth-modern-check a:hover {
  text-decoration: underline;
}

.shadcn-ui .auth-modern-check {
  display: grid;
  grid-template-columns: 1.1rem minmax(0, 1fr);
  gap: .5rem;
  align-items: start;
  color: var(--muted-foreground);
  font-size: .86rem;
  line-height: 1.5;
}

.shadcn-ui .auth-modern-check input {
  width: 1rem;
  height: 1rem;
  margin-top: .16rem;
  accent-color: var(--primary);
}

.shadcn-ui .auth-modern-submit,
.shadcn-ui .contact-modern-submit,
.shadcn-ui .contact-modern-btn {
  min-height: 2.8rem;
  border-radius: var(--radius) !important;
  gap: .45rem;
  font-weight: 850 !important;
  white-space: normal;
}

.shadcn-ui .auth-modern-submit {
  width: 100%;
}

.shadcn-ui .auth-modern-switch {
  display: flex;
  justify-content: center;
  gap: .35rem;
  flex-wrap: wrap;
  border-top: 1px solid var(--border);
  padding-top: 1rem;
  text-align: center;
}

.shadcn-ui .auth-modern-password-note {
  display: grid;
  grid-template-columns: 1.15rem minmax(0, 1fr);
  gap: .45rem;
  align-items: start;
  border: 1px dashed var(--border);
  border-radius: var(--radius);
  background: var(--muted);
  padding: .68rem;
}

.shadcn-ui .auth-modern-password-note.is-success {
  border-color: rgba(22, 163, 74, .28);
  background: rgba(240, 253, 244, .92);
  color: #166534 !important;
}

.shadcn-ui .auth-modern-password-note.is-error {
  border-color: rgba(225, 29, 72, .28);
}

.shadcn-ui .contact-modern-hero {
  position: relative;
  padding: clamp(2.75rem, 5vw, 5rem) 0 2.25rem;
  border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(250, 250, 250, .98), var(--background) 66%);
  overflow: hidden;
  isolation: isolate;
}

.shadcn-ui .contact-modern-hero .container,
.shadcn-ui .contact-modern-body .container {
  position: relative;
  z-index: 1;
}

.shadcn-ui .contact-modern-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(19rem, 28rem);
  gap: clamp(1rem, 2.5vw, 2rem);
  align-items: stretch;
}

.shadcn-ui .contact-modern-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 840px;
}

.shadcn-ui .contact-modern-breadcrumb {
  flex-wrap: wrap;
  gap: .45rem;
  margin-bottom: .9rem;
  color: var(--muted-foreground);
  font-size: .82rem;
  font-weight: 760;
}

.shadcn-ui .contact-modern-breadcrumb a {
  gap: .35rem;
  color: var(--muted-foreground);
  text-decoration: none;
}

.shadcn-ui .contact-modern-breadcrumb a:hover {
  color: var(--foreground);
}

.shadcn-ui .contact-modern-kicker {
  border-color: var(--border);
  background: var(--background);
  color: var(--muted-foreground);
  box-shadow: var(--shadow-xs);
}

.shadcn-ui .contact-modern-kicker i {
  color: var(--primary);
}

.shadcn-ui .contact-modern-copy h1 {
  margin: 1rem 0 .95rem;
  max-width: 13ch;
  color: var(--foreground) !important;
  font-size: clamp(2.25rem, 5vw, 4.1rem) !important;
  font-weight: 880 !important;
  line-height: 1.03 !important;
  letter-spacing: 0 !important;
  overflow-wrap: anywhere;
}

.shadcn-ui .contact-modern-copy p {
  max-width: 720px;
  margin: 0;
  color: var(--muted-foreground) !important;
  font-size: 1.04rem;
  line-height: 1.75;
  overflow-wrap: anywhere;
}

.shadcn-ui .contact-modern-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: 1.3rem;
}

.shadcn-ui .contact-modern-summary,
.shadcn-ui .contact-modern-info-panel,
.shadcn-ui .contact-modern-form-panel,
.shadcn-ui .contact-modern-promise,
.shadcn-ui .contact-modern-map {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--card) 94%, transparent);
  box-shadow: var(--shadow-sm);
}

.shadcn-ui .contact-modern-summary {
  display: grid;
  align-content: space-between;
  gap: 1rem;
  padding: 1rem;
}

.shadcn-ui .contact-modern-summary-head strong {
  display: block;
  color: var(--foreground);
  font-size: 1rem;
}

.shadcn-ui .contact-modern-summary-head small {
  color: var(--muted-foreground);
  font-weight: 720;
}

.shadcn-ui .contact-modern-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .6rem;
}

.shadcn-ui .contact-modern-summary-grid div {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--muted);
  padding: .75rem;
}

.shadcn-ui .contact-modern-summary-grid strong {
  display: block;
  color: var(--foreground);
  font-size: 1rem;
  line-height: 1.1;
}

.shadcn-ui .contact-modern-summary-grid span {
  display: block;
  margin-top: .28rem;
  color: var(--muted-foreground);
  font-size: .74rem;
  font-weight: 740;
  line-height: 1.34;
}

.shadcn-ui .contact-modern-body {
  padding: 1rem 0 4rem;
}

.shadcn-ui .contact-modern-layout {
  display: grid;
  grid-template-columns: minmax(18rem, .42fr) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}

.shadcn-ui .contact-modern-info-panel,
.shadcn-ui .contact-modern-form-panel {
  padding: 1rem;
}

.shadcn-ui .contact-modern-panel-head {
  margin-bottom: .9rem;
}

.shadcn-ui .contact-modern-info-list {
  display: grid;
  gap: .6rem;
}

.shadcn-ui .contact-modern-info-list a,
.shadcn-ui .contact-modern-info-list div {
  display: grid;
  grid-template-columns: 2.6rem minmax(0, 1fr);
  gap: .65rem;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--muted);
  color: var(--foreground);
  padding: .62rem;
  text-decoration: none;
}

.shadcn-ui .contact-modern-info-list i {
  width: 2.35rem;
  height: 2.35rem;
  background: var(--background);
  color: var(--foreground);
}

.shadcn-ui .contact-modern-info-list span {
  display: grid;
  gap: .12rem;
  color: var(--muted-foreground);
  font-size: .74rem;
  font-weight: 760;
}

.shadcn-ui .contact-modern-info-list strong {
  color: var(--foreground);
  font-size: .9rem;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.shadcn-ui .contact-modern-promise {
  margin-top: .85rem;
  padding: .85rem;
  background: var(--background);
}

.shadcn-ui .contact-modern-promise h3 {
  margin: 0 0 .65rem;
  color: var(--foreground) !important;
  font-size: 1rem !important;
  font-weight: 850 !important;
}

.shadcn-ui .contact-modern-promise li {
  color: var(--muted-foreground);
}

.shadcn-ui .contact-modern-promise i {
  color: #16a34a;
  margin-top: .12rem;
}

.shadcn-ui .contact-modern-social {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: .85rem;
}

.shadcn-ui .contact-modern-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--background);
  color: var(--foreground);
  text-decoration: none;
}

.shadcn-ui .contact-modern-social a:hover {
  background: var(--primary);
  color: var(--primary-foreground);
  border-color: var(--primary);
}

.shadcn-ui .contact-modern-form-foot {
  margin-top: .1rem;
}

.shadcn-ui .contact-modern-form-foot small {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}

.shadcn-ui .contact-modern-map {
  margin-top: 1rem;
  overflow: hidden;
  background: var(--muted);
}

.shadcn-ui .contact-modern-map iframe {
  display: block;
  width: 100%;
  min-height: 24rem;
  border: 0;
}

@media (max-width: 1199.98px) {
  .shadcn-ui .auth-modern-shell,
  .shadcn-ui .auth-modern-shell.is-wide,
  .shadcn-ui .contact-modern-hero-grid,
  .shadcn-ui .contact-modern-layout {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .auth-modern-story {
    min-height: auto;
  }
}

@media (max-width: 767.98px) {
  .shadcn-ui .auth-modern-page {
    align-items: start;
    padding: 4.35rem .75rem 1rem;
  }

  .shadcn-ui .auth-modern-home {
    right: 1rem;
    justify-content: center;
  }

  .shadcn-ui .auth-modern-shell,
  .shadcn-ui .auth-modern-shell.is-wide {
    border-radius: var(--radius);
  }

  .shadcn-ui .auth-modern-story,
  .shadcn-ui .auth-modern-panel,
  .shadcn-ui .contact-modern-info-panel,
  .shadcn-ui .contact-modern-form-panel {
    padding: .9rem;
  }

  .shadcn-ui .auth-modern-story h1,
  .shadcn-ui .contact-modern-copy h1 {
    max-width: 100%;
    font-size: 2.1rem !important;
  }

  .shadcn-ui .auth-modern-metrics,
  .shadcn-ui .auth-modern-grid,
  .shadcn-ui .contact-modern-form-grid,
  .shadcn-ui .contact-modern-summary-grid {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .auth-modern-row,
  .shadcn-ui .contact-modern-actions,
  .shadcn-ui .contact-modern-form-foot {
    align-items: stretch;
    flex-direction: column;
  }

  .shadcn-ui .contact-modern-actions .btn,
  .shadcn-ui .contact-modern-submit {
    width: 100%;
  }

  .shadcn-ui .contact-modern-hero {
    padding: 2.25rem 0 1.25rem;
  }

  .shadcn-ui .contact-modern-map iframe {
    min-height: 19rem;
  }
}

@media (max-width: 420px) {
  .shadcn-ui .auth-modern-panel-head,
  .shadcn-ui .contact-modern-summary-head,
  .shadcn-ui .contact-modern-info-list a,
  .shadcn-ui .contact-modern-info-list div {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .auth-modern-panel-head > span,
  .shadcn-ui .contact-modern-summary-head > span,
  .shadcn-ui .contact-modern-info-list i {
    width: 2.45rem;
    height: 2.45rem;
  }
}

/* Modern search experience */
.shadcn-ui .search-modern-page {
  min-height: 100vh;
  overflow-x: hidden;
  background:
    linear-gradient(180deg, #f8fafc 0%, #ffffff 34%, #f6f8fb 100%);
  color: var(--foreground);
}

.shadcn-ui .search-modern-shell {
  width: min(1180px, calc(100% - 2rem));
  margin: 0 auto;
  padding: 2rem 0 4rem;
}

.shadcn-ui .search-breadcrumb {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: 1.1rem;
  color: #64748b;
  font-size: .88rem;
  font-weight: 600;
}

.shadcn-ui .search-breadcrumb a {
  color: #334155;
  text-decoration: none;
}

.shadcn-ui .search-breadcrumb a:hover {
  color: #0f172a;
}

.shadcn-ui .search-breadcrumb i {
  width: .9rem;
  height: .9rem;
  color: #94a3b8;
}

.shadcn-ui .search-modern-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(22rem, .82fr);
  align-items: stretch;
  gap: 1.1rem;
  padding: 1.25rem 0 1.55rem;
}

.shadcn-ui .search-hero-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .9rem;
  padding: 1rem 0;
}

.shadcn-ui .search-eyebrow {
  width: fit-content;
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .42rem .66rem;
  border: 1px solid #dbeafe;
  border-radius: 999px;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: .82rem;
  font-weight: 750;
  line-height: 1.2;
}

.shadcn-ui .search-eyebrow i {
  width: 1rem;
  height: 1rem;
}

.shadcn-ui .search-hero-copy h1 {
  max-width: 12ch;
  margin: 0;
  color: #0f172a;
  font-size: 3.15rem !important;
  line-height: 1.03;
  font-weight: 820;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.shadcn-ui .search-hero-copy p {
  max-width: 44rem;
  margin: 0;
  color: #475569;
  font-size: 1.03rem;
  line-height: 1.72;
}

.shadcn-ui .search-command-panel {
  min-width: 0;
  display: grid;
  gap: .85rem;
  align-content: center;
  padding: 1rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 22px 55px rgba(15, 23, 42, .08);
}

.shadcn-ui .search-command-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: .75rem;
  margin: 0;
}

.shadcn-ui .search-command-input {
  min-width: 0;
  position: relative;
  display: flex;
  align-items: center;
  gap: .65rem;
  min-height: 3.35rem;
  padding: 0 .85rem;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #ffffff;
  color: #0f172a;
}

.shadcn-ui .search-command-input:focus-within {
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, .13);
}

.shadcn-ui .search-command-input > i {
  flex: 0 0 auto;
  width: 1.1rem;
  height: 1.1rem;
  color: #2563eb;
}

.shadcn-ui .search-command-input input {
  min-width: 0;
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  color: #0f172a;
  font: inherit;
  font-weight: 650;
}

.shadcn-ui .search-command-input input::placeholder {
  color: #94a3b8;
  font-weight: 500;
}

.shadcn-ui .search-command-selects {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: .75rem;
}

.shadcn-ui .search-command-selects select {
  width: 100%;
  min-width: 0;
  height: 3rem;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #ffffff;
  color: #0f172a;
  padding: 0 .85rem;
  font-weight: 700;
  outline: 0;
}

.shadcn-ui .search-command-selects select:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, .13);
}

.shadcn-ui .search-command-button {
  min-height: 3.05rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  border: 1px solid #0f172a;
  border-radius: 8px;
  background: #0f172a;
  color: #ffffff;
  font-weight: 800;
  line-height: 1.15;
  transition: transform .16s ease, background .16s ease, box-shadow .16s ease;
}

.shadcn-ui .search-command-button:hover,
.shadcn-ui .search-command-button:focus {
  background: #111827;
  box-shadow: 0 16px 28px rgba(15, 23, 42, .18);
  transform: translateY(-1px);
}

.shadcn-ui .search-command-button i {
  width: 1rem;
  height: 1rem;
}

.shadcn-ui .search-suggestion-strip {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.shadcn-ui .search-suggestion-strip a,
.shadcn-ui .search-token-list a,
.shadcn-ui .search-empty-state a {
  display: inline-flex;
  align-items: center;
  min-height: 2.15rem;
  max-width: 100%;
  padding: .42rem .7rem;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  background: #f8fafc;
  color: #334155;
  text-decoration: none;
  font-size: .86rem;
  font-weight: 700;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.shadcn-ui .search-suggestion-strip a:hover,
.shadcn-ui .search-token-list a:hover,
.shadcn-ui .search-empty-state a:hover {
  border-color: #bfdbfe;
  background: #eff6ff;
  color: #1d4ed8;
}

.shadcn-ui .search-type-strip {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .65rem;
  margin: .4rem 0 1rem;
}

.shadcn-ui .search-type-chip {
  min-width: 0;
  min-height: 3.25rem;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .55rem;
  padding: .68rem .7rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #ffffff;
  color: #334155;
  text-decoration: none;
  box-shadow: 0 12px 30px rgba(15, 23, 42, .045);
}

.shadcn-ui .search-type-chip i {
  width: 1.05rem;
  height: 1.05rem;
  color: #0f766e;
}

.shadcn-ui .search-type-chip span,
.shadcn-ui .search-type-chip strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.shadcn-ui .search-type-chip span {
  font-weight: 760;
}

.shadcn-ui .search-type-chip strong {
  justify-self: end;
  min-width: 1.85rem;
  padding: .16rem .42rem;
  border-radius: 999px;
  background: #f1f5f9;
  color: #0f172a;
  text-align: center;
  font-size: .78rem;
}

.shadcn-ui .search-type-chip:hover,
.shadcn-ui .search-type-chip.is-active {
  border-color: #0f172a;
  background: #0f172a;
  color: #ffffff;
}

.shadcn-ui .search-type-chip:hover i,
.shadcn-ui .search-type-chip.is-active i {
  color: #67e8f9;
}

.shadcn-ui .search-type-chip:hover strong,
.shadcn-ui .search-type-chip.is-active strong {
  background: rgba(255, 255, 255, .14);
  color: #ffffff;
}

.shadcn-ui .search-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .8rem;
  margin: 1rem 0;
}

.shadcn-ui .search-stat-panel {
  min-width: 0;
  display: grid;
  grid-template-columns: 2.6rem minmax(0, 1fr);
  align-items: center;
  gap: .75rem;
  min-height: 5.4rem;
  padding: .9rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 16px 38px rgba(15, 23, 42, .05);
}

.shadcn-ui .search-panel-icon,
.shadcn-ui .search-section-heading > span {
  width: 2.6rem;
  height: 2.6rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #dbeafe;
  border-radius: 8px;
  background: #eff6ff;
  color: #1d4ed8;
}

.shadcn-ui .search-stat-panel strong {
  display: block;
  min-width: 0;
  color: #0f172a;
  font-size: 1.18rem;
  font-weight: 820;
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.shadcn-ui .search-stat-panel span:not(.search-panel-icon) {
  display: block;
  margin-top: .15rem;
  color: #64748b;
  font-size: .86rem;
  font-weight: 650;
}

.shadcn-ui .search-graph-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr);
  gap: .9rem;
  margin: 1rem 0 1.1rem;
}

.shadcn-ui .search-graph-panel,
.shadcn-ui .search-geo-panel,
.shadcn-ui .search-side-panel,
.shadcn-ui .search-results-toolbar,
.shadcn-ui .search-empty-state {
  min-width: 0;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 18px 44px rgba(15, 23, 42, .055);
}

.shadcn-ui .search-graph-panel,
.shadcn-ui .search-geo-panel,
.shadcn-ui .search-side-panel {
  padding: 1rem;
}

.shadcn-ui .search-section-heading {
  min-width: 0;
  display: grid;
  grid-template-columns: 2.6rem minmax(0, 1fr);
  align-items: center;
  gap: .75rem;
  margin-bottom: .95rem;
}

.shadcn-ui .search-section-heading.is-compact {
  grid-template-columns: 2.35rem minmax(0, 1fr);
  margin-bottom: .75rem;
}

.shadcn-ui .search-section-heading.is-compact > span {
  width: 2.35rem;
  height: 2.35rem;
}

.shadcn-ui .search-section-heading h2 {
  margin: 0;
  color: #0f172a;
  font-size: 1.04rem !important;
  line-height: 1.2;
  font-weight: 820;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.shadcn-ui .search-section-heading p {
  margin: .12rem 0 0;
  color: #64748b;
  font-size: .86rem;
  line-height: 1.35;
  font-weight: 600;
  overflow-wrap: anywhere;
}

.shadcn-ui .search-graph-bars {
  display: grid;
  gap: .72rem;
}

.shadcn-ui .search-graph-row {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(8rem, .8fr) minmax(7rem, 1fr) 2.5rem 2.8rem;
  align-items: center;
  gap: .65rem;
}

.shadcn-ui .search-graph-label {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: .48rem;
  color: #334155;
  font-size: .9rem;
  font-weight: 750;
}

.shadcn-ui .search-graph-label i {
  color: #0f766e;
}

.shadcn-ui .search-graph-label span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.shadcn-ui .search-graph-track {
  height: .68rem;
  overflow: hidden;
  border-radius: 999px;
  background: #e2e8f0;
}

.shadcn-ui .search-graph-fill {
  width: var(--bar-width, 0%);
  min-width: .15rem;
  height: 100%;
  display: block;
  border-radius: inherit;
  background: linear-gradient(90deg, #2563eb, #0f766e 62%, #f59e0b);
}

.shadcn-ui .search-graph-row strong,
.shadcn-ui .search-graph-row em {
  color: #0f172a;
  font-size: .86rem;
  font-style: normal;
  font-weight: 800;
  text-align: right;
}

.shadcn-ui .search-graph-row em {
  color: #64748b;
  font-weight: 700;
}

.shadcn-ui .search-geo-body {
  display: grid;
  gap: .55rem;
  padding: .9rem;
  border: 1px solid #dcfce7;
  border-radius: 8px;
  background: #f0fdf4;
}

.shadcn-ui .search-geo-body strong {
  color: #14532d;
  font-size: 1.02rem;
  font-weight: 820;
  overflow-wrap: anywhere;
}

.shadcn-ui .search-geo-body span {
  color: #166534;
  font-size: .9rem;
  font-weight: 700;
}

.shadcn-ui .search-geo-body a {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 2.2rem;
  padding: .42rem .7rem;
  border: 1px solid #bbf7d0;
  border-radius: 8px;
  background: #ffffff;
  color: #166534;
  text-decoration: none;
  font-size: .86rem;
  font-weight: 800;
}

.shadcn-ui .search-content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(17.5rem, 20.5rem);
  align-items: start;
  gap: 1rem;
}

.shadcn-ui .search-results-stack,
.shadcn-ui .search-insight-stack {
  min-width: 0;
  display: grid;
  gap: .9rem;
}

.shadcn-ui .search-results-toolbar {
  min-height: 4.7rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 1rem;
}

.shadcn-ui .search-results-toolbar span {
  display: block;
  color: #64748b;
  font-size: .82rem;
  font-weight: 760;
  text-transform: uppercase;
  letter-spacing: 0;
}

.shadcn-ui .search-results-toolbar h2 {
  margin: .15rem 0 0;
  color: #0f172a;
  font-size: 1.25rem !important;
  line-height: 1.2;
  font-weight: 820;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.shadcn-ui .search-results-toolbar p {
  margin: 0;
  color: #475569;
  font-size: .92rem;
  font-weight: 750;
  white-space: nowrap;
}

.shadcn-ui .search-result-list {
  display: grid;
  gap: .82rem;
}

.shadcn-ui .search-result-modern {
  min-width: 0;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 18px 44px rgba(15, 23, 42, .045);
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.shadcn-ui .search-result-modern:hover,
.shadcn-ui .search-result-modern:focus-within {
  border-color: #bfdbfe;
  box-shadow: 0 24px 60px rgba(37, 99, 235, .12);
  transform: translateY(-1px);
}

.shadcn-ui .search-result-link {
  min-width: 0;
  display: grid;
  grid-template-columns: 9.6rem minmax(0, 1fr) 2.35rem;
  gap: 1rem;
  align-items: stretch;
  padding: .82rem;
  color: inherit;
  text-decoration: none;
}

.shadcn-ui .search-result-media {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  aspect-ratio: 4 / 3;
}

.shadcn-ui .search-result-media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.shadcn-ui .search-result-media span {
  width: 100%;
  height: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #2563eb;
  background: linear-gradient(135deg, #eff6ff, #f0fdf4);
}

.shadcn-ui .search-result-media i {
  width: 2.4rem;
  height: 2.4rem;
}

.shadcn-ui .search-result-body {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: .58rem;
}

.shadcn-ui .search-result-topline {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  flex-wrap: wrap;
}

.shadcn-ui .search-result-badge,
.shadcn-ui .search-result-score {
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  min-height: 1.8rem;
  padding: .25rem .52rem;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 800;
  line-height: 1.15;
}

.shadcn-ui .search-result-badge {
  border: 1px solid #dbeafe;
  background: #eff6ff;
  color: #1d4ed8;
}

.shadcn-ui .search-result-score {
  border: 1px solid #fed7aa;
  background: #fff7ed;
  color: #c2410c;
}

.shadcn-ui .search-result-body h3 {
  margin: 0;
  color: #0f172a;
  font-size: 1.18rem !important;
  line-height: 1.22;
  font-weight: 820;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.shadcn-ui .search-result-body p {
  margin: 0;
  color: #475569;
  font-size: .94rem;
  line-height: 1.58;
  overflow-wrap: anywhere;
}

.shadcn-ui .search-result-meta {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  gap: .48rem .7rem;
  color: #64748b;
  font-size: .84rem;
  font-weight: 650;
}

.shadcn-ui .search-result-meta span {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.shadcn-ui .search-result-meta i {
  flex: 0 0 auto;
  color: #0f766e;
}

.shadcn-ui .search-relevance-track {
  width: 100%;
  height: .46rem;
  overflow: hidden;
  border-radius: 999px;
  background: #e2e8f0;
}

.shadcn-ui .search-relevance-track span {
  width: var(--relevance-width, 0%);
  min-width: .18rem;
  height: 100%;
  display: block;
  border-radius: inherit;
  background: linear-gradient(90deg, #0f172a, #2563eb);
}

.shadcn-ui .search-result-open {
  align-self: center;
  justify-self: center;
  width: 2.25rem;
  height: 2.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  color: #0f172a;
}

.shadcn-ui .search-result-modern:hover .search-result-open {
  border-color: #0f172a;
  background: #0f172a;
  color: #ffffff;
}

.shadcn-ui .search-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  flex-wrap: wrap;
  padding: .55rem 0 0;
}

.shadcn-ui .search-pagination a,
.shadcn-ui .search-pagination span {
  width: 2.35rem;
  height: 2.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #ffffff;
  color: #334155;
  text-decoration: none;
  font-weight: 800;
}

.shadcn-ui .search-pagination a:hover,
.shadcn-ui .search-pagination a.is-active {
  border-color: #0f172a;
  background: #0f172a;
  color: #ffffff;
}

.shadcn-ui .search-pagination .is-disabled {
  pointer-events: none;
  opacity: .45;
}

.shadcn-ui .search-empty-state {
  display: grid;
  justify-items: center;
  gap: .85rem;
  padding: 2.2rem 1rem;
  text-align: center;
}

.shadcn-ui .search-empty-state > span {
  width: 3.25rem;
  height: 3.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #dbeafe;
  border-radius: 8px;
  background: #eff6ff;
  color: #1d4ed8;
}

.shadcn-ui .search-empty-state h2 {
  margin: 0;
  color: #0f172a;
  font-size: 1.35rem !important;
  font-weight: 820;
}

.shadcn-ui .search-empty-state p {
  max-width: 34rem;
  margin: 0;
  color: #475569;
  line-height: 1.62;
}

.shadcn-ui .search-empty-state div {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: .5rem;
}

.shadcn-ui .search-summary-list {
  display: grid;
  gap: .45rem;
  margin: 0;
}

.shadcn-ui .search-summary-list div,
.shadcn-ui .search-side-links a {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .75rem;
  min-height: 2.55rem;
  padding: .55rem .65rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
}

.shadcn-ui .search-summary-list dt {
  color: #64748b;
  font-size: .83rem;
  font-weight: 700;
}

.shadcn-ui .search-summary-list dd {
  margin: 0;
  color: #0f172a;
  font-size: .88rem;
  font-weight: 820;
  text-align: right;
  overflow-wrap: anywhere;
}

.shadcn-ui .search-token-list,
.shadcn-ui .search-side-links {
  min-width: 0;
  display: grid;
  gap: .48rem;
}

.shadcn-ui .search-token-list {
  display: flex;
  flex-wrap: wrap;
}

.shadcn-ui .search-side-links a {
  grid-template-columns: auto minmax(0, 1fr) auto;
  color: #334155;
  text-decoration: none;
  font-weight: 750;
}

.shadcn-ui .search-side-links i {
  color: #2563eb;
}

.shadcn-ui .search-side-links span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.shadcn-ui .search-side-links strong {
  min-width: 1.7rem;
  padding: .12rem .35rem;
  border-radius: 999px;
  background: #e2e8f0;
  color: #0f172a;
  font-size: .78rem;
  text-align: center;
}

.shadcn-ui .search-side-links a:hover {
  border-color: #bfdbfe;
  background: #eff6ff;
  color: #1d4ed8;
}

@media (max-width: 1100px) {
  .shadcn-ui .search-type-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .shadcn-ui .search-modern-hero,
  .shadcn-ui .search-graph-grid,
  .shadcn-ui .search-content-grid {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .search-hero-copy h1 {
    max-width: 100%;
    font-size: 2.55rem !important;
  }

  .shadcn-ui .search-insight-stack {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .shadcn-ui .search-modern-shell {
    width: min(100% - 1rem, 1180px);
    padding: 1.1rem 0 2.5rem;
  }

  .shadcn-ui .search-modern-hero {
    gap: .75rem;
    padding: .6rem 0 .9rem;
  }

  .shadcn-ui .search-hero-copy {
    padding: .35rem 0;
  }

  .shadcn-ui .search-hero-copy h1 {
    font-size: 2.05rem !important;
  }

  .shadcn-ui .search-hero-copy p {
    font-size: .96rem;
  }

  .shadcn-ui .search-command-panel,
  .shadcn-ui .search-graph-panel,
  .shadcn-ui .search-geo-panel,
  .shadcn-ui .search-side-panel {
    padding: .75rem;
  }

  .shadcn-ui .search-command-selects,
  .shadcn-ui .search-dashboard-grid,
  .shadcn-ui .search-insight-stack {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .search-type-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .shadcn-ui .search-graph-row {
    grid-template-columns: minmax(0, 1fr) 3rem;
    gap: .45rem;
  }

  .shadcn-ui .search-graph-track {
    grid-column: 1 / -1;
    order: 3;
  }

  .shadcn-ui .search-graph-row em {
    display: none;
  }

  .shadcn-ui .search-results-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .shadcn-ui .search-results-toolbar p {
    white-space: normal;
  }

  .shadcn-ui .search-result-link {
    grid-template-columns: 1fr;
    gap: .75rem;
  }

  .shadcn-ui .search-result-media {
    aspect-ratio: 16 / 9;
  }

  .shadcn-ui .search-result-open {
    display: none;
  }
}

@media (max-width: 420px) {
  .shadcn-ui .search-type-strip {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .search-type-chip,
  .shadcn-ui .search-stat-panel,
  .shadcn-ui .search-section-heading,
  .shadcn-ui .search-section-heading.is-compact {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .search-panel-icon,
  .shadcn-ui .search-section-heading > span {
    width: 2.35rem;
    height: 2.35rem;
  }
}


/* Search layout overlap fixes */
.shadcn-ui .search-modern-page,
.shadcn-ui .search-modern-page * {
  box-sizing: border-box;
}

.shadcn-ui .search-modern-page :is(.search-modern-hero, .search-type-strip, .search-dashboard-grid, .search-graph-grid, .search-content-grid, .search-result-link, .search-command-form, .search-command-selects, .search-insight-stack) {
  min-width: 0;
}

.shadcn-ui .search-command-panel {
  position: relative;
  z-index: 4;
  overflow: visible;
}

.shadcn-ui .search-command-input {
  overflow: visible;
}

.shadcn-ui .search-command-input .search-suggestions {
  top: calc(100% + .45rem) !important;
  left: 0 !important;
  right: 0 !important;
  width: auto !important;
}

.shadcn-ui .search-type-strip {
  position: relative;
  z-index: 2;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 10.5rem), 1fr));
  align-items: stretch;
}

.shadcn-ui .search-type-chip {
  grid-template-columns: 1.15rem minmax(0, 1fr) auto;
  align-content: center;
  min-height: 3.05rem;
}

.shadcn-ui .search-type-chip span {
  white-space: normal;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.shadcn-ui .search-type-chip strong {
  align-self: center;
}

.shadcn-ui .search-dashboard-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
  align-items: stretch;
}

.shadcn-ui .search-stat-panel {
  height: 100%;
  overflow: hidden;
}

.shadcn-ui .search-stat-panel > div {
  min-width: 0;
}

.shadcn-ui .search-graph-grid {
  align-items: stretch;
}

.shadcn-ui .search-graph-panel,
.shadcn-ui .search-geo-panel,
.shadcn-ui .search-results-toolbar,
.shadcn-ui .search-result-modern,
.shadcn-ui .search-side-panel {
  overflow: hidden;
}

.shadcn-ui .search-section-heading > div,
.shadcn-ui .search-graph-label,
.shadcn-ui .search-result-body,
.shadcn-ui .search-results-toolbar > div {
  min-width: 0;
}

.shadcn-ui .search-graph-row {
  grid-template-columns: minmax(7rem, .75fr) minmax(0, 1fr) minmax(2rem, auto) minmax(2.35rem, auto);
}

.shadcn-ui .search-graph-label span {
  white-space: normal;
  line-height: 1.22;
  overflow-wrap: anywhere;
}

.shadcn-ui .search-graph-track {
  min-width: 0;
}

.shadcn-ui .search-geo-body a {
  width: 100%;
  max-width: 100%;
  justify-content: center;
  text-align: center;
  white-space: normal;
  overflow-wrap: anywhere;
}

.shadcn-ui .search-content-grid {
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 19rem);
}

.shadcn-ui .search-result-link {
  grid-template-columns: minmax(7.5rem, 8.75rem) minmax(0, 1fr) 2.25rem;
  align-items: start;
}

.shadcn-ui .search-result-media {
  width: 100%;
  min-height: 7rem;
}

.shadcn-ui .search-result-badge,
.shadcn-ui .search-result-score {
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}

.shadcn-ui .search-result-meta {
  align-items: flex-start;
}

.shadcn-ui .search-result-meta span {
  flex: 1 1 12rem;
  align-items: flex-start;
  line-height: 1.35;
}

.shadcn-ui .search-relevance-track {
  min-width: 0;
}

.shadcn-ui .search-insight-stack {
  grid-template-columns: 1fr;
}

.shadcn-ui .search-side-links a,
.shadcn-ui .search-summary-list div {
  overflow: hidden;
}

.shadcn-ui .search-side-links span,
.shadcn-ui .search-summary-list dd {
  white-space: normal;
  overflow-wrap: anywhere;
}

@media (max-width: 1180px) {
  .shadcn-ui .search-modern-hero {
    grid-template-columns: minmax(0, 1fr) minmax(19rem, .78fr);
  }

  .shadcn-ui .search-content-grid {
    grid-template-columns: minmax(0, 1fr) minmax(15.5rem, 17.5rem);
  }
}

@media (max-width: 991.98px) {
  .shadcn-ui .search-insight-stack {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
  }

  .shadcn-ui .search-content-grid,
  .shadcn-ui .search-graph-grid,
  .shadcn-ui .search-modern-hero {
    gap: .85rem;
  }
}

@media (max-width: 900px) and (min-width: 768px) {
  .shadcn-ui .search-result-link {
    grid-template-columns: minmax(7rem, 8rem) minmax(0, 1fr);
  }

  .shadcn-ui .search-result-open {
    display: none;
  }
}

@media (max-width: 767.98px) {
  .shadcn-ui .search-modern-shell {
    width: min(100% - 1rem, 1180px);
  }

  .shadcn-ui .search-command-panel,
  .shadcn-ui .search-graph-panel,
  .shadcn-ui .search-geo-panel,
  .shadcn-ui .search-results-toolbar,
  .shadcn-ui .search-result-modern,
  .shadcn-ui .search-side-panel {
    border-radius: 8px;
  }

  .shadcn-ui .search-type-strip {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 9.5rem), 1fr));
  }

  .shadcn-ui .search-graph-row {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
  }

  .shadcn-ui .search-graph-label {
    align-items: flex-start;
  }

  .shadcn-ui .search-graph-row strong {
    justify-self: end;
  }

  .shadcn-ui .search-graph-track {
    grid-column: 1 / -1;
    order: 5;
    width: 100%;
  }

  .shadcn-ui .search-result-link {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .search-result-media {
    min-height: 0;
  }

  .shadcn-ui .search-result-topline,
  .shadcn-ui .search-result-meta {
    gap: .45rem;
  }
}

@media (max-width: 480px) {
  .shadcn-ui .search-modern-shell {
    width: min(100% - .75rem, 1180px);
  }

  .shadcn-ui .search-command-panel,
  .shadcn-ui .search-graph-panel,
  .shadcn-ui .search-geo-panel,
  .shadcn-ui .search-side-panel,
  .shadcn-ui .search-results-toolbar,
  .shadcn-ui .search-result-link {
    padding: .65rem;
  }

  .shadcn-ui .search-type-strip {
    grid-template-columns: 1fr;
  }

  .shadcn-ui .search-type-chip,
  .shadcn-ui .search-stat-panel,
  .shadcn-ui .search-section-heading,
  .shadcn-ui .search-section-heading.is-compact {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .shadcn-ui .search-type-chip {
    grid-template-columns: 1.1rem minmax(0, 1fr) auto;
  }

  .shadcn-ui .search-stat-panel {
    grid-template-columns: 2.35rem minmax(0, 1fr);
  }

  .shadcn-ui .search-hero-copy h1 {
    font-size: 1.82rem !important;
    line-height: 1.08;
  }

  .shadcn-ui .search-result-body h3 {
    font-size: 1.06rem !important;
  }
}


/* AI automation admin cockpit */
.ai-automation-shell {
    --ai-bg: #f8fafc;
    --ai-panel: #ffffff;
    --ai-ink: #0f172a;
    --ai-muted: #64748b;
    --ai-border: #e2e8f0;
    --ai-soft: #f1f5f9;
    --ai-black: #020617;
    --ai-blue: #2563eb;
    --ai-green: #059669;
    --ai-amber: #d97706;
    --ai-red: #dc2626;
    --ai-violet: #7c3aed;
    display: grid;
    gap: 24px;
    color: var(--ai-ink);
    max-width: 1480px;
    margin: 0 auto;
    padding: clamp(16px, 2vw, 28px);
}

.ai-automation-shell *,
.ai-automation-shell *::before,
.ai-automation-shell *::after {
    box-sizing: border-box;
}

.ai-auto-hero,
.ai-auto-panel,
.ai-auto-builder,
.ai-auto-alert,
.ai-auto-flow-card,
.ai-auto-metric,
.ai-auto-batch-card,
.ai-auto-job-card,
.ai-auto-child-card {
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    background: var(--ai-panel);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.ai-auto-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: stretch;
    padding: clamp(22px, 3vw, 34px);
    background: linear-gradient(135deg, #ffffff 0%, #f8fafc 58%, #eef2ff 100%);
}

.ai-auto-hero.is-detail {
    background: linear-gradient(135deg, #ffffff 0%, #f8fafc 62%, #ecfeff 100%);
}

.ai-auto-hero__content,
.ai-auto-section-head,
.ai-auto-panel-head {
    min-width: 0;
}

.ai-auto-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    max-width: 100%;
    color: var(--ai-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
}

.ai-auto-hero h1,
.ai-auto-section-head h2,
.ai-auto-panel-head h2 {
    margin: 8px 0 0;
    color: var(--ai-ink);
    letter-spacing: 0;
    line-height: 1.08;
}

.ai-auto-hero h1 {
    font-size: clamp(28px, 4vw, 48px);
    max-width: 860px;
}

.ai-auto-section-head h2,
.ai-auto-panel-head h2 {
    font-size: clamp(20px, 2vw, 28px);
}

.ai-auto-hero p,
.ai-auto-section-head p {
    margin: 12px 0 0;
    max-width: 760px;
    color: var(--ai-muted);
    font-size: 15px;
    line-height: 1.65;
}

.ai-auto-hero__badges,
.ai-auto-hero__actions,
.ai-auto-builder__actions,
.ai-auto-filter-actions,
.ai-auto-bulkbar,
.ai-auto-job-meta,
.ai-auto-batch-card__stats {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.ai-auto-hero__badges {
    margin-top: 18px;
}

.ai-auto-hero__badges > span,
.ai-auto-chip,
.ai-auto-job-meta span,
.ai-auto-batch-card__stats span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 32px;
    max-width: 100%;
    border: 1px solid var(--ai-border);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.78);
    color: #334155;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.ai-auto-hero__actions {
    justify-content: flex-end;
    align-content: flex-start;
    min-width: min(360px, 100%);
}

.ai-auto-btn,
.ai-auto-icon-link,
.ai-auto-control {
    appearance: none;
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 40px;
    padding: 9px 14px;
    color: var(--ai-ink);
    background: #fff;
    font-size: 13px;
    font-weight: 750;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease;
    white-space: normal;
}

.ai-auto-btn:hover,
.ai-auto-icon-link:hover,
.ai-auto-control:hover {
    border-color: #cbd5e1;
    background: #f8fafc;
    color: var(--ai-ink);
    text-decoration: none;
}

.ai-auto-btn:disabled {
    cursor: not-allowed;
    opacity: .58;
}

.ai-auto-btn-primary {
    background: var(--ai-black);
    border-color: var(--ai-black);
    color: #fff;
}

.ai-auto-btn-primary:hover {
    background: #111827;
    border-color: #111827;
    color: #fff;
}

.ai-auto-btn-secondary {
    background: #fff;
    color: var(--ai-ink);
}

.ai-auto-btn-ghost {
    background: transparent;
}

.ai-auto-btn-danger {
    color: var(--ai-red);
    border-color: #fecaca;
    background: #fff7f7;
}

.ai-auto-alert {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 14px;
    padding: 16px;
}

.ai-auto-alert > i {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: var(--ai-soft);
}

.ai-auto-alert strong,
.ai-auto-alert p,
.ai-auto-alert span {
    display: block;
    overflow-wrap: anywhere;
}

.ai-auto-alert p {
    margin: 4px 0 0;
    color: var(--ai-muted);
    line-height: 1.55;
}

.ai-auto-alert span {
    margin-top: 8px;
    color: #334155;
    font-size: 13px;
    font-weight: 700;
}

.ai-auto-alert.is-warning {
    border-color: #fed7aa;
    background: #fff7ed;
}

.ai-auto-alert.is-info {
    border-color: #bfdbfe;
    background: #eff6ff;
}

.ai-auto-alert.is-danger {
    border-color: #fecaca;
    background: #fff1f2;
}

.ai-auto-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.ai-auto-metric {
    min-width: 0;
    padding: 18px;
}

.ai-auto-metric span,
.ai-auto-metric small {
    display: block;
    color: var(--ai-muted);
    font-size: 12px;
    font-weight: 750;
    overflow-wrap: anywhere;
}

.ai-auto-metric strong {
    display: block;
    margin: 8px 0 3px;
    color: var(--ai-ink);
    font-size: clamp(25px, 3vw, 36px);
    line-height: 1;
    overflow-wrap: anywhere;
}

.detail-metrics .ai-auto-metric strong {
    font-size: clamp(22px, 2.4vw, 30px);
}

.ai-auto-builder {
    padding: clamp(18px, 2.4vw, 28px);
}

.ai-auto-section-head,
.ai-auto-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.ai-auto-builder__grid {
    display: grid;
    grid-template-columns: minmax(280px, 430px) minmax(0, 1fr);
    gap: 18px;
    align-items: stretch;
}

.ai-auto-builder__form {
    display: grid;
    gap: 14px;
    align-content: start;
    padding: 16px;
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    background: #fbfdff;
}

.ai-auto-builder__form label,
.ai-auto-filter-bar label {
    display: grid;
    gap: 7px;
    min-width: 0;
    color: #334155;
    font-size: 12px;
    font-weight: 750;
}

.ai-auto-builder__form label span em {
    color: var(--ai-muted);
    font-style: normal;
    font-weight: 600;
}

.ai-auto-builder input,
.ai-auto-builder textarea,
.ai-auto-builder select,
.ai-auto-filter-bar input,
.ai-auto-filter-bar select,
.ai-auto-bulkbar select {
    width: 100%;
    min-height: 42px;
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    background: #fff;
    color: var(--ai-ink);
    padding: 9px 11px;
    font-size: 14px;
    outline: none;
}

.ai-auto-builder input:focus,
.ai-auto-builder textarea:focus,
.ai-auto-builder select:focus,
.ai-auto-filter-bar input:focus,
.ai-auto-filter-bar select:focus,
.ai-auto-bulkbar select:focus {
    border-color: #94a3b8;
    box-shadow: 0 0 0 3px rgba(148, 163, 184, .18);
}

.ai-auto-builder__toggles {
    display: grid;
    gap: 8px;
    color: var(--ai-muted);
    font-size: 13px;
    line-height: 1.45;
}

.ai-auto-builder__toggles label {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--ai-ink);
    font-size: 13px;
}

.ai-auto-builder__status {
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    background: #fff;
    color: #334155;
    padding: 12px;
    font-size: 13px;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.ai-auto-builder__status[data-state="loading"] {
    border-color: #bfdbfe;
    background: #eff6ff;
    color: #1d4ed8;
}

.ai-auto-builder__status[data-state="success"] {
    border-color: #bbf7d0;
    background: #f0fdf4;
    color: #047857;
}

.ai-auto-builder__status[data-state="error"] {
    border-color: #fecaca;
    background: #fff1f2;
    color: #be123c;
}

.ai-auto-builder__preview {
    min-width: 0;
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}

.ai-auto-preview-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--ai-border);
}

.ai-auto-preview-head strong,
.ai-auto-preview-head span {
    overflow-wrap: anywhere;
}

.ai-auto-preview-head span,
.ai-auto-count {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    border-radius: 999px;
    background: var(--ai-soft);
    color: #334155;
    padding: 5px 9px;
    font-size: 12px;
    font-weight: 750;
}

.ai-auto-city-preview {
    display: grid;
    gap: 10px;
    max-height: 520px;
    overflow: auto;
    padding: 14px;
}

.ai-auto-city-option {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: start;
    gap: 12px;
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    padding: 12px;
    background: #fff;
    cursor: pointer;
}

.ai-auto-city-option:hover {
    border-color: #cbd5e1;
    background: #f8fafc;
}

.ai-auto-city-option span {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.ai-auto-city-option strong,
.ai-auto-city-option small,
.ai-auto-city-option em,
.ai-auto-city-option b {
    overflow-wrap: anywhere;
}

.ai-auto-city-option small,
.ai-auto-city-option em {
    color: var(--ai-muted);
    font-size: 12px;
    font-style: normal;
    line-height: 1.45;
}

.ai-auto-city-option b {
    min-width: 28px;
    height: 28px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eef2ff;
    color: #3730a3;
    font-size: 12px;
}


.ai-auto-builder textarea {
    min-height: 112px;
    resize: vertical;
    line-height: 1.55;
}

.ai-auto-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.ai-auto-builder__grid--bulk {
    grid-template-columns: minmax(300px, 500px) minmax(0, 1fr);
}

.ai-auto-builder__toggles--grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ai-auto-country-preview {
    display: grid;
    gap: 12px;
    max-height: 640px;
    overflow: auto;
    padding: 14px;
}

.ai-auto-country-option {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: start;
    gap: 12px;
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    padding: 14px;
    background: #fff;
    cursor: pointer;
}

.ai-auto-country-option:hover {
    border-color: #cbd5e1;
    background: #f8fafc;
}

.ai-auto-country-option__body {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.ai-auto-country-option strong,
.ai-auto-country-option small,
.ai-auto-country-option em,
.ai-auto-country-option b {
    overflow-wrap: anywhere;
}

.ai-auto-country-option small,
.ai-auto-country-option em {
    color: var(--ai-muted);
    font-size: 12px;
    font-style: normal;
    line-height: 1.45;
}

.ai-auto-country-option b {
    min-width: 28px;
    height: 28px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #ecfeff;
    color: #0f766e;
    font-size: 12px;
}

.ai-auto-city-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    min-width: 0;
}

.ai-auto-city-chip-row span {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #334155;
    padding: 3px 8px;
    font-size: 11px;
    font-weight: 700;
    max-width: 100%;
    overflow-wrap: anywhere;
}
.ai-auto-empty-state {
    min-height: 160px;
    display: grid;
    place-items: center;
    gap: 8px;
    color: var(--ai-muted);
    text-align: center;
    border: 1px dashed #cbd5e1;
    border-radius: 8px;
    padding: 18px;
}

.ai-auto-empty-state.is-large {
    min-height: 220px;
}

.ai-auto-empty-state i {
    width: 38px;
    height: 38px;
    color: #334155;
}

.ai-auto-flow {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.ai-auto-flow-card {
    display: grid;
    gap: 10px;
    min-width: 0;
    padding: 14px;
}

.ai-auto-flow-card > div:first-child {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--ai-muted);
    font-size: 12px;
    font-weight: 750;
}

.ai-auto-flow-card strong {
    color: var(--ai-ink);
    font-size: 26px;
    line-height: 1;
}

.ai-auto-flow-card small {
    color: var(--ai-muted);
    font-size: 12px;
}

.ai-auto-flow-card.success { border-color: #bbf7d0; }
.ai-auto-flow-card.info { border-color: #bfdbfe; }
.ai-auto-flow-card.warning { border-color: #fed7aa; }
.ai-auto-flow-card.danger { border-color: #fecaca; }

.ai-auto-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 390px);
    gap: 18px;
    align-items: start;
}

.ai-auto-main,
.ai-auto-side {
    display: grid;
    gap: 18px;
    min-width: 0;
}

.ai-auto-panel {
    min-width: 0;
    padding: clamp(16px, 2vw, 22px);
}

.ai-auto-panel.is-compact {
    padding: 16px;
}

.ai-auto-panel-head {
    align-items: center;
}

.ai-auto-batch-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.ai-auto-batch-card,
.ai-auto-child-card {
    display: grid;
    gap: 12px;
    padding: 14px;
    color: var(--ai-ink);
    text-decoration: none;
}

.ai-auto-batch-card:hover,
.ai-auto-child-card:hover {
    border-color: #cbd5e1;
    color: var(--ai-ink);
    text-decoration: none;
    transform: translateY(-1px);
}

.ai-auto-batch-card__top,
.ai-auto-child-card > div:first-child,
.ai-auto-job-card__head,
.ai-auto-job-progress {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.ai-auto-batch-card strong,
.ai-auto-child-card strong,
.ai-auto-child-card p,
.ai-auto-child-card em {
    overflow-wrap: anywhere;
}

.ai-auto-batch-card strong,
.ai-auto-child-card strong {
    font-size: 15px;
}

.ai-auto-batch-card small,
.ai-auto-child-card small,
.ai-auto-child-card p {
    color: var(--ai-muted);
    font-size: 12px;
}

.ai-auto-filter-bar {
    display: grid;
    grid-template-columns: minmax(150px, 190px) minmax(180px, 240px) minmax(220px, 1fr) auto;
    gap: 12px;
    align-items: end;
    margin-bottom: 16px;
}

.ai-auto-filter-actions {
    justify-content: flex-end;
}

.ai-auto-bulkbar {
    justify-content: space-between;
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    background: #fbfdff;
    padding: 10px;
    margin-bottom: 12px;
}

.ai-auto-bulkbar label {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #334155;
    font-size: 13px;
    font-weight: 750;
}

.ai-auto-bulkbar select {
    width: min(100%, 300px);
}

.ai-auto-job-list {
    display: grid;
    gap: 12px;
}

.ai-auto-job-card {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 12px;
    padding: 14px;
}

.ai-auto-check {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 4px;
}

.ai-auto-job-card__body {
    display: grid;
    gap: 12px;
    min-width: 0;
}

.ai-auto-job-card__head > div {
    min-width: 0;
}

.ai-auto-job-card h3 {
    margin: 9px 0 3px;
    color: var(--ai-ink);
    font-size: 18px;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.ai-auto-job-card p,
.ai-auto-job-note {
    margin: 0;
    color: var(--ai-muted);
    font-size: 13px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.ai-auto-job-note {
    border-left: 3px solid var(--ai-border);
    padding-left: 10px;
}

.ai-auto-job-note.is-error {
    border-left-color: var(--ai-red);
    color: #be123c;
}

.ai-auto-job-meta {
    align-items: flex-start;
}

.ai-auto-icon-link {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    padding: 0;
}

.ai-auto-progress {
    width: 100%;
    height: 8px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}

.ai-auto-progress span {
    display: block;
    height: 100%;
    min-width: 3px;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--ai-blue), var(--ai-green));
}

.ai-auto-job-progress {
    align-items: center;
}

.ai-auto-job-progress .ai-auto-progress {
    flex: 1 1 auto;
}

.ai-auto-job-progress strong,
.ai-auto-job-progress b {
    flex: 0 0 auto;
    color: #334155;
    font-size: 12px;
}

.ai-auto-status {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    width: fit-content;
    max-width: 100%;
    min-height: 28px;
    border-radius: 999px;
    padding: 5px 9px;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    overflow-wrap: anywhere;
}

.ai-auto-status.is-pending { background: #fff7ed; color: #9a3412; }
.ai-auto-status.is-running { background: #eff6ff; color: #1d4ed8; }
.ai-auto-status.is-completed { background: #ecfdf5; color: #047857; }
.ai-auto-status.is-failed { background: #fff1f2; color: #be123c; }
.ai-auto-status.is-cancelled { background: #f1f5f9; color: #475569; }

.ai-auto-stack,
.ai-auto-provider-list,
.ai-auto-mini-bars,
.ai-auto-control-stack {
    display: grid;
    gap: 10px;
}

.ai-auto-stack-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    background: #fff;
    color: var(--ai-ink);
    padding: 11px;
    text-decoration: none;
}

.ai-auto-stack-item:hover {
    border-color: #cbd5e1;
    color: var(--ai-ink);
    text-decoration: none;
}

.ai-auto-stack-item.is-error {
    border-color: #fecaca;
    background: #fff7f7;
}

.ai-auto-stack-item span {
    display: grid;
    gap: 3px;
    min-width: 0;
    font-weight: 750;
    overflow-wrap: anywhere;
}

.ai-auto-stack-item small {
    color: var(--ai-muted);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
}

.ai-auto-stack-item em {
    flex: 0 0 auto;
    color: #334155;
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
    text-align: right;
}

.ai-auto-muted {
    margin: 0;
    color: var(--ai-muted);
    font-size: 13px;
}

.ai-auto-mini-bars div,
.ai-auto-provider-list span {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    background: #fff;
    padding: 10px 11px;
    color: #334155;
    font-size: 13px;
    font-weight: 750;
    overflow-wrap: anywhere;
}

.ai-auto-mini-bars strong,
.ai-auto-provider-list strong {
    color: var(--ai-ink);
}

.ai-auto-asset-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.ai-auto-asset-grid.is-detail {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ai-auto-asset {
    position: relative;
    display: grid;
    place-items: end start;
    min-height: 118px;
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    overflow: hidden;
    background: var(--ai-soft);
    color: #fff;
    text-decoration: none;
}

.ai-auto-asset:hover {
    color: #fff;
    text-decoration: none;
}

.ai-auto-asset img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ai-auto-asset > i {
    position: absolute;
    inset: 0;
    margin: auto;
    width: 34px;
    height: 34px;
    color: #475569;
}

.ai-auto-asset span {
    position: relative;
    z-index: 1;
    width: 100%;
    padding: 32px 9px 9px;
    background: linear-gradient(180deg, rgba(2, 6, 23, 0), rgba(2, 6, 23, .72));
    font-size: 12px;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.ai-auto-pagination {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}

.ai-auto-pagination a {
    min-width: 36px;
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    background: #fff;
    color: var(--ai-ink);
    text-decoration: none;
    font-size: 13px;
    font-weight: 800;
}

.ai-auto-pagination a.is-active {
    background: var(--ai-black);
    border-color: var(--ai-black);
    color: #fff;
}

.ai-auto-timeline {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.ai-auto-timeline article {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 4px 10px;
    align-items: center;
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    background: #fff;
    padding: 13px;
}

.ai-auto-timeline article > span {
    grid-row: span 2;
    width: 11px;
    height: 11px;
    border-radius: 999px;
    background: #cbd5e1;
}

.ai-auto-timeline article.is-done > span {
    background: var(--ai-green);
}

.ai-auto-timeline strong,
.ai-auto-timeline small {
    overflow-wrap: anywhere;
}

.ai-auto-timeline strong {
    font-size: 13px;
}

.ai-auto-timeline small {
    color: var(--ai-muted);
    font-size: 12px;
}

.ai-auto-code {
    max-height: 520px;
    overflow: auto;
    margin: 0;
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    background: #020617;
    color: #e2e8f0;
    padding: 16px;
    font-size: 12px;
    line-height: 1.65;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.ai-auto-child-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.ai-auto-child-card em {
    color: var(--ai-red);
    font-size: 12px;
    font-style: normal;
    line-height: 1.45;
}

.ai-auto-control-stack form {
    margin: 0;
}

.ai-auto-control {
    width: 100%;
    justify-content: flex-start;
    min-height: 58px;
    text-align: left;
    padding: 12px;
}

.ai-auto-control i {
    flex: 0 0 auto;
}

.ai-auto-control span {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.ai-auto-control small {
    color: var(--ai-muted);
    font-size: 12px;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.ai-auto-copy {
    flex: 0 0 auto;
}

.ai-auto-settings-panel {
    scroll-margin-top: 96px;
    padding: clamp(18px, 2.4vw, 28px);
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

.ai-auto-settings-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 16px;
}

.ai-auto-settings-head > div:first-child {
    min-width: 0;
}

.ai-auto-settings-head h2 {
    margin: 8px 0 0;
    color: var(--ai-ink);
    font-size: clamp(20px, 2vw, 28px);
    line-height: 1.08;
    letter-spacing: 0;
}

.ai-auto-settings-head p {
    margin: 10px 0 0;
    max-width: 820px;
    color: var(--ai-muted);
    font-size: 14px;
    line-height: 1.65;
}

.ai-auto-settings-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex: 0 0 auto;
}

.ai-auto-preset-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.ai-auto-preset {
    appearance: none;
    display: grid;
    gap: 5px;
    min-height: 88px;
    width: 100%;
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    background: #fff;
    color: var(--ai-ink);
    padding: 14px;
    text-align: left;
    cursor: pointer;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
}

.ai-auto-preset:hover {
    border-color: #94a3b8;
    background: #f8fafc;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .08);
    transform: translateY(-1px);
}

.ai-auto-preset strong,
.ai-auto-preset span {
    display: block;
    overflow-wrap: anywhere;
}

.ai-auto-preset strong {
    font-size: 14px;
    line-height: 1.25;
}

.ai-auto-preset span {
    color: var(--ai-muted);
    font-size: 12px;
    line-height: 1.45;
}

.ai-auto-settings-form {
    display: grid;
    gap: 16px;
}

.ai-auto-settings-group {
    min-width: 0;
    margin: 0;
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    background: #fff;
    padding: 16px;
}

.ai-auto-settings-group legend {
    display: grid;
    gap: 3px;
    width: auto;
    max-width: 100%;
    margin: 0 0 12px;
    padding: 0 8px;
    color: var(--ai-ink);
    float: none;
}

.ai-auto-settings-group legend span,
.ai-auto-settings-group legend small {
    display: block;
    overflow-wrap: anywhere;
}

.ai-auto-settings-group legend span {
    font-size: 14px;
    font-weight: 800;
}

.ai-auto-settings-group legend small {
    color: var(--ai-muted);
    font-size: 12px;
    font-weight: 600;
}

.ai-auto-form-grid--dense {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ai-auto-settings-form label {
    min-width: 0;
}

.ai-auto-settings-form label:not(.ai-auto-switch) {
    display: grid;
    gap: 7px;
    color: #334155;
    font-size: 12px;
    font-weight: 750;
}

.ai-auto-settings-form input:not([type="checkbox"]),
.ai-auto-settings-form select {
    width: 100%;
    min-height: 42px;
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    background: #fff;
    color: var(--ai-ink);
    padding: 9px 11px;
    font-size: 14px;
    line-height: 1.25;
    outline: none;
}

.ai-auto-settings-form input:not([type="checkbox"]):focus,
.ai-auto-settings-form select:focus {
    border-color: #94a3b8;
    box-shadow: 0 0 0 3px rgba(148, 163, 184, .18);
}

.ai-auto-toggle-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 14px;
}

.ai-auto-switch {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    align-items: flex-start;
    min-width: 0;
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    background: #f8fafc;
    padding: 12px;
}

.ai-auto-switch input {
    width: 18px;
    height: 18px;
    margin: 2px 0 0;
    accent-color: var(--ai-black);
}

.ai-auto-switch span,
.ai-auto-switch strong,
.ai-auto-switch small {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.ai-auto-switch strong {
    color: var(--ai-ink);
    font-size: 13px;
    line-height: 1.3;
}

.ai-auto-switch small {
    margin-top: 3px;
    color: var(--ai-muted);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.45;
}

.ai-auto-worker-card {
    display: grid;
    gap: 14px;
    margin-top: 14px;
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    background: #f8fafc;
    padding: 14px;
}

.ai-auto-worker-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.ai-auto-worker-head p {
    margin: 0;
    max-width: 760px;
    color: var(--ai-muted);
    font-size: 13px;
    font-weight: 650;
    line-height: 1.55;
}

.ai-auto-worker-head p strong {
    display: block;
    margin-top: 4px;
    color: var(--ai-ink);
}

.ai-auto-worker-state {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.ai-auto-worker-state small,
.ai-auto-form-grid label small {
    color: var(--ai-muted);
    font-size: 12px;
    font-weight: 650;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.ai-auto-worker-command-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
    gap: 12px;
}

.ai-auto-worker-command-grid article {
    display: grid;
    gap: 9px;
    min-width: 0;
    border: 1px solid var(--ai-border);
    border-radius: 8px;
    background: #fff;
    padding: 12px;
}

.ai-auto-worker-command-grid article.is-primary {
    border-color: rgba(15, 118, 110, 0.28);
    background: linear-gradient(180deg, #ffffff, #ecfdf5);
}

.ai-auto-worker-command-grid article > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
}

.ai-auto-worker-command-grid strong {
    color: var(--ai-ink);
    font-size: 13px;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.ai-auto-worker-command-grid .ai-auto-code {
    max-height: 152px;
    padding: 11px;
    font-size: 11px;
    line-height: 1.55;
}

.ai-auto-copy-mini {
    min-height: 32px;
    padding: 0 10px;
    font-size: 12px;
    flex: 0 0 auto;
}

.ai-auto-token-refresh {
    min-height: 48px;
    align-self: stretch;
}

.ai-auto-worker-note {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 11px 12px;
    border: 1px dashed rgba(15, 118, 110, 0.28);
    border-radius: 8px;
    background: #f0fdfa;
    color: #115e59;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.5;
}

.ai-auto-worker-note i {
    margin-top: 2px;
    flex: 0 0 auto;
}

.ai-auto-worker-note span {
    min-width: 0;
    overflow-wrap: anywhere;
}

@media (max-width: 1180px) {
    .ai-auto-form-grid--dense,
    .ai-auto-toggle-grid,
    .ai-auto-worker-command-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .ai-auto-settings-head,
    .ai-auto-worker-head {
        align-items: stretch;
        flex-direction: column;
    }

    .ai-auto-settings-actions,
    .ai-auto-settings-actions .ai-auto-btn {
        width: 100%;
    }

    .ai-auto-preset-row,
    .ai-auto-form-grid--dense,
    .ai-auto-toggle-grid,
    .ai-auto-worker-command-grid,
    .ai-auto-builder__grid--bulk {
        grid-template-columns: 1fr;
    }

    .ai-auto-hero__actions {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 720px) {
    .ai-auto-settings-panel,
    .ai-auto-settings-group {
        padding: 14px;
    }

    .ai-auto-preset {
        min-height: 0;
    }

    .ai-auto-hero__badges > span,
    .ai-auto-chip {
        width: 100%;
        justify-content: flex-start;
    }

    .ai-auto-preview-head,
    .ai-auto-worker-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .ai-auto-city-option,
    .ai-auto-country-option,
    .ai-auto-switch {
        gap: 9px;
    }
}

@media (max-width: 1240px) {
    .ai-auto-layout {
        grid-template-columns: 1fr;
    }

    .ai-auto-side {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ai-auto-flow {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ai-auto-batch-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .ai-auto-hero,
    .ai-auto-builder__grid,
    .ai-auto-filter-bar {
        grid-template-columns: 1fr;
    }

    .ai-auto-hero__actions,
    .ai-auto-filter-actions {
        justify-content: flex-start;
    }

    .ai-auto-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ai-auto-timeline {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ai-auto-child-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .ai-automation-shell {
        padding: 12px;
        gap: 16px;
    }

    .ai-auto-hero,
    .ai-auto-builder,
    .ai-auto-panel {
        padding: 14px;
    }

    .ai-auto-hero h1 {
        font-size: 30px;
    }

    .ai-auto-hero__actions,
    .ai-auto-builder__actions,
    .ai-auto-filter-actions,
    .ai-auto-bulkbar,
    .ai-auto-section-head,
    .ai-auto-panel-head {
        align-items: stretch;
        flex-direction: column;
    }

    .ai-auto-btn,
    .ai-auto-bulkbar select,
    .ai-auto-icon-link {
        width: 100%;
    }

    .ai-auto-metrics,
    .ai-auto-flow,
    .ai-auto-side,
    .ai-auto-batch-grid,
    .ai-auto-timeline,
    .ai-auto-asset-grid,
    .ai-auto-asset-grid.is-detail,
    .ai-auto-form-grid,
    .ai-auto-builder__toggles--grid {
        grid-template-columns: 1fr;
    }

    .ai-auto-job-card {
        grid-template-columns: 1fr;
    }

    .ai-auto-check {
        justify-content: flex-start;
        padding-top: 0;
    }

    .ai-auto-job-card__head,
    .ai-auto-job-progress,
    .ai-auto-batch-card__top,
    .ai-auto-child-card > div:first-child {
        align-items: flex-start;
        flex-direction: column;
    }

    .ai-auto-icon-link {
        height: 40px;
    }

    .ai-auto-city-option,
    .ai-auto-country-option {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .ai-auto-city-option b,
    .ai-auto-country-option b {
        grid-column: 2;
        justify-self: start;
    }
}

/* Skyscanner-safe flight search widgets */
.shadcn-ui .home-flight-band {
    padding-top: 1rem !important;
    padding-bottom: 1.25rem !important;
    background: var(--background) !important;
}

.shadcn-ui .flight-widget,
.shadcn-ui .flight-widget * {
    min-width: 0;
}

.shadcn-ui .flight-widget {
    display: grid;
    gap: 16px;
    width: 100%;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: linear-gradient(180deg, #ffffff, #fafafa);
    color: var(--foreground);
    box-shadow: var(--shadow-sm);
    padding: clamp(16px, 2.4vw, 26px);
    overflow: hidden;
}

.shadcn-ui .country-detail-panel .flight-widget,
.shadcn-ui .flight-widget--country {
    margin: 0;
}

.shadcn-ui .flight-widget__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.shadcn-ui .flight-widget__head h2 {
    margin: 10px 0 6px;
    color: var(--foreground) !important;
    font-size: clamp(24px, 2.2vw, 34px) !important;
    line-height: 1.12 !important;
    font-weight: 850 !important;
}

.shadcn-ui .flight-widget__head p,
.shadcn-ui .flight-widget__intro {
    max-width: 760px;
    margin: 0;
    color: var(--muted-foreground) !important;
    font-size: 14px;
    line-height: 1.7;
}

.shadcn-ui .flight-widget__kicker,
.shadcn-ui .flight-widget__brand-link,
.shadcn-ui .flight-route-card__top span,
.shadcn-ui .flight-widget__keywords span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    width: fit-content;
    max-width: 100%;
    min-height: 30px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--secondary);
    color: var(--foreground);
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    overflow-wrap: anywhere;
}

.shadcn-ui .flight-widget__brand-link {
    flex: 0 0 auto;
    background: var(--primary);
    border-color: var(--primary);
    color: var(--primary-foreground);
}

.shadcn-ui .flight-widget__brand-link:hover {
    background: #27272a;
    color: #ffffff;
}

.shadcn-ui .flight-widget__controls {
    display: grid;
    grid-template-columns: minmax(190px, 1.45fr) repeat(3, minmax(132px, 1fr));
    gap: 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: #ffffff;
    padding: 10px;
}

.shadcn-ui .flight-widget__controls label {
    display: grid;
    gap: 6px;
    margin: 0;
}

.shadcn-ui .flight-widget__controls label span {
    color: var(--muted-foreground);
    font-size: 12px;
    font-weight: 800;
}

.shadcn-ui .flight-widget__controls select,
.shadcn-ui .flight-widget__controls input {
    width: 100%;
    min-height: 42px;
    border: 1px solid var(--input) !important;
    border-radius: var(--radius-sm) !important;
    background: var(--background) !important;
    color: var(--foreground) !important;
    padding: 8px 10px !important;
    font-size: 14px;
}

.shadcn-ui .flight-widget__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.shadcn-ui .flight-route-card {
    display: grid;
    gap: 12px;
    align-content: start;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: #ffffff;
    box-shadow: var(--shadow-xs);
    padding: 14px;
}

.shadcn-ui .flight-route-card__top,
.shadcn-ui .flight-route-card__actions,
.shadcn-ui .flight-widget__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.shadcn-ui .flight-route-card__top i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: var(--radius-sm);
    background: var(--primary);
    color: var(--primary-foreground);
}

.shadcn-ui .flight-route-card h3 {
    margin: 0;
    color: var(--foreground) !important;
    font-size: 18px !important;
    line-height: 1.2 !important;
    font-weight: 850 !important;
    overflow-wrap: anywhere;
}

.shadcn-ui .flight-route-card p,
.shadcn-ui .flight-route-card small,
.shadcn-ui .flight-widget__tips li {
    margin: 0;
    color: var(--muted-foreground) !important;
    font-size: 13px;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.shadcn-ui .flight-route-card dl {
    display: grid;
    gap: 6px;
    margin: 0;
}

.shadcn-ui .flight-route-card dl div {
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 8px;
    align-items: start;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--muted);
    padding: 8px;
}

.shadcn-ui .flight-route-card dt,
.shadcn-ui .flight-route-card dd {
    margin: 0;
    font-size: 12px;
    line-height: 1.35;
}

.shadcn-ui .flight-route-card dt {
    color: var(--muted-foreground);
    font-weight: 800;
}

.shadcn-ui .flight-route-card dd {
    color: var(--foreground);
    font-weight: 850;
    overflow-wrap: anywhere;
}

.shadcn-ui .flight-route-card__actions {
    align-items: stretch;
    flex-wrap: wrap;
}

.shadcn-ui .flight-route-card__primary,
.shadcn-ui .flight-route-card__secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 40px;
    border-radius: var(--radius-sm);
    padding: 8px 11px;
    font-size: 13px;
    font-weight: 850;
    text-decoration: none;
    text-align: center;
}

.shadcn-ui .flight-route-card__primary {
    flex: 1 1 150px;
    background: var(--primary);
    border: 1px solid var(--primary);
    color: var(--primary-foreground);
}

.shadcn-ui .flight-route-card__primary:hover {
    background: #27272a;
    border-color: #27272a;
    color: #ffffff;
}

.shadcn-ui .flight-route-card__secondary {
    flex: 1 1 120px;
    border: 1px solid var(--border);
    background: var(--background);
    color: var(--foreground);
}

.shadcn-ui .flight-route-card__secondary:hover {
    background: var(--accent);
    color: var(--foreground);
}

.shadcn-ui .flight-widget__footer {
    align-items: stretch;
    border-top: 1px solid var(--border);
    padding-top: 14px;
}

.shadcn-ui .flight-widget__tips {
    flex: 1 1 520px;
    display: grid;
    gap: 10px;
}

.shadcn-ui .flight-widget__tips strong {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--foreground);
    font-size: 14px;
}

.shadcn-ui .flight-widget__tips ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.shadcn-ui .flight-widget__tips li {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--muted);
    padding: 10px;
}

.shadcn-ui .flight-widget__keywords {
    flex: 0 1 330px;
    display: flex;
    align-content: flex-start;
    align-items: flex-start;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 7px;
}

@media (max-width: 1199.98px) {
    .shadcn-ui .flight-widget__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .shadcn-ui .flight-widget__controls {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .shadcn-ui .home-flight-band {
        padding-top: .5rem !important;
    }

    .shadcn-ui .flight-widget__head,
    .shadcn-ui .flight-widget__footer {
        align-items: stretch;
        flex-direction: column;
    }

    .shadcn-ui .flight-widget__brand-link,
    .shadcn-ui .flight-route-card__primary,
    .shadcn-ui .flight-route-card__secondary {
        width: 100%;
    }

    .shadcn-ui .flight-widget__controls,
    .shadcn-ui .flight-widget__grid,
    .shadcn-ui .flight-widget__tips ul {
        grid-template-columns: 1fr;
    }

    .shadcn-ui .flight-route-card dl div {
        grid-template-columns: 1fr;
    }

    .shadcn-ui .flight-widget__keywords {
        justify-content: flex-start;
    }
}
.shadcn-ui .search-flight-panel {
    margin: 16px 0;
}

.shadcn-ui .search-flight-panel .flight-widget {
    background: #ffffff;
}
/* Sharp external flag rendering */
.shadcn-ui img.flag-api-image {
    background: #ffffff;
    object-fit: contain !important;
}

.shadcn-ui .countries-featured-card img.flag-api-image,
.shadcn-ui .countries-card-media img.flag-api-image,
.shadcn-ui .search-result-media img.flag-api-image {
    padding: 14px;
    background: #ffffff;
}

.shadcn-ui .country-detail-hero-note img.flag-api-image {
    padding: 4px;
    border: 1px solid var(--border);
    background: #ffffff !important;
}
.shadcn-ui .flight-route-card.has-flight-deal {
    border-color: rgba(22, 163, 74, .26);
    background: linear-gradient(180deg, #ffffff, rgba(240, 253, 244, .45));
}

.shadcn-ui .flight-route-card.has-flight-deal [data-flight-price-label] {
    color: #15803d;
}

.shadcn-ui .flight-route-card__note {
    display: grid;
    gap: 4px;
}

.shadcn-ui .flight-route-card__note [data-flight-source-note] {
    color: var(--foreground);
    font-weight: 800;
}

.shadcn-ui .flight-route-card__deal-source {
    border-color: rgba(22, 163, 74, .32);
    color: #166534;
}

.shadcn-ui .flight-route-card__deal-source:hover {
    background: rgba(220, 252, 231, .72);
    color: #14532d;
}
/* Detail page responsive hardening - country and city */
.shadcn-ui :where(.country-detail-page, .city-detail-page) {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

.shadcn-ui :where(.country-detail-page, .city-detail-page) :where(.container) {
  max-width: min(100% - 1.5rem, 1180px);
}

.shadcn-ui :where(.country-detail-hero-grid, .city-detail-hero-grid, .country-detail-layout, .city-detail-layout, .country-detail-main, .city-detail-main, .country-detail-panel, .city-detail-panel, .country-detail-side-panel, .city-detail-side-panel, .country-detail-hero-card, .city-detail-hero-card) {
  min-width: 0;
  max-width: 100%;
}

.shadcn-ui :where(.country-detail-panel, .city-detail-panel, .country-detail-side-panel, .city-detail-side-panel, .country-detail-hero-card, .city-detail-hero-card) {
  overflow: hidden;
}

.shadcn-ui :where(.country-detail-hero-copy, .city-detail-hero-copy, .country-detail-panel-head, .city-detail-panel-head, .country-detail-place-body, .city-detail-place-body, .country-detail-info-list span, .city-detail-info-list span, .country-detail-review-card, .city-detail-review-card) {
  min-width: 0;
  max-width: 100%;
}

.shadcn-ui :where(.country-detail-page, .city-detail-page) :where(h1, h2, h3, h4, h5, h6, p, span, strong, small, em, a, li, dd, dt, th, td, blockquote) {
  overflow-wrap: anywhere;
  word-break: normal;
}

.shadcn-ui :where(.country-detail-richtext, .city-detail-richtext, .country-detail-insight-content) {
  width: 100%;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.shadcn-ui :where(.country-detail-richtext, .city-detail-richtext, .country-detail-insight-content) :where(.row) {
  --bs-gutter-x: 1rem;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.shadcn-ui :where(.country-detail-richtext, .city-detail-richtext, .country-detail-insight-content) :where([class*="col-"]) {
  min-width: 0;
  max-width: 100%;
}

.shadcn-ui :where(.country-detail-richtext, .city-detail-richtext, .country-detail-insight-content) :where(h3, h4) {
  margin-top: 1.35rem !important;
  line-height: 1.22 !important;
  text-wrap: balance;
}

.shadcn-ui :where(.country-detail-richtext, .city-detail-richtext, .country-detail-insight-content) :where(p, ul, ol, blockquote, .alert) {
  max-width: 100%;
  line-height: 1.72;
}

.shadcn-ui :where(.country-detail-richtext, .city-detail-richtext, .country-detail-insight-content) :where(ul, ol) {
  padding-left: clamp(1rem, 3vw, 1.35rem);
}

.shadcn-ui :where(.country-detail-richtext, .city-detail-richtext, .country-detail-insight-content) :where(.alert, blockquote) {
  white-space: normal;
}

.shadcn-ui :where(.country-detail-richtext, .city-detail-richtext, .country-detail-insight-content) :where(table, .table) {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-collapse: collapse;
  white-space: nowrap;
}

.shadcn-ui :where(.country-detail-richtext, .city-detail-richtext, .country-detail-insight-content) :where(thead, tbody, tr) {
  min-width: max-content;
}

.shadcn-ui :where(.country-detail-richtext, .city-detail-richtext, .country-detail-insight-content) :where(th, td) {
  min-width: 9rem;
  white-space: normal;
  vertical-align: top;
}

.shadcn-ui :where(.country-detail-richtext, .city-detail-richtext, .country-detail-insight-content) :where(img, iframe, video, figure) {
  max-width: 100%;
  height: auto;
}

.shadcn-ui .country-detail-insight-grid,
.shadcn-ui .city-detail-info-grid {
  grid-template-columns: 1fr !important;
}

.shadcn-ui .country-detail-insight-card {
  grid-template-columns: 2.85rem minmax(0, 1fr);
  align-items: flex-start;
}

.shadcn-ui .city-detail-mini-panel {
  align-items: flex-start;
}

.shadcn-ui :where(.country-detail-section-actions, .city-detail-section-actions, .country-detail-hero-actions, .city-detail-hero-actions) :where(a, button, .btn) {
  white-space: normal;
  text-align: center;
}

.shadcn-ui :where(.country-detail-share-grid, .city-detail-share-grid) a {
  min-width: 0;
}

@media (max-width: 991.98px) {
  .shadcn-ui :where(.country-detail-sidebar, .city-detail-sidebar) {
    position: static !important;
    grid-template-columns: 1fr !important;
  }

  .shadcn-ui :where(.country-detail-hero-card, .city-detail-hero-card) {
    width: 100%;
    max-width: none;
  }
}

@media (max-width: 767.98px) {
  .shadcn-ui :where(.country-detail-page, .city-detail-page) :where(.container) {
    max-width: 100%;
    padding-left: .875rem;
    padding-right: .875rem;
  }

  .shadcn-ui :where(.country-detail-hero-grid, .city-detail-hero-grid, .country-detail-layout, .city-detail-layout, .country-detail-split, .city-detail-split, .country-detail-card-grid, .city-detail-card-grid, .country-detail-city-grid, .city-detail-gallery-grid, .country-detail-related-grid, .city-detail-related-grid) {
    grid-template-columns: 1fr !important;
  }

  .shadcn-ui :where(.country-detail-stat-grid, .city-detail-stat-grid) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .shadcn-ui :where(.country-detail-panel-head.inline, .city-detail-panel-head.inline) {
    align-items: stretch !important;
    flex-direction: column !important;
  }

  .shadcn-ui :where(.country-detail-section-actions, .city-detail-section-actions) {
    width: 100%;
  }

  .shadcn-ui :where(.country-detail-section-actions a, .city-detail-section-actions a, .country-detail-map-btn, .city-detail-map-btn) {
    width: 100%;
  }

  .shadcn-ui :where(.country-detail-richtext, .city-detail-richtext, .country-detail-insight-content) {
    font-size: .95rem;
    line-height: 1.68;
  }

  .shadcn-ui :where(.country-detail-richtext, .city-detail-richtext, .country-detail-insight-content) :where(table, .table) {
    margin-left: -.1rem;
    width: calc(100% + .2rem);
  }

  .shadcn-ui :where(.country-detail-review-head, .city-detail-review-head) {
    grid-template-columns: 2.5rem minmax(0, 1fr) !important;
  }

  .shadcn-ui :where(.country-detail-review-head em, .city-detail-review-head em) {
    grid-column: 2;
    justify-self: start;
  }
}

@media (max-width: 575.98px) {
  .shadcn-ui :where(.country-detail-stat-grid, .city-detail-stat-grid) {
    grid-template-columns: 1fr !important;
  }

  .shadcn-ui :where(.country-detail-insight-card, .city-detail-mini-panel, .country-detail-hero-note, .city-detail-hero-note) {
    grid-template-columns: 1fr !important;
  }

  .shadcn-ui :where(.country-detail-insight-icon, .city-detail-mini-panel > span, .country-detail-hero-note img, .country-detail-hero-note i, .city-detail-hero-note i) {
    width: 2.55rem;
    height: 2.55rem;
  }

  .shadcn-ui :where(.country-detail-place-card, .city-detail-place-card) {
    grid-template-columns: 1fr !important;
  }

  .shadcn-ui :where(.country-detail-place-media, .city-detail-place-media) {
    aspect-ratio: 16 / 9 !important;
  }

  .shadcn-ui :where(.country-detail-panel, .city-detail-panel, .country-detail-side-panel, .city-detail-side-panel) {
    padding: .78rem !important;
  }
}

/* Travel intelligence layer */
.travel-intel-panel {
    display: grid;
    gap: 1rem;
    margin: 1.25rem 0;
    padding: clamp(1rem, 2vw, 1.35rem);
    border: 1px solid rgba(15, 23, 42, 0.10);
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.06);
}
.travel-intel-head,
.travel-intel-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}
.travel-intel-head span,
.travel-intel-section-head span {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: #0f766e;
    font-weight: 700;
    font-size: .82rem;
}
.travel-intel-head h2,
.travel-intel-section-head h3 {
    margin: .2rem 0 0;
    color: #0f172a;
    font-size: clamp(1.12rem, 2vw, 1.45rem);
    line-height: 1.25;
}
.travel-intel-head .travel-intel-save-cta {
    flex: 0 0 auto;
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: .42rem;
    max-width: 100%;
    padding: .45rem .7rem;
    border: 1px solid rgba(15, 118, 110, 0.18);
    border-radius: 999px;
    background: #f0fdfa;
    color: #115e59;
    font-size: .82rem;
    font-weight: 850;
    overflow-wrap: anywhere;
}
.travel-intel-section {
    display: grid;
    gap: .85rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}
.travel-intel-visa,
.travel-intel-route-grid,
.travel-intel-card-grid,
.travel-intel-seo-map {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: .85rem;
}
.travel-intel-visa > div,
.travel-intel-route,
.travel-intel-card-grid article,
.travel-intel-seo-map > div {
    min-width: 0;
    padding: .95rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 8px;
    background: #f8fafc;
}
.travel-intel-visa small,
.travel-intel-route small,
.travel-intel-card-grid article i {
    color: #0f766e;
    font-weight: 800;
}
.travel-intel-visa strong,
.travel-intel-route h4,
.travel-intel-card-grid h4 {
    display: block;
    margin: .15rem 0 .35rem;
    color: #111827;
    font-size: 1rem;
    line-height: 1.25;
}
.travel-intel-visa p,
.travel-intel-route p,
.travel-intel-card-grid p,
.travel-intel-assistant-answer {
    margin: 0;
    color: #475569;
    line-height: 1.55;
    overflow-wrap: anywhere;
}
.travel-intel-visa ul,
.travel-intel-route ul,
.travel-intel-card-grid ul {
    margin: .6rem 0 0;
    padding-left: 1.05rem;
    color: #334155;
}
.travel-intel-alert {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    background: #fff7ed !important;
    color: #7c2d12;
}
.travel-intel-budget-controls {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    align-items: end;
}
.travel-intel-budget-controls label {
    display: grid;
    gap: .3rem;
    color: #475569;
    font-weight: 700;
    font-size: .82rem;
}
.travel-intel-budget-controls input,
.travel-intel-budget-controls select,
.travel-intel-assistant-box textarea {
    width: 100%;
    min-width: 0;
    border: 1px solid rgba(15, 23, 42, 0.14);
    border-radius: 8px;
    padding: .72rem .8rem;
    background: #fff;
    color: #0f172a;
}
.travel-intel-budget-controls output {
    display: flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #0f172a;
    color: #fff;
    font-weight: 800;
    text-align: center;
}
.travel-intel-budget-breakdown,
.travel-intel-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}
.travel-intel-budget-breakdown span,
.travel-intel-chip-row span,
.travel-intel-route em {
    display: inline-flex;
    gap: .35rem;
    align-items: center;
    padding: .35rem .6rem;
    border-radius: 999px;
    background: #eef2ff;
    color: #3730a3;
    font-size: .78rem;
    font-style: normal;
    font-weight: 700;
}
.travel-intel-metrics {
    display: grid;
    gap: .6rem;
}
.travel-intel-metrics div {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .7rem;
    align-items: center;
    padding-bottom: .55rem;
    color: #334155;
}
.travel-intel-metrics div::after,
.travel-intel-metrics i {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 6px;
    border-radius: 999px;
    background: #e2e8f0;
}
.travel-intel-metrics i {
    right: auto;
    background: linear-gradient(90deg, #0f766e, #2563eb);
}
.travel-intel-assistant-box {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .65rem;
}
.travel-intel-assistant-box button {
    border: 0;
    border-radius: 8px;
    padding: .75rem 1rem;
    background: #0f766e;
    color: #fff;
    font-weight: 800;
}
.travel-intel-assistant-answer {
    padding: .85rem;
    border-radius: 8px;
    background: #ecfdf5;
    color: #064e3b;
}
.travel-intel-assistant-answer span {
    font-weight: 800;
}
@media (max-width: 768px) {
    .travel-intel-head,
    .travel-intel-section-head,
    .travel-intel-assistant-box {
        grid-template-columns: 1fr;
        display: grid;
    }
    .travel-intel-budget-controls {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 520px) {
    .travel-intel-budget-controls,
    .travel-intel-visa,
    .travel-intel-route-grid,
    .travel-intel-card-grid,
    .travel-intel-seo-map {
        grid-template-columns: 1fr;
    }
}
/* Travel intelligence responsive refinements */
.travel-intel-panel,
.travel-intel-panel * {
    box-sizing: border-box;
}
.travel-intel-panel {
    max-width: 100%;
    overflow-x: hidden;
}
.travel-intel-head,
.travel-intel-section,
.travel-intel-section-head,
.travel-intel-assistant,
.travel-intel-assistant-box,
.travel-intel-assistant-answer {
    min-width: 0;
    max-width: 100%;
}
.travel-intel-head,
.travel-intel-section-head {
    flex-wrap: wrap;
}
.travel-intel-head > div,
.travel-intel-section-head h3 {
    min-width: 0;
}
.travel-intel-head span,
.travel-intel-section-head span,
.travel-intel-head h2,
.travel-intel-section-head h3 {
    max-width: 100%;
    overflow-wrap: anywhere;
}
.travel-intel-section-head span {
    flex: 0 1 auto;
}
.travel-intel-visa,
.travel-intel-route-grid,
.travel-intel-card-grid,
.travel-intel-seo-map {
    grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr));
}
.travel-intel-budget-controls {
    grid-template-columns: repeat(auto-fit, minmax(min(9.5rem, 100%), 1fr));
}
.travel-intel-budget-controls output {
    min-width: 0;
}
.travel-intel-assistant-box {
    align-items: stretch;
    grid-template-columns: minmax(0, 1fr) auto;
}
.travel-intel-assistant-box textarea {
    display: block;
    max-width: 100%;
    min-height: 110px;
    line-height: 1.5;
    resize: vertical;
    overflow-wrap: anywhere;
}
.travel-intel-assistant-box button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-width: 8rem;
    min-height: 48px;
    align-self: stretch;
    white-space: nowrap;
    cursor: pointer;
}
.travel-intel-assistant-answer {
    width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
}
@media (max-width: 768px) {
    .travel-intel-head,
    .travel-intel-section-head {
        display: grid;
        grid-template-columns: 1fr;
        align-items: start;
        gap: .65rem;
    }
    .travel-intel-section-head h3 {
        font-size: clamp(1.05rem, 5vw, 1.28rem);
        line-height: 1.28;
    }
    .travel-intel-section-head span,
    .travel-intel-head .travel-intel-save-cta {
        width: fit-content;
        max-width: 100%;
    }
    .travel-intel-assistant-box {
        grid-template-columns: 1fr;
        gap: .7rem;
    }
    .travel-intel-assistant-box textarea {
        min-height: 120px;
        font-size: 16px;
    }
    .travel-intel-assistant-box button {
        width: 100%;
        min-width: 0;
        min-height: 46px;
    }
    .travel-intel-assistant-answer {
        font-size: .92rem;
        line-height: 1.58;
    }
}
@media (max-width: 560px) {
    .travel-intel-visa,
    .travel-intel-route-grid,
    .travel-intel-card-grid,
    .travel-intel-seo-map,
    .travel-intel-budget-controls {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 420px) {
    .travel-intel-panel {
        padding: .85rem;
        border-radius: 8px;
    }
    .travel-intel-section {
        gap: .75rem;
    }
    .travel-intel-assistant-box {
        gap: .6rem;
    }
    .travel-intel-assistant-answer {
        padding: .75rem;
    }
}
/* Blog intelligence layer */
.shadcn-ui .blog-intel-snippet,
.shadcn-ui .blog-intel-panel {
    display: grid;
    gap: 1rem;
    margin-bottom: 1.35rem;
    padding: clamp(1rem, 2vw, 1.35rem);
    border: 1px solid rgba(15, 23, 42, 0.10);
    border-radius: 10px;
    background: linear-gradient(180deg, #ffffff, #f8fafc);
    overflow: hidden;
}

.shadcn-ui .blog-intel-kicker,
.shadcn-ui .blog-intel-panel-head span {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: #0f766e;
    font-weight: 800;
    font-size: .82rem;
}

.shadcn-ui .blog-intel-snippet p,
.shadcn-ui .blog-intel-card-grid p,
.shadcn-ui .blog-intel-faq p,
.shadcn-ui .blog-intel-side-context p {
    margin: 0;
    color: #475569;
    line-height: 1.65;
    overflow-wrap: anywhere;
}

.shadcn-ui .blog-intel-snippet ul,
.shadcn-ui .blog-intel-card-grid ul {
    display: grid;
    gap: .45rem;
    margin: 0;
    padding-left: 1.15rem;
    color: #334155;
}

.shadcn-ui .blog-intel-mini-table,
.shadcn-ui .blog-intel-card-grid,
.shadcn-ui .blog-intel-seo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: .85rem;
}

.shadcn-ui .blog-intel-mini-table span,
.shadcn-ui .blog-intel-card-grid article,
.shadcn-ui .blog-intel-seo-grid > div,
.shadcn-ui .blog-intel-faq details {
    min-width: 0;
    padding: .95rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 8px;
    background: #ffffff;
}

.shadcn-ui .blog-intel-mini-table strong,
.shadcn-ui .blog-intel-card-grid h3,
.shadcn-ui .blog-intel-seo-grid h3,
.shadcn-ui .blog-intel-faq h3 {
    display: block;
    margin: 0 0 .45rem;
    color: #0f172a;
    font-size: 1rem;
    line-height: 1.25;
}

.shadcn-ui .blog-intel-panel-head {
    display: grid;
    gap: .35rem;
}

.shadcn-ui .blog-intel-panel-head h2 {
    margin: 0;
    color: #0f172a;
    font-size: clamp(1.18rem, 2vw, 1.55rem);
    line-height: 1.25;
}

.shadcn-ui .blog-intel-card-grid em {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    margin-bottom: .55rem;
    padding: .28rem .55rem;
    border-radius: 999px;
    background: #ecfeff;
    color: #155e75;
    font-size: .8rem;
    font-style: normal;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.shadcn-ui .blog-intel-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.shadcn-ui .blog-intel-chip-row span {
    min-width: 0;
    max-width: 100%;
    padding: .34rem .62rem;
    border: 1px solid rgba(15, 118, 110, 0.18);
    border-radius: 999px;
    background: #f0fdfa;
    color: #115e59;
    font-size: .78rem;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.shadcn-ui .blog-intel-faq {
    display: grid;
    gap: .65rem;
}

.shadcn-ui .blog-intel-faq summary {
    cursor: pointer;
    color: #0f172a;
    font-weight: 850;
    line-height: 1.35;
}

.shadcn-ui .blog-intel-faq details[open] summary {
    margin-bottom: .45rem;
}

.shadcn-ui .blog-intel-side-context {
    background: linear-gradient(180deg, #ffffff, #f0fdfa);
}

@media (max-width: 767.98px) {
    .shadcn-ui .blog-intel-mini-table,
    .shadcn-ui .blog-intel-card-grid,
    .shadcn-ui .blog-intel-seo-grid {
        grid-template-columns: 1fr;
    }

    .shadcn-ui .blog-intel-snippet,
    .shadcn-ui .blog-intel-panel {
        padding: .9rem;
        border-radius: 8px;
    }
}
/* Automation travel intelligence scope */
.shadcn-ui .ai-auto-intel-panel {
    display: grid;
    gap: 1rem;
}

.shadcn-ui .ai-auto-intel-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: .85rem;
}

.shadcn-ui .ai-auto-intel-grid article {
    display: grid;
    grid-template-columns: 2.45rem minmax(0, 1fr);
    gap: .35rem .75rem;
    align-items: flex-start;
    min-width: 0;
    padding: .95rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 8px;
    background: #ffffff;
}

.shadcn-ui .ai-auto-intel-grid article i {
    grid-row: span 2;
    display: inline-grid;
    place-items: center;
    width: 2.45rem;
    height: 2.45rem;
    border-radius: 8px;
    background: #f0fdfa;
    color: #0f766e;
}

.shadcn-ui .ai-auto-intel-grid article strong {
    min-width: 0;
    color: #0f172a;
    font-size: .95rem;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.shadcn-ui .ai-auto-intel-grid article span {
    min-width: 0;
    color: #64748b;
    font-size: .82rem;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

@media (max-width: 575.98px) {
    .shadcn-ui .ai-auto-intel-grid {
        grid-template-columns: 1fr;
    }
}
/* Responsive and performance hardening pass */
.shadcn-ui :where(.country-detail-page, .city-detail-page, .place-detail-page, .blog-detail-page, .countries-page, .cities-page, .city-page, .hotels-page, .hotel-page, .restaurants-page, .restaurant-page, .blog-page, .search-modern-page) {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  overflow-x: clip;
}

.shadcn-ui :where(.country-detail-page, .city-detail-page, .place-detail-page, .blog-detail-page, .countries-page, .cities-page, .city-page, .hotels-page, .hotel-page, .restaurants-page, .restaurant-page, .blog-page, .search-modern-page),
.shadcn-ui :where(.country-detail-page, .city-detail-page, .place-detail-page, .blog-detail-page, .countries-page, .cities-page, .city-page, .hotels-page, .hotel-page, .restaurants-page, .restaurant-page, .blog-page, .search-modern-page) * {
  min-width: 0;
  box-sizing: border-box;
}

.shadcn-ui :where(.country-detail-page, .city-detail-page, .place-detail-page, .blog-detail-page, .countries-page, .cities-page, .city-page, .hotels-page, .hotel-page, .restaurants-page, .restaurant-page, .blog-page) :where(.container) {
  width: 100%;
  max-width: min(100% - 1.5rem, 1180px);
}

.shadcn-ui :where(.country-detail-hero-grid, .city-detail-hero-grid, .place-detail-hero-grid, .blog-detail-hero-grid, .countries-hero-grid, .city-hero-grid, .hotel-hero-grid, .restaurant-hero-grid, .blog-hero-grid, .country-detail-layout, .city-detail-layout, .place-detail-layout, .blog-detail-layout, .blog-content-grid) {
  min-width: 0;
  max-width: 100%;
}

.shadcn-ui :where(.country-detail-hero-copy, .city-detail-hero-copy, .place-detail-hero-copy, .blog-detail-hero-copy, .countries-hero-copy, .city-hero-copy, .hotel-hero-copy, .restaurant-hero-copy, .blog-hero-copy) {
  min-width: 0;
  max-width: 100%;
}

.shadcn-ui :where(.country-detail-hero-actions, .city-detail-hero-actions, .place-detail-hero-actions, .blog-detail-hero-actions, .countries-filter-actions, .city-filter-actions, .hotel-filter-actions, .restaurant-filter-actions, .blog-detail-share-grid, .country-detail-section-actions, .city-detail-section-actions) {
  flex-wrap: wrap;
  min-width: 0;
}

.shadcn-ui .city-detail-main > .travel-intel-panel {
  margin-top: 0;
}

.shadcn-ui .city-detail-hero-actions .travel-intel-panel {
  flex: 1 0 100%;
  order: 2;
  width: 100%;
  margin: .85rem 0 0;
}

.shadcn-ui :where(.travel-intel-panel, .blog-intel-panel, .blog-intel-snippet) {
  width: 100%;
  max-width: 100%;
}

.shadcn-ui :where(.travel-intel-chip-row, .travel-intel-budget-breakdown, .blog-intel-chip-row) {
  min-width: 0;
  max-width: 100%;
}

.shadcn-ui :where(.travel-intel-chip-row span, .travel-intel-budget-breakdown span, .travel-intel-route em, .blog-intel-chip-row span, .blog-intel-card-grid em) {
  max-width: 100%;
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: normal;
}

.shadcn-ui .travel-intel-metrics div {
  grid-template-columns: minmax(0, 1fr) minmax(2.5rem, auto);
}

.shadcn-ui .travel-intel-metrics :where(span, strong),
.shadcn-ui .travel-intel-budget-controls :where(label, input, select, output),
.shadcn-ui .travel-intel-assistant-box :where(textarea, button) {
  min-width: 0;
  max-width: 100%;
}

.shadcn-ui :where(.country-detail-stat-grid, .city-detail-stat-grid, .place-detail-stat-grid, .blog-detail-stat-grid, .countries-hero-mini-grid, .city-stat-grid, .hotel-stat-grid, .restaurant-stat-grid, .blog-stat-grid) {
  grid-template-columns: repeat(auto-fit, minmax(min(10rem, 100%), 1fr)) !important;
}

.shadcn-ui :where(.country-detail-city-grid, .country-detail-related-grid, .city-detail-gallery-grid, .city-detail-related-grid, .place-detail-gallery-grid, .place-detail-menu-grid, .blog-detail-related-grid, .blog-intel-mini-table, .blog-intel-card-grid, .blog-intel-seo-grid) {
  grid-template-columns: repeat(auto-fit, minmax(min(13.5rem, 100%), 1fr)) !important;
}

.shadcn-ui :where(.country-detail-card-grid, .city-detail-card-grid, .place-detail-review-list, .place-detail-nearby-list, .blog-detail-recent-list) {
  min-width: 0;
  max-width: 100%;
}

.shadcn-ui :where(.country-detail-place-card, .city-detail-place-card, .place-detail-nearby-list a, .blog-detail-related-card, .blog-detail-recent-list a) {
  min-width: 0;
  max-width: 100%;
}

.shadcn-ui :where(.country-detail-richtext, .city-detail-richtext, .country-detail-insight-content, .place-detail-richtext, .blog-detail-content, .blog-intel-panel, .blog-intel-snippet) {
  overflow-wrap: anywhere;
  word-break: normal;
}

.shadcn-ui :where(.place-detail-richtext, .blog-detail-content, .blog-intel-panel, .blog-intel-snippet) :where(table, .table) {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  white-space: nowrap;
}

.shadcn-ui :where(.country-detail-page, .city-detail-page, .place-detail-page, .blog-detail-page) :where(img, video, iframe, svg) {
  max-width: 100%;
}

.shadcn-ui :where(.country-detail-map, .city-detail-map, .place-detail-map) {
  min-height: clamp(16rem, 42vh, 26rem);
}

@supports (content-visibility: auto) {
  .shadcn-ui :where(.country-detail-body .country-detail-panel, .city-detail-body .city-detail-panel, .place-detail-body .place-detail-panel, .blog-detail-body .blog-detail-panel, .travel-intel-panel, .blog-intel-panel, .countries-card, .city-card, .city-list-card, .hotel-card, .restaurant-card, .restaurant-list-card, .blog-card, .blog-list-card, .search-result-modern) {
    content-visibility: auto;
    contain-intrinsic-size: 1px 520px;
  }
}

@media (max-width: 1199.98px) {
  .shadcn-ui :where(.country-detail-layout, .city-detail-layout, .place-detail-layout, .blog-detail-layout, .blog-content-grid) {
    grid-template-columns: 1fr !important;
  }

  .shadcn-ui :where(.country-detail-sidebar, .city-detail-sidebar, .place-detail-sidebar, .blog-detail-sidebar, .blog-side-column) {
    position: static !important;
    top: auto !important;
    grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%), 1fr)) !important;
  }
}

@media (max-width: 991.98px) {
  .shadcn-ui :where(.country-detail-hero-grid, .city-detail-hero-grid, .place-detail-hero-grid, .blog-detail-hero-grid, .countries-hero-grid, .city-hero-grid, .hotel-hero-grid, .restaurant-hero-grid, .blog-hero-grid) {
    grid-template-columns: 1fr !important;
  }

  .shadcn-ui :where(.country-detail-hero-card, .city-detail-hero-card, .place-detail-hero-card, .blog-detail-hero-card) {
    width: 100%;
    max-width: none;
  }
}

@media (max-width: 767.98px) {
  .shadcn-ui :where(.country-detail-page, .city-detail-page, .place-detail-page, .blog-detail-page, .countries-page, .cities-page, .city-page, .hotels-page, .restaurants-page, .blog-page) :where(.container) {
    max-width: 100%;
    padding-left: .875rem;
    padding-right: .875rem;
  }

  .shadcn-ui :where(.country-detail-split, .city-detail-split, .place-detail-layout, .blog-detail-layout, .blog-content-grid) {
    grid-template-columns: 1fr !important;
  }

  .shadcn-ui :where(.country-detail-panel-head.inline, .city-detail-panel-head.inline, .place-detail-panel-head.inline, .blog-detail-panel-head.inline) {
    display: flex;
    flex-direction: column;
    align-items: stretch !important;
  }

  .shadcn-ui :where(.country-detail-hero-actions, .city-detail-hero-actions, .place-detail-hero-actions, .blog-detail-hero-actions) {
    align-items: stretch;
  }

  .shadcn-ui :where(.country-detail-hero-actions .btn, .city-detail-hero-actions .btn, .place-detail-hero-actions .btn, .blog-detail-hero-actions .btn, .country-detail-section-actions a, .city-detail-section-actions a, .place-detail-panel-link, .blog-detail-panel-link, .blog-detail-copy-btn) {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .shadcn-ui :where(.country-detail-place-card, .city-detail-place-card, .place-detail-nearby-list a, .blog-detail-related-card, .blog-detail-recent-list a) {
    grid-template-columns: 1fr !important;
  }

  .shadcn-ui :where(.country-detail-place-media, .city-detail-place-media, .blog-detail-related-media, .blog-detail-recent-media) {
    width: 100%;
    aspect-ratio: 16 / 9 !important;
  }

  .shadcn-ui :where(.travel-intel-panel, .blog-intel-panel, .blog-intel-snippet) {
    padding: .9rem;
  }
}

@media (max-width: 575.98px) {
  .shadcn-ui :where(.country-detail-stat-grid, .city-detail-stat-grid, .place-detail-stat-grid, .blog-detail-stat-grid, .countries-hero-mini-grid, .city-stat-grid, .hotel-stat-grid, .restaurant-stat-grid, .blog-stat-grid, .country-detail-city-grid, .country-detail-related-grid, .city-detail-gallery-grid, .city-detail-related-grid, .place-detail-gallery-grid, .place-detail-menu-grid, .blog-detail-related-grid, .blog-intel-mini-table, .blog-intel-card-grid, .blog-intel-seo-grid) {
    grid-template-columns: 1fr !important;
  }

  .shadcn-ui :where(.travel-intel-head .travel-intel-save-cta, .travel-intel-section-head span) {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .shadcn-ui .travel-intel-metrics div {
    grid-template-columns: 1fr;
    gap: .35rem;
  }

  .shadcn-ui :where(.country-detail-map, .city-detail-map, .place-detail-map) {
    min-height: 16rem;
  }
}

@media (hover: none) and (pointer: coarse) {
  .shadcn-ui :where(.countries-card, .city-card, .city-list-card, .hotel-card, .restaurant-card, .restaurant-list-card, .blog-card, .blog-list-card, .country-detail-city-card, .city-detail-related-card, .place-detail-nearby-list a, .blog-detail-related-card):hover {
    transform: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .shadcn-ui *,
  .shadcn-ui *::before,
  .shadcn-ui *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
/* Cross-page card responsive stabilization */
.shadcn-ui :where(.home-shell, .country-detail-page, .city-detail-page, .place-detail-page, .hotel-page, .restaurant-page, .countries-page, .cities-page, .city-page) {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  overflow-x: clip;
}

.shadcn-ui :where(.home-shell, .country-detail-page, .city-detail-page, .place-detail-page, .hotel-page, .restaurant-page, .countries-page, .cities-page, .city-page),
.shadcn-ui :where(.home-shell, .country-detail-page, .city-detail-page, .place-detail-page, .hotel-page, .restaurant-page, .countries-page, .cities-page, .city-page) * {
  min-width: 0;
  box-sizing: border-box;
}

.shadcn-ui :where(.home-shell, .country-detail-page, .city-detail-page, .place-detail-page, .hotel-page, .restaurant-page) :where(h1, h2, h3, h4, p, span, strong, small, em, a, li, dd, dt) {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
}

.shadcn-ui :where(.home-metric-grid, .home-process-grid, .home-country-grid, .home-blog-grid, .hotel-grid, .restaurant-grid, .country-detail-stat-grid, .city-detail-stat-grid, .place-detail-stat-grid, .country-detail-city-grid, .country-detail-related-grid, .city-detail-gallery-grid, .city-detail-related-grid, .place-detail-gallery-grid, .place-detail-menu-grid) {
  grid-template-columns: repeat(auto-fit, minmax(min(17rem, 100%), 1fr));
}

.shadcn-ui :where(.home-country-card, .home-metric-card, .home-process-grid article, .home-list-panel, .home-blog-card, .home-insight-panel, .hotel-card, .restaurant-list-card, .country-detail-panel, .country-detail-side-panel, .city-detail-panel, .city-detail-side-panel, .place-detail-panel, .place-detail-side-panel, .country-detail-place-card, .city-detail-place-card, .place-detail-nearby-list a) {
  max-width: 100%;
  min-width: 0;
}

.shadcn-ui :where(.home-card-media, .hotel-card-media, .restaurant-card-media) {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  min-height: 0;
  overflow: hidden;
}

.shadcn-ui :where(.home-card-media img, .home-hero-media img, .home-city-thumb img, .home-mini-row img, .hotel-card-media img, .restaurant-card-media img, .country-detail-place-media img, .city-detail-place-media img, .place-detail-nearby-list img) {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.shadcn-ui :where(.home-hero-card-body, .home-country-body, .home-city-copy, .home-panel-title, .home-mini-row strong, .hotel-card-body, .hotel-card-title-row, .restaurant-card-body, .country-detail-place-body, .city-detail-place-body, .place-detail-info-list div, .place-detail-nearby-list a span:last-child) {
  min-width: 0;
  max-width: 100%;
}

.shadcn-ui :where(.home-hero-actions, .home-section-head, .home-chip-row, .home-cta-panel, .home-newsletter-form, .hotel-hero-actions, .hotel-filter-actions, .hotel-active-filters, .hotel-card-footer, .hotel-card-meta, .restaurant-hero-actions, .restaurant-filter-actions, .restaurant-active-filters, .restaurant-card-footer, .restaurant-card-meta, .country-detail-panel-head.inline, .city-detail-panel-head.inline, .place-detail-panel-head.inline) {
  min-width: 0;
  max-width: 100%;
  flex-wrap: wrap;
}

.shadcn-ui :where(.home-chip-row a, .home-link-button, .home-newsletter-form input, .home-newsletter-form button, .hotel-detail-link, .restaurant-detail-link, .hotel-card-meta span, .restaurant-card-meta span, .hotel-card-badges span, .restaurant-card-badges span, .home-media-badge, .country-detail-media-badges span, .place-detail-media-badges span) {
  max-width: 100%;
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.35;
}

.shadcn-ui :where(.hotel-card-badges, .restaurant-card-badges, .country-detail-media-badges, .place-detail-media-badges) {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
}

.shadcn-ui .home-mini-row {
  grid-template-columns: clamp(3.25rem, 12vw, 4.25rem) minmax(0, 1fr) auto;
  align-items: center;
}

.shadcn-ui .home-mini-row > span,
.shadcn-ui .home-city-thumb {
  flex: 0 0 auto;
  overflow: hidden;
}

.shadcn-ui .home-mini-row em,
.shadcn-ui .home-row-action {
  justify-self: end;
  white-space: nowrap;
}

.shadcn-ui :where(.country-detail-richtext, .city-detail-richtext, .place-detail-richtext) :where(table, .table) {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 991.98px) {
  .shadcn-ui :where(.home-hero-grid, .home-two-column, .home-split-grid, .hotel-hero-grid, .restaurant-hero-grid, .country-detail-hero-grid, .city-detail-hero-grid, .place-detail-hero-grid, .country-detail-layout, .city-detail-layout, .place-detail-layout) {
    grid-template-columns: 1fr !important;
  }

  .shadcn-ui :where(.country-detail-sidebar, .city-detail-sidebar, .place-detail-sidebar) {
    position: static !important;
    top: auto !important;
  }
}

@media (max-width: 767.98px) {
  .shadcn-ui :where(.home-section-head, .home-cta-panel, .hotel-results-head, .restaurant-results-head, .country-detail-panel-head.inline, .city-detail-panel-head.inline, .place-detail-panel-head.inline) {
    display: flex;
    flex-direction: column;
    align-items: stretch !important;
    gap: .8rem;
  }

  .shadcn-ui :where(.home-search, .home-newsletter-form, .hotel-filter-grid, .restaurant-filter-grid) {
    grid-template-columns: 1fr !important;
  }

  .shadcn-ui :where(.home-search .btn, .home-newsletter-form button, .home-link-button, .hotel-filter-actions .btn, .hotel-clear-btn, .restaurant-filter-actions .btn, .restaurant-clear-btn, .hotel-detail-link, .restaurant-detail-link, .place-detail-panel-link) {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .shadcn-ui :where(.home-country-grid, .home-blog-grid, .hotel-grid, .restaurant-grid, .country-detail-city-grid, .country-detail-related-grid, .city-detail-gallery-grid, .city-detail-related-grid, .place-detail-gallery-grid, .place-detail-menu-grid) {
    grid-template-columns: 1fr !important;
  }

  .shadcn-ui :where(.country-detail-place-card, .city-detail-place-card, .place-detail-nearby-list a) {
    grid-template-columns: 1fr !important;
  }

  .shadcn-ui :where(.country-detail-place-media, .city-detail-place-media, .place-detail-nearby-list a > span:first-child) {
    width: 100%;
    aspect-ratio: 16 / 9 !important;
  }

  .shadcn-ui :where(.hotel-card-footer, .restaurant-card-footer) {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
}

@media (max-width: 480px) {
  .shadcn-ui :where(.home-shell, .hotel-page, .restaurant-page, .country-detail-page, .city-detail-page, .place-detail-page) :where(.container) {
    padding-left: .875rem;
    padding-right: .875rem;
  }

  .shadcn-ui .home-mini-row,
  .shadcn-ui .home-city-row {
    grid-template-columns: 3.4rem minmax(0, 1fr);
  }

  .shadcn-ui .home-mini-row em,
  .shadcn-ui .home-row-action {
    grid-column: 2;
    justify-self: start;
    width: fit-content;
  }

  .shadcn-ui :where(.hotel-card-badges, .restaurant-card-badges) {
    left: .55rem;
    right: .55rem;
    bottom: .55rem;
  }
}
