/* =========================================
   Public Policy Pages (/refund-policy)
   ========================================= */

.policy-page {
    width: 100%;
    background: var(--white-color, #ffffff);
    padding: 0 0 60px;
}

.policy-container {
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
    font-family: var(--body-font, 'DM Sans', sans-serif);
    color: var(--body-color, #6e6e6e);
    font-size: 16px;
    line-height: 1.75;
}

/* ---------- Hero ---------- */

.policy-hero {
    padding: 8px 0 32px;
    border-bottom: 1px solid var(--border-color, #e0e0e0);
    margin-bottom: 32px;
}

.policy-hero-title {
    font-family: var(--title-font, 'Cormorant Garamond', serif);
    font-size: 44px;
    line-height: 1.2;
    font-weight: 700;
    color: var(--title-color, #0d0d0d);
    margin: 0 0 16px;
}

.policy-hero-subtitle {
    max-width: 780px;
    font-size: 17px;
    margin: 0 0 16px;
}

.policy-updated {
    font-size: 14px;
    color: var(--text-muted, #6c757d);
    margin: 0;
}

/* ---------- Table of contents ---------- */

.policy-toc {
    background: var(--bg-light, #fafafa);
    border: 1px solid var(--border-color, #e0e0e0);
    border-radius: 8px;
    padding: 24px 28px;
    margin-bottom: 48px;
}

.policy-toc-title {
    font-family: var(--body-font, 'DM Sans', sans-serif);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--title-color, #0d0d0d);
    margin: 0 0 16px;
}

.policy-toc ol {
    columns: 2;
    column-gap: 40px;
    margin: 0;
    padding-left: 20px;
}

.policy-toc li {
    break-inside: avoid;
    margin-bottom: 6px;
}

.policy-toc a {
    color: var(--body-color, #6e6e6e);
    text-decoration: none;
}

.policy-toc a:hover,
.policy-toc a:focus {
    color: var(--theme-color, #9e092c);
    text-decoration: underline;
}

/* ---------- Sections ---------- */

.policy-section {
    margin-bottom: 44px;
    /* Keep anchored headings clear of the sticky header. */
    scroll-margin-top: 100px;
}

.policy-section h2 {
    font-family: var(--title-font, 'Cormorant Garamond', serif);
    font-size: 30px;
    line-height: 1.3;
    font-weight: 700;
    color: var(--title-color, #0d0d0d);
    margin: 0 0 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--theme-color, #9e092c);
}

.policy-section h3 {
    font-family: var(--body-font, 'DM Sans', sans-serif);
    font-size: 18px;
    font-weight: 700;
    color: var(--title-color, #0d0d0d);
    margin: 28px 0 12px;
}

.policy-section p {
    margin: 0 0 14px;
}

.policy-list,
.policy-steps {
    margin: 0 0 18px;
    padding-left: 22px;
}

.policy-list li,
.policy-steps li {
    margin-bottom: 8px;
    padding-left: 4px;
}

.policy-list li::marker {
    color: var(--theme-color, #9e092c);
}

.policy-steps li::marker {
    color: var(--theme-color, #9e092c);
    font-weight: 700;
}

/* Callout for the clauses a customer should not miss. */
.policy-section .policy-note {
    background: var(--bg-light, #fafafa);
    border-left: 4px solid var(--theme-color, #9e092c);
    border-radius: 0 6px 6px 0;
    padding: 14px 18px;
    margin: 18px 0;
    color: var(--text-dark, #2c2c2c);
}

/* ---------- Merchant / contact details ---------- */

.policy-details {
    display: grid;
    grid-template-columns: minmax(180px, 260px) 1fr;
    gap: 0;
    margin: 0;
    border: 1px solid var(--border-color, #e0e0e0);
    border-radius: 8px;
    overflow: hidden;
}

.policy-details dt,
.policy-details dd {
    margin: 0;
    padding: 14px 18px;
    border-bottom: 1px solid var(--border-color, #e0e0e0);
    overflow-wrap: anywhere;
}

.policy-details dt {
    background: var(--bg-light, #fafafa);
    font-weight: 700;
    color: var(--title-color, #0d0d0d);
}

.policy-details dd {
    color: var(--text-dark, #2c2c2c);
}

.policy-details dt:nth-last-of-type(1),
.policy-details dd:nth-last-of-type(1) {
    border-bottom: 0;
}

.policy-details a {
    color: var(--theme-color, #9e092c);
    text-decoration: none;
}

.policy-details a:hover,
.policy-details a:focus {
    text-decoration: underline;
}

/* ---------- Focus visibility ---------- */

.policy-page a:focus-visible {
    outline: 2px solid var(--theme-color, #9e092c);
    outline-offset: 2px;
    border-radius: 2px;
}

/* ---------- Responsive ---------- */

@media (max-width: 991px) {
    .policy-hero-title {
        font-size: 36px;
    }

    .policy-section h2 {
        font-size: 26px;
    }

    .policy-toc ol {
        columns: 1;
    }
}

@media (max-width: 575px) {
    .policy-container {
        padding: 0 18px;
        font-size: 15px;
    }

    .policy-page {
        padding-bottom: 40px;
    }

    .policy-hero-title {
        font-size: 28px;
    }

    .policy-hero-subtitle {
        font-size: 15px;
    }

    .policy-section h2 {
        font-size: 22px;
    }

    .policy-toc {
        padding: 18px 20px;
        margin-bottom: 32px;
    }

    /* Stack label above value so long addresses never overflow. */
    .policy-details {
        grid-template-columns: 1fr;
    }

    .policy-details dt {
        border-bottom: 0;
        padding-bottom: 4px;
    }

    .policy-details dd {
        padding-top: 4px;
    }
}
