/* Legal pages (Terms and Conditions, Privacy Policy, GDPR & Data Protection Notice), ported from
   frontend-design/legal/legal.css. One file for the three template directories (terms-and-conditions/,
   privacy-policy/, general-data-protection-regulation/): layout/partials/page-css.phtml maps them here.
   Adaptations: header, footer, body and fonts come from the layout, so the designer's body/footer rules are
   not copied; .privacy-policy-wrapper is .lg-page and .terms-text-wrap is .lg-doc (the old names still
   carry legacy rules in style.css); the site resets at the end of this file. */

/* Gordita with metric overrides that centre the ink in its line box (own family name: the shared
   'gordita' faces in style.css have no overrides and other pages depend on their metrics) */
@font-face { font-family: 'gordita-lg'; src: url('/new-design/fonts/Gordita-Regular-otf.woff2') format('woff2'), url('/new-design/fonts/Gordita-Regular.otf') format('opentype'); font-weight: 400; font-style: normal; font-display: swap; ascent-override: 98.3%; descent-override: 20%; line-gap-override: 0%; }
@font-face { font-family: 'gordita-lg'; src: url('/new-design/fonts/Gordita-Medium-otf.woff2') format('woff2'), url('/new-design/fonts/Gordita-Medium.otf') format('opentype'); font-weight: 500; font-style: normal; font-display: swap; ascent-override: 98.3%; descent-override: 20%; line-gap-override: 0%; }
@font-face { font-family: 'gordita-lg'; src: url('/new-design/fonts/Gordita-Bold-otf.woff2') format('woff2'), url('/new-design/fonts/Gordita-Bold.otf') format('opentype'); font-weight: 600 900; font-style: normal; font-display: swap; ascent-override: 98.3%; descent-override: 20%; line-gap-override: 0%; }

.lg-page, .lg-page *, .lg-page *::before, .lg-page *::after { box-sizing: border-box; }
html:has(.lg-page) { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html:has(.lg-page) { scroll-behavior: auto; } }

.lg-page { font-family: 'gordita-lg', sans-serif; color: #0d0e0f; background: #fff; -webkit-font-smoothing: antialiased; }

/* The site's own scroll-to-top button gives way to the page's .lg-top */
.legal-page > .scroll-top { display: none !important; }

.lg-page {
    --blue: #265CFF; --blue-d: #1b3fd6; --blue-50: #eef3ff; --blue-100: #dfe8ff;
    --ink: #0d0e0f; --body: #3b4352; --muted: #6b7280; --line: #e6ebf3; --soft: #f6f8fc;
    --hdr: 110px;
    overflow-wrap: break-word;
}
.lg-page a { color: var(--blue); text-decoration: none; }
.lg-page a:hover { text-decoration: underline; }
.lg-page a[href^="mailto:"], .lg-page a[href^="http"] { overflow-wrap: anywhere; -webkit-hyphens: manual; hyphens: manual; }

.lg-wrap { max-width: 1200px; margin: 0 auto; padding: 0 40px; }

/* Translations (ES/DE/PL) run 30-40% longer: long words in narrow places hyphenate instead of overflowing.
   The page's <html lang> must match the language so the browser picks the right hyphenation rules. */
.lg-title, .lg-sub, .lg-for, .lg-docs a, .lg-meta li, .lg-toc__t, .lg-toc-m summary,
.term-section h2, .term-section h3, .lg-def__lbl, .lg-table-wrap th, .lg-table-wrap td, .lg-cell-lbl,
.lg-contact__name, .lg-contact__rows dt, .lg-contact__rows dd {
    -webkit-hyphens: auto; hyphens: auto; overflow-wrap: break-word;
    hyphenate-limit-chars: 10 4 4; -webkit-hyphenate-limit-before: 4; -webkit-hyphenate-limit-after: 4;
}
/* English words always fit whole: no hyphenation on the English page */
html:lang(en) .lg-title, html:lang(en) .lg-sub, html:lang(en) .lg-for, html:lang(en) .lg-docs a, html:lang(en) .lg-meta li,
html:lang(en) .lg-toc__t, html:lang(en) .lg-toc-m summary, html:lang(en) .term-section h2, html:lang(en) .term-section h3,
html:lang(en) .lg-def__lbl, html:lang(en) .lg-table-wrap th, html:lang(en) .lg-table-wrap td, html:lang(en) .lg-cell-lbl,
html:lang(en) .lg-contact__name, html:lang(en) .lg-contact__rows dt, html:lang(en) .lg-contact__rows dd {
    -webkit-hyphens: manual; hyphens: manual;
}

/* ---------- Hero ---------- */
.lg-hero {
    background: linear-gradient(180deg, #eef3ff 0%, #f7f9ff 100%);
    border-bottom: 1px solid var(--line); padding: 40px 0 38px;
}
.lg-hero__in { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 40px; }
.lg-hero__text { min-width: 0; }
.lg-hero__art { width: 300px; margin-right: 8px; }
.lg-hero__art svg { display: block; width: 100%; height: auto; filter: drop-shadow(0 18px 30px rgba(38, 92, 255, .12)); }
.lg-docs { display: flex; flex-wrap: wrap; gap: 8px; }
.lg-docs a {
    display: inline-flex; align-items: center; min-height: 38px; padding: 0 16px;
    border: 1px solid var(--blue-100); border-radius: 999px; background: #fff;
    font-size: 13.5px; font-weight: 500; line-height: 1.25; color: var(--body); text-align: center;
    transition: border-color .15s, color .15s, background .15s;
}
.lg-docs a:hover { text-decoration: none; border-color: var(--blue); color: var(--blue); }
.lg-docs a.is-active { background: var(--blue); border-color: var(--blue); color: #fff; font-weight: 600; }
.lg-title {
    margin: 26px 0 0; font-size: clamp(30px, 4.2vw, 46px); font-weight: 700;
    line-height: 1.15; letter-spacing: -0.015em; color: var(--ink); max-width: 900px;
}
.lg-sub { margin: 12px 0 0; font-size: 16px; font-weight: 500; line-height: 1.5; color: var(--body); max-width: 760px; }
.lg-for { display: flex; align-items: flex-start; gap: 8px; margin: 10px 0 0; font-size: 15px; font-weight: 500; line-height: 1.5; color: var(--body); }
.lg-for svg { flex: 0 0 auto; color: var(--blue); margin-top: calc((1.5em - 16px) / 2); }
.lg-meta { list-style: none; margin: 22px 0 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; }
.lg-meta li { display: inline-flex; align-items: flex-start; gap: 8px; min-width: 0; font-size: 14px; line-height: 1.4; color: var(--body); }
.lg-meta li svg { flex: 0 0 auto; color: var(--blue); margin-top: calc((1.4em - 16px) / 2); }
.lg-meta li > span { min-width: 0; }
.lg-meta .lg-meta__br { flex: 0 0 100%; height: 0; margin: -4px 0; padding: 0; }
.lg-nw { white-space: nowrap; }
.lg-meta .lg-chip { align-items: center; }
.lg-meta .lg-chip svg { margin-top: 0; }
.lg-meta .lg-chip {
    background: #fff; border: 1px solid var(--blue-100); border-radius: 18px; padding: 8px 14px; min-height: 36px;
    font-weight: 600; color: var(--ink);
}

/* ---------- Layout: sticky contents + document ---------- */
.lg-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 56px; padding-top: 48px; padding-bottom: 88px; align-items: start; }

.lg-toc {
    position: sticky; top: calc(var(--hdr) + 24px); max-height: calc(100vh - var(--hdr) - 48px); overflow-y: auto;
    background: var(--soft); border: 1px solid var(--line); border-radius: 16px; padding: 18px 10px 12px;
}
.lg-toc__title { margin: 0 0 12px; padding-left: 12px; font-size: 12px; font-weight: 600; line-height: 1.4; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.lg-toc__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.lg-toc__list a {
    display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: start;
    padding: 7px 12px 7px 12px; border-radius: 8px; border-left: 2px solid transparent;
    font-size: 13.5px; font-weight: 500; line-height: 1.45; color: #4b5563;
    transition: background .15s, color .15s;
}
.lg-toc__list a:hover { text-decoration: none; background: var(--soft); color: var(--ink); }
.lg-toc__list a.is-active { background: var(--blue-50); color: var(--blue); font-weight: 600; border-left-color: var(--blue); border-radius: 0 8px 8px 0; }
.lg-toc__n { color: var(--muted); font-variant-numeric: tabular-nums; }
.lg-toc__list a.is-active .lg-toc__n { color: var(--blue); }

/* Phone / tablet contents: collapsible */
.lg-toc-m { display: none; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.lg-toc-m summary {
    list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 0 18px; min-height: 52px; font-size: 15px; font-weight: 600; line-height: 1.3; color: var(--ink);
}
.lg-toc-m summary::-webkit-details-marker { display: none; }
.lg-toc-m summary svg { flex: 0 0 auto; color: var(--blue); transition: transform .2s; }
.lg-toc-m[open] summary svg { transform: rotate(180deg); }
.lg-toc-m .lg-toc__list { padding: 0 8px 10px; border-top: 1px solid var(--line); padding-top: 8px; }

/* ---------- Document ---------- */
.lg-doc { min-width: 0; max-width: 820px; }
.lg-doc p { margin: 0 0 14px; font-size: 15.5px; line-height: 1.75; color: var(--body); }
.lg-doc p:last-child { margin-bottom: 0; }
.lg-doc strong { font-weight: 600; color: var(--ink); }

.lg-intro { padding-bottom: 36px; }
.lg-intro p { font-size: 16.5px; }
.gdpr .lg-intro, .privacy .lg-intro {
    padding: 20px 24px; margin-bottom: 36px; border-radius: 14px;
    background: var(--blue-50); border-left: 3px solid var(--blue);
}
.gdpr .lg-intro p { color: #1f2a44; }

.term-section { padding: 36px 0; border-top: 1px solid var(--line); scroll-margin-top: calc(var(--hdr) + 16px); }
.term-section:first-child { border-top: 0; padding-top: 0; }
.term-section:last-child { padding-bottom: 0; }
.term-section h2 {
    display: flex; gap: 10px; align-items: baseline; margin: 0 0 18px;
    font-size: clamp(20px, 2vw, 23px); font-weight: 700; line-height: 1.3; color: var(--ink);
}
.term-section h2 .lg-num { flex: 0 0 auto; color: var(--blue); font-variant-numeric: tabular-nums; }
.term-section h2 > span:last-child { min-width: 0; }
.term-section h3 { margin: 28px 0 12px; font-size: 17px; font-weight: 600; line-height: 1.4; color: var(--ink); }
.term-section h3:first-child { margin-top: 0; }
.term-section h4 { margin: 22px 0 10px; font-size: 15.5px; font-weight: 600; line-height: 1.4; color: var(--ink); }

/* Lists: native markers stay on the text baseline in every browser */
.term-body ul, .term-body ol { margin: 0 0 16px; padding-left: 1.35em; }
.term-body li { margin: 0 0 10px; padding-left: 4px; font-size: 15.5px; line-height: 1.75; color: var(--body); }
.term-body li:last-child { margin-bottom: 0; }
.term-body ul > li::marker { color: var(--blue); font-size: 1.05em; }
.term-body ol { padding-left: 2em; }
.term-body ol > li::marker { color: var(--blue); font-weight: 600; font-variant-numeric: tabular-nums; }
.term-body ul + p, .term-body ol + p, .term-body .lg-table-wrap + p { margin-top: 18px; }
.term-body p + ul, .term-body p + ol { margin-top: -2px; }

/* Lists where every item starts with a bold name: name on the left, text on the right */
.term-body ul.lg-defs { list-style: none; padding: 0; margin: 4px 0 16px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.term-body ul.lg-defs > li {
    display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 4px 28px; align-items: baseline;
    margin: 0; padding: 16px 22px; border-top: 1px solid var(--line);
}
.term-body ul.lg-defs > li:first-child { border-top: 0; }
.term-body ul.lg-defs > li:nth-child(even) { background: #fbfcfe; }
.term-body ul.lg-defs > li:first-child { border-radius: 13px 13px 0 0; }
.term-body ul.lg-defs > li:last-child { border-radius: 0 0 13px 13px; }
.lg-def__lbl { min-width: 0; font-size: 15px; line-height: 1.6; }
.lg-def__txt { min-width: 0; }

/* Checklists (rights, things you can do yourself) */
.term-body ul.lg-checks { list-style: none; padding: 0; margin: 4px 0 16px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.term-body ul.lg-checks > li {
    display: flex; align-items: flex-start; gap: 14px; margin: 0; padding: 13px 20px;
    border-top: 1px solid var(--line); line-height: 1.6;
}
.term-body ul.lg-checks > li:first-child { border-top: 0; border-radius: 13px 13px 0 0; }
.term-body ul.lg-checks > li:last-child { border-radius: 0 0 13px 13px; }
.term-body ul.lg-checks > li:nth-child(even) { background: #fbfcfe; }
.term-body ul.lg-checks > li::before {
    content: ""; flex: 0 0 auto; width: 20px; height: 20px; margin-top: calc((1.6em - 20px) / 2); border-radius: 50%;
    background: var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 13px no-repeat;
}
.lg-check__txt { min-width: 0; }

/* Reading progress under the header + back to top */
.lg-progress { position: fixed; left: 0; right: 0; top: var(--hdr); height: 3px; z-index: 990; pointer-events: none; }
.lg-progress span { display: block; height: 100%; background: var(--blue); transform-origin: 0 50%; transform: scaleX(0); }
.lg-top {
    position: fixed; right: 24px; bottom: 24px; z-index: 990; width: 46px; height: 46px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: #fff; color: var(--blue); border: 1px solid var(--blue-100); box-shadow: 0 8px 24px rgba(13, 14, 15, .12);
    opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s, transform .2s, visibility .2s, background .15s, color .15s;
}
.lg-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.lg-page .lg-top:hover { background: var(--blue); color: #fff; text-decoration: none; }

/* Address and contact blocks */
.lg-address, .lg-contact {
    padding: 18px 22px; border-radius: 14px; background: var(--soft); border: 1px solid var(--line);
}
.lg-contact { padding: 24px 26px; }
.lg-doc .lg-contact__name { margin: 0 0 14px; font-size: 18px; font-weight: 700; line-height: 1.35; color: var(--ink); }
.lg-contact__rows { margin: 0; display: flex; flex-direction: column; gap: 10px; }
.lg-contact__rows > div { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 2px 20px; align-items: baseline; padding-top: 10px; border-top: 1px solid var(--line); }
.lg-contact__rows dt { font-size: 14px; font-weight: 500; line-height: 1.6; color: var(--muted); }
.lg-contact__rows dd { margin: 0; min-width: 0; font-size: 15.5px; line-height: 1.6; color: var(--ink); }

/* Tables */
.lg-table-wrap { margin: 20px 0 0; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.lg-table-wrap table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.55; color: var(--body); }
.lg-table-wrap th {
    background: #f3f6ff; text-align: left; vertical-align: bottom; padding: 13px 16px;
    font-size: 13px; font-weight: 600; line-height: 1.4; color: var(--ink);
}
.lg-table-wrap td { padding: 13px 16px; border-top: 1px solid var(--line); vertical-align: top; }
.lg-table-wrap td:first-child { color: var(--ink); font-weight: 500; }
.lg-table-wrap tbody tr:nth-child(even) td { background: #fbfcfe; }
.lg-table-wrap code { font-family: inherit; font-weight: 600; color: var(--ink); }
.lg-cell-lbl { display: none; }
.lg-table--cookies td:first-child { white-space: nowrap; }

/* WebKit ignores the font metric overrides: trim boxed labels to cap height so they centre in Safari too */
@supports (text-box: trim-both cap alphabetic) and (width: 1cap) and (width: 1lh) {
    .lg-docs a > span, .lg-meta li > span, .lg-for > span, .lg-toc-m summary > span, .lg-check__txt {
        text-box: trim-both cap alphabetic; margin-block: calc((1lh - 1cap) / 2);
    }
}

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
    .lg-layout { grid-template-columns: 220px minmax(0, 1fr); gap: 40px; }
    .term-body ul.lg-defs > li { grid-template-columns: 170px minmax(0, 1fr); gap: 4px 22px; }
}
@media (max-width: 1024px) {
    .term-body ul.lg-defs > li { grid-template-columns: 200px minmax(0, 1fr); }
}
@media (max-width: 1024px) {
    .lg-hero__in { grid-template-columns: minmax(0, 1fr); }
    .lg-hero__art { display: none; }
    .lg-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-top: 32px; padding-bottom: 72px; }
    .lg-toc { display: none; }
    .lg-toc-m { display: block; }
    .lg-doc { max-width: none; }
}
@media (max-width: 640px) {
    .lg-wrap { padding: 0 20px; }
    .lg-hero { padding: 26px 0 28px; }
    .lg-docs { gap: 6px; }
    .lg-docs a { min-height: 36px; padding: 0 13px; font-size: 13px; }
    .lg-title { margin-top: 22px; }
    .lg-sub { font-size: 15px; }
    .lg-meta { flex-direction: column; align-items: flex-start; gap: 10px; }
    .lg-meta .lg-meta__br { display: none; }
    .lg-meta li { font-size: 13.5px; max-width: 100%; }
    .lg-layout { padding-top: 24px; padding-bottom: 56px; }
    .term-section { padding: 30px 0; }
    .lg-doc p, .term-body li { font-size: 15px; line-height: 1.7; }
    .lg-intro p { font-size: 15.5px; }
    .gdpr .lg-intro, .privacy .lg-intro { padding: 16px 18px; }
    .lg-address, .lg-contact { padding: 16px 18px; }
    .term-body ul.lg-defs > li { grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 14px 16px; }
    .term-body ul.lg-checks > li { padding: 12px 16px; gap: 12px; }
    .lg-contact__rows > div { grid-template-columns: minmax(0, 1fr); }
    .lg-top { right: 16px; bottom: 16px; width: 42px; height: 42px; }

    /* Tables stack into one card per row, each value under its column name */
    .lg-table-wrap table, .lg-table-wrap tbody, .lg-table-wrap tr, .lg-table-wrap td { display: block; width: 100%; }
    .lg-table-wrap thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .lg-table-wrap tr { padding: 14px 16px; border-top: 1px solid var(--line); }
    .lg-table-wrap tbody tr:first-child { border-top: 0; }
    .lg-table-wrap tbody tr:nth-child(even) td { background: none; }
    .lg-table-wrap tbody tr:nth-child(even) { background: #fbfcfe; }
    .lg-table-wrap td { padding: 0; border-top: 0; }
    .lg-table-wrap td + td { margin-top: 10px; }
    .lg-cell-lbl { display: block; margin-bottom: 2px; font-size: 11.5px; font-weight: 600; line-height: 1.4; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
    .lg-table--cookies td:first-child { white-space: normal; }
}

/* ---------- Site resets ----------
   style.css and bootstrap set these on body, * and bare elements; the designer page starts from browser defaults. */
.lg-page, .lg-page * { font-family: 'gordita-lg', sans-serif; }
.lg-page { line-height: normal; text-align: start; }
.lg-page svg { vertical-align: baseline; }
.lg-page code { font-size: inherit; word-wrap: normal; }
