/* ===== Parking Booking (scoped) ===== */
:root{
  --pbk-yellow:#FFCC00;
  --pbk-dark:#111827;
  --pbk-text:#1f2937;
  --pbk-muted:#6b7280;
  --pbk-line:#e5e7eb;
  --pbk-soft:#f3f4f6;
  --pbk-success:#16a34a;
  --pbk-danger:#e11d48;
  --pbk-focus:rgba(255,204,0,.25);
  --pbk-radius:14px;
  --pbk-radius-sm:10px;
  --pbk-shadow:0 8px 22px rgba(0,0,0,.06);
  --pbk-shadow-lg:0 20px 50px rgba(0,0,0,.18);
}

/* ONLY plugin hides */
.pbk-hide{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.pbk-wrapper{max-width:980px;margin:0 auto;padding:6px}
.pbk-card{
  background:#fff;border:1px solid var(--pbk-line);border-radius:var(--pbk-radius);
  padding:18px 18px 10px;box-shadow:var(--pbk-shadow);margin-bottom:18px
}

.pbk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.pbk-field-full{grid-column:1 / -1}

.pbk-field{position:relative}
.pbk-field label{display:block;font-size:13px;color:#374151;margin-bottom:6px;font-weight:600}
.pbk-field input,.pbk-field select,.pbk-field textarea{
  width:100%;height:65px;padding:.6rem .9rem;border:2px solid var(--pbk-line);
  border-radius:var(--pbk-radius-sm);background:#fff;font-size:14px;color:var(--pbk-text);
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease
}
.pbk-field textarea{height:auto;min-height:88px;resize:vertical}
.pbk-field input:focus,.pbk-field select:focus,.pbk-field textarea:focus{
  outline:0;border-color:var(--pbk-yellow);box-shadow:0 0 0 3px var(--pbk-focus)
}
.pbk-field input[disabled],.pbk-field select[disabled],.pbk-field textarea[disabled]{
  background:var(--pbk-soft);color:#9ca3af;cursor:not-allowed
}

.pbk-has-error input,.pbk-has-error select,.pbk-has-error textarea{border-color:var(--pbk-danger)!important;box-shadow:0 0 0 3px rgba(225,29,72,.08)}
.pbk-err{color:var(--pbk-danger);font-size:12px;margin-top:6px}

.pbk-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:44px;padding:0 16px;border-radius:var(--pbk-radius-sm);
  border:1px solid transparent;font-weight:800;cursor:pointer;text-decoration:none;
  transition:transform .05s ease, filter .15s ease, background .15s ease, border-color .15s ease;
  user-select:none; -webkit-user-select:none
}
.pbk-btn:active{transform:translateY(1px)}
.pbk-btn[disabled]{opacity:.7;cursor:not-allowed}
.pbk-btn-yellow{background:var(--pbk-yellow);color:#111827}
.pbk-btn-yellow:hover{filter:brightness(0.98)}
.pbk-btn-light{background:var(--pbk-soft);color:#111827;border-color:var(--pbk-line)}
.pbk-btn-light:hover{filter:brightness(0.98)}
.pbk-btn-green{background:var(--pbk-success);color:#fff}
.pbk-btn-outline{background:#fff;border-color:var(--pbk-line);color:var(--pbk-dark)}
.pbk-btn-outline:hover{border-color:#d1d5db;background:#fafafa}
.pbk-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end}

/* Back on the left in the actions row */
.pbk-actions .pbk-back{margin-right:auto}

/* Step pills */
.pbk-steps{
  width:100%;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin:0 auto 12px;
  text-align:center;
}
.step-pill{
  padding:8px 12px;border-radius:999px;background:var(--pbk-soft);color:#6b7280;
  font-weight:800;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--pbk-line)
}
.step-pill.active{background:var(--pbk-yellow);color:#111827;border-color:transparent}

/* Ribbons (top & footer) */
.pbk-price-ribbon{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:10px;padding:12px 14px;border:1px dashed var(--pbk-line);
  background:#fffdf1;border-radius:12px
}
.pbk-price-ribbon .label{color:var(--pbk-muted);font-weight:700}
.pbk-price-ribbon .amount{font-weight:900;letter-spacing:.2px}

.pbk-price-preview,
.pbk-book-footer{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:10px;padding-top:12px;border-top:1px dashed var(--pbk-line)
}
.pbk-price-preview span,.pbk-total span{color:var(--pbk-muted);font-weight:700}
#pbk-price-amount,#pbk-price-amount-bottom{font-weight:900;letter-spacing:.2px}

/* Custom select arrow */
.pbk-terminal-select,
#dep_terminal, select[name="dep_terminal"],
#ret_terminal, select[name="ret_terminal"]{
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238A8F99' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat right .6rem center/14px;
}

/* Modal */
.pbk-modal{position:fixed;inset:0;display:none;z-index:999999 !important;}
.pbk-modal.is-open{display:block}
.pbk-modal__overlay{position:absolute;inset:0;background:rgba(0,0,0,.45);z-index:1}
.pbk-modal__dialog{
  position:relative;z-index:2;max-width:520px;width:calc(100% - 24px);
  margin:12vh auto;background:#fff;border-radius:14px;overflow:hidden;
  box-shadow:0 24px 60px rgba(0,0,0,.25);
}
.pbk-modal__header{
  background:var(--pbk-yellow);padding:12px 48px 12px 16px;position:relative
}
.pbk-modal__header .h{font-weight:900;color:#111827}
.pbk-modal__close{
  position:absolute;right:8px;top:6px;width:36px;height:36px;border:0;
  background:transparent;color:#111827;font-size:22px;line-height:1;
  border-radius:999px;cursor:pointer;z-index:3
}
.pbk-modal__close:hover{filter:brightness(.9)}
.pbk-modal__body{padding:22px 18px;text-align:center}
.pbk-modal__price{font-size:36px;font-weight:900;line-height:1.2;margin:2px 0 8px}
.pbk-modal__sub{color:#6b7280;margin-top:2px}
.pbk-modal__footer{
  display:flex;justify-content:center;gap:10px;padding:14px 16px;border-top:1px solid #f3f4f6
}

/* Table (admin previews inside plugin UI) */
.pbk-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--pbk-line);border-radius:var(--pbk-radius);overflow:hidden}
.pbk-table thead th{text-align:left;background:var(--pbk-soft);border-bottom:1px solid var(--pbk-line);padding:10px 12px;font-size:13px;color:#374151}
.pbk-table tbody td{padding:10px 12px;border-bottom:1px solid #f1f5f9}
.pbk-table tbody tr:hover{background:#fcfcfc}

.pbk-alert{padding:10px 12px;border-radius:var(--pbk-radius-sm);border:1px solid var(--pbk-line);background:#fff}
.pbk-alert--success{border-color:#bbf7d0;background:#f0fdf4}
.pbk-alert--warn{border-color:#fde68a;background:#fffbeb}
.pbk-alert--error{border-color:#fecdd3;background:#fff1f2}

.pbk-spinner{width:18px;height:18px;border:2px solid #e5e7eb;border-top-color:var(--pbk-yellow);border-radius:50%;animation:pbkSpin .6s linear infinite}
@keyframes pbkSpin{to{transform:rotate(360deg)}}

.pbk-book-footer{margin-top:14px}
.pbk-total{display:flex;align-items:baseline;gap:10px}
.pbk-total strong{font-size:18px}

/* Force datepicker above all */
.ui-datepicker{z-index:999999!important}
/* If we force-hide via JS */
.pbk-dp-hidden .ui-datepicker{display:none!important}

/* ----- 3-column rows for flight info ----- */
.pbk-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
@media (max-width:768px){
  .pbk-grid{grid-template-columns:1fr}
  .pbk-actions{flex-direction:column;align-items:stretch}
  .pbk-actions .pbk-btn{width:100%}
  .pbk-row-3{grid-template-columns:1fr}
}

@media print{
  .pbk-wrapper{max-width:none}
  .pbk-btn,.pbk-actions,.pbk-steps,.pbk-modal{display:none!important}
  .pbk-card{box-shadow:none;border-color:#000}
}

/* Hard hide jQuery UI if we force it */
.pbk-dp-hidden .ui-datepicker{display:none!important}

.nice-select, .nice-select.open, .nice-select:active
 {
    
    height: 65px !important;
    border: 2px solid #e5e7eb !important;
line-height: 65px !important;
}

/* ===== Order Pay — compact, centered, responsive & branded ===== */
.woocommerce-order-pay {

  /* Center page content */
  .woocommerce {
    max-width: 980px;
    margin: 0 auto;
    padding: 0 16px;
  }

  /* Card-style summary */
  table.shop_table {
    width: 100%;
    max-width: 860px;                 /* desktop width cap */
    margin: 10px auto 18px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-top: 4px solid #FFCC00;    /* brand ribbon */
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 8px 22px rgba(0,0,0,.06);
  }
  table.shop_table th,
  table.shop_table td {
    padding: 14px 16px;
    border-bottom: 1px solid #f1f5f9;
    color: #1f2937;
  }
  table.shop_table tr:last-child th,
  table.shop_table tr:last-child td { border-bottom: 0; }

  /* Hide Subtotal row */
  table.shop_table tr.cart-subtotal { display: none !important; }

  /* Parking fee line */
  table.shop_table tr.fee th,
  table.shop_table tr.fee td {
    background: #fafafa;
    font-weight: 700;
  }

  /* Total emphasis */
  table.shop_table tr.order-total th,
  table.shop_table tr.order-total td {
    background: #fffdf1;
    font-weight: 800;
    font-size: 18px;
    border-top: 1px dashed #f3e8a3;
  }

  /* Column alignments (desktop/tablet) */
  table.shop_table th:nth-child(2),
  table.shop_table td:nth-child(2) {   /* Qty column */
    width: 90px;
    text-align: center;
    white-space: nowrap;
  }
  table.shop_table th:last-child,
  table.shop_table td:last-child {     /* Totals column */
    text-align: right;
    white-space: nowrap;
  }

  /* Notices */
  .woocommerce-info,
  .woocommerce-error,
  .woocommerce-message {
    background: #fffef3;
    border: 1px solid #e5e7eb;
    border-left: 4px solid #FFCC00;
    color: #1f2937;
    border-radius: 10px;
    padding: 12px 14px;
    box-shadow: 0 6px 16px rgba(0,0,0,.05);
    max-width: 980px;
    margin: 0 auto 12px;
  }

  /* Pay button — brand yellow */
  #place_order,
  .woocommerce #payment #place_order {
    background: #FFCC00;
    color: #111827;
    border: 0;
    border-radius: 12px;
    padding: 14px 22px;
    font-weight: 800;
    box-shadow: 0 8px 18px rgba(255,204,0,.35);
    transition: transform .05s ease, filter .15s ease, box-shadow .15s ease;
  }
  #place_order:hover { filter: brightness(.98); box-shadow: 0 10px 22px rgba(255,204,0,.45); }
  #place_order:active { transform: translateY(1px); }

  /* ---------- responsive ---------- */

  /* tighten spacing on medium screens */
  @media (max-width: 1024px) {
    .woocommerce { max-width: 900px; }
    table.shop_table { max-width: 820px; }
  }
  @media (max-width: 768px) {
    .woocommerce { max-width: 680px; }
    table.shop_table th, table.shop_table td { padding: 12px 14px; }
  }

  /* mobile: collapse to 2-column list, hide Qty, keep label left / amount right */
  @media (max-width: 560px) {
    .woocommerce { max-width: 100%; padding: 0 12px; }
    table.shop_table { max-width: 100%; border-radius: 12px; }

    table.shop_table thead { display: none; }             /* remove head on phones */

    /* turn each row into a small grid */
    table.shop_table tr {
      display: grid;
      grid-template-columns: 1fr auto;                    /* label | amount */
      align-items: center;
      gap: 8px;
    }
    /* make cells block so grid works nicely */
    table.shop_table th,
    table.shop_table td { display: block; border-bottom: 0; padding: 12px 14px; }

    /* hide Qty column */
    table.shop_table th:nth-child(2),
    table.shop_table td:nth-child(2) { display: none !important; }

    /* add separators between rows */
    table.shop_table tbody tr + tr { border-top: 1px solid #f1f5f9; }

    /* emphasise total on mobile */
    table.shop_table tr.order-total {
      background: #fffdf1;
      border-top: 1px dashed #f3e8a3;
      border-bottom-left-radius: 12px;
      border-bottom-right-radius: 12px;
    }

    /* full-width pay button */
    #place_order { width: 100%; }
  }
}