/* Privacy's document treatment; loaded only on /privacy. */
.privacy-intro { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,.65fr); gap:70px; align-items:end; padding-bottom:38px; border:0; }
.privacy-intro h1 { font-size:clamp(40px,4.3vw,62px); line-height:1.08; }
.privacy-intro > div > p { max-width:640px; margin:25px 0 0; font-size:17px; line-height:1.55; }
.privacy-contact { border-left:1px solid #c5d2ba; padding:8px 0 8px 24px; margin-bottom:5px; }
.privacy-contact > span { display:block; font-size:14px; color:#607052; }
.privacy-contact > a { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:13px; font-size:18px; font-weight:500; letter-spacing:-.02em; color:#315d49; text-underline-offset:5px; }
.privacy-contact > a:hover { text-decoration:underline; }
.privacy-contact svg,.policy-home svg { width:20px; height:20px; flex:none; fill:none; stroke:currentColor; stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round; }
.policy-layout { grid-template-columns:230px minmax(0,1fr); gap:50px; margin-top:0; }
.policy-rail { position:sticky; top:28px; padding-top:8px; }
.policy-contents > summary { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:44px; margin-bottom:12px; padding:0 12px; color:#263d2c; font-size:14px; font-weight:500; list-style:none; cursor:pointer; }
.policy-contents > summary::-webkit-details-marker { display:none; }
.policy-contents > summary > svg { width:16px; height:16px; fill:none; stroke:#59734a; stroke-width:1.2; transform:rotate(0); transition:transform .35s var(--public-ease); }
.policy-contents[open] > summary > svg { transform:rotate(180deg); }
.policy-nav { position:static; display:grid; gap:5px; }
.policy-nav a { position:relative; justify-content:space-between; gap:15px; min-height:49px; padding:11px 12px; border-radius:6px; color:#536348; font-size:14px; line-height:1.4; text-decoration:none; transition:background .3s var(--public-ease),color .3s var(--public-ease); }
.policy-nav a > svg { width:16px; height:16px; flex:none; fill:none; stroke:currentColor; stroke-width:1.2; opacity:0; transform:translateX(-4px); transition:transform .4s var(--public-ease),opacity .4s var(--public-ease); }
.policy-nav a:is(:hover,[aria-current="location"]) { color:#254d35; background:#e9efdf; text-decoration:none; }
.policy-nav a:is(:hover,[aria-current="location"]) > svg { opacity:1; transform:translateX(0); }
.policy-home { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:24px 12px 0; padding-top:22px; border-top:1px solid #d7dfce; color:#5d6c52; font-size:13px; }
.policy-home svg { width:17px; height:17px; transform:rotate(180deg); }
.policy-home:hover { color:#244e35; }
.policy-content { min-width:0; background:#fff; border:1px solid #e0e5d9; border-radius:14px; padding:30px 42px 22px; }
.policy-document-heading { display:flex; align-items:center; gap:10px; padding-bottom:24px; margin-bottom:30px; border-bottom:1px solid #dce3d5; }
.policy-document-heading img { opacity:.8; }
.policy-document-heading p { margin:0; color:#607052; font-size:13px; letter-spacing:.01em; }
.policy-section { margin-bottom:30px; padding-bottom:30px; border-color:#e1e7db; scroll-margin-top:34px; }
.policy-section h2 { margin-bottom:18px; font-size:27px; font-weight:500; letter-spacing:-.025em; line-height:1.2; }
.policy-section p { max-width:65ch; color:#4c5c44; font-size:16px; line-height:1.75; margin-bottom:17px; }
.policy-section a { font-weight:500; }
.policy-section:target h2 { color:#315d49; }
.policy-document-footer { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-top:4px; font-size:12px; color:#5d6d50; line-height:1.5; }
.policy-document-footer a { color:#315d49; text-underline-offset:4px; }
.policy-document-footer > span a { text-decoration:underline; }
.policy-document-footer > a { display:inline-flex; align-items:center; gap:8px; padding:10px 0; }
.policy-document-footer > a:hover { text-decoration:underline; }
.policy-document-footer svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; }
.policy-content .policy-section:last-of-type { margin-bottom:24px; }
@media(max-width:1000px) {
 .privacy-intro { grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr); gap:32px; }
 .privacy-intro h1 { font-size:44px; }
 .privacy-contact { padding-left:20px; }
 .privacy-contact a { font-size:16px; }
 .policy-layout { grid-template-columns:190px minmax(0,1fr); gap:26px; }
 .policy-content { padding:26px; }
 .policy-nav a { padding-inline:10px; }
 .policy-section h2 { font-size:25px; }
}
@media(max-width:700px) {
 .public-page[data-page="privacy"] main { padding:36px 20px 44px; }
 .privacy-intro { grid-template-columns:1fr; gap:24px; padding:0 4px 28px; }
 .privacy-intro h1 { font-size:36px; line-height:1.12; }
 .privacy-intro > div > p { margin-top:20px; font-size:16px; }
 .privacy-contact { border-left:0; border-top:1px solid #cdd9c1; padding:20px 0 0; margin:0; }
 .privacy-contact > a { font-size:18px; max-width:330px; margin-top:10px; }
 .policy-layout { grid-template-columns:1fr; gap:22px; }
 .policy-rail { position:static; padding:0; }
 .policy-contents { padding:6px 12px; border:1px solid #d8e1cf; border-radius:8px; }
 .policy-contents > summary { padding:6px 0; min-height:46px; margin:0; }
 .policy-contents[open] > summary { margin-bottom:6px; }
 .policy-nav { padding:0 0 7px; border:0; }
 .policy-nav a { min-height:44px; }
 .policy-nav a > svg { opacity:.65; transform:none; }
 .policy-home { display:none; }
 .policy-content { padding:23px 22px 16px; border-radius:12px; }
 .policy-document-heading { padding-bottom:21px; margin-bottom:24px; }
 .policy-section { padding-bottom:26px; margin-bottom:26px; scroll-margin-top:20px; }
 .policy-section h2 { font-size:25px; line-height:1.25; }
 .policy-section p { font-size:16px; line-height:1.7; }
 .policy-document-footer { align-items:flex-start; flex-direction:column; gap:3px; font-size:13px; }
}
@media(prefers-reduced-motion:reduce) {
 .policy-nav a,.policy-nav a > svg,.policy-contents > summary > svg { transition:none; }
}
