/* Policy pages: Kilimanjaro-style hero, essentials at a glance, numbered policy sections and related policies. No rules or frames.
   The shared page theme forces heading sizes with !important, so this page answers in kind. */
.policy-page { overflow-x: clip; background: #FFFFFF; color: #231F20; font-family: 'Poppins', sans-serif; }
.policy-page .collection-hero__content { max-width: 980px; }
.policy-page .collection-hero__title { font-size: clamp(3rem, 7.4vw, 6.6rem) !important; text-wrap: balance; }
.policy-page .collection-hero__intro { max-width: 600px; }
.policy-shell { box-sizing: border-box; width: min(1440px, 100%); margin: 0 auto; padding-inline: clamp(20px, 5vw, 80px); }
.policy-page .policy-kicker { margin: 0; color: #3E6423; font-size: .78rem; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; }
.policy-page .policy-title { margin: 1.1rem 0 0; color: #231F20; font-family: 'Poppins', sans-serif; font-size: clamp(2.2rem, 3.8vw, 3.5rem) !important; font-weight: 700 !important; letter-spacing: -.035em; line-height: 1.06 !important; text-transform: none; }
.policy-page .policy-title em { display: block; color: #755431; font-style: normal; }
.policy-page a:focus-visible { outline: 3px solid #6B9A40; outline-offset: 4px; }

/* Essentials at a glance */
.policy-glance { padding-block: clamp(5rem, 9vw, 8rem) clamp(3rem, 5vw, 4.5rem); }
.policy-glance__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end; gap: 1.5rem 4rem; margin-bottom: clamp(2.5rem, 4.5vw, 3.75rem); }
.policy-glance__lead { max-width: 600px; }
.policy-page .policy-glance__lead p { margin: 0; color: rgba(35, 31, 32, .74); font-size: 1rem; line-height: 1.85; }
.policy-page .policy-glance__lead p + p { margin-top: 1rem; }
.policy-page .policy-glance__lead a { color: #755431; font-weight: 600; text-decoration: none; transition: color .3s ease; }
.policy-page .policy-glance__lead a:hover { color: #3E6423; }
.policy-highlights { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.9rem, 1.6vw, 1.4rem); margin: 0; padding: 0; list-style: none; }
.policy-highlight { padding: clamp(1.6rem, 2.4vw, 2.2rem); border-radius: 28px; background: #F7F4ED; transition: background .4s ease, box-shadow .5s ease, transform .5s cubic-bezier(.2, .8, .2, 1); }
.policy-highlight:hover { background: #FFFFFF; box-shadow: 0 40px 80px -48px rgba(35, 31, 32, .5); transform: translateY(-6px); }
.policy-highlight__icon { display: grid; width: 3rem; height: 3rem; place-items: center; border-radius: 50%; background: #6B9A40; color: #FFFFFF; }
.policy-highlight__icon svg { width: 1.25rem; height: 1.25rem; }
.policy-page .policy-highlight__title { margin: 1.5rem 0 0; color: #231F20; font-size: 1.12rem !important; font-weight: 600 !important; letter-spacing: -.01em; line-height: 1.35 !important; text-transform: none; }
.policy-page .policy-highlight__text { margin: .6rem 0 0; color: rgba(35, 31, 32, .68); font-size: .9rem; line-height: 1.7; }

/* Policy content: sticky contents list beside numbered sections */
.policy-content { padding-block: clamp(2.5rem, 5vw, 4rem) clamp(5rem, 9vw, 8rem); scroll-margin-top: var(--home-header-height, 88px); }
.policy-content__grid { display: grid; grid-template-columns: minmax(240px, 300px) minmax(0, 1fr); align-items: start; gap: clamp(2.5rem, 6vw, 6.5rem); }
.policy-toc { position: sticky; top: calc(var(--home-header-height, 88px) + 1.5rem); padding: 1.6rem 1.2rem 1.2rem; border-radius: 28px; background: #F7F4ED; }
.policy-page .policy-toc__label { margin: 0 0 .8rem .6rem; color: #3E6423; font-size: .72rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; }
.policy-toc__list { display: grid; gap: .2rem; margin: 0; padding: 0; list-style: none; }
.policy-toc__list a { display: flex; align-items: baseline; gap: .8rem; padding: .6rem .8rem; border-radius: 16px; color: rgba(35, 31, 32, .74); font-size: .88rem; font-weight: 500; line-height: 1.4; text-decoration: none; transition: background .3s ease, color .3s ease; }
.policy-toc__list a span { flex: 0 0 auto; color: #755431; font-size: .72rem; font-weight: 700; letter-spacing: .06em; }
.policy-toc__list a:hover, .policy-toc__list a[aria-current] { background: #FFFFFF; color: #231F20; }
.policy-toc__list a[aria-current] span { color: #6B9A40; }

.policy-article { max-width: 820px; }
.policy-page .policy-article__meta { display: flex; flex-wrap: wrap; gap: .6rem; margin: 0 0 clamp(2rem, 4vw, 3rem); }
.policy-article__meta span { padding: .5rem 1rem; border-radius: 999px; background: #F7F4ED; color: rgba(35, 31, 32, .72); font-size: .74rem; font-weight: 500; letter-spacing: .04em; }
.policy-article__meta span:first-child { background: #755431; color: #FFFFFF; }
.policy-section { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(1rem, 2.4vw, 2rem); padding-block: clamp(1.6rem, 3vw, 2.4rem); scroll-margin-top: calc(var(--home-header-height, 88px) + 1.5rem); }
.policy-section__number { display: grid; width: 3.2rem; height: 3.2rem; place-items: center; border-radius: 50%; background: #F7F4ED; color: #755431; font-size: .85rem; font-weight: 700; transition: background .4s ease, color .4s ease; }
.policy-section:hover .policy-section__number { background: #755431; color: #FFFFFF; }
.policy-page .policy-section h2 { margin: .35rem 0 0; color: #231F20; font-family: 'Poppins', sans-serif; font-size: clamp(1.45rem, 2.2vw, 1.9rem) !important; font-weight: 700 !important; letter-spacing: -.025em; line-height: 1.2 !important; text-transform: none; }
.policy-page .policy-section h3 { margin: 1.6rem 0 0; color: #231F20; font-size: 1.1rem !important; font-weight: 600 !important; line-height: 1.35 !important; text-transform: none; }
.policy-page .policy-section p { margin: 1rem 0 0; color: rgba(35, 31, 32, .76); font-size: 1rem; line-height: 1.85; }
.policy-page .policy-section strong { color: #231F20; font-weight: 600; }
.policy-page .policy-section a { color: #755431; font-weight: 600; text-decoration: none; transition: color .3s ease; }
.policy-page .policy-section a:hover { color: #3E6423; }
.policy-page .policy-section ul, .policy-page .policy-section ol { display: grid; gap: .7rem; margin: 1.2rem 0 0; padding: 0; list-style: none; }
.policy-page .policy-section li { position: relative; padding-left: 2rem; color: rgba(35, 31, 32, .76); font-size: .98rem; line-height: 1.75; }
.policy-page .policy-section ul > li::before { position: absolute; top: .62em; left: .35rem; width: .5rem; height: .5rem; border-radius: 50%; background: #6B9A40; content: ''; }
.policy-page .policy-section ol { counter-reset: policy-step; }
.policy-page .policy-section ol > li { counter-increment: policy-step; padding-left: 2.6rem; }
.policy-page .policy-section ol > li::before { position: absolute; top: .05em; left: 0; display: grid; width: 1.75rem; height: 1.75rem; place-items: center; border-radius: 50%; background: #6B9A40; color: #FFFFFF; content: counter(policy-step); font-size: .75rem; font-weight: 700; line-height: 1; }

/* Questions block closing the article */
.policy-help { display: grid; gap: 1.8rem; margin-top: clamp(2.5rem, 5vw, 4rem); padding: clamp(2rem, 4vw, 3.2rem); border-radius: 32px; background: #231F20; color: #FFFFFF; box-shadow: 0 50px 90px -60px rgba(35, 31, 32, .9); }
.policy-page .policy-help .policy-kicker { color: #6B9A40; }
.policy-page .policy-help__title { margin: .9rem 0 0; color: #FFFFFF; font-size: clamp(1.7rem, 2.8vw, 2.4rem) !important; font-weight: 700 !important; letter-spacing: -.03em; line-height: 1.1 !important; text-transform: none; }
.policy-page .policy-help__title em { display: block; color: #6B9A40; font-style: normal; }
.policy-page .policy-help__text { max-width: 560px; margin: 1rem 0 0; color: rgba(255, 255, 255, .76); font-size: .97rem; line-height: 1.8; }
.policy-page .policy-help__text a { color: #FFFFFF; font-weight: 600; text-decoration: none; transition: color .3s ease; }
.policy-page .policy-help__text a:hover { color: #6B9A40; }
.policy-help__actions { display: flex; flex-wrap: wrap; gap: .9rem; }

.policy-button { display: inline-flex; align-items: center; gap: 1rem; padding: .45rem .45rem .45rem 1.6rem; border-radius: 999px; background: #755431; color: #FFFFFF !important; font-size: .76rem; font-weight: 600; letter-spacing: .14em; text-decoration: none; text-transform: uppercase; box-shadow: 0 18px 34px -18px rgba(0, 0, 0, .7); transition: background .4s ease, color .4s ease; }
.policy-button__icon { display: grid; flex: 0 0 auto; width: 2.5rem; height: 2.5rem; place-items: center; border-radius: 50%; background: #FFFFFF; color: #755431; transition: color .4s ease, background .4s ease, transform .45s cubic-bezier(.2, .8, .2, 1); }
.policy-button__icon svg { width: 1rem; height: 1rem; }
.policy-button:hover, .policy-button:focus-visible { background: #3E6423; }
.policy-button:hover .policy-button__icon, .policy-button:focus-visible .policy-button__icon { color: #3E6423; transform: rotate(-45deg); }
.policy-button--ghost { background: rgba(255, 255, 255, .12); }
.policy-button--ghost .policy-button__icon { color: #3E6423; }
.policy-button--ghost:hover, .policy-button--ghost:focus-visible { background: rgba(255, 255, 255, .24); }

/* Other policies: image-led cards on cream */
.policy-more { padding-block: clamp(5rem, 9vw, 8rem); background: #F7F4ED; }
.policy-more__head { margin-bottom: clamp(2.5rem, 4.5vw, 3.75rem); }
/* Ten other policies: five a row on wide screens keeps two full rows. */
.policy-cards { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(1rem, 1.6vw, 1.4rem); margin: 0; padding: 0; list-style: none; }
.policy-card a { position: relative; display: flex; flex-direction: column; height: 100%; padding: .7rem; border-radius: 28px; background: #FFFFFF; color: #231F20; text-decoration: none; transition: box-shadow .5s ease, transform .5s cubic-bezier(.2, .8, .2, 1); }
.policy-card a:hover, .policy-card a:focus-visible { box-shadow: 0 40px 80px -48px rgba(35, 31, 32, .55); transform: translateY(-6px); }
.policy-card__image { display: block; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 21px; background: #E7E2D8; }
.policy-card__image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.2, .8, .2, 1); }
.policy-card a:hover .policy-card__image img { transform: scale(1.06); }
.policy-card__copy { display: grid; gap: .35rem; padding: 1.2rem 4.2rem 1rem .7rem; }
.policy-card__kicker { color: #3E6423; font-size: .64rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.policy-card__title { color: #231F20; font-size: 1.08rem; font-weight: 600; letter-spacing: -.01em; line-height: 1.3; }
.policy-card__arrow { position: absolute; right: 1.2rem; bottom: 1.2rem; display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border-radius: 50%; background: #755431; color: #FFFFFF; transition: background .4s ease, transform .45s cubic-bezier(.2, .8, .2, 1); }
.policy-card__arrow svg { width: 1rem; height: 1rem; }
.policy-card a:hover .policy-card__arrow, .policy-card a:focus-visible .policy-card__arrow { background: #3E6423; transform: rotate(-45deg); }

/* Scroll reveal. Hidden states apply only once the script arms the page, so content stays visible without JS. */
[data-policy-reveal] { transition: opacity 1s ease, transform 1.2s cubic-bezier(.2, .8, .2, 1); }
.policy-page.is-armed [data-policy-reveal]:not(.is-inview) { opacity: 0; transform: translateY(40px); }
.policy-page.is-armed :is(.policy-highlights, .policy-cards):not(.is-inview) { opacity: 1; transform: none; }
.policy-page.is-armed :is(.policy-highlights, .policy-cards):not(.is-inview) > * { opacity: 0; }
.policy-page.is-armed :is(.policy-highlights, .policy-cards).is-inview > * { animation: policy-rise 1.1s cubic-bezier(.2, .8, .2, 1) backwards; animation-delay: calc(var(--i, 0) * .1s); }
@keyframes policy-rise { from { opacity: 0; transform: translateY(48px); } to { opacity: 1; transform: none; } }

@media (max-width: 1199px) {
    .policy-highlights, .policy-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1023px) {
    .policy-glance__head, .policy-content__grid { grid-template-columns: minmax(0, 1fr); }
    .policy-toc { position: static; }
    .policy-toc__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 639px) {
    .policy-highlights, .policy-toc__list { grid-template-columns: minmax(0, 1fr); }
    .policy-highlight { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 1rem; padding: 1.3rem 1.3rem 1.4rem; border-radius: 24px; }
    .policy-highlight__icon { grid-row: span 2; width: 2.6rem; height: 2.6rem; }
    .policy-page .policy-highlight__title { margin-top: .3rem; font-size: 1.02rem !important; }
    .policy-page .policy-highlight__text { margin-top: .35rem; font-size: .86rem; }
    .policy-section { grid-template-columns: minmax(0, 1fr); gap: .9rem; }
    .policy-section__number { width: 2.8rem; height: 2.8rem; }
    .policy-help__actions { flex-direction: column; align-items: flex-start; }
    .policy-cards { grid-template-columns: minmax(0, 1fr); gap: .75rem; }
    .policy-card a { flex-direction: row; align-items: center; gap: .9rem; border-radius: 24px; }
    .policy-card__image { flex: 0 0 5.5rem; width: 5.5rem; aspect-ratio: 1; border-radius: 18px; }
    .policy-card__copy { padding: 0 3.6rem 0 0; }
    .policy-card__title { font-size: 1rem; }
    .policy-card__arrow { top: 50%; bottom: auto; right: 1rem; width: 2.3rem; height: 2.3rem; margin-top: -1.15rem; }
}
@media (prefers-reduced-motion: reduce) {
    [data-policy-reveal], .policy-highlight, .policy-section__number, .policy-button, .policy-button__icon, .policy-card a, .policy-card__image img, .policy-card__arrow, .policy-toc__list a { transition: none; }
}
