@import url(https://fonts.googleapis.com/css?family=Lato:400,700);
@import url(https://fonts.googleapis.com/css?family=Lato:400,700);
@import url(https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;1,200&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap);
@font-face {
  font-family: 'BrandonText-Bold';
  src: url('/fonts/BrandonText-Bold.otf') format('opentype');
}
@font-face {
  font-family: 'BrandonText-Black';
  src: url('/fonts/BrandonText-Black.otf') format('opentype');
}
@font-face {
  font-family: 'BrandonText-Medium';
  src: url('/fonts/BrandonText-Medium.otf') format('opentype');
}
@font-face {
  font-family: 'BrandonText-Regular';
  src: url('/fonts/BrandonText-Regular.otf') format('opentype');
}

@keyframes icon-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}

.icon-spin {
  -webkit-animation: icon-spin 2s infinite linear;
  animation: icon-spin 2s infinite linear;
}

html {
  font-size: 16px;
}

html,
body {
  position: fixed;
  height: 100%;
  width: 100%;
}

#modal-root,
#error-modal {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  z-index: 999;
  display: flex;
  align-items: stretch;
  justify-content: center;
}

.modal-container {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  display: flex;
  width: 100vw;
  height: 100%;
  justify-content: center;
  align-items: stretch;
}

input.visit-input {
  font-family: BrandonText-Medium, Lato, sans-serif;
  font-size: 1.1rem;
  border: none;
}

input.visit-input:focus {
  outline: none;
}

body {
  font-family: Lato, sans-serif;
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

code {
  font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
    monospace;
}

#root {
  width: 100vw;
  height: 100vh;
  margin: 0 auto;
}

.fade-enter {
  opacity: 0;
}

.fade-enter.fade-enter-active {
  transition: 300ms linear;
  opacity: 1 !important;
}

.fade-enter-done {
  opacity: 1 !important;
}

.fade-exit {
  opacity: 1 !important;
}

.fade-exit.fade-exit-active {
  opacity: 0;
  transition: 3000ms linear;
}

.fade-in-enter,
.fade-in-appear {
  transform: translateY(2rem);
  opacity: 0;
}

.fade-in-enter.fade-in-enter-active,
.fade-in-appear.fade-in-appear-active {
  transition: 200ms linear;
  transform: none;
  opacity: 1;
}

.slide-next-enter {
  transform: translateX(100%);
}

.slide-next-enter.slide-next-enter-active {
  transition: 200ms linear;
  transform: unset;
}

.slide-next-exit {
  transform: translateY(-100%);
}

.slide-next-exit.slide-next-exit-active {
  transition: 200ms linear;
  transform: translate(100%, -100%);
}

.slide-previous-enter {
  transform: scale(0.9);
}

.slide-previous-enter.slide-previous-enter-active {
  transition: 200ms linear;
  transform: unset;
}

.slide-previous-exit {
  transform: translateX(-100%);
}

.slide-previous-exit.slide-previous-exit-active {
  transition: 200ms linear;
  transform: translateX(-100%) scale(0.6);
}

.fly-in-enter,
.fly-in-appear {
  transform: translateY(100%);
}

.fly-in-enter.fly-in-enter-active,
.fly-in-appear.fly-in-appear-active {
  transition: 200ms linear;
  transform: none;
}

.fly-in-exit {
  transform: none;
}

.fly-in-exit.fly-in-exit-active {
  transition: 200ms linear;
  transform: translateY(100%);
}

.slide-in-enter,
.slide-in-appear {
  transform: translateX(100%);
}

.slide-in-enter.slide-in-enter-active,
.slide-in-appear.slide-in-appear-active {
  transition: 200ms linear;
  transform: none;
}

.slide-in-exit {
  transform: none;
}

.slide-in-exit.slide-in-exit-active {
  transition: 200ms linear;
  transform: translateX(100%);
}
/*
.expand-hide-enter.expand-hide-enter-active {
  padding: 0 !important;
  height: 0;
  transition: 200ms linear;
}

.expand-hide-enter-done {
  padding: 0 !important;
  height: 0;
}

.expand-enter.expand-enter-active {
  background: white;
  transition: 200ms linear;
  margin-top: 0;
  /* transform: translateY(-100%); */
/*}

.expand-enter-done {
  background: white;
  margin-top: 0;
  transform: translateY(-100%);
}*/

.hide-scrollbar {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.hide-scrollbar::-webkit-scrollbar {
  display: none;
}

@font-face {
  font-family: 'BrandonText-Bold';
  src: url('/fonts/BrandonText-Bold.otf') format('opentype');
}
@font-face {
  font-family: 'BrandonText-Black';
  src: url('/fonts/BrandonText-Black.otf') format('opentype');
}
@font-face {
  font-family: 'BrandonText-Medium';
  src: url('/fonts/BrandonText-Medium.otf') format('opentype');
}
@font-face {
  font-family: 'BrandonText-Regular';
  src: url('/fonts/BrandonText-Regular.otf') format('opentype');
}

#modal-root,
#error-modal {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  z-index: 999;
  display: flex;
  align-items: stretch;
  justify-content: center;
}

#root {
  overflow: scroll;
}

.modal-container {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  display: flex;
  width: 100vw;
  height: 100%;
  justify-content: center;
  align-items: stretch;
}

input.visit-input {
  font-family: Roboto, sans-serif;
  font-size: 1.1rem;
  border: none;
}

input.visit-input:focus {
  outline: none;
}

body {
  font-family: Roboto, sans-serif;
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

code {
  font-family:
    source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace;
}

.App {
  text-align: center;
}

.App-logo {
  animation: App-logo-spin infinite 6s linear;
  height: 40vmin;
  pointer-events: none;
}

.App-header {
  background-color: #282c34;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: calc(10px + 2vmin);
  color: white;
}

.App-link {
  color: #61dafb;
}

@keyframes App-logo-spin {
  from {
    transform: rotateY(0deg);
  }
  to {
    transform: rotateY(360deg);
  }
}

@media only screen and (max-width: 600px) {
  .img-resp {
  }
}

.ant-calendar-input-wrap {
  display: none !important;
}

.ant-picker-time-panel-cell-disabled {
  display: none !important;
}

.ant-modal-confirm-body
  > .anticon
  + .ant-modal-confirm-title
  + .ant-modal-confirm-content {
  margin-left: 0px;
}

.modalContainer {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  background: rgba(0, 0, 0, 0.5);
}

.bottom-sheet {
  position: absolute;
  background: white;
  width: 100%;
  bottom: 0;
  border-radius: 12px 12px 0px 0px;
}

.new-address-input {
  background: rgba(240, 243, 246, 0.5);
  /* Pineapple #3 */

  border: 1px solid #e3e3e3;
  box-sizing: border-box;
  border-radius: 8px;
  outline: none;
  display: block;
  padding: 10px;
  width: 100%;
}

.new-address-input:focus {
  background-image: none;
  background: rgba(240, 243, 246, 0.5);
  outline: none;
  border-color: #3f8cff;
}

.new-address-input::placeholder {
  font-weight: 400;
}

.mt-24px {
  margin-top: 24px;
}
.strikethrough {
  position: relative;
}
.strikethrough:before {
  position: absolute;
  content: '';
  left: 0;
  top: 50%;
  right: 0;
  border-top: 1px solid red; /* Set the color of the strike-through line */

  -webkit-transform: rotate(-5deg);
  -moz-transform: rotate(-5deg);
  -ms-transform: rotate(-5deg);
  -o-transform: rotate(-5deg);
  transform: rotate(-5deg);
}

/* ── PPMC Figma-style form ─────────────────────────────── */
.ppmc-form .ant-form-item-label > label {
  font-size: 13px;
  color: #686670;
  font-weight: 500;
}

.ppmc-form .ant-input {
  border: 1.5px solid #f36222 !important;
  border-radius: 12px !important;
  padding: 11px 14px !important;
  font-size: 14px;
  color: #1e2022;
}
.ppmc-form .ant-input:hover,
.ppmc-form .ant-input:focus {
  border-color: #f36222 !important;
  box-shadow: 0 0 0 2px rgba(243, 98, 34, 0.12) !important;
}

.ppmc-form .ant-input-affix-wrapper {
  border: 1.5px solid #f36222 !important;
  border-radius: 12px !important;
  padding: 11px 14px !important;
}
.ppmc-form .ant-input-affix-wrapper:hover,
.ppmc-form .ant-input-affix-wrapper-focused {
  border-color: #f36222 !important;
  box-shadow: 0 0 0 2px rgba(243, 98, 34, 0.12) !important;
}
.ppmc-form .ant-input-affix-wrapper .ant-input {
  border: none !important;
  padding: 0 !important;
  box-shadow: none !important;
}

.ppmc-form .ant-select .ant-select-selector {
  border: 1.5px solid #f36222 !important;
  border-radius: 12px !important;
  padding: 7px 14px !important;
  height: auto !important;
  min-height: 44px !important;
  font-size: 14px;
  align-items: center;
}
.ppmc-form .ant-select:hover .ant-select-selector,
.ppmc-form .ant-select-focused .ant-select-selector {
  border-color: #f36222 !important;
  box-shadow: 0 0 0 2px rgba(243, 98, 34, 0.12) !important;
}
.ppmc-form .ant-select-single .ant-select-selector .ant-select-selection-item,
.ppmc-form
  .ant-select-single
  .ant-select-selector
  .ant-select-selection-placeholder {
  line-height: 28px;
}

.ppmc-form .ant-form-item {
  margin-bottom: 16px;
}

/* ===== Animations ===== */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

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

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

@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.02); }
}

@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

/* ===== Tracking Page ===== */
.tracking-page {
  max-width: 600px;
  margin: 0 auto;
  padding: 24px 20px;
  min-height: 100vh;
  animation: fadeIn 0.5s ease-out;
  font-family: 'Mulish', sans-serif;
}

.tracking-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
  padding-bottom: 14px;
  border-bottom: 1px solid #EEEEF0;
}

.tracking-help-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  padding: 6px 12px;
  border-radius: 20px;
  border: none;
  background: transparent;
  transition: background 0.2s ease, transform 0.15s ease;
}

.tracking-help-btn:hover {
  background: rgba(113, 79, 255, 0.06);
  transform: scale(1.03);
}

.tracking-help-btn:active {
  transform: scale(0.97);
}

.tracking-details-card {
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid #EEEEF0;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04), 0 1px 3px rgba(0, 0, 0, 0.03);
  animation: fadeInUp 0.5s ease-out 0.1s both;
}

.tracking-details-header {
  padding: 14px 16px;
  margin: 0;
  font-weight: 700;
  font-size: 15px;
  border-bottom: 1px solid #EEEEF0;
  border-radius: 0;
}

.tracking-details-body {
  padding: 16px;
  font-size: 14px;
  line-height: 1.6;
}

.tracking-partner-card {
  margin-top: 14px;
  background: white;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
}

.tracking-partner-badge {
  color: white;
  padding: 3px 10px;
  border-radius: 14px 0px 14px 0px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.3px;
}

.tracking-partner-body {
  padding: 14px 16px;
}

.tracking-status-section {
  margin-top: 28px;
  animation: fadeInUp 0.5s ease-out 0.2s both;
}

.tracking-status-title {
  margin-bottom: 20px !important;
  font-size: 16px !important;
  letter-spacing: -0.2px;
}

/* Step card styling */
.tracking-step-card {
  border-radius: 12px;
  padding: 8px 12px;
  font-size: 14px;
  font-weight: 500;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.tracking-step-card:hover {
  transform: translateX(2px);
}

.tracking-step-active {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.tracking-step-timestamp {
  text-align: right;
  font-size: 12px;
  color: #9CA3AF;
  margin-top: 4px;
  letter-spacing: 0.2px;
}

/* Steps timeline connector override */
.tracking-steps.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {
  padding: 28px 0 4px;
}

.tracking-steps.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail::after {
  width: 2px !important;
  border-radius: 2px;
}

.tracking-steps .ant-steps-item-description {
  padding-bottom: 4px !important;
  max-width: 100% !important;
}

.tracking-steps .ant-steps-item-icon {
  margin-top: 4px;
}

.tracking-steps.ant-steps-vertical > .ant-steps-item:not(:last-child) > .ant-steps-item-container > .ant-steps-item-tail {
  display: block;
}

.tracking-steps .ant-steps-item {
  padding-bottom: 12px !important;
}
.tracking-download-btn {
  padding: 12px;
  width: 100%;
  border-radius: 12px;
  text-align: center;
  margin-top: 10px;
  font-weight: 600;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.tracking-download-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

.tracking-download-btn:active {
  transform: translateY(0);
}

/* Phlebo card */
.tracking-phlebo-card {
  padding-top: 8px;
  border-top: 1px solid #E2E8F0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 8px;
}

.tracking-phlebo-info {
  display: flex;
  align-items: center;
  gap: 12px;
}

.tracking-map-img {
  max-width: 100%;
  border-radius: 12px;
  margin-top: 10px;
  cursor: pointer;
  transition: transform 0.2s ease;
}

.tracking-map-img:hover {
  transform: scale(1.01);
}

/* Override Ant Steps for tracking page */
.tracking-page .ant-steps-item-tail::after {
  width: 2px !important;
}

.tracking-page .ant-steps-item-icon {
  margin-top: 4px;
}

.tracking-page .ant-steps-item-description {
  max-width: 100% !important;
}

/* ===== Booking Page ===== */
.booking-greeting {
  animation: fadeInUp 0.5s ease-out;
}

.booking-logo {
  animation: fadeIn 0.4s ease-out;
}

.booking-form-section {
  animation: slideInUp 0.4s ease-out;
}

.booking-package-card {
  transition: transform 0.25s ease, box-shadow 0.25s ease !important;
}

.booking-package-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12), 0 0 0 6px rgba(235, 229, 255, 0.64) !important;
}

.booking-package-card.selected {
  transform: translateY(-4px) scale(1.01) !important;
  box-shadow: 0 8px 28px rgba(243, 98, 34, 0.18), 0 0 0 6px rgba(235, 229, 255, 0.64) !important;
}

.booking-bottom-bar {
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.06);
  transition: box-shadow 0.3s ease;
}

.booking-bottom-bar .ant-btn {
  transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.booking-bottom-bar .ant-btn:not(:disabled):hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(243, 98, 34, 0.35);
}

.booking-bottom-bar .ant-btn:not(:disabled):active {
  transform: translateY(0);
}

/* Package info card improvement */
.ppmc-form .ant-alert {
  border-radius: 14px !important;
  border: 1px solid #E8E8E8 !important;
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.04);
  animation: fadeInUp 0.4s ease-out;
}

.ppmc-form .ant-alert-success {
  background: #F0FFF4 !important;
  border-color: #C6F6D5 !important;
}

/* Form field transitions */
.ppmc-form .ant-form-item {
  animation: fadeInUp 0.3s ease-out both;
}

.ppmc-form .ant-form-item:nth-child(1) { animation-delay: 0.05s; }
.ppmc-form .ant-form-item:nth-child(2) { animation-delay: 0.1s; }
.ppmc-form .ant-form-item:nth-child(3) { animation-delay: 0.15s; }
.ppmc-form .ant-form-item:nth-child(4) { animation-delay: 0.2s; }
.ppmc-form .ant-form-item:nth-child(5) { animation-delay: 0.25s; }

/* Better input focus animation */
.ppmc-form .ant-input:focus,
.ppmc-form .ant-select-focused .ant-select-selector {
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

/* Consent checkbox styling */
.ppmc-form .ant-alert-info {
  border-radius: 12px !important;
  border: 1.5px solid #BAE7FF !important;
}

