/**
 * Copyright (c) 2026 DNA Genics, S.L. All rights reserved.
 * Heritage policy documents: readable clauses, native navigation, tables and print.
 */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Inter:wght@400;500;600;700&display=swap');
.policy-heritage { --policy-nav:var(--nav-height,var(--navbar-height,72px)); padding-top:calc(var(--policy-nav) + 8px); padding-bottom:48px; min-width:0; font-family:var(--hd-sans); font-size:max(1rem,16px); line-height:1.8; color:var(--hd-ink); }
.policy-heritage *, .policy-heritage *::before, .policy-heritage *::after { box-sizing:border-box; }
.policy-heritage :is(h1,h2,h3,h4,p,a,li,dt,dd,span,code) { overflow-wrap:anywhere; }
.policy-heritage :is(a,button,summary,[tabindex]):focus-visible { outline:3px solid #92723b; outline-offset:3px; }
.policy-heritage a:not(.policy-skip,.hd-btn):is(:hover,:focus) { color:var(--hd-primary); text-decoration:underline; text-underline-offset:4px; }
.policy-heritage .hd-eyebrow { color:#876a36; font-size:.67em; margin-bottom:12px; }
.policy-heritage .dna-icon { flex-shrink:0; width:18px; height:18px; vertical-align:-3px; }
.policy-heritage [id] { scroll-margin-top:calc(var(--policy-nav) + 20px); }
.policy-heritage [hidden] { display:none !important; }
.policy-container { max-width:1480px; padding-inline:clamp(18px,3.5vw,56px); margin-inline:auto; width:100%; }
.policy-skip { position:fixed; top:-120px; left:16px; z-index:2000; color:#fff; background:var(--hd-primary); border-radius:8px; padding:12px 18px; }
.policy-skip:focus { top:12px; color:#fff; }
.policy-breadcrumb { display:flex; gap:10px; flex-wrap:wrap; padding:14px 0; color:var(--hd-muted); font-size:.73em; }
.policy-breadcrumb a { color:var(--hd-primary); text-decoration:underline; text-underline-offset:3px; }
.policy-header { padding:22px 0 26px; }
.policy-header h1 { font:500 clamp(2.25rem,4.5vw,4rem)/1.08 var(--hd-serif); letter-spacing:-.025em; color:var(--hd-primary); max-width:28ch; margin:0 0 18px; }
.policy-header :is(.lead,.terms-intro) { font:400 .92em/1.8 var(--hd-sans); color:var(--hd-muted); max-width:82ch; margin:0 0 16px; }
.policy-header :is(.privacy-last-updated,.cookies-last-updated,.purchase-terms-last-updated,.small) { font-size:.76em; color:var(--hd-muted); }
.policy-header :is(.terms-badge,.purchase-badge) { display:inline-flex; align-items:center; gap:6px; border:1px solid var(--hd-border); border-radius:6px; background:var(--hd-surface); color:#4d574c; font-size:.72em; padding:5px 10px; margin:0 6px 7px 0; }
.policy-header :is(.terms-badge,.purchase-badge) .dna-icon { width:14px; height:14px; }
.policy-documents { display:flex; flex-wrap:wrap; gap:6px; padding:12px 0; margin-bottom:28px; border-block:1px solid var(--hd-border); }
.policy-documents a { display:inline-flex; align-items:center; min-height:44px; color:var(--hd-primary); font-size:.79em; padding:8px 16px; border-radius:7px; text-decoration:none; }
.policy-documents a[aria-current="page"] { background:var(--hd-sand); font-weight:600; }
.policy-layout { display:grid; grid-template-columns:260px minmax(0,1fr); gap:clamp(24px,4vw,56px); align-items:start; }
.policy-toc-panel { min-width:0; }
.policy-toc { background:var(--hd-sand); border:1px solid var(--hd-border); border-radius:12px; overflow:hidden; }
.policy-toc summary { display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:52px; padding:14px 18px; color:var(--hd-primary); font-size:.85em; font-weight:600; cursor:pointer; list-style:none; }
.policy-toc summary::-webkit-details-marker { display:none; }
.policy-toc summary .dna-icon { width:14px; height:14px; }
.policy-toc[open] summary { border-bottom:1px solid #dfd2bd; }
.policy-toc[open] summary .dna-icon { transform:rotate(180deg); }
.policy-toc .quick-nav-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:2px; padding:8px; }
.policy-toc .quick-nav-link { display:flex; align-items:center; min-height:44px; color:var(--hd-primary); font-size:.8em; line-height:1.55; padding:10px; border-radius:6px; text-decoration:none; }
.policy-toc .quick-nav-link:is(:hover,:focus) { background:#fffaf1; }
.policy-reading { min-width:0; background:var(--hd-surface); border:1px solid var(--hd-border); border-radius:var(--hd-radius); padding:clamp(22px,3.5vw,44px); }
.policy-reading :is(.privacy-section,.cookies-section,.terms-section,.purchase-terms-section) { padding:28px 0; border-bottom:1px solid var(--hd-border); }
.policy-reading > :is(.privacy-section,.cookies-section,.terms-section,.purchase-terms-section):first-child { padding-top:0; }
.policy-reading :is(h2,h3,h4) { color:var(--hd-primary); }
.policy-reading h2 { font:500 1.85em/1.2 var(--hd-serif); margin:0 0 20px; letter-spacing:-.01em; }
.policy-reading h2 > i { margin-right:8px; }
.policy-reading h3 { font:600 1.08em/1.5 var(--hd-sans); margin:26px 0 13px; }
.policy-reading h4 { font:600 .96em/1.5 var(--hd-sans); margin:0 0 12px; }
.policy-reading p { font-size:1em; color:#4f554c; margin:0 0 17px; }
.policy-reading :is(ul,ol) { padding-left:22px; margin:0 0 20px; }
.policy-reading li { color:#4f554c; padding-left:3px; margin-bottom:9px; }
.policy-reading li > .dna-icon { margin-right:6px; }
.policy-reading a { color:var(--hd-primary); text-decoration:underline; text-underline-offset:3px; }
.policy-reading code { color:#384f40; background:#f3f0e9; border-radius:4px; padding:1px 4px; white-space:normal; font-size:.89em; }
.policy-reading :is(.privacy-highlight-box,.cookies-highlight-box,.terms-highlight-box,.purchase-highlight-box) { background:#f5f2eb; border:1px solid var(--hd-border); border-left:3px solid #a38a57; border-radius:9px; padding:20px 22px; margin:22px 0; }
.policy-reading :is(.privacy-highlight-box,.cookies-highlight-box,.terms-highlight-box,.purchase-highlight-box).success { background:#edf1e9; border-left-color:#6b8068; }
.policy-reading :is(.privacy-highlight-box,.cookies-highlight-box,.terms-highlight-box,.purchase-highlight-box):is(.warning,.danger) { background:#f6efe2; border-left-color:#a07939; }
.policy-reading :is(.privacy-highlight-box,.cookies-highlight-box,.terms-highlight-box,.purchase-highlight-box) > :last-child { margin-bottom:0; }
.policy-reading :is(.contact-info-card,.company-info-card) { background:var(--hd-sand); border:1px solid var(--hd-border); border-radius:10px; padding:22px; margin:20px 0; }
.policy-reading :is(.contact-info-card,.company-info-card) p { margin-bottom:9px; }
.policy-reading .table-responsive { width:100%; max-width:100%; min-width:0; overflow-x:auto; border:1px solid var(--hd-border); border-radius:8px; margin:20px 0; overscroll-behavior-inline:contain; }
.policy-reading table { width:100%; min-width:680px; border-collapse:collapse; background:#fff; font-size:.88em; line-height:1.65; margin:0; }
.policy-reading th { background:var(--hd-sand); color:var(--hd-primary); font-weight:600; text-align:left; vertical-align:top; padding:13px 16px; border-bottom:1px solid #d8ccb6; }
.policy-reading td { color:#4f554c; padding:14px 16px; vertical-align:top; border-bottom:1px solid var(--hd-border); min-width:110px; overflow-wrap:anywhere; }
.policy-reading tr:last-child > td { border-bottom:0; }
.policy-reading tbody tr:nth-child(even) { background:#fbfaf7; }
.policy-reading :is(.privacy-footer-nav,.cookies-footer-nav,.terms-footer-nav,.purchase-footer-nav) { padding-top:28px; margin-top:8px; }
.policy-reading :is(.privacy-footer-links,.cookies-footer-links,.terms-footer-links,.purchase-footer-links) { display:flex; flex-wrap:wrap; gap:10px 18px; }
.policy-reading :is(.privacy-footer-links,.cookies-footer-links,.terms-footer-links,.purchase-footer-links) a { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:.85em; }
.policy-highlights { margin-top:36px; background:var(--hd-sand); border:1px solid var(--hd-border); border-radius:var(--hd-radius); padding:clamp(22px,3.5vw,36px); }
.policy-highlights > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px 30px; }
.policy-highlights h3 { grid-column:1/-1; color:var(--hd-primary); font:500 1.8em/1.2 var(--hd-serif); margin:0; }
.policy-highlights .highlight-item { display:flex; align-items:flex-start; gap:12px; min-width:0; }
.policy-highlights .highlight-item > .dna-icon { color:var(--hd-primary); margin-top:5px; }
.policy-highlights .highlight-item > div { min-width:0; }
.policy-highlights strong { display:block; color:var(--hd-primary); font-size:.88em; margin-bottom:4px; }
.policy-highlights span { display:block; color:#626053; font-size:.82em; line-height:1.65; }
.policy-highlights .highlight-item-link { display:inline-flex; min-height:44px; align-items:center; color:var(--hd-primary); text-decoration:underline; }
.policy-heritage .hd-btn { min-height:46px; justify-content:center; }
.policy-heritage .hd-btn--primary:is(:hover,:focus), .policy-heritage .hd-btn--primary { color:#fff; }
.policy-cookie-status { color:#735624; font-size:.85em; margin:12px 0 0; }

@media (min-width:992px) and (min-height:601px) { .policy-toc-panel { position:sticky; top:calc(var(--policy-nav) + 16px); } .policy-toc .quick-nav-grid { max-height:calc(100vh - var(--policy-nav) - 108px); overflow-y:auto; overscroll-behavior:contain; } }
@media (max-width:991px) { .policy-layout { grid-template-columns:minmax(0,1fr); gap:20px; } .policy-toc .quick-nav-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .policy-highlights > div { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:575px) { .policy-header { padding:18px 0 20px; } .policy-documents { display:grid; grid-template-columns:1fr 1fr; } .policy-documents a { padding:9px 10px; font-size:.78em; } .policy-toc .quick-nav-grid { grid-template-columns:minmax(0,1fr); } .policy-highlights > div { grid-template-columns:minmax(0,1fr); } .policy-reading { padding:20px; } .policy-reading :is(.privacy-highlight-box,.cookies-highlight-box,.terms-highlight-box,.purchase-highlight-box,.contact-info-card,.company-info-card) { padding:18px; } .policy-reading h2 { font-size:1.6em; } }
@media (prefers-reduced-motion:reduce) { .policy-heritage *, .policy-heritage *::before, .policy-heritage *::after { scroll-behavior:auto !important; transition:none !important; } }
@media print {
    @page { margin:16mm; }
    body:has(.policy-heritage), .policy-heritage { background:#fff !important; }
    body:has(.policy-heritage) :is(#mainNav,.hf-footer,.dng-footer,#CookiebotWidget,#CybotCookiebotDialog) { display:none !important; }
    .policy-heritage { padding:0; font-size:11pt; color:#111; }
    .policy-container { max-width:none; padding:0; }
    .policy-skip, .policy-breadcrumb, .policy-documents, .policy-toc-panel, .policy-cookie-status, .policy-reading button { display:none !important; }
    .policy-layout { display:block; }
    .policy-header { padding:0 0 18px; }
    .policy-header h1 { font-size:2.4em; max-width:none; }
    .policy-reading { border:0; padding:0; border-radius:0; }
    .policy-reading :is(h2,h3,h4) { break-after:avoid; }
    .policy-reading p { orphans:3; widows:3; }
    .policy-reading .table-responsive { overflow:visible; max-width:none; border-radius:0; }
    .policy-reading table { min-width:0; width:100%; table-layout:fixed; font-size:8pt; }
    .policy-reading :is(th,td) { min-width:0; padding:6px; overflow-wrap:anywhere; }
    .policy-highlights { background:#fff; border-radius:0; padding:18px; }
    .policy-highlights > div { grid-template-columns:1fr 1fr; }
    .policy-highlights .highlight-item { break-inside:avoid; }
}
