/* ======================================================================
   UNIFIED UI for Travelotopos (TLTP) & CaptainBook (CB)
   Cart + Checkout • Oxygen-safe (kills forced 10% widths)
   ====================================================================== */

/* Kill Oxygen 10% width on totals */
.oxy-woo-cart .woocommerce table.shop_table tbody th,
.oxy-woo-cart .cart_totals table.shop_table tbody tr > th,
.oxy-woo-cart .woocommerce-page table.shop_table tbody th,
.woocommerce-checkout-review-order-table tfoot th{
  width:auto !important;
}
.oxy-woo-cart .cart_totals table.shop_table{ table-layout:auto !important; }

/* Align totals labels/values */
.oxy-woo-cart .cart_totals table.shop_table tbody th{ text-align:left !important; }
.oxy-woo-cart .cart_totals table.shop_table tbody td,
.woocommerce-checkout-review-order-table tfoot td{
  text-align:right !important; padding-right:30px !important;
}

/* ======================================================================
   PANELS
   ====================================================================== */
.travelotopos-extras-block,
.booking-extras-container{
  background:#F5FCFF !important;
  border:1px solid #D9EEF8 !important;
  border-radius:12px !important;
  padding:16px 18px !important;
  margin:30px 0 0 !important;
}

/* Headings */
.travelotopos-extras-block h5,
.woocommerce-cart .booking-extras-title,
.woocommerce-checkout .booking-extras-title{
  margin:0 0 10px !important;
  font:600 18px/1.25 "Inter",system-ui,Segoe UI,Arial,sans-serif !important;
  color:#192C59 !important;
}

/* ======================================================================
   ROWS & CONTENT
   ====================================================================== */

/*timer*/
/* Timer pill */
.cart-item-timer-message{
  align-items:center;
  gap:10px;
  padding:8px 14px;
  margin-top:10px;
  background:#FFFFFF;
  border:1px solid #DAEFF8;
  border-radius:999px;
  color:#192C59;
  font:500 14px/1.3 "Inter",system-ui,Segoe UI,Arial,sans-serif;
  box-shadow:0 1px 0 rgba(25,44,89,.04);
}

/* μικρό εικονίδιο ρολογιού */
.cart-item-timer-message::before{
  content:"";
  width:16px; height:16px; flex:0 0 16px;
  background-repeat:no-repeat; background-position:center; background-size:16px 16px;
  /* svg clock inlined */
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none'><circle cx='12' cy='12' r='9' stroke='%23219ED3' stroke-width='2'/><path d='M12 7v5l3 2' stroke='%23219ED3' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
}

/* το ίδιο font/μέγεθος με το Booking Date + τονίζουμε τα digits */
.cart-item-expiration-timer{
  font-weight:700;
  font-variant-numeric:tabular-nums;
  letter-spacing:.2px;
  padding:2px 8px;
  background:#F5FCFF;
  border-radius:8px;
  color:#192C59;
}

/* Προαιρετικά states: απλά βάλε κλάση .warning ή .danger στο wrapper όταν
   ο χρόνος πέσει χαμηλά */
.cart-item-timer-message.warning{
  border-color:#FFE0B2; background:#FFF8EE;
}
.cart-item-timer-message.warning .cart-item-expiration-timer{
  border-color:#FFD8A0; background:#FFF1E0; color:#8A5200;
}
.cart-item-timer-message.danger{
  border-color:#F9C4C4; background:#FFF5F5;
  animation:pulse 1.2s ease-in-out infinite;
}
.cart-item-timer-message.danger .cart-item-expiration-timer{
  border-color:#F5B5B5; background:#FFECEC; color:#8A1E1E;
}

/* απαλό pulse για το danger */
@keyframes pulse{
  0%,100%{ box-shadow:0 0 0 0 rgba(202,22,22,.18); }
  50%    { box-shadow:0 0 0 6px rgba(202,22,22,.08); }
}

.travelotopos-extras-list{ list-style:none !important; margin:0 !important; padding:7px !important; }

.travelotopos-extra-row,
.booking-extra{
  display:grid !important;
  grid-template-columns: 1fr max-content !important;
  grid-auto-rows:auto !important;
  align-items:start !important;
  column-gap:22px !important;
  row-gap:16px !important;
  padding:18px 0 !important;
  border-bottom:1px solid #DAEFF8 !important;
  color:#192C59 !important;
  position:relative !important;
}
.travelotopos-extra-row:last-child,
.booking-extra:last-child{ border-bottom:0 !important; }

/* Left side */
.travelotopos-extra-title,
.booking-extra-title{
  grid-column:1 !important;
  display:block !important;
  font-weight:600 !important; font-size:17px !important; color:#2D96C3 !important;
  min-width:156px !important;
}
.travelotopos-extra-description,
.booking-extra-description{
  grid-column:1 !important;
  font-size:15px !important; color:#192D59 !important; margin:8px 0 0 !important; padding-right:30px !important;
  max-width:680px !important;
}
.travelotopos-extra-price,
.booking-extra-price{
  grid-column:1 !important;
  display:block !important; margin-top:6px !important;
  font-weight:600 !important; font-size:18px !important; color:#192D59 !important; white-space:nowrap !important;
}

/* ======================================================================
   RIGHT COLUMN (with or without wrapper)
   ====================================================================== */
.zas-extra-right{
  grid-column:2 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
  justify-content:flex-start !important;
  min-width:200px !important;
}
.zas-extra-right .travelotopos-extra-qty-wrap,
.zas-extra-right .booking-extra-controls{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:8px !important;
  width:auto !important;
}
.zas-extra-right .travelotopos-extra-total-line,
.zas-extra-right .booking-extra-line-total,
.zas-extra-right .booking-extra-controls-sub-price{
  margin-top:8px !important;
  background:#FFFFFF !important;
  padding:6px 10px 5px 10px !important;
  border-radius:10px !important;
  font-size:14px !important;
  line-height:1.6 !important;
  color:#192C59 !important;
  border:1px solid #DAEFF8 !important;
}

/* If there is NO wrapper, push controls/totals to 2nd column */
.travelotopos-extra-qty-wrap,
.booking-extra-controls,
.travelotopos-extra-total-line,
.booking-extra-line-total,
.booking-extra-controls-sub-price{
  grid-column:2 !important;
  justify-self:end !important;
}
.travelotopos-extra-qty-wrap,
.booking-extra-controls{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
}

/* TLTP label only */
.zas-extra-right .travelotopos-extra-total-line::before{
  content:"Total: " !important;
  font-weight:600 !important;
  margin-right:4px !important;
}
/* No duplicate labels in CB containers */
.booking-extra-line-total::before,
.booking-extra-controls-sub-price::before{ content:none !important; }
/* Hide stray amounts outside the line-total */
.booking-extra > span.woocommerce-Price-amount.amount{ display:none !important; }

/* ======================================================================
   INPUTS & BUTTONS — hard center
   ====================================================================== */
.woocommerce .quantity .qty,
.woocommerce .cart .qty,
.woocommerce table.shop_table .quantity .qty{
  padding-left:0 !important; padding-right:0 !important; text-indent:0 !important;
}
.zas-qty-slot{
  display:inline-flex !important;
  width:72px !important; height:40px !important;
  align-items:center !important; justify-content:center !important;
  background:transparent !important;
}
.travelotopos-extra-qty-wrap input[type="number"].travelotopos-extra-qty,
.booking-extra-controls > input,
.extra-quantity{
  width:72px !important; height:40px !important;
  text-align:center !important; font-weight:600 !important; font-size:15px !important;
  border:none !important; background:transparent !important;
  padding:0 !important; padding-inline:0 !important; text-indent:0 !important;
  margin:0 !important; line-height:40px !important;
  box-shadow:none !important; outline:none !important;
  font-variant-numeric: tabular-nums !important;
  appearance:textfield !important;
  -moz-appearance:textfield !important;
}
/* kill hidden spinners */
.zas-extra-right input[type="number"].travelotopos-extra-qty::-webkit-outer-spin-button,
.zas-extra-right input[type="number"].travelotopos-extra-qty::-webkit-inner-spin-button,
.zas-extra-right .extra-quantity::-webkit-outer-spin-button,
.zas-extra-right .extra-quantity::-webkit-inner-spin-button,
.travelotopos-extra-qty-wrap input[type="number"].travelotopos-extra-qty::-webkit-outer-spin-button,
.travelotopos-extra-qty-wrap input[type="number"].travelotopos-extra-qty::-webkit-inner-spin-button{
  -webkit-appearance:none !important; appearance:none !important; margin:0 !important;
}
/* Buttons */
.travelotopos-extra-btn,
.booking-extra-remove,
.booking-extra-add{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:40px !important; height:40px !important; line-height:1 !important;
  border:1px solid #C9DDE7 !important;
  border-radius:10px !important; cursor:pointer !important;
  font:600 15px/1 inherit !important; color:#219ED3 !important; background:#DAEFF8 !important;
  box-shadow:none !important; outline:none !important;
  transition:background .15s ease, border-color .15s ease !important;
}
.travelotopos-extra-btn:hover,
.booking-extra-remove:hover,
.booking-extra-add:hover{
  background:#CFE7F3 !important; border-color:#CFE7F3 !important;
}
.booking-extras-control-subtotal-text{ font-weight:600 !important; }

/* ======================================================================
   BOOKING DATE / PARTICIPANTS
   ====================================================================== */
td.product-name dl.variation,
.cb-cart-date-participants{
  margin-top:14px !important;
  color:#192C59 !important;
  font-size:15px !important;
  line-height:1.45 !important;
}

/* Tight spacing: Date -> Participants */
td.product-name dl.variation{ margin:10px 0 0 !important; }
/* DO NOT force inline here (caused spacing issues) */
td.product-name dl.variation dt{ font-weight:600 !important; margin-right:6px !important; }
td.product-name dl.variation dd{ margin-right:14px !important; }
td.product-name dl.variation dd p{ margin:0 !important; }

/* Participants list (Cart): person type -> qty */
.cb-cart-date-participants strong{ font-weight:600 !important; margin-right:6px !important; }
.cb-participants-list,
.tltp-participants-list{ list-style:none !important; margin:6px 0 0 !important; padding:0 !important; }
.cb-participants-list li,
.tltp-participants-list li{ margin:0 0 2px !important; line-height:1.35 !important; font-size: 15px !important;}

/* Match typography of Participants with Booking Date */
td.product-name .cb-participants-list,
td.product-name .tltp-participants-list{
  font-size:15px !important;
  line-height:1.45 !important;
  color:#192C59 !important;
}
td.product-name .cb-participants-list *,
td.product-name .tltp-participants-list *{
  font-size:inherit !important;
}
.cb_participants_label_in_cart{
  font-weight:600 !important;
  margin-right:4px !important;
  color:#192C59 !important;
  opacity:1 !important;
  font-size:15px !important;
}
.cb_participants_in_cart{ color:#192C59 !important; font-weight:500 !important; }

/* Small gap before TLTP extras when they follow the UL */
td.product-name ul.cb-participants-list + .travelotopos-extras-block,
td.product-name ul.tltp-participants-list + .travelotopos-extras-block{
  margin-top:14px !important;
}

/* Hide native variation that appears after CB custom blocks */
.cb-cart-date-participants + dl.variation,
.booking-extras-container ~ dl.variation{ display:none !important; }

/* ======================================================================
   CART TABLE CLEANUP
   ====================================================================== */
.woocommerce-cart th.product-price,
.woocommerce-cart th.product-subtotal,
.woocommerce-cart td.product-price,
.woocommerce-cart td.product-subtotal,
.woocommerce-cart td.product-quantity,
.woocommerce-cart .product-quantity{ display:none !important; }

td.product-name{ padding:12px 0 12px 30px !important; }
th.product-name{ padding-left:30px !important; }

/* ======================================================================
   TOTALS AREA
   ====================================================================== */
.cart_totals tr.order-total:not(.final-cost-row),
.shop_table tr.order-total:not(.final-cost-row),
.woocommerce-checkout-review-order-table tr.order-total:not(.final-cost-row),
tr.fee, tr.cart-fee{ display:none !important; }

.shop_table tr.final-cost-row,
.cart_totals tr.final-cost-row,
.woocommerce-checkout-review-order-table tr.final-cost-row{ display:table-row !important; }

tr.cart-subtotal>th, tr.final-cost-row>th,
.woocommerce-checkout-review-order-table tfoot tr.cart-subtotal>th,
.woocommerce-checkout-review-order-table tfoot tr.final-cost-row>th{
  font-weight:600 !important; text-transform:initial !important;
  font-size:18px !important; color:#192C59 !important;
  padding-top:20px !important; padding-bottom:25px !important;
}
tr.cart-subtotal>td, tr.final-cost-row>td,
.woocommerce-checkout-review-order-table tfoot tr.cart-subtotal>td,
.woocommerce-checkout-review-order-table tfoot tr.final-cost-row>td{
  padding-top:20px !important; padding-bottom:25px !important;
  text-align:right !important; padding-right:30px !important;
}
.final-cost-value{ font-size:25px !important; font-weight:600 !important; color:#192C59 !important; }

/* Extra Costs header/value rows */
.cart_totals table.shop_table tbody tr.extra-costs-container > th,
.woocommerce-checkout-review-order-table tfoot tr.extra-costs-container > th{
  width:auto !important;
  font-weight:600 !important;
  text-transform:initial !important;
  font-size:18px !important; color:#192C59 !important;
  padding-top:20px !important; padding-bottom:25px !important;
  border-top:none !important;
}
.cart_totals table.shop_table tbody tr.extra-costs-container > td,
.woocommerce-checkout-review-order-table tfoot tr.extra-costs-container > td{
  display:table-cell !important;
  width:auto !important;
  text-align:right !important; padding-right:30px !important;
  padding-top:20px !important; padding-bottom:25px !important;
  border-top:none !important;
}
.extra-costs-value{ font-size:18px !important; font-weight:700 !important; color:#192C59 !important; }

/* Checkout breakdown */
.woocommerce-checkout-review-order-table tfoot tr.extras-detail > th{
  text-transform: capitalize;
  font-size:16px;
  letter-spacing:normal;
  font-weight:600;
  padding-left:30px !important;
  color:#219ed3 !important;
}
.woocommerce-checkout-review-order-table tfoot tr.extra-detail > th,
.woocommerce-checkout-review-order-table tfoot tr.extra-detail > td{
  font-weight:500 !important; color:#21345f !important;
  border-bottom:none !important;
}
.woocommerce-checkout-review-order-table tfoot tr.extra-detail:not(:last-child) > th,
.woocommerce-checkout-review-order-table tfoot tr.extra-detail:not(:last-child) > td{
  border-bottom:1px solid #EEF7FB !important;
}
.woocommerce-checkout-review-order-table tfoot tr.extra-detail > td{
  padding-right:30px !important; text-align:right !important;
}

/* Strong separation before Final Total */
.woocommerce-checkout-review-order-table tfoot tr.final-cost-row > th,
.woocommerce-checkout-review-order-table tfoot tr.final-cost-row > td{
  border-top:2px solid #DAEFF8 !important;
}

/* ======================================================================
   MISC
   ====================================================================== */
.shop_table{ margin-top:20px !important; }

/* Buttons for CB location link */
.woocommerce a.button.cb-location-btn,
.woocommerce a.cb-location-btn.button{
  background:#52a9cd !important;
  color:#fff !important;
  border:none;
  display:inline-block;
  padding:8px 16px;
  border-radius:6px;
  text-decoration:none;
  cursor:pointer;
  max-width:fit-content;
}
#order_review > table > thead > tr > th.product-total,
#order_review > table > tbody > tr > td.product-total,
#order_review > table > tfoot > tr.cart-subtotal > td,
#order_review > table > tfoot > tr.fee > td,
#order_review > table > tfoot > tr.order-total > td{
  text-align:right; padding-right:30px !important;
}

/* Hide fee rows (we use custom “Extra Costs” & “Final Total”) */
tr.fee, tr.cart-fee{ display:none !important; }

#order_review > table > tfoot > tr.extras-detail > th{
  text-transform:capitalize;
  font-size:16px;
  letter-spacing:normal;
  font-weight:600;
  padding-left:30px !important;
  color:#219ed3 !important;
}
#order_review > table > tfoot > tr.extra-detail > th{
  text-transform:capitalize;
  font-size:16px;
  letter-spacing:normal;
  font-weight:600;
  padding-left:30px;
  color:#767676 !important;
  padding-top:2px;
}
#order_review > table > tfoot > tr.order-total > td > strong > span > bdi{
  display:block; padding-bottom:6px;
}
.woocommerce-Price-amount{ font-size:18px }

/* Cart/Checkout timers, etc */
#order_review .cart-item-timer-message{
  color:#192d59 !important;
  font-weight:500;
  margin-top:15px;
  font-size:15px;
  padding:10px 20px;
  background:#fff;
  border-radius:10px;
}
.cart-item-expiration-timer{ font-weight:600; }

/* ======================================================================
   CHECKOUT QUESTIONS (unchanged)
   ====================================================================== */
.checkout-questions-container{
  border:1px solid #daeff8; padding:20px; margin-bottom:40px; border-radius:10px;
}
.checkout-questions-container > h2{
  font-size:18px; font-weight:600; color:#2d96c3cf !important; margin:15px 0 30px;
}
.checkout-questions-container .checkout-question-group{
  padding-bottom:20px; margin-bottom:30px;
}
.checkout-questions-container .checkout-question-group:not(:last-child){
  border-bottom:1px solid #daeff8;
}
.checkout-questions-container input,
.checkout-questions-container select,
.checkout-questions-container textarea{ margin-bottom:10px }
.checkout-question-group .checkout-guest-inputs-row .checkout-guest-input label{
  font-size:15px !important; margin-top:12px !important;
}
.checkout-questions-container label{
  font-size:16px !important; color:#192e59 !important; margin-top:20px !important;
}
.oxy-woo-checkout form.checkout.woocommerce-checkout > div.checkout-questions-container label{ font-weight:600; }
.oxy-woo-checkout .checkout-questions-container label{ margin-bottom:8px !important; display:block; }
*:focus{ outline:none; }

.check{ background:#ffffff; border:#add solid 1px !important; }

div.checkout-questions-container input[type=text],
.oxy-woo-checkout form.checkout.woocommerce-checkout div.checkout-questions-container > div > textarea,
.oxy-woo-checkout form.checkout.woocommerce-checkout div.checkout-questions-container > div > select,
.oxy-woo-checkout form.checkout.woocommerce-checkout div.checkout-questions-container > div > input[type=number],
.oxy-woo-checkout div.checkout-questions-container input[type=date],
.oxy-woo-checkout > div > form.checkout.woocommerce-checkout > div.checkout-questions-container input[type=time],
.oxy-woo-checkout > div > form.checkout.woocommerce-checkout > div.checkout-questions-container input[type=datetime-local],
.oxy-woo-checkout > div > form.checkout.woocommerce-checkout > div.checkout-questions-container div.checkout-guest-inputs-row select{
  background:#fff7df;
  font-family:Arial, Helvetica, sans-serif !important;
  width:100%; padding:10px; min-height:50px !important;
  border-radius:10px !important; border:1px solid #eff9fc !important;
}
/* focus-visible */
div.checkout-questions-container input[type=text]:focus-visible,
.oxy-woo-checkout form.checkout.woocommerce-checkout div.checkout-questions-container > div > textarea:focus-visible,
.oxy-woo-checkout form.checkout.woocommerce-checkout div.checkout-questions-container > div > select:focus-visible,
.oxy-woo-checkout form.checkout.woocommerce-checkout div.checkout-questions-container > div > input:focus-visible,
.oxy-woo-checkout > div > form.checkout.woocommerce-checkout > div.checkout-questions-container input[type=time]:focus-visible,
.oxy-woo-checkout > div > form.checkout.woocommerce-checkout > div.checkout-questions-container  input[type=datetime-local]:focus-visible,
.oxy-woo-checkout > div > form.checkout.woocommerce-checkout > div.checkout-questions-container div.checkout-guest-inputs-row select:focus-visible{
  background-color:#fff; border:#add solid 1px !important;
}
/* selects */
.checkout-questions-container select{
  cursor:pointer !important; padding-right:30px !important;
  -webkit-appearance:none !important; -moz-appearance:none !important; appearance:none !important;
  background-image:url('https://zastours.com/wp-content/plugins/oxygen-woocommerce/elements/assets/chevron-down.svg') !important;
  background-repeat:no-repeat !important; background-position:calc(100% - 20px) center !important;
  background-size:10px !important;
}
.checkout-guest-inputs-row{
  display:flex; flex-wrap:wrap; justify-content:space-between; width:100%;
}
.checkout-guest-input{ width:calc(50% - 6px); }
.checkout-guest-input label{ display:block; margin-right:6px; }
.checkout-guest-input input{ width:calc(100% - 6px); }

/* ======================================================================
   RESPONSIVE
   ====================================================================== */
@media (max-width:992px){
  .travelotopos-extra-qty-wrap input[type="number"].travelotopos-extra-qty,
  .booking-extra-controls > input,
  .extra-quantity{ width:60px !important; }
  .zas-extra-right{ min-width:180px !important; }
  .zas-qty-slot{ width:60px !important; }
}
@media (max-width:768px){
  .travelotopos-extras-block h5, .booking-extras-title{ text-align:left !important; margin-top:30px !important; }
  .travelotopos-extra-row, .booking-extra{ grid-template-columns:1fr !important; }
  .zas-extra-right{ grid-column:1 !important; align-items:flex-end !important; margin-top:6px !important; }
  .travelotopos-extra-description, .booking-extra-description{ padding-right:0 !important; }
}

/* ======================================================================
   ORDER REVIEW – misc alignments
   ====================================================================== */
tfoot tr.extra-detail th,
tfoot tr.extra-detail td,
tfoot tr.fee th,
tfoot tr.fee td{
  text-align:left; padding:10px 15px; vertical-align:middle;
}
tfoot tr.extra-detail th{ font-weight:normal; color:#444; }
tfoot tr.fee th{ font-weight:bold; }
tfoot tr.fee td,
tfoot tr.extra-detail td{ text-align:right; }
tfoot tr.order-total th,
tfoot tr.order-total td{ font-weight:bold; }
.woocommerce-cart tfoot tr.fee td span.woocommerce-Price-amount.amount bdi,
.woocommerce-checkout tfoot tr.fee td span.woocommerce-Price-amount.amount bdi,
.woocommerce-cart tfoot tr.extra-detail td span.woocommerce-Price-amount.amount bdi,
.woocommerce-checkout tfoot tr.extra-detail td span.woocommerce-Price-amount.amount bdi{
  font-size:18px; font-weight:bold; color:#444;
}
.required-asterisk{ color:#CA1616; }
