@font-face {
    font-family: 'Pinar';
    src: url('../fonts/Pinar-DS1-FD.woff') format('woff');
}

@font-face {
    font-family: 'Estedad';
    src: url('../fonts/Estedad-VF-FD.woff2') format('woff2-variations');
}
.page-title-big-typography {
    padding: 0 !important;
}
.vertical-counter {
    direction: ltr;
}

html[dir="ltr"] * {
    text-align: left;
}

html[dir="rtl"] * {
    letter-spacing: 0 !important;
}

body, p, a, ul, li, input, button, th, div, label, b, div, button, .primary-font, .alt-font, .primary-font.fw-500, .magic-drag-cursor #ball-cursor:before {
    font-family: Estedad !important;
    line-height: 140%;
}

h1, h2, h3, h4, h5, h6, span, footer, div h6 {
    font-family: Estedad !important;
    line-height: 140%;
}

p {
    font-variation-settings: "wght" 200;
}

* {
    -webkit-font-smoothing: antialiased;
    -moz-os-font-smoothing: grayscale;
    box-sizing: border-box
}

.nav-link-menu {
    font-family: 'Inter', sans-serif;
}

.learn-more-btn {
    font-family: 'Inter', sans-serif;
}

.learn-extra-btn {
    font-size: 16px;
    font-family: Estedad !important;
    font-weight: 600;
}

.header-subtitle {
    font-family: 'Inter', sans-serif;
    font-size: 28px;
    font-weight: 400;
}

.header-title {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: 50px;
}

.header-title-text {
    font-family: 'Inter', sans-serif;
    font-size: 18px;
    font-weight: 400;
}

.vertical-slider-subtitle {
    font-family: 'Inter', sans-serif;
    font-size: 20px;
    font-weight: 400;
}

.vertical-slider-title {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: 40px;
}

.vertical-slider-text {
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    font-weight: 300;
}

.about-subtitle {
    font-family: 'Inter', sans-serif;
    font-size: 20px;
    font-weight: 400;
}

.about-title {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: 40px;
}

.about-text {
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    font-weight: 300;
}

.pricing-subtitle {
    font-family: 'Inter', sans-serif;
}

.pricing-title h2 {
    font-family: 'Inter', sans-serif;
}

.pricing-title p {
    font-family: 'Inter', sans-serif;
}

.pricing-rate {
    font-weight: 800;
    font-family: 'Inter', sans-serif;
}


.pricing-period {
    font-family: 'Inter', sans-serif;
}

.pricing-text {
    font-family: 'Inter', sans-serif;
}

.pricing-all-plan-features-section li {
    font-family: 'Inter', sans-serif;
}

.testimonials-slider-subtitle {
    font-family: 'Inter', sans-serif;
}

.testimonials-slider-text {
    font-family: 'Inter', sans-serif;
}

.footer-logo p {
    font-family: 'Inter', sans-serif;
}

.footer-subsection-title {
    font-family: 'Inter', sans-serif;
}

.footer-subsection-text {
    font-family: 'Inter', sans-serif;
}

.footer-subsection-list li {
    font-family: 'Inter', sans-serif;
}

.footer-credits p {
    font-family: 'Inter', sans-serif;
}

a.text-dark-gray.text-dark-gray-hover.text-decoration-line-bottom.fw-600 {
    margin-right: 10px;
}

.dir-ltr {
    direction: ltr !important;
}

.word {
    line-height: 1.7;
}

.feature-box.feature-box-left-icon-middle, .feature-box.feature-box-left-icon {
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    -webkit-box-align: center !important;
    -ms-flex-align: center !important;
    align-items: center !important;
    -ms-flex-pack: center;
    justify-content: flex-start;
    text-align: right;
}

.dir-rtl, .rev_slider_wrapper#jewellery-store-slider_wrapper {
    direction: rtl !important;
}

input[type="tel"] {
    text-align: right;
}

.rev_slider_wrapper, .rev_slider {
    direction: ltr !important;
}

.tparrows.tp-leftarrow:before {
    content: "قبلی" !important;
    letter-spacing: 0 !important;
}

.tparrows.tp-rightarrow:before {
    letter-spacing: 0 !important;
    content: "بعدی" !important;
}

:root {
    --brand-1: #2dd4bf;
    --brand-2: #4f46e5;
    --brand-gradient: linear-gradient(135deg, var(--brand-1), var(--brand-2));
}

/* ---- Step header ---- */
.booking-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    margin-bottom: 40px;
    flex-wrap: wrap;
}
.booking-step {
    display: flex;
    align-items: center;
    gap: 10px;
}
.booking-step .step-circle {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #f1f2f6;
    color: #9ca3af;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 14px;
    transition: all .25s ease;
}
.booking-step .step-label {
    font-size: 13px;
    font-weight: 600;
    color: #9ca3af;
    transition: color .25s ease;
}
.booking-step.is-active .step-circle {
    background: var(--brand-gradient);
    color: #fff;
    box-shadow: 0 4px 14px -4px rgba(79,70,229,0.5);
}
.booking-step.is-active .step-label {
    color: #333;
}
.booking-step.is-done .step-circle {
    background: #dcfce7;
    color: #15803d;
}
.step-connector {
    width: 50px;
    height: 2px;
    background: #e6e7ee;
    margin: 0 12px;
}
@media (max-width: 767px) {
    .step-connector { width: 24px; }
    .booking-step .step-label { display: none; }
}

/* ---- Card sections ---- */
.booking-card-section {
    border: none;
    border-radius: 16px;
    box-shadow: 0 4px 16px -6px rgba(0,0,0,0.08);
    padding: 28px;
    margin-bottom: 24px;
    background: #fff;
}
.booking-title {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 16px;
    font-weight: 700;
    color: #2b2b2b;
    margin-bottom: 4px;
}
.booking-title .badge {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--brand-gradient) !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    margin: 0 !important;
}
.booking-subtext {
    font-size: 12.5px;
    color: #9ca3af;
    margin-bottom: 18px;
    padding-inline-start: 42px;
}

/* ---- Select2 tweaks ---- */
.select2-container--default .select2-selection--multiple {
    border: 1px solid #e6e7ee !important;
    border-radius: 10px !important;
    padding: 6px 8px;
    min-height: 48px;
}
.select2-container--default.select2-container--focus .select2-selection--multiple {
    border-color: #818cf8 !important;
    box-shadow: 0 0 0 3px rgba(129,140,248,0.15);
}
.select2-container--default .select2-selection--multiple .select2-selection__choice {
    background: #eef2ff !important;
    border: none !important;
    color: #4f46e5 !important;
    border-radius: 20px !important;
    padding: 4px 12px !important;
    font-size: 12.5px;
    font-weight: 600;
}

/* ---- Day / time pickers ---- */
.time-slot-list ul {
    list-style: none;
    padding: 0;
    margin: 0;
    gap: 12px;
}
.timing {
    display: block;
    border: 2px solid #eef0f5;
    border-radius: 14px;
    background: #fbfbfd;
    transition: all .2s ease;
    text-decoration: none !important;
}
.timing:hover {
    border-color: #a5b4fc;
    box-shadow: 0 6px 16px -6px rgba(79,70,229,0.25);
    transform: translateY(-2px);
}
.timing.active {
    background: var(--brand-gradient);
    color: #fff !important;
    border-color: transparent;
    box-shadow: 0 8px 20px -6px rgba(79,70,229,0.45);
}
.timing.active h5,
.timing.active p {
    color: #fff !important;
}
.timing h5 {
    font-size: 14px;
    font-weight: 700;
    color: #2b2b2b;
}
.timing p {
    font-size: 12px;
    color: #8a8d99;
}
.timing .text-success {
    font-size: 11.5px;
    font-weight: 600;
}

.schedule {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 110px;
    padding: 12px 18px;
    border: 2px solid #eef0f5;
    border-radius: 12px;
    background: #fbfbfd;
    font-size: 13.5px;
    font-weight: 600;
    color: #2b2b2b;
    cursor: pointer;
    transition: all .2s ease;
}
.schedule:hover {
    border-color: #6ee7d8;
    transform: translateY(-2px);
}
.schedule.active {
    background: linear-gradient(135deg, #28c76f, #48da89);
    color: #fff !important;
    border-color: transparent;
    box-shadow: 0 8px 20px -6px rgba(40,199,111,0.4);
}

.empty-slot-msg {
    border-radius: 12px;
    background: #f0f9ff;
    border: 1px dashed #93c5fd;
    color: #1d4ed8;
    padding: 16px 20px;
    font-size: 13.5px;
}

/* ---- Nav buttons ---- */
.btn-booking-primary {
    background: var(--brand-gradient);
    border: none;
    border-radius: 12px;
    padding: 13px 28px;
    font-weight: 700;
    font-size: 14px;
    color: #fff;
    transition: opacity .2s ease;
}
.btn-booking-primary:hover { opacity: .92; color: #fff; }
.btn-booking-secondary {
    background: #f1f2f6;
    border: none;
    border-radius: 12px;
    padding: 13px 22px;
    font-weight: 600;
    font-size: 13.5px;
    color: #555;
    transition: background .2s ease;
}
.btn-booking-secondary:hover { background: #e6e7ee; color: #333; }

/* ---- Summary sidebar ---- */
.booking-summary-card {
    border: none;
    border-radius: 16px;
    box-shadow: 0 4px 16px -6px rgba(0,0,0,0.08);
    overflow: hidden;
}
.booking-summary-header {
    background: var(--brand-gradient);
    padding: 20px 24px;
    color: #fff;
}

.float-appointment-btn {
    position: fixed;
    bottom: 24px;
    left: 24px;
    z-index: 9999;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 24px;
    background: linear-gradient(135deg, #4f46e5, #2dd4bf);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    border-radius: 50px;
    box-shadow: 0 6px 24px rgba(79, 70, 229, 0.35);
    transition: transform .2s ease, box-shadow .2s ease;
}
.float-appointment-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 32px rgba(79, 70, 229, 0.45);
    color: #fff;
}
.float-appointment-btn i {
    font-size: 16px;
}

[dir="ltr"] .pricing-table-style-04 .accordion-item .icon-round {
    left: auto;
    right: 0;
}

.booking-summary-header h4 {
    font-size: 15px;
    font-weight: 700;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}
.booking-summary-body {
    padding: 22px 24px;
}
.summary-block-label {
    font-size: 12px;
    font-weight: 700;
    color: #9ca3af;
    text-transform: uppercase;
    letter-spacing: .3px;
    margin-bottom: 10px;
}
.summary-block {
    padding-bottom: 16px;
    margin-bottom: 16px;
    border-bottom: 1px solid #f0f1f5;
}
.summary-block:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}
.summary-empty {
    background: #f8f9fc;
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 12.5px;
    color: #9ca3af;
    display: flex;
    align-items: center;
    gap: 8px;
}
.summary-chip {
    display: inline-block;
    background: #eef2ff;
    color: #4f46e5;
    font-size: 12px;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: 20px;
    margin: 2px 4px 2px 0;
}
.summary-value {
    font-size: 13.5px;
    font-weight: 600;
    color: #2b2b2b;
    margin-bottom: 4px;
}

.tips-card {
    border: none;
    border-radius: 16px;
    box-shadow: 0 4px 16px -6px rgba(0,0,0,0.08);
    padding: 20px 22px;
    margin-top: 16px;
}
.tips-card h6 {
    font-size: 13.5px;
    font-weight: 700;
    margin-bottom: 14px;
}
.tips-card ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.tips-card li {
    font-size: 12.5px;
    color: #6b7280;
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 10px;
}
.tips-card li:last-child { margin-bottom: 0; }
.tips-card li i {
    color: #34d399;
    margin-top: 2px;
}

.login-required-card {
    border: none;
    border-radius: 16px;
    box-shadow: 0 4px 16px -6px rgba(0,0,0,0.08);
    padding: 44px 24px;
    text-align: center;
    max-width: 480px;
    margin: 0 auto;
}
.login-required-card i {
    font-size: 42px;
    color: #fbbf24;
    margin-bottom: 14px;
}