.policy-page {
    padding: 2rem var(--side-padding) 6rem;
    align-self: stretch;
    box-sizing: border-box;
}

.policy-shell {
    max-width: 72rem;
    display: flex;
    flex-direction: column;
    gap: 2rem;
    padding-bottom: 10rem;
}

.policy-intro {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.policy-last-updated {
    font-size: var(--font-size-small);
    opacity: 0.8;
}

.policy-section {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 3rem 0;
}

.policy-section h2 {
    line-height: 120%;
}

.policy-section p,
.policy-section li,
.policy-table,
.policy-note {
    line-height: 1.55;
}

.policy-list {
    list-style: disc;
    padding-left: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.policy-list li {
    margin: 0;
}

.policy-table-wrapper {
    overflow-x: auto;
    border-radius: 1rem;
    box-shadow: var(--md-elevation-1);
}

.policy-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    min-width: 42rem;
}

.policy-table th,
.policy-table td {
    text-align: left;
    vertical-align: top;
    padding: 1rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.policy-table th {
    font-family: 'Kanit', Arial, sans-serif;
    font-weight: 400;
    background: rgba(52, 152, 219, 0.08);
}

.policy-table tr:last-child td {
    border-bottom: none;
}

.policy-card {
    background: rgba(255, 255, 255, 0.7);
    border-radius: 1rem;
    padding: 1.25rem;
    box-shadow: var(--md-elevation-1);
}

.policy-contact {
    display: inline-block;
    text-decoration: none;
}

.policy-contact:hover {
    color: var(--orange-color);
    text-decoration: underline;
    text-underline-offset: 0.25rem;
}

/* Small Devices (max-width: 400px) */
@media (max-width: 400px) {
    .policy-shell {
        padding-bottom: 6rem;
    }

    .policy-page {
        padding-top: 1rem;
        padding-bottom: 4rem;
    }

    .policy-table {
        min-width: 36rem;
    }
}

/* Small-Medium Devices (400px - 767px) */
@media (min-width: 401px) and (max-width: 767px) {
    .policy-shell {
        padding-bottom: 6rem;
    }

    .policy-page {
        padding-top: 1rem;
        padding-bottom: 4rem;
    }

    .policy-table {
        min-width: 36rem;
    }
}

/* Large Devices (768px - 1020px) */
@media (min-width: 768px) and (max-width: 1020px) {

    .policy-shell {
        padding-bottom: 7rem;
    }
}