/* =========================================================
   THE BRAND BRICKS — World-Class Premium Design System
   Luxury Business Directory | Ultra-Premium Aesthetic
   ========================================================= */

/* ─── IMPORTS ─────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,600&family=DM+Sans:wght@300;400;500;600;700&family=Syne:wght@400;500;600;700;800&display=swap');

/* ─── DESIGN TOKENS ─────────────────────────────────────── */
:root {
    --ink: #0e0d0b;
    --ink-soft: #1c1a17;
    --parchment: #faf6ef;
    --parchment-warm: #f5ede0;
    --cream: #ede5d8;
    --gold: #c9a96e;
    --gold-bright: #e4c07a;
    --gold-deep: #a07840;
    --gold-pale: #f0ddb8;
    --gold-glow: rgba(201,169,110,0.22);
    --gold-glow-strong: rgba(201,169,110,0.45);
    --dark: #0f0e0c;
    --dark-warm: #17140f;
    --glass: rgba(255,251,243,0.55);
    --glass-strong: rgba(255,251,243,0.78);
    --font-display: 'Cormorant Garamond', Georgia, serif;
    --font-body: 'DM Sans', system-ui, sans-serif;
    --font-label: 'Syne', system-ui, sans-serif;
    --r-sm: 10px; --r-md: 16px; --r-lg: 24px; --r-xl: 36px; --r-pill: 100px;
    --shadow-xs: 0 2px 8px rgba(14,12,9,0.06);
    --shadow-sm: 0 8px 24px rgba(14,12,9,0.08);
    --shadow-md: 0 18px 48px rgba(14,12,9,0.12);
    --shadow-lg: 0 32px 72px rgba(14,12,9,0.18);
    --shadow-gold: 0 12px 40px rgba(201,169,110,0.28);
    --shadow-gold-lg: 0 24px 64px rgba(201,169,110,0.35);
    --inset-light: inset 0 1px 0 rgba(255,255,255,0.55);
    --ease: cubic-bezier(0.23, 1, 0.32, 1);
    --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
    --lux-gold: #c9a96e;
    --lux-gold-bright: #e4c07a;
}

/* ─── RESET ──────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
    font-family: var(--font-body);
    background: var(--parchment);
    color: var(--ink);
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button { cursor: pointer; border: none; background: none; }

/* ─── BODY BACKGROUND ────────────────────────────────────── */
body::before {
    content: '';
    position: fixed; inset: 0;
    pointer-events: none; z-index: 0;
    background:
        radial-gradient(ellipse 60% 50% at 10% 0%, rgba(228,192,122,0.14) 0%, transparent 60%),
        radial-gradient(ellipse 50% 60% at 90% 20%, rgba(14,12,9,0.05) 0%, transparent 50%),
        radial-gradient(ellipse 70% 40% at 50% 100%, rgba(201,169,110,0.09) 0%, transparent 55%),
        linear-gradient(165deg, #fdf8f0 0%, #f8f1e5 35%, #f4ead8 70%, #f0e4ce 100%);
}
main, header, footer { position: relative; z-index: 1; }
.site-shell { min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1; }

/* ─── KEYFRAMES ─────────────────────────────────────────── */
@keyframes shimmer { 0%{transform:translateX(-100%)} 100%{transform:translateX(200%)} }
@keyframes fadeLift { from{opacity:0;transform:translateY(32px) scale(0.97)} to{opacity:1;transform:translateY(0) scale(1)} }
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-14px)} }
@keyframes sparkle { 0%,100%{opacity:0;transform:scale(0) rotate(0deg)} 50%{opacity:1;transform:scale(1) rotate(180deg)} }
@keyframes orb-drift { 0%{transform:translate(0,0) scale(1)} 33%{transform:translate(40px,-30px) scale(1.05)} 66%{transform:translate(-20px,-50px) scale(0.95)} 100%{transform:translate(0,0) scale(1)} }
@keyframes pulse-ring { 0%{transform:scale(1);opacity:0.6} 100%{transform:scale(1.6);opacity:0} }
@keyframes slideDown { from{opacity:0;transform:translateY(-12px)} to{opacity:1;transform:translateY(0)} }

/* ─── REVEAL ANIMATIONS ─────────────────────────────────── */
.reveal-up {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.72s var(--ease), transform 0.72s var(--ease);
    transition-delay: var(--reveal-delay, 0s);
}
.reveal-up.is-visible { opacity: 1; transform: translateY(0); }
.delay-1 { --reveal-delay: 0.08s; }
.delay-2 { --reveal-delay: 0.16s; }
.delay-3 { --reveal-delay: 0.24s; }
.delay-4 { --reveal-delay: 0.32s; }

/* ─── TYPOGRAPHY ─────────────────────────────────────────── */
h1,h2,h3,h4,h5,h6 { font-family:var(--font-display); font-weight:600; line-height:1.08; letter-spacing:-0.01em; }
.page-copy { font-family:var(--font-body); font-size:0.975rem; line-height:1.72; color:rgba(14,12,9,0.62); }
.muted { color:rgba(14,12,9,0.5); }

/* ─── CONTAINER ──────────────────────────────────────────── */
.container { max-width: 1240px; margin: 0 auto; padding: 0 2rem; }

/* ─── BUTTONS ────────────────────────────────────────────── */
.btn {
    font-family: var(--font-label);
    font-size: 0.82rem; font-weight: 600; letter-spacing: 0.06em;
    padding: 0.82rem 1.8rem; border-radius: var(--r-pill); border: none;
    cursor: pointer; display: inline-flex; align-items: center; gap: 0.5rem;
    transition: all 0.3s var(--ease); position: relative; overflow: hidden; white-space: nowrap;
}
.btn::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg,rgba(255,255,255,0.15) 0%,transparent 60%); opacity:0; transition:opacity 0.3s; }
.btn:hover::before { opacity:1; }

.btn-brand {
    background: linear-gradient(135deg, #c9a96e 0%, #a07840 50%, #8a6230 100%);
    color: #fffbf2;
    box-shadow: 0 8px 28px rgba(160,120,64,0.38), var(--inset-light);
}
.btn-brand:hover { transform:translateY(-2px); box-shadow:0 14px 40px rgba(160,120,64,0.5),var(--inset-light); color:#fffbf2; }
.btn-brand:active { transform:translateY(0); }

.btn-brand-outline {
    background: rgba(255,251,243,0.55); color: var(--gold-deep);
    border: 1.5px solid rgba(201,169,110,0.45);
    box-shadow: var(--shadow-xs), var(--inset-light); backdrop-filter:blur(12px);
}
.btn-brand-outline:hover { background:rgba(255,251,243,0.85); border-color:var(--gold); transform:translateY(-2px); box-shadow:var(--shadow-sm),var(--inset-light); color:var(--gold-deep); }

.btn-dark { background:linear-gradient(135deg,#1a1814 0%,#0f0e0c 100%); color:var(--gold-pale); box-shadow:var(--shadow-md),var(--inset-light); }
.btn-dark:hover { transform:translateY(-2px); box-shadow:var(--shadow-lg); color:var(--gold-bright); }

.btn-sm { padding:0.55rem 1.2rem; font-size:0.75rem; }
.btn-lg { padding:1rem 2.4rem; font-size:0.88rem; }

/* ─── HEADER ─────────────────────────────────────────────── */
.main-header.luxury-header {
    position: sticky; top: 0; z-index: 1000;
    padding: 0.85rem 0;
    transition: all 0.4s var(--ease);
}
.main-header.luxury-header.scrolled {
    background: rgba(250,246,239,0.88);
    backdrop-filter: blur(24px) saturate(1.4);
    border-bottom: 1px solid rgba(201,169,110,0.15);
    box-shadow: 0 4px 24px rgba(14,12,9,0.06);
    padding: 0.55rem 0;
}
.luxury-header .navbar { background:transparent; padding:0; }

.header-shell {
    display: flex; align-items: center; gap: 1.5rem;
    background: rgba(255,251,243,0.72);
    border: 1px solid rgba(201,169,110,0.22);
    border-radius: var(--r-xl); padding: 0.65rem 1.2rem;
    backdrop-filter: blur(20px);
    box-shadow: var(--shadow-sm), var(--inset-light);
    transition: all 0.4s var(--ease);
}
.header-shell:hover { border-color:rgba(201,169,110,0.38); box-shadow:var(--shadow-md),var(--inset-light); }

.navbar-brand { display:flex; align-items:center; gap:0.7rem; flex-shrink:0; }
.brand-logo { width:42px; height:42px; border-radius:12px; object-fit:cover; box-shadow:var(--shadow-sm); }
.brand-mark strong {
    font-family: var(--font-display); font-size:1.55rem; font-weight:700; color:var(--ink); letter-spacing:-0.02em;
}
.brand-mark strong em {
    font-style:normal;
    background:linear-gradient(135deg,var(--gold) 0%,var(--gold-deep) 100%);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}

.luxury-nav-links { list-style:none; display:flex; align-items:center; gap:0.25rem; padding:0; margin:0; }
.luxury-nav-links .nav-link {
    font-family:var(--font-label); font-size:0.8rem; font-weight:600; letter-spacing:0.04em;
    color:rgba(14,12,9,0.7); padding:0.5rem 0.9rem; border-radius:var(--r-md);
    transition:all 0.25s var(--ease); position:relative;
}
.luxury-nav-links .nav-link::after {
    content:''; position:absolute; bottom:6px; left:50%; transform:translateX(-50%) scaleX(0);
    width:calc(100% - 1.8rem); height:1.5px;
    background:linear-gradient(90deg,var(--gold),var(--gold-bright));
    border-radius:2px; transition:transform 0.3s var(--ease);
}
.luxury-nav-links .nav-link:hover { color:var(--ink); background:rgba(201,169,110,0.1); }
.luxury-nav-links .nav-link:hover::after { transform:translateX(-50%) scaleX(1); }
.luxury-nav-links .nav-link.active { color:var(--gold-deep); }

.luxury-header-actions { display:flex; align-items:center; gap:0.6rem; margin-left:auto; }

.header-icon-circle {
    width:40px; height:40px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    background:rgba(201,169,110,0.1); border:1px solid rgba(201,169,110,0.22);
    color:var(--gold-deep); font-size:0.95rem; cursor:pointer;
    transition:all 0.25s var(--ease); flex-shrink:0; text-decoration:none;
}
.header-icon-circle:hover { background:rgba(201,169,110,0.2); border-color:var(--gold); transform:scale(1.06); color:var(--gold-deep); }

.header-city-form { position:relative; }
.header-city-picker {
    display:inline-flex; align-items:center; gap:0.4rem; padding:0 0.9rem; height:40px;
    border-radius:var(--r-pill); background:rgba(201,169,110,0.1); border:1px solid rgba(201,169,110,0.22);
    color:var(--gold-deep); font-size:0.82rem; font-family:var(--font-label); font-weight:600;
    cursor:pointer; transition:all 0.25s var(--ease);
}
.header-city-picker:hover { background:rgba(201,169,110,0.2); border-color:var(--gold); }
.header-city-picker i { font-size:0.85rem; }
.header-city-picker select { background:none; border:none; outline:none; color:inherit; font:inherit; cursor:pointer; }
.header-city-picker select option { color:#1a1814; background:#faf6ef; }

.header-socials { display:flex; align-items:center; gap:0.35rem; }
.header-socials a {
    width:34px; height:34px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    background:rgba(14,12,9,0.06); border:1px solid rgba(14,12,9,0.08);
    color:rgba(14,12,9,0.55); font-size:0.82rem;
    transition:all 0.25s var(--ease);
}
.header-socials a:hover { background:var(--ink); border-color:var(--ink); color:var(--gold-pale); transform:translateY(-2px); }

.navbar-toggler {
    border:1px solid rgba(201,169,110,0.3); border-radius:var(--r-md);
    padding:0.4rem 0.7rem; color:var(--gold-deep); background:rgba(201,169,110,0.1);
}
.navbar-toggler:focus { box-shadow:none; }
.navbar-toggler-icon { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(160,120,64,0.9)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }

/* ─── HERO SECTION ──────────────────────────────────────── */
.premium-hero.reference-hero {
    position: relative; overflow: hidden;
    padding: 3.5rem 0 4.5rem;
    min-height: 90vh; display: flex; align-items: center;
}

/* Hero orbs */
.hero-noise, .hero-wave, .hero-spark { display:none; }

.premium-hero::before {
    content:''; position:absolute; inset:0; pointer-events:none;
    background:
        radial-gradient(ellipse 55% 60% at -5% 0%, rgba(228,192,122,0.35) 0%, transparent 60%),
        radial-gradient(ellipse 45% 55% at 105% 15%, rgba(160,120,64,0.15) 0%, transparent 55%),
        radial-gradient(ellipse 60% 40% at 60% 110%, rgba(201,169,110,0.18) 0%, transparent 55%);
    animation: orb-drift 22s ease-in-out infinite;
}
.premium-hero::after {
    content:''; position:absolute; inset:0; pointer-events:none;
    background:
        radial-gradient(ellipse 30% 30% at 80% 80%, rgba(240,221,184,0.25) 0%, transparent 60%),
        linear-gradient(180deg, transparent 60%, rgba(250,246,239,0.4) 100%);
}

/* Sparkle decorations */
.hero-sparkle-1, .hero-sparkle-2, .hero-sparkle-3 {
    position:absolute; pointer-events:none; z-index:1;
    font-family:var(--font-display); color:var(--gold-bright);
    animation: sparkle 4s ease-in-out infinite;
}
.hero-sparkle-1 { top:12%; left:6%; font-size:1.2rem; animation-delay:0s; }
.hero-sparkle-2 { top:38%; right:8%; font-size:0.8rem; animation-delay:1.8s; }
.hero-sparkle-3 { bottom:22%; left:22%; font-size:0.6rem; animation-delay:3.2s; }

.reference-hero-grid, .hero-grid {
    display: grid;
    grid-template-columns: minmax(0,1.15fr) minmax(360px,0.85fr);
    gap: 3rem; align-items: center;
    position: relative; z-index: 2;
}

/* Breadcrumb */
.hero-topline {
    display: flex; align-items: center; gap: 0.6rem; margin-bottom: 1.8rem; flex-wrap: wrap;
}
.hero-topline span {
    font-family:var(--font-label); font-size:0.72rem; font-weight:600;
    letter-spacing:0.1em; color:rgba(14,12,9,0.45); text-transform:uppercase;
}
.hero-topline span:first-child, .hero-topline span:last-child {
    display:inline-flex; align-items:center; gap:0.3rem;
    color:var(--gold-deep); background:rgba(201,169,110,0.12);
    border:1px solid rgba(201,169,110,0.25); border-radius:var(--r-pill); padding:0.2rem 0.65rem;
}
.hero-topline span:first-child i, .hero-topline span:last-child i { font-size:0.7rem; }

/* Hero title */
.hero-title {
    font-family: var(--font-display);
    font-size: clamp(3rem, 5.5vw, 4.8rem);
    font-weight: 300; line-height: 1.0; letter-spacing: -0.025em;
    color: var(--ink); margin-bottom: 1.4rem; text-wrap: balance;
}
.hero-title em { font-style:italic; color:var(--gold-deep); }
.hero-title strong { font-weight:700; display:block; }

.lead, .hero-lead {
    font-size: 1.02rem; line-height: 1.72; color: rgba(14,12,9,0.58);
    max-width: 480px; margin-bottom: 2rem;
    font-family: var(--font-body);
}

/* ─── SEARCH PANEL ──────────────────────────────────────── */
.search-panel.search-panel-luxury {
    background: rgba(255,251,243,0.72);
    border: 1px solid rgba(201,169,110,0.28); border-radius: var(--r-xl); padding: 0.65rem;
    display: grid; grid-template-columns: 1fr auto auto auto;
    backdrop-filter: blur(24px);
    box-shadow: var(--shadow-md), var(--inset-light);
    margin-bottom: 2.5rem;
    transition: all 0.35s var(--ease);
}
.search-panel.search-panel-luxury:focus-within {
    border-color: rgba(201,169,110,0.55);
    box-shadow: var(--shadow-lg), 0 0 0 4px rgba(201,169,110,0.12), var(--inset-light);
}

.luxury-search-grid {
    display: grid; grid-template-columns: 1fr auto auto auto;
    align-items: center; width: 100%;
}
.luxury-search-field {
    display:flex; align-items:center; gap:0.6rem;
    padding:0.65rem 1.1rem;
    border-right:1px solid rgba(201,169,110,0.18); position:relative;
}
.luxury-search-field:last-of-type { border-right:none; }
.luxury-search-field.field-keyword { flex:1; }
.luxury-search-field i { color:var(--gold); font-size:0.9rem; flex-shrink:0; }
.luxury-search-field .form-control,
.luxury-search-field .form-select {
    background:none; border:none; outline:none; box-shadow:none;
    font-family:var(--font-body); font-size:0.9rem; color:var(--ink); padding:0; min-width:0;
}
.luxury-search-field .form-control::placeholder { color:rgba(14,12,9,0.38); }
.luxury-search-field .form-select { cursor:pointer; min-width:110px; }
.luxury-search-field .form-select option { color:var(--ink); background:var(--parchment); }

.luxury-search-btn, .luxury-search-grid .btn.btn-brand {
    margin:0.25rem; width:50px; height:50px; border-radius:var(--r-lg);
    padding:0; display:inline-flex; align-items:center; justify-content:center; font-size:1rem; flex-shrink:0;
}

/* ─── STATS CARDS ───────────────────────────────────────── */
.stats-grid.hero-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:0.9rem; }

.stats-card.premium-stat-card {
    background: rgba(255,251,243,0.62);
    border: 1px solid rgba(201,169,110,0.22); border-radius:var(--r-lg);
    padding: 1.2rem 1.1rem; backdrop-filter:blur(16px);
    box-shadow: var(--shadow-sm), var(--inset-light);
    transition: all 0.35s var(--ease); cursor:default;
}
.premium-stat-card:hover { transform:translateY(-4px); border-color:rgba(201,169,110,0.4); box-shadow:var(--shadow-md),var(--inset-light); }
.premium-stat-card strong {
    display:block; font-family:var(--font-display); font-size:2.4rem; font-weight:700;
    color:var(--ink); line-height:1;
    background:linear-gradient(135deg,var(--ink) 0%,var(--gold-deep) 100%);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
    margin-bottom:0.3rem;
}
.premium-stat-card .muted {
    font-family:var(--font-label); font-size:0.7rem; font-weight:600;
    letter-spacing:0.1em; text-transform:uppercase; color:rgba(14,12,9,0.45);
}

/* ─── PROMO CARD ─────────────────────────────────────────── */
.hero-side-stack.reference-promo-stack { animation:float 7s ease-in-out infinite; }

.glass-feature-panel.promo-card-luxury {
    background: linear-gradient(145deg,rgba(14,12,9,0.93) 0%,rgba(24,18,11,0.97) 100%);
    border: 1px solid rgba(201,169,110,0.22); border-radius:var(--r-xl);
    padding: 2rem; backdrop-filter:blur(32px);
    box-shadow: var(--shadow-lg), 0 0 0 1px rgba(201,169,110,0.06) inset;
    position:relative; overflow:hidden;
}
.glass-feature-panel.promo-card-luxury::before {
    content:''; position:absolute; top:0; left:0; right:0; height:1px;
    background:linear-gradient(90deg,transparent,rgba(201,169,110,0.65),transparent);
}
.glass-feature-panel.promo-card-luxury::after {
    content:''; position:absolute; top:-40%; right:-20%;
    width:280px; height:280px;
    background:radial-gradient(circle,rgba(201,169,110,0.12),transparent 70%);
    border-radius:50%; pointer-events:none;
}

.feature-ribbon.luxury-ribbon {
    display:inline-flex; align-items:center; gap:0.4rem;
    font-family:var(--font-label); font-size:0.68rem; font-weight:700;
    letter-spacing:0.12em; text-transform:uppercase;
    color:var(--gold-bright); background:rgba(201,169,110,0.12);
    border:1px solid rgba(201,169,110,0.28); border-radius:var(--r-pill);
    padding:0.3rem 0.8rem; margin-bottom:1.1rem; width:fit-content;
}
.feature-ribbon.luxury-ribbon::before { content:'✦'; font-size:0.6rem; }

.promo-card-inner h3 { font-size:1.8rem; font-weight:600; color:#fffbf2; line-height:1.12; margin-bottom:0.8rem; }
.promo-card-inner p { font-size:0.88rem; color:rgba(255,251,242,0.52); line-height:1.65; margin-bottom:1.2rem; }

.promo-list { list-style:none; padding:0; margin:0 0 1.5rem; display:flex; flex-direction:column; gap:0.7rem; }
.promo-list li { display:flex; align-items:flex-start; gap:0.6rem; font-size:0.87rem; color:rgba(255,251,242,0.72); line-height:1.5; }
.promo-list li i { color:var(--gold); font-size:0.85rem; margin-top:0.1rem; flex-shrink:0; }

.promo-card-inner .d-flex { flex-wrap:wrap; gap:0.8rem; }

/* ─── SECTION BASE ──────────────────────────────────────── */
.section-block { padding:5rem 0; }
.section-block.soft-section { background:rgba(255,251,243,0.4); }

.section-heading-row {
    display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:2.5rem;
}
.section-eyebrow {
    font-family:var(--font-label); font-size:0.7rem; font-weight:700; letter-spacing:0.16em; text-transform:uppercase;
    color:var(--gold); margin-bottom:0.4rem; display:flex; align-items:center; gap:0.5rem;
}
.section-eyebrow::before { content:''; display:inline-block; width:20px; height:1.5px; background:linear-gradient(90deg,var(--gold),transparent); border-radius:2px; }
.section-title {
    font-family:var(--font-display); font-size:clamp(2rem,3.5vw,2.8rem); font-weight:600;
    color:var(--ink); line-height:1.06; letter-spacing:-0.02em;
}

/* ─── LISTING CARDS ─────────────────────────────────────── */
.listing-card.luxury-listing-card, .luxury-listing-card {
    background: rgba(255,251,243,0.65);
    border: 1px solid rgba(201,169,110,0.2); border-radius:var(--r-xl);
    overflow:hidden; backdrop-filter:blur(20px);
    box-shadow:var(--shadow-sm),var(--inset-light);
    transition:all 0.4s var(--ease); position:relative;
    display:flex; flex-direction:column; height:100%;
}
.listing-card.luxury-listing-card::before {
    content:''; position:absolute; top:0; left:0; right:0; height:1px;
    background:linear-gradient(90deg,transparent,rgba(201,169,110,0.4),transparent);
}
.listing-card.luxury-listing-card:hover {
    transform:translateY(-8px);
    border-color:rgba(201,169,110,0.38);
    box-shadow:var(--shadow-lg),var(--shadow-gold),var(--inset-light);
}

.card-media-wrap {
    position:relative; height:190px;
    background:linear-gradient(145deg,rgba(240,221,184,0.55),rgba(220,191,144,0.3));
    display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.card-media-wrap::before {
    content:''; position:absolute; inset:0;
    background:radial-gradient(circle at 25% 25%,rgba(255,255,255,0.65),transparent 45%),radial-gradient(circle at 75% 75%,rgba(201,169,110,0.12),transparent 40%);
}
.card-media-wrap img {
    position:relative; z-index:1; width:auto; height:90px; max-width:80%;
    object-fit:contain; filter:drop-shadow(0 10px 20px rgba(14,12,9,0.12));
    transition:transform 0.4s var(--ease);
}
.luxury-listing-card:hover .card-media-wrap img { transform:scale(1.05) translateY(-3px); }

.featured-ribbon {
    position:absolute; top:14px; right:14px; z-index:2;
    font-family:var(--font-label); font-size:0.65rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase;
    background:linear-gradient(135deg,var(--gold),var(--gold-deep)); color:#fff;
    padding:0.28rem 0.72rem; border-radius:var(--r-pill);
    box-shadow:0 4px 14px rgba(160,120,64,0.45);
}

.listing-card .content, .listing-card-body {
    padding:1.4rem; flex:1; display:flex; flex-direction:column;
}

.card-meta-row { display:flex; align-items:center; justify-content:space-between; gap:0.5rem; margin-bottom:0.8rem; }

.tag-pill {
    font-family:var(--font-label); font-size:0.67rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;
    background:rgba(201,169,110,0.14); color:var(--gold-deep);
    border:1px solid rgba(201,169,110,0.28); border-radius:var(--r-pill); padding:0.22rem 0.65rem;
}
.verified-badge { font-family:var(--font-label); font-size:0.67rem; font-weight:600; color:rgba(14,12,9,0.45); display:flex; align-items:center; gap:0.3rem; }
.verified-badge i { color:var(--gold); font-size:0.75rem; }

.luxury-listing-card h4, .listing-card h4 { font-size:1.28rem; font-weight:600; color:var(--ink); line-height:1.18; margin-bottom:0.45rem; transition:color 0.25s; }
.luxury-listing-card:hover h4 { color:var(--gold-deep); }

.listing-meta { font-size:0.84rem; color:rgba(14,12,9,0.48); display:flex; align-items:center; gap:0.35rem; margin-bottom:0.55rem; }
.listing-meta i { color:var(--gold); font-size:0.8rem; }

/* Stars */
.rating-stars { display:flex; align-items:center; gap:0.2rem; color:var(--gold); font-size:0.82rem; }
.rating-stars .bi-star-fill { color:var(--gold); }
.rating-stars .bi-star-half { color:var(--gold); }
.rating-stars .bi-star { color:rgba(201,169,110,0.35); }
.rating-stars + span, .rating-count { font-size:0.78rem; color:rgba(14,12,9,0.45); margin-left:0.3rem; }

.card-bottom-row {
    display:flex; align-items:center; justify-content:space-between; gap:0.5rem;
    margin-bottom:0.9rem; padding-top:0.7rem; border-top:1px solid rgba(201,169,110,0.12);
}

.quick-actions { display:flex; gap:0.45rem; flex-wrap:wrap; }
.quick-actions-stacked .quick-action-btn { flex:1 1 calc(33.333% - 0.3rem); justify-content:center; }
.quick-action-btn {
    display:inline-flex; align-items:center; gap:0.38rem; padding:0.58rem 0.9rem;
    border-radius:var(--r-md); font-family:var(--font-label); font-size:0.74rem; font-weight:700; letter-spacing:0.05em;
    background:rgba(14,12,9,0.04); border:1px solid rgba(14,12,9,0.1); color:var(--ink);
    transition:all 0.25s var(--ease); cursor:pointer; white-space:nowrap; text-decoration:none;
}
.quick-action-btn:hover { background:var(--gold); border-color:var(--gold); color:#fff; transform:translateY(-2px); box-shadow:0 6px 18px rgba(201,169,110,0.4); }
.quick-action-btn i { font-size:0.82rem; }

/* ─── CATEGORY CARDS ─────────────────────────────────────── */
.category-rail-card {
    display:flex; align-items:center; gap:1.1rem; padding:1.35rem 1.4rem;
    background:rgba(255,251,243,0.65); border:1px solid rgba(201,169,110,0.18);
    border-radius:var(--r-xl); backdrop-filter:blur(16px);
    box-shadow:var(--shadow-sm),var(--inset-light); transition:all 0.35s var(--ease);
    cursor:pointer; position:relative; overflow:hidden; text-decoration:none; color:inherit;
    min-height:100%;
}
.category-rail-card:hover { transform:translateY(-6px); border-color:rgba(201,169,110,0.38); box-shadow:var(--shadow-md),var(--shadow-gold),var(--inset-light); color:inherit; }

.category-rail-icon {
    width:64px; height:64px; border-radius:var(--r-lg);
    background:linear-gradient(135deg,var(--gold-pale),rgba(201,169,110,0.25));
    display:flex; align-items:center; justify-content:center;
    color:var(--gold-deep); font-size:1.5rem; flex-shrink:0;
    transition:all 0.35s var(--ease); box-shadow:var(--shadow-xs);
}
.category-rail-card:hover .category-rail-icon { background:linear-gradient(135deg,var(--gold),var(--gold-deep)); color:#fff; transform:scale(1.05) rotate(-3deg); box-shadow:var(--shadow-gold); }
.category-rail-card h4 { font-size:1.18rem; font-weight:600; color:var(--ink); margin-bottom:0.25rem; transition:color 0.25s; }
.category-rail-card:hover h4 { color:var(--gold-deep); }

/* ─── TESTIMONIAL CARDS ──────────────────────────────────── */
.glass-card.testimonial-card {
    background:rgba(255,251,243,0.65); border:1px solid rgba(201,169,110,0.18);
    border-radius:var(--r-xl); padding:1.8rem; backdrop-filter:blur(16px);
    box-shadow:var(--shadow-sm),var(--inset-light); transition:all 0.35s var(--ease);
    position:relative; overflow:hidden; display:flex; flex-direction:column;
}
.testimonial-card::before {
    content:'\201C'; position:absolute; top:-0.3rem; right:1.5rem;
    font-family:var(--font-display); font-size:7rem; color:rgba(201,169,110,0.12);
    line-height:1; pointer-events:none; font-weight:700;
}
.testimonial-card:hover { transform:translateY(-6px); border-color:rgba(201,169,110,0.34); box-shadow:var(--shadow-md),var(--shadow-gold),var(--inset-light); }

.testimonial-top { display:flex; align-items:center; gap:0.9rem; margin-bottom:1rem; }
.testimonial-avatar {
    width:52px; height:52px; border-radius:50%;
    background:linear-gradient(135deg,var(--gold-pale),rgba(201,169,110,0.4));
    display:flex; align-items:center; justify-content:center;
    font-family:var(--font-display); font-size:1.3rem; font-weight:700;
    color:var(--gold-deep); border:2px solid rgba(201,169,110,0.25); flex-shrink:0;
}
.testimonial-top strong { display:block; font-size:1rem; font-weight:600; color:var(--ink); margin-bottom:0.15rem; }
.testimonial-top span { font-size:0.8rem; color:rgba(14,12,9,0.45); font-family:var(--font-label); }

/* ─── CTA BANNER ─────────────────────────────────────────── */
.glass-card.cta-panel.premium-cta.luxury-cta-banner {
    background:linear-gradient(145deg,rgba(14,12,9,0.93) 0%,rgba(22,17,11,0.97) 100%);
    border:1px solid rgba(201,169,110,0.2); border-radius:var(--r-xl);
    padding:3rem 2.5rem; position:relative; overflow:hidden; box-shadow:var(--shadow-lg);
}
.luxury-cta-banner::before {
    content:''; position:absolute; top:0; left:0; right:0; height:1px;
    background:linear-gradient(90deg,transparent,rgba(201,169,110,0.7),transparent);
}
.luxury-cta-banner::after {
    content:''; position:absolute; top:-60%; right:-10%; width:450px; height:450px;
    background:radial-gradient(circle,rgba(201,169,110,0.1),transparent 70%);
    border-radius:50%; pointer-events:none;
}
.luxury-cta-banner .section-title { color:#fffbf2; position:relative; z-index:1; }
.luxury-cta-banner .page-copy { color:rgba(255,251,242,0.52); position:relative; z-index:1; margin-bottom:0; }
.luxury-cta-banner .col-lg-5 { position:relative; z-index:1; }
.luxury-cta-banner .btn-brand-outline { background:rgba(255,251,243,0.1); border-color:rgba(201,169,110,0.35); color:var(--gold-pale); }
.luxury-cta-banner .btn-brand-outline:hover { background:rgba(255,251,243,0.18); color:var(--gold-bright); }

/* ─── FOOTER ─────────────────────────────────────────────── */
.site-footer.luxury-footer.premium-footer {
    background:
        radial-gradient(ellipse 60% 50% at 20% 0%,rgba(201,169,110,0.08),transparent 50%),
        linear-gradient(180deg,#100e0b 0%,#0b0a08 100%);
    border-top:1px solid rgba(201,169,110,0.14);
    padding:4.5rem 0 0; margin-top:0; position:relative; overflow:hidden;
}
.luxury-footer::before {
    content:''; position:absolute; top:0; left:0; right:0; height:1px;
    background:linear-gradient(90deg,transparent,rgba(201,169,110,0.5) 50%,transparent);
}

.luxury-footer h5 { font-family:var(--font-display); font-size:1.6rem; font-weight:600; color:#fffbf2; margin-bottom:0.9rem; letter-spacing:-0.015em; }
.luxury-footer h6 { font-family:var(--font-label); font-size:0.72rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold); margin-bottom:1.2rem; }
.luxury-footer p { font-size:0.9rem; line-height:1.7; color:rgba(255,251,242,0.45); }

.footer-links { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:0.6rem; }
.footer-links a { font-size:0.88rem; color:rgba(255,251,242,0.5); transition:all 0.25s var(--ease); display:inline-flex; align-items:center; gap:0.3rem; }
.footer-links a:hover { color:var(--gold-bright); transform:translateX(4px); }

.footer-contact-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:0.9rem; }
.footer-contact-list li { display:flex; align-items:flex-start; gap:0.75rem; font-size:0.88rem; color:rgba(255,251,242,0.52); }
.footer-contact-list i { color:var(--gold); margin-top:0.1rem; flex-shrink:0; font-size:0.9rem; }

.footer-socials { display:flex; gap:0.5rem; flex-wrap:wrap; }
.footer-socials a {
    width:42px; height:42px; border-radius:var(--r-md);
    display:inline-flex; align-items:center; justify-content:center;
    background:rgba(255,251,243,0.06); border:1px solid rgba(201,169,110,0.16);
    color:rgba(255,251,242,0.55); font-size:0.92rem; transition:all 0.28s var(--ease);
}
.footer-socials a:hover { background:linear-gradient(135deg,var(--gold),var(--gold-deep)); border-color:transparent; color:#fff; transform:translateY(-3px); box-shadow:0 8px 20px rgba(201,169,110,0.4); }

.footer-main-grid { row-gap:2rem; }
.footer-bottom {
    margin-top:3.5rem; padding:1.5rem 0; border-top:1px solid rgba(201,169,110,0.1);
    display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:0.75rem;
}
.footer-bottom span { font-size:0.82rem; color:rgba(255,251,242,0.28); }

/* ─── FLOATING WIDGETS ──────────────────────────────────── */
.whatsapp-floating-btn {
    position:fixed; bottom:110px; right:24px; z-index:1200;
    width:58px; height:58px; border-radius:50%;
    background:linear-gradient(135deg,#2dd46a,#0da843); color:#fff;
    display:flex; align-items:center; justify-content:center; font-size:1.5rem;
    box-shadow:0 8px 28px rgba(13,168,67,0.45); transition:all 0.3s var(--ease-bounce);
    text-decoration:none;
}
.whatsapp-floating-btn:hover { transform:scale(1.1) translateY(-3px); box-shadow:0 14px 40px rgba(13,168,67,0.55); color:#fff; }
.whatsapp-floating-btn::before {
    content:''; position:absolute; inset:0; border-radius:50%;
    background:inherit; opacity:0.5; animation:pulse-ring 2s ease-out infinite;
}

.chatbot-widget { position:fixed; bottom:28px; right:24px; z-index:1200; }
.chatbot-toggle {
    width:58px; height:58px; border-radius:50%;
    background:linear-gradient(135deg,var(--gold-pale),var(--gold),var(--gold-deep));
    color:var(--ink); display:flex; align-items:center; justify-content:center;
    font-size:1.35rem; box-shadow:0 8px 28px rgba(201,169,110,0.45);
    transition:all 0.3s var(--ease-bounce); border:none; cursor:pointer;
}
.chatbot-toggle:hover { transform:scale(1.1) rotate(-5deg); box-shadow:var(--shadow-gold-lg); }

.chatbot-panel {
    position:absolute; bottom:70px; right:0; width:320px;
    background:rgba(18,15,11,0.96); border:1px solid rgba(201,169,110,0.22);
    border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--shadow-lg);
    backdrop-filter:blur(32px); display:none; flex-direction:column;
}
.chatbot-panel.is-open { display:flex; animation:fadeLift 0.35s var(--ease) both; }
.chatbot-header {
    background:linear-gradient(135deg,rgba(201,169,110,0.15),rgba(201,169,110,0.05));
    padding:1rem 1.2rem; display:flex; align-items:center; justify-content:space-between;
    gap:0.75rem; border-bottom:1px solid rgba(201,169,110,0.12);
}
.chatbot-header strong { display:block; font-size:0.92rem; color:#fffbf2; font-family:var(--font-display); }
.chatbot-header small { font-size:0.74rem; color:rgba(255,251,242,0.42); line-height:1.4; }
.chatbot-close {
    width:30px; height:30px; border-radius:50%; background:rgba(255,251,243,0.1);
    border:none; color:rgba(255,251,242,0.6); display:flex; align-items:center; justify-content:center;
    cursor:pointer; font-size:0.82rem; transition:all 0.22s;
}
.chatbot-close:hover { background:rgba(255,251,243,0.18); color:#fffbf2; }
.chatbot-messages { padding:1rem; max-height:220px; overflow-y:auto; display:flex; flex-direction:column; gap:0.6rem; }
.chatbot-bubble { padding:0.65rem 0.9rem; border-radius:var(--r-lg); font-size:0.85rem; line-height:1.55; max-width:85%; }
.chatbot-bubble.bot { background:rgba(255,251,243,0.88); color:var(--ink); align-self:flex-start; }
.chatbot-bubble.user { background:linear-gradient(135deg,var(--gold),var(--gold-deep)); color:#fff; align-self:flex-end; }
.chatbot-form { padding:0.9rem; background:rgba(14,12,9,0.5); border-top:1px solid rgba(201,169,110,0.1); }
.chatbot-form .form-control { background:rgba(255,255,255,0.9); border:1px solid rgba(201,169,110,0.22); border-radius:var(--r-md); font-size:0.85rem; color:var(--ink); padding:0.5rem 0.8rem; }
.chatbot-form .form-control:focus { outline:none; box-shadow:none; border-color:var(--gold); }

/* ─── SECTION DIVIDER ────────────────────────────────────── */
.section-divider { border-bottom:1px solid rgba(201,169,110,0.1); }

/* ─── MISC DETAIL PAGE ──────────────────────────────────── */
.page-title { font-family:var(--font-display); font-size:clamp(2rem,4vw,3rem); font-weight:600; color:var(--ink); line-height:1.08; letter-spacing:-0.02em; }
.page-banner { padding:3rem 0 2.5rem; background:transparent; }
.sidebar-card { background:rgba(255,251,243,0.65); border:1px solid rgba(201,169,110,0.18); border-radius:var(--r-xl); padding:1.5rem; backdrop-filter:blur(16px); box-shadow:var(--shadow-sm),var(--inset-light); margin-bottom:1.2rem; }
.detail-hero-image { border-radius:var(--r-xl); object-fit:cover; width:100%; box-shadow:var(--shadow-md); }
.detail-badges { display:flex; gap:0.5rem; flex-wrap:wrap; margin-bottom:0.8rem; }
.detail-grid > div { background:rgba(255,251,243,0.65); border:1px solid rgba(201,169,110,0.15); border-radius:var(--r-lg); padding:1rem 1.1rem; }
.highlight-band { background:linear-gradient(135deg,rgba(201,169,110,0.1),rgba(240,221,184,0.2)); border:1px solid rgba(201,169,110,0.22); border-radius:var(--r-lg); padding:0.9rem 1.1rem; font-family:var(--font-label); font-size:0.8rem; font-weight:600; color:var(--gold-deep); }
.detail-action-grid .btn { width:100%; justify-content:center; margin-bottom:0.5rem; }
.review-item { background:rgba(255,251,243,0.65); border:1px solid rgba(201,169,110,0.15); border-radius:var(--r-lg); padding:1.1rem; margin-bottom:0.8rem; }
.editorial-panel { background:rgba(255,251,243,0.65); border:1px solid rgba(201,169,110,0.18); border-radius:var(--r-xl); padding:1.5rem; backdrop-filter:blur(16px); box-shadow:var(--shadow-sm),var(--inset-light); }
.eyebrow-pill { font-family:var(--font-label); font-size:0.68rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; background:rgba(201,169,110,0.12); color:var(--gold-deep); border:1px solid rgba(201,169,110,0.25); border-radius:var(--r-pill); padding:0.22rem 0.65rem; }
.glass-card { background:rgba(255,251,243,0.65); border:1px solid rgba(201,169,110,0.18); border-radius:var(--r-xl); backdrop-filter:blur(16px); box-shadow:var(--shadow-sm),var(--inset-light); }
.soft-section { background:rgba(255,251,243,0.5); }
.page-loading { overflow-x:hidden; }

/* ─── SKELETON LOADING ──────────────────────────────────── */
.page-loading .hero-title, .page-loading .page-title, .page-loading .section-title,
.page-loading .lead, .page-loading .page-copy, .page-loading .tag-pill,
.page-loading .eyebrow-pill, .page-loading .feature-ribbon, .page-loading .listing-meta,
.page-loading .rating-stars, .page-loading .quick-actions, .page-loading .btn,
.page-loading .verified-badge, .page-loading .footer-links, .page-loading .footer-bottom span,
.page-loading .chatbot-widget, .page-loading .navbar-nav, .page-loading .highlight-band,
.page-loading .detail-badges, .page-loading .detail-grid > div, .page-loading .review-item {
    color:transparent !important; text-shadow:none !important;
}
.page-loading .btn, .page-loading .tag-pill, .page-loading .eyebrow-pill, .page-loading .feature-ribbon,
.page-loading .verified-badge, .page-loading .quick-action-btn, .page-loading .rating-stars,
.page-loading .navbar-brand span, .page-loading .nav-link, .page-loading .footer-links a,
.page-loading .footer-bottom span, .page-loading .hero-title, .page-loading .page-title,
.page-loading .section-title, .page-loading .lead, .page-loading .page-copy, .page-loading .listing-meta,
.page-loading .search-panel .form-control, .page-loading .search-panel .form-select,
.page-loading .detail-action-grid .btn, .page-loading .chatbot-toggle {
    position:relative; overflow:hidden;
    background-image:none !important; background-color:rgba(201,169,110,0.1) !important;
    border-color:transparent !important; box-shadow:none !important; border-radius:8px;
}
.page-loading .btn::after, .page-loading .hero-title::after, .page-loading .section-title::after,
.page-loading .lead::after, .page-loading .page-copy::after, .page-loading .nav-link::after {
    content:''; position:absolute; top:0; left:0; width:60%; height:100%;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,0.5),transparent);
    animation:shimmer 1.5s linear infinite;
}
.page-loading .hero-title { min-height:80px; }
.page-loading .section-title { min-height:50px; }
.page-loading .page-copy, .page-loading .lead { min-height:20px; }
.page-loading .listing-card img, .page-loading .category-card img, .page-loading .brand-logo { opacity:0.2; }
.page-loading .listing-card, .page-loading .category-card, .page-loading .city-card,
.page-loading .stats-card, .page-loading .glass-card, .page-loading .sidebar-card,
.page-loading .search-panel, .page-loading .glass-feature-panel, .page-loading .editorial-panel {
    position:relative; overflow:hidden;
}
.page-loading .listing-card::after, .page-loading .stats-card::after, .page-loading .glass-card::after,
.page-loading .glass-feature-panel::after {
    content:''; position:absolute; inset:0;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,0.12),transparent);
    animation:shimmer 1.5s linear infinite;
}

/* ─── RESPONSIVE ─────────────────────────────────────────── */
@media (max-width: 1199px) {
    .reference-hero-grid, .hero-grid { grid-template-columns:1fr; }
    .hero-side-stack.reference-promo-stack { max-width:520px; animation:none; }
    .stats-grid.hero-stats { grid-template-columns:repeat(3,1fr); }
    .luxury-header-actions { margin-top:0; }
}
@media (max-width: 991px) {
    .luxury-header .navbar-collapse {
        background:rgba(255,251,243,0.96); border:1px solid rgba(201,169,110,0.2);
        border-radius:var(--r-xl); padding:1rem; margin-top:0.5rem;
        backdrop-filter:blur(20px); box-shadow:var(--shadow-md);
    }
    .luxury-nav-links { flex-direction:column; align-items:stretch; gap:0.15rem; }
    .luxury-nav-links .nav-link { color:var(--ink); }
    .luxury-header-actions { display:grid; grid-template-columns:1fr 1fr; gap:0.5rem; margin-top:0.75rem; }
    .header-socials { grid-column:1/-1; }
    .header-city-form, .luxury-header .btn-brand-outline { width:100%; }
    .header-icon-circle { width:100%; border-radius:var(--r-md); }
    .luxury-search-grid { grid-template-columns:1fr; }
    .luxury-search-field { border-right:none; border-bottom:1px solid rgba(201,169,110,0.12); min-height:54px; }
    .luxury-search-field:last-of-type { border-bottom:none; }
    .luxury-search-btn, .luxury-search-grid .btn.btn-brand { width:100%; border-radius:var(--r-lg); height:52px; }
    .search-panel.search-panel-luxury { grid-template-columns:1fr; }
    .reference-hero { padding:2rem 0 3rem; }
}
@media (max-width: 767px) {
    .premium-hero.reference-hero { min-height:auto; padding:2rem 0 3rem; }
    .hero-title { font-size:clamp(2.6rem,10vw,3.6rem); }
    .stats-grid.hero-stats { grid-template-columns:1fr; }
    .section-block { padding:3.5rem 0; }
    .luxury-cta-banner { padding:2rem 1.5rem; }
    .luxury-footer { padding:3rem 0 0; }
    .section-heading-row { flex-direction:column; align-items:flex-start; }
    .container { padding:0 1.25rem; }
    .header-shell { padding:0.55rem 0.85rem; gap:0.75rem; }
    .brand-mark strong { font-size:1.3rem; }
    .promo-card-inner .d-flex { flex-direction:column; }
    .promo-card-inner .btn { justify-content:center; }
    .footer-bottom { flex-direction:column; align-items:flex-start; }
    .luxury-cta-banner .col-lg-5 { display:flex; flex-wrap:wrap; gap:0.75rem; }
}
@media (max-width: 480px) {
    .stats-grid.hero-stats { grid-template-columns:repeat(3,1fr); gap:0.5rem; }
    .premium-stat-card strong { font-size:1.8rem; }
    .premium-stat-card { padding:0.8rem; }
    .whatsapp-floating-btn, .chatbot-widget { right:14px; }
    .whatsapp-floating-btn { bottom:96px; }
    .chatbot-widget { bottom:20px; }
    .chatbot-panel { width:calc(100vw - 28px); right:0; }
    .quick-actions-stacked .quick-action-btn { flex:1 1 100%; }
}


.admin-body {
    min-height: 100vh;
    background:
        radial-gradient(circle at top left, rgba(255, 229, 185, 0.18), transparent 24%),
        linear-gradient(180deg, #f8f3ea 0%, #efe4d3 100%);
    color: #1f1914;
}
.admin-body .container,
.admin-body .container-fluid {
    max-width: none;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}
.admin-card {
    border-radius: 28px;
    border: 1px solid rgba(160, 120, 64, 0.14);
    background: rgba(255, 252, 247, 0.92);
    box-shadow: 0 24px 60px rgba(88, 54, 31, 0.12);
    backdrop-filter: blur(14px);
    padding: 1.5rem;
}
.login-screen {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 2rem 1rem;
}
.login-card {
    width: min(100%, 460px);
    margin: 0 auto;
    padding: 2rem;
}
.login-card h2 {
    font-family: 'Playfair Display', serif;
    font-size: 2.4rem;
    color: #2a1a12;
}
.login-card .form-label {
    font-weight: 600;
    color: #4a3424;
}
.login-card .form-control {
    min-height: 54px;
    border-radius: 16px;
    border: 1px solid rgba(160, 120, 64, 0.18);
    background: rgba(255,255,255,0.95);
}
.login-card .btn.btn-brand {
    width: 100%;
    justify-content: center;
    min-height: 54px;
    border-radius: 18px;
    font-size: 0.95rem;
}
.admin-sidebar {
    min-height: 100vh;
    background: linear-gradient(180deg, #1f241f 0%, #162019 100%);
    color: #fff2dc;
    padding: 1.5rem 1rem;
    border-right: 1px solid rgba(255,255,255,0.06);
}
.admin-sidebar h4 {
    color: #fff5e5;
    font-family: 'Playfair Display', serif;
}
.admin-sidebar a {
    display: block;
    padding: 0.85rem 1rem;
    border-radius: 16px;
    color: rgba(255, 240, 216, 0.82);
    margin-bottom: 0.45rem;
    transition: all 0.25s ease;
}
.admin-sidebar a:hover,
.admin-sidebar a.active {
    color: #1f1914;
    background: linear-gradient(135deg, #f2d7ac, #c89f62);
}
.admin-body .table-responsive {
    border-radius: 18px;
}
.admin-body .table thead th {
    border-bottom-width: 1px;
    color: #5f4937;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
@media (max-width: 991px) {
    .admin-sidebar {
        min-height: auto;
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,0.06);
    }
}

.admin-shell {
    min-height: 100vh;
    display: flex;
    align-items: stretch;
}
.admin-main {
    flex: 1;
    min-width: 0;
}
.admin-main-inner {
    padding: 2rem;
}
.admin-sidebar {
    width: 280px;
    flex: 0 0 280px;
    min-height: 100vh;
    position: sticky;
    top: 0;
    align-self: flex-start;
}
@media (max-width: 991px) {
    .admin-shell {
        display: block;
    }
    .admin-sidebar {
        width: 100%;
        flex-basis: auto;
        position: static;
        min-height: auto;
    }
    .admin-main-inner {
        padding: 1.25rem;
    }
}

/* =========================================================
   2026 Shared Audit Cleanup Overrides
   Premium consistency + SEO-friendly structure styling
   ========================================================= */

body {
    color: #181511;
}

main > section:first-child {
    margin-top: 0;
}

.page-banner {
    padding: 3.4rem 0 2rem;
    position: relative;
}

.page-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255,251,243,0.62) 0%, rgba(255,251,243,0.16) 100%);
    pointer-events: none;
}

.page-banner .container,
.section-block .container {
    position: relative;
    z-index: 1;
}

.section-block {
    padding: 2rem 0 4.25rem;
}

.glass-card,
.sidebar-card,
.editorial-panel,
.category-card,
.city-card,
.listing-card,
.category-rail-card {
    transition: transform 0.32s var(--ease), box-shadow 0.32s var(--ease), border-color 0.32s var(--ease), background-color 0.32s var(--ease);
}

.glass-card,
.sidebar-card,
.editorial-panel {
    padding: 1.5rem;
}

.glass-card:hover,
.sidebar-card:hover,
.editorial-panel:hover,
.category-card:hover,
.city-card:hover,
.listing-card:hover,
.category-rail-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-md), var(--inset-light);
    border-color: rgba(201,169,110,0.3);
}

.category-card,
.city-card,
.listing-card {
    height: 100%;
    display: flex;
    flex-direction: column;
    background: rgba(255,251,243,0.82);
    border: 1px solid rgba(201,169,110,0.18);
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--shadow-sm), var(--inset-light);
    backdrop-filter: blur(18px);
}

.category-card img,
.city-card img,
.listing-card img,
.card-media-wrap img {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    transition: transform 0.5s var(--ease);
}

.category-card:hover img,
.city-card:hover img,
.listing-card:hover img,
.listing-card:hover .card-media-wrap img {
    transform: scale(1.05);
}

.category-card .content,
.city-card .content,
.listing-card .content {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    flex: 1;
}

.category-card h4,
.city-card h4,
.listing-card h4,
.glass-card h3,
.sidebar-card h4,
.admin-card h4 {
    margin-bottom: 0;
}

.page-copy ul,
.glass-card ul,
.sidebar-card ul {
    padding-left: 1.1rem;
}

.page-copy li,
.glass-card li,
.sidebar-card li {
    margin-bottom: 0.45rem;
}

.form-control,
.form-select,
textarea.form-control {
    min-height: 52px;
    border-radius: 16px;
    border: 1px solid rgba(160, 120, 64, 0.18);
    background: rgba(255,255,255,0.88);
    box-shadow: none;
    padding: 0.85rem 1rem;
}

textarea.form-control {
    min-height: 128px;
}

.form-control:focus,
.form-select:focus,
textarea.form-control:focus {
    border-color: rgba(160, 120, 64, 0.42);
    box-shadow: 0 0 0 0.22rem rgba(201,169,110,0.14);
    background: #fff;
}

.pagination {
    gap: 0.45rem;
}

.page-link {
    border: 1px solid rgba(201,169,110,0.22);
    color: var(--gold-deep);
    background: rgba(255,251,243,0.75);
    border-radius: 14px !important;
    padding: 0.65rem 0.92rem;
    box-shadow: var(--shadow-xs);
}

.page-item.active .page-link,
.page-link:hover {
    color: #fff;
    background: linear-gradient(135deg, #c9a96e 0%, #8a6230 100%);
    border-color: transparent;
}

.footer-discovery {
    margin-top: 2.5rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(201,169,110,0.1);
}

.footer-link-cloud {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
    margin-top: 1rem;
}

.footer-link-cloud a {
    padding: 0.65rem 0.95rem;
    border-radius: 999px;
    border: 1px solid rgba(201,169,110,0.16);
    background: rgba(255,251,243,0.06);
    color: rgba(255,251,242,0.6);
    font-size: 0.82rem;
    transition: all 0.25s var(--ease);
}

.footer-link-cloud a:hover {
    background: rgba(201,169,110,0.16);
    color: var(--gold-bright);
    transform: translateY(-2px);
}

.admin-shell {
    min-height: 100vh;
    display: flex;
    align-items: stretch;
}

.admin-sidebar {
    width: 296px;
    flex: 0 0 296px;
    min-height: 100vh;
    position: sticky;
    top: 0;
    align-self: flex-start;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem 1rem;
    overflow-y: auto;
}

.admin-sidebar-brand {
    padding: 0.8rem 0.55rem 1rem;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.admin-sidebar-kicker {
    display: inline-block;
    margin-bottom: 0.45rem;
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 233, 197, 0.62);
}

.admin-sidebar-brand p {
    color: rgba(255, 240, 216, 0.6);
    font-size: 0.86rem;
    line-height: 1.65;
}

.admin-nav,
.admin-sidebar-bottom {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.admin-sidebar-bottom {
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid rgba(255,255,255,0.08);
}

.admin-sidebar a {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    padding: 0.9rem 1rem;
    border-radius: 16px;
    color: rgba(255, 240, 216, 0.82);
    margin-bottom: 0;
    transition: all 0.25s ease;
}

.admin-sidebar a i {
    font-size: 1rem;
    width: 1.1rem;
    text-align: center;
}

.admin-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.35rem;
    border-radius: 24px;
    border: 1px solid rgba(160, 120, 64, 0.12);
    background: rgba(255, 252, 247, 0.78);
    box-shadow: var(--shadow-xs);
    backdrop-filter: blur(14px);
}

.admin-main-inner {
    padding: 2rem;
}

.admin-card {
    height: 100%;
}

.admin-card .table {
    margin-bottom: 0;
}

.admin-body .table {
    --bs-table-bg: transparent;
}

.admin-body .table td,
.admin-body .table th {
    padding: 1rem 0.85rem;
}

.admin-body .btn {
    letter-spacing: 0;
}

@media (max-width: 991px) {
    .admin-shell {
        display: block;
    }

    .admin-sidebar {
        width: 100%;
        flex-basis: auto;
        position: static;
        min-height: auto;
    }

    .admin-topbar {
        flex-direction: column;
        align-items: flex-start;
    }

    .admin-main-inner {
        padding: 1.25rem;
    }
}

@media (max-width: 767px) {
    .page-banner {
        padding: 2.5rem 0 1.5rem;
    }

    .section-block {
        padding: 1.25rem 0 3rem;
    }

    .category-card .content,
    .city-card .content,
    .listing-card .content,
    .glass-card,
    .sidebar-card,
    .editorial-panel {
        padding: 1.1rem;
    }

    .footer-link-cloud {
        gap: 0.55rem;
    }
}

.header-city-form {
    min-width: 160px;
}

.header-city-picker {
    width: auto;
    min-width: 160px;
    justify-content: space-between;
    padding: 0 0.95rem;
    box-shadow: var(--shadow-xs), var(--inset-light);
}

.header-city-picker select {
    min-width: 94px;
    max-width: 132px;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
}

.header-city-picker select::-ms-expand {
    display: none;
}

.header-shell {
    overflow: visible;
}

.card-media-wrap {
    background: linear-gradient(135deg, rgba(255,251,243,0.96), rgba(240,221,184,0.58));
}

.card-media-wrap img,
.category-card img,
.city-card img,
.listing-card img {
    background: linear-gradient(135deg, rgba(255,251,243,0.95), rgba(240,221,184,0.62));
}

.chatbot-suggestions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    padding: 0.9rem 0.9rem 0;
}

.chatbot-chip {
    border: 1px solid rgba(201,169,110,0.22);
    background: rgba(255,251,243,0.08);
    color: rgba(255,251,242,0.88);
    border-radius: 999px;
    padding: 0.48rem 0.82rem;
    font-size: 0.76rem;
    line-height: 1.2;
    transition: all 0.22s ease;
}

.chatbot-chip:hover {
    background: linear-gradient(135deg, rgba(201,169,110,0.9), rgba(138,98,48,0.95));
    border-color: transparent;
    color: #fff;
    transform: translateY(-2px);
}

.chatbot-typing {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    min-height: 42px;
}

.chatbot-typing .chatbot-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #7a6b53;
    display: inline-block;
}

/* AI Premium Layer */
.ai-grid-glow {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
    opacity: 0.32;
    background-image:
        linear-gradient(rgba(201,169,110,0.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(201,169,110,0.08) 1px, transparent 1px);
    background-size: 72px 72px;
    mask-image: radial-gradient(circle at 50% 40%, black, transparent 78%);
}
.ai-orbit {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(201,169,110,0.18);
    box-shadow: 0 0 0 1px rgba(255,255,255,0.08) inset;
    pointer-events: none;
    z-index: 1;
}
.ai-orbit::before,
.ai-orbit::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(250,230,190,0.95), rgba(201,169,110,0.2));
}
.ai-orbit-1 {
    width: 240px;
    height: 240px;
    right: 16%;
    top: 10%;
    animation: orbitSpin 18s linear infinite;
}
.ai-orbit-1::before {
    width: 10px;
    height: 10px;
    top: 18px;
    left: 50%;
    transform: translateX(-50%);
}
.ai-orbit-1::after {
    width: 7px;
    height: 7px;
    bottom: 22px;
    right: 48px;
}
.ai-orbit-2 {
    width: 340px;
    height: 340px;
    right: 6%;
    top: 0;
    opacity: 0.7;
    animation: orbitSpinReverse 26s linear infinite;
}
.ai-orbit-2::before {
    width: 12px;
    height: 12px;
    left: 28px;
    top: 50%;
    transform: translateY(-50%);
}
.ai-orbit-2::after {
    width: 8px;
    height: 8px;
    top: 58px;
    right: 70px;
}
.ai-promo-shell {
    isolation: isolate;
}
.ai-promo-shell::before {
    background: linear-gradient(90deg, transparent, rgba(242,217,168,0.9), transparent) !important;
}
.ai-promo-shell::after {
    width: 320px !important;
    height: 320px !important;
    background: radial-gradient(circle, rgba(201,169,110,0.18), transparent 68%) !important;
}
.ai-signal-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin: 1rem 0 1.15rem;
    position: relative;
    z-index: 2;
}
.ai-badge-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.5rem 0.82rem;
    border-radius: 999px;
    font-size: 0.73rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #f5dfb7;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(201,169,110,0.22);
    box-shadow: 0 10px 24px rgba(0,0,0,0.18);
}
.ai-badge-pill i {
    color: var(--gold-bright);
}
.ai-insight-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.7rem;
    margin-top: 1.15rem;
}
.ai-insight-chip {
    position: relative;
    padding: 0.85rem 0.9rem;
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.03));
    border: 1px solid rgba(201,169,110,0.14);
    color: rgba(255,245,226,0.88);
    font-size: 0.77rem;
    line-height: 1.45;
    box-shadow: 0 14px 28px rgba(0,0,0,0.16);
}
.ai-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 0.45rem;
    border-radius: 50%;
    background: radial-gradient(circle, #ffe8bf, var(--gold-bright));
    box-shadow: 0 0 12px rgba(201,169,110,0.75);
}
.chatbot-ai-label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.45rem;
    padding: 0.32rem 0.65rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #f4dfb8;
    background: rgba(201,169,110,0.12);
    border: 1px solid rgba(201,169,110,0.2);
}
.chatbot-toggle {
    position: relative;
    overflow: visible;
}
.chatbot-toggle-ring {
    position: absolute;
    inset: -8px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(201,169,110,0.24), transparent 62%);
    animation: aiPulseHalo 2.8s ease-in-out infinite;
    z-index: -1;
}
.chatbot-toggle-ai {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 24px;
    height: 24px;
    padding: 0 6px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #fff4dc, #d9b374);
    color: #17120c;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    box-shadow: 0 10px 20px rgba(0,0,0,0.2);
}
.chatbot-panel::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at top right, rgba(201,169,110,0.12), transparent 34%),
        linear-gradient(rgba(201,169,110,0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(201,169,110,0.04) 1px, transparent 1px);
    background-size: auto, 18px 18px, 18px 18px;
    opacity: 0.6;
}
@keyframes orbitSpin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
@keyframes orbitSpinReverse {
    from { transform: rotate(360deg); }
    to { transform: rotate(0deg); }
}
@keyframes aiPulseHalo {
    0%, 100% { transform: scale(0.92); opacity: 0.55; }
    50% { transform: scale(1.08); opacity: 1; }
}
@media (max-width: 1199px) {
    .ai-orbit-1, .ai-orbit-2 {
        display: none;
    }
    .ai-insight-strip {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 767px) {
    .ai-grid-glow {
        opacity: 0.18;
        background-size: 48px 48px;
    }
    .ai-signal-bar {
        gap: 0.5rem;
    }
    .ai-badge-pill {
        font-size: 0.66rem;
        letter-spacing: 0.06em;
    }
    .chatbot-toggle-ai {
        top: -2px;
        right: -2px;
    }
}

/* Chatbot close + stronger mobile responsiveness */
.chatbot-widget.is-open .chatbot-toggle {
    transform: scale(0.96);
}
.chatbot-panel {
    width: min(360px, calc(100vw - 32px));
    max-height: min(78vh, 720px);
}
.chatbot-header {
    position: sticky;
    top: 0;
    z-index: 3;
}
.chatbot-close {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    background: rgba(255,251,243,0.14);
    border: 1px solid rgba(201,169,110,0.18);
}
.chatbot-messages {
    flex: 1 1 auto;
    min-height: 0;
}
.chatbot-panel.is-open {
    display: flex;
}

@media (max-width: 991px) {
    .container {
        padding-left: 1.2rem;
        padding-right: 1.2rem;
    }
    .header-shell {
        flex-wrap: wrap;
        align-items: center;
        padding: 0.7rem 0.9rem;
    }
    .luxury-header .navbar-toggler {
        margin-left: auto;
    }
    .luxury-header .navbar-collapse {
        width: 100%;
    }
    .luxury-header-actions {
        grid-template-columns: 1fr;
    }
    .header-socials,
    .header-city-form,
    .luxury-header .btn-brand-outline,
    .header-icon-circle {
        width: 100%;
    }
    .header-city-picker {
        width: 100%;
        justify-content: space-between;
    }
    .footer-main-grid > [class*="col-"] {
        width: 100%;
    }
    .footer-contact-list li {
        align-items: flex-start;
    }
    .quick-actions,
    .quick-actions-stacked,
    .card-bottom-row {
        flex-wrap: wrap;
    }
}

@media (max-width: 767px) {
    .site-shell,
    .main-header,
    .premium-hero,
    .section-block,
    .site-footer {
        overflow-x: clip;
    }
    .brand-mark strong {
        font-size: 1.1rem;
        line-height: 1.1;
    }
    .hero-title {
        line-height: 0.96;
        letter-spacing: -0.04em;
    }
    .hero-topline {
        gap: 0.45rem;
    }
    .hero-topline span {
        font-size: 0.72rem;
    }
    .section-title,
    .page-title {
        line-height: 1.02;
    }
    .listing-card,
    .category-card,
    .city-card,
    .glass-card,
    .category-rail-card,
    .page-panel,
    .contact-card,
    .detail-sidebar,
    .detail-main {
        border-radius: 20px;
    }
    .footer-bottom {
        padding-bottom: 5.5rem;
    }
    .footer-discovery {
        overflow: hidden;
    }
    .footer-link-cloud {
        gap: 0.55rem;
    }
    .footer-link-cloud a {
        max-width: 100%;
    }
    .chatbot-widget {
        right: 12px;
        bottom: 14px;
    }
    .chatbot-panel {
        position: fixed;
        left: 12px;
        right: 12px;
        bottom: 84px;
        width: auto;
        max-height: calc(100vh - 110px);
        border-radius: 24px;
    }
    .chatbot-header {
        padding: 0.9rem 1rem;
    }
    .chatbot-messages {
        max-height: none;
        padding: 0.85rem;
    }
    .chatbot-suggestions {
        padding: 0.6rem 0.85rem 0;
    }
    .chatbot-form {
        padding: 0.85rem;
    }
    .chatbot-form .row {
        --bs-gutter-x: 0.5rem;
    }
    .chatbot-form .col-6 {
        width: 100%;
    }
    .chatbot-bubble {
        max-width: 92%;
        font-size: 0.82rem;
    }
    .whatsapp-floating-btn {
        right: 12px;
        bottom: 84px;
        width: 50px;
        height: 50px;
    }
}

@media (max-width: 480px) {
    .container {
        padding-left: 1rem;
        padding-right: 1rem;
    }
    .header-shell {
        border-radius: 20px;
    }
    .navbar-brand {
        gap: 0.55rem;
        min-width: 0;
    }
    .brand-logo {
        width: 38px;
        height: 38px;
    }
    .brand-mark {
        min-width: 0;
    }
    .brand-mark strong {
        font-size: 1rem;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 180px;
        display: block;
    }
    .luxury-header .btn-brand-outline {
        justify-content: center;
    }
    .section-heading-row {
        gap: 0.75rem;
    }
    .page-copy,
    .lead {
        font-size: 0.98rem;
    }
    .chatbot-panel {
        left: 10px;
        right: 10px;
        bottom: 78px;
        max-height: calc(100vh - 96px);
    }
    .chatbot-close {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
    }
}

/* Chatbot visual cleanup pass */
body.chatbot-open {
    overflow-x: hidden;
}
body.chatbot-open .whatsapp-floating-btn {
    opacity: 0;
    pointer-events: none;
    transform: translateY(14px) scale(0.92);
}
.chatbot-widget.is-open .chatbot-toggle {
    opacity: 0;
    pointer-events: none;
    transform: scale(0.88);
}
.chatbot-panel {
    overscroll-behavior: contain;
}
.chatbot-suggestions {
    max-height: 120px;
    overflow-y: auto;
}
.chatbot-chip {
    flex: 0 0 auto;
}
.chatbot-form .btn.btn-brand {
    min-width: 56px;
    justify-content: center;
}

@media (max-width: 767px) {
    .chatbot-panel {
        left: 8px;
        right: 8px;
        bottom: 10px;
        max-height: min(82svh, 680px);
        border-radius: 22px;
    }
    .chatbot-header {
        padding: 0.8rem 0.85rem;
    }
    .chatbot-header strong {
        font-size: 0.88rem;
    }
    .chatbot-header small {
        font-size: 0.72rem;
    }
    .chatbot-ai-label {
        margin-bottom: 0.35rem;
        font-size: 0.62rem;
    }
    .chatbot-messages {
        padding: 0.75rem 0.8rem;
        gap: 0.5rem;
    }
    .chatbot-bubble {
        padding: 0.58rem 0.75rem;
        border-radius: 16px;
        font-size: 0.8rem;
        line-height: 1.45;
    }
    .chatbot-suggestions {
        padding: 0.45rem 0.8rem 0;
        gap: 0.45rem;
        max-height: 108px;
    }
    .chatbot-chip {
        font-size: 0.74rem;
        padding: 0.55rem 0.8rem;
    }
    .chatbot-form {
        padding: 0.75rem 0.8rem 0.8rem;
    }
    .chatbot-form .form-control {
        min-height: 44px;
        font-size: 0.82rem;
        padding: 0.55rem 0.75rem;
    }
    .chatbot-form .mb-2,
    .chatbot-form .row {
        margin-bottom: 0.5rem !important;
    }
    .chatbot-form .d-flex.gap-2 {
        gap: 0.45rem !important;
        align-items: stretch;
    }
    .chatbot-form .btn.btn-brand {
        width: 54px;
        padding-left: 0;
        padding-right: 0;
        border-radius: 16px;
    }
    .chatbot-close {
        background: rgba(255,251,243,0.18);
    }
    .whatsapp-floating-btn {
        display: none;
    }
}

@media (max-width: 480px) {
    .chatbot-panel {
        left: 6px;
        right: 6px;
        bottom: 8px;
        max-height: 84svh;
    }
    .chatbot-suggestions {
        max-height: 96px;
    }
    .chatbot-toggle,
    .chatbot-toggle-ring {
        width: 54px;
        height: 54px;
    }
}

/* Chatbot polish pass */
.chatbot-panel {
    width: min(348px, calc(100vw - 32px));
    border-radius: 28px;
}
.chatbot-header {
    padding: 0.95rem 1rem;
}
.chatbot-header strong {
    font-size: 0.9rem;
    line-height: 1.2;
}
.chatbot-header small {
    display: block;
    margin-top: 0.25rem;
    line-height: 1.45;
}
.chatbot-messages {
    max-height: 132px;
    padding: 0.85rem 1rem 0.55rem;
}
.chatbot-bubble {
    border-radius: 18px;
}
.chatbot-suggestions {
    padding: 0.5rem 1rem 0;
    max-height: none;
    overflow: visible;
}
.chatbot-chip {
    min-height: 38px;
    padding: 0.55rem 0.9rem;
}
.chatbot-form {
    padding: 0.8rem 1rem 1rem;
}
.chatbot-form .form-control {
    min-height: 46px;
}
.chatbot-form .row.g-2 {
    --bs-gutter-x: 0.65rem;
}
.chatbot-form .mb-2,
.chatbot-form .row {
    margin-bottom: 0.65rem !important;
}
.chatbot-form .d-flex.gap-2 {
    gap: 0.55rem !important;
    align-items: stretch;
}
.chatbot-form .btn.btn-brand {
    min-width: 58px;
    width: 58px;
    padding-left: 0;
    padding-right: 0;
    border-radius: 18px;
}
.chatbot-close {
    color: #fff7ea;
    background: rgba(255,251,243,0.18);
}
.chatbot-close:hover {
    background: rgba(255,251,243,0.28);
}

@media (max-width: 991px) {
    .chatbot-messages {
        max-height: 148px;
    }
}

@media (max-width: 767px) {
    .chatbot-panel {
        border-radius: 24px;
    }
    .chatbot-messages {
        max-height: 118px;
    }
    .chatbot-suggestions {
        overflow-x: hidden;
        overflow-y: auto;
    }
}

/* Chatbot message visibility fix */
.chatbot-messages {
    min-height: 112px;
    max-height: 168px;
    overflow-y: auto;
    scrollbar-gutter: stable;
    scroll-behavior: smooth;
}
.chatbot-bubble.bot {
    color: #1b140d;
    background: rgba(255,251,243,0.96);
    box-shadow: 0 8px 18px rgba(0,0,0,0.08);
}
.chatbot-bubble.user {
    color: #fffdf8;
}
@media (max-width: 767px) {
    .chatbot-messages {
        min-height: 120px;
        max-height: 156px;
    }
}

/* Guided chatbot flow */
.chatbot-form input[type="hidden"] {
    display: none !important;
}
.chatbot-messages {
    min-height: 144px;
}
