/* ==========================================================================
   LAMAT BOOKING — Notion-Style Theme
   Primary: #6B3FA0 (purple from logo)
   Clean white background, minimal shadows, system font stack
   ========================================================================== */

/* ========== CSS VARIABLES ========== */
:root{
  --brand-700:#6B3FA0;
  --brand-600:#7C4DB8;
  --brand-500:#8E5DC8;
  --brand-200:#E8DEFF;
  --brand-100:#F3EDFF;
  --brand-050:#F8F5FF;
  --ink-900:#1A1A2E;
  --ink-700:#37352F;
  --ink-500:#6B7280;
  --ink-300:#9CA3AF;
  --surface-000:#FFFFFF;
  --border-300:#E5E5E5;
  --border-200:#F0F0F0;
  --radius-md:8px;
  --radius-lg:12px;
  --radius-pill:999px;
  --shadow-xs:0 1px 2px rgba(0,0,0,.04);
  --shadow-sm:0 1px 3px rgba(15,15,15,.05);
  --shadow-md:0 2px 8px rgba(15,15,15,.08);
  --dur-xs:120ms;
  --dur-sm:180ms;
  --dur-md:300ms;
  --ease:cubic-bezier(.4,0,.2,1);
  --header-h:52px;
  --footer-h:100px;
}

/* ========== RESET & BASE ========== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:'Cairo',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  font-size:15px;
  font-weight:400;
  color:var(--ink-700);
  background:var(--surface-000);
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  overflow-x:hidden;
  line-height:1.6;
  padding-top:calc(var(--header-h) + env(safe-area-inset-top));
  padding-bottom:var(--footer-h);
  padding-left:env(safe-area-inset-left);
  padding-right:env(safe-area-inset-right);
}
a{color:var(--brand-700);text-decoration:none}
a:hover{color:var(--brand-600)}
img{max-width:100%;height:auto}
button{cursor:pointer;font-family:inherit}
.hidden{display:none!important}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.d-flex{display:flex}.d-none{display:none}
.align-items-center{align-items:center}
.justify-content-center{justify-content:center}
.justify-content-between{justify-content:space-between}
.flex-wrap{flex-wrap:wrap}
.gap-2{gap:8px}.gap-3{gap:12px}
.text-center{text-align:center}
.text-start{text-align:start}
.text-muted{color:var(--ink-500)}
.text-danger{color:#dc2626}
.text-success{color:#16a34a}
.text-primary{color:var(--brand-700)}
.fw-bold{font-weight:700}
.small{font-size:.85rem}
.mb-2{margin-bottom:8px}.mb-3{margin-bottom:14px}.mb-4{margin-bottom:24px}
.mt-2{margin-top:8px}.mt-3{margin-top:16px}.mt-4{margin-top:24px}
.mx-auto{margin-left:auto;margin-right:auto}
.py-2{padding-top:8px;padding-bottom:8px}
.border-bottom{border-bottom:1px solid var(--border-200)}

/* ========== HEADER ========== */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:var(--surface-000);
  border-bottom:1px solid var(--border-300);
  display:flex;align-items:center;
  padding:8px 20px;
  padding-top:calc(8px + env(safe-area-inset-top));
}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  width:100%;max-width:960px;margin:0 auto;
}
.brand{display:flex;align-items:center;gap:8px;flex-shrink:0}
.brand img{height:34px;width:auto;object-fit:contain;border-radius:8px}
.brand .brand-name{font-size:.85rem;font-weight:700;color:var(--ink-900);white-space:nowrap;letter-spacing:-.01em}

.header-right{flex:1;display:flex;align-items:center;gap:10px;justify-content:flex-end}

/* Language toggle */
#langToggleBtn,.lang-toggle-btn{
  background:var(--brand-050);
  border:1px solid var(--brand-200);
  border-radius:var(--radius-pill);
  padding:4px 14px;
  font-size:.8rem;font-weight:700;
  color:var(--brand-700);
  transition:background var(--dur-xs) var(--ease);
  cursor:pointer;
}
#langToggleBtn:hover,.lang-toggle-btn:hover{background:var(--brand-200)}
#langToggleBtn i,.lang-toggle-btn i{margin-inline-end:4px}

/* Step chips */
.step-chips{
  display:flex;align-items:center;gap:0;flex:1;max-width:320px;
}
.step-chip{
  display:flex;align-items:center;gap:4px;
  background:var(--brand-050);border:1.5px solid var(--border-300);
  border-radius:var(--radius-pill);padding:3px 10px;
  font-size:.7rem;font-weight:600;color:var(--ink-500);
  white-space:nowrap;cursor:default;
  transition:all var(--dur-xs) var(--ease);
}
.step-chip-num{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:50%;
  background:var(--border-300);color:var(--ink-500);
  font-size:.6rem;font-weight:800;
  transition:all var(--dur-xs) var(--ease);
}
.step-chip-label{transition:color var(--dur-xs) var(--ease)}
.step-chip-connector{
  width:12px;height:2px;background:var(--border-300);flex-shrink:0;
  transition:background var(--dur-xs) var(--ease);
}
.step-chip.active{
  background:var(--brand-100);border-color:var(--brand-500);color:var(--brand-700);
}
.step-chip.active .step-chip-num{
  background:var(--brand-700);color:#fff;
}
.step-chip.done{
  background:var(--brand-050);border-color:var(--brand-300);color:var(--brand-600);
  cursor:pointer;
}
.step-chip.done:hover{
  background:var(--brand-100);border-color:var(--brand-500);transform:scale(1.04);
}
.step-chip.done:active{transform:scale(.97)}
.step-chip.done .step-chip-num{
  background:var(--brand-600);color:#fff;font-size:.55rem;
}
.step-chip-connector.done{background:var(--brand-500)}

/* ========== STAGE (MAIN AREA) ========== */
.stage{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  padding:16px 16px;
  width:100%;max-width:960px;margin:0 auto;
  min-height:calc(100dvh - var(--header-h) - var(--footer-h));
}

/* ========== PAGES ========== */
.page{display:none;flex-direction:column;align-items:center;gap:12px;width:100%}
.page.active{display:flex;pointer-events:auto;animation:pageIn var(--dur-md) var(--ease) both}
.page.exit{animation:pageOut var(--dur-sm) var(--ease) both}
@keyframes pageIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes pageOut{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}
.page h1{font-size:1.2rem;font-weight:800;margin:0;text-align:center;color:var(--ink-900)}
.page-subtitle{font-size:.82rem;color:var(--ink-500);text-align:center;margin:-4px 0 0}

/* ========== CARD ========== */
.card{
  background:var(--surface-000);color:var(--ink-700);
  border:1px solid var(--border-300);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);
  padding:20px;width:100%;max-width:640px;
}

/* ========== FORM ELEMENTS ========== */
.form-control,select,.select2-selection{
  background:var(--surface-000);color:var(--ink-900);
  border:1px solid var(--border-300)!important;border-radius:var(--radius-md)!important;
  min-height:44px;font-size:15px;width:100%;box-sizing:border-box;
  padding:10px 14px;
  transition:border-color var(--dur-xs) var(--ease),box-shadow var(--dur-xs) var(--ease);
}
.form-control::placeholder{color:var(--ink-300);font-weight:400}
.form-control:focus{
  border-color:var(--brand-700)!important;
  box-shadow:0 0 0 3px rgba(107,63,160,.12);
  background:var(--brand-050);
  outline:none;
}
input[type="date"].form-control{
  -webkit-appearance:none;appearance:none;
  border:1.5px solid var(--border-300)!important;
  border-radius:var(--radius-md)!important;
  padding:10px 14px;
  background:var(--surface-000);
  font-size:15px;font-weight:600;
  text-align:center;
}
.form-label{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:.9rem;font-weight:700;color:var(--ink-900);text-align:start}
.form-label i{font-size:.78rem;color:var(--brand-700);flex-shrink:0}
.field-error{color:#dc2626;font-size:.82rem;margin-top:4px;display:none;align-items:center;gap:4px}
.field-error::before{content:"\f071";font-family:"Font Awesome 6 Free";font-weight:900;font-size:.7rem}
.has-error .field-error,.field-error[style*="display:block"],.field-error[style*="display: block"]{display:flex}
.has-error .form-control,.has-error .select2-selection{border-color:#dc2626!important}

.select2-container .select2-selection--single .select2-selection__rendered{color:var(--ink-900)!important;line-height:44px!important;padding:0 14px}
.select2-container .select2-selection--single{height:44px!important;display:flex;align-items:center;padding:0}
.select2-dropdown{background:#fff;color:var(--ink-900)}
.select2-results__option,.select2-search__field{color:var(--ink-900)}
[dir="rtl"] .select2-container .select2-selection__arrow{left:4px;right:auto}

/* Form check / switch */
.form-check{margin:0;padding:0}
.form-check-input{
  width:18px;height:18px;border:2px solid var(--border-300);border-radius:4px;
  accent-color:var(--brand-700);cursor:pointer;
}
.form-switch .form-check-input{width:40px;height:22px;border-radius:999px}

/* Input with inline icon */
.input-icon-wrap{position:relative;width:100%}
.input-icon{
  position:absolute;top:50%;transform:translateY(-50%);
  color:var(--ink-300);font-size:.88rem;pointer-events:none;
  transition:color var(--dur-xs) var(--ease);
  z-index:1;
}
html[dir="rtl"] .input-icon{right:14px;left:auto}
html[dir="ltr"] .input-icon,.input-icon{left:14px;right:auto}
html[dir="rtl"] .form-control.has-icon{padding-right:40px}
html[dir="ltr"] .form-control.has-icon,.form-control.has-icon{padding-left:40px}
.input-icon-wrap:focus-within .input-icon{color:var(--brand-700)}

/* Phone input RTL fix */
html[dir="rtl"] .iti--allow-dropdown .iti__flag-container{left:8px;right:auto}
html[dir="rtl"] .iti--allow-dropdown input#mobile.form-control{
  padding-left:calc(76px + 8px);padding-right:12px;text-align:left;direction:ltr;
}

/* intl-tel-input full width & polish */
.iti{width:100%}
.iti .iti__selected-dial-code{font-size:14px;color:var(--ink-700);font-weight:600}
.iti .iti__arrow{border-top-color:var(--ink-500)}
.iti--separate-dial-code .iti__selected-flag{
  background:var(--surface-000);border-radius:var(--radius-md) 0 0 var(--radius-md);
}
html[dir="rtl"] .iti--separate-dial-code .iti__selected-flag{
  border-radius:0 var(--radius-md) var(--radius-md) 0;
}

/* ========== BUTTONS ========== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  font-family:inherit;font-size:.9rem;font-weight:700;
  border:none;border-radius:var(--radius-md);
  padding:10px 20px;min-height:44px;cursor:pointer;
  transition:background var(--dur-xs) var(--ease),transform var(--dur-xs) var(--ease);
}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--brand-700);color:#fff}
.btn-primary:hover{background:var(--brand-600)}
.btn-primary.disabled,.btn-primary:disabled{background:var(--ink-300);cursor:not-allowed}
.btn-success{background:#16a34a;color:#fff}
.btn-success:hover{background:#15803d}
.btn-outline-primary{
  background:transparent;color:var(--brand-700);
  border:1.5px solid var(--brand-700);
}
.btn-outline-primary:hover{background:var(--brand-050)}

/* ========== TIME GRID ========== */
.time-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}
.time-option{
  background:var(--surface-000);color:var(--ink-900);
  border:1.5px solid var(--border-300);border-radius:var(--radius-md);
  padding:10px 6px;font-size:.85rem;font-weight:600;
  text-align:center;direction:ltr;cursor:pointer;
  transition:border-color var(--dur-xs) var(--ease),background var(--dur-xs) var(--ease);
}
.time-option:hover{border-color:var(--brand-500);background:var(--brand-050)}
.time-option[aria-checked="true"]{
  border-color:var(--brand-700);background:var(--brand-100);
  color:var(--brand-700);font-weight:800;
}

/* ========== LOADING OVERLAY ========== */
#servicesLoading,#timeLoading{
  display:none;text-align:center;padding:8px;font-size:.85rem;color:var(--ink-500);
}
#servicesLoading.show,#timeLoading.show{display:block}

/* ========== PAYMENT GRID ========== */
.pay-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;width:100%;max-width:640px}
.pay-card{
  display:flex;align-items:center;gap:12px;
  padding:14px 16px;
  background:var(--surface-000);border:1.5px solid var(--border-300);
  border-radius:var(--radius-lg);cursor:pointer;
  transition:border-color var(--dur-xs) var(--ease),box-shadow var(--dur-xs) var(--ease);
}
.pay-card:hover{border-color:var(--brand-500);box-shadow:var(--shadow-md)}
.pay-card[aria-checked="true"]{
  border-color:var(--brand-700);background:var(--brand-050);
  box-shadow:0 0 0 3px rgba(107,63,160,.12);
}
.pay-card img{max-width:100px;height:auto}

/* ========== COUPON ========== */
.coupon-wrap{
  display:flex;gap:8px;align-items:center;margin-top:8px;
}
.coupon-wrap input{flex:1}
.coupon-wrap .btn{white-space:nowrap}

/* ========== ORDER SUMMARY CARD ========== */
.order-summary-card{background:var(--surface-000)}
.order-summary-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:8px 0;border-bottom:1px solid var(--border-200);font-size:.88rem;
}
.order-summary-row:last-child{border-bottom:none}
.order-summary-row.total-row{
  font-weight:800;font-size:1rem;color:var(--brand-700);
  padding-top:12px;border-top:2px solid var(--brand-200);border-bottom:none;
}
.order-summary-row.discount-row{color:#16a34a}
.order-summary-row .label{color:var(--ink-500)}
.order-summary-row .value{font-weight:700;direction:ltr}

/* ========== ADDITIONAL SERVICES ========== */
.additional-subtotal{
  margin-top:10px;padding:8px 14px;
  background:var(--brand-050);border:1px solid var(--brand-200);
  border-radius:var(--radius-md);font-size:.85rem;font-weight:700;
  color:var(--brand-700);text-align:center;
}

/* ========== SKELETON LOADERS ========== */
.skeleton{
  background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6 50%,#e5e7eb 75%);
  background-size:200% 100%;animation:shimmer 1.5s infinite;
  border-radius:var(--radius-md);min-height:44px;
}
.skeleton-row{height:16px;margin-bottom:8px;border-radius:6px}
.skeleton-card{height:60px;border-radius:var(--radius-lg)}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ========== FOOTER ========== */
footer{
  position:fixed;bottom:0;left:0;right:0;z-index:90;
  background:var(--surface-000);
  border-top:1px solid var(--border-300);
  padding:10px 16px;
}
.footer-inner{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  max-width:960px;margin:0 auto;
}
.footer-nav{display:flex;align-items:center;gap:8px}
.footer-total{font-size:.88rem;color:var(--ink-700);white-space:nowrap}
.footer-total strong{color:var(--brand-700);font-weight:800;font-size:1.05rem}
.footer-brand{font-size:.7rem;color:var(--ink-300);text-align:center}
.footer-brand a{color:var(--brand-700)}
.footer-social{display:flex;gap:6px;align-items:center}
.footer-social a{color:var(--ink-300);font-size:1rem;transition:color var(--dur-xs) var(--ease)}
.footer-social a:hover{color:var(--brand-700)}

/* Footer buttons */
#footer-next{
  background:var(--brand-700);color:#fff;
  border:none;border-radius:var(--radius-md);
  padding:10px 28px;min-height:44px;font-size:.9rem;font-weight:800;
  transition:background var(--dur-xs) var(--ease),transform var(--dur-xs) var(--ease);
}
#footer-next:hover:not(:disabled){background:var(--brand-600)}
#footer-next:active:not(:disabled){transform:scale(.97)}
#footer-next.disabled,#footer-next:disabled{background:var(--ink-300);cursor:not-allowed}
#footer-prev{
  background:transparent;color:var(--ink-700);
  border:1.5px solid var(--border-300);border-radius:var(--radius-md);
  padding:10px 18px;min-height:44px;font-size:.9rem;font-weight:700;
  transition:border-color var(--dur-xs) var(--ease);
}
#footer-prev:hover{border-color:var(--ink-500)}
#footer-wait{
  display:none;font-size:.85rem;color:var(--ink-500);
  align-items:center;gap:6px;
}
#footer-wait.show{display:flex}
#footer-install-btn{
  display:none;background:transparent;border:1px solid var(--border-300);
  border-radius:var(--radius-pill);padding:6px 10px;font-size:.85rem;
  color:var(--ink-500);
}

/* ========== TOAST ========== */
.toast-container{
  position:fixed;top:calc(var(--header-h) + 10px);left:50%;
  transform:translateX(-50%);z-index:9999;
  display:flex;flex-direction:column;gap:8px;
  pointer-events:none;width:90%;max-width:420px;
}
.toast{
  pointer-events:auto;padding:12px 18px;border-radius:var(--radius-md);
  font-size:.85rem;font-weight:600;display:flex;align-items:center;gap:8px;
  box-shadow:var(--shadow-md);animation:toastIn var(--dur-sm) var(--ease) forwards;
}
.toast.removing{animation:toastOut var(--dur-sm) var(--ease) forwards}
@keyframes toastIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@keyframes toastOut{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}
.toast.success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}
.toast.error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}
.toast.info{background:#ede9fe;color:#5b21b6;border:1px solid #ddd6fe}

/* ========== SERVICE DETAIL BOX ========== */
.service-detail-box{
  background:var(--brand-050);border:1px solid var(--brand-200);
  border-radius:var(--radius-md);padding:12px 16px;
  font-size:.85rem;color:var(--ink-700);white-space:pre-wrap;
}
.service-price-box{
  background:var(--brand-100);border:1px solid var(--brand-200);
  border-radius:var(--radius-md);padding:14px 16px;
  font-size:1rem;font-weight:800;color:var(--brand-700);
  display:flex;align-items:center;gap:8px;
}
.service-price-box .price-icon{
  font-size:.85rem;background:var(--brand-700);color:#fff;
  width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}

/* ========== FIELD GROUP DIVIDER ========== */
.field-group{margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--border-200)}
.field-group:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
.field-group .mb-3:last-child{margin-bottom:0}

/* ========== CAR STEPPER ========== */
.car-stepper{display:flex;align-items:center;gap:0;border:1px solid var(--border-300);border-radius:var(--radius-md);overflow:hidden;width:fit-content}
.car-stepper-btn{
  width:44px;height:44px;border:none;background:var(--brand-050);
  color:var(--brand-700);font-size:1.1rem;font-weight:700;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background var(--dur-xs) var(--ease);
}
.car-stepper-btn:hover{background:var(--brand-200)}
.car-stepper-btn:active{background:var(--brand-200);transform:scale(.95)}
.car-stepper-btn:disabled{color:var(--ink-300);cursor:not-allowed;background:var(--border-200)}
.car-stepper-value{
  width:52px;height:44px;border:none;border-left:1px solid var(--border-300);border-right:1px solid var(--border-300);
  text-align:center;font-size:1rem;font-weight:800;color:var(--ink-900);background:var(--surface-000);
}

/* ========== EMPTY STATE BOX ========== */
.empty-state-box{
  text-align:center;padding:20px 16px;
  background:var(--border-200);border:1px dashed var(--border-300);
  border-radius:var(--radius-md);
}
.empty-state-box i{font-size:1.3rem;color:var(--ink-300);margin-bottom:6px;display:block}
.empty-state-box p{margin:0;font-size:.82rem;color:var(--ink-500)}

/* ========== SUCCESS CHECK ANIMATION (Thank You Page) ========== */
.success-check-anim{
  text-align:center;margin-bottom:8px;
}
.success-check-anim i{
  font-size:3rem;color:#16a34a;
  animation:successPop .5s cubic-bezier(.17,.67,.21,1.27) forwards;
}
@keyframes successPop{
  0%{transform:scale(0);opacity:0}
  60%{transform:scale(1.15);opacity:1}
  100%{transform:scale(1);opacity:1}
}

/* ========== TIME SLOT EMPTY STATE ========== */
.time-empty-state{
  grid-column:1/-1;text-align:center;padding:24px 16px;
  color:var(--ink-500);
}
.time-empty-state i{
  font-size:1.5rem;color:var(--ink-300);margin-bottom:8px;display:block;
}
.time-empty-state p{
  font-size:.85rem;margin:0;
}

/* ========== SCROLL-TO-ERROR HIGHLIGHT ========== */
.field-error-highlight{
  animation:shakeField .4s ease;
}
@keyframes shakeField{
  0%,100%{transform:translateX(0)}
  20%,60%{transform:translateX(-4px)}
  40%,80%{transform:translateX(4px)}
}

/* ========== CONFIRMATION OVERLAY ========== */
.confirm-overlay{
  position:fixed;inset:0;z-index:200;
  background:rgba(0,0,0,.45);
  display:flex;align-items:center;justify-content:center;
  padding:16px;
  animation:fadeIn var(--dur-sm) var(--ease);
}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.confirm-card{
  background:var(--surface-000);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md);
  padding:28px 24px;
  width:100%;max-width:480px;
  max-height:85vh;overflow-y:auto;
  animation:slideUp var(--dur-md) var(--ease);
}
@keyframes slideUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.confirm-card h2{font-size:1.1rem;font-weight:800;color:var(--ink-900);margin-bottom:4px;text-align:center}
.confirm-subtitle{font-size:.85rem;color:var(--ink-500);text-align:center;margin-bottom:16px}
.confirm-summary{
  border:1px solid var(--border-300);border-radius:var(--radius-md);
  padding:12px 16px;margin-bottom:20px;
}
.confirm-summary .confirm-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:6px 0;border-bottom:1px solid var(--border-200);font-size:.88rem;
}
.confirm-summary .confirm-row:last-child{border-bottom:none}
.confirm-summary .confirm-row .label{color:var(--ink-500)}
.confirm-summary .confirm-row .value{font-weight:700;color:var(--ink-900)}
.confirm-summary .confirm-row.total-row{
  font-weight:800;color:var(--brand-700);border-top:2px solid var(--brand-200);
  padding-top:10px;border-bottom:none;font-size:.95rem;
}
.confirm-actions{display:flex;gap:10px;justify-content:center}
.confirm-actions .btn{flex:1;max-width:180px}

/* ========== REVERSE PAGE TRANSITION ========== */
.page.active.reverse{animation:pageInReverse var(--dur-md) var(--ease) both}
.page.exit.reverse{animation:pageOutReverse var(--dur-sm) var(--ease) both}
@keyframes pageInReverse{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@keyframes pageOutReverse{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}

/* ========== IMPROVED ADDITIONAL SERVICES CHECKBOXES ========== */
.additional-service-label{
  display:flex;align-items:flex-start;gap:12px;
  padding:12px 14px;
  background:var(--surface-000);
  border:1.5px solid var(--border-300);
  border-radius:var(--radius-md);
  cursor:pointer;
  transition:border-color var(--dur-xs) var(--ease),background var(--dur-xs) var(--ease),box-shadow var(--dur-xs) var(--ease);
}
.additional-service-label:hover{
  border-color:var(--brand-500);background:var(--brand-050);
}
.additional-service-label:has(input:checked){
  border-color:var(--brand-700);background:var(--brand-050);
  box-shadow:0 0 0 3px rgba(107,63,160,.1);
}
.additional-service-label input[type="checkbox"]{
  width:20px;height:20px;margin-top:2px;flex-shrink:0;
  accent-color:var(--brand-700);cursor:pointer;
}
.additional-service-label .svc-info{flex:1;min-width:0}
.additional-service-label .svc-name{font-weight:700;font-size:.9rem;color:var(--ink-900)}
.additional-service-label .svc-desc{font-size:.8rem;color:var(--ink-500);margin-top:2px}
.additional-service-label .svc-price{font-size:.82rem;font-weight:700;color:var(--brand-700);margin-top:4px}

/* ========== GIFT TOGGLE ========== */
.gift-toggle-wrap{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:12px 0 4px;
}
.gift-toggle-label{
  display:inline-flex;align-items:center;gap:10px;
  cursor:pointer;user-select:none;
}
.gift-toggle-label input[type="checkbox"]{position:absolute;opacity:0;width:0;height:0}
.gift-toggle-slider{
  position:relative;width:44px;height:24px;
  background:var(--ink-200);border-radius:12px;
  transition:background var(--dur-xs) var(--ease);
  flex-shrink:0;
}
.gift-toggle-slider::after{
  content:'';position:absolute;top:2px;left:2px;
  width:20px;height:20px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);
  transition:transform var(--dur-xs) var(--ease);
}
.gift-toggle-label input:checked + .gift-toggle-slider{background:var(--brand-600)}
.gift-toggle-label input:checked + .gift-toggle-slider::after{transform:translateX(20px)}
[dir="ltr"] .gift-toggle-label input:checked + .gift-toggle-slider::after{transform:translateX(20px)}
[dir="rtl"] .gift-toggle-label input:checked + .gift-toggle-slider::after{transform:translateX(-20px)}
.gift-toggle-text{
  display:inline-flex;align-items:center;gap:6px;
  font-weight:700;font-size:.92rem;color:var(--ink-800);
}
.gift-toggle-text i{color:var(--brand-600);font-size:1rem}
.gift-toggle-hint{
  font-size:.78rem;color:var(--ink-400);text-align:center;margin:0;
}

/* ========== GIFT RECIPIENT CARD ========== */
#giftRecipientFields{
  border:2px dashed var(--brand-300);
  background:var(--brand-50);
  border-radius:var(--radius-lg);
}
#giftRecipientFields .card-title{
  display:flex;align-items:center;gap:8px;
  color:var(--brand-700);font-weight:700;
}
#giftRecipientFields .card-title i{font-size:1.1rem}
#giftRecipientFields textarea{
  resize:none;min-height:60px;
}

/* ========== WHATSAPP BUSINESS CONTACT ========== */
.wa-business-contact{text-align:center}
.wa-business-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 20px;border-radius:var(--radius-pill);
  background:#25D366;color:#fff;font-weight:700;font-size:.9rem;
  transition:background var(--dur-xs) var(--ease),transform var(--dur-xs) var(--ease);
  text-decoration:none;
}
.wa-business-btn:hover{background:#1DA851;color:#fff;transform:scale(1.02)}
.wa-business-btn i{font-size:1.1rem}

/* ========== SELECT2 LOADING SKELETON ========== */
.select2-loading-skeleton .select2-selection__rendered{
  color:transparent!important;
  background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6 50%,#e5e7eb 75%);
  background-size:200% 100%;
  animation:shimmer 1.5s infinite;
  border-radius:4px;
  min-height:20px;
}

/* ========== RESPONSIVE ========== */

/* Hide footer when virtual keyboard is open (mobile) */
@media (max-height:480px) and (max-width:768px){
  footer{transform:translateY(100%);transition:transform .2s ease}
  body{padding-bottom:0!important}
}

@media (max-width:480px){
  .card{padding:18px 14px}
  .footer-brand span:first-child{display:none}
  .footer-social{display:none}
  .footer-brand{min-height:0;padding:0}
  .pay-grid{grid-template-columns:1fr}
  header{padding:6px 12px}
  .header-inner{padding:0;gap:8px}
  .brand img{height:26px}
  .brand .brand-name{font-size:.75rem}
  .header-right{gap:6px}
  #langToggleBtn,.lang-toggle-btn{padding:3px 10px;font-size:.72rem}
  .step-chips{max-width:200px}
  .step-chip{padding:2px 6px;font-size:.6rem}
  .step-chip-label{display:none}
  .step-chip-num{width:16px;height:16px;font-size:.55rem}
  .step-chip-connector{width:6px}
  .stage{padding:12px 12px}
  .page{gap:10px}
  /* Tighter time grid on small screens */
  .time-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:6px}
  .time-option{padding:8px 4px;font-size:.8rem}
  /* Stack footer vertically on very small screens */
  .footer-inner{flex-wrap:wrap;justify-content:center;gap:6px}
  .footer-total{width:100%;text-align:center;order:-1}
  .footer-nav{width:100%;justify-content:center}
}

@media (min-width:768px){
  .stage{padding:24px 24px}
  /* 2-column additional services on wider screens */
  .additional-services-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .step-chips{max-width:360px}
}

/* ========== FOOTER ========== */
.nahl-footer{
  text-align:center;
  padding:24px 16px 18px;
  margin-top:32px;
  border-top:1px solid var(--border-200);
}
.nahl-footer-brand{
  margin:0;font-family:'Cairo',sans-serif;
  font-size:12px;font-weight:600;
  color:#9ca3af;letter-spacing:.5px;
}
@media(min-width:768px){
  .nahl-footer{padding:28px 24px 20px;margin-top:48px}
  .nahl-footer-link{font-size:13px}
  .nahl-footer-link img{height:20px}
  .nahl-footer-copy{font-size:11px}
}

/* ========== PROMO AD POPUP (YouTube-style) ========== */
.promo-ad-overlay{
  position:fixed; inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  z-index:2000;
}
.promo-ad-overlay.show{
  display:flex;
  animation:fadeIn .22s cubic-bezier(.22,.61,.36,1) both;
}
.promo-ad-backdrop{
  position:absolute; inset:0;
  background:rgba(0,0,0,.7);
  backdrop-filter:blur(8px);
}
.promo-ad-dialog{
  position:relative; z-index:1;
  background:#fff;
  color:#2d1654;
  border-radius:22px;
  box-shadow:0 20px 60px rgba(0,0,0,.25);
  width:92%;
  max-width:440px;
  max-height:88vh;
  overflow-y:auto;
  display:flex;
  flex-direction:column;
  animation:promoSlideUp .5s cubic-bezier(.22,.61,.36,1) both;
}
@keyframes promoSlideUp{
  from{opacity:0; transform:translateY(40px) scale(.95)}
  to{opacity:1; transform:translateY(0) scale(1)}
}
.promo-ad-close-btn{
  position:absolute;
  top:12px; right:12px;
  width:36px; height:36px;
  border-radius:50%;
  border:none;
  background:rgba(107,63,160,.1);
  color:#6B3FA0;
  font-size:1.1rem;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:background .2s, transform .2s;
  z-index:2;
}
.promo-ad-close-btn:hover{
  background:rgba(107,63,160,.2);
  transform:scale(1.1);
}
.promo-ad-content{
  padding:16px 22px 10px;
  text-align:center;
}
.promo-ad-logo img{
  height:60px;
  width:auto;
  filter:drop-shadow(0 4px 12px rgba(107,63,160,.2));
  margin-bottom:10px;
}
.promo-ad-title{
  font-size:1.1rem;
  font-weight:800;
  margin:0 0 14px;
  line-height:1.6;
}
.promo-ad-features{
  list-style:none;
  padding:0;
  margin:0;
  text-align:right;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.promo-ad-features li{
  font-size:.9rem;
  font-weight:600;
  line-height:1.5;
  padding:8px 14px;
  background:rgba(107,63,160,.06);
  border-radius:12px;
  border:1px solid rgba(107,63,160,.12);
  animation:featureFadeIn .4s cubic-bezier(.22,.61,.36,1) both;
}
.promo-ad-features li:nth-child(1){animation-delay:.1s}
.promo-ad-features li:nth-child(2){animation-delay:.2s}
.promo-ad-features li:nth-child(3){animation-delay:.3s}
.promo-ad-features li:nth-child(4){animation-delay:.4s}
.promo-ad-features li:nth-child(5){animation-delay:.5s}
.promo-ad-features li:nth-child(6){animation-delay:.6s}
.promo-ad-features li:nth-child(7){animation-delay:.7s}
.promo-ad-features li:nth-child(8){animation-delay:.8s}
@keyframes featureFadeIn{
  from{opacity:0; transform:translateX(20px)}
  to{opacity:1; transform:translateX(0)}
}
.promo-ad-sub{
  display:block;
  font-size:.78rem;
  opacity:.65;
  font-weight:400;
  margin-top:2px;
  color:#5a3d7a;
}
.promo-ad-overlay.dismiss .promo-ad-dialog{
  animation:promoDismiss .35s cubic-bezier(.22,.61,.36,1) both;
}
@keyframes promoDismiss{
  to{opacity:0; transform:translateY(-30px) scale(.92)}
}

/* ========== SPLASH SCREEN ========== */
.splash-screen{
  position:fixed;inset:0;z-index:99999;
  background:#FFFFFF;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  transition:opacity 0.4s ease;
}
.splash-logo{
  width:80px;height:80px;object-fit:contain;
  border-radius:var(--radius-lg);
  animation:splashPulse 1.5s ease-in-out infinite;
}
.splash-name{
  font-family:'Cairo',sans-serif;
  font-size:1.8rem;font-weight:800;
  color:var(--ink-900);
  margin-top:16px;letter-spacing:-0.02em;
}
.splash-slogan{
  font-family:'Cairo',sans-serif;
  font-size:1rem;font-weight:400;
  color:var(--ink-500);
  margin-top:6px;
}
@keyframes splashPulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.05)}
}

/* ========== WHY CHOOSE BANNER ========== */
.why-choose-banner{
  text-align:start;
  padding:6px 0;margin-bottom:8px;
  font-weight:700;font-size:.85rem;
  color:var(--brand-600);
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:3px;
  transition:color var(--dur-sm) var(--ease);
}
.why-choose-banner:hover{
  color:var(--brand-700);
}

/* ========== SUBSCRIBE BANNER ========== */
.subscribe-banner{
  display:flex;align-items:center;gap:8px;
  padding:10px 14px;margin-bottom:12px;
  background:linear-gradient(135deg, var(--brand-600), var(--brand-700));
  color:#fff;border-radius:var(--radius-md);
  text-decoration:none;font-weight:700;font-size:.85rem;
  transition:opacity var(--dur-sm) var(--ease);
}
.subscribe-banner:hover{opacity:.9}
.subscribe-banner i:first-child{font-size:1rem}
.subscribe-banner span{flex:1}
.subscribe-banner i:last-child{font-size:.7rem;opacity:.7}
[dir="ltr"] .subscribe-banner i:last-child{transform:rotate(180deg)}

/* ========== TIME INSTRUCTION ========== */
.time-instruction{
  font-size:.85rem;color:var(--ink-500);
  margin-bottom:8px;text-align:center;
}

/* ========== TIME SLOT CAR BADGE ========== */
.time-option{position:relative}
.time-option .car-badge{
  display:block;
  font-size:.65rem;font-weight:700;
  color:var(--brand-700);
  margin-top:2px;
  line-height:1;
}
.time-option[aria-checked="true"] .car-badge{
  color:#fff;
}

/* ========== PWA STANDALONE MODE ========== */
@media (display-mode: standalone){
  header{
    padding-top:calc(8px + env(safe-area-inset-top));
  }
  body{
    padding-top:calc(var(--header-h) + env(safe-area-inset-top));
  }
  .brand img{height:32px;border-radius:6px}
  .brand .brand-name{font-size:.8rem}
}

/* ========== PWA UPDATE BANNER ========== */
.pwa-update-banner{
  position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:9999;
  display:flex;align-items:center;gap:10px;
  background:linear-gradient(135deg,var(--brand-600),var(--brand-700));
  color:#fff;border-radius:var(--radius-pill);
  padding:10px 20px;cursor:pointer;
  box-shadow:0 4px 16px rgba(0,0,0,.2);
  animation:slideUp .3s ease;
  font-size:.85rem;font-weight:600;white-space:nowrap;
}
.pwa-update-banner i{font-size:1rem}
.pwa-update-banner button{
  background:#fff;color:var(--brand-700);border:none;
  border-radius:var(--radius-pill);padding:4px 14px;
  font-size:.8rem;font-weight:700;cursor:pointer;
  font-family:inherit;
}
@keyframes slideUp{from{transform:translateX(-50%) translateY(40px);opacity:0}to{transform:translateX(-50%) translateY(0);opacity:1}}

/* ========== PWA INSTALL BANNER ========== */
.pwa-install-banner{
  display:flex;align-items:center;gap:10px;
  background:linear-gradient(135deg,var(--brand-600),var(--brand-700));
  color:#fff;border-radius:var(--radius-lg);
  padding:14px 18px;margin-top:12px;cursor:pointer;
  text-decoration:none;transition:opacity .2s;
}
.pwa-install-banner:hover{opacity:.9}
.pwa-install-banner .pwa-icon{
  width:40px;height:40px;border-radius:10px;
  object-fit:contain;background:#fff;padding:4px;flex-shrink:0;
}
.pwa-install-banner .pwa-text{flex:1;font-size:.85rem;font-weight:700;color:#fff}
.pwa-install-banner .pwa-text small{display:block;font-size:.75rem;font-weight:400;opacity:.85;margin-top:2px}
.pwa-install-banner .pwa-arrow{font-size:1.1rem;opacity:.7}

/* ========== PRINT ========== */
@media print{
  header,footer,.step-chips,.splash-screen{display:none!important}
  .stage{padding:0}
  .page{display:block!important;page-break-inside:avoid}
}
