:root{
  --bg:#f5f5f6;
  --surface:#ffffff;
  --surface-soft:#f0f0f2;
  --text:#1f2430;
  --muted:#6d7484;
  --line:#d9dde5;
  --brand:#ff0f72;
  --brand-2:#2f92d0;
  --dark:#171a23;
  --dark-2:#222734;
  --success:#0f9d58;
  --shadow:0 12px 28px rgba(20,28,45,.08);
  --radius:18px;
  --container:1240px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;  
  background:var(--bg);
  color:var(--text);
  line-height:1.45;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit}
.container{width:min(var(--container),calc(100% - 32px));margin:0 auto}

.topbar{
  background:linear-gradient(90deg,var(--dark),var(--dark-2));
  color:#fff;
  font-size:14px;
}
.topbar-inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:10px 0;flex-wrap:wrap;
}
.topbar .left, .topbar .right{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.badge-dot{
  width:18px;height:18px;border-radius:999px;background:var(--brand);
  display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700
}
.main-header{
  background:linear-gradient(90deg,var(--dark),#1e2330);
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.main-header-inner{
  display:flex;align-items:center;justify-content:space-between;padding:18px 0;gap:24px;
}
.logo-wrap{display:flex;align-items:center;gap:14px}
.logo-mark{
  width:64px;height:64px;border:2px solid rgba(255,255,255,.3);border-radius:14px;
  display:grid;place-items:center;font-weight:900;line-height:.9;letter-spacing:-1px
}
.logo-text{font-size:14px;color:#d7dbea}
.header-links{display:flex;gap:24px;align-items:center;font-weight:600;font-size:14px;flex-wrap:wrap}

.page-hero{padding:38px 0 22px}
.page-kicker{
  display:inline-flex;align-items:center;gap:10px;color:var(--brand);font-weight:700;font-size:13px;
  text-transform:uppercase;letter-spacing:.12em
}
.page-title{
  margin:12px 0 0;font-size: 24px;  
}
.title-underline{
  width:92px;height:6px;border-radius:999px;background:var(--brand);margin-top:16px
}
.hero-row{
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap
}
.trust-line{
  display:flex;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);
  padding:8px 8px;border-radius:14px;box-shadow:var(--shadow);color:var(--muted);font-weight:600
}
.trust-lock{
  border-radius:999px;display:grid;place-items:center;
  font-size:22px;color:var(--success)
}

.progress{
  display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 0
}
.progress-step{
  background:#fff;border:1px solid var(--line);padding:10px 14px;border-radius:999px;
  color:var(--muted);font-weight:700;font-size:13px
}
.progress-step.active{background:var(--dark);color:#fff;border-color:var(--dark)}
.progress-step.done{background:#edf8f2;color:var(--success);border-color:#cfe9db}

.layout{
  display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:24px;
}
.card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow)
}
.card + .card{margin-top:20px}
.card-header{
  padding:18px 22px;border-bottom:1px solid var(--line);font-weight:800;letter-spacing:.04em;
  text-transform:uppercase;color:#343948
}
.card-body{padding:22px}
.muted{color:var(--muted);margin-bottom: 10px;}
.small{font-size:14px}
.tiny{font-size:12px}
.grid-2,.grid-3{
  display:grid;gap:16px
}
.grid-2{grid-template-columns:1fr 1fr}
.grid-3{grid-template-columns:repeat(3,1fr)}
.graycontentbox1 .grid-3{
    margin-bottom: 15px;
}
.field{display:flex;flex-direction:column;gap:8px}
label{font-size:14px;font-weight:700;color:#434959}
input,select,textarea{
  width:100%;border:1px solid #cfd6e3;background:#fff;color:var(--text);
  border-radius:12px;padding:14px 14px;outline:none;transition:.2s ease
}
input:focus,select:focus,textarea:focus{
  border-color:#7aaee0;box-shadow:0 0 0 4px rgba(47,146,208,.12)
}
textarea{min-height:96px;resize:vertical}
.helper{font-size:13px;color:var(--muted)}
.inline-actions{
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap
}
.text-danger{
    color: red;
}
.btn{
  border:none;border-radius:14px;padding:14px 20px;font-weight:800;letter-spacing:.03em;
  text-transform:uppercase;cursor:pointer;transition:.2s ease;display:inline-flex;align-items:center;justify-content:center;gap:10px
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--brand);color:#fff}
.btn-primary-2{background:#ff0f72;color:#fff}
.btn-dark{background:var(--dark);color:#fff}
.btn-light{background:#eef2f6;color:#1e2430}
.btn-outline{background:#fff;border:1px solid var(--line);color:#1e2430}
.btn-block{width:100%}

.summary{
  position:sticky;top:18px
}
.summary-item{
    display:flex;
    gap:14px;
    align-items:flex-start;
}

.thumb{
    width:82px;
    height:82px;
    flex:0 0 82px;
    border-radius:14px;
    overflow:hidden;
    border:1px solid var(--line);
    background:#f3f4f6;
}

.thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.summary-item > div:last-child{
    flex:1;
    min-width:0;
}

.summary-title{
  font-size:20px;line-height:1.05;margin:0 0 6px;color:var(--dark);font-weight:900
}
.summary-price{
    flex-shrink:0;
    min-width:90px;
    text-align:right;
    font-weight:900;
    font-size:22px;
}
.summary-row{
  display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid #eef1f5
}
.summary-row:last-child{border-bottom:none}
.payment-logos{
  display:flex;gap:10px;flex-wrap:wrap;margin-top:16px
}
.logo-pill{
  padding:8px 12px;border-radius:12px;border:1px solid var(--line);font-weight:900;box-shadow:var(--shadow)
}
.total-bar{
  margin-top:18px;background:var(--dark);color:#fff;border-radius:14px;padding:16px 18px;
  display:flex;align-items:center;justify-content:space-between;font-weight:900;font-size:20px
}
.credit-strip{
  margin-top:12px;border:1px solid #73b6e8;border-radius:12px;padding:12px;background:#f4fbff;color:#2f6d9c;font-size:13px;font-weight:700
}

.basket-table{
  display:grid;grid-template-columns:minmax(240px,1.9fr) .7fr .7fr .7fr 44px;gap:18px;align-items:start
}
.basket-table.head{
  font-weight:900;color:#111;padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:16px
}
.course-line{
  display:flex;gap:16px;align-items:flex-start
}
.course-details h3{margin:0 0 6px;font-size:30px;line-height:.95;color:var(--brand-2)}
.qty-box{
  display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff
}
.qty-btn,.qty-value{
  min-width:42px;height:44px;display:grid;place-items:center
}
.qty-btn{background:#f7f8fa;cursor:pointer;font-weight:900}
.qty-value{padding:0 10px}
.remove-x{
  width:40px;height:40px;border-radius:999px;border:1px solid var(--line);display:grid;place-items:center;background:#fff;cursor:pointer;font-weight:900
}
.checkout-actions{
  display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;margin-top:28px
}

.login-split{
  display:grid;grid-template-columns:minmax(0,1fr) 1px minmax(280px,380px);gap:34px;align-items:start
}
.divider-vert{background:var(--line);min-height:320px}
.info-tile{
  background:linear-gradient(135deg,#fff2ee,#fff);
  border:1px solid #ffd9cf;padding:20px;border-radius:20px
}
.benefit-list{display:grid;gap:12px;margin-top:18px}
.benefit{
  display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid #ffe1d7;border-radius:14px;padding:12px
}
.benefit span{font-size:18px}

.notice{
  background:#eef8ff;border:1px solid #cfe9fb;padding:14px 16px;border-radius:14px;color:#2d6c98
}
.radio-row,.check-row{
  display:flex;gap:16px;align-items:center;flex-wrap:wrap
}
.radio-card,.pay-option{
  border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;gap:14px;align-items:center;cursor:pointer;background:#fff;
  transition:.2s ease
}
.radio-card.active,.pay-option.active{border-color:#8cc1ea;box-shadow:0 0 0 4px rgba(47,146,208,.08)}
.pay-option + .pay-option{margin-top:12px}
.pay-brand{font-size:28px;font-weight:900;line-height:1}
.accordion-item{border-top:1px solid var(--line)}
.accordion-item:first-child{border-top:none}
.accordion-head{
  display:flex;align-items:center;justify-content:space-between;padding:14px 0;cursor:pointer;font-weight:800
}
.accordion-body{padding:0 0 6px 0;color:var(--muted)}

.success-wrap{text-align:center;padding:22px}
.success-icon{
  width:88px;height:88px;border-radius:999px;background:#eaf8f0;color:var(--success);margin:0 auto 18px;
  display:grid;place-items:center;font-size:40px;border:1px solid #cfe7d8
}
.order-pill{
  display:inline-flex;gap:10px;align-items:center;background:#fff3eb;color:#b34b2e;border:1px solid #ffd7c8;padding:10px 14px;border-radius:999px;font-weight:800
}
.quick-links{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px
}
.quick-link{
  padding:16px;border-radius:16px;background:#fff;border:1px solid var(--line);text-align:left
}
.quick-link strong{display:block;margin-bottom:4px}

.footer{
  background:linear-gradient(90deg,var(--dark),var(--dark-2));color:#fff;margin-top:50px
}
.footer-inner{
  display:grid;grid-template-columns:1.2fr .8fr;gap:24px;padding:34px 0
}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.09);padding:18px 0;color:#cbd1dd;font-size:14px
}
.footer-bottom-row,.footer-links{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.footer-bottom-row{justify-content:space-between}
.footer h4{margin:0 0 12px;font-size: clamp(24px, 5vw, 30px);}
.footer p{margin:0 0 8px;color:#d8dbea}

.mobile-sticky{
  display:none;position:fixed;left:0;right:0;bottom:0;background:rgba(23,26,35,.96);backdrop-filter:blur(8px);
  padding:12px 14px;border-top:1px solid rgba(255,255,255,.08);z-index:50
}
.mobile-sticky-inner{
  display:flex;align-items:center;justify-content:space-between;gap:14px;color:#fff
}
.mobile-sticky strong{display:block;font-size:22px;line-height:1}
.mobile-sticky span{font-size:12px;color:#d0d5e2}

.hero-tip{
  margin-top:12px;color:var(--muted);font-size:15px;font-weight:600
}

@media (max-width: 980px){
  .layout{grid-template-columns:1fr}
  .summary{position:static}
  .login-split{grid-template-columns:1fr}
  .divider-vert{display:none}
  .quick-links{grid-template-columns:1fr}
  .footer-inner{grid-template-columns:1fr}
}
@media (max-width: 760px){
  .container{width:min(var(--container),calc(100% - 22px))}
  .page-hero{padding-top:24px}
  .grid-2,.grid-3{grid-template-columns:1fr}
  .basket-table, .basket-table.head{
    grid-template-columns:1fr;
  }
  .basket-table.head > div:nth-child(n+2){display:none}
  .checkout-actions > *{width:100%}
  .header-links{gap:14px}
  .page-title{font-size:30px}
  .main-header-inner{padding:14px 0}
  .logo-mark{width:56px;height:56px}
  .card-header{padding:16px 18px}
  .card-body{padding:18px}
  .course-details h3{font-size:24px}
  body.has-mobile-sticky{padding-bottom:72px}
  .mobile-sticky{display:block}
}

/* ==== PRO BASKET UPGRADE ==== */
.basket-layout-pro{
  display:grid;  
  gap:24px;
  align-items:start;
}
.basket-pro-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:var(--shadow);
  padding:20px;
  margin-bottom:10px;
}
.basket-pro-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
}
.basket-pro-left{
  display:flex;
  gap:16px;
  align-items:flex-start;
  min-width:0;
}
.basket-pro-image{
  width:96px;
  height:96px;
  border-radius:14px;
  overflow:hidden;
  border:1px solid var(--line);
  flex:0 0 96px;
  background:linear-gradient(135deg,#183659,#49a3d7);
}
.basket-pro-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    display:block;
}
.basket-pro-copy h3{
  margin:0 0 8px;
  font-size:20px;
  line-height:.98;
  color:var(--dark);
}
.form-grid .form-group {
    margin-bottom: 10px;
}
.basket-pro-copy p{
  margin:0 0 6px;
  color:var(--muted);
}
.basket-pro-right{
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.basket-pro-price,.basket-pro-total{
  font-size:22px;
  font-weight:900;
}
.basket-qty{
  display:inline-flex;
  align-items:center;
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  background:#fff;
}
.basket-qty button{
  width:42px;
  height:42px;
  border:none;
  background:#f4f6f9;
  cursor:pointer;
  font-size:20px;
  font-weight:900;
}
.basket-qty span{
  min-width:42px;
  text-align:center;
  font-weight:800;
}
.basket-remove{
  width:40px;
  height:40px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  cursor:pointer;
  font-size:20px;
  line-height:1;
}
.basket-toolbar{
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  margin-top:18px;
}
.discount-panel{
  margin-top:18px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  padding:18px;
}
.discount-input-row{
  display:flex;
  gap:10px;
  margin-top:10px;
}
.discount-input-row input{
  flex:1;
}
.discount-message{
  margin-top:10px;
  font-size:14px;
  color:var(--success);
  font-weight:700;
}
.attendee-panel{
  margin-top:18px;
  border-top:1px solid #eef1f5;
  padding-top:18px;
}
.attendee-panel.hidden{
  display:none;
}
.attendee-grid{
  display:grid;
  gap:12px;
}
.attendee-card{
  border:1px dashed #cfd7e3;
  border-radius:14px;
  padding:14px;
  background:#fafbfd;
}
.attendee-card-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:10px;
}
.attendee-tag{
  background:#eef2f6;
  border-radius:999px;
  padding:5px 10px;
  font-size:12px;
  font-weight:800;
}
.order-summary-pro{
  position:sticky;
  top:18px;
}
.summary-pro-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:var(--shadow);
  padding:20px;
}
.summary-pro-card h3{
  margin:0 0 16px;
  font-size:24px;
}

.order-summary-pro .summary-item{
    display:flex;
    align-items:flex-start;
    gap:16px;
    width:100%;
}

.order-summary-pro .summary-item > div:first-child{
    flex:0 0 70%;
    max-width:70%;
    min-width:0;
}

.order-summary-pro .summary-price{
    flex:0 0 30%;
    max-width:30%;
    text-align:right;
    font-size:18px;
    font-weight:800;
    white-space:nowrap;
}

.order-summary-pro .summary-title{
    font-size:18px;
    line-height:1.3;
    word-break:break-word;
    margin:0 0 6px;
}
.summary-pro-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid #eef1f5;
}
.summary-pro-total{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:16px 0 0;
  font-size:22px;
  font-weight:900;
}
.summary-pro-note{
  margin-top:14px;
  padding:12px;
  border-radius:12px;
  background:#eef8ff;
  color:#2d6c98;
  font-size:13px;
  font-weight:700;
}
.summary-pro-actions{
  margin-top:16px;
}
@media (max-width: 980px){
  .basket-layout-pro{
    grid-template-columns:1fr;
  }
  .order-summary-pro{
    position:static;
  }
}
@media (max-width: 760px){
  .basket-pro-row{
    flex-direction:column;
  }
  .basket-pro-right{
    width:100%;
    justify-content:space-between;
  }
  .discount-input-row{
    flex-direction:column;
  }
}

/* ==== Discount moved to sidebar (order summary) ==== */
.basket-voucher-link{
  display:inline-block;
  margin-top:10px;
  font-weight:800;
  color:var(--brand-2);
  cursor:pointer;
}
.basket-voucher-link:hover{ text-decoration:underline; }
.summary-discount-box{
  margin-top:14px;
  display:flex;
  gap:10px;
}
.summary-discount-box input{ flex:1; }
.summary-discount-msg{
  margin-top:10px;
  font-size:14px;
  font-weight:700;
}

/* ==== MOBILE TOP SUMMARY ==== */
.mobile-top-summary{
  display:none;
  background:#fff;
  border-bottom:1px solid #eee;
  padding:12px 16px;
  position:sticky;
  top:0;
  z-index:20;
}
.mobile-summary-header{
  display:flex;
  justify-content:space-between;
  font-weight:800;
  cursor:pointer;
}
.mobile-summary-body{
  margin-top:10px;
  display:none;
  font-size:14px;
  color:#555;
}
.mobile-summary-body.active{
  display:block;
}
@media(max-width:768px){
  .mobile-top-summary{
    display:block;
  }
}


/* ==== WordPress template integration tweaks ==== */
body.ca-checkout-template .site,
body.ca-checkout-template #page {
  overflow-x:hidden;
}
body.ca-checkout-template .entry-content,
body.ca-checkout-template .site-content,
body.ca-checkout-template .content-area,
body.ca-checkout-template .site-main,
body.ca-checkout-template article.page,
body.ca-checkout-template .page-content {
  margin:0;
  padding:0;
}
body.ca-checkout-template .main-header img {
  width:auto;  
  object-fit:contain;
}
@media(max-width:768px){
  body.ca-checkout-template .main-header img {max-width:180px;height:42px;}
}
#global-loader {
    position: fixed;
    inset: 0;
    background: rgba(255,255,255,0.7);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}

#global-loader.active {
    display: flex;
}

.loader-spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #ddd;
    border-top: 4px solid #000;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}
.summary-discount-msg {
    margin-top: 10px;
    font-size: 13px;
    color: #666;
    transition: all 0.3s ease;
}

.summary-discount-msg.success {
    color: #2e7d32;
}

.summary-discount-msg.error {
    color: #d32f2f;
}
.discount-notice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: #fff8e1; /* light warning background */
    border: 1px solid #ffe082;
    border-left: 4px solid #ffb300;
    padding: 12px 14px;
    border-radius: 6px;
    font-size: 13px;
    color: #5d4037;
    line-height: 1.5;
}

.discount-icon {
    font-size: 16px;
    color: #ff9800;
    margin-top: 2px;
    flex-shrink: 0;
}

.discount-text {
    flex: 1;
}
.back-link {
    margin: 10px 0 20px;
}
.back-link a {
    font-size: 13px;
    color: #777;
    text-decoration: none;
}

.back-link a:hover {
    color: #ff0058;
}
@media (max-width: 768px) {

    .layout {
        display: flex;
        flex-direction: column;
    }

    .layout > div {
        order: 2; /* form goes second */
    }

    .layout > aside {
        order: 1; /* summary goes first */
    }

}
/* =========================
   PAYMENT OPTIONS WRAPPER
========================= */
.payment-options {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* =========================
   OPTION CARD
========================= */
.payment-option {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 1px solid #e4e4e4;
    border-radius: 10px;
    padding: 14px 16px;
    cursor: pointer;
    background: #fff;
    transition: all 0.2s ease;
    position: relative;
}

/* HOVER */
.payment-option:hover {
    border-color: #ff5a3c;
}

/* ACTIVE */
.payment-option.active {
    border-color: #ff5a3c;
    background: #fff5f2;
}

/* =========================
   FIX RADIO INPUT
========================= */
.payment-option input[type="radio"] {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0; /* hidden but clickable */
    z-index: 2;
}

/* =========================
   LEFT SIDE
========================= */
.option-left {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* =========================
   CUSTOM RADIO
========================= */
.custom-radio {
    width: 18px;
    height: 18px;
    border: 2px solid #cfcfcf;
    border-radius: 50%;
    position: relative;
    flex-shrink: 0;
}

/* ACTIVE RADIO */
.payment-option.active .custom-radio {
    border-color: #ff5a3c;
}

.payment-option.active .custom-radio::after {
    content: "";
    width: 8px;
    height: 8px;
    background: #ff5a3c;
    border-radius: 50%;
    position: absolute;
    top: 3px;
    left: 3px;
}

/* =========================
   TEXT
========================= */
.option-text {
    font-weight: 500;
    font-size: 15px;
}

.option-text small {
    font-size: 12px;
    color: #888;
    margin-left: 4px;
}

/* =========================
   RIGHT SIDE (LOGOS)
========================= */
.option-right {
    display: flex;
    align-items: center;
    gap: 6px;
}

.option-right img {
    height: 22px;
    object-fit: contain;
}

/* =========================
   TERMS SECTION
========================= */
.payment-terms {
    margin-top: 22px;
}

.checkbox-wrap {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    line-height: 1.5;
}

.checkbox-wrap input {
    margin-top: 4px;
}

/* ERROR */
.error-text {
    font-size: 13px;
    color: #d32f2f;
    margin-top: 6px;
}

/* =========================
   BUTTON
========================= */
.payment-action {
    margin-top: 22px;
}

.btn-block {
    width: 100%;
}

.payment-action .btn {
    height: 52px;
    font-size: 16px;
}

/* =========================
   MOBILE FIX
========================= */
@media (max-width: 768px) {

    .payment-option {
        padding: 12px;
    }

    .option-text {
        font-size: 14px;
    }

    .option-right img {
        height: 18px;
    }

    .checkbox-wrap {
        font-size: 13px;
    }

}
/* WRAP */
.checkbox-wrap {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    cursor: pointer;
    font-size: 14px;
    line-height: 1.5;
    position: relative; /* ✅ important */
}

/* HIDE DEFAULT SAFELY */
.checkbox-wrap input[type="checkbox"] {
    position: absolute;
    width: 20px;
    height: 20px;
    opacity: 0;
    left: 0;
    top: 2px;
    margin: 0;
    z-index: 1;
}

/* CUSTOM BOX */
.custom-checkbox {
    width: 20px;
    height: 20px;
    border: 2px solid #cfcfcf;
    border-radius: 4px;
    flex-shrink: 0;
    position: relative;
    transition: all 0.2s ease;
}

/* CHECKED STATE */
.checkbox-wrap input:checked + .custom-checkbox {
    border-color: #ff5a3c;
    background: #ff5a3c;
}

/* TICK */
.checkbox-wrap input:checked + .custom-checkbox::after {
    content: "";
    position: absolute;
    left: 5px;
    top: 2px;
    width: 6px;
    height: 10px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* TEXT */
.checkbox-text {
    flex: 1;
}

/* LINKS */
.checkbox-text a {
    color: #ff5a3c;
    text-decoration: none;
}

.checkbox-text a:hover {
    text-decoration: underline;
}


/* =========================
   BASE INPUT STYLE (OPTIONAL)
========================= */
.field input,
.field select,
.field textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 14px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* =========================
   INVALID STATE
========================= */
.was-validated input:invalid,
.was-validated select:invalid,
.was-validated textarea:invalid {
    border-color: #dc3545;
}

/* =========================
   VALID STATE
========================= */
.was-validated input:valid,
.was-validated select:valid,
.was-validated textarea:valid {
    border-color: #28a745;
}

/* =========================
   FOCUS STATE (BETTER UX)
========================= */
input:focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: #ff5a3c;
    box-shadow: 0 0 0 2px rgba(255, 90, 60, 0.15);
}

/* =========================
   ERROR MESSAGE
========================= */
.invalid-feedback {
    display: none;
    font-size: 13px;
    color: #dc3545;
    margin-top: 5px;
}

/* SHOW ERROR */
.was-validated :invalid ~ .invalid-feedback {
    display: block;
}

/* =========================
   SUCCESS MESSAGE (OPTIONAL)
========================= */
.valid-feedback {
    display: none;
    font-size: 13px;
    color: #28a745;
    margin-top: 5px;
}

.was-validated :valid ~ .valid-feedback {
    display: block;
}

/* =========================
   CHECKBOX VALIDATION
========================= */
.was-validated input[type="checkbox"]:invalid + .custom-checkbox {
    border-color: #dc3545;
}

.was-validated input[type="checkbox"]:valid + .custom-checkbox {
    border-color: #28a745;
}

/* =========================
   RADIO VALIDATION
========================= */
.was-validated input[type="radio"]:invalid ~ .custom-radio {
    border-color: #dc3545;
}

/* =========================
   DISABLED BUTTON STYLE
========================= */
button:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}



.radio-row {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}

.radio-card {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 18px;
    border: 1px solid #d8dce3;
    border-radius: 14px;
    background: #fff;
    cursor: pointer;
    position: relative;
    min-width: 96px;
}

.radio-card input[type="radio"] {
    position: absolute;
    opacity: 0;
    inset: 0;
    margin: 0;
    cursor: pointer;
}

.radio-custom {
    width: 16px;
    height: 16px;
    border: 1.5px solid #aeb6c2;
    border-radius: 50%;
    position: relative;
    flex-shrink: 0;
    background: #fff;
}

.radio-card input[type="radio"]:checked + .radio-custom {
    border-color: #ff5a3c;
}

.radio-card input[type="radio"]:checked + .radio-custom::after {
    content: "";
    position: absolute;
    width: 8px;
    height: 8px;
    top: 3px;
    left: 3px;
    border-radius: 50%;
    background: #ff5a3c;
}

.radio-row.invalid {
    border: 1px solid #dc3545;
    border-radius: 10px;
    padding: 10px;
}

.invalid-feedback {
    display: none;
    margin-top: 6px;
    font-size: 13px;
    color: #dc3545;
}

.invalid-feedback.show {
    display: block;
}

/* ===============================
   ADDITIONAL ATTENDEE SECTION
=============================== */

.additional-attendee-wrap {
    padding: 5px;    
}

.additional-attendee-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 24px;
}

.additional-attendee-title h2 {
    margin: 0;
    font-size: 30px;
    font-weight: 700;
    color: #1d2433;
}

.additional-attendee-title p {
    margin: 8px 0 0;
    font-size: 15px;
    color: #6b7280;
}

.additional-attendee-actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}

.additional-attendee-actions .btn {
    min-width: 150px;
    height: 52px;
    border-radius: 14px;
    border: 1px solid #d7dce5;
    background: #fff;
    font-size: 16px;
    font-weight: 700;
    color: #1f2430;
    cursor: pointer;
    transition: 0.2s ease;
}

.additional-attendee-actions .btn.active,
.additional-attendee-actions .btn:hover {
    background: #f3f6fa;
    border-color: #cfd6e2;
}

/* ===============================
   ATTENDEE CARD
=============================== */

.attendee-card {
    border: 1px dashed #d9e1ec;
    border-radius: 18px;
    padding: 22px;
    background: #fff;
    margin-bottom: 22px;
    margin-top: 20px;
}

.attendee-card-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.attendee-card-top h3 {
    margin: 0;
    font-size: 24px;
    font-weight: 700;
    color: #1d2433;
}

.attendee-badge {
    background: #f2f5f9;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    color: #1d2433;
}

/* ===============================
   FORM GRID
=============================== */

.attendee-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 22px;
}

.attendee-field label {
    display: block;
    margin-bottom: 8px;
    font-size: 15px;
    font-weight: 600;
    color: #2d3445;
}

.attendee-field input,
.attendee-field select {
    width: 100%;
    height: 54px;
    border: 1px solid #cfd6e2;
    border-radius: 14px;
    padding: 0 16px;
    font-size: 15px;
    background: #fff;
    transition: 0.2s ease;
}

.attendee-field input:focus,
.attendee-field select:focus {
    outline: none;
    border-color: #2d8ed8;
    box-shadow: 0 0 0 3px rgba(45, 142, 216, 0.08);
}

.attendee-field.full-width {
    grid-column: 1 / -1;
}

/* ===============================
   GIFT CHECKBOX
=============================== */

.attendee-gift {
    margin-top: 18px;
}

.attendee-gift label {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 15px;
    font-weight: 500;
    color: #2d3445;
    cursor: pointer;
}

.attendee-gift input[type="checkbox"] {
    width: 18px;
    height: 18px;
}

.attendee-gift-note {
    margin-top: 10px;
    font-size: 14px;
    color: #6b7280;
    line-height: 1.6;
}

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

@media (max-width: 768px) {

    .additional-attendee-wrap {
        padding: 18px;
        border-radius: 14px;
    }

    .additional-attendee-header {
        flex-direction: column;
        align-items: stretch;
    }

    .additional-attendee-title h2 {
        font-size: 24px;
    }

    .additional-attendee-actions {
        width: 100%;
    }

    .additional-attendee-actions .btn {
        flex: 1;
        min-width: unset;
        height: 48px;
        font-size: 15px;
    }

    .attendee-card {
        padding: 18px;
    }

    .attendee-card-top {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .attendee-card-top h3 {
        font-size: 20px;
    }

    .attendee-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .attendee-field.full-width {
        grid-column: auto;
    }
}



/* =========================
   BOOKING CONFIRMATION UI
========================= */
.ca-confirmation-page,
.ca-confirmation-page * {
    box-sizing: border-box;
}

.ca-confirmation-page {
    --ca-primary: #f58220;
    --ca-primary-dark: #de6f10;
    --ca-bg: #f7f8fb;
    --ca-card: #ffffff;
    --ca-text: #1f2937;
    --ca-text-light: #6b7280;
    --ca-border: #e5e7eb;
    --ca-success-bg: #eefaf2;
    --ca-success-border: #b7e4c7;
    --ca-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
    --ca-radius: 18px;
    --ca-radius-sm: 12px;
    --ca-spacing: 24px;

    background: linear-gradient(180deg, #fafbfd 0%, #f5f7fb 100%);
    padding: 28px 16px 50px;
    color: var(--ca-text);
    font-family: Arial, Helvetica, sans-serif;
}

.ca-confirmation-container {
    max-width: 1320px;
    margin: 0 auto;
}

.ca-confirmation-hero {
    background: #fff;
    border: 1px solid var(--ca-border);
    border-radius: 24px;
    box-shadow: var(--ca-shadow);
    padding: 28px;
    margin-bottom: 24px;
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    align-items: center;
    justify-content: space-between;
}

.ca-confirmation-hero__left {
    flex: 1 1 700px;
    min-width: 280px;
}

.ca-confirmation-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--ca-success-bg);
    border: 1px solid var(--ca-success-border);
    color: #166534;
    border-radius: 999px;
    padding: 8px 14px;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 14px;
}

.ca-confirmation-title {
    margin: 0 0 10px;
    font-size: 34px;
    line-height: 1.15;
    font-weight: 800;
    color: #111827;
}

.ca-confirmation-subtitle {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: var(--ca-text-light);
}

.ca-confirmation-subtitle strong,
.ca-confirmation-subtitle .order-number {
    color: #111827;
    font-weight: 800;
}

.ca-confirmation-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 18px;
}

.ca-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 18px;
    border-radius: 12px;
    text-decoration: none !important;
    border: 1px solid transparent;
    font-weight: 700;
    font-size: 14px;
    transition: all .25s ease;
    cursor: pointer;
}

.ca-btn--primary {
    background: var(--ca-primary);
    color: #fff !important;
    box-shadow: 0 8px 20px rgba(245,130,32,.25);
}

.ca-btn--primary:hover {
    background: var(--ca-primary-dark);
    transform: translateY(-1px);
}

.ca-btn--secondary {
    background: #fff;
    color: #111827 !important;
    border-color: var(--ca-border);
}

.ca-btn--secondary:hover {
    border-color: #cfd4dc;
    background: #fafafa;
}

.ca-confirmation-ref {
    flex: 0 1 300px;
    min-width: 240px;
    background: linear-gradient(135deg, #111827 0%, #1f2937 100%);
    color: #fff;
    border-radius: 18px;
    padding: 20px;
}

.ca-confirmation-ref__label {
    font-size: 13px;
    opacity: .8;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 10px;
}

.ca-confirmation-ref__value {
    font-size: 24px;
    font-weight: 800;
    word-break: break-word;
}

/* Layout */
.ca-confirmation-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 24px;
    align-items: start;
}

.ca-confirmation-main {
    min-width: 0;
}

.ca-confirmation-side {
    position: sticky;
    top: 95px;
}

/* Section card */
.ca-card {
    background: var(--ca-card);
    border: 1px solid var(--ca-border);
    border-radius: var(--ca-radius);
    box-shadow: var(--ca-shadow);
    overflow: hidden;
    margin-bottom: 24px;
}

.ca-card__head {
    padding: 16px 20px;
    background: linear-gradient(90deg, #fff7f0 0%, #fff 100%);
    border-bottom: 1px solid var(--ca-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.ca-card__title {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    color: #111827;
}

.ca-card__body {
    padding: 22px 20px;
}

/* Booking item card */
.ca-booking-item {
    border: 1px solid var(--ca-border);
    border-radius: 18px;
    background: #fff;
    overflow: hidden;
    margin-bottom: 18px;
}

.ca-booking-item:last-child {
    margin-bottom: 0;
}

.ca-booking-item__top {
    display: grid;
    grid-template-columns: 130px minmax(0, 1fr);
    gap: 18px;
    padding: 18px;
}

.ca-booking-item__image {
    width: 100%;
    height: 120px;
    border-radius: 14px;
    overflow: hidden;
    background: #f2f4f7;
    border: 1px solid #eef0f3;
}

.ca-booking-item__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.ca-booking-item__meta {
    min-width: 0;
}

.ca-booking-type {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    padding: 6px 10px;
    background: #fff4e8;
    color: #9a3412;
    border-radius: 999px;
    margin-bottom: 10px;
}

.ca-booking-title {
    margin: 0 0 8px;
    font-size: 22px;
    line-height: 1.3;
    color: #111827;
    font-weight: 800;
}

.ca-booking-qty {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    background: #f9fafb;
    border: 1px solid var(--ca-border);
    border-radius: 999px;
    padding: 7px 12px;
    font-size: 13px;
    font-weight: 700;
    color: #374151;
    margin-bottom: 12px;
}

.ca-booking-date {
    margin: 0;
    font-size: 15px;
    color: var(--ca-text-light);
    line-height: 1.7;
}

.ca-booking-sections {
    padding: 0 18px 18px;
    display: grid;
    gap: 14px;
}

.ca-inline-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.ca-info-box {
    background: #f9fafb;
    border: 1px solid var(--ca-border);
    border-radius: 14px;
    padding: 14px;
}

.ca-info-label {
    display: block;
    font-size: 12px;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 700;
    margin-bottom: 6px;
}

.ca-info-value {
    display: block;
    font-size: 15px;
    color: #111827;
    line-height: 1.6;
    font-weight: 600;
    word-break: break-word;
}

/* Venue */
.ca-venue-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 290px;
    gap: 16px;
    align-items: start;
    border: 1px solid var(--ca-border);
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
}

.ca-venue-details {
    padding: 18px;
}

.ca-venue-title {
    font-size: 18px;
    font-weight: 800;
    margin: 0 0 8px;
}

.ca-venue-address {
    margin: 0 0 14px;
    line-height: 1.7;
    color: var(--ca-text-light);
}

.ca-venue-actions{
    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    margin-top:20px;
}

.ca-map-frame {
    min-height: 220px;
    width: 100%;
    border: 0;
    display: block;
}

/* Show list */
.ca-show-list {
    display: grid;
    gap: 12px;
}

.ca-show-item {
    border: 1px dashed #d9dee7;
    background: #fbfcfe;
    border-radius: 14px;
    padding: 14px;
}

.ca-show-item p {
    margin: 4px 0;
    font-size: 14px;
    line-height: 1.6;
    color: #374151;
}

.ca-show-item strong {
    color: #111827;
}

/* Attendee list */
.ca-attendee-card {
    border: 1px solid var(--ca-border);
    border-radius: 16px;
    background: #fcfcfd;
    padding: 18px;
}

.ca-attendee-card h5 {
    margin: 0 0 14px;
    font-size: 16px !important;
    font-weight: 800;
    font-family: "montserratbold", sans-serif !important;
    color: #111827;
}

.ca-attendee-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.ca-attendee-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid #e5e7eb;
    font-size: 14px;
    line-height: 1.6;
    color: #374151;
}

.ca-attendee-list li:last-child {
    border-bottom: none;
}

.ca-attendee-icon {
    font-size: 16px;
    line-height: 1.2;
    margin-top: 2px;
}

/* Summary */
.ca-summary-box {
    background: #fff;
    border: 1px solid var(--ca-border);
    border-radius: 20px;
    box-shadow: var(--ca-shadow);
    overflow: hidden;
}

.ca-summary-head {
    background: linear-gradient(90deg, #111827 0%, #1f2937 100%);
    color: #fff;
    padding: 18px 20px;
}

.ca-summary-head h3 {
    margin: 0;
    font-size: 20px;
    font-weight: 800;
}

.ca-summary-body {
    padding: 18px 20px;
}

.ca-summary-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid #edf0f3;
}

.ca-summary-row:last-child {
    border-bottom: none;
}

.ca-summary-row__name {
    font-size: 14px;
    color: #374151;
    line-height: 1.5;
    font-weight: 600;
    flex: 1;
}

.ca-summary-row__price {
    font-size: 14px;
    color: #111827;
    font-weight: 800;
    white-space: nowrap;
}

.ca-summary-total {
    margin-top: 10px;
    border-top: 1px solid #edf0f3;
    padding-top: 14px;
}

.ca-summary-total .ca-summary-row__name,
.ca-summary-total .ca-summary-row__price {
    font-size: 17px;
    font-weight: 800;
    color: #111827;
}

/* Text content sections */
.ca-text-block {
    font-size: 15px;
    line-height: 1.8;
    color: #4b5563;
}

.ca-text-block a {
    color: var(--ca-primary-dark);
    font-weight: 700;
    text-decoration: none;
}

.ca-text-block a:hover {
    text-decoration: underline;
}

/* Social */
.ca-social-note {
    margin: 0 0 18px;
    color: var(--ca-text-light);
    line-height: 1.7;
}

.ca-social-list {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.ca-social-list li a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 110px;
    padding: 12px 14px;
    border-radius: 12px;
    background: #f9fafb;
    border: 1px solid var(--ca-border);
    color: #111827;
    text-decoration: none;
    font-weight: 700;
    font-size: 14px;
    transition: all .25s ease;
}

.ca-social-list li a:hover {
    background: #fff7f0;
    border-color: #ffd7b0;
    color: var(--ca-primary-dark);
}

/* Footer action */
.ca-page-footer-action {
    margin-top: 8px;
    display: flex;
    justify-content: flex-start;
}

/* Responsive */
@media (max-width: 1100px) {
    .ca-confirmation-grid {
        grid-template-columns: 1fr;
    }

    .ca-confirmation-side {
        position: static;
    }
}

@media (max-width: 767px) {
    .ca-confirmation-page {
        padding: 18px 12px 36px;
    }

    .ca-confirmation-hero {
        padding: 20px;
        border-radius: 18px;
    }

    .ca-confirmation-title {
        font-size: 28px;
    }

    .ca-booking-item__top {
        grid-template-columns: 1fr;
    }

    .ca-booking-item__image {
        height: 210px;
    }

    .ca-inline-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
	}

    .ca-venue-card {
        grid-template-columns: 1fr;
    }

    .ca-map-frame {
        min-height: 240px;
    }

    .ca-summary-row {
        align-items: center;
    }
}

@media (max-width: 480px) {
    .ca-confirmation-title {
        font-size: 24px;
    }

    .ca-card__head,
    .ca-card__body,
    .ca-summary-body,
    .ca-summary-head {
        padding-left: 16px;
        padding-right: 16px;
    }

    .ca-booking-sections,
    .ca-booking-item__top {
        padding-left: 14px;
        padding-right: 14px;
    }

    .ca-btn {
        width: 100%;
    }

    .ca-confirmation-actions {
        flex-direction: column;
    }
  .basket-global-actions .btn {
    font-size: 13px;    
    width: 100%;
    margin-bottom: 10px;
  }
}


/* ================================
   TOPBAR
================================ */

.topbar {
    background: #0f172a;
    color: #fff;
    font-size: 14px;
    padding: 10px 0;
    position: relative;
    z-index: 999;
}

.topbar .container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 20px;
}

.topbar-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.topbar .left,
.topbar .right {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.topbar a {
    color: #fff;
    text-decoration: none;
    font-weight: 500;
    transition: 0.3s;
}

.topbar a:hover {
    color: #facc15;
}

.topbar .divider {
    opacity: 0.6;
}

/* ================================
   BADGE
================================ */

.badge-dot {
    min-width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #facc15;
    color: #111;
    font-size: 12px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 6px;
    line-height: 1;
}

/* ================================
   CART
================================ */

.cart-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

.icon-btn {
    background: transparent;
    border: none;
    cursor: pointer;
    position: relative;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.icon-btn svg {
    width: 24px;
    height: 24px;
    color: #fff;
}

.cart-count {
    position: absolute;
    top: -8px;
    right: -10px;
    min-width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #ef4444;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
}



/* =========================================
   FINAL CHECKOUT HEADER
   LOGO LEFT + ICONS RIGHT
========================================= */

.main-header {
    position: sticky;
    top: 0;
    z-index: 9999;
    background: #04132b;
    width: 100%;
    box-shadow: 0 8px 20px rgba(0,0,0,0.08);
}

.main-header .container {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 18px;
    width: 100%;
}

/* =========================================
   HEADER LAYOUT
========================================= */

.main-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 78px;
    padding: 14px 0;
    gap: 20px;
}

/* =========================================
   LOGO LEFT
========================================= */

.logo-wrap {
    display: flex;
    align-items: center;
    text-decoration: none;
    flex-shrink: 0;
}

.logo-wrap img {
    max-height: 52px;
    width: auto;
    display: block;
    object-fit: contain;
}

/* =========================================
   RIGHT SIDE ICONS
========================================= */

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

.header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 18px;
}

/* =========================================
   LINKS
========================================= */

.header-actions a {
    text-decoration: none;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.3s ease;
}

.header-actions a:hover {
    color: #facc15;
}

/* =========================================
   ICONS
========================================= */

.header-icon,
.cart-svg {
    width: 24px;
    height: 24px;
    display: block;
    color: #ffffff;
    transition: 0.3s ease;
}

.header-actions a:hover .header-icon,
.icon-btn:hover .cart-svg {
    color: #facc15;
}

/* =========================================
   CART
========================================= */

.cart-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

.icon-btn {
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

/* =========================================
   CART COUNT
========================================= */

.cart-count {
    position: absolute;
    top: -7px;
    right: -9px;
    min-width: 19px;
    height: 19px;
    border-radius: 50%;
    background: #ef4444;
    color: #ffffff;
    font-size: 10px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    padding: 0 4px;
    z-index: 2;
}

/* =========================================
   REMOVE TEXT ON MOBILE
========================================= */

.desktop-text {
    display: inline-block;
	font-size:15px;
}

.mobile-icon {
    display: none;
}

/* =========================================
   TABLET
========================================= */

@media (max-width: 991px) {

    .main-header .container {
        padding: 0 16px;
    }

    .logo-wrap img {
        max-height: 46px;
    }

    .header-actions {
        gap: 16px;
    }
}

/* =========================================
   MOBILE
========================================= */

@media (max-width: 767px) {

    .main-header {
        position: sticky;
    }

    .main-header .container {
        padding: 0 14px;
    }

    .main-header-inner {
        min-height: 68px;
        padding: 12px 0;
    }

    .logo-wrap img {
        max-height: 38px;
    }

    /* Hide text */
    .desktop-text {
        display: none;
    }

    /* Show icons */
    .mobile-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .header-actions {
        gap: 14px;
    }

    .header-icon,
    .cart-svg {
        width: 22px;
        height: 22px;
    }

    .cart-count {
        min-width: 17px;
        height: 17px;
        font-size: 9px;
        top: -6px;
        right: -7px;
    }
}

/* =========================================
   SMALL MOBILE
========================================= */

@media (max-width: 480px) {

    .main-header .container {
        padding: 0 12px;
    }

    .logo-wrap img {
        max-height: 34px;
    }

    .header-actions {
        gap: 12px;
    }

    .header-icon,
    .cart-svg {
        width: 20px;
        height: 20px;
    }
}



.ca-payment-card {
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 20px;
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.06);
    overflow: hidden;
    margin: 24px 0;
}

.ca-payment-card__header {
    padding: 26px 28px 20px;
    background: linear-gradient(135deg, #fff7f1 0%, #ffffff 100%);
    border-bottom: 1px solid #f0f0f0;
}

.ca-payment-card__eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #f58220;
    background: rgba(245, 130, 32, 0.10);
    padding: 7px 12px;
    border-radius: 999px;
    margin-bottom: 12px;
}

.ca-payment-card__title {
    margin: 0 0 8px;
    font-size: 28px;
    line-height: 1.2;
    font-weight: 800;
    color: #1f1f1f;
}

.ca-payment-card__subtitle {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #666;
    max-width: 760px;
}

.ca-payment-card__body {
    padding: 28px;
}

.ca-free-total-box {
    background: linear-gradient(135deg, #fffaf5 0%, #fff 100%);
    border: 1px solid #f6d8bd;
    border-radius: 18px;
    padding: 22px 24px;
    text-align: center;
    margin-bottom: 24px;
}

.ca-free-total-box__label {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #8a8a8a;
    margin-bottom: 8px;
}

.ca-free-total-box__amount {
    font-size: 42px;
    line-height: 1;
    font-weight: 800;
    color: #1f1f1f;
    margin-bottom: 10px;
}

.ca-free-total-box__note {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #666;
}

.ca-terms-card {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    background: #fafafa;
    border: 1px solid #ececec;
    border-radius: 18px;
    padding: 20px;
    margin-bottom: 18px;
}

.ca-terms-card__icon {
    width: 46px;
    height: 46px;
    min-width: 46px;
    border-radius: 50%;
    background: #f58220;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 20px rgba(245, 130, 32, 0.18);
}

.ca-terms-card__icon svg {
    width: 22px;
    height: 22px;
}

.ca-terms-card__content {
    flex: 1;
}

.ca-terms-card__title {
    font-size: 18px;
    font-weight: 700;
    color: #1f1f1f;
    margin-bottom: 12px;
}

.ca-check-wrap {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    cursor: pointer;
    margin: 0;
    position: relative;
}

.ca-check-wrap input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.ca-check-custom {
    width: 22px;
    height: 22px;
    min-width: 22px;
    border: 2px solid #d2d2d2;
    border-radius: 6px;
    background: #fff;
    position: relative;
    margin-top: 2px;
    transition: all .2s ease;
}

.ca-check-wrap input[type="checkbox"]:checked + .ca-check-custom {
    background: #f58220;
    border-color: #f58220;
}

.ca-check-wrap input[type="checkbox"]:checked + .ca-check-custom::after {
    content: "";
    position: absolute;
    left: 6px;
    top: 1px;
    width: 6px;
    height: 12px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.ca-check-wrap input[type="checkbox"]:focus + .ca-check-custom {
    box-shadow: 0 0 0 4px rgba(245, 130, 32, 0.15);
}

.ca-check-text {
    font-size: 15px;
    line-height: 1.7;
    color: #444;
}

.ca-check-text a {
    color: #f58220;
    font-weight: 600;
    text-decoration: none;
}

.ca-check-text a:hover {
    text-decoration: underline;
}

.ca-invalid-feedback {
    display: block;
    margin-top: 10px;
    font-size: 13px;
    color: #d93025;
}

.ca-payment-actions {
    margin-top: 22px;
    text-align: center;
}

.ca-primary-btn,
.ca-payment-actions .checkout-btn,
.ca-payment-actions input[type="button"] {
    appearance: none;
    border: 0;
    background: linear-gradient(135deg, #f58220 0%, #e86d00 100%);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    padding: 16px 34px;
    border-radius: 999px;
    min-width: 220px;
    box-shadow: 0 12px 24px rgba(245, 130, 32, 0.22);
    transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
    cursor: pointer;
}

.ca-primary-btn:hover,
.ca-payment-actions .checkout-btn:hover,
.ca-payment-actions input[type="button"]:hover {
    transform: translateY(-1px);
    box-shadow: 0 16px 28px rgba(245, 130, 32, 0.28);
}

.ca-payment-helptext {
    text-align: center;
    margin-top: 12px;
    font-size: 13px;
    color: #777;
}

.erromessage {
    margin-top: 10px;
    font-size: 14px;
    color: #d93025;
}

@media (max-width: 767px) {
    .ca-payment-card__header {
        padding: 20px 18px 16px;
    }

    .ca-payment-card__body {
        padding: 18px;
    }

    .ca-payment-card__title {
        font-size: 23px;
    }

    .ca-payment-card__subtitle,
    .ca-check-text,
    .ca-free-total-box__note {
        font-size: 14px;
    }

    .ca-free-total-box {
        padding: 18px 16px;
    }

    .ca-free-total-box__amount {
        font-size: 34px;
    }

    .ca-terms-card {
        flex-direction: column;
        gap: 14px;
        padding: 16px;
    }

    .ca-terms-card__icon {
        width: 42px;
        height: 42px;
        min-width: 42px;
    }

    .ca-primary-btn,
    .ca-payment-actions .checkout-btn,
    .ca-payment-actions input[type="button"] {
        width: 100%;
        min-width: 0;
        padding: 15px 20px;
    }
}
/* ===============================
   GOCARDLESS PAYMENT DESIGN
================================= */

.gocardless-wrapper {
    background: #ffffff;   
    padding: 10px;   
    margin-top: 20px;
}

/* HEADER */

.free-booking-label {
    font-size: 15px;
    font-weight: 500;
    color: #6b7280;
    margin-bottom: 8px;
}

.gocardless-header {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 12px;
}

.gocardless-title {
    font-size: 34px;
    font-weight: 700;
    color: #1f2937;
    line-height: 1.2;
}

.gocardless-logo img {
    height: auto;
    width: auto;
    object-fit: contain;
}

.free-booking-desc {
    font-size: 16px;
    line-height: 1.7;
    color: #374151;
    margin: 0 0 28px;
    max-width: 700px;
}


/* FORM */

.gocardless-form {
    display: flex;
    flex-direction: column;
    gap: 18px;
}


@media (max-width: 768px) {

    .gocardless-wrapper {
        padding: 20px;
        border-radius: 14px;
    }

    .gocardless-title {
        font-size: 24px;
    }

    .free-booking-desc {
        font-size: 14px;
    }    
}

.user-card {
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 6px 20px rgba(0,0,0,0.05);
    margin-bottom: 20px;
}

.user-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #eee;
    padding-bottom: 12px;
    margin-bottom: 15px;
}

.user-card-header h3 {
    font-size: 18px;
    font-weight: 600;
    margin: 0;
}

.btn-edit {
    background: #ff9900;
    color: #fff;
    border: none;
    padding: 8px 14px;
    border-radius: 6px;
    cursor: pointer;
}

.btn-edit:hover {
    background: #e68900;
}

.user-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    gap: 10px;
}

.user-row span {
    color: #666;
    font-size: 14px;
}

.user-row strong {
    font-size: 15px;
    color: #111;
    text-align: right;
}

/* FORM HEADER */
.form-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.btn-cancel {
    background: #ddd;
    border: none;
    padding: 6px 12px;
    border-radius: 6px;
    cursor: pointer;
}

/* RESPONSIVE */
@media (max-width: 768px) {
    .user-row {
        flex-direction: column;
        align-items: flex-start;
    }

    .user-row strong {
        text-align: left;
    }

    .user-card {
        padding: 15px;
    }
}

/* ===== MODERN QTY DESIGN ===== */

.basket-qty{
    display:flex;
    align-items:center;
    background:#f8fafc;
    border:1px solid #dbe3ee;
    border-radius:14px;
    overflow:hidden;
    height:46px;
    box-shadow:0 2px 10px rgba(0,0,0,0.04);
}

.qty-btn{
    width:46px;
    height:46px;
    border:none;
    background:transparent;
    font-size:20px;
    font-weight:800;
    color:#111827;
    cursor:pointer;
    transition:0.2s ease;
}

.qty-btn:hover{
    background:#eef2f7;
}

.qty-select{
    border:none !important;
    border-left:1px solid #e2e8f0 !important;
    border-right:1px solid #e2e8f0 !important;
    background:#fff;
    min-width:72px;
    height:46px;
    padding:0 14px;
    font-size:15px;
    font-weight:700;
    text-align:center;
    color:#111827;
    outline:none;
    box-shadow:none !important;
    appearance:none;

    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 7L10 12L15 7' stroke='%2364748B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 10px center;
    padding-right:32px;
}

.qty-select:focus{
    outline:none;
    border-color:#dbe3ee !important;
}

@media(max-width:768px){

    .basket-pro-right{
        gap:12px;
    }

    .basket-pro-price,
    .basket-pro-total{
        font-size:18px;
    }

    .basket-qty{
        height:42px;
    }

    .qty-btn{
        width:42px;
        height:42px;
    }

    .qty-select{
        height:42px;
        min-width:64px;
        font-size:14px;
    }

}

.basket-empty-state{
    padding:40px 30px;
}

.basket-empty-inner h3{
    margin:0 0 14px;
}

.basket-empty-inner p{
    margin:0 0 24px;
    color:#6b7280;
}

.is-invalid{
    border-color:#dc3545 !important;
    box-shadow:0 0 0 3px rgba(220,53,69,.12) !important;
}

.accordion-body{
    max-height:0;
    overflow:hidden;
    opacity:0;
    transition:
        max-height 0.35s ease,
        opacity 0.25s ease,
        padding-top 0.25s ease;
}

.accordion-item.open .accordion-body{
    max-height:500px;
    opacity:1;
    padding-top:14px;
}

.accordion-icon{
    display:inline-flex;
    transition:transform 0.3s ease;
}

.accordion-item.open .accordion-icon{
    transform:rotate(180deg);
}

.accordion-head{
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:space-between;
}