/* ============================================================
   TERMS & CONDITIONS
   FINAL PREMIUM PAGE CSS
   ============================================================ */


/* ============================================================
   PAGE BASE
============================================================ */

.terms-page-body {
    background: #eef9ff !important;
    color: #0b3556;
}

.terms-page {
    width: 100%;
    background:
        linear-gradient(
            180deg,
            #eef9ff 0%,
            #f7fcff 48%,
            #eef9ff 100%
        );
}


/* ============================================================
   MAIN CONTAINER
============================================================ */

.terms-page .legal-page {
    width: 100%;
    padding: 48px 0 72px;
}

.terms-page .legal-page > .container {
    width: min(1180px, calc(100% - 40px));
    max-width: 1180px;
    margin: 0 auto;
}


/* ============================================================
   PAGE HEADER
============================================================ */

.terms-page .legal-page-header {
    margin-bottom: 34px;
    max-width: 900px;
}

.terms-page .legal-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;

    margin-bottom: 10px;

    color: #087bd1;

    font-size: 13px;
    font-weight: 800;

    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.terms-page .legal-eyebrow i {
    font-size: 15px;
}

.terms-page .legal-page-header h1 {
    margin: 0 0 12px !important;

    color: #082f50 !important;

    font-size: clamp(34px, 4vw, 52px) !important;
    line-height: 1.08 !important;

    font-weight: 800 !important;

    letter-spacing: -0.035em;
}

.terms-page .legal-intro {
    margin: 0 !important;

    max-width: 820px;

    color: #58728a !important;

    font-size: 16px !important;
    line-height: 1.75 !important;

    font-weight: 400;
}


/* ============================================================
   CONTENT
============================================================ */

.terms-page .legal-content {
    width: 100%;
}


/* ============================================================
   INDIVIDUAL SECTION
============================================================ */

.terms-page .legal-section {
    position: relative;

    width: 100%;

    margin-bottom: 18px;
    padding: 28px 32px 30px;

    background: rgba(255, 255, 255, 0.96);

    border: 1px solid #d9edf8;
    border-radius: 18px;

    box-shadow:
        0 8px 30px rgba(20, 88, 125, 0.06);

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease;
}

.terms-page .legal-section:hover {
    transform: translateY(-2px);

    border-color: #c5e6f6;

    box-shadow:
        0 14px 36px rgba(20, 88, 125, 0.10);
}


/* ============================================================
   NUMBER
============================================================ */

.terms-page .legal-number {
    margin-bottom: 8px;

    color: #0a8bdd;

    font-size: 12px;
    line-height: 1;

    font-weight: 800;

    letter-spacing: 0.12em;
}


/* ============================================================
   ICON
============================================================ */

.terms-page .legal-section-icon {
    width: 42px;
    height: 42px;

    margin-bottom: 14px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    color: #087bd1;

    background:
        linear-gradient(
            135deg,
            #e2f5ff,
            #ccecff
        );

    border: 1px solid #c9e8f7;
    border-radius: 12px;

    box-shadow:
        0 7px 18px rgba(8, 123, 209, 0.10);
}

.terms-page .legal-section-icon i {
    font-size: 17px;
}


/* ============================================================
   SECTION HEADING
============================================================ */

.terms-page .legal-section h2 {
    margin: 0 0 12px !important;

    color: #082f50 !important;

    font-size: 24px !important;
    line-height: 1.25 !important;

    font-weight: 800 !important;

    letter-spacing: -0.02em;
}


/* ============================================================
   PARAGRAPHS
============================================================ */

.terms-page .legal-section p {
    margin: 0 0 13px !important;

    max-width: 1040px;

    color: #47657d !important;

    font-size: 15px !important;
    line-height: 1.75 !important;

    font-weight: 400;
}

.terms-page .legal-section p:last-child {
    margin-bottom: 0 !important;
}

.terms-page .legal-section strong {
    color: #0a3557;
    font-weight: 800;
}


/* ============================================================
   INFORMATION LIST
============================================================ */

.terms-page .legal-list {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 9px 28px;

    margin: 18px 0 18px;

    padding: 18px 20px;

    background: #f4fbff;

    border: 1px solid #dceff8;
    border-radius: 14px;
}

.terms-page .legal-list div {
    display: flex;
    align-items: center;
    gap: 9px;

    color: #416078;

    font-size: 14px;
    line-height: 1.5;

    font-weight: 600;
}

.terms-page .legal-list i {
    color: #0793dc;

    font-size: 12px;
}


/* ============================================================
   FEE BOX
============================================================ */

.terms-page .fee-box {
    width: 100%;

    margin-top: 18px;

    overflow: hidden;

    background: #f8fcff;

    border: 1px solid #d9edf8;
    border-radius: 14px;
}

.terms-page .fee-row {
    min-height: 50px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    padding: 13px 18px;

    border-bottom: 1px solid #e3f0f6;
}

.terms-page .fee-row:last-child {
    border-bottom: 0;
}

.terms-page .fee-row span {
    color: #45647b;

    font-size: 14px;
    line-height: 1.4;

    font-weight: 600;
}

.terms-page .fee-row strong {
    flex: 0 0 auto;

    color: #087bd1;

    font-size: 15px;

    font-weight: 800;
}


/* ============================================================
   NOTICE
============================================================ */

.terms-page .legal-notice {
    display: flex;
    align-items: flex-start;

    gap: 14px;

    margin-top: 18px;
    padding: 17px 18px;

    background: #edf9ff;

    border: 1px solid #ccebf8;
    border-left: 4px solid #078bdd;

    border-radius: 12px;
}

.terms-page .legal-notice > i {
    flex: 0 0 auto;

    margin-top: 3px;

    color: #087bd1;

    font-size: 18px;
}

.terms-page .legal-notice strong {
    display: block;

    margin-bottom: 4px;

    color: #0a3557;

    font-size: 14px;
    font-weight: 800;
}

.terms-page .legal-notice p {
    margin: 0 !important;

    color: #567189 !important;

    font-size: 13px !important;
    line-height: 1.65 !important;
}


/* ============================================================
   DELIVERY BOX
============================================================ */

.terms-page .delivery-box {
    display: inline-flex;
    align-items: center;

    gap: 13px;

    margin-top: 10px;
    padding: 12px 16px;

    background: #f1fbff;

    border: 1px solid #cfeaf7;
    border-radius: 12px;
}

.terms-page .delivery-icon {
    width: 38px;
    height: 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #087bd1;

    background: #dff4ff;

    border-radius: 10px;
}

.terms-page .delivery-box strong {
    display: block;

    color: #45647b;

    font-size: 12px;
    line-height: 1.4;

    font-weight: 700;
}

.terms-page .delivery-box span {
    display: block;

    margin-top: 2px;

    color: #087bd1;

    font-size: 15px;

    font-weight: 800;
}


/* ============================================================
   FINAL NOTE
============================================================ */

.terms-page .legal-final-note {
    display: flex;
    align-items: flex-start;

    gap: 18px;

    margin-top: 26px;
    padding: 25px 28px;

    background:
        linear-gradient(
            135deg,
            #e3f7ff 0%,
            #f8fdff 100%
        );

    border: 1px solid #c7e9f8;
    border-radius: 18px;

    box-shadow:
        0 10px 30px rgba(8, 123, 209, 0.07);
}

.terms-page .legal-final-icon {
    width: 46px;
    height: 46px;

    flex: 0 0 46px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #ffffff;

    background:
        linear-gradient(
            135deg,
            #0796df,
            #0873ca
        );

    border-radius: 13px;

    box-shadow:
        0 8px 18px rgba(8, 123, 209, 0.20);
}

.terms-page .legal-final-icon i {
    font-size: 19px;
}

.terms-page .legal-final-note h3 {
    margin: 1px 0 7px !important;

    color: #082f50 !important;

    font-size: 20px !important;
    line-height: 1.3 !important;

    font-weight: 800 !important;
}

.terms-page .legal-final-note p {
    max-width: 900px;

    margin: 0 0 17px !important;

    color: #506d83 !important;

    font-size: 14px !important;
    line-height: 1.7 !important;
}


/* ============================================================
   BOOK BUTTON
============================================================ */

.terms-page .legal-book-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 10px;

    min-height: 46px;

    padding: 0 20px;

    color: #ffffff !important;

    background:
        linear-gradient(
            135deg,
            #087fd6,
            #0669ba
        );

    border: 0;
    border-radius: 10px;

    text-decoration: none !important;

    font-size: 14px;
    font-weight: 800;

    box-shadow:
        0 8px 18px rgba(8, 123, 209, 0.20);

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.terms-page .legal-book-button:hover {
    color: #ffffff !important;

    transform: translateY(-2px);

    box-shadow:
        0 12px 24px rgba(8, 123, 209, 0.26);
}

.terms-page .legal-book-button i {
    font-size: 13px;
}


/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 991.98px) {

    .terms-page .legal-page {
        padding: 38px 0 56px;
    }

    .terms-page .legal-page > .container {
        width: min(
            100% - 30px,
            760px
        );
    }

    .terms-page .legal-page-header {
        margin-bottom: 26px;
    }

    .terms-page .legal-section {
        padding: 24px 24px 26px;
    }

    .terms-page .legal-section h2 {
        font-size: 22px !important;
    }

    .terms-page .legal-list {
        grid-template-columns: 1fr;
    }

}


/* ============================================================
   MOBILE SMALL
============================================================ */

@media (max-width: 575.98px) {

    .terms-page .legal-page {
        padding: 28px 0 44px;
    }

    .terms-page .legal-page > .container {
        width: calc(100% - 24px);
    }

    .terms-page .legal-page-header h1 {
        font-size: 31px !important;
    }

    .terms-page .legal-intro {
        font-size: 14px !important;
        line-height: 1.65 !important;
    }

    .terms-page .legal-section {
        margin-bottom: 13px;
        padding: 21px 18px 22px;

        border-radius: 14px;
    }

    .terms-page .legal-section-icon {
        width: 38px;
        height: 38px;

        margin-bottom: 12px;
    }

    .terms-page .legal-section h2 {
        font-size: 20px !important;
    }

    .terms-page .legal-section p {
        font-size: 14px !important;
        line-height: 1.7 !important;
    }

    .terms-page .legal-list {
        padding: 14px;

        gap: 8px;
    }

    .terms-page .legal-list div {
        font-size: 13px;
    }

    .terms-page .fee-row {
        align-items: flex-start;

        padding: 12px 14px;
    }

    .terms-page .fee-row span {
        font-size: 13px;
    }

    .terms-page .fee-row strong {
        font-size: 13px;
    }

    .terms-page .legal-notice {
        padding: 14px;
    }

    .terms-page .legal-final-note {
        flex-direction: column;

        padding: 20px 18px;
    }

    .terms-page .legal-final-icon {
        width: 42px;
        height: 42px;

        flex-basis: 42px;
    }

    .terms-page .legal-final-note h3 {
        font-size: 18px !important;
    }

    .terms-page .legal-book-button {
        width: 100%;
    }

}


/* ============================================================
   OVERRIDE GLOBAL TYPOGRAPHY / LAYOUT CONFLICTS
============================================================ */

.terms-page .legal-page *,
.terms-page .legal-page *::before,
.terms-page .legal-page *::after {
    box-sizing: border-box;
}

.terms-page .legal-page h1,
.terms-page .legal-page h2,
.terms-page .legal-page h3,
.terms-page .legal-page p {
    letter-spacing: normal;
}

.terms-page .legal-page h1 {
    letter-spacing: -0.035em;
}

.terms-page .legal-page h2 {
    letter-spacing: -0.02em;
}

.terms-page .legal-page a {
    text-decoration: none;
}

.terms-page .legal-page img {
    max-width: 100%;
    height: auto;
}