     html, body {
    max-width: 100%;
    overflow-x: hidden;
}
    /* base + custom accommodations style */
    .pricing-card { border-radius: 20px; background: white; transition: 0.2s; border: 1px solid #ffffff; }
    .pricing-card:hover { box-shadow: 0 20px 30px -10px rgba(3,0,49,0.15); transform: translateY(-4px); }
    .pricing-header { font-size: 1.6rem; font-weight: 700; color: #030031; }
    /* .btn-register { background: #273053; color: white; border-radius: 40px; padding: 10px 30px; font-weight: 600; border: none; } */
    /* .btn-register:hover { background: #273053; } */
    .deadline-badge { background: #ffd966; color: #030031; display: inline-block; padding: 6px 24px; border-radius: 40px; font-weight: 600; margin-bottom: 25px; }

    /* registration page (second step) */
    .reg-page {
      max-width: 1100px;
      margin: 40px auto;
      background: white;
      border-radius: 32px;
      box-shadow: 0 25px 50px -12px rgba(0,0,0,0.25);
      padding: 2.5rem 2rem;
    }
    .reg-page h2 { color: #030031; font-weight: 700; border-left: 8px solid #273053; padding-left: 1.2rem; }
    .section-card { background: #f9fafc; border-radius: 24px; padding: 1.5rem; margin-top: 2rem; border: 1px solid #eef2f6; }
    .section-title { font-size: 1.5rem; font-weight: 700; color: #17246e; margin-bottom: 1.2rem; display: flex; align-items: center; gap: 12px; }
    .form-control, .form-select { border-radius: 16px; border: 1.5px solid #e2e8f0; padding: 12px 16px; background: white; }
    .form-control:focus, .form-select:focus { border-color: #273053; box-shadow: 0 0 0 3px rgba(88,133,92,0.2); }
    .hotel-option { background: white; border-radius: 18px; padding: 1.2rem; border: 2px solid #e9edf4; margin-bottom: 1rem; transition: 0.1s; cursor: pointer; }
    .hotel-option.selected { border-color: #030031; background: #f0f3fa; }
    .hotel-option:hover { border-color: #273053; }
    .hotel-radio { accent-color: #030031; width: 1.2rem; height: 1.2rem; margin-right: 12px; }
    .date-range { background: #f4f7fd; border-radius: 50px; padding: 8px 20px; display: inline-block; font-weight: 600; color: #030031; }
    .summary-sticky { background: #273053; color: white; border-radius: 28px; padding: 1.8rem; position: sticky; top: 30px; }
    .summary-sticky .total-big { font-size: 3rem; font-weight: 800; line-height: 1; }
    .btn-pay { background: #0dcaf0; border: none; padding: 16px; border-radius: 60px; font-weight: 700; font-size: 1.3rem; width: 100%; color: white; transition: 0.2s; }
    .btn-pay:hover { background: rgb(26, 152, 172); }
    .back-link { color: #030031; font-weight: 600; text-decoration: none; }
    .back-link i { margin-right: 6px; }

    /* popup (original remains, but we will redirect to full page) */
    #popup { display: none; } /* we override behaviour: instead of popup we show reg page */
    .reg-page-wrapper { display: none; }
    body.registration-mode .pricing-section { display: none; }
    body.registration-mode .reg-page-wrapper { display: block; }

    /* custom table style – exactly as requested */
    .important-dates-table {
      width: 90%;
      max-width: 1200px;
      margin: 0 auto 40px auto;
      border-collapse: collapse;
      background: white;
      box-shadow: 0 4px 12px rgba(0,0,0,0.05);
      border-radius: 16px;
      overflow: hidden;
    }
    .important-dates-table th {
      background-color: #273053;
      color: white;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      padding: 16px 12px;
      font-size: 1.1rem;
    }
    .important-dates-table td {
      padding: 14px 12px;
      border-bottom: 1px solid #e2e8f0;
      text-align: center;
      background-color: #fff;
    }
    .important-dates-table tr:last-child td {
      border-bottom: none;
    }
    .important-dates-table td:first-child {
      font-weight: 600;
      color: #030031;
      text-align: left;
      padding-left: 24px;
    }
    .important-dates-table td:nth-child(2),
    .important-dates-table td:nth-child(3),
    .important-dates-table td:nth-child(4) {
      font-weight: 600;
      color: #17246e;
    }
    /* pricing cards (preserved) */
    .pricing-card {
      background: white;
      border-radius: 24px;
      padding: 24px 20px;
      box-shadow: 0 12px 30px rgba(0,0,0,0.08);
      transition: 0.2s;
      border: 1px solid #edf2f7;
      text-align: center;
    }
    .pricing-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 20px 30px -8px rgba(3,0,49,0.15);
    }
    .pricing-header {
      font-size: 1.8rem;
      font-weight: 700;
      color: #030031;
    }
    .pricing-price {
      font-size: 2.2rem;
      font-weight: 800;
      color: #17246e;
      margin: 12px 0;
    }
    .pricing-price small {
      font-size: 1rem;
      font-weight: 400;
      color: #64748b;
    }
    .features {
      list-style: none;
      padding: 0;
      margin: 20px 0;
      text-align: left;
    }
    .features li {
      padding: 6px 0 6px 24px;
      position: relative;
      font-size: 0.95rem;
      color: #334155;
    }
    .features li::before {
      content: "✔";
      color: #273053;
      font-weight: bold;
      position: absolute;
      left: 0;
    }
    .btn-register {
      background: #273053;
      color: white;
      border: none;
      padding: 12px 32px;
      border-radius: 40px;
      font-weight: 600;
      width: 100%;
      transition: 0.2s;
    }
    .btn-register:hover {
      background: #1a7021;
    }
    .deadline-badge {
      background: #ffd966;
      color: #030031;
      display: inline-block;
      padding: 8px 32px;
      border-radius: 40px;
      font-weight: 600;
      margin: 10px 0 30px 0;
      font-size: 1.2rem;
    }
    /* spacing */
    .pricing-section {
      padding: 20px 0 60px;
    }
    .input-error {
  border: 2px solid #dc3545 !important;
  background-color: #fff5f5;
}

.error-text {
  color: #dc3545;
  font-size: 13px;
  margin-top: 4px;
}





/* IMPORTANT DATE BOX */
.important-date-box{
    background:#ffffff;
    border-radius:25px;
    padding:40px;
}

.important-date-box table thead{
    background:#17c1e8;
    color:#ffffff;
}

.important-date-box table th{
    padding:18px;
    font-size:16px;
}

.important-date-box table td{
    padding:18px;
    color:#555;
    font-weight:500;
}

/* FORM */
.registration-form-box{
    background:#ffffff;
    padding:50px;
    border-radius:30px;
}

.registration-form-box h3{
    font-weight:700;
}

.form-control,
.form-select{
    height:58px;
    border-radius:15px;
    border:1px solid #dfe3e8;
    padding-left:18px;
}

.form-control:focus,
.form-select:focus{
    box-shadow:none;
    border-color:#17c1e8;
}

/* BUTTON */
.custom-register-btn{
    background:#17c1e8;
    border:none;
    padding:16px 50px;
    border-radius:50px;
    font-size:18px;
    font-weight:600;
}

.custom-register-btn:hover{
    background:#0ea7ca;
}

/* SUMMARY */
.summary-box{
    background:#0f172a;
    padding:40px;
    border-radius:30px;
    position:sticky;
    top:120px;
}

.summary-item{
    display:flex;
    justify-content:space-between;
    color:#ffffff;
    margin-bottom:20px;
}

.summary-total{
    display:flex;
    justify-content:space-between;
    color:#ffffff;
    font-size:26px;
    font-weight:700;
}

/* RESPONSIVE */
@media(max-width:991px){

    .summary-box{
        position:relative;
        top:0;
    }

    .registration-form-box{
        padding:30px;
    }

}

/* CARD HOVER */
.pricing-thumb{
    border-radius:25px;
    overflow:hidden;
    transition:0.4s;
}

.pricing-thumb:hover{
    transform:translateY(-10px);
}

.pricing-title-wrap{
    background:#273053
;
    padding:25px;
}

.pricing-body{
    padding:30px;
}

.pricing-body p{
    margin-bottom:15px;
    color:#555;
}

/* =========================================
   REGISTRATION HEADING
========================================= */

.registration-heading{
    margin-bottom:60px;
}

/* TITLE */

.registration-title{
    font-size:48px;
    font-weight:700;
    color:#252f63;
    margin-bottom:28px;
    letter-spacing:-0.5px;
    position:relative;
    display:inline-block;
}

/* BLUE LINE */

.registration-title::after{
    content:"";
    width:90px;
    height:4px;
    background:#17c1e8;
    border-radius:50px;
    position:absolute;
    left:50%;
    transform:translateX(-50%);
    bottom:-14px;
}

/* DEADLINE BADGE */

.deadline-badge{
    background:#17c1e8;
    color:#ffffff;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:14px 32px;
    border-radius:60px;
    font-size:18px;
    font-weight:700;
    margin-top:25px;
    box-shadow:0 10px 25px rgba(23,193,232,0.25);
    transition:0.3s ease;
}

/* HOVER */

.deadline-badge:hover{
    transform:translateY(-3px);
    background:#252f63;
}

/* ICON */

.deadline-badge i{
    font-size:18px;
}

/* MOBILE */

@media(max-width:991px){

    .registration-title{
        font-size:34px;
    }

    .deadline-badge{
        font-size:15px;
        padding:12px 24px;
    }

}