body{

    background:#f5f7fb;
    overflow-x:hidden;

}

.otb-page{

    padding:16px 0 40px;

}

.otb-container{

    width:min(1180px,95%);
    margin:auto;

}

/* =========================================================
HERO
========================================================= */

.otb-hero{

    position:relative;

    overflow:hidden;

    border-radius:24px;

    padding:34px 28px;

    margin-bottom:18px;

    background:
    linear-gradient(
    rgba(0,0,0,.55),
    rgba(0,0,0,.45)
    ),
    url('<?= $baseURL ?>assets/images/ok-to-board-hero.webp');

    background-size:cover;
    background-position:center;

    color:#fff;

}

.otb-hero-grid{

    display:grid;
    grid-template-columns:1fr 280px;
    gap:20px;
    align-items:center;

}

.hero-content h1{

    font-size:42px;
    line-height:1.1;
    font-weight:900;

    margin-bottom:12px;

}

.hero-content p{

    font-size:14px;
    line-height:1.8;

    max-width:650px;

}

.hero-badges{

    display:flex;
    flex-wrap:wrap;
    gap:10px;

    margin-top:18px;

}

.hero-badges span{

    padding:10px 14px;

    border-radius:50px;

    background:
    rgba(255,255,255,.14);

    border:
    1px solid rgba(255,255,255,.14);

    font-size:12px;
    font-weight:700;

}

.price-card{

    background:#fff;

    border-radius:20px;

    padding:24px;

    text-align:center;

    color:#111827;

}

.price-card h3{

    font-size:18px;
    font-weight:900;

    margin-bottom:10px;

}

.price-amount{

    font-size:42px;
    font-weight:900;

    color:#ff2d55;

}

/* =========================================================
LAYOUT
========================================================= */

.otb-grid{

    display:grid;
    grid-template-columns:minmax(0,1fr) 320px;
    gap:18px;

}

.otb-card{

    background:#fff;

    border-radius:22px;

    padding:22px;

    box-shadow:
    0 8px 22px rgba(15,23,42,.05);

}

.section-title{

    font-size:26px;
    font-weight:900;

    margin-bottom:6px;

}

.section-subtitle{

    font-size:13px;
    line-height:1.7;

    color:#6b7280;

    margin-bottom:20px;

}

/* =========================================================
FORM
========================================================= */

.form-grid{

    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;

}

.form-group{

    display:flex;
    flex-direction:column;

}

.form-group.full{

    grid-column:1/-1;

}

.form-label{

    font-size:12px;
    font-weight:800;

    margin-bottom:7px;

    color:#374151;

}

.form-control{

    width:100%;
    height:50px;

    border:1px solid #e5e7eb;

    border-radius:14px;

    padding:0 14px;

    font-size:13px;

    transition:.25s;

    box-sizing:border-box;

}

textarea.form-control{

    height:100px;

    padding:14px;

    resize:none;

}

.form-control:focus{

    outline:none;

    border-color:#ff4d6d;

    box-shadow:
    0 0 0 4px rgba(255,77,109,.10);

}

input[type="date"]{

    min-height:50px;

}

/* =========================================================
BUTTONS
========================================================= */

.main-btn{

    width:100%;

    height:54px;

    border:none;

    border-radius:16px;

    margin-top:18px;

    background:
    linear-gradient(
    135deg,
    #ff6a00,
    #ff006a
    );

    color:#fff;

    font-size:14px;
    font-weight:800;

    cursor:pointer;

}

/* =========================================================
PAYMENT
========================================================= */

#paymentSection{

    display:none;

    margin-top:24px;

    border-top:1px solid #e5e7eb;

    padding-top:24px;

}

.payment-box{

    background:#fff7f8;

    border:1px dashed #ffb4c0;

    border-radius:18px;

    padding:18px;

    text-align:center;

    margin-top:12px;

}

.payment-box img{

    width:100%;
    max-width:220px;

    background:#fff;

    border-radius:14px;

    padding:10px;

}

.payment-note{

    margin-top:18px;

    background:#fff4e5;

    border-left:4px solid #ff9800;

    border-radius:14px;

    padding:14px;

    font-size:13px;
    line-height:1.8;

    color:#92400e;

}

.file-input{

    width:100%;

    margin-top:16px;

    border:1px dashed #d1d5db;

    border-radius:14px;

    padding:14px;

    background:#fff;

}

/* =========================================================
COUNTRIES
========================================================= */

.country-list{

    display:grid;
    gap:10px;

}

.country-item{

    background:#f9fafb;

    border-radius:14px;

    padding:14px;

    font-size:13px;
    font-weight:700;

}

/* =========================================================
MOBILE DATE PICKER
========================================================= */

.date-wrapper{

    position:relative;

    width:100%;

}

.date-wrapper .form-control{

    padding-right:48px;

    cursor:pointer;

    background:#fff;

}

.date-icon{

    position:absolute;

    right:16px;
    top:50%;

    transform:translateY(-50%);

    pointer-events:none;

    font-size:18px;

    color:#6b7280;

}

/* FLATPICKR */

.flatpickr-calendar{

    border:none !important;

    border-radius:18px !important;

    box-shadow:
    0 10px 40px rgba(15,23,42,.15) !important;

    overflow:hidden;

}

.flatpickr-day.selected{

    background:#ff2d55 !important;
    border-color:#ff2d55 !important;

}

.flatpickr-day.today{

    border-color:#ff2d55 !important;

}

.flatpickr-months{

    background:#fff;

}

.flatpickr-current-month{

    font-weight:800;

}

/* =========================================================
ALERTS
========================================================= */

.alert{

    padding:14px;

    border-radius:14px;

    font-size:13px;
    font-weight:700;

    margin-bottom:18px;

}

.alert-error{

    background:#fef2f2;
    color:#dc2626;

}

.alert-success{

    background:#ecfdf5;
    color:#15803d;

}

/* =========================================================
SUCCESS POPUP
========================================================= */

.success-popup-overlay{

    position:fixed;

    inset:0;

    background:
    rgba(0,0,0,.65);

    display:flex;

    align-items:center;
    justify-content:center;

    z-index:999999;

    padding:20px;

    animation:popupFade .25s ease;

}

.success-popup-box{

    position:relative;

    width:100%;
    max-width:420px;

    background:#fff;

    border-radius:26px;

    padding:34px 24px;

    text-align:center;

    box-shadow:
    0 25px 60px rgba(0,0,0,.25);

    animation:popupScale .25s ease;

}

.success-close-btn{

    position:absolute;

    top:14px;
    right:14px;

    width:34px;
    height:34px;

    border:none;

    border-radius:50%;

    background:#f3f4f6;

    color:#111827;

    font-size:24px;

    cursor:pointer;

    transition:.2s;

}

.success-close-btn:hover{

    background:#e5e7eb;

}

.success-icon{

    width:84px;
    height:84px;

    margin:auto auto 18px;

    border-radius:50%;

    background:
    linear-gradient(
    135deg,
    #16a34a,
    #22c55e
    );

    color:#fff;

    font-size:42px;
    font-weight:900;

    display:flex;

    align-items:center;
    justify-content:center;

    box-shadow:
    0 10px 30px rgba(34,197,94,.30);

}

.success-popup-box h3{

    font-size:28px;
    font-weight:900;

    color:#111827;

    margin-bottom:12px;

    line-height:1.2;

}

.success-popup-box p{

    font-size:14px;
    line-height:1.9;

    color:#6b7280;

    margin-bottom:22px;

}

.success-popup-btn{

    width:100%;
    height:54px;

    border:none;

    border-radius:16px;

    background:
    linear-gradient(
    135deg,
    #ff6a00,
    #ff006a
    );

    color:#fff;

    font-size:15px;
    font-weight:800;

    cursor:pointer;

    transition:.25s;

}

.success-popup-btn:hover{

    transform:translateY(-2px);

}

/* =========================================================
ANIMATION
========================================================= */

@keyframes popupFade{

    from{

        opacity:0;

    }

    to{

        opacity:1;

    }

}

@keyframes popupScale{

    from{

        opacity:0;

        transform:
        scale(.85);

    }

    to{

        opacity:1;

        transform:
        scale(1);

    }

}

/* =========================================================
MOBILE
========================================================= */

@media(max-width:768px){

    .success-popup-box{

        padding:28px 18px;

        border-radius:22px;

    }

    .success-popup-box h3{

        font-size:24px;

    }

    .success-popup-box p{

        font-size:13px;

    }

}

/* =========================================================
MOBILE
========================================================= */

@media(max-width:991px){

    .otb-grid,
    .otb-hero-grid{

        grid-template-columns:1fr;

    }

}

@media(max-width:768px){

    .otb-page{

        padding:10px 0 30px;

    }

    .otb-hero{

        padding:24px 18px;

        border-radius:18px;

    }

    .hero-content{

        text-align:center;

    }

    .hero-content h1{

        font-size:28px;

    }

    .hero-badges{

        justify-content:center;

    }

    .otb-card{

        padding:18px 15px;

        border-radius:18px;

    }

    .form-grid{

        grid-template-columns:1fr;

    }

}