/*!
 * CET Service Booking UI v1.0
 * Shared visual control layer for:
 * - Package Tour
 * - Transportation Only
 * - Taxi Transfer
 *
 * This first release keeps the current production appearance.
 * Future UI changes can be made here and inherited by all three services.
 */

:root {
  --cet-service-primary: #2867ea;
  --cet-service-primary-hover: #1f58d5;
  --cet-service-primary-active: #174fc7;
  --cet-service-primary-soft: #eef5ff;

  --cet-service-navy: #102747;
  --cet-service-text: #263850;
  --cet-service-muted: #718096;

  --cet-service-white: #ffffff;
  --cet-service-soft: #f6f8fc;
  --cet-service-line: #dfe6ef;

  --cet-service-success: #16875d;
  --cet-service-success-soft: #ecfdf3;
  --cet-service-warning: #b76a00;
  --cet-service-warning-soft: #fff8e6;

  --cet-service-radius-sm: 10px;
  --cet-service-radius-md: 14px;
  --cet-service-radius-lg: 20px;
  --cet-service-button-height: 56px;

  --cet-service-shadow-sm: 0 6px 18px rgba(16,39,71,.06);
  --cet-service-shadow-md: 0 16px 40px rgba(16,39,71,.10);
}

/* Package Tour / Booking UI V7 */
.cet-booking-ui-v7 {
  --cet-v7-primary: var(--cet-service-primary);
  --cet-v7-primary-hover: var(--cet-service-primary-hover);
  --cet-v7-navy: var(--cet-service-navy);
  --cet-v7-text: var(--cet-service-text);
  --cet-v7-muted: var(--cet-service-muted);
  --cet-v7-surface: var(--cet-service-white);
  --cet-v7-soft: var(--cet-service-soft);
  --cet-v7-soft-blue: var(--cet-service-primary-soft);
  --cet-v7-line: var(--cet-service-line);
  --cet-v7-success: var(--cet-service-success);
  --cet-v7-success-soft: var(--cet-service-success-soft);
  --cet-v7-warning: var(--cet-service-warning);
  --cet-v7-warning-soft: var(--cet-service-warning-soft);
}

/* Transportation Only */
.cet-tv6 {
  --cet-primary: var(--cet-service-primary);
  --cet-primary-active: var(--cet-service-primary-active);
  --cet-primary-soft: var(--cet-service-primary-soft);
  --cet-text-strong: var(--cet-service-navy);
  --cet-text: var(--cet-service-text);
  --cet-text-muted: var(--cet-service-muted);
  --cet-background-soft: var(--cet-service-soft);
  --cet-border-soft: var(--cet-service-line);
  --cet-success: var(--cet-service-success);
  --cet-success-soft: var(--cet-service-success-soft);
}

/* Taxi Transfer */
.cet-air-booking-ui {
  --cet-air-primary: var(--cet-service-primary);
  --cet-air-primary-dark: var(--cet-service-primary-active);
  --cet-air-primary-soft: var(--cet-service-primary-soft);
  --cet-air-navy: var(--cet-service-navy);
  --cet-air-text: var(--cet-service-text);
  --cet-air-muted: var(--cet-service-muted);
  --cet-air-line: var(--cet-service-line);
  --cet-air-surface: var(--cet-service-white);
  --cet-air-soft: var(--cet-service-soft);
  --cet-air-success: var(--cet-service-success);
  --cet-air-success-soft: var(--cet-service-success-soft);
}

/*
 * Shared interaction baseline.
 * Selectors are intentionally narrow so this layer does not alter other site UI.
 */
.cet-booking-ui-v7 button,
.cet-tv6 button,
.cet-air-booking-ui button {
  -webkit-tap-highlight-color: transparent;
}

.cet-booking-ui-v7 button:focus-visible,
.cet-tv6 button:focus-visible,
.cet-air-booking-ui button:focus-visible {
  outline: 3px solid rgba(40,103,234,.22);
  outline-offset: 2px;
}


/* =========================================================
   CET SERVICE BOOKING UI — SHARED STRUCTURE v1.3
   Structural control layer for Package Tour, Transportation
   Only and Taxi Transfer. Logic remains untouched.
   ========================================================= */

:root{
  --cet-service-card-bg:#ffffff;
  --cet-service-card-border:var(--cet-service-line);
  --cet-service-card-radius:20px;
  --cet-service-card-shadow:0 14px 34px rgba(16,39,71,.08);

  --cet-service-field-bg:#ffffff;
  --cet-service-field-border:var(--cet-service-line);
  --cet-service-field-radius:14px;
  --cet-service-field-height:56px;

  --cet-service-popup-bg:#ffffff;
  --cet-service-popup-radius:20px;
  --cet-service-popup-shadow:0 28px 70px rgba(16,39,71,.18);

  --cet-service-summary-bg:#ffffff;
  --cet-service-summary-radius:20px;
  --cet-service-summary-shadow:0 16px 40px rgba(16,39,71,.10);

  --cet-service-gap-sm:10px;
  --cet-service-gap-md:14px;
  --cet-service-gap-lg:20px;
}

/* Shared card baseline */
.cet-booking-ui-v7 .cet-v7-card,
.cet-booking-ui-v7 .cet-v7-panel,
.cet-tv6 .cet-tv6__card,
.cet-tv6 .cet-tv6__panel,
.cet-air-booking-ui .tour-book-card,
.cet-air-booking-ui .cet-air-summary-card{
  border-radius:var(--cet-service-card-radius)!important;
}

/* Shared field baseline */
.cet-booking-ui-v7 input,
.cet-booking-ui-v7 select,
.cet-booking-ui-v7 textarea,
.cet-tv6 input,
.cet-tv6 select,
.cet-tv6 textarea,
.cet-air-booking-ui input,
.cet-air-booking-ui select,
.cet-air-booking-ui textarea,
.cet-air-booking-ui .tour-book-input-fake{
  border-radius:var(--cet-service-field-radius)!important;
}

/* Shared popup / modal shell */
.cet-booking-ui-v7 .cet-v7-modal,
.cet-booking-ui-v7 .cet-v7-popup,
.cet-tv6 .cet-tv6__modal,
.cet-tv6 .cet-tv6__popup,
.cet-air-selector-shell,
.cet-air-calendar-shell,
#cetAirPopupOverlay .cet-air-popup-modal{
  border-radius:var(--cet-service-popup-radius)!important;
}

/* Shared summary shell */
.cet-booking-ui-v7 .cet-v7-summary,
.cet-tv6 .cet-tv6__summary,
.cet-air-booking-ui .cet-air-summary-card,
#cetAirSummaryOverlay #gygSummaryCard{
  border-radius:var(--cet-service-summary-radius)!important;
}

/* Shared primary action baseline */
.cet-booking-ui-v7 .cet-v7-btn-primary,
.cet-booking-ui-v7 button.cet-v7-btn-primary,
.cet-tv6 .cet-tv6__primary,
.cet-tv6 .cet-tv6__check,
.cet-air-booking-ui .tour-book-btn,
.cet-air-booking-ui .cet-air-book-button,
.cet-air-booking-ui .cet-air-confirm-button{
  min-height:var(--cet-service-button-height)!important;
  border-radius:var(--cet-service-radius-md)!important;
  font-weight:700!important;
  transition:
    transform .15s ease,
    box-shadow .15s ease,
    filter .15s ease!important;
}

.cet-booking-ui-v7 .cet-v7-btn-primary:hover,
.cet-tv6 .cet-tv6__primary:hover,
.cet-tv6 .cet-tv6__check:hover,
.cet-air-booking-ui .tour-book-btn:hover,
.cet-air-booking-ui .cet-air-book-button:hover,
.cet-air-booking-ui .cet-air-confirm-button:hover{
  transform:translateY(-1px)!important;
}

@media(max-width:768px){
  :root{
    --cet-service-card-radius:16px;
    --cet-service-popup-radius:0px;
    --cet-service-summary-radius:16px;
    --cet-service-field-radius:12px;
  }
}


/* =========================================================
   CET SERVICE BOOKING UI — COMPONENT STANDARDIZATION v1.4
   Shared Calendar / Counter / Vehicle / Summary controls.
   ========================================================= */

:root{
  --cet-service-calendar-day:42px;
  --cet-service-counter-size:42px;
  --cet-service-vehicle-radius:16px;
  --cet-service-component-gap:14px;
  --cet-service-summary-width:880px;
}

/* Calendar — Package Tour + Transportation Only */
.cet-v6-app-overlay .cet-v6-app-calendar__day,
.cet-tv6-overlay .cet-tv6-calendar__day{
  width:var(--cet-service-calendar-day)!important;
  min-width:var(--cet-service-calendar-day)!important;
  height:var(--cet-service-calendar-day)!important;
  min-height:var(--cet-service-calendar-day)!important;
  border-radius:50%!important;
}

/* Calendar — Taxi Transfer / Flatpickr */
.cet-air-calendar-host .flatpickr-day{
  height:var(--cet-service-calendar-day)!important;
  line-height:var(--cet-service-calendar-day)!important;
  border-radius:50%!important;
}

/* Passenger counters — Package Tour */
.cet-v6-app-overlay .cet-v6-app-participants__controls button[data-change]{
  width:var(--cet-service-counter-size)!important;
  min-width:var(--cet-service-counter-size)!important;
  height:var(--cet-service-counter-size)!important;
  min-height:var(--cet-service-counter-size)!important;
}

/* Passenger counters — Transportation Only */
.cet-tv6-overlay .cet-tv6-counter button{
  width:var(--cet-service-counter-size)!important;
  min-width:var(--cet-service-counter-size)!important;
  height:var(--cet-service-counter-size)!important;
  min-height:var(--cet-service-counter-size)!important;
}

/* Passenger / luggage counters — Taxi Transfer */
.cet-air-counter button{
  width:var(--cet-service-counter-size)!important;
  min-width:var(--cet-service-counter-size)!important;
  height:var(--cet-service-counter-size)!important;
  min-height:var(--cet-service-counter-size)!important;
}

/* Vehicle blocks */
.cet-v6-app-overlay .cet-v6-app-participants__vehicle,
.cet-tv6-overlay .cet-tv6-vehicle-card,
.cet-air-booking-ui .cet-air-vehicle-box{
  border-radius:var(--cet-service-vehicle-radius)!important;
}

/* Component vertical rhythm */
.cet-v6-app-overlay .cet-v6-app-participants__panel,
.cet-tv6-overlay .cet-tv6-passengers__panel,
.cet-air-counter-list{
  gap:var(--cet-service-component-gap)!important;
}

/* Summary width — desktop */
@media(min-width:901px){
  .cet-v6-app-overlay .cet-v6-app-summary,
  .cet-tv6-overlay .cet-tv6-summary,
  #cetAirSummaryOverlay .cet-air-summary-screen-content{
    width:min(100%,var(--cet-service-summary-width))!important;
    max-width:var(--cet-service-summary-width)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
}

/* Shared selected / active treatment */
.cet-v6-app-overlay .cet-v6-app-calendar__day.is-selected,
.cet-tv6-overlay .cet-tv6-calendar__day.is-selected,
.cet-air-calendar-host .flatpickr-day.selected{
  color:#fff!important;
  background:var(--cet-service-primary)!important;
  border-color:var(--cet-service-primary)!important;
  box-shadow:0 6px 14px rgba(40,103,234,.24)!important;
}

/* Shared counter interaction */
.cet-v6-app-overlay .cet-v6-app-participants__controls button[data-change],
.cet-tv6-overlay .cet-tv6-counter button,
.cet-air-counter button{
  color:var(--cet-service-primary)!important;
  background:var(--cet-service-white)!important;
  border:1px solid var(--cet-service-line)!important;
  border-radius:var(--cet-service-field-radius)!important;
}

.cet-v6-app-overlay .cet-v6-app-participants__controls button[data-change]:hover,
.cet-tv6-overlay .cet-tv6-counter button:hover,
.cet-air-counter button:hover{
  color:var(--cet-service-primary-active)!important;
  background:var(--cet-service-primary-soft)!important;
  border-color:rgba(40,103,234,.30)!important;
}

@media(max-width:768px){
  :root{
    --cet-service-calendar-day:40px;
  }
}


/* =========================================================
   CET SHARED CALENDAR UI v1.5
   One visual standard for Package Tour, Transportation Only
   and Taxi Transfer. Date-selection logic remains separate.
   ========================================================= */

:root{
  --cet-service-calendar-width:760px;
  --cet-service-calendar-month-gap:34px;
  --cet-service-calendar-cell-gap:6px;
}

/* ---------- Desktop calendar shell ---------- */
@media(min-width:769px){
  .cet-v6-calendar-overlay .cet-v6-calendar,
  .cet-tv6-overlay .cet-tv6-calendar,
  .cet-air-calendar-shell{
    width:min(calc(100vw - 40px),var(--cet-service-calendar-width))!important;
    max-width:var(--cet-service-calendar-width)!important;
    min-height:0!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding:14px!important;
    background:var(--cet-service-white)!important;
    border:1px solid var(--cet-service-line)!important;
    border-radius:var(--cet-service-card-radius)!important;
    box-shadow:var(--cet-service-shadow-md)!important;
  }
}

/* ---------- Toolbar ---------- */
.cet-v6-calendar__toolbar,
.cet-tv6-calendar__toolbar{
  display:grid!important;
  grid-template-columns:40px minmax(0,1fr) 40px!important;
  align-items:center!important;
  gap:10px!important;
  min-height:44px!important;
  margin:0 0 12px!important;
  padding:0!important;
  border-bottom:1px solid var(--cet-service-line)!important;
}

.cet-v6-calendar__toolbar-title,
.cet-tv6-calendar__toolbar-title{
  color:var(--cet-service-navy)!important;
  font-size:.9rem!important;
  font-weight:700!important;
  line-height:1.25!important;
  text-align:center!important;
}

.cet-v6-calendar__nav,
.cet-tv6-calendar__toolbar button,
.cet-air-calendar-host .flatpickr-prev-month,
.cet-air-calendar-host .flatpickr-next-month{
  width:36px!important;
  min-width:36px!important;
  height:36px!important;
  min-height:36px!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  color:var(--cet-service-navy)!important;
  background:var(--cet-service-white)!important;
  border:1px solid transparent!important;
  border-radius:10px!important;
  box-shadow:none!important;
}

.cet-v6-calendar__nav:hover,
.cet-tv6-calendar__toolbar button:hover,
.cet-air-calendar-host .flatpickr-prev-month:hover,
.cet-air-calendar-host .flatpickr-next-month:hover{
  color:var(--cet-service-primary)!important;
  background:var(--cet-service-primary-soft)!important;
  border-color:rgba(40,103,234,.18)!important;
}

/* ---------- Two-month layout ---------- */
.cet-v6-calendar__months,
.cet-tv6-calendar__months{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:var(--cet-service-calendar-month-gap)!important;
  margin:0!important;
  padding:8px 10px 12px!important;
}

.cet-v6-calendar__month,
.cet-tv6-calendar__month{
  min-width:0!important;
}

.cet-v6-calendar__month-heading,
.cet-tv6-calendar__month h3{
  margin:0 0 10px!important;
  color:var(--cet-service-navy)!important;
  font-size:.95rem!important;
  font-weight:700!important;
  line-height:1.3!important;
  text-align:center!important;
}

/* ---------- Weekday headings ---------- */
.cet-v6-calendar__weekdays,
.cet-tv6-calendar__weekdays{
  display:grid!important;
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
  margin:0 0 4px!important;
}

.cet-v6-calendar__weekdays span,
.cet-tv6-calendar__weekdays span,
.cet-air-calendar-host span.flatpickr-weekday{
  padding:4px 0!important;
  color:var(--cet-service-muted)!important;
  font-size:.7rem!important;
  font-weight:600!important;
  line-height:1.2!important;
  text-align:center!important;
}

/* ---------- Date grids ---------- */
.cet-v6-calendar__grid,
.cet-tv6-calendar__grid{
  display:grid!important;
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
  gap:var(--cet-service-calendar-cell-gap)!important;
}

/* Correct production selectors for Package + Transportation */
.cet-v6-calendar__day,
.cet-tv6-calendar__day,
.cet-air-calendar-host .flatpickr-day{
  width:var(--cet-service-calendar-day)!important;
  min-width:var(--cet-service-calendar-day)!important;
  max-width:var(--cet-service-calendar-day)!important;
  height:var(--cet-service-calendar-day)!important;
  min-height:var(--cet-service-calendar-day)!important;
  line-height:var(--cet-service-calendar-day)!important;
  justify-self:center!important;
  padding:0!important;
  color:var(--cet-service-text)!important;
  background:transparent!important;
  border:1px solid transparent!important;
  border-radius:50%!important;
  box-shadow:none!important;
  font-size:.78rem!important;
  font-weight:600!important;
  text-align:center!important;
  transition:
    color .14s ease,
    background-color .14s ease,
    border-color .14s ease,
    box-shadow .14s ease,
    transform .14s ease!important;
}

.cet-v6-calendar__day:hover:not(:disabled),
.cet-tv6-calendar__day:hover:not(:disabled),
.cet-air-calendar-host .flatpickr-day:hover{
  color:var(--cet-service-primary-active)!important;
  background:var(--cet-service-primary-soft)!important;
  border-color:rgba(40,103,234,.18)!important;
  transform:none!important;
}

/* Today */
.cet-v6-calendar__day.is-today:not(.is-selected),
.cet-tv6-calendar__day.is-today:not(.is-selected),
.cet-air-calendar-host .flatpickr-day.today:not(.selected){
  color:var(--cet-service-primary)!important;
  background:var(--cet-service-white)!important;
  border-color:rgba(40,103,234,.55)!important;
  box-shadow:none!important;
}

/* Selected */
.cet-v6-calendar__day.is-selected,
.cet-tv6-calendar__day.is-selected,
.cet-air-calendar-host .flatpickr-day.selected{
  color:#fff!important;
  background:var(--cet-service-primary)!important;
  border-color:var(--cet-service-primary)!important;
  box-shadow:0 5px 12px rgba(40,103,234,.24)!important;
  transform:none!important;
}

/* Disabled / outside */
.cet-v6-calendar__day.is-past,
.cet-v6-calendar__day.is-outside,
.cet-tv6-calendar__day.is-disabled,
.cet-air-calendar-host .flatpickr-day.flatpickr-disabled,
.cet-air-calendar-host .flatpickr-day.prevMonthDay,
.cet-air-calendar-host .flatpickr-day.nextMonthDay{
  color:#bcc5d1!important;
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
  cursor:not-allowed!important;
}

/* Blocked / closed */
.cet-v6-calendar__day.is-blocked,
.cet-tv6-calendar__day.is-blocked{
  color:#d94836!important;
  background:#fff1ef!important;
  border-color:transparent!important;
}

/* ---------- Footer ---------- */
.cet-v6-calendar__footer,
.cet-tv6-calendar__footer{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(220px,280px)!important;
  align-items:center!important;
  gap:14px!important;
  margin:8px 0 0!important;
  padding:10px 0 0!important;
  border-top:1px solid var(--cet-service-line)!important;
}

.cet-v6-calendar__selection,
.cet-tv6-calendar__selection{
  color:var(--cet-service-muted)!important;
  font-size:.72rem!important;
  font-weight:500!important;
}

.cet-v6-calendar__confirm,
.cet-tv6-calendar__footer .cet-tv6__primary{
  min-height:44px!important;
  margin:0!important;
  padding:10px 16px!important;
  color:#fff!important;
  background:var(--cet-service-primary)!important;
  border:0!important;
  border-radius:var(--cet-service-radius-md)!important;
  box-shadow:none!important;
  font-size:.82rem!important;
  font-weight:700!important;
}

.cet-v6-calendar__confirm:disabled,
.cet-tv6-calendar__footer .cet-tv6__primary:disabled{
  opacity:.36!important;
  cursor:not-allowed!important;
}

/* ---------- Taxi Flatpickr harmonization ---------- */
.cet-air-calendar-host{
  min-height:0!important;
}

.cet-air-calendar-host .flatpickr-calendar{
  width:100%!important;
  max-width:none!important;
  background:transparent!important;
}

.cet-air-calendar-host .flatpickr-months{
  min-height:44px!important;
  align-items:center!important;
  margin:0 0 10px!important;
  border-bottom:1px solid var(--cet-service-line)!important;
}

.cet-air-calendar-host .flatpickr-month{
  height:44px!important;
  color:var(--cet-service-navy)!important;
}

.cet-air-calendar-host .flatpickr-current-month{
  padding-top:10px!important;
  font-size:.9rem!important;
  font-weight:700!important;
}

.cet-air-calendar-host .flatpickr-weekdays{
  height:auto!important;
  margin-bottom:4px!important;
}

.cet-air-calendar-host .flatpickr-days,
.cet-air-calendar-host .dayContainer{
  width:100%!important;
  min-width:100%!important;
  max-width:100%!important;
}

/* ---------- Mobile ---------- */
@media(max-width:768px){
  :root{
    --cet-service-calendar-day:40px;
    --cet-service-calendar-month-gap:18px;
  }

  .cet-v6-calendar__months,
  .cet-tv6-calendar__months{
    grid-template-columns:1fr!important;
    padding:8px 0 12px!important;
  }

  .cet-v6-calendar__months > :nth-child(n+2),
  .cet-tv6-calendar__months > :nth-child(n+2){
    display:none!important;
  }

  .cet-v6-calendar__footer,
  .cet-tv6-calendar__footer{
    grid-template-columns:1fr!important;
  }

  .cet-v6-calendar__confirm,
  .cet-tv6-calendar__footer .cet-tv6__primary{
    width:100%!important;
  }
}


/* =========================================================
   v1.7.1 SHARED SERVICE TOKENS
   ========================================================= */
:root{
  --cet-service-unavailable:#ef4444;
}

/* All primary actions from one token */
.cet-booking-ui-v7 .cet-v7-btn-primary,
.cet-booking-ui-v7 button.cet-v7-btn-primary,
.cet-tv6 .cet-tv6__primary,
.cet-tv6 .cet-tv6__check,
.cet-air-booking-ui .tour-book-btn,
.cet-air-booking-ui .cet-air-book-button,
.cet-air-booking-ui .cet-air-confirm-button{
  background:var(--cet-service-primary)!important;
  border-color:var(--cet-service-primary)!important;
  color:#fff!important;
}

/* Shared selected-state token */
.cet-booking-ui-v7 [aria-selected="true"],
.cet-tv6 [aria-selected="true"],
.cet-air-booking-ui [aria-selected="true"]{
  color:#fff!important;
  background:var(--cet-service-primary)!important;
  border-color:var(--cet-service-primary)!important;
}

/* Shared unavailable token */
.cet-booking-ui-v7 .is-unavailable,
.cet-booking-ui-v7 .is-blocked,
.cet-tv6 .is-unavailable,
.cet-tv6 .is-blocked,
.cet-air-booking-ui .is-unavailable,
.cet-air-booking-ui .is-blocked{
  color:var(--cet-service-unavailable)!important;
}
