/* ==========================================================================
   Policy pages (Privacy Notice, Cookie Policy)
   Shared by privacy-policy.html and cookie-policy.html.
   Loaded after style.css. Scoped to .policy-page so the landing page stays
   untouched. Type-led layout: same font family and colour tokens as the rest
   of the site, no extra decoration.
   ========================================================================== */

.policy-page {
    background-color: rgba(var(--accent-white), 1);
    color: rgba(var(--accent-black), 1);
    overflow-x: clip;
}

/* The shared header is absolutely positioned so it can sit over the home
   banner. Here it sits in the flow, above the black title band. */
.policy-page header {
    position: relative;
    background-color: rgba(var(--accent-black), 1);
}

/* keyboard-only shortcut to the policy text */
.policy-skip-link {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 9999;
    padding: 10px 16px;
    border-radius: 4px;
    background-color: rgba(var(--accent-orange), 1);
    color: rgba(var(--accent-white), 1);
    font-size: 14px;
    font-weight: 700;
    transform: translateY(-200%);
}

.policy-skip-link:focus-visible {
    transform: translateY(0);
    outline: 2px solid rgba(var(--accent-white), 1);
    outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   Title
   -------------------------------------------------------------------------- */
.policy-hero {
    padding: 40px 0 48px;
    background-color: rgba(var(--accent-black), 1);
    color: rgba(var(--accent-white), 1);
}

.policy-title {
    margin-bottom: 10px;
    font-size: 48px;
    font-weight: 700;
    line-height: 1.1;
    color: rgba(var(--accent-white), 1);
}

.policy-updated {
    font-size: 15px;
    font-weight: 500;
    line-height: 22px;
    color: rgba(var(--accent-white), 0.7);
}

.policy-updated sup {
    font-size: 0.7em;
    line-height: 0;
}

/* --------------------------------------------------------------------------
   Policy text
   -------------------------------------------------------------------------- */
.policy-body {
    /* the orange footer card pulls up 80px, so leave room like the landing page */
    padding: 56px 0 200px;
}

.policy-content {
    max-width: 860px;
}

.policy-section+.policy-section {
    margin-top: 40px;
}

/* clause headings: bold caps, as in the source document */
.policy-content h2 {
    margin-bottom: 14px;
    font-size: 20px;
    font-weight: 700;
    line-height: 28px;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    color: rgba(var(--accent-black), 1);
}

.policy-content h3 {
    margin: 24px 0 10px;
    font-size: 17px;
    font-weight: 700;
    line-height: 24px;
    letter-spacing: 0.3px;
    text-transform: uppercase;
    color: rgba(var(--accent-black), 1);
}

/* underlined sub-label, as in the source document */
.policy-content h4 {
    margin: 20px 0 10px;
    font-size: 16px;
    font-weight: 700;
    line-height: 24px;
    color: rgba(var(--accent-black), 1);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.policy-content p {
    margin-bottom: 16px;
    font-size: 16px;
    font-weight: 400;
    line-height: 26px;
    color: rgba(var(--accent-black), 0.85);
}

.policy-content p:last-child {
    margin-bottom: 0;
}

.policy-content ul,
.policy-content ol {
    margin: 0 0 18px 0;
    padding-left: 22px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.policy-content ul ul,
.policy-content ol ol,
.policy-content ul ol,
.policy-content ol ul {
    margin: 8px 0 0 0;
}

.policy-content li {
    font-size: 16px;
    font-weight: 400;
    line-height: 26px;
    color: rgba(var(--accent-black), 0.85);
}

/* short lists that run in two columns in the source document */
.policy-content ul.policy-list-columns {
    display: block;
    columns: 2;
    column-gap: 48px;
    max-width: 560px;
}

.policy-content ul.policy-list-columns li {
    margin-bottom: 8px;
    break-inside: avoid;
}

.policy-content strong,
.policy-content b {
    font-weight: 700;
    color: rgba(var(--accent-black), 1);
}

.policy-content em,
.policy-content i {
    font-style: italic;
}

.policy-content a {
    color: rgba(var(--accent-orange), 1);
    font-weight: 500;
    text-decoration: underline;
    text-underline-offset: 3px;
    overflow-wrap: anywhere;
}

.policy-content a:hover {
    opacity: 0.8;
}

.policy-content a:focus-visible {
    outline: 2px solid rgba(var(--accent-orange), 1);
    outline-offset: 2px;
}

/* tables */
.policy-table {
    width: 100%;
    margin: 8px 0 20px;
    border-collapse: collapse;
    font-size: 15px;
    line-height: 24px;
}

.policy-table caption {
    margin-bottom: 8px;
    text-align: left;
    font-size: 14px;
    font-weight: 500;
    color: rgba(var(--accent-black), 0.6);
}

.policy-table th,
.policy-table td {
    padding: 10px 14px;
    border: 1px solid rgba(var(--accent-black), 0.15);
    text-align: left;
    vertical-align: top;
    font-weight: 400;
    color: rgba(var(--accent-black), 0.85);
}

.policy-table thead th {
    font-weight: 700;
    color: rgba(var(--accent-black), 1);
}

/* postal address block (browsers italicise <address> by default) */
.policy-content .policy-address {
    margin-bottom: 16px;
    font-style: normal;
    font-size: 16px;
    font-weight: 400;
    line-height: 26px;
    color: rgba(var(--accent-black), 0.85);
}

/* footer legal link marks the current page */
.policy-page footer .footer-legal-links a[aria-current="page"] {
    color: rgba(var(--accent-yellow), 1);
}

/* --------------------------------------------------------------------------
   Inline "Cookie Settings" trigger
   Deliberately does NOT use the cmp-revoke-consent class: the Securiti SDK
   binds to the first .cmp-revoke-consent element only, and that has to stay
   the floating trigger. These buttons are wired up in privacy-policy.js.
   Rendered as an inline link rather than a button.
   -------------------------------------------------------------------------- */
.policy-content button.policy-cookie-settings {
    position: static;
    display: inline;
    width: auto;
    height: auto;
    padding: 0;
    margin: 0;
    border: none;
    border-radius: 0;
    background: none;
    box-shadow: none;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    font-weight: 500;
    text-align: left;
    color: rgba(var(--accent-orange), 1);
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
    transition: none;
}

.policy-content button.policy-cookie-settings:hover {
    transform: none;
    background: none;
    box-shadow: none;
    opacity: 0.8;
}

.policy-content button.policy-cookie-settings:focus-visible {
    outline: 2px solid rgba(var(--accent-orange), 1);
    outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media screen and (max-width: 768px) {
    .policy-hero {
        padding: 28px 0 32px;
    }

    .policy-title {
        font-size: 32px;
    }

    .policy-updated {
        font-size: 14px;
    }

    .policy-body {
        padding: 36px 0 140px;
    }

    .policy-content {
        max-width: none;
    }

    .policy-section+.policy-section {
        margin-top: 32px;
    }

    .policy-content h2 {
        font-size: 18px;
        line-height: 26px;
    }

    .policy-content h3 {
        font-size: 16px;
        line-height: 23px;
    }

    .policy-content h4 {
        font-size: 15px;
    }

    /* single column on small screens */
    .policy-content ul.policy-list-columns {
        columns: 1;
    }

    .policy-content p,
    .policy-content li,
    .policy-content .policy-address {
        font-size: 15px;
        line-height: 24px;
    }

    /* let wide tables scroll instead of breaking the layout */
    .policy-table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }
}
