:root { --forest:#142b26; --forest-2:#24473a; --moss:#647753; --sand:#f7f5ee; --paper:#fffefa; --gold:#c9a262; --ink:#20302a; --muted:#67736d; --line:#e6e8df; --shadow:0 18px 52px rgba(17,47,35,.075); }
*, *::before, *::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:105px; }
body { margin:0; font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; color:var(--ink); background:var(--sand); font-size:16px; line-height:1.75; }
a { color:inherit; }
a:focus-visible, button:focus-visible { outline:3px solid #d1a75b; outline-offset:4px; }
.skip-link { position:absolute; top:-90px; left:12px; z-index:1000; padding:10px 14px; background:#fff; border-radius:8px; }
.skip-link:focus { top:10px; }
.container { width:min(1210px,calc(100% - 40px)); margin-inline:auto; }
.hero { position:relative; isolation:isolate; overflow:hidden; padding:76px 0 81px; background:radial-gradient(circle at 92% 18%,rgba(227,200,135,.17),transparent 30%),radial-gradient(circle at 4% 110%,rgba(119,151,109,.35),transparent 37%),linear-gradient(122deg,#17362e 0%,#1f4a3c 52%,#43614d 100%); color:#fff; }
.hero::after { content:""; position:absolute; inset:auto -8% -52% auto; width:56%; height:113%; border:1px solid rgba(255,255,255,.13); border-radius:48% 42% 0 0; transform:rotate(-31deg); z-index:-1; }
.eyebrow { color:#f0d5a8; font-size:11px; font-weight:800; letter-spacing:.24em; text-transform:uppercase; }
.breadcrumbs { font-size:13px; color:#d1dfd5; display:flex; gap:11px; align-items:center; flex-wrap:wrap; margin:0 0 24px; }
.breadcrumbs a { text-decoration:none; }
.breadcrumbs a:hover { text-decoration:underline; }
.hero h1 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(43px,5.8vw,74px); line-height:1.09; letter-spacing:-.045em; font-weight:500; margin:13px 0 20px; }
.hero .intro { max-width:620px; font-size:clamp(16px,2vw,19px); line-height:1.75; color:#e4ece6; margin:0 0 26px; }
.hero-note { display:inline-flex; gap:9px; align-items:center; font-size:12px; color:#f2e1c4; letter-spacing:.025em; }
.hero-note::before { content:""; width:21px; height:1px; background:var(--gold); }
.privacy-layout { display:grid; grid-template-columns:285px minmax(0,1fr); gap:38px; align-items:start; padding:56px 0 105px; }
.toc { position:sticky; top:28px; border:1px solid var(--line); border-radius:18px; background:var(--paper); padding:24px 20px; box-shadow:var(--shadow); }
.toc-label { font-size:11px; font-weight:850; letter-spacing:.2em; color:var(--moss); text-transform:uppercase; margin:0 0 15px 10px; }
.toc nav { display:grid; gap:2px; }
.toc a { display:block; padding:8px 10px; border-radius:9px; color:#52655a; text-decoration:none; font-size:13px; line-height:1.45; transition:background .15s,color .15s; }
.toc a:hover, .toc a.is-active { background:#e8eee5; color:#234b36; }
.toc hr { border:0; border-top:1px solid var(--line); margin:18px 9px; }
.toc .help-link { color:var(--forest); font-weight:750; }
.content-panel { background:var(--paper); border:1px solid var(--line); border-radius:23px; box-shadow:var(--shadow); padding:clamp(26px,4.4vw,58px); min-width:0; }
.reading-note { margin:0 0 35px; display:flex; gap:14px; align-items:start; padding:19px 22px; background:#eef3eb; border:1px solid #dbe5d5; border-radius:14px; font-size:14px; line-height:1.65; color:#475c4e; }
.reading-note svg { flex:0 0 21px; color:var(--moss); margin-top:2px; }
.policy-section { scroll-margin-top:24px; padding:33px 0 35px; border-bottom:1px solid var(--line); }
.policy-section:first-of-type { padding-top:0; }
.policy-section:last-of-type { border-bottom:0; padding-bottom:0; }
.policy-section .number { display:block; color:#8a967e; font-size:12px; font-weight:800; letter-spacing:.14em; margin-bottom:9px; }
.policy-section h2 { margin:0 0 17px; font-family:Georgia,"Times New Roman",serif; color:var(--forest); font-size:clamp(25px,3vw,32px); font-weight:500; line-height:1.25; letter-spacing:-.02em; }
.policy-section h3 { color:var(--forest-2); font-size:16px; margin:23px 0 9px; }
.policy-section p { margin:0 0 16px; }
.policy-section p:last-child { margin-bottom:0; }
.policy-section ul { padding-left:22px; margin:0 0 18px; }
.policy-section li { padding-left:2px; margin:6px 0; }
.policy-section a { color:#236e50; text-underline-offset:3px; }
.policy-section a:hover { color:#11442f; }
.contact-box { background:#f1f4ee; border-left:4px solid var(--moss); padding:19px 22px; border-radius:0 12px 12px 0; }
.contact-box p { margin:0 0 5px; }
.bottom-actions { display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; margin-top:32px; }
.back-home, .back-top { text-decoration:none; font-size:13px; font-weight:800; }
.back-home { color:#fff; background:var(--forest); border-radius:999px; padding:12px 20px; }
.back-home:hover { background:var(--forest-2); }
.back-top { color:var(--forest-2); }
@media (max-width:1110px) {
.privacy-layout { grid-template-columns:245px minmax(0,1fr); gap:25px; }
}
@media (max-width:820px) {
.hero { padding:56px 0 62px; }
.privacy-layout { grid-template-columns:1fr; padding:29px 0 72px; }
.toc { position:static; padding:19px 20px; }
.toc nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
.toc hr, .toc .help-link { display:none; }
}
@media (max-width:560px) {
.container { width:min(100% - 28px,1210px); }
.hero { padding:38px 0 49px; }
.hero h1 { font-size:41px; }
.hero .intro { font-size:15px; }
.toc nav { grid-template-columns:1fr 1fr; }
.toc a { font-size:12px; padding:8px; }
.content-panel { border-radius:16px; padding:25px 21px; }
.reading-note { padding:14px; }
.policy-section { padding:26px 0; }
}
@media (prefers-reduced-motion:reduce) {
html { scroll-behavior:auto; }
}
@media print {
.toc, .bottom-actions, .skip-link { display:none !important; }
body { background:white; color:black; font-size:11pt; }
.hero { background:white; color:black; padding:0 0 20px; }
.hero h1 { color:black; font-size:29pt; }
.hero .intro, .breadcrumbs, .hero-note { color:black; }
.privacy-layout { display:block; padding:0; }
.content-panel { border:0; padding:0; box-shadow:none; }
.policy-section { break-inside:avoid; }
}
/* Unified header reserves its own height; do not add another page offset. */
.privacy-page .privacy-layout { scroll-margin-top: 105px; }
.privacy-page .hero { margin:0; }
.privacy-page .hero .container { position:relative; z-index:1; }
.privacy-page .policy-section { scroll-margin-top:105px; }
.privacy-page .content-panel { overflow-wrap:anywhere; }
@media (max-width:1100px) { .privacy-page .policy-section { scroll-margin-top:85px; } }
/* Privacy-policy-specific elements. Shared styling is inherited from Terms page. */
.privacy-page .status-banner { display:flex; align-items:flex-start; gap:13px; margin-bottom:26px; padding:17px 20px; border-radius:14px; background:#fff4df; color:#59431e; border:1px solid #e6c98c; font-size:14px; line-height:1.6; }
.privacy-page .status-banner strong { display:block; font-weight:800; margin-bottom:3px; }
.privacy-page .status-banner p { margin:0; }
.privacy-page .status-banner svg { width:22px; height:22px; flex:0 0 22px; margin-top:2px; }
.privacy-page .privacy-stat-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:22px 0 14px; }
.privacy-page .privacy-stat { border-radius:14px; padding:17px 16px; background:#f2f6ef; border:1px solid #dfe8dd; }
.privacy-page .privacy-stat span { display:block; font-weight:850; color:#315541; font-size:11px; letter-spacing:.13em; text-transform:uppercase; margin-bottom:7px; }
.privacy-page .privacy-stat strong { font-size:14px; font-weight:650; color:#294237; line-height:1.45; display:block; }
.privacy-page .purpose-table { width:100%; border-collapse:collapse; margin:17px 0 22px; font-size:14px; line-height:1.6; }
.privacy-page .purpose-table th { background:#eaf0e6; color:#244735; text-align:left; padding:12px; }
.privacy-page .purpose-table td { padding:12px; border-bottom:1px solid #e2e9dd; vertical-align:top; }
.privacy-page .purpose-table tr:nth-child(even) td { background:#fafbf8; }
.privacy-page .purpose-table th:first-child { width:34%; }
.privacy-page .policy-section ul { margin:0 0 19px; }
.privacy-page .policy-section li { margin:9px 0; }
.privacy-page .policy-section h3 { line-height:1.45; }
.privacy-page .privacy-fields { margin:14px 0 20px; border-left:4px solid #82996d; border-radius:0 12px 12px 0; background:#f1f4ee; padding:16px 18px; }
.privacy-page .privacy-fields dl { margin:0; display:grid; grid-template-columns:165px minmax(0,1fr); gap:8px 16px; font-size:14px; }
.privacy-page .privacy-fields dt { color:#4c6555; font-weight:800; }
.privacy-page .privacy-fields dd { margin:0; overflow-wrap:anywhere; }
.privacy-page .pending { color:#8f5321; background:#ffedcf; border-radius:5px; padding:2px 5px; font-size:13px; }
.privacy-page .cookie-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:17px; }
.privacy-page .cookie-open { display:inline-flex; align-items:center; justify-content:center; gap:9px; border:1px solid #1c4b35; padding:12px 19px; border-radius:999px; color:#fff; background:#1c4b35; font-weight:750; font-size:14px; cursor:pointer; }
.privacy-page .cookie-open:hover { background:#286445; }
.privacy-page .cookie-open:focus-visible { outline:3px solid #ccab67; outline-offset:3px; }
.privacy-page .cookie-status { font-size:13px; color:#667568; }
.privacy-page .retention-list { display:grid; gap:9px; margin:15px 0 18px; }
.privacy-page .retention-list div { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:12px 15px; background:#f8faf6; border:1px solid #e4e9e2; border-radius:10px; font-size:14px; }
.privacy-page .retention-list strong { color:#254332; min-width:130px; }
.privacy-page .retention-list span { text-align:right; }
@media (max-width:680px) {
.privacy-page .privacy-stat-grid { grid-template-columns:1fr; }
.privacy-page .privacy-fields dl { grid-template-columns:1fr; gap:3px; }
.privacy-page .privacy-fields dd { margin-bottom:10px; }
.privacy-page .retention-list div { display:block; }
.privacy-page .retention-list span { display:block; text-align:left; margin-top:4px; }
.privacy-page .purpose-table { font-size:13px; }
.privacy-page .purpose-table td,.privacy-page .purpose-table th { padding:9px; }
}
@media print { .privacy-page .status-banner, .privacy-page .cookie-open {display:none !important;} }
