/* =========================================================
   REDWOOD PRIVACY POLICY — v2.3.8
   ========================================================= */

.rpt-privacy {
    --rpt-policy-border: rgba(23, 33, 29, .13);
    --rpt-policy-muted: #647169;
    background: #f8f5ed;
}

.rpt-privacy-hero {
    position: relative;
    padding: clamp(84px, 10vw, 142px) 0 clamp(74px, 9vw, 126px);
    overflow: hidden;
    color: #f7f2e8;
    background:
        radial-gradient(circle at 83% 18%, rgba(185, 139, 66, .16), transparent 31%),
        radial-gradient(circle at 4% 96%, rgba(157, 184, 167, .16), transparent 35%),
        linear-gradient(135deg, #0b3026 0%, #06221a 58%, #031812 100%);
}

.rpt-privacy-hero::before {
    position: absolute;
    top: -22%;
    right: -7%;
    width: min(50vw, 690px);
    aspect-ratio: 1;
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 50%;
    box-shadow:
        0 0 0 72px rgba(255, 255, 255, .018),
        0 0 0 144px rgba(255, 255, 255, .012);
    content: "";
    pointer-events: none;
}

.rpt-privacy-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(290px, .55fr);
    gap: clamp(48px, 8vw, 118px);
    align-items: end;
}

.rpt-privacy-hero__copy h1 {
    max-width: 780px;
    margin: 0 0 28px;
    font-family: var(--rpt-serif);
    font-size: clamp(62px, 8vw, 118px);
    font-weight: 400;
    letter-spacing: -.062em;
    line-height: .88;
}

.rpt-privacy-hero__lead {
    max-width: 760px;
    margin: 0;
    color: rgba(247, 242, 232, .76);
    font-size: clamp(17px, 1.55vw, 21px);
    line-height: 1.75;
}

.rpt-privacy-identity {
    padding: 29px 30px 27px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 24px;
    background: rgba(255, 255, 255, .055);
    box-shadow: 0 24px 70px rgba(0, 0, 0, .14);
    backdrop-filter: blur(12px);
}

.rpt-privacy-identity__label {
    display: block;
    margin-bottom: 8px;
    color: #cfb475;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.rpt-privacy-identity > strong {
    display: block;
    margin-bottom: 22px;
    font-family: var(--rpt-serif);
    font-size: 25px;
    font-weight: 400;
    line-height: 1.18;
}

.rpt-privacy-identity dl {
    margin: 0;
}

.rpt-privacy-identity dl > div {
    padding: 11px 0;
    border-top: 1px solid rgba(255, 255, 255, .1);
    display: grid;
    grid-template-columns: 104px 1fr;
    gap: 14px;
}

.rpt-privacy-identity dt {
    color: rgba(247, 242, 232, .56);
    font-size: 11px;
}

.rpt-privacy-identity dd {
    margin: 0;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}

.rpt-privacy-intro {
    position: relative;
    z-index: 3;
    margin-top: -35px;
}

.rpt-privacy-intro__panel {
    padding: 31px 36px;
    border: 1px solid rgba(18, 61, 49, .12);
    border-radius: 24px;
    display: grid;
    grid-template-columns: 60px 1fr;
    gap: 24px;
    align-items: start;
    background: #fff;
    box-shadow: 0 24px 70px rgba(18, 61, 49, .08);
}

.rpt-privacy-intro__mark {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: #fff;
    background: var(--rpt-forest-deep);
    font-family: var(--rpt-serif);
    font-size: 27px;
}

.rpt-privacy-intro__kicker {
    margin: 0 0 8px !important;
    color: var(--rpt-gold);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .17em;
    text-transform: uppercase;
}

.rpt-privacy-intro__panel p:last-child {
    max-width: 900px;
    margin: 0;
    color: #39463f;
    font-size: 16px;
    line-height: 1.8;
}

.rpt-privacy-body {
    padding: clamp(76px, 9vw, 132px) 0 clamp(100px, 12vw, 170px);
}

.rpt-privacy-layout {
    display: grid;
    grid-template-columns: 238px minmax(0, 790px);
    gap: clamp(60px, 8vw, 116px);
    justify-content: center;
    align-items: start;
}

.rpt-privacy-nav {
    position: relative;
    align-self: stretch;
    min-width: 0;
}

.rpt-privacy-nav__inner {
    position: sticky;
    top: calc(var(--rpt-native-header-height, 72px) + 26px);
    max-height: calc(100vh - var(--rpt-native-header-height, 72px) - 52px);
    padding: 24px 2px 22px 0;
    border-top: 1px solid var(--rpt-gold);
    border-bottom: 1px solid var(--rpt-policy-border);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
}

.rpt-privacy-nav__label {
    display: block;
    margin-bottom: 16px;
    color: var(--rpt-policy-muted);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.rpt-privacy-search {
    margin: 0 0 19px;
}

.rpt-privacy-search__field {
    position: relative;
}

.rpt-privacy-search__icon {
    position: absolute;
    top: 50%;
    left: 13px;
    width: 12px;
    height: 12px;
    border: 1.5px solid #66736c;
    border-radius: 50%;
    transform: translateY(-58%);
    pointer-events: none;
}

.rpt-privacy-search__icon::after {
    position: absolute;
    right: -5px;
    bottom: -3px;
    width: 6px;
    height: 1.5px;
    border-radius: 999px;
    background: #66736c;
    content: "";
    transform: rotate(45deg);
    transform-origin: left center;
}

.rpt-privacy-search input {
    width: 100%;
    height: 42px;
    padding: 0 35px 0 35px;
    border: 1px solid rgba(23, 33, 29, .16);
    border-radius: 12px;
    outline: 0;
    color: #17392f;
    background: rgba(255, 255, 255, .74);
    font: inherit;
    font-size: 12px;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.rpt-privacy-search input::placeholder {
    color: #7c8881;
}

.rpt-privacy-search input:focus {
    border-color: rgba(185, 139, 66, .72);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(185, 139, 66, .11);
}

.rpt-privacy-search__clear {
    position: absolute;
    top: 50%;
    right: 7px;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: #526159;
    background: transparent;
    cursor: pointer;
    font-size: 19px;
    line-height: 1;
    transform: translateY(-50%);
}

.rpt-privacy-search__clear:hover,
.rpt-privacy-search__clear:focus-visible {
    color: #17392f;
    background: rgba(18, 61, 49, .08);
}

.rpt-privacy-search__status {
    min-height: 28px;
    margin: 8px 1px 0;
    color: var(--rpt-policy-muted);
    font-size: 9px;
    line-height: 1.45;
}

.rpt-privacy-nav nav {
    display: grid;
    gap: 2px;
}

.rpt-privacy-nav a {
    position: relative;
    padding: 6px 0 6px 15px;
    color: #49554f;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.35;
    text-decoration: none;
    transition: color .2s ease, transform .2s ease;
}

.rpt-privacy-nav a::before {
    position: absolute;
    top: 13px;
    left: 0;
    width: 5px;
    height: 1px;
    background: var(--rpt-gold);
    content: "";
}

.rpt-privacy-nav a:hover,
.rpt-privacy-nav a:focus-visible {
    color: var(--rpt-forest);
    transform: translateX(3px);
}

.rpt-privacy-nav a.is-active {
    color: #17392f;
    transform: translateX(3px);
}

.rpt-privacy-nav a.is-active::before {
    width: 9px;
}

.rpt-privacy-nav a[hidden] {
    display: none !important;
}

.rpt-policy-section.is-search-match {
    border-radius: 16px;
    box-shadow: 0 0 0 1px rgba(185, 139, 66, .2);
}

.rpt-policy-section--health.is-search-match,
.rpt-policy-section--complaints.is-search-match {
    box-shadow: 0 0 0 2px rgba(185, 139, 66, .5);
}

.rpt-privacy-content {
    min-width: 0;
}

.rpt-policy-section {
    scroll-margin-top: 120px;
    padding: 0 0 clamp(66px, 7vw, 92px);
    margin: 0 0 clamp(66px, 7vw, 92px);
    border-bottom: 1px solid var(--rpt-policy-border);
}

.rpt-policy-section:last-child {
    margin-bottom: 0;
}

.rpt-policy-number {
    margin: 0 0 16px !important;
    color: var(--rpt-gold);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .2em;
}

.rpt-policy-section h2 {
    max-width: 720px;
    margin: 0 0 27px;
    color: #102b23;
    font-family: var(--rpt-serif);
    font-size: clamp(38px, 4.8vw, 60px);
    font-weight: 400;
    letter-spacing: -.045em;
    line-height: 1.02;
}

.rpt-policy-section h3 {
    margin: 32px 0 12px;
    color: #17392f;
    font-family: var(--rpt-serif);
    font-size: 25px;
    font-weight: 400;
    line-height: 1.2;
}

.rpt-policy-section > p:not(.rpt-policy-number),
.rpt-policy-card p,
.rpt-lawful-base p,
.rpt-policy-note p,
.rpt-health-principles span,
.rpt-retention-list p,
.rpt-right-object p,
.rpt-complaint-steps p,
.rpt-privacy-contact p {
    color: #45524b;
    font-size: 15px;
    line-height: 1.85;
}

.rpt-policy-section > p:not(.rpt-policy-number) {
    max-width: 760px;
    margin-bottom: 18px;
}

.rpt-policy-section a:not(.rpt-btn) {
    color: var(--rpt-forest);
    font-weight: 750;
    text-underline-offset: 3px;
}

.rpt-policy-card-grid {
    margin-top: 32px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.rpt-policy-card {
    padding: 24px 24px 23px;
    border: 1px solid rgba(18, 61, 49, .12);
    border-radius: 18px;
    background: rgba(255, 255, 255, .72);
}

.rpt-policy-card h3 {
    margin: 0 0 9px;
    font-family: var(--rpt-sans);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: -.01em;
}

.rpt-policy-card p {
    margin: 0;
    font-size: 13px;
    line-height: 1.72;
}

.rpt-lawful-bases {
    margin-top: 31px;
    border-top: 1px solid var(--rpt-policy-border);
}

.rpt-lawful-base {
    padding: 22px 0;
    border-bottom: 1px solid var(--rpt-policy-border);
    display: grid;
    grid-template-columns: 190px 1fr;
    gap: 28px;
}

.rpt-lawful-base > span {
    color: #17392f;
    font-size: 12px;
    font-weight: 800;
}

.rpt-lawful-base p {
    margin: 0;
    font-size: 13px;
    line-height: 1.75;
}

.rpt-policy-note {
    margin-top: 28px;
    padding: 22px 24px;
    border-left: 3px solid var(--rpt-gold);
    background: #f1ecdf;
}

.rpt-policy-note > strong {
    display: block;
    margin-bottom: 4px;
    color: #17392f;
    font-size: 13px;
}

.rpt-policy-note p {
    margin: 0;
    font-size: 13px;
    line-height: 1.72;
}

.rpt-policy-section--health {
    padding: clamp(42px, 5vw, 64px);
    border: 0;
    border-radius: 28px;
    background:
        radial-gradient(circle at 92% 8%, rgba(185, 139, 66, .11), transparent 27%),
        #0d3329;
    color: #f7f2e8;
}

.rpt-policy-section--health .rpt-policy-number {
    color: #cfb475;
}

.rpt-policy-section--health h2,
.rpt-policy-section--health > p strong {
    color: #fff;
}

.rpt-policy-section--health > p:not(.rpt-policy-number) {
    color: rgba(247, 242, 232, .74);
}

.rpt-health-principles {
    margin-top: 34px;
    display: grid;
    gap: 1px;
    background: rgba(255, 255, 255, .1);
}

.rpt-health-principles > div {
    padding: 20px 0;
    display: grid;
    grid-template-columns: 175px 1fr;
    gap: 25px;
    background: #0d3329;
}

.rpt-health-principles strong {
    color: #cfb475;
    font-size: 12px;
}

.rpt-health-principles span {
    color: rgba(247, 242, 232, .72);
    font-size: 13px;
    line-height: 1.7;
}

.rpt-policy-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 12px !important;
    font-weight: 800 !important;
    letter-spacing: .03em;
    text-decoration: none;
}

.rpt-policy-link span {
    color: var(--rpt-gold);
    font-size: 17px;
    transition: transform .2s ease;
}

.rpt-policy-link:hover span,
.rpt-policy-link:focus-visible span {
    transform: translateX(3px);
}

.rpt-policy-list {
    padding: 0;
    margin: 28px 0 0;
    list-style: none;
}

.rpt-policy-list li {
    position: relative;
    padding: 16px 0 16px 28px;
    border-bottom: 1px solid var(--rpt-policy-border);
    color: #45524b;
    font-size: 14px;
    line-height: 1.75;
}

.rpt-policy-list li::before {
    position: absolute;
    top: 27px;
    left: 3px;
    width: 8px;
    height: 8px;
    border: 2px solid var(--rpt-gold);
    border-radius: 50%;
    content: "";
}

.rpt-retention-list {
    margin-top: 30px;
}

.rpt-retention-list > div {
    padding: 22px 0;
    border-top: 1px solid var(--rpt-policy-border);
    display: grid;
    grid-template-columns: 1.2fr 150px;
    gap: 8px 24px;
}

.rpt-retention-list > div:last-child {
    border-bottom: 1px solid var(--rpt-policy-border);
}

.rpt-retention-list span {
    color: #17392f;
    font-size: 13px;
    font-weight: 800;
}

.rpt-retention-list strong {
    color: var(--rpt-gold);
    font-size: 12px;
    text-align: right;
}

.rpt-retention-list p {
    grid-column: 1 / -1;
    max-width: 680px;
    margin: 0;
    font-size: 13px;
    line-height: 1.7;
}

.rpt-right-object {
    margin-top: 30px;
    padding: 24px 26px;
    border: 1px solid rgba(185, 139, 66, .38);
    border-radius: 18px;
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 20px;
    background: #fffaf0;
}

.rpt-right-object > span {
    height: fit-content;
    padding: 6px 8px;
    border-radius: 999px;
    color: #fff;
    background: var(--rpt-gold);
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .1em;
    text-align: center;
    text-transform: uppercase;
}

.rpt-right-object strong {
    display: block;
    margin: 0 0 4px;
    color: #17392f;
    font-size: 14px;
}

.rpt-right-object p {
    margin: 0;
    font-size: 13px;
    line-height: 1.72;
}

.rpt-policy-section--complaints {
    padding: clamp(42px, 5vw, 58px);
    border: 1px solid rgba(18, 61, 49, .13);
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 20px 60px rgba(18, 61, 49, .055);
}

.rpt-complaint-steps {
    margin: 30px 0 24px;
    display: grid;
    gap: 1px;
    background: var(--rpt-policy-border);
}

.rpt-complaint-steps > div {
    padding: 19px 0;
    display: grid;
    grid-template-columns: 36px 1fr;
    gap: 16px;
    align-items: start;
    background: #fff;
}

.rpt-complaint-steps span {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: #fff;
    background: var(--rpt-forest);
    font-size: 10px;
    font-weight: 800;
}

.rpt-complaint-steps p {
    margin: 1px 0 0;
    font-size: 13px;
    line-height: 1.72;
}

.rpt-privacy-contact {
    margin: 31px 0 30px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.rpt-privacy-contact > div {
    min-height: 112px;
    padding: 21px 22px;
    border: 1px solid var(--rpt-policy-border);
    border-radius: 16px;
    background: rgba(255, 255, 255, .68);
}

.rpt-privacy-contact > div:last-child {
    grid-column: 1 / -1;
}

.rpt-privacy-contact span {
    display: block;
    margin-bottom: 7px;
    color: var(--rpt-policy-muted);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.rpt-privacy-contact a,
.rpt-privacy-contact p {
    margin: 0;
    color: #17392f !important;
    font-size: 14px !important;
    font-weight: 750;
    line-height: 1.55 !important;
    text-decoration: none;
}

.rpt-privacy-contact__action {
    margin-bottom: 0 !important;
}

.rpt-policy-section--changes {
    padding-bottom: 0;
    border-bottom: 0;
}

@media (max-width: 980px) {
    .rpt-privacy-hero__grid {
        grid-template-columns: 1fr;
        gap: 48px;
        align-items: start;
    }

    .rpt-privacy-identity {
        width: min(100%, 520px);
    }

    .rpt-privacy-layout {
        grid-template-columns: 1fr;
        gap: 46px;
    }

    .rpt-privacy-nav__inner {
        position: static;
        max-height: none;
        padding: 20px 0;
        overflow: visible;
    }

    .rpt-privacy-nav nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 2px 24px;
    }
}

@media (max-width: 700px) {
    .rpt-privacy-hero {
        padding: 70px 0 82px;
    }

    .rpt-privacy-hero::before {
        top: -8%;
        right: -36%;
        width: 105vw;
    }

    .rpt-privacy-hero__copy h1 {
        font-size: clamp(54px, 17vw, 78px);
        line-height: .92;
    }

    .rpt-privacy-hero__lead {
        font-size: 16px;
        line-height: 1.7;
    }

    .rpt-privacy-intro {
        margin-top: -26px;
    }

    .rpt-privacy-intro__panel {
        padding: 25px 23px;
        grid-template-columns: 45px 1fr;
        gap: 17px;
    }

    .rpt-privacy-intro__mark {
        width: 45px;
        height: 45px;
        font-size: 21px;
    }

    .rpt-privacy-intro__panel p:last-child {
        font-size: 14px;
        line-height: 1.72;
    }

    .rpt-privacy-nav nav {
        grid-template-columns: 1fr;
    }

    .rpt-policy-section {
        scroll-margin-top: 105px;
    }

    .rpt-policy-card-grid {
        grid-template-columns: 1fr;
    }

    .rpt-lawful-base,
    .rpt-health-principles > div {
        grid-template-columns: 1fr;
        gap: 7px;
    }

    .rpt-policy-section--health,
    .rpt-policy-section--complaints {
        padding: 32px 25px;
        border-radius: 22px;
    }

    .rpt-retention-list > div {
        grid-template-columns: 1fr;
        gap: 5px;
    }

    .rpt-retention-list strong {
        text-align: left;
    }

    .rpt-right-object {
        grid-template-columns: 1fr;
    }

    .rpt-right-object > span {
        width: fit-content;
    }

    .rpt-privacy-contact {
        grid-template-columns: 1fr;
    }

    .rpt-privacy-contact > div:last-child {
        grid-column: auto;
    }
}

@media (max-width: 430px) {
    .rpt-privacy-identity {
        padding: 24px 22px;
    }

    .rpt-privacy-identity dl > div {
        grid-template-columns: 90px 1fr;
    }

    .rpt-privacy-intro__panel {
        grid-template-columns: 1fr;
    }

    .rpt-privacy-intro__mark {
        display: none;
    }

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