/* ═══════════════════════════════════════════════════════════════
   SEFINO BOOKING — Apple / Airbnb Style
   Light · Minimal · Premium
   ═══════════════════════════════════════════════════════════════ */

/* ─────────────── DESIGN TOKENS ─────────────── */
:root {
    /* Surfaces */
    --bg: #FFFFFF;
    --bg-subtle: #F7F7F7;
    --bg-hover: #F0F0F0;
    --surface: #FFFFFF;
    --surface-2: #FAFAFA;

    /* Borders */
    --border: #EBEBEB;
    --border-2: #DDDDDD;
    --border-3: #C4C4C4;

    /* Text */
    --text: #222222;
    --text-2: #484848;
    --text-3: #717171;
    --text-4: #B0B0B0;

    /* Accent */
    --accent: #FF385C;
    --accent-2: #E31C5F;
    --accent-soft: #FFF1F4;

    /* Brand */
    --black: #222222;
    --black-2: #000000;

    /* Semantic */
    --success: #008A05;
    --success-soft: #F0F9F0;
    --warning: #D97706;
    --warning-soft: #FFF8E6;
    --danger: #D93025;
    --danger-soft: #FEECEB;

    /* Radius */
    --r-xs: 8px;
    --r-sm: 12px;
    --r-md: 16px;
    --r-lg: 24px;
    --r-xl: 32px;
    --r-pill: 9999px;

    /* Shadows */
    --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.06);
    --shadow-md: 0 6px 16px rgba(0, 0, 0, 0.08);
    --shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.10);

    /* Motion */
    --ease: cubic-bezier(0.2, 0, 0, 1);
    --dur: 0.2s;

    /* Layout */
    --topbar-h: 80px;
    --bottomnav-h: 72px;
    --container: 1120px;
}

/* ─────────────── RESET ─────────────── */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
html {
    -webkit-text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
img, svg, video { max-width: 100%; display: block; }
button, input, select, textarea { font-family: inherit; font-size: inherit; }
button { cursor: pointer; border: none; background: none; color: inherit; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }

/* ─────────────── BODY ─────────────── */
body {
    font-family: 'Vazirmatn', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
    font-size: 15px;
    line-height: 1.6;
    color: var(--text);
    background: var(--bg);
    min-height: 100vh;
    overflow-x: hidden;
    letter-spacing: 0;
}

/* ─────────────── LAYOUT ─────────────── */
.container {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 20px;
}

@media (min-width: 768px) {
    .container { padding: 0 32px; }
}

.page-wrapper {
    padding-top: calc(var(--topbar-h) + 24px);
    padding-bottom: calc(var(--bottomnav-h) + 32px);
    min-height: 100vh;
}

@media (min-width: 1024px) {
    .page-wrapper {
        padding-top: calc(var(--topbar-h) + 40px);
        padding-bottom: 80px;
    }
}

/* ═══════════════════════════════════════════════════
   TOPBAR (Desktop)
   ═══════════════════════════════════════════════════ */
.topbar {
    position: fixed;
    top: 0; left: 0; right: 0;
    height: var(--topbar-h);
    background: var(--bg);
    border-bottom: 1px solid var(--border);
    z-index: 100;
}

.topbar-inner {
    max-width: var(--container);
    margin: 0 auto;
    height: 100%;
    padding: 0 32px;
    display: flex;
    align-items: center;
    gap: 24px;
}

/* Brand */
.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}
.brand-logo {
    width: 40px; height: 40px;
    border-radius: 10px;
    overflow: hidden;
    background: var(--accent);
    display: flex; align-items: center; justify-content: center;
    color: #fff;
    font-size: 18px;
    flex-shrink: 0;
}
.brand-logo img { width: 100%; height: 100%; object-fit: cover; }
.brand-text { min-width: 0; }
.brand-name {
    font-size: 15px;
    font-weight: 700;
    color: var(--text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 200px;
    line-height: 1.2;
}
.brand-sub {
    font-size: 11px;
    color: var(--text-3);
    font-weight: 500;
    line-height: 1.2;
}

/* Nav */
.topbar-nav {
    display: flex;
    align-items: center;
    gap: 4px;
    margin: 0 auto;
}
.topbar-nav-link {
    padding: 10px 16px;
    border-radius: var(--r-pill);
    font-size: 14px;
    font-weight: 600;
    color: var(--text-3);
    transition: all var(--dur) var(--ease);
    white-space: nowrap;
}
.topbar-nav-link:hover {
    background: var(--bg-hover);
    color: var(--text);
}
.topbar-nav-link.active {
    color: var(--text);
    background: var(--bg-subtle);
}

/* Actions */
.topbar-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}
.topbar-user {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 6px 6px 14px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--r-pill);
    transition: all var(--dur) var(--ease);
}
.topbar-user:hover {
    box-shadow: var(--shadow-sm);
    border-color: var(--border-2);
}
.topbar-user-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-2);
    max-width: 100px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.topbar-avatar {
    width: 32px; height: 32px;
    border-radius: 50%;
    background: var(--bg-subtle);
    display: flex; align-items: center; justify-content: center;
    color: var(--text);
    font-weight: 700;
    font-size: 13px;
    overflow: hidden;
    flex-shrink: 0;
}
.topbar-avatar img { width: 100%; height: 100%; object-fit: cover; }

/* ═══════════════════════════════════════════════════
   MOBILE TOPBAR
   ═══════════════════════════════════════════════════ */
.mob-topbar {
    position: fixed;
    top: 0; left: 0; right: 0;
    height: 72px;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: saturate(180%) blur(12px);
    -webkit-backdrop-filter: saturate(180%) blur(12px);
    border-bottom: 1px solid var(--border);
    z-index: 100;
}
.mob-topbar-inner {
    max-width: 640px;
    margin: 0 auto;
    height: 100%;
    padding: 0 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}
.mob-topbar-btn {
    width: 42px; height: 42px;
    border-radius: 50%;
    background: var(--bg);
    border: 1px solid var(--border);
    display: flex; align-items: center; justify-content: center;
    color: var(--text);
    flex-shrink: 0;
    transition: all var(--dur) var(--ease);
}
.mob-topbar-btn:hover {
    background: var(--bg-hover);
}
.mob-topbar-logo {
    width: 42px; height: 42px;
    border-radius: 10px;
    background: var(--accent);
    display: flex; align-items: center; justify-content: center;
    color: #fff;
    font-size: 18px;
    overflow: hidden;
    flex-shrink: 0;
}
.mob-topbar-logo img { width: 100%; height: 100%; object-fit: cover; }
.mob-topbar-title-wrap { flex: 1; min-width: 0; overflow: hidden; }
.mob-topbar-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.mob-topbar-subtitle {
    font-size: 12px;
    color: var(--text-3);
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: 2px;
}

/* ═══════════════════════════════════════════════════
   BOTTOM NAV (Mobile)
   ═══════════════════════════════════════════════════ */
.bottom-nav {
    position: fixed;
    bottom: 0; left: 0; right: 0;
    height: var(--bottomnav-h);
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: saturate(180%) blur(12px);
    -webkit-backdrop-filter: saturate(180%) blur(12px);
    border-top: 1px solid var(--border);
    z-index: 90;
    display: flex;
    align-items: center;
    justify-content: space-around;
    padding: 0 8px;
    padding-bottom: env(safe-area-inset-bottom, 0);
}
.bottom-nav-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 8px 4px;
    color: var(--text-3);
    font-size: 10.5px;
    font-weight: 600;
    transition: color var(--dur) var(--ease);
    max-width: 90px;
    position: relative;
}
.bottom-nav-item svg {
    width: 22px; height: 22px;
    transition: transform var(--dur) var(--ease);
}
.bottom-nav-item.active {
    color: var(--accent);
}
.bottom-nav-item.active svg {
    transform: scale(1.08);
}

/* ═══════════════════════════════════════════════════
   BUTTONS
   ═══════════════════════════════════════════════════ */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 20px;
    border-radius: var(--r-sm);
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    transition: all var(--dur) var(--ease);
    white-space: nowrap;
    cursor: pointer;
    border: 1px solid transparent;
}
.btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
}

.btn-primary {
    background: var(--black);
    color: #fff;
    border-color: var(--black);
}
.btn-primary:hover:not(:disabled) {
    background: var(--black-2);
    border-color: var(--black-2);
}

.btn-accent {
    background: var(--accent);
    color: #fff;
    border-color: var(--accent);
}
.btn-accent:hover:not(:disabled) {
    background: var(--accent-2);
    border-color: var(--accent-2);
}

.btn-secondary {
    background: var(--bg);
    color: var(--text);
    border-color: var(--border-2);
}
.btn-secondary:hover:not(:disabled) {
    background: var(--bg-subtle);
    border-color: var(--text-3);
}

.btn-ghost {
    background: transparent;
    color: var(--text-2);
    border-color: transparent;
}
.btn-ghost:hover:not(:disabled) {
    background: var(--bg-hover);
    color: var(--text);
}

.btn-block { width: 100%; }
.btn-lg { padding: 16px 28px; font-size: 16px; border-radius: var(--r-md); }
.btn-sm { padding: 9px 16px; font-size: 13px; border-radius: var(--r-xs); }

.btn-icon {
    width: 42px;
    height: 42px;
    padding: 0;
    border-radius: 50%;
    flex-shrink: 0;
}
.btn-icon svg { width: 18px; height: 18px; }

/* ═══════════════════════════════════════════════════
   CARDS
   ═══════════════════════════════════════════════════ */
.card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    overflow: hidden;
    margin-bottom: 24px;
    transition: all var(--dur) var(--ease);
}
.card-hover:hover {
    box-shadow: var(--shadow-md);
    border-color: var(--border-2);
}

.card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 24px 28px 20px;
    border-bottom: 1px solid var(--border);
}
.card-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 18px;
    font-weight: 700;
    color: var(--text);
    letter-spacing: -0.01em;
}
.card-icon {
    width: 32px; height: 32px;
    border-radius: 8px;
    background: var(--bg-subtle);
    display: flex; align-items: center; justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
}
.card-body {
    padding: 24px 28px;
}

@media (max-width: 640px) {
    .card { border-radius: var(--r-md); margin-bottom: 16px; }
    .card-head { padding: 18px 20px 14px; }
    .card-title { font-size: 16px; }
    .card-body { padding: 18px 20px; }
}

/* ═══════════════════════════════════════════════════
   HERO — Business Profile
   ═══════════════════════════════════════════════════ */
.hero {
    margin-bottom: 32px;
}
.hero-cover {
    position: relative;
    aspect-ratio: 16/9;
    max-height: 400px;
    border-radius: var(--r-lg);
    overflow: hidden;
    background: var(--bg-subtle);
    border: 1px solid var(--border);
}
.hero-cover img {
    width: 100%; height: 100%;
    object-fit: cover;
}
.hero-cover-placeholder {
    width: 100%; height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 72px;
    opacity: 0.3;
    background: linear-gradient(135deg, #F7F7F7, #EBEBEB);
}



@media (max-width: 768px) {
    .hero-cover { aspect-ratio: 4/3; }
    
}


.hero-avatar img { width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 768px) {
    
}


@media (max-width: 768px) {
    
}

.hero-title {
    font-size: clamp(28px, 4vw, 44px);
    font-weight: 800;
    color: var(--text);
    letter-spacing: -0.02em;
    line-height: 1.15;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.hero-title-verified {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px; height: 22px;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    font-size: 12px;
    flex-shrink: 0;
}

.hero-category {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 500;
    color: var(--text-3);
    margin-bottom: 16px;
}

.hero-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--border);
    font-size: 14px;
    color: var(--text-2);
}
.hero-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.hero-rating {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 700;
    color: var(--text);
}
.hero-rating-star { color: var(--text); font-size: 14px; }

/* ═══════════════════════════════════════════════════
   QUICK ACTIONS
   ═══════════════════════════════════════════════════ */


.quick-action:hover {
    background: var(--bg-subtle);
    border-color: var(--border-2);
    transform: translateY(-2px);
    box-shadow: var(--shadow-sm);
}

.quick-action:hover 

@media (max-width: 640px) {
    
    
    
}

/* ═══════════════════════════════════════════════════
   SECTION HEADER
   ═══════════════════════════════════════════════════ */
.section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 20px;
    margin-top: 40px;
}
.section-title {
    font-size: clamp(22px, 2.5vw, 30px);
    font-weight: 700;
    color: var(--text);
    letter-spacing: -0.02em;
    line-height: 1.2;
}
.section-link {
    font-size: 14px;
    font-weight: 600;
    color: var(--text);
    padding: 8px 14px;
    border-radius: var(--r-sm);
    border: 1px solid var(--border-2);
    transition: all var(--dur) var(--ease);
    white-space: nowrap;
}
.section-link:hover {
    background: var(--bg-subtle);
}

/* ═══════════════════════════════════════════════════
   SERVICE CARDS — Big Airbnb style
   ═══════════════════════════════════════════════════ */
.services-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-bottom: 32px;
}
@media (min-width: 768px) {
    .services-grid { grid-template-columns: repeat(3, 1fr); gap: 20px; }
}
@media (min-width: 1024px) {
    .services-grid { grid-template-columns: repeat(4, 1fr); gap: 24px; }
}

.service-card {
    display: flex;
    flex-direction: column;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    overflow: hidden;
    cursor: pointer;
    transition: all var(--dur) var(--ease);
    text-align: right;
}
.service-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
    border-color: var(--border-2);
}
.service-card.selected {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px var(--accent);
}

.service-image {
    aspect-ratio: 4/3;
    background: var(--bg-subtle);
    overflow: hidden;
    position: relative;
}
.service-image img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 0.4s var(--ease);
}
.service-card:hover .service-image img {
    transform: scale(1.04);
}
.service-image-placeholder {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    font-size: 48px;
    opacity: 0.3;
}

.service-info {
    padding: 14px 16px 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
}
.service-name {
    font-size: 15px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.3;
    letter-spacing: -0.01em;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.service-meta {
    font-size: 13px;
    color: var(--text-3);
    font-weight: 500;
}
.service-price {
    font-size: 15px;
    font-weight: 700;
    color: var(--text);
    margin-top: 4px;
}
.service-price span {
    font-size: 12px;
    color: var(--text-3);
    font-weight: 500;
    margin-right: 2px;
}

/* ═══════════════════════════════════════════════════
   SERVICES LIST — Wizard style
   ═══════════════════════════════════════════════════ */
.service-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.service-row {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px;
    background: var(--bg);
    border: 1.5px solid var(--border);
    border-radius: var(--r-md);
    cursor: pointer;
    transition: all var(--dur) var(--ease);
}
.service-row:hover {
    border-color: var(--border-2);
    background: var(--bg-subtle);
}
.service-row.selected {
    border-color: var(--accent);
    background: var(--accent-soft);
}

.service-row-thumb {
    width: 64px; height: 64px;
    border-radius: var(--r-sm);
    overflow: hidden;
    background: var(--bg-subtle);
    flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 24px;
}
.service-row-thumb img {
    width: 100%; height: 100%;
    object-fit: cover;
}
.service-row-info { flex: 1; min-width: 0; }
.service-row-name {
    font-size: 15px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 4px;
    line-height: 1.3;
}
.service-row-meta {
    font-size: 13px;
    color: var(--text-3);
    font-weight: 500;
}
.service-row-price {
    font-size: 15px;
    font-weight: 700;
    color: var(--text);
    text-align: left;
    flex-shrink: 0;
    line-height: 1.2;
}
.service-row-price span {
    display: block;
    font-size: 11px;
    color: var(--text-3);
    font-weight: 500;
    margin-top: 2px;
}
.service-row-radio {
    width: 22px; height: 22px;
    border-radius: 50%;
    border: 1.5px solid var(--border-3);
    background: var(--bg);
    flex-shrink: 0;
    transition: all var(--dur) var(--ease);
    display: flex; align-items: center; justify-content: center;
    position: relative;
}
.service-row.selected .service-row-radio {
    background: var(--accent);
    border-color: var(--accent);
}
.service-row.selected .service-row-radio::after {
    content: '✓';
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
}

/* ═══════════════════════════════════════════════════
   CALENDAR
   ═══════════════════════════════════════════════════ */
.calendar {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    padding: 20px;
}
.calendar-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}
.calendar-title {
    font-size: 17px;
    font-weight: 700;
    color: var(--text);
}
.calendar-nav {
    width: 36px; height: 36px;
    border-radius: 50%;
    background: var(--bg);
    border: 1px solid var(--border-2);
    display: flex; align-items: center; justify-content: center;
    color: var(--text);
    transition: all var(--dur) var(--ease);
}
.calendar-nav:hover {
    background: var(--bg-subtle);
    border-color: var(--text-3);
}
.calendar-weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
    margin-bottom: 8px;
}
.calendar-weekday {
    text-align: center;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-3);
    padding: 8px 0;
}
.calendar-days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
    justify-items: center;
}
.calendar-day {
    aspect-ratio: 1;
    width: 100%;
    max-width: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 14px;
    font-weight: 600;
    color: var(--text);
    background: transparent;
    border: 1px solid transparent;
    cursor: pointer;
    transition: all var(--dur) var(--ease);
}
.calendar-day:hover:not(:disabled) {
    background: var(--bg-hover);
}
.calendar-day.selected {
    background: var(--black);
    color: #fff;
}
.calendar-day.today {
    font-weight: 800;
    text-decoration: underline;
    text-decoration-color: var(--accent);
    text-underline-offset: 4px;
}
.calendar-day:disabled {
    color: var(--text-4);
    cursor: not-allowed;
}

/* ═══════════════════════════════════════════════════
   TIME SLOTS
   ═══════════════════════════════════════════════════ */
.slots-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}
@media (min-width: 640px) {
    .slots-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1024px) {
    .slots-grid { grid-template-columns: repeat(4, 1fr); }
}

.slot {
    padding: 14px 12px;
    background: var(--bg);
    border: 1.5px solid var(--border);
    border-radius: var(--r-sm);
    font-size: 14px;
    font-weight: 700;
    color: var(--text);
    text-align: center;
    cursor: pointer;
    transition: all var(--dur) var(--ease);
    direction: ltr;
}
.slot:hover:not(:disabled) {
    border-color: var(--text-3);
    background: var(--bg-subtle);
}
.slot.selected {
    background: var(--black);
    color: #fff;
    border-color: var(--black);
}
.slot:disabled {
    opacity: 0.35;
    cursor: not-allowed;
    text-decoration: line-through;
}
.slot-section + .slot-section { margin-top: 20px; }
.slot-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-2);
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
}

/* ═══════════════════════════════════════════════════
   PROGRESS / STEPS
   ═══════════════════════════════════════════════════ */
.progress-bar {
    padding: 24px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    margin-bottom: 24px;
}
.progress-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-3);
}
.progress-percent {
    color: var(--text);
    font-weight: 700;
}
.progress-track {
    height: 4px;
    background: var(--bg-hover);
    border-radius: 4px;
    overflow: hidden;
}
.progress-fill {
    height: 100%;
    background: var(--accent);
    border-radius: 4px;
    transition: width 0.4s var(--ease);
    width: 0%;
}
.progress-dots {
    display: flex;
    justify-content: space-between;
    margin-top: 16px;
    gap: 8px;
}
.progress-dot {
    flex: 1;
    text-align: center;
    cursor: pointer;
    background: none;
    border: none;
    padding: 0;
}
.progress-dot-num {
    width: 32px; height: 32px;
    border-radius: 50%;
    background: var(--bg-subtle);
    border: 1.5px solid var(--border);
    display: flex; align-items: center; justify-content: center;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-3);
    margin: 0 auto 6px;
    transition: all var(--dur) var(--ease);
}
.progress-dot.active .progress-dot-num {
    background: var(--black);
    color: #fff;
    border-color: var(--black);
}
.progress-dot.done .progress-dot-num {
    background: var(--success);
    color: #fff;
    border-color: var(--success);
}
.progress-dot-label {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-3);
}
.progress-dot.active .progress-dot-label { color: var(--text); }

/* ═══════════════════════════════════════════════════
   WIZARD PANEL
   ═══════════════════════════════════════════════════ */
.wizard-panel {
    display: none;
}
.wizard-panel.active {
    display: block;
    animation: fadeIn 0.3s var(--ease);
}
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ═══════════════════════════════════════════════════
   STICKY CTA
   ═══════════════════════════════════════════════════ */
.sticky-cta {
    position: fixed;
    bottom: calc(var(--bottomnav-h) + 12px);
    left: 16px;
    right: 16px;
    z-index: 80;
    background: var(--bg);
    border: 1px solid var(--border-2);
    border-radius: var(--r-md);
    box-shadow: var(--shadow-lg);
    padding: 12px 16px;
    display: flex;
    align-items: center;
    gap: 16px;
}
.sticky-cta-info {
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
}
.sticky-cta-label {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.sticky-cta-value {
    font-size: 18px;
    font-weight: 800;
    color: var(--text);
    line-height: 1.2;
}
.sticky-cta-btn { flex: 1; }

@media (min-width: 1024px) {
    .sticky-cta {
        bottom: 24px;
        max-width: 800px;
        left: 50%;
        right: auto;
        transform: translateX(-50%);
    }
}

/* ═══════════════════════════════════════════════════
   FIELDS
   ═══════════════════════════════════════════════════ */
.field { margin-bottom: 20px; }
.field-label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 8px;
}
.field-label .req { color: var(--accent); }
.field-input,
.field-select,
.field-textarea {
    width: 100%;
    padding: 14px 16px;
    background: var(--bg);
    border: 1.5px solid var(--border-2);
    border-radius: var(--r-sm);
    color: var(--text);
    font-family: inherit;
    font-size: 15px;
    font-weight: 500;
    outline: none;
    transition: all var(--dur) var(--ease);
}
.field-input::placeholder,
.field-textarea::placeholder { color: var(--text-4); }
.field-input:hover,
.field-select:hover,
.field-textarea:hover {
    border-color: var(--text-3);
}
.field-input:focus,
.field-select:focus,
.field-textarea:focus {
    border-color: var(--text);
    box-shadow: 0 0 0 2px rgba(34, 34, 34, 0.08);
}
.field-textarea {
    min-height: 100px;
    resize: vertical;
    line-height: 1.6;
}

.field-select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23222222' stroke-width='2.5' stroke-linecap='round'%3e%3cpolyline points='6 9 12 15 18 9'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: left 16px center;
    padding-left: 44px;
    cursor: pointer;
}

/* ═══════════════════════════════════════════════════
   MODAL
   ═══════════════════════════════════════════════════ */
.modal-bg {
    position: fixed;
    inset: 0;
    z-index: 200;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(4px);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.modal-bg.open { display: flex; }
.modal-card {
    background: var(--bg);
    border-radius: var(--r-lg);
    padding: 32px;
    width: 100%;
    max-width: 460px;
    box-shadow: var(--shadow-lg);
    animation: modalIn 0.3s var(--ease);
}
@keyframes modalIn {
    from { opacity: 0; transform: translateY(20px) scale(0.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
.modal-title {
    font-size: 22px;
    font-weight: 800;
    color: var(--text);
    margin-bottom: 8px;
}
.modal-sub {
    font-size: 14px;
    color: var(--text-3);
    margin-bottom: 24px;
}

/* ═══════════════════════════════════════════════════
   TOAST
   ═══════════════════════════════════════════════════ */
.toast-wrap {
    position: fixed;
    top: 96px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 300;
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: center;
    pointer-events: none;
}
.toast {
    padding: 14px 20px;
    background: var(--black);
    color: #fff;
    border-radius: var(--r-sm);
    font-size: 14px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
    box-shadow: var(--shadow-lg);
    max-width: 420px;
    pointer-events: auto;
    animation: toastIn 0.3s var(--ease);
}
@keyframes toastIn {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ═══════════════════════════════════════════════════
   LOADER
   ═══════════════════════════════════════════════════ */
.loader {
    position: fixed;
    inset: 0;
    z-index: 500;
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(8px);
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 16px;
}
.loader.open { display: flex; }
.spinner {
    width: 40px; height: 40px;
    border: 3px solid var(--border);
    border-top-color: var(--text);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.loader-text {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-2);
}

/* ═══════════════════════════════════════════════════
   EMPTY STATE
   ═══════════════════════════════════════════════════ */
.empty {
    text-align: center;
    padding: 64px 24px;
}
.empty-icon {
    font-size: 64px;
    opacity: 0.2;
    margin-bottom: 16px;
    line-height: 1;
}
.empty-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 8px;
}
.empty-text {
    font-size: 14px;
    color: var(--text-3);
    line-height: 1.6;
    max-width: 360px;
    margin: 0 auto;
}

/* ═══════════════════════════════════════════════════
   BADGES
   ═══════════════════════════════════════════════════ */
.badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: var(--r-pill);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
}
.badge-default {
    background: var(--bg-subtle);
    color: var(--text-2);
    border: 1px solid var(--border);
}
.badge-success {
    background: var(--success-soft);
    color: var(--success);
}
.badge-warning {
    background: var(--warning-soft);
    color: var(--warning);
}
.badge-danger {
    background: var(--danger-soft);
    color: var(--danger);
}
.badge-accent {
    background: var(--accent-soft);
    color: var(--accent);
}

/* ═══════════════════════════════════════════════════
   ABOUT / HOURS / CONTACT
   ═══════════════════════════════════════════════════ */
.about-text {
    font-size: 15px;
    line-height: 1.8;
    color: var(--text-2);
}
.hours-list { display: flex; flex-direction: column; }
.hours-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    font-size: 14px;
    border-bottom: 1px solid var(--border);
}
.hours-row:last-child { border-bottom: none; }
.hours-key { color: var(--text-3); font-weight: 500; }
.hours-val {
    font-weight: 700;
    color: var(--text);
    direction: ltr;
}
.hours-val.closed { color: var(--text-4); font-weight: 500; }

.contact-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid var(--border);
}
.contact-row:last-child { border-bottom: none; }
.contact-icon {
    width: 40px; height: 40px;
    border-radius: 10px;
    background: var(--bg-subtle);
    display: flex; align-items: center; justify-content: center;
    color: var(--text);
    flex-shrink: 0;
}
.contact-info { flex: 1; min-width: 0; }
.contact-label {
    font-size: 12px;
    color: var(--text-3);
    font-weight: 500;
    margin-bottom: 2px;
}
.contact-value {
    font-size: 14px;
    font-weight: 600;
    color: var(--text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ═══════════════════════════════════════════════════
   SEARCH
   ═══════════════════════════════════════════════════ */
.search {
    position: relative;
    margin-bottom: 24px;
}
.search input {
    width: 100%;
    height: 52px;
    padding: 0 48px 0 20px;
    background: var(--bg);
    border: 1px solid var(--border-2);
    border-radius: var(--r-pill);
    color: var(--text);
    font-family: inherit;
    font-size: 14px;
    font-weight: 500;
    outline: none;
    transition: all var(--dur) var(--ease);
}
.search input::placeholder { color: var(--text-4); }
.search input:focus {
    border-color: var(--text);
    box-shadow: var(--shadow-sm);
}
.search-icon {
    position: absolute;
    top: 50%;
    right: 18px;
    transform: translateY(-50%);
    color: var(--text-3);
    pointer-events: none;
}

/* ═══════════════════════════════════════════════════
   CATEGORY TILES
   ═══════════════════════════════════════════════════ */
.category-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 32px;
}
.category-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 16px 8px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    text-align: center;
    transition: all var(--dur) var(--ease);
}
.category-tile:hover {
    border-color: var(--text-3);
    transform: translateY(-2px);
    box-shadow: var(--shadow-sm);
}
.category-tile-icon {
    width: 52px; height: 52px;
    border-radius: 12px;
    overflow: hidden;
    background: var(--bg-subtle);
    display: flex; align-items: center; justify-content: center;
    font-size: 24px;
    flex-shrink: 0;
}
.category-tile-icon img { width: 100%; height: 100%; object-fit: cover; }
.category-tile-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-2);
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

@media (max-width: 640px) {
    .category-grid { gap: 8px; }
    .category-tile { padding: 12px 6px; font-size: 11px; }
    .category-tile-icon { width: 44px; height: 44px; }
}

/* ═══════════════════════════════════════════════════
   BOOKING CARDS (My-Bookings)
   ═══════════════════════════════════════════════════ */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 24px;
}
@media (max-width: 640px) {
    .stats-grid { grid-template-columns: repeat(2, 1fr); }
}
.stat-card {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.stat-label {
    font-size: 12px;
    color: var(--text-3);
    font-weight: 600;
}
.stat-value {
    font-size: 24px;
    font-weight: 800;
    color: var(--text);
    letter-spacing: -0.02em;
}

.booking-card {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    overflow: hidden;
    margin-bottom: 12px;
    transition: all var(--dur) var(--ease);
    display: flex;
    align-items: stretch;
    gap: 0;
}
.booking-card:hover {
    box-shadow: var(--shadow-sm);
    border-color: var(--border-2);
}

.booking-stripe {
    width: 4px;
    flex-shrink: 0;
    background: var(--text-4);
}
.booking-stripe.pending { background: var(--warning); }
.booking-stripe.confirmed { background: var(--success); }
.booking-stripe.completed { background: #0891B2; }
.booking-stripe.cancelled { background: var(--danger); }

.booking-content {
    flex: 1;
    padding: 16px 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.booking-head {
    display: flex;
    align-items: center;
    gap: 14px;
}
.booking-thumb {
    width: 52px; height: 52px;
    border-radius: var(--r-sm);
    overflow: hidden;
    background: var(--bg-subtle);
    flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 22px;
}
.booking-thumb img { width: 100%; height: 100%; object-fit: cover; }
.booking-info { flex: 1; min-width: 0; }
.booking-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 3px;
}
.booking-sub {
    font-size: 12px;
    color: var(--text-3);
    font-weight: 500;
}

.booking-meta {
    display: flex;
    gap: 20px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
    font-size: 13px;
    color: var(--text-2);
}
.booking-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.booking-price {
    font-weight: 700;
    color: var(--text);
    margin-right: auto;
}

/* ═══════════════════════════════════════════════════
   TABS (Filters)
   ═══════════════════════════════════════════════════ */
.tabs {
    display: flex;
    gap: 4px;
    overflow-x: auto;
    scrollbar-width: none;
    margin-bottom: 24px;
    padding-bottom: 8px;
}
.tabs::-webkit-scrollbar { display: none; }
.tab {
    padding: 8px 16px;
    border-radius: var(--r-pill);
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-2);
    background: var(--bg);
    border: 1px solid var(--border);
    white-space: nowrap;
    transition: all var(--dur) var(--ease);
    cursor: pointer;
    flex-shrink: 0;
}
.tab:hover {
    border-color: var(--text-3);
}
.tab.active {
    background: var(--black);
    color: #fff;
    border-color: var(--black);
}

/* ═══════════════════════════════════════════════════
   PROFILE
   ═══════════════════════════════════════════════════ */
.profile-hero {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 24px 0;
    margin-bottom: 24px;
    border-bottom: 1px solid var(--border);
}
.profile-avatar-lg {
    width: 80px; height: 80px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--bg-subtle);
    display: flex; align-items: center; justify-content: center;
    font-size: 32px;
    font-weight: 700;
    color: var(--text);
    flex-shrink: 0;
}
.profile-avatar-lg img { width: 100%; height: 100%; object-fit: cover; }
.profile-name {
    font-size: 22px;
    font-weight: 800;
    color: var(--text);
    margin-bottom: 4px;
    letter-spacing: -0.01em;
}
.profile-contact {
    font-size: 14px;
    color: var(--text-3);
    font-weight: 500;
}

.profile-menu {
    display: flex;
    flex-direction: column;
}
.profile-menu-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 0;
    border-bottom: 1px solid var(--border);
    color: var(--text);
    font-size: 15px;
    font-weight: 600;
    transition: all var(--dur) var(--ease);
}
.profile-menu-row:last-child { border-bottom: none; }
.profile-menu-row:hover {
    padding-right: 8px;
    color: var(--accent);
}
.profile-menu-icon {
    width: 40px; height: 40px;
    border-radius: 10px;
    background: var(--bg-subtle);
    display: flex; align-items: center; justify-content: center;
    color: var(--text-2);
    flex-shrink: 0;
}
.profile-menu-arrow {
    margin-right: auto;
    color: var(--text-4);
}

/* ═══════════════════════════════════════════════════
   AUTH
   ═══════════════════════════════════════════════════ */
.auth-wrap {
    max-width: 440px;
    margin: 40px auto;
    padding: 0 20px;
}
.auth-card {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    padding: 40px 32px;
    box-shadow: var(--shadow-sm);
}
.auth-logo {
    width: 64px; height: 64px;
    border-radius: 16px;
    background: var(--accent);
    display: flex; align-items: center; justify-content: center;
    color: #fff;
    font-size: 28px;
    margin: 0 auto 20px;
}
.auth-title {
    font-size: 26px;
    font-weight: 800;
    color: var(--text);
    text-align: center;
    margin-bottom: 8px;
    letter-spacing: -0.02em;
}
.auth-sub {
    font-size: 14px;
    color: var(--text-3);
    text-align: center;
    margin-bottom: 28px;
}

/* ═══════════════════════════════════════════════════
   UTILITIES
   ═══════════════════════════════════════════════════ */
.ltr { direction: ltr; }
.tnum { font-variant-numeric: tabular-nums; }
.hidden { display: none !important; }
.text-center { text-align: center; }
.text-muted { color: var(--text-3); }
.text-accent { color: var(--accent); }
.mt-4 { margin-top: 16px; }
.mt-6 { margin-top: 24px; }
.mt-8 { margin-top: 32px; }
.mb-4 { margin-bottom: 16px; }
.mb-6 { margin-bottom: 24px; }

/* ═══════════════════════════════════════════════════
   RESPONSIVE VISIBILITY
   ═══════════════════════════════════════════════════ */
@media (min-width: 1024px) {
    .mob-only { display: none !important; }
}
@media (max-width: 1023px) {
    .desk-only { display: none !important; }
    .topbar-nav { display: none; }
}
@media (min-width: 1024px) {
    .topbar-nav { display: flex; }
}

/* ═══════════════════════════════════════════════════
   REDUCED MOTION
   ═══════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}

/* ═══════════════════════════════════════════════════
   PATCH — Missing classes for public.blade.php
   ═══════════════════════════════════════════════════ */

/* Mobile topbar actions */
.mob-topbar-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
.mob-topbar-avatar {
    width: 42px; height: 42px;
    border-radius: 50%;
    background: var(--bg-subtle);
    border: 1px solid var(--border);
    display: flex; align-items: center; justify-content: center;
    color: var(--text);
    font-weight: 700;
    font-size: 14px;
    overflow: hidden;
    flex-shrink: 0;
    transition: all var(--dur) var(--ease);
}
.mob-topbar-avatar:hover { background: var(--bg-hover); }
.mob-topbar-avatar img { width: 100%; height: 100%; object-fit: cover; }

/* Desktop icon button in topbar */
.topbar-icon-btn {
    width: 42px; height: 42px;
    border-radius: 50%;
    background: var(--bg);
    border: 1px solid var(--border);
    display: flex; align-items: center; justify-content: center;
    color: var(--text);
    transition: all var(--dur) var(--ease);
    flex-shrink: 0;
}
.topbar-icon-btn:hover {
    background: var(--bg-hover);
    border-color: var(--border-2);
}

/* Page side (desktop sidebar) */
.page-side {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 32px;
    margin-top: 32px;
}

/* Toast variants */
.toast.error { background: var(--danger); }
.toast.warning { background: var(--warning); }
.toast.info { background: #0891B2; }

/* ═══════════════════════════════════════════════════
   PATCH — Missing classes for public.blade.php
   ═══════════════════════════════════════════════════ */

/* Mobile topbar actions */
.mob-topbar-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
.mob-topbar-avatar {
    width: 42px; height: 42px;
    border-radius: 50%;
    background: var(--bg-subtle);
    border: 1px solid var(--border);
    display: flex; align-items: center; justify-content: center;
    color: var(--text);
    font-weight: 700;
    font-size: 14px;
    overflow: hidden;
    flex-shrink: 0;
    transition: all var(--dur) var(--ease);
}
.mob-topbar-avatar:hover { background: var(--bg-hover); }
.mob-topbar-avatar img { width: 100%; height: 100%; object-fit: cover; }

/* Desktop icon button in topbar */
.topbar-icon-btn {
    width: 42px; height: 42px;
    border-radius: 50%;
    background: var(--bg);
    border: 1px solid var(--border);
    display: flex; align-items: center; justify-content: center;
    color: var(--text);
    transition: all var(--dur) var(--ease);
    flex-shrink: 0;
}
.topbar-icon-btn:hover {
    background: var(--bg-hover);
    border-color: var(--border-2);
}

/* Page side (desktop sidebar) */
.page-side {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 32px;
    margin-top: 32px;
}

/* Toast variants */
.toast.error { background: var(--danger); }
.toast.warning { background: var(--warning); }
.toast.info { background: #0891B2; }

/* ═══════════════════════════════════════════════════════════════
   WOW LAYER 2026 — Premium Effects
   Mesh · Glass · Reveal · Shine · Pulse
   ═══════════════════════════════════════════════════════════════ */

/* ─────────── Gradient Mesh Background ─────────── */
.mesh-bg {
    background:
        radial-gradient(at 15% 25%, color-mix(in oklab, var(--accent) 20%, transparent) 0px, transparent 45%),
        radial-gradient(at 85% 20%, color-mix(in oklab, #6366F1 20%, transparent) 0px, transparent 45%),
        radial-gradient(at 75% 85%, color-mix(in oklab, #06B6D4 16%, transparent) 0px, transparent 45%),
        radial-gradient(at 20% 85%, color-mix(in oklab, #F59E0B 14%, transparent) 0px, transparent 45%),
        linear-gradient(180deg, #FAFAFA 0%, #EEEEEE 100%);
}

/* ─────────── Animated Aurora ─────────── */
.aurora {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}
.aurora::before {
    content: '';
    position: absolute;
    inset: -60%;
    background: conic-gradient(from 0deg, var(--accent), #6366F1, #06B6D4, #F59E0B, var(--accent));
    filter: blur(90px);
    opacity: 0.35;
    animation: aurora 24s linear infinite;
    z-index: 0;
    pointer-events: none;
}
@keyframes aurora { to { transform: rotate(360deg); } }
.aurora > * { position: relative; z-index: 1; }

/* ─────────── Glassmorphism ─────────── */
.glass {
    background: color-mix(in srgb, var(--bg) 78%, transparent);
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    border: 1px solid color-mix(in srgb, var(--border) 65%, transparent);
}

/* ─────────── Scroll Reveal ─────────── */
.reveal {
    opacity: 0;
    transform: translateY(24px);
    transition:
        opacity 0.7s cubic-bezier(0.2, 0.8, 0.2, 1),
        transform 0.7s cubic-bezier(0.2, 0.8, 0.2, 1);
    will-change: opacity, transform;
}
.reveal.in { opacity: 1; transform: none; will-change: auto; }
.reveal-d1 { transition-delay: 0.06s; }
.reveal-d2 { transition-delay: 0.12s; }
.reveal-d3 { transition-delay: 0.18s; }
.reveal-d4 { transition-delay: 0.24s; }
.reveal-d5 { transition-delay: 0.30s; }
.reveal-d6 { transition-delay: 0.36s; }

@media (prefers-reduced-motion: reduce) {
    .reveal { opacity: 1 !important; transform: none !important; }
}

/* ─────────── Shine on Buttons ─────────── */
.btn-shine {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}
.btn-shine::before {
    content: '';
    position: absolute;
    top: 0; bottom: 0; left: -60%;
    width: 40%;
    background: linear-gradient(100deg, transparent, rgba(255,255,255,0.45), transparent);
    transform: skewX(-20deg);
    transition: left 0.75s cubic-bezier(0.2, 0.8, 0.2, 1);
    z-index: 1;
    pointer-events: none;
}
.btn-shine:hover::before { left: 130%; }

/* ─────────── Gradient Text ─────────── */
.gradient-text {
    background: linear-gradient(135deg, var(--accent) 0%, #6366F1 55%, #06B6D4 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

/* ─────────── Hero Status Pill (floating) ─────────── */

@keyframes pillFadeIn {
    from { opacity: 0; transform: translateY(-8px) scale(0.9); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}
.status-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--success);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--success) 22%, transparent);
    animation: statusPulse 2.2s ease-in-out infinite;
    flex-shrink: 0;
}
.status-dot.closed {
    background: var(--danger);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 22%, transparent);
    animation: none;
}
@keyframes statusPulse {
    0%, 100% { box-shadow: 0 0 0 3px color-mix(in srgb, var(--success) 22%, transparent); }
    50%      { box-shadow: 0 0 0 9px color-mix(in srgb, var(--success) 0%, transparent); }
}

/* ─────────── Verified Badge Pop ─────────── */
.hero-title-verified {
    animation: verifyIn 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) 0.5s both;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--accent) 35%, transparent);
}
@keyframes verifyIn {
    from { transform: scale(0) rotate(-180deg); opacity: 0; }
    to   { transform: scale(1) rotate(0deg); opacity: 1; }
}

/* ─────────── Trust Pills Row ─────────── */
.trust-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 24px;
    margin-bottom: 8px;
}
.trust-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--r-pill);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-2);
    transition: all var(--dur) var(--ease);
}
.trust-pill:hover {
    border-color: var(--border-2);
    box-shadow: var(--shadow-xs);
}
.trust-check {
    width: 16px; height: 16px;
    border-radius: 50%;
    background: var(--success-soft);
    color: var(--success);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    flex-shrink: 0;
}

/* ─────────── Hours Row Today Highlight ─────────── */
.hours-row {
    padding: 13px 16px;
    margin: 0 -16px;
    border-radius: var(--r-sm);
    transition: background var(--dur) var(--ease);
    position: relative;
}
.hours-row:hover { background: var(--bg-subtle); }
.hours-row-today {
    background: var(--accent-soft) !important;
    border-bottom-color: transparent !important;
}
.hours-row-today .hours-key {
    color: var(--accent);
    font-weight: 800;
}
.hours-row-today::after {
    content: '';
    position: absolute;
    right: -6px;
    top: 50%;
    transform: translateY(-50%);
    width: 4px;
    height: 22px;
    background: var(--accent);
    border-radius: 2px;
}

/* ─────────── Service Card Gradient Border on Hover ─────────── */
.service-card { position: relative; isolation: isolate; }
.service-card::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1.5px;
    background: linear-gradient(135deg, transparent 35%, var(--accent) 50%, #6366F1 65%, transparent 80%);
    -webkit-mask:
        linear-gradient(#000 0 0) content-box,
        linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
            mask-composite: exclude;
    opacity: 0;
    transition: opacity 0.4s var(--ease);
    pointer-events: none;
    z-index: 2;
}
.service-card:hover::before { opacity: 1; }

/* ─────────── Quick Action Premium Hover ─────────── */
.quick-action:hover 

/* ─────────── Mobile Sticky CTA Entrance ─────────── */
.sticky-cta {
    animation: slideUpCTA 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) 0.6s both;
}
@keyframes slideUpCTA {
    from { opacity: 0; transform: translateY(120%); }
    to   { opacity: 1; transform: translateY(0); }
}
@media (min-width: 1024px) {
    .sticky-cta {
        animation-delay: 0.3s;
    }
}

/* ─────────── Skeleton Loader ─────────── */
.skeleton {
    background: linear-gradient(90deg, var(--bg-subtle) 25%, var(--bg-hover) 50%, var(--bg-subtle) 75%);
    background-size: 200% 100%;
    animation: shimmer 1.6s linear infinite;
    border-radius: var(--r-sm);
}
@keyframes shimmer { to { background-position: -200% 0; } }

/* ─────────── Section Head Divider ─────────── */
.divider-gradient {
    height: 1px;
    border: 0;
    background: linear-gradient(90deg, transparent, var(--border-2), transparent);
    margin: 40px 0;
}

/* ─────────── Hero Cover Subtle Zoom on Hover ─────────── */
.hero-cover img {
    transition: transform 1.2s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.hero:hover .hero-cover img { transform: scale(1.03); }

/* ─────────── Badge Enhancement (status pill top of card) ─────────── */
.card-title .badge { margin-right: auto; }

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE FIX 2026 — Grid · Container Queries · RTL
   ═══════════════════════════════════════════════════════════════ */

/* ─── حذف Media Queryهای قدیمی برای layout ─── */
/* الگوی جدید: base = موبایل، فقط min-width برای تغییرات ساختاری */

/* ─── CONTAINER QUERIES برای کارت‌ها ─── */
/* کارت‌ها به عرض والد واکنش می‌دن، نه viewport */
.services-grid {
    container-type: inline-size;
    container-name: svc-grid;
}

/* ─── GRID خودتنظیم (بدون Media Query) ─── */
/* الگوی طلایی ۲۰۲۶: auto-fit + minmax */
.services-grid {
    display: grid;
    /* هر کارت حداقل 280px، حداکثر 1fr (کشیده می‌شه) */
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
    gap: var(--space-md);
    margin-bottom: var(--space-lg);
}

/* در کانتینر باریک (مثل سایدبار)، کارت‌ها عمودی */
@container svc-grid (max-width: 480px) {
    .service-card {
        flex-direction: row;
        align-items: center;
        gap: var(--space-sm);
    }
    .service-card .service-image {
        width: 80px;
        height: 80px;
        aspect-ratio: 1;
        flex-shrink: 0;
    }
    .service-card .service-info {
        padding: 0;
        flex: 1;
    }
}

/* در کانتینر عریض، کارت‌ها ۴ ستونه */
@container svc-grid (min-width: 1024px) {
    .services-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* ─── QUICK ACTIONS — Grid 2x2 موبایل → 4 تایی دسکتاپ ─── */


@media (min-width: 640px) {
    
}



/* ─── CATEGORY GRID — auto-fit ─── */
.category-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 140px), 1fr));
    gap: var(--space-sm);
    margin-bottom: var(--space-lg);
}

/* ─── HERO — Container Query ─── */
.hero {
    container-type: inline-size;
    container-name: hero;
}

.hero-cover {
    aspect-ratio: 21 / 9;  /* Cinematic */
    max-height: clamp(240px, 40vh, 420px);
    border-radius: var(--radius-lg);
}

@container hero (max-width: 480px) {
    .hero-cover { aspect-ratio: 16 / 10; }
    
    .hero-title { font-size: var(--text-2xl); }
}

@container hero (min-width: 768px) {
    .hero-cover { aspect-ratio: 21 / 9; }
    
}

/* ─── HERO CONTENT — grid به جای flex ─── */


/* ─── ساعت کاری — Grid با امروز ─── */
.hours-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: var(--space-sm);
    align-items: center;
    padding: var(--space-sm) var(--space-md);
    margin: 0 calc(-1 * var(--space-md));
}

/* ─── Sticky CTA — ایمن‌سازی موبایل ─── */
.sticky-cta {
    position: fixed;
    bottom: calc(72px + env(safe-area-inset-bottom, 0px) + var(--space-sm));
    left: var(--space-sm);
    right: var(--space-sm);
    /* ... بقیه استایل‌ها */
}

@media (min-width: 1024px) {
    .sticky-cta {
        bottom: var(--space-lg);
        max-width: min(800px, 90vw);
        left: 50%;
        right: auto;
        transform: translateX(-50%);
    }
}

/* ─── RTL LOGICAL PROPERTIES (جای margin-left/right) ─── */
/* این‌ها خودکار در RTL برعکس می‌شن */
.brand-text { padding-inline-start: var(--space-sm); }
.service-info { padding-block: var(--space-sm); padding-inline: var(--space-md); }
.hours-row-today::after {
    inset-inline-end: -6px;  /* جای right: -6px */
}

/* ─── PREVENT HORIZONTAL OVERFLOW ─── */
html, body {
    overflow-x: clip;  /* بهتر از hidden — scroll رو نمی‌کشه */
    max-width: 100vw;
}

/* ─── FLUID CONTAINER (جای .container قدیمی) ─── */
.container {
    width: 100%;
    max-width: var(--container-max);
    margin-inline: auto;
}

/* ─── PAGE WRAPPER — Fluid Padding ─── */
.page-wrapper {
    padding-top: calc(72px + var(--space-md));
    padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px) + var(--space-xl));
    padding-inline: var(--container-pad);
}

@media (min-width: 1024px) {
    .page-wrapper {
        padding-top: calc(80px + var(--space-lg));
        padding-bottom: var(--space-2xl);
    }
}

/* ─── SIDEBAR (Desktop) — Grid Layout ─── */
@media (min-width: 1024px) {
    .page-wrapper {
        display: grid;
        grid-template-columns: 1fr 360px;
        gap: var(--space-lg);
        max-width: var(--container-max);
        margin-inline: auto;
    }
    .page-wrapper > main { grid-column: 1; min-width: 0; }
    .page-wrapper > .page-side { grid-column: 2; position: sticky; top: 100px; align-self: start; }
}

/* ─── کارت‌ها — Fluid ─── */
.card {
    border-radius: var(--radius-lg);
    margin-bottom: var(--space-md);
}

.card-head {
    padding: var(--space-md) var(--space-lg);
}

.card-body {
    padding: var(--space-lg);
}

@media (max-width: 640px) {
    .card-head { padding: var(--space-sm) var(--space-md); }
    .card-body { padding: var(--space-md); }
}

/* ─── ABOUT TEXT — خوانایی بهتر ─── */
.about-text {
    font-size: var(--text-base);
    line-height: 1.85;
    max-width: 70ch;  /* عرض بهینه برای خواندن */
}

/* ─── مبارزه با Overflow در Grid Children ─── */
.services-grid > *,
.quick-actions > *,
.category-grid > * {
    min-width: 0;  /* حیاتی! بدون این Grid می‌ترکه */
}

/* ═══════════════════════════════════════════════════════════════
   SERVICES — Clean List Rows (2026)
   Apple App Store × Booking.com style
   ═══════════════════════════════════════════════════════════════ */

/* ─── Container ─── */
.services-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-bottom: var(--space-lg);
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

@media (min-width: 768px) {
    .services-list {
        /* دسکتاپ: ۲ ستونه با خط جداکننده وسط */
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
    .services-list::before {
        content: '';
    }
    .service-row {
        position: relative;
    }
    .service-row::after {
        content: '';
        position: absolute;
        bottom: 0;
        inset-inline-start: var(--space-md);
        inset-inline-end: var(--space-md);
        height: 1px;
        background: var(--border);
    }
    .service-row:last-child::after,
    .service-row:nth-last-child(-n+2)::after {
        display: none;
    }
    /* خط عمودی وسط */
    .service-row:nth-child(odd)::before {
        content: '';
        position: absolute;
        top: var(--space-md);
        bottom: var(--space-md);
        inset-inline-start: 0;
        width: 1px;
        background: var(--border);
    }
}

/* ─── Row ─── */
.service-row {
    display: grid;
    grid-template-columns: 64px 1fr auto auto;
    align-items: center;
    gap: var(--space-md);
    padding: var(--space-md);
    text-decoration: none;
    color: inherit;
    transition: all var(--dur) var(--ease);
    position: relative;
    cursor: pointer;
    background: transparent;
}

.service-row:hover {
    background: var(--bg-subtle);
}

/* ─── Thumbnail ─── */
.service-row-thumb {
    width: 64px;
    height: 64px;
    border-radius: var(--radius-sm);
    overflow: hidden;
    background: var(--bg-subtle);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    flex-shrink: 0;
    position: relative;
    isolation: isolate;
    transition: transform var(--dur) var(--ease);
}

.service-row:hover .service-row-thumb {
    transform: scale(1.05);
}

.service-row-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s var(--ease);
}

.service-row:hover .service-row-thumb img {
    transform: scale(1.12);
}

/* ─── Info ─── */
.service-row-info {
    min-width: 0; /* حیاتی برای ellipsis */
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.service-row-name {
    font-size: var(--text-base);
    font-weight: 700;
    color: var(--text);
    letter-spacing: -0.01em;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.service-row-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: var(--text-xs);
    color: var(--text-3);
    font-weight: 600;
    flex-wrap: wrap;
}

.service-row-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

/* ─── Price ─── */
.service-row-price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    text-align: end;
    flex-shrink: 0;
}

.service-row-price-value {
    font-size: var(--text-base);
    font-weight: 800;
    color: var(--text);
    letter-spacing: -0.01em;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
    transition: color var(--dur) var(--ease);
}

.service-row:hover .service-row-price-value {
    color: var(--accent);
}

.service-row-price-unit {
    font-size: 10.5px;
    color: var(--text-4);
    font-weight: 600;
}

/* ─── Arrow ─── */
.service-row-arrow {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--bg);
    border: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-3);
    flex-shrink: 0;
    transition: all var(--dur) var(--ease);
}

.service-row:hover .service-row-arrow {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
    transform: translateX(-4px); /* RTL: به چپ */
}

/* ─── Mobile Compact ─── */
@media (max-width: 640px) {
    .service-row {
        grid-template-columns: 56px 1fr auto;
        gap: var(--space-sm);
        padding: var(--space-sm) var(--space-md);
    }
    .service-row-thumb {
        width: 56px;
        height: 56px;
        font-size: 22px;
    }
    .service-row-arrow {
        display: none; /* در موبایل حذف، فضای کمتر */
    }
    .service-row-price-value {
        font-size: var(--text-sm);
    }
}

/* ─── Featured Service (اول لیست) ─── */
.service-row.featured {
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent) 6%, var(--bg)) 0%,
        var(--bg) 60%);
}

.service-row.featured .service-row-thumb {
    width: 80px;
    height: 80px;
    font-size: 32px;
    box-shadow: var(--shadow-sm);
}

.service-row.featured .service-row-name {
    font-size: var(--text-lg);
}

@media (min-width: 768px) {
    .service-row.featured {
        grid-column: 1 / -1; /* تمام عرض */
        grid-template-columns: 80px 1fr auto auto;
        padding: var(--space-lg) var(--space-md);
        border-bottom: 1px solid var(--border);
    }
    .service-row.featured::before {
        display: none;
    }
}

/* ─── Badge "پیشنهاد ویژه" روی featured ─── */
.service-row.featured .service-row-info::before {
    content: '⚡ محبوب‌ترین';
    display: inline-block;
    font-size: 10px;
    font-weight: 800;
    color: var(--accent);
    background: var(--accent-soft);
    padding: 3px 8px;
    border-radius: var(--r-pill);
    margin-bottom: 4px;
    align-self: flex-start;
}

/* ═══════════════════════════════════════════════════════════════
   SERVICES — Split Card Grid (2026 Final)
   Horizontal split cards · Mobile: 1col · Desktop: 2x2
   ═══════════════════════════════════════════════════════════════ */

.services-split {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-md);
    margin-bottom: var(--space-lg);
}

@media (min-width: 768px) {
    .services-split {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ─── Card ─── */
.svc-card {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 0;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: all 0.3s var(--ease);
    position: relative;
    isolation: isolate;
    min-height: 130px;
}

.svc-card:hover {
    border-color: var(--border-2);
    box-shadow: 0 12px 32px -8px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}

/* ─── Image side ─── */
.svc-card-image {
    position: relative;
    overflow: hidden;
    background: var(--bg-subtle);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 42px;
}

.svc-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s var(--ease);
}

.svc-card:hover .svc-card-image img {
    transform: scale(1.08);
}

/* ─── Info side ─── */
.svc-card-body {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: var(--space-md);
    gap: var(--space-sm);
    min-width: 0;
}

.svc-card-name {
    font-size: var(--text-base);
    font-weight: 700;
    color: var(--text);
    letter-spacing: -0.015em;
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.svc-card-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: var(--text-xs);
    color: var(--text-3);
    font-weight: 600;
    flex-wrap: wrap;
}

.svc-card-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

/* ─── Footer (price + arrow) ─── */
.svc-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-sm);
    margin-top: auto;
}

.svc-card-price {
    display: flex;
    align-items: baseline;
    gap: 4px;
}

.svc-card-price-value {
    font-size: var(--text-lg);
    font-weight: 800;
    color: var(--text);
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    transition: color var(--dur) var(--ease);
}

.svc-card:hover .svc-card-price-value {
    color: var(--accent);
}

.svc-card-price-unit {
    font-size: 10.5px;
    color: var(--text-4);
    font-weight: 600;
}

.svc-card-arrow {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--bg-subtle);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-2);
    flex-shrink: 0;
    transition: all 0.3s var(--ease);
}

.svc-card:hover .svc-card-arrow {
    background: var(--accent);
    color: #fff;
    transform: translateX(-4px);
}

/* ─── Badge (محبوب) ─── */
.svc-card-badge {
    position: absolute;
    top: 10px;
    inset-inline-start: 10px;
    padding: 3px 8px;
    background: var(--accent);
    color: #fff;
    border-radius: var(--r-pill);
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: 0.02em;
    z-index: 2;
    box-shadow: 0 2px 8px rgba(255, 56, 92, 0.35);
}

/* ─── موبایل کوچیک: کارت فشرده‌تر ─── */
@media (max-width: 480px) {
    .svc-card {
        grid-template-columns: 96px 1fr;
        min-height: 110px;
        border-radius: var(--radius-md);
    }
    .svc-card-image { font-size: 36px; }
    .svc-card-body { padding: var(--space-sm); }
    .svc-card-name { font-size: var(--text-sm); }
    .svc-card-price-value { font-size: var(--text-base); }
    .svc-card-arrow { width: 28px; height: 28px; }
    .svc-card-arrow svg { width: 12px; height: 12px; }
}

/* ─── دسکتاپ بزرگ: گرید بازتر ─── */
@media (min-width: 1280px) {
    .services-split {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-lg);
    }
    .svc-card {
        grid-template-columns: 130px 1fr;
        min-height: 150px;
    }
}

/* ─── Featured Card (اولین خدمت بزرگ) ─── */
@media (min-width: 768px) {
    .svc-card.featured {
        grid-column: 1 / -1;
        grid-template-columns: minmax(200px, 32%) 1fr;
        min-height: 220px;
    }
    .svc-card.featured .svc-card-image {
        font-size: 64px;
    }
    .svc-card.featured .svc-card-name {
        font-size: var(--text-xl);
        -webkit-line-clamp: 3;
    }
    .svc-card.featured .svc-card-price-value {
        font-size: var(--text-2xl);
    }
    .svc-card.featured .svc-card-body {
        padding: var(--space-lg);
        gap: var(--space-md);
    }
}


/* ═══════════════════════════════════════════════════════════════
   OVERFLOW FIX — Desktop Safety Net (2026)
   جلوگیری از بیرون‌زدن دکمه‌ها و کارت‌ها از باکس
   ═══════════════════════════════════════════════════════════════ */

/* ─── همه فرزندهای مستقیم باکس‌ها ─── */
.page-wrapper,
.page-wrapper > *,
.page-wrapper main,
.page-wrapper .page-side,
.page-wrapper .card,
.page-wrapper .card-head,
.page-wrapper .card-body,
.wizard-panel,
.wizard-step,
.step,
.form-actions,
.action-row {
    min-width: 0 !important;
    max-width: 100%;
}

/* ─── دکمه‌ها هرگز از کادر بیرون نزنن ─── */
.btn {
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.btn-block {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto;
}

/* ─── Button group / form actions: wrap کن ─── */
.form-actions,
.action-row,
.wizard-actions,
.step-actions,
.btn-group {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm, 12px);
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-width: 0;
}

.form-actions .btn,
.wizard-actions .btn,
.step-actions .btn {
    flex: 0 1 auto;
    min-width: 120px;
    max-width: 100%;
}

/* ─── Flex containers: اجازه shrink ─── */
.card-head,
.card-title,
.section-head,
.hero-meta,
.quick-actions,
.contact-row {
    min-width: 0;
}

.card-title {
    flex-wrap: wrap;
}

/* ─── Calendar & Slots: در parent باریک نشکنن ─── */
.calendar {
    max-width: 100%;
    overflow-x: auto;
}

.slots-grid {
    max-width: 100%;
}

/* ─── Modal/Form inputs ─── */
.field,
.field-input,
.field-select,
.field-textarea {
    max-width: 100%;
    min-width: 0;
}

/* ─── Desktop Grid: main column هرگز سرریز نکنه ─── */
@media (min-width: 1024px) {
    .page-wrapper {
        grid-template-columns: minmax(0, 1fr) 340px;
    }
    .page-wrapper > main {
        min-width: 0;
        overflow-x: clip;
    }
    .page-wrapper > .page-side {
        width: 340px;
        max-width: 100%;
    }
}

/* ─── Sticky CTA: در عرض‌های کوچیک خودکار Wrap ─── */
@media (max-width: 380px) {
    .sticky-cta {
        padding: var(--space-xs) var(--space-sm);
        gap: var(--space-sm);
    }
    .sticky-cta-value {
        font-size: 16px;
    }
    .sticky-cta-btn {
        padding: 10px 16px;
        font-size: 13px;
    }
}

/* ─── Long text safety (آدرس، اسم) ─── */
.brand-name,
.service-name,
.svc-card-name,
.hero-title,
.card-title,
.about-text {
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* ─── Debug helper (اختیاری) — آفلاین نگه دار ─── */
/* * { outline: 1px solid red !important; } */

/* ═══════════════════════════════════════════════════════════════
   WIZARD 2026 — Premium Multi-step Booking
   ═══════════════════════════════════════════════════════════════ */

/* ─── Progress (sidebar + mobile) ─── */
.wizard-progress-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
    gap: 8px;
}

.wizard-progress-label {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--text-3);
}

.wizard-progress-percent {
    font-size: 15px;
    font-weight: 900;
    color: var(--accent);
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.01em;
}

.wizard-progress-track {
    height: 6px;
    background: var(--bg-hover);
    border-radius: 6px;
    overflow: hidden;
    position: relative;
}

.wizard-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--accent), #E31C5F);
    border-radius: 6px;
    transition: width 0.5s cubic-bezier(0.2, 0, 0, 1);
    width: 0%;
    box-shadow: 0 0 12px color-mix(in srgb, var(--accent) 40%, transparent);
}

.wizard-progress {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: var(--space-md);
    margin-bottom: var(--space-md);
}

/* ─── Step dots ─── */
.wizard-dots {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 4px;
    margin-top: 18px;
}

.wizard-dot {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 4px 2px;
    background: none;
    border: none;
    cursor: pointer;
    transition: all var(--dur) var(--ease);
    min-width: 0;
}

.wizard-dot-num {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--bg-subtle);
    border: 1.5px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 800;
    color: var(--text-3);
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    font-variant-numeric: tabular-nums;
}

.wizard-dot-label {
    font-size: 10.5px;
    font-weight: 700;
    color: var(--text-4);
    transition: color var(--dur) var(--ease);
    white-space: nowrap;
}

.wizard-dot.active .wizard-dot-num {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
    transform: scale(1.12);
    box-shadow: 0 6px 16px color-mix(in srgb, var(--accent) 40%, transparent);
}

.wizard-dot.active .wizard-dot-label {
    color: var(--accent);
}

.wizard-dot.done .wizard-dot-num {
    background: var(--success);
    border-color: var(--success);
    color: #fff;
    font-size: 0;
}

.wizard-dot.done .wizard-dot-num::before {
    content: '✓';
    font-size: 14px;
    font-weight: 900;
    line-height: 1;
}

.wizard-dot.done .wizard-dot-label {
    color: var(--success);
}

/* ─── Panels ─── */
.wizard-panel {
    display: none;
}

.wizard-panel.active {
    display: block;
    animation: wizardFadeIn 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}

@keyframes wizardFadeIn {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ─── Sidebar summary ─── */
.wizard-summary-empty {
    font-size: 12.5px;
    color: var(--text-4);
    text-align: center;
    padding: 24px 8px;
    font-weight: 600;
    line-height: 1.7;
}

.wizard-summary-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
    font-size: 13px;
}

.wizard-summary-row:last-child { border-bottom: none; }

.wizard-summary-key {
    color: var(--text-3);
    font-weight: 600;
    flex-shrink: 0;
}

.wizard-summary-val {
    color: var(--text);
    font-weight: 700;
    text-align: end;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.wizard-summary-total {
    padding: 14px 18px;
    background: linear-gradient(135deg, var(--accent-soft), color-mix(in srgb, var(--accent) 6%, transparent));
    border-top: 1px solid color-mix(in srgb, var(--accent) 20%, transparent);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}

.wizard-summary-total-key {
    font-size: 12px;
    font-weight: 800;
    color: var(--text-2);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.wizard-summary-total-val {
    font-size: 19px;
    font-weight: 900;
    color: var(--accent);
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}

.wizard-summary-total-val span {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-3);
    margin-right: 3px;
}

/* ─── Desktop nav ─── */
.wizard-nav {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: var(--space-sm);
    margin-top: var(--space-md);
    min-width: 0;
}

.wizard-nav .btn {
    width: 100%;
    min-width: 0;
    padding: 14px 16px;
}

/* ─── Mobile fixed bottom nav ─── */
.wizard-mobile-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: saturate(180%) blur(14px);
    -webkit-backdrop-filter: saturate(180%) blur(14px);
    border-top: 1px solid var(--border);
    padding: 10px var(--space-md);
    padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    z-index: 90;
    box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.06);
}

.wizard-mobile-nav.hidden { display: none; }

.wizard-mobile-nav-back {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--bg-subtle);
    border: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text);
    cursor: pointer;
    transition: all var(--dur) var(--ease);
    flex-shrink: 0;
}

.wizard-mobile-nav-back:hover:not(:disabled) {
    background: var(--bg-hover);
    border-color: var(--border-2);
}

.wizard-mobile-nav-back:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.wizard-mobile-nav-info {
    min-width: 0;
    text-align: center;
}

.wizard-mobile-nav-step {
    font-size: 10px;
    font-weight: 700;
    color: var(--text-4);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    line-height: 1.2;
}

.wizard-mobile-nav-title {
    font-size: 13.5px;
    font-weight: 800;
    color: var(--text);
    margin-top: 3px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1.2;
}

.wizard-mobile-nav-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 12px 18px;
    background: var(--accent);
    color: #fff;
    border-radius: var(--r-pill);
    font-family: inherit;
    font-size: 13.5px;
    font-weight: 700;
    border: none;
    cursor: pointer;
    transition: all var(--dur) var(--ease);
    flex-shrink: 0;
    box-shadow: 0 6px 18px color-mix(in srgb, var(--accent) 35%, transparent);
    white-space: nowrap;
}

.wizard-mobile-nav-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    box-shadow: none;
}

.wizard-mobile-nav-btn:hover:not(:disabled) {
    background: var(--accent-2);
    transform: translateY(-1px);
    box-shadow: 0 8px 22px color-mix(in srgb, var(--accent) 45%, transparent);
}

/* ─── Service selection (wizard) ─── */
.wizard-svc-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.wizard-svc-row {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr) auto 24px;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-sm) var(--space-md);
    background: var(--bg);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--dur) var(--ease);
    position: relative;
    min-width: 0;
}

.wizard-svc-row:hover {
    border-color: var(--border-2);
    background: var(--bg-subtle);
    transform: translateY(-1px);
    box-shadow: var(--shadow-xs);
}

.wizard-svc-row.selected {
    border-color: var(--accent);
    background: var(--accent-soft);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);
}

.wizard-svc-thumb {
    width: 56px;
    height: 56px;
    border-radius: var(--radius-sm);
    overflow: hidden;
    background: var(--bg-subtle);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    flex-shrink: 0;
}

.wizard-svc-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wizard-svc-info {
    min-width: 0;
}

.wizard-svc-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.wizard-svc-meta {
    font-size: 11.5px;
    color: var(--text-3);
    font-weight: 600;
    margin-top: 4px;
}

.wizard-svc-price {
    font-size: 14px;
    font-weight: 800;
    color: var(--text);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    text-align: end;
    flex-shrink: 0;
    transition: color var(--dur) var(--ease);
}

.wizard-svc-row:hover .wizard-svc-price,
.wizard-svc-row.selected .wizard-svc-price {
    color: var(--accent);
}

.wizard-svc-price small {
    display: block;
    font-size: 10px;
    font-weight: 600;
    color: var(--text-4);
    margin-top: 2px;
    letter-spacing: 0;
}

.wizard-svc-radio {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 1.5px solid var(--border-3);
    background: var(--bg);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--dur) var(--ease);
}

.wizard-svc-row.selected .wizard-svc-radio {
    background: var(--accent);
    border-color: var(--accent);
    transform: scale(1.1);
}

.wizard-svc-row.selected .wizard-svc-radio::after {
    content: '✓';
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
}

@media (max-width: 480px) {
    .wizard-svc-row {
        grid-template-columns: 48px minmax(0, 1fr) auto;
        gap: 10px;
        padding: 10px 12px;
    }
    .wizard-svc-thumb { width: 48px; height: 48px; font-size: 20px; }
    .wizard-svc-radio { display: none; }
    .wizard-svc-price { font-size: 13px; }
    .wizard-svc-name { font-size: 13px; }
}

/* ─── Step summary (step 4) ─── */
.wizard-step-summary {
    background: var(--bg-subtle);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: var(--space-md);
    margin-bottom: var(--space-md);
}

.wizard-step-summary-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-sm);
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
    font-size: 13.5px;
    min-width: 0;
}

.wizard-step-summary-row:last-child { border-bottom: none; }

.wizard-step-summary-row .key {
    color: var(--text-3);
    font-weight: 600;
    flex-shrink: 0;
}

.wizard-step-summary-row .val {
    color: var(--text);
    font-weight: 700;
    text-align: end;
    overflow-wrap: anywhere;
}

/* ─── Mobile page header ─── */
.mobile-page-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 4px 0 var(--space-md);
    margin-bottom: var(--space-md);
    border-bottom: 1px solid var(--border);
}

.mobile-page-header-back {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--bg);
    border: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text);
    flex-shrink: 0;
    transition: all var(--dur) var(--ease);
}

.mobile-page-header-back:hover {
    background: var(--bg-hover);
    border-color: var(--border-2);
}

.mobile-page-header-info {
    min-width: 0;
    flex: 1;
}

.mobile-page-header-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--text);
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mobile-page-header-sub {
    font-size: 12px;
    font-weight: 500;
    color: var(--text-3);
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ─── Success state ─── */
.wizard-success {
    text-align: center;
    padding: var(--space-xl) var(--space-md);
    max-width: 580px;
    margin: 0 auto;
}

.wizard-success-icon {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--success), #10B981);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto var(--space-lg);
    box-shadow: 0 16px 40px color-mix(in srgb, var(--success) 35%, transparent);
    animation: successPop 0.7s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes successPop {
    0%   { transform: scale(0) rotate(-180deg); opacity: 0; }
    60%  { transform: scale(1.12) rotate(8deg); }
    100% { transform: scale(1) rotate(0deg); opacity: 1; }
}

.wizard-success-title {
    font-size: var(--text-xl);
    font-weight: 800;
    color: var(--text);
    letter-spacing: -0.02em;
    margin-bottom: 8px;
    line-height: 1.25;
}

.wizard-success-sub {
    font-size: var(--text-sm);
    color: var(--text-3);
    font-weight: 500;
    margin-bottom: var(--space-lg);
    line-height: 1.7;
}

.wizard-tracking {
    background: var(--bg-subtle);
    border: 1.5px dashed var(--border-2);
    border-radius: var(--radius-md);
    padding: var(--space-md);
    margin-bottom: var(--space-md);
}

.wizard-tracking-label {
    font-size: 10.5px;
    font-weight: 800;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 10px;
}

.wizard-tracking-code {
    font-size: 22px;
    font-weight: 900;
    color: var(--text);
    letter-spacing: 0.12em;
    font-variant-numeric: tabular-nums;
    direction: ltr;
    margin-bottom: 14px;
    word-break: break-all;
    line-height: 1.2;
}

.wizard-tracking-copy {
    background: var(--bg);
    border: 1px solid var(--border-2);
    border-radius: var(--r-pill);
    padding: 8px 18px;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--text);
    cursor: pointer;
    transition: all var(--dur) var(--ease);
}

.wizard-tracking-copy:hover {
    background: var(--bg-subtle);
    border-color: var(--text-3);
    transform: translateY(-1px);
}

.wizard-success-actions {
    display: flex;
    gap: var(--space-sm);
    justify-content: center;
    flex-wrap: wrap;
    margin-top: var(--space-lg);
}

.wizard-success-actions .btn {
    flex: 1 1 160px;
    max-width: 240px;
    min-width: 0;
}

/* ─── Payment info ─── */
.wizard-pay-info {
    background: var(--warning-soft);
    border: 1px solid color-mix(in srgb, var(--warning) 30%, transparent);
    border-radius: var(--radius-md);
    padding: var(--space-md);
    margin-bottom: var(--space-md);
    text-align: start;
}

.wizard-pay-title {
    font-size: 13.5px;
    font-weight: 800;
    color: #92400E;
    margin-bottom: 12px;
}

.wizard-pay-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px solid color-mix(in srgb, var(--warning) 18%, transparent);
    font-size: 13px;
    min-width: 0;
}

.wizard-pay-row:last-of-type { border-bottom: none; }

.wizard-pay-row .key {
    color: #92400E;
    font-weight: 600;
    flex-shrink: 0;
}

.wizard-pay-row .val {
    color: var(--text);
    font-weight: 800;
    direction: ltr;
    font-variant-numeric: tabular-nums;
    text-align: end;
    overflow-wrap: anywhere;
}

/* ─── Extra bottom padding for mobile fixed nav ─── */
@media (max-width: 1023px) {
    .page-wrapper {
        padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px) + var(--space-lg));
    }
}


/* ═══════════════════════════════════════════════════════════════
   WIZARD PAYMENT — Dynamic Payment Section
   ═══════════════════════════════════════════════════════════════ */

/* ─── Method picker (رادیو) ─── */
.pay-method-picker {
    margin-bottom: var(--space-md);
    padding: var(--space-md);
    background: var(--bg-subtle);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}

.pay-method-picker-label {
    font-size: 12.5px;
    font-weight: 800;
    color: var(--text-2);
    margin-bottom: 12px;
}

.pay-method-options {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
}

@media (min-width: 480px) {
    .pay-method-options { grid-template-columns: repeat(2, 1fr); }
}

.pay-method-option {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    background: var(--bg);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all var(--dur) var(--ease);
    min-width: 0;
}

.pay-method-option:hover {
    border-color: var(--border-2);
    background: var(--bg-subtle);
}

.pay-method-option.selected {
    border-color: var(--accent);
    background: var(--accent-soft);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 10%, transparent);
}

.pay-method-option input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 1.5px solid var(--border-3);
    background: var(--bg);
    margin: 0;
    flex-shrink: 0;
    position: relative;
    transition: all var(--dur) var(--ease);
    cursor: pointer;
}

.pay-method-option input[type="radio"]:checked {
    border-color: var(--accent);
    background: var(--accent);
}

.pay-method-option input[type="radio"]:checked::after {
    content: '';
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 8px; height: 8px;
    border-radius: 50%;
    background: #fff;
}

.pay-method-label {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.3;
}

/* ─── Card box (کادر اصلی پرداخت) ─── */
.pay-card-box {
    margin-top: var(--space-md);
    padding: var(--space-md);
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}

.pay-card-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--text);
    margin-bottom: var(--space-md);
    display: flex;
    align-items: center;
    gap: 6px;
}

.pay-card-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-sm);
    padding: 11px 0;
    border-bottom: 1px solid var(--border);
    font-size: 13px;
    min-width: 0;
}

.pay-card-row:last-of-type { border-bottom: none; }

.pay-card-row .key {
    color: var(--text-3);
    font-weight: 600;
    flex-shrink: 0;
}

.pay-card-row .val {
    color: var(--text);
    font-weight: 800;
    text-align: end;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    overflow-wrap: anywhere;
    font-variant-numeric: tabular-nums;
}

.pay-card-row.pay-card-amount {
    margin-top: 12px;
    padding: 14px 16px;
    background: var(--accent-soft);
    border: none;
    border-radius: var(--radius-sm);
}

.pay-card-row.pay-card-amount .key {
    color: var(--accent);
    font-weight: 800;
}

.pay-card-row.pay-card-amount .val {
    color: var(--accent);
    font-size: 17px;
    font-weight: 900;
    letter-spacing: -0.02em;
}

/* ─── Copy button ─── */
.pay-copy-btn {
    background: var(--bg-subtle);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 3px 8px;
    font-size: 12px;
    cursor: pointer;
    transition: all var(--dur) var(--ease);
    color: var(--text-2);
    line-height: 1;
}

.pay-copy-btn:hover {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}

/* ─── Receipt upload zone ─── */
.pay-receipt-zone {
    margin-top: var(--space-md);
}

.pay-receipt-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 10px;
}

.pay-receipt-label .req { color: var(--accent); }

.pay-receipt-drop {
    position: relative;
    border: 2px dashed var(--border-2);
    border-radius: var(--radius-md);
    padding: var(--space-lg) var(--space-md);
    text-align: center;
    cursor: pointer;
    transition: all var(--dur) var(--ease);
    background: var(--bg-subtle);
    min-height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.pay-receipt-drop:hover {
    border-color: var(--accent);
    background: var(--accent-soft);
}

.pay-receipt-drop.dragging {
    border-color: var(--accent);
    background: var(--accent-soft);
    transform: scale(1.01);
}

.pay-receipt-icon {
    font-size: 36px;
    margin-bottom: 10px;
    line-height: 1;
}

.pay-receipt-text {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-2);
    margin-bottom: 4px;
}

.pay-receipt-hint {
    font-size: 11px;
    font-weight: 500;
    color: var(--text-4);
}

.pay-receipt-drop img {
    max-width: 100%;
    max-height: 200px;
    border-radius: var(--radius-sm);
    object-fit: contain;
    display: block;
    margin: 0 auto 12px;
}

.pay-receipt-preview-actions {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
    font-size: 12px;
}

.pay-receipt-status {
    color: var(--success);
    font-weight: 800;
}

.pay-receipt-remove {
    background: var(--danger-soft);
    color: var(--danger);
    border: none;
    border-radius: var(--r-pill);
    padding: 4px 12px;
    font-size: 11.5px;
    font-weight: 700;
    cursor: pointer;
    transition: all var(--dur) var(--ease);
    font-family: inherit;
}

.pay-receipt-remove:hover {
    background: var(--danger);
    color: #fff;
}

/* ─── Gateway box ─── */
.pay-gateway-box {
    background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 4%, var(--bg)), var(--bg));
    border-color: color-mix(in srgb, var(--accent) 25%, transparent);
}

.pay-gateway-amount {
    text-align: center;
    padding: var(--space-md) 0;
    background: var(--bg);
    border-radius: var(--radius-sm);
    margin-bottom: var(--space-md);
}

.pay-gateway-amount-label {
    font-size: 12px;
    color: var(--text-3);
    font-weight: 600;
    margin-bottom: 6px;
}

.pay-gateway-amount-value {
    font-size: 24px;
    font-weight: 900;
    color: var(--accent);
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.pay-gateway-amount-value span {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-3);
    margin-right: 4px;
}

.pay-gateway-amount-note {
    font-size: 11px;
    color: var(--text-3);
    font-weight: 600;
    margin-top: 8px;
}

.pay-gateway-note {
    font-size: 12.5px;
    color: var(--text-2);
    text-align: center;
    line-height: 1.7;
    font-weight: 500;
}

.pay-gateway-note strong {
    color: var(--text);
    font-weight: 800;
}

/* ─── Venue box ─── */
.pay-venue-box {
    background: var(--success-soft);
    border-color: color-mix(in srgb, var(--success) 25%, transparent);
}

.pay-venue-box .pay-card-title { color: var(--success); }

.pay-venue-note {
    font-size: 13.5px;
    color: var(--text-2);
    line-height: 1.75;
    font-weight: 500;
    text-align: center;
    padding: 8px 0;
}

.pay-venue-note strong {
    color: var(--text);
    font-weight: 800;
}

/* ─── Responsive ─── */
@media (max-width: 480px) {
    .pay-card-row { font-size: 12.5px; }
    .pay-card-row.pay-card-amount .val { font-size: 15px; }
    .pay-gateway-amount-value { font-size: 20px; }
    .pay-receipt-drop { padding: var(--space-md); min-height: 120px; }
}


/* ═══════════════════════════════════════════════════════════════
   WIZARD SERVICE GROUPS — Accordion
   ═══════════════════════════════════════════════════════════════ */

.wizard-svc-group {
    margin-bottom: 8px;
    border-radius: var(--radius-md);
    overflow: hidden;
    background: var(--bg);
    border: 1px solid var(--border);
    transition: all var(--dur) var(--ease);
}

.wizard-svc-group[open] {
    background: var(--bg-subtle);
    border-color: var(--border-2);
}

.wizard-svc-group-head {
    display: grid;
    grid-template-columns: 16px 44px minmax(0, 1fr);
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-sm) var(--space-md);
    cursor: pointer;
    list-style: none;
    user-select: none;
    transition: all var(--dur) var(--ease);
}

.wizard-svc-group-head::-webkit-details-marker { display: none; }
.wizard-svc-group-head:hover { background: var(--bg-hover); }

.wizard-svc-group-chevron {
    color: var(--text-3);
    transition: transform 0.25s var(--ease);
    flex-shrink: 0;
}

.wizard-svc-group[open] .wizard-svc-group-chevron {
    transform: rotate(90deg);
}

.wizard-svc-group-icon {
    width: 44px;
    height: 44px;
    border-radius: var(--radius-sm);
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent) 20%, transparent),
        color-mix(in srgb, #6366F1 20%, transparent));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    flex-shrink: 0;
}

.wizard-svc-group-info {
    min-width: 0;
}

.wizard-svc-group-name {
    font-size: 14.5px;
    font-weight: 800;
    color: var(--text);
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wizard-svc-group-meta {
    font-size: 11.5px;
    font-weight: 600;
    color: var(--text-3);
    margin-top: 2px;
}

/* ─── Children (indented) ─── */
.wizard-svc-row-child {
    margin-inline-start: var(--space-md);
    margin-inline-end: 6px;
    margin-bottom: 6px;
    border-radius: var(--radius-sm);
    border-width: 1.5px;
    padding: var(--space-sm) var(--space-sm);
}

.wizard-svc-row-child:last-child {
    margin-bottom: var(--space-sm);
}

.wizard-svc-row-child .wizard-svc-thumb {
    width: 48px;
    height: 48px;
    font-size: 18px;
}

@media (max-width: 480px) {
    .wizard-svc-row-child {
        margin-inline-start: 12px;
    }
    .wizard-svc-row-child .wizard-svc-thumb {
        width: 42px;
        height: 42px;
    }
}


/* ─── Group badge در wizard ─── */
.wizard-svc-group-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: var(--r-pill);
    background: color-mix(in srgb, var(--accent) 12%, transparent);
    color: var(--accent);
    font-size: 10px;
    font-weight: 800;
    flex-shrink: 0;
    letter-spacing: 0.02em;
}

/* ─── گروه: non-clickable ─── */
.wizard-svc-group {
    cursor: default;
}

.wizard-svc-group-head {
    cursor: pointer;
    user-select: none;
}

/* ─── Group meta با بازه قیمت ─── */
.wizard-svc-group-meta {
    font-size: 11.5px;
    font-weight: 600;
    color: var(--text-3);
    margin-top: 2px;
    line-height: 1.5;
}

/* ─── Group card badge ─── */
.svc-card-badge-group {
    position: absolute;
    top: 10px;
    inset-inline-start: 10px;
    padding: 3px 10px;
    background: linear-gradient(135deg, #6366F1, #8B5CF6);
    color: #fff;
    border-radius: var(--r-pill);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.02em;
    z-index: 2;
    box-shadow: 0 2px 8px rgba(99, 102, 241, 0.4);
}

/* ─── Group card: کمی متمایز ─── */
.svc-card-group {
    background: linear-gradient(135deg,
        color-mix(in srgb, #6366F1 4%, var(--bg)) 0%,
        var(--bg) 60%);
}
.svc-card-group:hover {
    box-shadow: 0 12px 32px -8px rgba(99, 102, 241, 0.2);
}

/* ─── "از" قبل از قیمت ─── */
.svc-card-price-from {
    font-size: 11px;
    color: var(--text-3);
    font-weight: 600;
    margin-inline-end: 2px;
}

/* ─── Wizard back to all services ─── */
.wizard-back-to-all {
    margin-bottom: var(--space-md);
}

.wizard-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--r-pill);
    color: var(--text-2);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    transition: all var(--dur) var(--ease);
}

.wizard-back-btn:hover {
    background: var(--bg-subtle);
    border-color: var(--text-3);
    color: var(--text);
    transform: translateX(2px);
}

/* ═══════════════════════════════════════════════════════════════
   WIZARD — Section Headers (گروه‌ها / خدمات مستقل)
   ═══════════════════════════════════════════════════════════════ */

.wizard-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-sm);
    padding: 0 4px 10px;
    margin-bottom: 4px;
    border-bottom: 1px solid var(--border);
}

.wizard-section-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--text-2);
    letter-spacing: 0.01em;
}

.wizard-section-count {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-4);
    background: var(--bg-subtle);
    padding: 3px 10px;
    border-radius: var(--r-pill);
}

/* ─── گروه‌ها کمی متمایز ─── */
.wizard-svc-group {
    margin-top: 8px;
}

.wizard-svc-group:first-of-type {
    margin-top: 0;
}



.wizard-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 14px 9px 10px;
    background: var(--bg);
    border: 1.5px solid var(--border);
    border-radius: var(--r-pill);
    color: var(--text-2);
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: all var(--dur) var(--ease);
    white-space: nowrap;
    flex-shrink: 0;
    scroll-snap-align: start;
    user-select: none;
    position: relative;
}

.wizard-chip:hover {
    border-color: var(--border-2);
    background: var(--bg-subtle);
    transform: translateY(-1px);
}

.wizard-chip.active {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
    box-shadow: 0 4px 14px color-mix(in srgb, var(--accent) 30%, transparent);
}

.wizard-chip-icon {
    font-size: 14px;
    line-height: 1;
}

.wizard-chip-label {
    line-height: 1;
    font-weight: 700;
}

.wizard-chip-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    background: var(--bg-subtle);
    color: var(--text-3);
    border-radius: var(--r-pill);
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    transition: all var(--dur) var(--ease);
}

.wizard-chip.active .wizard-chip-count {
    background: rgba(255, 255, 255, 0.25);
    color: #fff;
}

.wizard-chip-all {
    padding-inline-start: 12px;
}

/* ─── Group tag روی هر سرویس ─── */
.wizard-svc-row {
    position: relative;
}

.wizard-svc-group-tag {
    position: absolute;
    top: 6px;
    inset-inline-end: 8px;
    font-size: 9.5px;
    font-weight: 800;
    color: var(--text-4);
    background: var(--bg-subtle);
    padding: 2px 7px;
    border-radius: var(--r-pill);
    letter-spacing: 0.02em;
    z-index: 1;
    pointer-events: none;
}

.wizard-svc-row-child .wizard-svc-group-tag {
    display: none;
}

@media (max-width: 480px) {
    .wizard-chip {
        padding: 8px 12px 8px 8px;
        font-size: 12.5px;
    }
    .wizard-chip-count {
        min-width: 18px;
        height: 18px;
        font-size: 10px;
    }
    .wizard-svc-group-tag {
        display: none;
    }
}


/* ═══════════════════════════════════════════════════════════════
   WIZARD — GROUP CHIPS (Grid · Wrap · No Scroll)
   ═══════════════════════════════════════════════════════════════ */

.wizard-group-chips {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 140px), 1fr));
    gap: 8px;
    padding: 4px 0 18px;
    margin-bottom: 8px;
    border-bottom: 1px solid var(--border);
}

/* در موبایل ۲ ستونه */
@media (max-width: 520px) {
    .wizard-group-chips {
        grid-template-columns: repeat(2, 1fr);
        gap: 6px;
    }
}

.wizard-chip {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: var(--bg);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-md);
    color: var(--text);
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: all var(--dur) var(--ease);
    user-select: none;
    text-align: start;
    min-width: 0;
    position: relative;
    overflow: hidden;
}

.wizard-chip::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent) 8%, transparent),
        transparent 60%);
    opacity: 0;
    transition: opacity 0.3s var(--ease);
    pointer-events: none;
}

.wizard-chip:hover {
    border-color: var(--border-2);
    background: var(--bg-subtle);
    transform: translateY(-1px);
    box-shadow: var(--shadow-xs);
}

.wizard-chip:hover::before {
    opacity: 1;
}

.wizard-chip.active {
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    border-color: var(--accent);
    color: #fff;
    box-shadow: 0 6px 18px color-mix(in srgb, var(--accent) 35%, transparent);
    transform: translateY(-1px);
}

.wizard-chip.active::before {
    opacity: 0;
}

.wizard-chip-icon {
    font-size: 16px;
    line-height: 1;
    flex-shrink: 0;
}

.wizard-chip-label {
    line-height: 1.3;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.wizard-chip-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    background: var(--bg-subtle);
    color: var(--text-3);
    border-radius: var(--r-pill);
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    flex-shrink: 0;
    transition: all var(--dur) var(--ease);
}

.wizard-chip.active .wizard-chip-count {
    background: rgba(255, 255, 255, 0.25);
    color: #fff;
}

.wizard-chip-all {
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--text) 4%, var(--bg)),
        var(--bg));
    border-color: var(--border-2);
}

@media (max-width: 400px) {
    .wizard-chip {
        padding: 9px 10px;
        font-size: 12px;
        gap: 6px;
    }
    .wizard-chip-icon {
        font-size: 14px;
    }
    .wizard-chip-count {
        min-width: 20px;
        height: 20px;
        font-size: 10px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   HOME — GROUP CHIPS (Filter)
   ═══════════════════════════════════════════════════════════════ */

.home-group-chips {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 130px), 1fr));
    gap: 8px;
    padding: 4px 0 20px;
    margin-bottom: 8px;
    border-bottom: 1px solid var(--border);
}

@media (max-width: 520px) {
    .home-group-chips {
        grid-template-columns: repeat(2, 1fr);
        gap: 6px;
    }
}

.home-chip {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    padding: 11px 13px;
    background: var(--bg);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-md);
    color: var(--text);
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: all var(--dur) var(--ease);
    user-select: none;
    text-align: start;
    min-width: 0;
    position: relative;
    overflow: hidden;
}

.home-chip::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent) 8%, transparent),
        transparent 60%);
    opacity: 0;
    transition: opacity 0.3s var(--ease);
    pointer-events: none;
}

.home-chip:hover {
    border-color: var(--border-2);
    background: var(--bg-subtle);
    transform: translateY(-1px);
    box-shadow: var(--shadow-xs);
}

.home-chip:hover::before { opacity: 1; }

.home-chip.active {
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    border-color: var(--accent);
    color: #fff;
    box-shadow: 0 6px 18px color-mix(in srgb, var(--accent) 35%, transparent);
    transform: translateY(-1px);
}

.home-chip.active::before { opacity: 0; }

.home-chip-icon {
    font-size: 16px;
    line-height: 1;
    flex-shrink: 0;
}

.home-chip-label {
    line-height: 1.3;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.home-chip-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    background: var(--bg-subtle);
    color: var(--text-3);
    border-radius: var(--r-pill);
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    flex-shrink: 0;
    transition: all var(--dur) var(--ease);
}

.home-chip.active .home-chip-count {
    background: rgba(255, 255, 255, 0.25);
    color: #fff;
}

.home-chip-all {
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--text) 4%, var(--bg)),
        var(--bg));
    border-color: var(--border-2);
}

/* ─── Tag گروه روی کارت سرویس ─── */
.svc-card-group-tag {
    position: absolute;
    top: 10px;
    inset-inline-end: 10px;
    font-size: 9.5px;
    font-weight: 800;
    color: var(--text-3);
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(8px);
    padding: 3px 9px;
    border-radius: var(--r-pill);
    letter-spacing: 0.02em;
    z-index: 2;
    pointer-events: none;
    box-shadow: 0 2px 6px rgba(0,0,0,0.06);
}

@media (max-width: 480px) {
    .home-chip {
        padding: 10px 10px;
        font-size: 12px;
        gap: 6px;
    }
    .home-chip-icon { font-size: 14px; }
    .home-chip-count {
        min-width: 20px;
        height: 20px;
        font-size: 10px;
    }
    .svc-card-group-tag {
        font-size: 9px;
        padding: 2px 7px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   HOME — PREMIUM GROUP CARDS (iOS App Library Style)
   ═══════════════════════════════════════════════════════════════ */

.home-group-chips {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 12px;
    padding: 8px 0 24px;
    margin-bottom: 12px;
}

@media (max-width: 640px) {
    .home-group-chips {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }
}

@media (max-width: 400px) {
    .home-group-chips {
        gap: 8px;
    }
}

.home-chip {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 22px 14px 18px;
    background: var(--bg);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-lg);
    color: var(--text);
    font-family: inherit;
    cursor: pointer;
    transition: all 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
    user-select: none;
    text-align: center;
    min-width: 0;
    overflow: hidden;
    isolation: isolate;
}

/* Mesh gradient background on hover */
.home-chip::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 30% 0%, color-mix(in srgb, var(--accent) 20%, transparent), transparent 55%),
        radial-gradient(circle at 70% 100%, color-mix(in srgb, #6366F1 18%, transparent), transparent 55%);
    opacity: 0;
    transition: opacity 0.4s var(--ease);
    pointer-events: none;
    z-index: -1;
}

.home-chip:hover {
    border-color: var(--border-2);
    transform: translateY(-4px);
    box-shadow:
        0 16px 40px -12px rgba(0, 0, 0, 0.15),
        0 4px 12px rgba(0, 0, 0, 0.04);
}

.home-chip:hover::before {
    opacity: 1;
}

/* Active state */
.home-chip.active {
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    border-color: transparent;
    color: #fff;
    box-shadow:
        0 20px 40px -12px color-mix(in srgb, var(--accent) 50%, transparent),
        0 8px 20px color-mix(in srgb, var(--accent) 25%, transparent);
    transform: translateY(-4px);
}

.home-chip.active::before {
    opacity: 0;
}

/* ─── Icon bubble ─── */
.home-chip-icon {
    position: relative;
    width: 52px;
    height: 52px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    line-height: 1;
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent) 12%, var(--bg-subtle)),
        color-mix(in srgb, #6366F1 10%, var(--bg-subtle)));
    border: 1px solid color-mix(in srgb, var(--accent) 15%, transparent);
    flex-shrink: 0;
    transition: all 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

.home-chip:hover .home-chip-icon {
    transform: scale(1.08) rotate(-4deg);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.6),
        0 8px 20px color-mix(in srgb, var(--accent) 20%, transparent);
}

.home-chip.active .home-chip-icon {
    background: rgba(255, 255, 255, 0.25);
    border-color: rgba(255, 255, 255, 0.35);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3);
    transform: scale(1.06);
}

/* ─── Label ─── */
.home-chip-label {
    font-size: 13.5px;
    font-weight: 800;
    color: inherit;
    line-height: 1.3;
    letter-spacing: -0.01em;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    max-width: 100%;
    padding: 0 4px;
    min-height: 2.6em;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

/* ─── Count badge (absolute top-right) ─── */
.home-chip-count {
    position: absolute;
    top: 10px;
    inset-inline-end: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 8px;
    background: var(--bg-subtle);
    color: var(--text-3);
    border-radius: var(--r-pill);
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    transition: all 0.3s var(--ease);
    z-index: 2;
}

.home-chip:hover .home-chip-count {
    background: var(--accent);
    color: #fff;
    transform: scale(1.1);
}

.home-chip.active .home-chip-count {
    background: rgba(255, 255, 255, 0.3);
    color: #fff;
    backdrop-filter: blur(8px);
}

/* ─── All chip (🏠 همه) ─── */
.home-chip-all .home-chip-icon {
    background: linear-gradient(135deg, #222, #444);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
}

.home-chip-all:hover .home-chip-icon {
    transform: scale(1.08) rotate(4deg);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.3);
}

.home-chip-all.active .home-chip-icon {
    background: rgba(255, 255, 255, 0.25);
}

/* ─── Responsive ─── */
@media (max-width: 480px) {
    .home-chip {
        padding: 18px 10px 14px;
        gap: 10px;
    }
    .home-chip-icon {
        width: 44px;
        height: 44px;
        font-size: 20px;
        border-radius: 13px;
    }
    .home-chip-label {
        font-size: 12.5px;
        min-height: 2.4em;
    }
    .home-chip-count {
        top: 8px;
        inset-inline-end: 8px;
        min-width: 22px;
        height: 22px;
        font-size: 10px;
    }
}

@media (max-width: 360px) {
    .home-chip {
        padding: 16px 8px 12px;
    }
    .home-chip-icon {
        width: 40px;
        height: 40px;
        font-size: 18px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   SERVICES — Split Card (Mobile-First · Overflow-Safe)
   ═══════════════════════════════════════════════════════════════ */

.services-split {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin-bottom: var(--space-lg);
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

@media (min-width: 768px) {
    .services-split {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }
}

@media (min-width: 1280px) {
    .services-split {
        gap: 20px;
    }
}

/* ─── Card base ─── */
.svc-card {
    display: grid;
    grid-template-columns: 100px minmax(0, 1fr);
    gap: 0;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: all 0.3s var(--ease);
    position: relative;
    isolation: isolate;
    min-height: 120px;
    min-width: 0;
    max-width: 100%;
    width: 100%;
}

.svc-card:hover {
    border-color: var(--border-2);
    box-shadow: 0 12px 32px -8px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}

/* ─── Image side ─── */
.svc-card-image {
    position: relative;
    overflow: hidden;
    background: var(--bg-subtle);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 36px;
    min-width: 0;
}

.svc-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s var(--ease);
}

.svc-card:hover .svc-card-image img {
    transform: scale(1.08);
}

/* ─── Body side ─── */
.svc-card-body {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 14px 16px;
    gap: 10px;
    min-width: 0;
    max-width: 100%;
}

.svc-card-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--text);
    letter-spacing: -0.01em;
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    word-break: break-word;
    min-width: 0;
}

.svc-card-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    color: var(--text-3);
    font-weight: 600;
    flex-wrap: wrap;
    min-width: 0;
}

.svc-card-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ─── Footer (Grid برای جلوگیری از تداخل) ─── */
.svc-card-footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    margin-top: auto;
    min-width: 0;
}

.svc-card-price {
    display: flex;
    align-items: baseline;
    gap: 3px;
    min-width: 0;
    flex-wrap: nowrap;
    overflow: hidden;
}

.svc-card-price-value {
    font-size: 15px;
    font-weight: 800;
    color: var(--text);
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
    transition: color var(--dur) var(--ease);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.svc-card:hover .svc-card-price-value {
    color: var(--accent);
}

.svc-card-price-unit {
    font-size: 10px;
    color: var(--text-4);
    font-weight: 600;
    white-space: nowrap;
}

.svc-card-price-from {
    font-size: 10.5px;
    color: var(--text-3);
    font-weight: 600;
    margin-inline-end: 2px;
}

.svc-card-arrow {
    width: 28px;
    height: 28px;
    min-width: 28px;
    border-radius: 50%;
    background: var(--bg-subtle);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-2);
    flex-shrink: 0;
    transition: all 0.3s var(--ease);
    align-self: end;
}

.svc-card:hover .svc-card-arrow {
    background: var(--accent);
    color: #fff;
    transform: translateX(-4px);
}

/* ─── Badges ─── */
.svc-card-badge {
    position: absolute;
    top: 8px;
    inset-inline-start: 8px;
    padding: 3px 8px;
    background: var(--accent);
    color: #fff;
    border-radius: var(--r-pill);
    font-size: 9px;
    font-weight: 800;
    z-index: 2;
    box-shadow: 0 2px 8px rgba(255, 56, 92, 0.35);
    white-space: nowrap;
}

.svc-card-group-tag {
    position: absolute;
    top: 8px;
    inset-inline-end: 8px;
    font-size: 9px;
    font-weight: 800;
    color: var(--text-3);
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(8px);
    padding: 3px 8px;
    border-radius: var(--r-pill);
    z-index: 2;
    pointer-events: none;
    box-shadow: 0 2px 6px rgba(0,0,0,0.06);
    max-width: 90px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ═══ Featured Card ═══ */
@media (min-width: 768px) {
    .svc-card.featured {
        grid-column: 1 / -1;
        grid-template-columns: minmax(180px, 30%) minmax(0, 1fr);
        min-height: 200px;
    }
    .svc-card.featured .svc-card-image {
        font-size: 56px;
    }
    .svc-card.featured .svc-card-name {
        font-size: 20px;
        -webkit-line-clamp: 3;
    }
    .svc-card.featured .svc-card-price-value {
        font-size: 24px;
    }
    .svc-card.featured .svc-card-body {
        padding: 22px 24px;
        gap: 14px;
    }
}

/* ═══ Mobile tweaks ═══ */
@media (max-width: 640px) {
    .services-split {
        gap: 10px;
    }
    .svc-card {
        grid-template-columns: 88px minmax(0, 1fr);
        min-height: 104px;
        border-radius: var(--radius-md);
    }
    .svc-card-image {
        font-size: 30px;
    }
    .svc-card-body {
        padding: 12px 14px;
        gap: 8px;
    }
    .svc-card-name {
        font-size: 13px;
    }
    .svc-card-price-value {
        font-size: 14px;
    }
    .svc-card-arrow {
        width: 26px;
        height: 26px;
        min-width: 26px;
    }
    .svc-card-footer {
        gap: 8px;
    }

    /* Featured در موبایل مثل بقیه */
    .svc-card.featured {
        grid-template-columns: 88px minmax(0, 1fr);
        min-height: 104px;
    }
    .svc-card.featured .svc-card-name {
        font-size: 13px;
        -webkit-line-clamp: 2;
    }
    .svc-card.featured .svc-card-price-value {
        font-size: 14px;
    }
    .svc-card.featured .svc-card-body {
        padding: 12px 14px;
    }
    .svc-card.featured .svc-card-image {
        font-size: 30px;
    }
}

@media (max-width: 380px) {
    .svc-card {
        grid-template-columns: 76px minmax(0, 1fr);
        min-height: 96px;
    }
    .svc-card-body {
        padding: 10px 12px;
        gap: 6px;
    }
    .svc-card-name {
        font-size: 12.5px;
    }
    .svc-card-price-value {
        font-size: 13px;
    }
    .svc-card-arrow {
        width: 24px;
        height: 24px;
    }
    .svc-card-arrow svg {
        width: 12px;
        height: 12px;
    }
    .svc-card-badge,
    .svc-card-group-tag {
        font-size: 8.5px;
        padding: 2px 6px;
    }
}

/* Global overflow protection */
.services-split > * {
    min-width: 0;
}

/* ═══════════════════════════════════════════════════════════════
   WIZARD — PREMIUM GROUP CARDS (iOS Style · Same as Home)
   ═══════════════════════════════════════════════════════════════ */

.wizard-group-chips {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 12px;
    padding: 8px 0 22px;
    margin-bottom: 14px;
}

@media (max-width: 640px) {
    .wizard-group-chips {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }
}

@media (max-width: 400px) {
    .wizard-group-chips {
        gap: 8px;
    }
}

.wizard-chip {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 18px 12px 14px;
    background: var(--bg);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-lg);
    color: var(--text);
    font-family: inherit;
    cursor: pointer;
    transition: all 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
    user-select: none;
    text-align: center;
    min-width: 0;
    overflow: hidden;
    isolation: isolate;
}

.wizard-chip::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 30% 0%, color-mix(in srgb, var(--accent) 20%, transparent), transparent 55%),
        radial-gradient(circle at 70% 100%, color-mix(in srgb, #6366F1 18%, transparent), transparent 55%);
    opacity: 0;
    transition: opacity 0.4s var(--ease);
    pointer-events: none;
    z-index: -1;
}

.wizard-chip:hover {
    border-color: var(--border-2);
    transform: translateY(-4px);
    box-shadow:
        0 16px 40px -12px rgba(0, 0, 0, 0.15),
        0 4px 12px rgba(0, 0, 0, 0.04);
}

.wizard-chip:hover::before { opacity: 1; }

.wizard-chip.active {
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    border-color: transparent;
    color: #fff;
    box-shadow:
        0 20px 40px -12px color-mix(in srgb, var(--accent) 50%, transparent),
        0 8px 20px color-mix(in srgb, var(--accent) 25%, transparent);
    transform: translateY(-4px);
}

.wizard-chip.active::before { opacity: 0; }

/* ─── Icon bubble ─── */
.wizard-chip-icon {
    position: relative;
    width: 46px;
    height: 46px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    line-height: 1;
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent) 12%, var(--bg-subtle)),
        color-mix(in srgb, #6366F1 10%, var(--bg-subtle)));
    border: 1px solid color-mix(in srgb, var(--accent) 15%, transparent);
    flex-shrink: 0;
    transition: all 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

.wizard-chip:hover .wizard-chip-icon {
    transform: scale(1.08) rotate(-4deg);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.6),
        0 8px 20px color-mix(in srgb, var(--accent) 20%, transparent);
}

.wizard-chip.active .wizard-chip-icon {
    background: rgba(255, 255, 255, 0.25);
    border-color: rgba(255, 255, 255, 0.35);
    transform: scale(1.06);
}

/* ─── Label ─── */
.wizard-chip-label {
    font-size: 13px;
    font-weight: 800;
    color: inherit;
    line-height: 1.3;
    letter-spacing: -0.01em;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    max-width: 100%;
    padding: 0 4px;
    min-height: 2.4em;
    word-break: break-word;
}

/* ─── Count badge ─── */
.wizard-chip-count {
    position: absolute;
    top: 9px;
    inset-inline-end: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    background: var(--bg-subtle);
    color: var(--text-3);
    border-radius: var(--r-pill);
    font-size: 10.5px;
    font-weight: 800;
    line-height: 1;
    transition: all 0.3s var(--ease);
    z-index: 2;
}

.wizard-chip:hover .wizard-chip-count {
    background: var(--accent);
    color: #fff;
    transform: scale(1.1);
}

.wizard-chip.active .wizard-chip-count {
    background: rgba(255, 255, 255, 0.3);
    color: #fff;
    backdrop-filter: blur(8px);
}

/* ─── All chip ─── */
.wizard-chip-all .wizard-chip-icon {
    background: linear-gradient(135deg, #222, #444);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
}

.wizard-chip-all:hover .wizard-chip-icon {
    transform: scale(1.08) rotate(4deg);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.3);
}

.wizard-chip-all.active .wizard-chip-icon {
    background: rgba(255, 255, 255, 0.25);
}

/* ─── Responsive ─── */
@media (max-width: 480px) {
    .wizard-chip {
        padding: 16px 8px 12px;
        gap: 8px;
    }
    .wizard-chip-icon {
        width: 40px;
        height: 40px;
        font-size: 18px;
        border-radius: 12px;
    }
    .wizard-chip-label {
        font-size: 12px;
        min-height: 2.3em;
    }
    .wizard-chip-count {
        top: 7px;
        inset-inline-end: 7px;
        min-width: 20px;
        height: 20px;
        font-size: 10px;
    }
}

@media (max-width: 360px) {
    .wizard-chip {
        padding: 14px 6px 10px;
    }
    .wizard-chip-icon {
        width: 36px;
        height: 36px;
        font-size: 16px;
    }
    .wizard-chip-label {
        font-size: 11.5px;
    }
}

/* ─── Global overflow guard ─── */
.wizard-group-chips > * {
    min-width: 0;
}
.wizard-svc-list,
.wizard-svc-row {
    min-width: 0;
    max-width: 100%;
}


/* ═══ Mobile Small — Arrow کوچیک‌تر (نه مخفی) ═══ */
@media (max-width: 480px) {
    .svc-card-arrow {
        width: 24px;
        height: 24px;
        min-width: 24px;
    }
    .svc-card-arrow svg {
        width: 11px;
        height: 11px;
    }
}

@media (max-width: 380px) {
    .svc-card-arrow {
        width: 22px;
        height: 22px;
        min-width: 22px;
    }
    .svc-card-arrow svg {
        width: 10px;
        height: 10px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   WIZARD — Multi-Service Cart + Selected States
   ═══════════════════════════════════════════════════════════════ */

/* ─── Service selected state ─── */
.wizard-svc-row {
    position: relative;
    transition: all var(--dur) var(--ease);
}

.wizard-svc-row.selected {
    border-color: var(--accent);
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent) 8%, var(--bg)),
        color-mix(in srgb, var(--accent) 4%, var(--bg)));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);
}

.wizard-svc-row.selected .wizard-svc-radio {
    background: var(--accent);
    border-color: var(--accent);
    transform: scale(1.1);
}

.wizard-svc-row.selected .wizard-svc-radio::after {
    content: '✓';
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
}

.wizard-svc-row.selected .wizard-svc-name {
    color: var(--accent);
}

/* ─── Cart bar ─── */
.wizard-cart {
    position: sticky;
    bottom: 84px;
    z-index: 50;
    margin-top: 16px;
    padding: 14px 18px;
    background: linear-gradient(135deg, #222, #1a1a1a);
    color: #fff;
    border-radius: var(--radius-lg);
    box-shadow:
        0 12px 32px -8px rgba(0,0,0,0.25),
        0 4px 12px rgba(0,0,0,0.15);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    transition: all 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
    transform: translateY(0);
    opacity: 1;
}

.wizard-cart.hidden {
    transform: translateY(20px);
    opacity: 0;
    pointer-events: none;
    margin-top: 0;
    padding-top: 0;
    padding-bottom: 0;
    max-height: 0;
    overflow: hidden;
    transition: all 0.3s var(--ease);
}

.wizard-cart-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    flex: 1;
}

.wizard-cart-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 700;
    color: rgba(255,255,255,0.75);
}

.wizard-cart-count-wrap {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.wizard-cart-icon {
    font-size: 15px;
    line-height: 1;
}

.wizard-cart-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    background: var(--accent);
    color: #fff;
    border-radius: var(--r-pill);
    font-size: 12px;
    font-weight: 900;
}

.wizard-cart-label {
    color: #fff;
    font-weight: 700;
}

.wizard-cart-sep {
    opacity: 0.4;
}

.wizard-cart-duration {
    color: rgba(255,255,255,0.7);
    font-size: 12.5px;
    font-weight: 600;
}

.wizard-cart-price {
    font-size: 18px;
    font-weight: 900;
    letter-spacing: -0.02em;
    color: #fff;
    font-variant-numeric: tabular-nums;
    display: flex;
    align-items: baseline;
    gap: 4px;
    white-space: nowrap;
}

.wizard-cart-price small {
    font-size: 10.5px;
    color: rgba(255,255,255,0.5);
    font-weight: 600;
}

/* ─── Summary List (multi-service) ─── */
.wizard-summary-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 8px 0;
    margin: 4px 0;
    border-top: 1px dashed var(--border);
    border-bottom: 1px dashed var(--border);
}

.wizard-summary-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    font-size: 12.5px;
    padding: 3px 0;
    min-width: 0;
}

.wizard-summary-item-name {
    color: var(--text-2);
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.wizard-summary-item-meta {
    color: var(--text-4);
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
}

/* ─── Step 4 Service Chain ─── */
.wizard-step-services {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 12px 0;
    padding: 12px;
    background: var(--bg-subtle);
    border-radius: var(--radius-md);
    border: 1px solid var(--border);
}

.wizard-step-service-item {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    background: var(--bg);
    border-radius: var(--radius-sm);
    min-width: 0;
}

.wizard-step-service-num {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 900;
    flex-shrink: 0;
}

.wizard-step-service-info {
    min-width: 0;
}

.wizard-step-service-name {
    font-size: 13px;
    font-weight: 700;
    color: var(--text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wizard-step-service-meta {
    font-size: 11px;
    color: var(--text-3);
    font-weight: 600;
    margin-top: 2px;
}

.wizard-step-service-price {
    font-size: 12.5px;
    font-weight: 800;
    color: var(--text);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    text-align: end;
}

.wizard-step-service-price small {
    font-size: 9.5px;
    color: var(--text-4);
    font-weight: 600;
}

/* ─── Mobile adjustments ─── */
@media (max-width: 480px) {
    .wizard-cart {
        bottom: 80px;
        padding: 12px 14px;
        margin-top: 12px;
    }
    .wizard-cart-price {
        font-size: 16px;
    }
    .wizard-cart-row {
        font-size: 12px;
    }
}

/* در دسکتاپ cart کنار sidebar */
@media (min-width: 1024px) {
    .wizard-cart {
        display: none;
    }
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Add to Cart Button + Cart Bar
   ═══════════════════════════════════════════════════════════════ */

/* ─── Home Cart Bar ─── */




@keyframes homeCartIn {
    from { transform: translateY(120%); opacity: 0; }
    to   { transform: translateY(0); opacity: 1; }
}





















/* ─── وقتی cart بازه، sticky-cta مخفی ─── */


/* ─── دسکتاپ: cart کنار ثابت ─── */
@media (min-width: 1024px) {
    
}

/* ─── موبایل کوچیک ─── */
@media (max-width: 400px) {
    
    
    
    
    .svc-card-add {
        width: 26px;
        height: 26px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   ADMIN RESERVATIONS — Multi-Service Chain Cards
   ═══════════════════════════════════════════════════════════════ */

/* روی کارت master */
.res-card.is-multi {
    position: relative;
}

.res-card.is-multi::before {
    content: '';
    position: absolute;
    inset-inline-start: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: linear-gradient(180deg, var(--accent), #6366F1);
    border-radius: 4px 0 0 4px;
}

.res-card-multi-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px;
    background: linear-gradient(135deg, var(--accent), #6366F1);
    color: #fff;
    border-radius: var(--r-pill);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.02em;
}

/* زنجیره خدمات */
.res-chain {
    margin-top: 12px;
    padding: 10px;
    background: rgba(0, 0, 0, 0.15);
    border-radius: var(--radius-sm);
    display: flex;
    flex-direction: column;
    gap: 6px;
    position: relative;
}

.res-chain-item {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 6px 8px;
    background: rgba(255, 255, 255, 0.03);
    border-radius: 8px;
    position: relative;
    min-width: 0;
}

.res-chain-item:not(:last-child)::after {
    content: '';
    position: absolute;
    bottom: -6px;
    inset-inline-start: 19px;
    width: 2px;
    height: 6px;
    background: rgba(255, 255, 255, 0.15);
}

.res-chain-num {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 900;
    flex-shrink: 0;
}

.res-chain-info {
    min-width: 0;
}

.res-chain-name {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.res-chain-time {
    font-size: 10.5px;
    color: var(--text-3);
    font-weight: 600;
    direction: ltr;
    margin-top: 1px;
}

.res-chain-price {
    font-size: 11.5px;
    font-weight: 800;
    color: var(--text);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    text-align: end;
}

/* ═══ LIGHT THEME — اگه پنل ادمین روشن بود ═══ */
@media (prefers-color-scheme: light) {
    .res-chain {
        background: rgba(0, 0, 0, 0.04);
    }
    .res-chain-item {
        background: var(--bg);
    }
    .res-chain-item:not(:last-child)::after {
        background: var(--border);
    }
}

/* ═══════════════════════════════════════════════════════════════
   ADMIN MODAL — Service Chain
   ═══════════════════════════════════════════════════════════════ */

.modal-chain {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px;
    background: var(--bg-subtle);
    border-radius: var(--radius-md);
    border: 1px solid var(--border);
}

.modal-chain-item {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    background: var(--bg);
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    min-width: 0;
    transition: all 0.2s var(--ease);
}

.modal-chain-item:hover {
    border-color: var(--border-2);
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}

.modal-chain-num {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--accent), #6366F1);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 900;
    flex-shrink: 0;
}

.modal-chain-info {
    min-width: 0;
}

.modal-chain-name {
    font-size: 13px;
    font-weight: 700;
    color: var(--text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.modal-chain-time {
    font-size: 11px;
    color: var(--text-3);
    font-weight: 600;
    margin-top: 3px;
    font-variant-numeric: tabular-nums;
}

.modal-chain-price {
    font-size: 12.5px;
    font-weight: 800;
    color: var(--text);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    text-align: end;
    flex-shrink: 0;
}

.modal-chain-price small {
    font-size: 9.5px;
    color: var(--text-4);
    font-weight: 600;
}

@media (max-width: 480px) {
    .modal-chain-item {
        grid-template-columns: 24px minmax(0, 1fr);
        gap: 8px;
        padding: 8px 10px;
    }
    .modal-chain-num {
        width: 24px;
        height: 24px;
        font-size: 11px;
    }
    .modal-chain-price {
        grid-column: 2;
        font-size: 11.5px;
        text-align: start;
        margin-top: 4px;
    }
    .modal-chain-name {
        font-size: 12.5px;
    }
}

/* ═══ Hub — Create Card ═══ */
.hub-card-create {
    border-style: dashed !important;
    border-color: rgba(255,255,255,0.15) !important;
}
.hub-card-create:hover {
    border-style: solid !important;
    border-color: rgba(255,255,255,0.3) !important;
}

.hub-card-status.create {
    background: rgba(99, 102, 241, 0.15);
    color: #a5b4fc;
    border: 1px solid rgba(99, 102, 241, 0.3);
}
.hub-card-booking .hub-card-status.create {
    background: rgba(236, 72, 153, 0.15);
    color: #f9a8d4;
    border-color: rgba(236, 72, 153, 0.3);
}

/* ═══════════════════════════════════════════════════════════════
   WIZARD — Intake Fields (فیلدهای سفارشی)
   ═══════════════════════════════════════════════════════════════ */

.intake-section {
    margin-top: var(--space-md);
    padding: var(--space-md);
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent) 4%, var(--bg-subtle)),
        var(--bg-subtle));
    border: 1px solid color-mix(in srgb, var(--accent) 15%, transparent);
    border-radius: var(--radius-md);
}

.intake-section-header {
    font-size: 13.5px;
    font-weight: 800;
    color: var(--text);
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 1px dashed color-mix(in srgb, var(--accent) 25%, transparent);
    display: flex;
    align-items: center;
    gap: 8px;
}

.intake-section .field:last-child {
    margin-bottom: 0;
}

.intake-hint {
    font-size: 11.5px;
    color: var(--text-3);
    font-weight: 500;
    margin-top: 5px;
    line-height: 1.6;
}

.intake-checkbox-label {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    background: var(--bg);
    border: 1.5px solid var(--border-2);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all var(--dur) var(--ease);
    font-size: 14px;
    font-weight: 600;
    color: var(--text-2);
}

.intake-checkbox-label:hover {
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent) 4%, var(--bg));
}

.intake-checkbox-label input[type="checkbox"] {
    width: 20px;
    height: 20px;
    accent-color: var(--accent);
    cursor: pointer;
    flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════════════════
   MODAL — Intake Data Display
   ═══════════════════════════════════════════════════════════════ */

.intake-modal-box {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px;
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent) 6%, var(--bg-subtle)),
        var(--bg-subtle));
    border: 1px solid color-mix(in srgb, var(--accent) 20%, transparent);
    border-radius: var(--radius-md);
}

.intake-modal-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
    align-items: start;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px dashed var(--border);
    font-size: 13px;
    min-width: 0;
}

.intake-modal-row:last-child { border-bottom: none; }

.intake-modal-label {
    color: var(--text-3);
    font-weight: 700;
    font-size: 12.5px;
}

.intake-modal-value {
    color: var(--text);
    font-weight: 700;
    text-align: end;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
    word-break: break-word;
}

@media (max-width: 480px) {
    .intake-modal-row {
        grid-template-columns: 1fr;
        gap: 4px;
    }
    .intake-modal-value {
        text-align: start;
    }
}

/* ═══════════════════════════════════════════════════════════════
   MY BOOKINGS — Customer Page
   ═══════════════════════════════════════════════════════════════ */

.mb-header {
    padding: 4px 0 20px;
    margin-bottom: 8px;
    border-bottom: 1px solid var(--border);
}

.mb-title {
    font-size: clamp(22px, 3vw, 30px);
    font-weight: 900;
    color: var(--text);
    letter-spacing: -0.02em;
    display: flex;
    align-items: center;
    gap: 10px;
    line-height: 1.2;
}

.mb-title-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    padding: 0 10px;
    background: var(--accent);
    color: #fff;
    border-radius: var(--r-pill);
    font-size: 13px;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
}

.mb-sub {
    font-size: 13.5px;
    color: var(--text-3);
    font-weight: 500;
    margin-top: 6px;
}

/* ─── Section ─── */
.mb-section {
    margin-bottom: 32px;
}

.mb-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.mb-section-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--text);
    display: flex;
    align-items: center;
    gap: 8px;
}

.mb-section-icon {
    font-size: 16px;
}

.mb-section-count {
    font-size: 11.5px;
    font-weight: 700;
    color: var(--text-4);
    background: var(--bg-subtle);
    padding: 4px 10px;
    border-radius: var(--r-pill);
}

/* ─── List ─── */
.mb-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* ─── Card ─── */
.mb-card {
    position: relative;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: all var(--dur) var(--ease);
    isolation: isolate;
}

.mb-card:hover {
    border-color: var(--border-2);
    box-shadow: 0 12px 32px -8px rgba(0, 0, 0, 0.08);
    transform: translateY(-2px);
}

.mb-card-status-bar {
    position: absolute;
    top: 0;
    inset-inline-start: 0;
    width: 4px;
    height: 100%;
    border-radius: 4px 0 0 4px;
}

.mb-card.is-multi {
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent) 3%, var(--bg)) 0%,
        var(--bg) 50%);
    border-color: color-mix(in srgb, var(--accent) 20%, var(--border));
}

.mb-card.is-multi::after {
    content: '🔗';
    position: absolute;
    top: 10px;
    inset-inline-end: 10px;
    font-size: 14px;
    opacity: 0.4;
    z-index: 2;
}

/* ─── Card Head ─── */
.mb-card-head {
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: start;
    padding: 16px 16px 12px;
    padding-inline-start: 20px;
    min-width: 0;
}

.mb-card-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 8px 6px;
    background: var(--bg-subtle);
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    flex-shrink: 0;
    min-width: 68px;
}

.mb-card-day {
    font-size: 22px;
    font-weight: 900;
    color: var(--text);
    line-height: 1;
    letter-spacing: -0.02em;
}

.mb-card-month {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-3);
    line-height: 1.2;
}

.mb-card-today-badge {
    margin-top: 4px;
    padding: 2px 8px;
    background: var(--success);
    color: #fff;
    border-radius: var(--r-pill);
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.mb-card-today-badge.tomorrow {
    background: var(--warning);
}

/* ─── Info ─── */
.mb-card-info {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.mb-card-multi-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    background: linear-gradient(135deg, var(--accent), #6366F1);
    color: #fff;
    border-radius: var(--r-pill);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: 0.02em;
    align-self: flex-start;
}

.mb-card-multi-badge.small {
    padding: 3px 8px;
    font-size: 9.5px;
}

.mb-card-services {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.mb-card-service-line {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.mb-card-service-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--accent-soft);
    color: var(--accent);
    font-size: 10px;
    font-weight: 900;
    flex-shrink: 0;
}

.mb-card-service-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.mb-card-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    font-size: 11.5px;
    color: var(--text-3);
    font-weight: 600;
}

.mb-card-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-variant-numeric: tabular-nums;
}

/* ─── Status ─── */
.mb-card-status {
    padding: 5px 10px;
    border-radius: var(--r-pill);
    font-size: 10.5px;
    font-weight: 800;
    white-space: nowrap;
    align-self: start;
    flex-shrink: 0;
    letter-spacing: 0.01em;
}

/* ─── Card Foot ─── */
.mb-card-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 20px;
    background: var(--bg-subtle);
    border-top: 1px solid var(--border);
    min-width: 0;
}

.mb-card-tracking {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    min-width: 0;
}

.mb-card-tracking-label {
    color: var(--text-4);
    font-weight: 600;
    font-size: 11px;
}

.mb-card-tracking-code {
    font-family: 'Courier New', monospace;
    font-size: 12.5px;
    font-weight: 800;
    color: var(--text);
    letter-spacing: 0.05em;
    direction: ltr;
}

.mb-card-copy {
    width: 22px;
    height: 22px;
    border-radius: 6px;
    background: transparent;
    border: 1px solid var(--border);
    color: var(--text-3);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--dur) var(--ease);
    padding: 0;
}

.mb-card-copy:hover {
    background: var(--bg);
    color: var(--accent);
    border-color: var(--accent);
}

.mb-card-price {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    flex-shrink: 0;
}

.mb-card-price-value {
    font-size: 15px;
    font-weight: 900;
    color: var(--text);
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.01em;
}

.mb-card-price-unit {
    font-size: 10px;
    color: var(--text-4);
    font-weight: 600;
}

/* ─── Actions ─── */
.mb-card-actions {
    display: flex;
    gap: 8px;
    padding: 10px 20px 14px;
    border-top: 1px solid var(--border);
    background: var(--bg-subtle);
}

.mb-card-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 8px 14px;
    border-radius: var(--radius-sm);
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 700;
    border: 1px solid var(--border);
    background: var(--bg);
    color: var(--text-2);
    cursor: pointer;
    transition: all var(--dur) var(--ease);
    white-space: nowrap;
}

.mb-card-btn:hover {
    border-color: var(--border-2);
    background: var(--bg-hover);
}

.mb-card-btn.cancel {
    color: var(--danger);
    border-color: color-mix(in srgb, var(--danger) 25%, transparent);
    background: color-mix(in srgb, var(--danger) 4%, var(--bg));
}

.mb-card-btn.cancel:hover {
    background: var(--danger);
    border-color: var(--danger);
    color: #fff;
}

/* ─── Past Cards ─── */
.mb-list.past {
    opacity: 0.85;
}

.mb-list.past .mb-card:hover {
    opacity: 1;
}

.past-card {
    background: color-mix(in srgb, var(--bg) 60%, var(--bg-subtle));
}

/* ─── Mobile ─── */
@media (max-width: 640px) {
    .mb-card-head {
        grid-template-columns: 56px minmax(0, 1fr);
        gap: 10px;
        padding: 14px 14px 10px;
        padding-inline-start: 16px;
    }
    .mb-card-status {
        grid-column: 1 / -1;
        grid-row: 2;
        justify-self: start;
        margin-top: 4px;
    }
    .mb-card-date {
        min-width: 56px;
        padding: 6px 4px;
    }
    .mb-card-day { font-size: 18px; }
    .mb-card-month { font-size: 10px; }
    .mb-card-today-badge { font-size: 8.5px; padding: 2px 6px; }
    .mb-card-service-name { font-size: 13px; }
    .mb-card-foot {
        padding: 10px 14px;
        padding-inline-start: 16px;
    }
    .mb-card-price-value { font-size: 14px; }
    .mb-card-tracking-code { font-size: 11.5px; }
    .mb-card-actions {
        padding: 8px 14px 12px;
        padding-inline-start: 16px;
    }
}

@media (max-width: 380px) {
    .mb-card-head {
        grid-template-columns: 50px minmax(0, 1fr);
        gap: 8px;
    }
    .mb-card-date { min-width: 50px; }
    .mb-card-day { font-size: 16px; }
    .mb-card-tracking-label { display: none; }
}

/* ─── Calendar day states ─── */
.calendar-day.day-closed {
    color: var(--text-4);
    background: color-mix(in srgb, var(--danger) 5%, transparent);
    cursor: not-allowed;
    text-decoration: line-through;
}

.calendar-day.day-too-long {
    color: var(--text-4);
    background: color-mix(in srgb, var(--warning) 8%, transparent);
    cursor: not-allowed;
}

.calendar-day.day-past {
    color: var(--text-4);
    opacity: 0.4;
    cursor: not-allowed;
}

/* ─── Today notice ─── */
.slot-today-notice {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: color-mix(in srgb, var(--warning) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--warning) 25%, transparent);
    border-radius: var(--radius-sm);
    color: var(--warning);
    font-size: 12.5px;
    font-weight: 700;
    margin-bottom: 14px;
    line-height: 1.6;
}



/* ═══════════════════════════════════════════════════════════════
   HOME — Service Selection (نسخه نهایی و تمیز)
   ═══════════════════════════════════════════════════════════════ */

.svc-card {
    cursor: pointer;
    user-select: none;
    position: relative;
}

/* دایره انتخاب — سمت چپ در RTL */

/* تیک انتخاب — سمت چپ در RTL */

/* حالت انتخاب‌شده */





/* ═══ Home Cart Bar ═══ */
to   { transform: translateY(0); opacity: 1; }
}

/* دسکتاپ */
@media (min-width: 1024px) {
    }

/* موبایل کوچک */
@media (max-width: 480px) {
    }

/* ═══════════════════════════════════════════════════════════════
   HOME — Card Selection + Cart Bar (نسخه نهایی)
   ═══════════════════════════════════════════════════════════════ */

.svc-card {
    cursor: pointer;
    user-select: none;
    position: relative;
    transition: all 0.25s cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* ═══ دایره انتخاب (سمت چپ در RTL) ═══ */
.svc-card::before {
    content: '';
    position: absolute;
    top: 10px;
    inset-inline-end: 10px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 2px solid rgba(34, 34, 34, 0.25);
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    z-index: 10;
    pointer-events: none;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
    box-sizing: border-box;
}

/* ═══ تیک انتخاب ═══ */
.svc-card::after {
    content: '✓';
    position: absolute;
    top: 10px;
    inset-inline-end: 10px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 14px;
    font-weight: 900;
    line-height: 1;
    background: var(--accent);
    border: 2px solid var(--accent);
    opacity: 0;
    transform: scale(0.4);
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    z-index: 11;
    pointer-events: none;
    box-shadow: 0 4px 12px color-mix(in srgb, var(--accent) 40%, transparent);
    box-sizing: border-box;
}

/* ═══ hover ═══ */
.svc-card:hover::before {
    border-color: var(--accent);
    transform: scale(1.08);
}

/* ═══ حالت انتخاب‌شده — کل کادر رنگی ═══ */
.svc-card.selected {
    border-color: var(--accent) !important;
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent) 8%, var(--bg)),
        color-mix(in srgb, var(--accent) 4%, var(--bg))) !important;
    box-shadow:
        0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent),
        0 12px 28px -8px color-mix(in srgb, var(--accent) 30%, transparent) !important;
    transform: translateY(-2px);
}

.svc-card.selected::before {
    opacity: 0;
    transform: scale(0.4);
}

.svc-card.selected::after {
    opacity: 1;
    transform: scale(1);
}

.svc-card.selected .svc-card-name {
    color: var(--accent);
}

.svc-card.selected .svc-card-price-value {
    color: var(--accent);
}

.svc-card.selected .svc-card-arrow {
    background: var(--accent);
    color: #fff;
}

/* ═══ Cart Bar ═══ */
@keyframes homeCartSlide {
    from { transform: translateY(120%); opacity: 0; }
    to   { transform: translateY(0); opacity: 1; }
}

.sticky-cta.hidden-by-cart { display: none !important; }

/* دسکتاپ */
@media (min-width: 1024px) {
    }

/* موبایل */
@media (max-width: 480px) {
    .svc-card::before,
    .svc-card::after {
        width: 22px;
        height: 22px;
    }
    .svc-card.selected::after {
        font-size: 12px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   HOME CART BAR — بازطراحی با layout درست
   ═══════════════════════════════════════════════════════════════ */

.home-cart {
    position: fixed;
    bottom: calc(72px + 12px);
    left: 12px;
    right: 12px;
    z-index: 85;
    background: linear-gradient(135deg, #1a1a1a, #2a2a2a);
    color: #fff;
    border-radius: 20px;
    padding: 12px;
    display: flex;
    align-items: center;
    gap: 10px;
    box-shadow:
        0 20px 40px -10px rgba(0, 0, 0, 0.5),
        0 8px 16px rgba(0, 0, 0, 0.3);
    animation: homeCartSlide 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
    border: 1px solid rgba(255, 255, 255, 0.1);
    max-width: 100%;
    box-sizing: border-box;
    direction: rtl;
}

.home-cart.hidden { display: none; }

@keyframes homeCartSlide {
    from { transform: translateY(120%); opacity: 0; }
    to   { transform: translateY(0); opacity: 1; }
}

/* ═══ Info section (flex column) ═══ */
.home-cart-info {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    overflow: hidden;
}

.home-cart-icon {
    width: 40px;
    height: 40px;
    border-radius: 11px;
    background: rgba(255, 255, 255, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}

.home-cart-details {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
    overflow: hidden;
}

.home-cart-line {
    font-size: 11.5px;
    color: rgba(255, 255, 255, 0.65);
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
}

.home-cart-line strong {
    color: var(--accent);
    font-weight: 800;
}

.home-cart-dot {
    opacity: 0.4;
    flex-shrink: 0;
}

.home-cart-price {
    font-size: 15px;
    font-weight: 900;
    letter-spacing: -0.02em;
    display: flex;
    align-items: baseline;
    gap: 3px;
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
    white-space: nowrap;
    color: #fff;
}

.home-cart-price small {
    font-size: 9.5px;
    color: rgba(255, 255, 255, 0.5);
    font-weight: 600;
    flex-shrink: 0;
}

/* ═══ دکمه ادامه ═══ */
.home-cart-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 11px 16px;
    background: var(--accent);
    color: #fff;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
    transition: all 0.2s var(--ease);
    box-shadow: 0 6px 18px color-mix(in srgb, var(--accent) 40%, transparent);
    flex-shrink: 0;
    border: none;
    cursor: pointer;
    font-family: inherit;
    line-height: 1;
    height: 42px;
}

.home-cart-btn:hover {
    background: var(--accent-2);
    transform: translateY(-1px) scale(1.02);
}

.home-cart-btn svg {
    flex-shrink: 0;
}

.sticky-cta.hidden-by-cart { display: none !important; }

/* ═══ دسکتاپ ═══ */
@media (min-width: 1024px) {
    .home-cart {
        bottom: 24px;
        left: 50%;
        right: auto;
        transform: translateX(-50%);
        max-width: 520px;
        width: calc(100% - 48px);
    }
}

/* ═══ موبایل کوچیک ═══ */
@media (max-width: 420px) {
    .home-cart {
        bottom: calc(72px + 8px);
        left: 8px;
        right: 8px;
        padding: 10px;
        gap: 8px;
        border-radius: 16px;
    }
    .home-cart-info {
        gap: 8px;
    }
    .home-cart-icon {
        width: 36px;
        height: 36px;
        font-size: 16px;
        border-radius: 10px;
    }
    .home-cart-details {
        gap: 2px;
    }
    .home-cart-line {
        font-size: 10.5px;
    }
    .home-cart-price {
        font-size: 13.5px;
    }
    .home-cart-price small {
        font-size: 9px;
    }
    .home-cart-btn {
        padding: 10px 14px;
        font-size: 12px;
        height: 38px;
    }
}

/* ═══ موبایل خیلی کوچیک ═══ */
@media (max-width: 360px) {
    .home-cart-icon {
        display: none;
    }
    .home-cart-btn {
        padding: 10px 12px;
        font-size: 11.5px;
    }
    .home-cart-btn span {
        display: none;
    }
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Gallery Lightbox + Reviews
   ═══════════════════════════════════════════════════════════════ */

/* ─── Trust pill button ─── */
.trust-pill-btn {
    cursor: pointer;
    background: var(--bg);
    border: 1px solid var(--border);
    transition: all var(--dur) var(--ease);
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-2);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: var(--r-pill);
}
.trust-pill-btn:hover {
    border-color: var(--accent);
    color: var(--accent);
    background: color-mix(in srgb, var(--accent) 6%, var(--bg));
}

/* ─── Reviews section ─── */
.reviews-avg-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: #fff;
    border-radius: var(--r-pill);
    font-size: 12px;
    font-weight: 800;
    margin-inline-start: 8px;
    vertical-align: middle;
    box-shadow: 0 3px 10px rgba(251, 191, 36, 0.35);
}
.reviews-avg-badge .star {
    font-size: 13px;
    line-height: 1;
}

.section-count {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-3);
    background: var(--bg-subtle);
    padding: 5px 12px;
    border-radius: var(--r-pill);
}

.reviews-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
    gap: 14px;
    margin-bottom: 32px;
}

.review-card {
    position: relative;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 18px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: all var(--dur) var(--ease);
    overflow: hidden;
}

.review-card:hover {
    border-color: var(--border-2);
    box-shadow: 0 12px 28px -8px rgba(0, 0, 0, 0.08);
    transform: translateY(-2px);
}

.review-card.featured {
    background: linear-gradient(135deg,
        color-mix(in srgb, #fbbf24 6%, var(--bg)),
        var(--bg) 60%);
    border-color: color-mix(in srgb, #fbbf24 30%, transparent);
}

.review-featured-badge {
    position: absolute;
    top: 10px;
    inset-inline-end: 10px;
    padding: 3px 9px;
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: #fff;
    border-radius: var(--r-pill);
    font-size: 9.5px;
    font-weight: 800;
    box-shadow: 0 2px 8px rgba(251, 191, 36, 0.35);
    letter-spacing: 0.02em;
}

.review-head {
    display: flex;
    align-items: center;
    gap: 12px;
}

.review-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--accent), #6366F1);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 900;
    flex-shrink: 0;
    box-shadow: 0 4px 12px color-mix(in srgb, var(--accent) 25%, transparent);
}

.review-info {
    min-width: 0;
    flex: 1;
}

.review-name {
    font-size: 14px;
    font-weight: 800;
    color: var(--text);
    line-height: 1.3;
    margin-bottom: 3px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.review-stars {
    display: inline-flex;
    gap: 1px;
    font-size: 14px;
    line-height: 1;
}

.review-stars .star-full { color: #fbbf24; }
.review-stars .star-empty { color: var(--border-2); }

.review-comment {
    font-size: 13px;
    line-height: 1.85;
    color: var(--text-2);
    padding: 12px 14px;
    background: var(--bg-subtle);
    border-radius: var(--radius-sm);
    border-inline-start: 3px solid var(--border-2);
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
}

.review-card.featured .review-comment {
    border-inline-start-color: #fbbf24;
}

.review-reply {
    font-size: 12.5px;
    line-height: 1.75;
    color: var(--text-2);
    padding: 10px 14px;
    background: color-mix(in srgb, var(--accent) 5%, transparent);
    border-inline-start: 3px solid var(--accent);
    border-radius: 8px;
}

.review-reply-label {
    font-size: 11px;
    font-weight: 800;
    color: var(--accent);
    margin-bottom: 4px;
}

.review-date {
    font-size: 11px;
    color: var(--text-4);
    font-weight: 600;
    margin-top: auto;
    padding-top: 4px;
}

/* ─── Gallery Lightbox ─── */
.gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 500;
    background: rgba(0, 0, 0, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    display: none;
    align-items: center;
    justify-content: center;
    animation: fadeIn 0.3s ease;
}
.gallery-lightbox.open { display: flex; }

@keyframes fadeIn { from { opacity: 0; } }

.lightbox-content {
    max-width: 92vw;
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    position: relative;
    animation: zoomIn 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes zoomIn { from { opacity: 0; transform: scale(0.9); } }

.lightbox-content img {
    max-width: 100%;
    max-height: 78vh;
    border-radius: 12px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.8);
    object-fit: contain;
    display: block;
}

.lightbox-caption {
    color: rgba(255, 255, 255, 0.9);
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    max-width: 80%;
}

.lightbox-counter {
    position: absolute;
    bottom: -40px;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255, 255, 255, 0.5);
    font-size: 12.5px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.lightbox-close {
    position: absolute;
    top: 24px;
    inset-inline-end: 24px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    font-size: 20px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    z-index: 10;
}
.lightbox-close:hover { background: #fff; color: #000; }

.lightbox-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    z-index: 10;
}
.lightbox-nav:hover { background: #fff; color: #000; }
.lightbox-nav.prev { inset-inline-end: 24px; }
.lightbox-nav.next { inset-inline-start: 24px; }

@media (max-width: 640px) {
    .lightbox-nav {
        width: 40px;
        height: 40px;
    }
    .lightbox-nav.prev { inset-inline-end: 12px; }
    .lightbox-nav.next { inset-inline-start: 12px; }
    .lightbox-close {
        top: 14px;
        inset-inline-end: 14px;
        width: 38px;
        height: 38px;
        font-size: 16px;
    }
    .lightbox-content img {
        max-height: 70vh;
        border-radius: 8px;
    }
    .reviews-grid {
        grid-template-columns: 1fr;
    }
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Hero Actions (کارت‌های آماری حرفه‌ای)
   ═══════════════════════════════════════════════════════════════ */



@media (min-width: 768px) {
    
}

/* ─── کارت ─── */


/* Mesh gradient on hover */
.hero-action::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 20% 0%,
        color-mix(in srgb, var(--accent) 12%, transparent),
        transparent 55%);
    opacity: 0;
    transition: opacity 0.35s var(--ease);
    pointer-events: none;
    z-index: -1;
}

.hero-action:hover {
    border-color: var(--border-2);
    transform: translateY(-2px);
    box-shadow:
        0 8px 20px -6px rgba(0, 0, 0, 0.1),
        0 2px 6px rgba(0, 0, 0, 0.04);
}

.hero-action:hover::before { opacity: 1; }

/* ─── غیرفعال (static) ─── */






/* ─── Icon bubble ─── */


.hero-action:hover 

/* ─── رنگ Icon per action ─── */
.hero-action-gallery 

.hero-action-reviews 

/* ─── Body ─── */






/* ─── Arrow ─── */


.hero-action:hover 

/* ─── Responsive ─── */
@media (max-width: 480px) {
    
    
    
    
    
}

@media (max-width: 360px) {
    
    
}

/* ─── مخفی کردن trust-row قدیمی (اگه جایی مونده) ─── */
.hero .trust-row {
    display: none;
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Hero Actions (لیست تمیز)
   ═══════════════════════════════════════════════════════════════ */



/* ─── ردیف‌های کلیک‌پذیر (گالری / نظرات) ─── */




/* hover gradient متفاوت per type */








/* ─── Icon ─── */


.hero-action-row-icon.gallery {
    background: linear-gradient(135deg,
        color-mix(in srgb, #ec4899 22%, var(--bg-subtle)),
        color-mix(in srgb, #a855f7 15%, var(--bg-subtle)));
    border: 1px solid color-mix(in srgb, #ec4899 25%, transparent);
}

.hero-action-row-icon.reviews {
    background: linear-gradient(135deg,
        color-mix(in srgb, #fbbf24 25%, var(--bg-subtle)),
        color-mix(in srgb, #f59e0b 15%, var(--bg-subtle)));
    border: 1px solid color-mix(in srgb, #fbbf24 30%, transparent);
}



.hero-quick-tag-link {
    cursor: pointer;
}

.hero-quick-tag-link:hover {
    border-color: var(--accent);
    color: var(--accent);
    background: color-mix(in srgb, var(--accent) 6%, var(--bg));
}

.hero-quick-tag-icon {
    font-size: 14px;
    line-height: 1;
}

.hero-quick-tag-text {
    line-height: 1;
}

/* ─── Responsive ─── */
@media (max-width: 480px) {
    
    
    
    
    
    
}

/* ═══ مخفی کردن trust-row قدیمی ═══ */
.hero .trust-row {
    display: none;
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Hero List (زیر آواتار، داخل ستون info)
   ═══════════════════════════════════════════════════════════════ */



/* ─── ردیف کلیک‌پذیر ─── */


.hero-list-row::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,
        color-mix(in srgb, var(--accent) 6%, transparent),
        transparent 60%);
    opacity: 0;
    transition: opacity 0.3s var(--ease);
    pointer-events: none;
    z-index: -1;
}





/* ─── Icon ─── */












/* ─── Responsive ─── */
@media (max-width: 768px) {
    
    
    
    
    
    
}

/* ═══ مخفی کردن trust-row قدیمی ═══ */
.hero .trust-row {
    display: none;
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Hero List (زیر hero-content، تمام عرض)
   ═══════════════════════════════════════════════════════════════ */



/* ─── ردیف کلیک‌پذیر ─── */


.hero-list-row::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,
        color-mix(in srgb, var(--accent) 6%, transparent),
        transparent 60%);
    opacity: 0;
    transition: opacity 0.3s var(--ease);
    pointer-events: none;
    z-index: -1;
}





/* ─── Icon ─── */












/* ─── Responsive ─── */
@media (max-width: 768px) {
    
    
    
    
    
    
}

@media (max-width: 480px) {
    
    
    
    
    
}

/* ═══ مخفی کردن trust-row قدیمی ═══ */
.hero .trust-row {
    display: none;
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Hero List (داخل hero-info، راست‌چین در RTL)
   ═══════════════════════════════════════════════════════════════ */



/* ─── ردیف ─── */




/* ─── Icon ─── */


.hero-list-row-icon.gallery {
    background: linear-gradient(135deg,
        color-mix(in srgb, #ec4899 22%, var(--bg-subtle)),
        color-mix(in srgb, #a855f7 15%, var(--bg-subtle))) !important;
    border: 1px solid color-mix(in srgb, #ec4899 25%, transparent) !important;
}

.hero-list-row-icon.reviews {
    background: linear-gradient(135deg,
        color-mix(in srgb, #fbbf24 25%, var(--bg-subtle)),
        color-mix(in srgb, #f59e0b 15%, var(--bg-subtle))) !important;
    border: 1px solid color-mix(in srgb, #fbbf24 30%, transparent) !important;
}



/* ─── Responsive ─── */
@media (max-width: 640px) {
    
    
    
    
    
    
}

/* مخفی کردن trust-row قدیمی */
.hero .trust-row {
    display: none !important;
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Hero دو ستونه (info + actions)
   ═══════════════════════════════════════════════════════════════ */







.hero-actions {
    grid-area: actions !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    margin-top: 12px !important;
    min-width: 0 !important;
}

/* ─── کارت ─── */








/* ─── Icon ─── */







    
    .hero-actions {
        grid-template-columns: 1fr !important;
        gap: 6px !important;
        margin-top: 10px !important;
    }
    
    
    
    
}

/* ─── موبایل خیلی کوچیک ─── */
@media (max-width: 420px) {
    
    
    
    
}

/* مخفی کردن trust-row قدیمی */
.hero .trust-row {
    display: none !important;
}

/* ═══ Hero Action Icons — رنگ‌های خاص ═══ */








/* ═══════════════════════════════════════════════════════════════
   HOME — Quick Actions (کارت‌های تماس/مسیر/شبکه‌های اجتماعی)
   ═══════════════════════════════════════════════════════════════ */



@media (min-width: 640px) {
    
}



.quick-action:hover {
    border-color: var(--border-2);
    transform: translateY(-3px);
    box-shadow:
        0 12px 28px -8px rgba(0, 0, 0, 0.12),
        0 4px 8px rgba(0, 0, 0, 0.04);
}



/* رنگ هر آیکون */
.quick-action-icon-phone {
    background: linear-gradient(135deg, rgba(59, 130, 246, 0.2), rgba(37, 99, 235, 0.12));
    border: 1px solid rgba(59, 130, 246, 0.25);
    color: #3b82f6;
}

.quick-action-icon-map {
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.2), rgba(5, 150, 105, 0.12));
    border: 1px solid rgba(16, 185, 129, 0.25);
    color: #10b981;
}

.quick-action-icon-instagram {
    background: linear-gradient(135deg, rgba(225, 48, 108, 0.2), rgba(131, 58, 180, 0.15));
    border: 1px solid rgba(225, 48, 108, 0.25);
    color: #e1306c;
}

.quick-action-icon-whatsapp {
    background: linear-gradient(135deg, rgba(37, 211, 102, 0.22), rgba(18, 140, 126, 0.12));
    border: 1px solid rgba(37, 211, 102, 0.3);
    color: #25d366;
}

.quick-action:hover 







/* ─── Responsive ─── */
@media (max-width: 480px) {
    
    
    
    
    
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Hero Contact Icons (گوشه چپ hero-info)
   ═══════════════════════════════════════════════════════════════ */











/* ─── رنگ هر آیکون ─── */
.hero-contact-phone:hover {
    background: #3b82f6;
    border-color: #3b82f6;
    color: #fff;
    box-shadow: 0 6px 16px rgba(59, 130, 246, 0.4);
}

.hero-contact-whatsapp:hover {
    background: #25d366;
    border-color: #25d366;
    color: #fff;
    box-shadow: 0 6px 16px rgba(37, 211, 102, 0.4);
}

.hero-contact-map:hover {
    background: #10b981;
    border-color: #10b981;
    color: #fff;
    box-shadow: 0 6px 16px rgba(16, 185, 129, 0.4);
}

.hero-contact-instagram:hover {
    background: linear-gradient(135deg, #e1306c, #833ab4);
    border-color: #e1306c;
    color: #fff;
    box-shadow: 0 6px 16px rgba(225, 48, 108, 0.4);
}

/* ─── موبایل ─── */
@media (max-width: 640px) {
    
    
    
    
}

@media (max-width: 420px) {
    
    
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Hero Info: ستون آیکون‌ها + متن
   ═══════════════════════════════════════════════════════════════ */



/* ─── ستون آیکون‌ها (اول در DOM = راست در RTL) ─── */






.hero-contact-phone:hover {
    background: #3b82f6 !important;
    border-color: #3b82f6 !important;
    color: #fff !important;
    box-shadow: 0 6px 16px rgba(59, 130, 246, 0.4) !important;
}

.hero-contact-whatsapp:hover {
    background: #25d366 !important;
    border-color: #25d366 !important;
    color: #fff !important;
    box-shadow: 0 6px 16px rgba(37, 211, 102, 0.4) !important;
}

.hero-contact-map:hover {
    background: #10b981 !important;
    border-color: #10b981 !important;
    color: #fff !important;
    box-shadow: 0 6px 16px rgba(16, 185, 129, 0.4) !important;
}

.hero-contact-instagram:hover {
    background: linear-gradient(135deg, #e1306c, #833ab4) !important;
    border-color: #e1306c !important;
    color: #fff !important;
    box-shadow: 0 6px 16px rgba(225, 48, 108, 0.4) !important;
}

/* ─── متن ─── */


/* ─── Responsive ─── */
@media (max-width: 640px) {
    
    
    
    
}

@media (max-width: 420px) {
    
    
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Avatar Wrap (آواتار + آیکون‌ها زیر آن)
   ═══════════════════════════════════════════════════════════════ */

.hero-avatar-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}



/* ─── آیکون‌ها زیر آواتار ─── */






.hero-contact-phone:hover {
    background: #3b82f6;
    border-color: #3b82f6;
    color: #fff;
    box-shadow: 0 6px 16px rgba(59, 130, 246, 0.4);
}

.hero-contact-whatsapp:hover {
    background: #25d366;
    border-color: #25d366;
    color: #fff;
    box-shadow: 0 6px 16px rgba(37, 211, 102, 0.4);
}

.hero-contact-map:hover {
    background: #10b981;
    border-color: #10b981;
    color: #fff;
    box-shadow: 0 6px 16px rgba(16, 185, 129, 0.4);
}

.hero-contact-instagram:hover {
    background: linear-gradient(135deg, #e1306c, #833ab4);
    border-color: #e1306c;
    color: #fff;
    box-shadow: 0 6px 16px rgba(225, 48, 108, 0.4);
}

/* ─── Responsive ─── */
@media (max-width: 768px) {
    .hero-avatar-wrap {
        gap: 8px;
    }
    
    
    
    
}

@media (max-width: 480px) {
    .hero-avatar-wrap {
        gap: 6px;
    }
    
    
    
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Quick Actions (دکمه‌های بزرگ با افکت 3D)
   ═══════════════════════════════════════════════════════════════ */



@media (min-width: 640px) {
    
}



/* ─── Hover: 3D lift + border color ─── */
.quick-action:hover {
    transform: translateY(-4px);
    box-shadow:
        0 16px 32px -8px rgba(0, 0, 0, 0.15),
        0 6px 12px rgba(0, 0, 0, 0.06),
        inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

/* ─── Icon ─── */


/* hover: bigger rotation + scale */
.quick-action:hover 

/* ─── رنگ هر آیکون ─── */
.quick-action-icon-phone {
    background: linear-gradient(135deg, #60a5fa, #3b82f6);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.3);
}
.quick-action:hover .quick-action-icon-phone {
    box-shadow: 0 8px 24px rgba(59, 130, 246, 0.5), inset 0 2px 4px rgba(255, 255, 255, 0.4);
}

.quick-action-icon-map {
    background: linear-gradient(135deg, #34d399, #10b981);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.3);
}
.quick-action:hover .quick-action-icon-map {
    box-shadow: 0 8px 24px rgba(16, 185, 129, 0.5), inset 0 2px 4px rgba(255, 255, 255, 0.4);
}

.quick-action-icon-instagram {
    background: linear-gradient(135deg, #f472b6, #e1306c, #833ab4);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.3);
}
.quick-action:hover .quick-action-icon-instagram {
    box-shadow: 0 8px 24px rgba(225, 48, 108, 0.5), inset 0 2px 4px rgba(255, 255, 255, 0.4);
}

.quick-action-icon-whatsapp {
    background: linear-gradient(135deg, #4ade80, #25d366);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.3);
}
.quick-action:hover .quick-action-icon-whatsapp {
    box-shadow: 0 8px 24px rgba(37, 211, 102, 0.5), inset 0 2px 4px rgba(255, 255, 255, 0.4);
}

/* ─── Body ─── */






/* ─── Responsive ─── */
@media (max-width: 480px) {
    
    
    
    
    
    
}

@media (max-width: 380px) {
    
    
    
    
    
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Quick Actions (ستون عمودی زیر آواتار)
   ═══════════════════════════════════════════════════════════════ */

.hero-avatar-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
    min-width: 130px;
}

/* ─── لیست عمودی ─── */
.quick-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    max-width: 160px;
    margin-top: 4px;
}

.quick-action {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    background: var(--bg);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-md);
    text-decoration: none;
    color: inherit;
    transition: all 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
    min-width: 0;
    position: relative;
    overflow: hidden;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
    width: 100%;
    box-sizing: border-box;
}

.quick-action:hover {
    transform: translateY(-3px);
    box-shadow:
        0 12px 24px -6px rgba(0, 0, 0, 0.15),
        0 4px 8px rgba(0, 0, 0, 0.06);
}

/* ─── Icon ─── */
.quick-action-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
    box-shadow:
        inset 0 2px 3px rgba(255, 255, 255, 0.4),
        inset 0 -2px 3px rgba(0, 0, 0, 0.05),
        0 3px 8px rgba(0, 0, 0, 0.08);
}

.quick-action:hover .quick-action-icon {
    transform: scale(1.12) rotate(-8deg);
}

.quick-action-icon svg {
    width: 16px;
    height: 16px;
}

/* ─── رنگ‌ها ─── */
.quick-action-icon-phone {
    background: linear-gradient(135deg, #60a5fa, #3b82f6);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.3);
}
.quick-action:hover .quick-action-icon-phone {
    box-shadow: 0 6px 18px rgba(59, 130, 246, 0.5), inset 0 2px 3px rgba(255, 255, 255, 0.4);
}

.quick-action-icon-map {
    background: linear-gradient(135deg, #34d399, #10b981);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.3);
}
.quick-action:hover .quick-action-icon-map {
    box-shadow: 0 6px 18px rgba(16, 185, 129, 0.5), inset 0 2px 3px rgba(255, 255, 255, 0.4);
}

.quick-action-icon-instagram {
    background: linear-gradient(135deg, #f472b6, #e1306c, #833ab4);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.3);
}
.quick-action:hover .quick-action-icon-instagram {
    box-shadow: 0 6px 18px rgba(225, 48, 108, 0.5), inset 0 2px 3px rgba(255, 255, 255, 0.4);
}

.quick-action-icon-whatsapp {
    background: linear-gradient(135deg, #4ade80, #25d366);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.3);
}
.quick-action:hover .quick-action-icon-whatsapp {
    box-shadow: 0 6px 18px rgba(37, 211, 102, 0.5), inset 0 2px 3px rgba(255, 255, 255, 0.4);
}

/* ─── Body ─── */
.quick-action-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.quick-action-label {
    font-size: 12.5px;
    font-weight: 800;
    color: var(--text);
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.quick-action-sub {
    font-size: 10.5px;
    font-weight: 600;
    color: var(--text-3);
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

/* ─── Responsive ─── */
@media (max-width: 768px) {
    .hero-avatar-wrap {
        min-width: 110px;
        gap: 10px;
    }
    .quick-actions {
        gap: 6px;
        max-width: 130px;
    }
    .quick-action {
        padding: 8px 10px;
        gap: 8px;
    }
    .quick-action-icon {
        width: 32px;
        height: 32px;
        border-radius: 9px;
    }
    .quick-action-icon svg {
        width: 14px;
        height: 14px;
    }
    .quick-action-label {
        font-size: 11.5px;
    }
    .quick-action-sub {
        font-size: 10px;
    }
}

@media (max-width: 480px) {
    .hero-avatar-wrap {
        min-width: 90px;
        gap: 8px;
    }
    .quick-actions {
        gap: 5px;
        max-width: 110px;
    }
    .quick-action {
        padding: 7px 8px;
        gap: 6px;
        border-radius: 10px;
    }
    .quick-action-icon {
        width: 28px;
        height: 28px;
        border-radius: 8px;
    }
    .quick-action-icon svg {
        width: 12px;
        height: 12px;
    }
    .quick-action-label {
        font-size: 10.5px;
    }
    .quick-action-sub {
        font-size: 9px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Hero دو ستونه (info + actions)
   ═══════════════════════════════════════════════════════════════ */







.hero-actions {
    grid-area: actions !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    margin-top: 12px !important;
    min-width: 0 !important;
}

/* ─── کارت ─── */








/* ─── Icon ─── */








/* ─── Body ─── */






/* ─── Arrow ─── */




/* ─── موبایل ─── */
@media (max-width: 768px) {
    
    
    .hero-actions {
        grid-template-columns: 1fr !important;
        gap: 6px !important;
        margin-top: 10px !important;
    }
    
    
    
    
}

/* ─── موبایل خیلی کوچیک ─── */
@media (max-width: 420px) {
    
    
    
    
}

/* مخفی کردن trust-row قدیمی */
.hero .trust-row {
    display: none !important;
}



/* ═══════════════════════════════════════════════════════════════
   HOME — Hero Action 3D Buttons (بی‌رنگ پیش‌فرض، رنگی در hover)
   ═══════════════════════════════════════════════════════════════ */



/* ═══ Hover 3D ═══ */


/* ═══ Icon — بی‌رنگ پیش‌فرض ═══ */


/* ═══ Icon در Hover — animation ═══ */


/* ═══ رنگ‌های مخصوص در hover ═══ */

/* تماس - آبی */


/* واتساپ - سبز */


/* مسیریابی - سبز تیره */


/* اینستاگرام - صورتی/بنفش */


/* گالری - صورتی */


/* نظرات - طلایی */


/* ═══ Ripple Effect روی کارت ═══ */




/* ═══ Arrow بیشتر حرکت کنه ═══ */


/* ═══ عنوان رنگی بشه ═══ */



/* ═══════════════════════════════════════════════════════════════
   HOME — Hero Actions (دکمه‌های بزرگ مربعی 2x2)
   ═══════════════════════════════════════════════════════════════ */

.hero-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    margin-top: 20px !important;
    width: 100% !important;
    max-width: 100% !important;
}

@media (min-width: 768px) {
    .hero-actions {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }
}

/* ═══ کارت ═══ */
.hero-action-row {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    padding: 22px 14px !important;
    background: var(--bg) !important;
    border: 1.5px solid var(--border) !important;
    border-radius: var(--radius-lg) !important;
    text-decoration: none !important;
    color: inherit !important;
    font-family: inherit !important;
    cursor: pointer !important;
    transition: all 0.35s cubic-bezier(0.2, 0.8, 0.2, 1) !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    text-align: center !important;
    position: relative !important;
    overflow: hidden !important;
    isolation: isolate !important;
    aspect-ratio: 1 / 0.9 !important;
    box-shadow:
        0 2px 6px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.6) !important;
}

/* ═══ 3D Hover ═══ */
.hero-action-row:hover:not(.hero-action-static) {
    transform: translateY(-5px) !important;
    border-color: var(--border-2) !important;
    box-shadow:
        0 18px 32px -10px rgba(0, 0, 0, 0.15),
        0 8px 14px -4px rgba(0, 0, 0, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.6) !important;
}

.hero-action-static {
    cursor: default !important;
}

/* ═══ Icon Circle ═══ */
.hero-action-icon {
    width: 52px !important;
    height: 52px !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 24px !important;
    flex-shrink: 0 !important;
    background: var(--bg-subtle) !important;
    border: 1px solid var(--border) !important;
    color: var(--text-2) !important;
    transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
    box-shadow:
        inset 0 2px 4px rgba(255, 255, 255, 0.6),
        inset 0 -1px 3px rgba(0, 0, 0, 0.04) !important;
    position: relative !important;
}

.hero-action-row:hover:not(.hero-action-static) .hero-action-icon {
    transform: scale(1.15) rotate(-8deg) !important;
    color: #fff !important;
    box-shadow:
        inset 0 2px 4px rgba(255, 255, 255, 0.4),
        0 10px 24px rgba(0, 0, 0, 0.18) !important;
}

/* رنگ آیکون در hover */
.hero-action-row:has(.hero-action-icon.phone):hover .hero-action-icon {
    background: linear-gradient(135deg, #60a5fa, #3b82f6) !important;
    border-color: #3b82f6 !important;
    box-shadow:
        inset 0 2px 4px rgba(255, 255, 255, 0.4),
        0 10px 24px rgba(59, 130, 246, 0.5) !important;
}

.hero-action-row:has(.hero-action-icon.whatsapp):hover .hero-action-icon {
    background: linear-gradient(135deg, #4ade80, #25d366) !important;
    border-color: #25d366 !important;
    box-shadow:
        inset 0 2px 4px rgba(255, 255, 255, 0.4),
        0 10px 24px rgba(37, 211, 102, 0.5) !important;
}

.hero-action-row:has(.hero-action-icon.map):hover .hero-action-icon {
    background: linear-gradient(135deg, #34d399, #10b981) !important;
    border-color: #10b981 !important;
    box-shadow:
        inset 0 2px 4px rgba(255, 255, 255, 0.4),
        0 10px 24px rgba(16, 185, 129, 0.5) !important;
}

.hero-action-row:has(.hero-action-icon.instagram):hover .hero-action-icon {
    background: linear-gradient(135deg, #f472b6, #e1306c, #833ab4) !important;
    border-color: #e1306c !important;
    box-shadow:
        inset 0 2px 4px rgba(255, 255, 255, 0.4),
        0 10px 24px rgba(225, 48, 108, 0.5) !important;
}

.hero-action-row:has(.hero-action-icon.gallery):hover .hero-action-icon {
    background: linear-gradient(135deg, #f472b6, #a855f7) !important;
    border-color: #a855f7 !important;
    box-shadow:
        inset 0 2px 4px rgba(255, 255, 255, 0.4),
        0 10px 24px rgba(168, 85, 247, 0.5) !important;
}

.hero-action-row:has(.hero-action-icon.reviews):hover .hero-action-icon {
    background: linear-gradient(135deg, #fbbf24, #f59e0b) !important;
    border-color: #f59e0b !important;
    box-shadow:
        inset 0 2px 4px rgba(255, 255, 255, 0.4),
        0 10px 24px rgba(245, 158, 11, 0.5) !important;
}

/* ═══ متن — وسط ═══ */
.hero-action-body {
    min-width: 0 !important;
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 3px !important;
}

.hero-action-title {
    font-size: 13.5px !important;
    font-weight: 800 !important;
    color: var(--text) !important;
    line-height: 1.3 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    text-align: center !important;
    max-width: 100% !important;
}

.hero-action-sub {
    font-size: 11px !important;
    font-weight: 600 !important;
    color: var(--text-3) !important;
    line-height: 1.3 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    text-align: center !important;
    max-width: 100% !important;
    font-variant-numeric: tabular-nums !important;
}

/* ═══ Arrow — مخفی در این حالت ═══ */
.hero-action-arrow {
    display: none !important;
}

/* ═══ موبایل ═══ */
@media (max-width: 640px) {
    .hero-actions {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px !important;
    }
    .hero-action-row {
        padding: 18px 10px !important;
        gap: 8px !important;
        aspect-ratio: 1 / 0.95 !important;
    }
    .hero-action-icon {
        width: 46px !important;
        height: 46px !important;
        font-size: 20px !important;
    }
    .hero-action-title {
        font-size: 12.5px !important;
    }
    .hero-action-sub {
        font-size: 10.5px !important;
    }
}

@media (max-width: 380px) {
    .hero-action-row {
        padding: 14px 8px !important;
    }
    .hero-action-icon {
        width: 42px !important;
        height: 42px !important;
        font-size: 18px !important;
    }
    .hero-action-title {
        font-size: 12px !important;
    }
}

/* ═══ مخفی کردن trust-row ═══ */
.hero .trust-row {
    display: none !important;
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Hero Centered (avatar وسط روی banner)
   ═══════════════════════════════════════════════════════════════ */

.hero-content {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    padding: 0 20px !important;
    margin-top: -55px !important;
    position: relative !important;
    z-index: 5 !important;
}

/* آواتار — وسط، روی banner */
.hero-avatar {
    width: 110px !important;
    height: 110px !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    background: var(--bg-subtle) !important;
    border: 5px solid var(--bg) !important;
    box-shadow:
        0 12px 32px rgba(0, 0, 0, 0.18),
        0 4px 12px rgba(0, 0, 0, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.6) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 48px !important;
    flex-shrink: 0 !important;
    margin: 0 auto !important;
}

.hero-avatar img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

/* ═══ Info — وسط‌چین ═══ */
.hero-info {
    max-width: 640px !important;
    width: 100% !important;
    padding-top: 20px !important;
    margin: 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    min-width: 0 !important;
}

.hero-title {
    justify-content: center !important;
    text-align: center !important;
}

.hero-category {
    justify-content: center !important;
}

.hero-meta {
    justify-content: center !important;
    border-top: none !important;
    padding-top: 8px !important;
}

/* ═══ Hero Actions — وسط‌چین ═══ */
.hero-actions {
    margin: 20px auto 0 !important;
    max-width: 720px !important;
    width: 100% !important;
    padding: 0 4px !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

@media (min-width: 768px) {
    .hero-actions {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 14px !important;
        margin-top: 24px !important;
    }
}

/* ═══ موبایل ═══ */
@media (max-width: 640px) {
    .hero-content {
        margin-top: -45px !important;
        padding: 0 16px !important;
    }
    .hero-avatar {
        width: 90px !important;
        height: 90px !important;
        font-size: 40px !important;
        border-width: 4px !important;
    }
    .hero-info {
        padding-top: 16px !important;
    }
    .hero-actions {
        gap: 10px !important;
        margin-top: 18px !important;
    }
}

@media (max-width: 380px) {
    .hero-avatar {
        width: 80px !important;
        height: 80px !important;
        font-size: 34px !important;
    }
}

/* ═══ مخفی کردن trust-row ═══ */
.hero .trust-row {
    display: none !important;
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Hero Cover (وسط‌چین با محدودیت عرض)
   ═══════════════════════════════════════════════════════════════ */

.hero-cover {
    max-width: 720px !important;
    margin: 0 auto !important;
    border-radius: var(--radius-lg) !important;
    overflow: hidden !important;
    aspect-ratio: 16/9 !important;
    max-height: 360px !important;
    width: 100% !important;
    padding: 0 4px !important;
    box-sizing: border-box !important;
}

.hero-cover img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: var(--radius-lg) !important;
}

.hero-cover-placeholder {
    width: 100% !important;
    height: 100% !important;
    border-radius: var(--radius-lg) !important;
}

/* وضعیت (الان باز) روی بنر */


/* ═══ موبایل ═══ */
@media (max-width: 640px) {
    .hero-cover {
        max-width: 100% !important;
        padding: 0 16px !important;
        aspect-ratio: 16/10 !important;
        max-height: 280px !important;
    }
    
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Reviews Marquee (انیمیشن نظرات)
   ═══════════════════════════════════════════════════════════════ */

.reviews-marquee-wrap {
    margin: 40px auto 0 !important;
    max-width: 1000px !important;
    padding: 0 16px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* ═══ Head (کلیک‌پذیر) ═══ */
.reviews-marquee-head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 14px !important;
    width: 100% !important;
    padding: 14px 18px !important;
    background: linear-gradient(135deg,
        color-mix(in srgb, #fbbf24 8%, var(--bg)),
        color-mix(in srgb, #f59e0b 4%, var(--bg))) !important;
    border: 1.5px solid color-mix(in srgb, #fbbf24 25%, transparent) !important;
    border-radius: var(--radius-lg) !important;
    cursor: pointer !important;
    font-family: inherit !important;
    margin-bottom: 14px !important;
    transition: all 0.3s cubic-bezier(0.2, 0.8, 0.2, 1) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04) !important;
}

.reviews-marquee-head:hover {
    transform: translateY(-2px) !important;
    border-color: color-mix(in srgb, #fbbf24 50%, transparent) !important;
    box-shadow:
        0 12px 28px -8px rgba(251, 191, 36, 0.25),
        0 4px 8px rgba(0, 0, 0, 0.04) !important;
}

.reviews-marquee-head-info {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    min-width: 0 !important;
    flex: 1 !important;
    text-align: start !important;
}

.reviews-marquee-head-icon {
    width: 46px !important;
    height: 46px !important;
    border-radius: 13px !important;
    background: linear-gradient(135deg, #fbbf24, #f59e0b) !important;
    color: #fff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 22px !important;
    flex-shrink: 0 !important;
    box-shadow: 0 6px 16px rgba(245, 158, 11, 0.35) !important;
}

.reviews-marquee-head-title {
    font-size: 15px !important;
    font-weight: 800 !important;
    color: var(--text) !important;
    line-height: 1.3 !important;
}

.reviews-marquee-head-sub {
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--text-3) !important;
    margin-top: 3px !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    flex-wrap: wrap !important;
}

.reviews-marquee-stars {
    color: #fbbf24 !important;
    font-size: 13px !important;
    letter-spacing: 1px !important;
}

.reviews-marquee-head-arrow {
    width: 32px !important;
    height: 32px !important;
    border-radius: 50% !important;
    background: var(--bg) !important;
    border: 1px solid var(--border) !important;
    color: var(--text-2) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    transition: all 0.3s var(--ease) !important;
}

.reviews-marquee-head:hover .reviews-marquee-head-arrow {
    background: #f59e0b !important;
    border-color: #f59e0b !important;
    color: #fff !important;
    transform: translateX(-4px) !important;
}

/* ═══ Marquee container ═══ */
.reviews-marquee {
    overflow: hidden !important;
    position: relative !important;
    padding: 4px 0 20px !important;
    /* mask برای محو شدن کناره‌ها */
    -webkit-mask-image: linear-gradient(90deg,
        transparent 0%,
        #000 6%,
        #000 94%,
        transparent 100%) !important;
    mask-image: linear-gradient(90deg,
        transparent 0%,
        #000 6%,
        #000 94%,
        transparent 100%) !important;
}

.reviews-marquee-track {
    display: flex !important;
    gap: 14px !important;
    animation: reviewsScroll 60s linear infinite !important;
    will-change: transform !important;
    width: max-content !important;
}

/* ═══ انیمیشن: از چپ به راست (RTL) ═══ */
@keyframes reviewsScroll {
    from { transform: translateX(0); }
    to   { transform: translateX(50%); }
}

/* توقف در hover */
.reviews-marquee:hover .reviews-marquee-track {
    animation-play-state: paused !important;
}

/* ═══ کارت کوچک نظر ═══ */
.review-mini-card {
    flex-shrink: 0 !important;
    width: 280px !important;
    padding: 16px !important;
    background: var(--bg) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04) !important;
    transition: all 0.3s var(--ease) !important;
    position: relative !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

.review-mini-card:hover {
    border-color: var(--border-2) !important;
    box-shadow: 0 8px 20px -4px rgba(0, 0, 0, 0.08) !important;
    transform: translateY(-2px) !important;
}

.review-mini-card.featured {
    background: linear-gradient(135deg,
        color-mix(in srgb, #fbbf24 6%, var(--bg)),
        var(--bg) 70%) !important;
    border-color: color-mix(in srgb, #fbbf24 30%, transparent) !important;
}

.review-mini-card.featured::before {
    content: '⭐' !important;
    position: absolute !important;
    top: 10px !important;
    inset-inline-end: 10px !important;
    font-size: 14px !important;
    opacity: 0.7 !important;
}

.review-mini-head {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin-bottom: 10px !important;
}

.review-mini-avatar {
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    background: linear-gradient(135deg, #a855f7, #ec4899) !important;
    color: #fff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    flex-shrink: 0 !important;
    box-shadow: 0 4px 10px rgba(168, 85, 247, 0.25) !important;
}

.review-mini-info {
    min-width: 0 !important;
    flex: 1 !important;
}

.review-mini-name {
    font-size: 13px !important;
    font-weight: 800 !important;
    color: var(--text) !important;
    line-height: 1.3 !important;
    margin-bottom: 2px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.review-mini-stars {
    font-size: 11px !important;
    line-height: 1 !important;
    letter-spacing: 1px !important;
}

.review-mini-stars .star-full { color: #fbbf24 !important; }
.review-mini-stars .star-empty { color: var(--border-2) !important; }

.review-mini-comment {
    font-size: 12px !important;
    line-height: 1.7 !important;
    color: var(--text-2) !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    word-break: break-word !important;
}

/* ═══ موبایل ═══ */
@media (max-width: 640px) {
    .reviews-marquee-wrap {
        margin-top: 28px !important;
        padding: 0 12px !important;
    }
    .reviews-marquee-head {
        padding: 12px 14px !important;
    }
    .reviews-marquee-head-icon {
        width: 40px !important;
        height: 40px !important;
        font-size: 18px !important;
        border-radius: 11px !important;
    }
    .reviews-marquee-head-title {
        font-size: 14px !important;
    }
    .reviews-marquee-head-sub {
        font-size: 11px !important;
    }
    .review-mini-card {
        width: 240px !important;
        padding: 14px !important;
    }
    .review-mini-avatar {
        width: 36px !important;
        height: 36px !important;
        font-size: 14px !important;
    }
    .review-mini-name {
        font-size: 12.5px !important;
    }
    .review-mini-comment {
        font-size: 11.5px !important;
    }
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Review Form + Service Name in Reviews
   ═══════════════════════════════════════════════════════════════ */

/* ─── حذف badge ویژه از کارت‌های مارکی ─── */
.review-mini-card::before {
    display: none !important;
}

.review-mini-card.featured {
    background: var(--bg) !important;
    border-color: var(--border) !important;
}

/* ─── نمایش خدمت در کارت مارکی ─── */
.review-mini-service {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 10px;
    font-weight: 700;
    color: var(--accent);
    background: color-mix(in srgb, var(--accent) 8%, transparent);
    padding: 2px 8px;
    border-radius: 999px;
    margin-top: 4px;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ═══ فرم ارسال نظر ═══ */
.review-form-wrap {
    max-width: 720px;
    margin: 40px auto 30px;
    padding: 0 16px;
    box-sizing: border-box;
}

.review-form-head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
    padding: 16px 18px;
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent) 8%, var(--bg)),
        color-mix(in srgb, var(--accent) 3%, var(--bg)));
    border: 1.5px solid color-mix(in srgb, var(--accent) 20%, transparent);
    border-radius: var(--radius-lg);
}

.review-form-head-icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    flex-shrink: 0;
    box-shadow: 0 6px 16px color-mix(in srgb, var(--accent) 35%, transparent);
}

.review-form-head-title {
    font-size: 17px;
    font-weight: 800;
    color: var(--text);
    line-height: 1.3;
}

.review-form-head-sub {
    font-size: 12.5px;
    color: var(--text-3);
    font-weight: 500;
    margin-top: 3px;
}

.review-form {
    background: var(--bg);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}

.review-form-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.review-form-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--text);
    display: block;
}

.review-form-label .req {
    color: var(--danger);
}

.review-form-input,
.review-form-select,
.review-form-textarea {
    width: 100%;
    padding: 12px 14px;
    background: var(--bg-subtle);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-sm);
    color: var(--text);
    font-family: inherit;
    font-size: 14px;
    font-weight: 500;
    outline: none;
    transition: all 0.2s;
    box-sizing: border-box;
}

.review-form-input:focus,
.review-form-select:focus,
.review-form-textarea:focus {
    border-color: var(--accent);
    background: var(--bg);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);
}

.review-form-textarea {
    resize: vertical;
    min-height: 100px;
    line-height: 1.7;
}

.review-form-select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23717171' stroke-width='2.5' stroke-linecap='round'%3e%3cpolyline points='6 9 12 15 18 9'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: left 14px center;
    padding-left: 40px;
    cursor: pointer;
}

/* ═══ ستاره‌های امتیاز ═══ */
.review-form-stars {
    display: flex;
    gap: 6px;
    direction: ltr;
}

.star-btn {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--bg-subtle);
    border: 1.5px solid var(--border);
    color: var(--text-4);
    font-size: 22px;
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    line-height: 1;
    font-family: inherit;
}

.star-btn:hover {
    transform: scale(1.1);
    border-color: #fbbf24;
    color: #fbbf24;
}

.star-btn.active {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    border-color: #f59e0b;
    color: #fff;
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.35);
    transform: scale(1.05);
}

/* ═══ دکمه ارسال ═══ */
.review-form-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 15px 24px;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    color: #fff;
    border: none;
    border-radius: var(--radius-md);
    font-family: inherit;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
    box-shadow: 0 8px 20px color-mix(in srgb, var(--accent) 30%, transparent);
    margin-top: 6px;
}

.review-form-submit:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px color-mix(in srgb, var(--accent) 40%, transparent);
}

.review-form-submit:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.review-form-note {
    font-size: 11.5px;
    color: var(--text-4);
    text-align: center;
    font-weight: 500;
    margin-top: 4px;
}

/* ═══ موبایل ═══ */
@media (max-width: 640px) {
    .review-form-wrap {
        margin: 28px auto 20px;
        padding: 0 12px;
    }
    .review-form {
        padding: 18px 16px;
        gap: 14px;
    }
    .review-form-head {
        padding: 12px 14px;
    }
    .review-form-head-icon {
        width: 42px;
        height: 42px;
        font-size: 20px;
    }
    .review-form-head-title {
        font-size: 15px;
    }
    .review-form-head-sub {
        font-size: 11.5px;
    }
    .star-btn {
        width: 40px;
        height: 40px;
        font-size: 20px;
    }
    .review-form-submit {
        padding: 13px 20px;
        font-size: 14px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   Review Modal
   ═══════════════════════════════════════════════════════════════ */

.review-modal-bg {
    position: fixed;
    inset: 0;
    z-index: 500;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    animation: fadeIn 0.3s ease;
}

.review-modal-bg.open {
    display: flex;
}

@keyframes fadeIn {
    from { opacity: 0; }
}

.review-modal-panel {
    width: 100%;
    max-width: 560px;
    max-height: 92vh;
    overflow-y: auto;
    background: var(--bg);
    border-radius: var(--radius-lg);
    padding: 26px;
    position: relative;
    animation: modalIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
    box-shadow: 0 24px 60px -12px rgba(0, 0, 0, 0.4);
    box-sizing: border-box;
}

@keyframes modalIn {
    from { opacity: 0; transform: translateY(20px) scale(0.96); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

.review-modal-close {
    position: absolute;
    top: 16px;
    inset-inline-end: 16px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--bg-subtle);
    border: 1px solid var(--border);
    color: var(--text-2);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    transition: all 0.2s;
    padding: 0;
    font-family: inherit;
    z-index: 10;
}

.review-modal-close:hover {
    background: var(--danger);
    border-color: var(--danger);
    color: #fff;
    transform: rotate(90deg);
}

.review-modal-head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 22px;
    padding-inline-end: 44px;
}

.review-modal-head-icon {
    width: 52px;
    height: 52px;
    border-radius: 15px;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    flex-shrink: 0;
    box-shadow: 0 8px 20px color-mix(in srgb, var(--accent) 35%, transparent);
}

.review-modal-head-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--text);
    line-height: 1.3;
}

.review-modal-head-sub {
    font-size: 12.5px;
    color: var(--text-3);
    font-weight: 500;
    margin-top: 4px;
}

/* دکمه ثبت نظر در hero-actions */
.hero-action-icon.review {
    background: linear-gradient(135deg, #a855f7, #ec4899) !important;
    border-color: #a855f7 !important;
    color: #fff !important;
}

/* موبایل */
@media (max-width: 640px) {
    .review-modal-panel {
        padding: 20px 18px;
        max-height: 95vh;
    }
    .review-modal-head-icon {
        width: 44px;
        height: 44px;
        font-size: 22px;
    }
    .review-modal-head-title {
        font-size: 16px;
    }
    .review-modal-head-sub {
        font-size: 11.5px;
    }
    .review-modal-close {
        width: 32px;
        height: 32px;
        top: 12px;
        inset-inline-end: 12px;
    }
}

/* ═══ دکمه ثبت نظر در header نظرات ═══ */
.reviews-marquee-head-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 8px 16px;
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: #fff;
    border: none;
    border-radius: var(--r-pill);
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 800;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.35);
    white-space: nowrap;
    flex-shrink: 0;
}

.reviews-marquee-head-btn:hover {
    transform: translateY(-2px) scale(1.03);
    box-shadow: 0 8px 20px rgba(245, 158, 11, 0.5);
}

.reviews-marquee-head-btn:active {
    transform: translateY(0) scale(1);
}

/* reviews-marquee-head — بدون cursor pointer و hover دیگه */
.reviews-marquee-head {
    cursor: default !important;
}

.reviews-marquee-head:hover {
    transform: none !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04) !important;
}

.reviews-marquee-head-arrow {
    display: none !important;
}

@media (max-width: 640px) {
    .reviews-marquee-head-btn {
        padding: 7px 12px;
        font-size: 11.5px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Hero Status (بالای کاور، نیمه بیرون)
   ═══════════════════════════════════════════════════════════════ */

.hero-cover {
    position: relative !important;
    overflow: visible !important;
}



/* مخفی کردن متن اضافی در موبایل */




/* ═══ موبایل ═══ */
@media (max-width: 640px) {
    
    
}

@media (max-width: 420px) {
    
}

/* ═══════════════════════════════════════════════════════════════
   HOME — Hero Status (بالای کاور، وسط‌چین)
   ═══════════════════════════════════════════════════════════════ */

.hero-cover {
    position: relative !important;
    overflow: visible !important;
}

.hero-status {
    position: absolute !important;
    top: -18px !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    padding: 8px 16px !important;
    background: rgba(255, 255, 255, 0.98) !important;
    backdrop-filter: saturate(180%) blur(14px) !important;
    -webkit-backdrop-filter: saturate(180%) blur(14px) !important;
    border-radius: var(--r-pill) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    color: var(--text) !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12) !important;
    border: 1px solid rgba(255, 255, 255, 0.9) !important;
    z-index: 10 !important;
    white-space: nowrap !important;
    max-width: calc(100% - 24px) !important;
    box-sizing: border-box !important;
}

/* ═══ موبایل ═══ */
@media (max-width: 640px) {
    .hero-status {
        top: -14px !important;
        padding: 6px 12px !important;
        font-size: 11px !important;
        max-width: calc(100% - 20px) !important;
        overflow: hidden !important;
    }
    .hero-status > span {
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }
    /* حذف جداکننده و متن اضافی */
    .hero-status > span:nth-child(3),
    .hero-status > span:nth-child(4),
    .hero-status > span:nth-child(5) {
        display: none !important;
    }
}

@media (max-width: 420px) {
    .hero-status {
        font-size: 10.5px !important;
        padding: 5px 10px !important;
        top: -12px !important;
        max-width: calc(100% - 16px) !important;
    }
}

/* ═══════════════════════════════════════════════════════════════
   WIZARD — Staff Selection
   ═══════════════════════════════════════════════════════════════ */

.wizard-staff-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.wizard-staff-row {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr) 24px;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    background: var(--bg);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
    min-width: 0;
}

.wizard-staff-row:hover {
    border-color: var(--border-2);
    background: var(--bg-subtle);
    transform: translateY(-1px);
}

.wizard-staff-row.selected {
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent) 6%, var(--bg));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);
}

.wizard-staff-row.wizard-staff-any {
    border-style: dashed;
}

.wizard-staff-row.wizard-staff-any.selected {
    border-style: solid;
}

.wizard-staff-avatar {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    overflow: hidden;
    background: linear-gradient(135deg, var(--accent), #6366F1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 22px;
    font-weight: 900;
    flex-shrink: 0;
    box-shadow: 0 4px 12px color-mix(in srgb, var(--accent) 25%, transparent);
}

.wizard-staff-avatar.any {
    background: linear-gradient(135deg, #9ca3af, #6b7280);
    font-size: 24px;
    box-shadow: 0 4px 12px rgba(107, 114, 128, 0.25);
}

.wizard-staff-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wizard-staff-info {
    min-width: 0;
}

.wizard-staff-name {
    font-size: 15px;
    font-weight: 800;
    color: var(--text);
    line-height: 1.3;
    margin-bottom: 3px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wizard-staff-specialty {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-3);
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wizard-staff-radio {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 1.5px solid var(--border-3);
    background: var(--bg);
    flex-shrink: 0;
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    display: flex;
    align-items: center;
    justify-content: center;
}

.wizard-staff-row.selected .wizard-staff-radio {
    background: var(--accent);
    border-color: var(--accent);
    transform: scale(1.1);
}

.wizard-staff-row.selected .wizard-staff-radio::after {
    content: '✓';
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
}

@media (max-width: 640px) {
    .wizard-staff-row {
        grid-template-columns: 48px minmax(0, 1fr) 22px;
        gap: 12px;
        padding: 12px 14px;
    }
    .wizard-staff-avatar {
        width: 48px;
        height: 48px;
        font-size: 18px;
    }
    .wizard-staff-name {
        font-size: 14px;
    }
    .wizard-staff-specialty {
        font-size: 11px;
    }
}
