/* =========================================
   POLICY PAGES (privacy, terms, shipping, returns)
   Loaded by partials/cms-policy only.
========================================= */

.policy-page {
    padding: 140px 0 90px;
    background:
        radial-gradient(circle at 8% 10%, rgba(219, 92, 7, .07), transparent 40%),
        linear-gradient(180deg, #fbf7f4 0, #ffffff 520px);
}


/* ---------- Header ---------- */

.policy-hero {
    position: relative;
    max-width: 860px;
    margin: 0 auto 28px;
    text-align: center;
}

.policy-kicker {
    display: inline-block;
    margin-bottom: 12px;
    color: #db5c07;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 2.5px;
    text-transform: uppercase;
}

.policy-hero h1 {
    margin: 0 0 16px;
    color: #111111;
    font-family: "Libre Baskerville", serif;
    font-size: 42px;
    font-weight: 400;
    line-height: 1.2;
}

.policy-hero h1 strong {
    color: #db5c07;
    font-weight: 700;
}

.policy-hero p {
    max-width: 680px;
    margin: 0 auto 22px;
    color: #666666;
    font-size: 15px;
    line-height: 1.8;
}

.policy-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

.policy-meta > span,
.policy-print {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border: 1px solid #eee4dc;
    background: #ffffff;
    color: #666666;
    font-size: 12px;
}

.policy-meta i {
    color: #db5c07;
}

.policy-meta b {
    color: #111111;
    font-weight: 600;
}

.policy-print {
    cursor: pointer;
    transition: all .2s ease;
}

.policy-print:hover {
    border-color: #111111;
    background: #111111;
    color: #ffffff;
}

.policy-print:hover i {
    color: #ffffff;
}


/* ---------- Policy tabs ---------- */

.policy-tabs {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin-bottom: 36px;
    padding-bottom: 2px;
    overflow-x: auto;
    scrollbar-width: none;
}

.policy-tabs::-webkit-scrollbar {
    display: none;
}

.policy-tabs a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 18px;
    border: 1px solid #ececec;
    background: #ffffff;
    color: #555555;
    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;
    transition: all .2s ease;
}

.policy-tabs a i {
    color: #b5b5b5;
    transition: color .2s ease;
}

.policy-tabs a:hover {
    border-color: #db5c07;
    color: #111111;
}

.policy-tabs a:hover i {
    color: #db5c07;
}

.policy-tabs a.active {
    border-color: #111111;
    background: #111111;
    color: #ffffff;
}

.policy-tabs a.active i {
    color: #db5c07;
}


/* ---------- Layout ---------- */

.policy-layout {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 36px;
    align-items: start;
}

.policy-layout > * {
    min-width: 0;
}


/* ---------- On this page ---------- */

.policy-toc {
    position: sticky;
    top: 120px;
    max-height: calc(100vh - 140px);
    overflow-y: auto;
    padding: 22px 0;
    border: 1px solid #ececec;
    border-top: 3px solid #db5c07;
    background: #ffffff;
    box-shadow: 0 14px 38px rgba(17, 17, 17, .05);
}

.policy-toc-toggle {
    display: none;
}

.policy-toc-title {
    display: block;
    margin: 0 22px 12px;
    color: #999999;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.policy-toc ol {
    margin: 0;
    padding: 0;
    list-style: none;
}

.policy-toc a {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 8px 22px;
    border-left: 3px solid transparent;
    color: #555555;
    font-size: 13px;
    line-height: 1.45;
    transition: all .2s ease;
}

.policy-toc a span {
    color: #bbbbbb;
    font-size: 11px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.policy-toc a:hover {
    background: #fbf7f4;
    color: #111111;
}

.policy-toc a.active {
    border-left-color: #db5c07;
    background: #fff5ee;
    color: #111111;
    font-weight: 600;
}

.policy-toc a.active span {
    color: #db5c07;
}


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

.policy-content {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.policy-block {
    display: flex;
    gap: 24px;
    padding: 30px 32px;
    border: 1px solid #ececec;
    background: #ffffff;
    box-shadow: 0 12px 34px rgba(17, 17, 17, .04);
    scroll-margin-top: 120px;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.policy-block:hover {
    border-color: #f0d6c3;
    box-shadow: 0 16px 40px rgba(219, 92, 7, .07);
}

.policy-block:target {
    border-color: #db5c07;
    box-shadow: 0 0 0 3px rgba(219, 92, 7, .1);
}

.policy-number {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #111111;
    color: #ffffff;
    font-family: "Libre Baskerville", serif;
    font-size: 17px;
    font-weight: 700;
    box-shadow: 6px 6px 0 #f3d2bc;
}

.policy-text {
    flex: 1;
    min-width: 0;
}

.policy-text h2 {
    margin: 4px 0 14px;
    color: #111111;
    font-family: "Libre Baskerville", serif;
    font-size: 21px;
    font-weight: 400;
    line-height: 1.35;
}

.policy-text p {
    margin: 0 0 12px;
    color: #555555;
    font-size: 14px;
    line-height: 1.85;
}

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

.policy-text ul {
    display: grid;
    gap: 10px;
    margin: 16px 0 0;
    padding: 18px 20px;
    border-left: 3px solid #db5c07;
    background: #fdf9f6;
    list-style: none;
}

.policy-text li {
    position: relative;
    padding-left: 30px;
    color: #444444;
    font-size: 14px;
    line-height: 1.65;
}

.policy-text li::before {
    content: "\f00c";
    position: absolute;
    top: 2px;
    left: 0;
    width: 19px;
    height: 19px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #db5c07;
    color: #ffffff;
    font-family: "Font Awesome 6 Free";
    font-size: 9px;
    font-weight: 900;
}


/* ---------- Contact card ---------- */

.policy-contact {
    position: relative;
    display: flex;
    gap: 24px;
    padding: 34px 32px;
    color: #ffffff;
    background:
        linear-gradient(135deg, rgba(17, 17, 17, .92), rgba(17, 17, 17, .98)),
        url("../image/banner.jpg") center / cover no-repeat;
    overflow: hidden;
    scroll-margin-top: 120px;
}

.policy-contact::after {
    content: "";
    position: absolute;
    right: -60px;
    bottom: -70px;
    width: 200px;
    height: 200px;
    border: 32px solid rgba(219, 92, 7, .22);
    border-radius: 50%;
}

.policy-contact-icon {
    position: relative;
    z-index: 1;
    width: 56px;
    height: 56px;
    flex: 0 0 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #db5c07;
    font-size: 22px;
}

.policy-contact-text {
    position: relative;
    z-index: 1;
    flex: 1;
    min-width: 0;
}

.policy-contact .policy-kicker {
    margin-bottom: 6px;
    color: #ff9a57;
}

.policy-contact h2 {
    margin: 0 0 10px;
    font-family: "Libre Baskerville", serif;
    font-size: 24px;
    font-weight: 400;
}

.policy-contact p {
    max-width: 560px;
    margin: 0 0 20px;
    color: rgba(255, 255, 255, .72);
    font-size: 14px;
    line-height: 1.75;
}

.policy-contact-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.policy-contact-actions a {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 11px 16px;
    border: 1px solid rgba(255, 255, 255, .25);
    color: #ffffff;
    font-size: 13px;
    transition: all .2s ease;
}

.policy-contact-actions a:hover {
    border-color: #ffffff;
    background: #ffffff;
    color: #111111;
}

.policy-contact-actions a i {
    color: #ff9a57;
}

.policy-contact-actions a.primary {
    border-color: #db5c07;
    background: #db5c07;
}

.policy-contact-actions a.primary i {
    color: #ffffff;
}

.policy-contact-actions a.primary:hover {
    border-color: #b94c04;
    background: #b94c04;
    color: #ffffff;
}


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

@media (max-width: 991px) {
    .policy-page {
        padding-top: 120px;
    }

    .policy-hero h1 {
        font-size: 32px;
    }

    .policy-tabs {
        justify-content: flex-start;
    }

    .policy-layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
    }

    /* "On this page" becomes a collapsible panel */
    .policy-toc {
        position: static;
        max-height: none;
        padding: 0;
    }

    .policy-toc-title {
        display: none;
    }

    .policy-toc-toggle {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 15px 18px;
        border: 0;
        background: none;
        color: #111111;
        font-size: 14px;
        font-weight: 600;
        cursor: pointer;
    }

    .policy-toc-toggle span i {
        margin-right: 8px;
        color: #db5c07;
    }

    .policy-toc-toggle > i {
        display: inline-block;
        color: #999999;
        font-size: 13px;
        transition: transform .25s ease;
    }

    .policy-toc.open .policy-toc-toggle > i {
        transform: rotate(180deg);
    }

    .policy-toc ol {
        display: none;
        padding-bottom: 10px;
        border-top: 1px solid #f0f0f0;
    }

    .policy-toc.open ol {
        display: block;
    }
}

@media (max-width: 575px) {
    .policy-hero {
        text-align: left;
    }

    .policy-hero h1 {
        font-size: 27px;
    }

    .policy-meta {
        justify-content: flex-start;
    }

    .policy-print {
        display: none;
    }

    .policy-block {
        flex-direction: column;
        gap: 14px;
        padding: 22px 18px;
    }

    .policy-number {
        width: 42px;
        height: 42px;
        flex-basis: 42px;
        font-size: 14px;
        box-shadow: 4px 4px 0 #f3d2bc;
    }

    .policy-text h2 {
        font-size: 19px;
    }

    .policy-text ul {
        padding: 14px 14px;
    }

    .policy-contact {
        flex-direction: column;
        gap: 16px;
        padding: 26px 20px;
    }

    .policy-contact-actions a {
        width: 100%;
        justify-content: center;
    }
}


/* ---------- Print ---------- */

@media print {
    .header-top,
    #mainNavbar,
    .offcanvas,
    .footer-section,
    .back-to-top,
    .bottom-nav,
    #shopToasts,
    .policy-tabs,
    .policy-toc,
    .policy-print,
    .policy-contact-actions a.primary {
        display: none !important;
    }

    .policy-page {
        padding: 0 !important;
        background: none !important;
    }

    .policy-layout {
        display: block;
    }

    .policy-block,
    .policy-contact {
        box-shadow: none !important;
        break-inside: avoid;
    }

    .policy-contact {
        border: 1px solid #dddddd;
        background: none !important;
        color: #111111;
    }

    .policy-contact p,
    .policy-contact-actions a {
        color: #333333;
    }
}
