/* LEGAL unit widgets: consent banner, legal documents, report dialog, pre-contract info. Flat, theme tokens. */
.ggt-consent{position:fixed;z-index:9999;left:16px;right:16px;bottom:16px;max-width:560px;background:var(--ggt-paper,#fff);color:var(--ggt-ink,#0F172A);border:1px solid var(--ggt-line-strong,#CBD5E1);border-radius:var(--ggt-radius,16px);font-family:var(--ggt-font,system-ui,sans-serif)}
.ggt-consent[hidden]{display:none}
.ggt-consent__inner{padding:20px}
.ggt-consent__title{margin:0 0 6px;font-family:var(--ggt-font-display,inherit);font-size:18px;line-height:1.3}
.ggt-consent__text{margin:0 0 14px;font-size:14px;line-height:1.55;color:var(--ggt-ink-2,#334155)}
.ggt-consent__prefs{display:grid;gap:10px;margin:0 0 14px}
.ggt-consent__prefs[hidden]{display:none}
.ggt-consent__cat{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--ggt-line,#E2E8F0);border-radius:var(--ggt-radius-sm,10px);cursor:pointer}
.ggt-consent__cat input{margin-top:3px;width:18px;height:18px;accent-color:var(--ggt-accent,#0B5FFF)}
.ggt-consent__cat span{display:grid;gap:2px;font-size:14px}
.ggt-consent__cat small{color:var(--ggt-muted,#64748B);font-size:13px;line-height:1.4}
.ggt-consent__actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.ggt-consent__actions [hidden]{display:none}
@media (max-width:640px){
	.ggt-consent{left:0;right:0;bottom:0;max-width:none;border-radius:var(--ggt-radius,16px) var(--ggt-radius,16px) 0 0;border-left:0;border-right:0;border-bottom:0;max-height:85vh;overflow:auto}
	.ggt-consent__inner{padding:20px 16px calc(16px + env(safe-area-inset-bottom,0px))}
	.ggt-consent__actions{display:grid;grid-template-columns:1fr 1fr}
	.ggt-consent__actions .ggt-btn{width:100%}
	.ggt-consent__actions [data-ggt-consent-action="accept"]{grid-column:1 / -1;order:-1}
}
/* Legal documents */
/* Reading column: ~70 characters, generous leading, clear hierarchy. */
.ggt-legal-doc{color:var(--ggt-ink-2,#334155);font-size:16.5px;line-height:1.75;font-feature-settings:"kern","liga";hyphens:none;overflow-wrap:break-word}
.ggt-legal-doc .ggt-legal-meta{display:inline-flex;margin:0 0 28px;padding:5px 12px;border-radius:999px;background:var(--ggt-canvas,#F8FAFC);border:1px solid var(--ggt-line,#E2E8F0);color:var(--ggt-muted,#64748B);font-size:13px;line-height:1.4}
.ggt-legal-doc h2{margin:52px 0 14px;padding-top:28px;border-top:1px solid var(--ggt-line,#E2E8F0);font-family:var(--ggt-font-display,inherit);font-size:23px;line-height:1.3;letter-spacing:-.015em;color:var(--ggt-ink,#0F172A);scroll-margin-top:calc(var(--ggt-header-h,64px) + 20px)}
.ggt-legal-doc h2:first-of-type{margin-top:36px}
.ggt-legal-doc h3{margin:28px 0 8px;font-size:17px;line-height:1.4;color:var(--ggt-ink,#0F172A)}
.ggt-legal-doc p{margin:0 0 16px}
.ggt-legal-doc strong{font-weight:600;color:var(--ggt-ink,#0F172A)}
.ggt-legal-doc a{color:var(--ggt-accent,#0B5FFF);text-decoration:underline;text-decoration-color:var(--ggt-accent-line,#C7D9FF);text-underline-offset:3px;text-decoration-thickness:1.5px}
.ggt-legal-doc a:hover{text-decoration-color:currentColor}
.ggt-legal-doc ul,.ggt-legal-doc ol{margin:0 0 18px;padding-left:22px}
.ggt-legal-doc li{margin:0 0 8px;padding-left:4px}
.ggt-legal-doc li::marker{color:var(--ggt-accent,#0B5FFF);font-weight:600}
.ggt-legal-doc blockquote{margin:0 0 18px;padding:2px 0 2px 16px;border-left:3px solid var(--ggt-accent-line,#C7D9FF);color:var(--ggt-muted,#64748B)}
.ggt-legal-toc{margin:0 0 8px;padding:18px 20px;border:1px solid var(--ggt-line,#E2E8F0);border-radius:var(--ggt-radius,16px);background:var(--ggt-canvas,#F8FAFC);font-size:15px;line-height:1.5}
.ggt-legal-toc__title{margin:0 0 10px;font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ggt-muted,#64748B)}
.ggt-legal-toc ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 28px;margin:0;padding:0;list-style:none;counter-reset:toc}
.ggt-legal-toc li{counter-increment:toc;margin:0;padding:0}
.ggt-legal-toc li::marker{content:""}
.ggt-legal-toc a{display:flex;gap:10px;padding:7px 0;color:var(--ggt-ink,#0F172A);text-decoration:none}
.ggt-legal-toc a::before{content:counter(toc) ".";flex:none;min-width:1.6em;color:var(--ggt-muted,#64748B);font-variant-numeric:tabular-nums}
.ggt-legal-toc a:hover{color:var(--ggt-accent,#0B5FFF)}
@media (max-width:640px){.ggt-legal-doc{font-size:16px;line-height:1.7}.ggt-legal-doc h2{margin-top:40px;padding-top:22px;font-size:21px}.ggt-legal-toc ol{grid-template-columns:1fr}}
@media print{.ggt-legal-toc{display:none}.ggt-legal-doc{max-width:none;font-size:11pt}}
.ggt-legal-missing{display:inline-block;padding:0 6px;border-radius:6px;background:var(--ggt-warning-soft,#FEF4E6);color:var(--ggt-warning-ink,#B54708);font-size:.9em}
.ggt-legal-note{padding:14px 16px;border-radius:var(--ggt-radius-md,12px);background:var(--ggt-warning-soft,#FEF4E6);color:var(--ggt-warning-ink,#B54708);margin:0 0 20px}
.ggt-legal-dl{display:grid;grid-template-columns:minmax(120px,200px) 1fr;margin:0 0 24px;border:1px solid var(--ggt-line,#E2E8F0);border-radius:var(--ggt-radius-md,12px);background:var(--ggt-paper,#fff);overflow:hidden;font-size:15px;line-height:1.55}
.ggt-legal-dl dt,.ggt-legal-dl dd{margin:0;padding:11px 16px;border-top:1px solid var(--ggt-line,#E2E8F0)}
.ggt-legal-dl dt:first-of-type,.ggt-legal-dl dt:first-of-type+dd{border-top:0}
.ggt-legal-dl dt{font-size:13px;font-weight:600;letter-spacing:.01em;color:var(--ggt-muted,#64748B);background:var(--ggt-canvas,#F8FAFC)}
.ggt-legal-dl dd{color:var(--ggt-ink,#0F172A)}
@media (max-width:640px){.ggt-legal-dl{grid-template-columns:1fr}.ggt-legal-dl dt{padding-bottom:2px;border-top:1px solid var(--ggt-line,#E2E8F0)}.ggt-legal-dl dd{padding-top:0;border-top:0}.ggt-legal-dl dt:first-of-type{border-top:0}}
.ggt-legal-table{width:100%;border-collapse:collapse;font-size:14.5px;line-height:1.5;margin:0 0 24px}
.ggt-legal-table th,.ggt-legal-table td{text-align:left;vertical-align:top;padding:11px 12px;border-bottom:1px solid var(--ggt-line,#E2E8F0)}
.ggt-legal-table th{font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ggt-muted,#64748B);border-bottom:1.5px solid var(--ggt-ink,#0F172A)}
.ggt-legal-scroll{overflow-x:auto;max-width:100%}
/* Pre-contract info (tour page + checkout) */
.ggt-precontract{margin:16px 0;padding:14px 16px;border:1px solid var(--ggt-line,#E2E8F0);border-radius:var(--ggt-radius-md,12px);background:var(--ggt-canvas,#F8FAFC);font-size:14px;line-height:1.55;color:var(--ggt-ink-2,#334155)}
.ggt-precontract p{margin:0 0 6px}
.ggt-precontract p:last-child{margin-bottom:0}
.ggt-precontract strong{color:var(--ggt-ink,#0F172A)}
.ggt-precontract ul{margin:4px 0 8px;padding-left:18px}
.ggt-vat-note{display:block;font-size:12px;color:var(--ggt-muted,#64748B);margin-top:2px}
/* Report link + dialog */
.ggt-report{margin:24px 0;font-size:14px}
.ggt-report__btn{background:none;border:0;padding:0;color:var(--ggt-muted,#64748B);text-decoration:underline;cursor:pointer;font:inherit}
.ggt-report__btn:hover{color:var(--ggt-danger-ink,#B42318)}
.ggt-report-dialog{border:1px solid var(--ggt-line-strong,#CBD5E1);border-radius:var(--ggt-radius,16px);padding:0;width:min(520px,calc(100vw - 32px));color:var(--ggt-ink,#0F172A)}
.ggt-report-dialog::backdrop{background:rgba(15,23,42,.45)}
.ggt-report-dialog form{padding:20px;display:grid;gap:12px}
.ggt-report-dialog h2{margin:0;font-size:18px}
.ggt-report-dialog select,.ggt-report-dialog textarea,.ggt-report-dialog input[type=email]{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--ggt-line-strong,#CBD5E1);border-radius:var(--ggt-radius-sm,10px);font:inherit}
.ggt-report-dialog .ggt-hp{position:absolute;left:-9999px}
.ggt-report-dialog__actions{display:flex;gap:8px;justify-content:flex-end}
/* Dashboard / account legal sections */
.ggt-legal-box{margin-top:28px;padding:20px;border:1px solid var(--ggt-line,#E2E8F0);border-radius:var(--ggt-radius,16px);background:var(--ggt-paper,#fff)}
.ggt-legal-box h2,.ggt-legal-box h3{margin-top:0}
.ggt-legal-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ggt-legal-list{list-style:none;margin:0;padding:0}
.ggt-legal-list li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid var(--ggt-line,#E2E8F0)}
.ggt-legal-list li:last-child{border-bottom:0}
.ggt-auth__field--terms .ggt-auth__check{align-items:flex-start}
/* Report disclosure (details/summary, works without JS) */
.ggt-report summary{list-style:none;display:inline}
.ggt-report summary::-webkit-details-marker{display:none}
.ggt-report[open] summary{color:var(--ggt-ink,#0F172A)}
.ggt-report__form{display:grid;gap:10px;max-width:560px;margin-top:12px;padding:16px;border:1px solid var(--ggt-line,#E2E8F0);border-radius:var(--ggt-radius-md,12px);background:var(--ggt-paper,#fff)}
.ggt-report__form .ggt-hp{position:absolute;left:-9999px}
.ggt-report__actions{display:flex;justify-content:flex-end}

/* Wide layout: sticky contents column + reading column. The narrow page container is widened for legal documents. */
body.ggt-theme .ggt-page--narrow:has(.ggt-legal-doc) .ggt-container--narrow{max-width:var(--ggt-max,1200px)}
body.ggt-theme .ggt-prose .ggt-legal-doc a:not(.ggt-btn){text-decoration:underline;text-decoration-color:var(--ggt-accent-line,#C7D9FF);text-underline-offset:3px;text-decoration-thickness:1.5px}
body.ggt-theme .ggt-prose .ggt-legal-doc .ggt-legal-toc a:not(.ggt-btn){text-decoration:none;color:var(--ggt-ink,#0F172A)}
body.ggt-theme .ggt-prose .ggt-legal-doc .ggt-legal-toc a:not(.ggt-btn):hover{color:var(--ggt-accent,#0B5FFF)}
body.ggt-theme .ggt-legal-doc .ggt-legal-meta{justify-self:start;width:fit-content}
@media (min-width:980px){
	body.ggt-theme .ggt-legal-doc:has(.ggt-legal-toc){display:grid;grid-template-columns:270px minmax(0,1fr);column-gap:64px;align-items:start}
	body.ggt-theme .ggt-legal-doc:has(.ggt-legal-toc)>*{grid-column:2;min-width:0}
	body.ggt-theme .ggt-legal-doc:has(.ggt-legal-toc)>.ggt-legal-toc{grid-column:1;grid-row:1 / span 200;position:sticky;top:calc(var(--ggt-header-h,64px) + 24px);max-height:calc(100vh - var(--ggt-header-h,64px) - 48px);overflow:auto;margin:0;padding:16px 16px 10px;font-size:14px}
	body.ggt-theme .ggt-legal-doc:has(.ggt-legal-toc) .ggt-legal-toc ol{grid-template-columns:1fr}
	body.ggt-theme .ggt-legal-doc:has(.ggt-legal-toc) .ggt-legal-toc a{padding:6px 0}
	body.ggt-theme .ggt-legal-doc:has(.ggt-legal-toc)>h2:first-of-type{margin-top:0;border-top:0;padding-top:0}
}
@media print{body.ggt-theme .ggt-legal-doc:has(.ggt-legal-toc){display:block}}

@media (max-width:979.98px){
	body.ggt-theme .ggt-legal-toc{padding:0;border:0;background:transparent;margin:0 0 4px}
	body.ggt-theme .ggt-legal-toc__title{display:none}
	body.ggt-theme .ggt-legal-toc ol{display:flex;gap:8px;margin:0 calc(-1 * var(--ggt-gutter,16px));padding:2px var(--ggt-gutter,16px) 8px;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-inline:var(--ggt-gutter,16px);scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent)}
	body.ggt-theme .ggt-legal-toc ol::-webkit-scrollbar{display:none}
	body.ggt-theme .ggt-legal-toc li{flex:none;scroll-snap-align:start}
	body.ggt-theme .ggt-prose .ggt-legal-doc .ggt-legal-toc a:not(.ggt-btn){display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid var(--ggt-line,#E2E8F0);border-radius:999px;background:var(--ggt-paper,#fff);font-size:14px;font-weight:500;white-space:nowrap}
	body.ggt-theme .ggt-legal-toc a::before{display:none}
}
