:root { --qc-primary:#4338ca; --qc-primary-hover:#3730a3; --qc-ink:#0f172a; --qc-muted:#475569; --qc-border:#e2e8f0; --qc-radius:16px; --bs-primary:#4338ca; --bs-primary-rgb:67,56,202; --bs-body-font-family:Figtree,system-ui,sans-serif; }
body { color:var(--qc-ink); font-family:Figtree,system-ui,sans-serif; }
h1,h2 { font-family:Newsreader,Georgia,serif; }
h3,h4,h5,h6,.font-alt { font-family:Figtree,system-ui,sans-serif; }
a { color:var(--qc-primary); }
a:hover { color:var(--qc-primary-hover); }
.site-container { max-width:1280px; padding-right:24px; padding-left:24px; }
.site-icon { width:24px; height:24px; flex-shrink:0; vertical-align:middle; }
.site-brand { display:inline-flex; align-items:center; gap:9px; color:var(--qc-ink); font-size:22px; font-weight:700; text-decoration:none; white-space:nowrap; }
.site-brand-mark { display:block; width:34px; height:40px; }
.site-brand:hover { color:var(--qc-ink); }
.site-button { display:inline-flex; min-height:48px; justify-content:center; align-items:center; gap:10px; padding:12px 20px; border:1px solid var(--qc-primary); border-radius:10px; background:var(--qc-primary); color:#fff; font:600 16px/1.4 Figtree,system-ui,sans-serif; text-decoration:none; text-align:center; cursor:pointer; }
.site-button:hover { background:var(--qc-primary-hover); border-color:var(--qc-primary-hover); color:#fff; }
.site-button.secondary { color:var(--qc-ink); background:white; border-color:#cbd5e1; }
.site-button.secondary:hover { border-color:var(--qc-primary); color:var(--qc-primary); }
.site-button.light { color:var(--qc-primary); background:white; border-color:white; }
.site-button.light:hover { background:#eef2ff; border-color:#eef2ff; }
.site-button.light-secondary { color:white; background:transparent; border-color:#a5b4fc; }
.site-button.light-secondary:hover { background:#3730a3; border-color:white; }
.site-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.site-nav { background:white; border-bottom:1px solid var(--qc-border); padding:16px 0; position:relative; z-index:100; }
.site-nav .navbar-brand { font-family:Figtree,system-ui,sans-serif; margin-right:28px; }
.site-nav .nav-link { color:#334155; font:600 15px/1.4 Figtree,system-ui,sans-serif; min-height:44px; display:flex; align-items:center; border:0; background:transparent; padding:10px 8px!important; }
.site-nav .nav-link:hover,.site-nav .nav-link.active { color:var(--qc-primary); }
.site-nav-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-left:22px; }
.site-nav-actions .site-button { font-size:14px; padding:11px 15px; white-space:nowrap; }
.site-join-link,.site-login { color:#334155; font-size:14px; font-weight:600; text-decoration:none; padding:10px 0; }
.site-nav .dropdown-menu { max-width:calc(100vw - 48px); padding:8px; border-color:var(--qc-border); border-radius:12px; box-shadow:0 12px 32px #0f172a14; }
.site-nav .dropdown-item { font:500 15px/1.4 Figtree,system-ui,sans-serif; padding:12px; white-space:normal; border-radius:6px; }
.site-nav .dropdown-item:focus,.site-nav .dropdown-item:hover { background:#eef2ff; color:var(--qc-primary); }
.site-nav .navbar-toggler { min-height:44px; font:600 14px Figtree,system-ui,sans-serif; border-color:#cbd5e1; }
.site-nav .navbar-toggler-icon { width:20px; height:20px; margin-left:6px; }
.site-skip { position:absolute; left:16px; top:-100px; padding:12px; background:white; z-index:2000; }
.site-skip:focus { top:12px; }
.site-footer { padding:64px 0 24px; background:#0f172a; color:#e2e8f0; font-size:15px; }
.site-footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; }
.site-footer .site-brand { color:white; margin-bottom:20px; }
.site-footer-logo { background:white; border-radius:8px; padding:2px; }
.site-footer h2 { font:700 16px Figtree,system-ui,sans-serif; color:white; margin:10px 0 20px; }
.site-footer p { margin:0 0 8px; }
.site-footer address { color:#cbd5e1; line-height:1.8; }
.site-footer a:not(.site-brand),.site-footer-bottom button { display:block; width:fit-content; padding:5px 0; color:#cbd5e1; font:inherit; text-decoration:none; background:transparent; border:0; text-align:left; }
.site-footer a:hover,.site-footer-bottom button:hover { color:white; text-decoration:underline; }
.site-footer-bottom { border-top:1px solid #334155; padding-top:24px; margin-top:40px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; color:#cbd5e1; font-size:13px; }
.site-footer-bottom>div { display:flex; gap:20px; flex-wrap:wrap; }
.site-footer .language-switcher__menu a { color:#334155; display:grid; width:100%; padding:10px; }
.site-footer .language-switcher__menu a:hover { color:var(--qc-primary); }
.site-footer .language-switcher__menu { top:auto; bottom:calc(100% + 8px); }
.site-footer .language-switcher summary { color:var(--qc-ink); }
.site-nav :focus-visible,.site-footer :focus-visible,.site-button:focus-visible { outline:3px solid #818cf8; outline-offset:4px; }
.btn-primary { --bs-btn-bg:#4338ca; --bs-btn-border-color:#4338ca; --bs-btn-hover-bg:#3730a3; --bs-btn-hover-border-color:#3730a3; --bs-btn-active-bg:#3730a3; }
[hidden] { display:none!important; }
@media(max-width:1399.98px) { .site-nav #navbarResponsive { margin-top:16px; border-top:1px solid var(--qc-border); padding-top:12px; } .site-nav-actions { margin:16px 0 0; padding-bottom:8px; } .site-nav .dropdown-menu { box-shadow:none; } }
@media(max-width:767.98px) { .site-container { padding-left:20px; padding-right:20px; } .site-footer-grid { grid-template-columns:1fr 1fr; gap:24px; } .site-footer-grid>div:first-child { grid-column:1/-1; } .site-nav-actions { gap:12px; } .site-nav-actions .site-button { flex-grow:1; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
/* The consent library removes its backdrop on transitionend. Keep that event
   with an imperceptible duration when reduced motion is enabled. */
@media(prefers-reduced-motion:reduce) { .lcc-backdrop { transition:opacity .001s linear!important; } }

/* Mobile navigation uses the same destinations as desktop. */
.site-mobile-join,.site-mobile-menu-title,.site-nav-group-label { display:none; }
.site-menu-backdrop { position:fixed; inset:0; border:0; background:#0f172a80; z-index:1100; }
.site-nav.site-menu-active { position:fixed; top:0; left:0; right:0; z-index:1200; }
.site-menu-active .navbar-toggler-icon { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f172a' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 6 12 12M6 18 18 6'/%3E%3C/svg%3E"); }
@media(max-width:1399.98px) {
    .site-nav { --site-nav-height:82px; }
    .site-nav #navbarResponsive { position:absolute; top:100%; left:0; right:0; margin:0; padding:20px max(24px, calc((100vw - 1232px)/2)); background:white; border-top:1px solid var(--qc-border); border-bottom:1px solid var(--qc-border); max-height:calc(100vh - var(--site-nav-height)); max-height:calc(100dvh - var(--site-nav-height)); overflow-y:auto; overscroll-behavior:contain; box-shadow:0 16px 24px #0f172a12; }
    .site-nav #navbarResponsive.collapsing { overflow:hidden; }
    .site-mobile-menu-title { display:block; font:700 20px Figtree,system-ui,sans-serif; margin:0 0 16px; }
    .site-nav-group-label { display:block; color:#475569; font:700 12px Figtree,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.06em; margin:16px 0 8px; padding-top:16px; border-top:1px solid var(--qc-border); width:100%; }
    .site-nav-group-label:first-child { margin-top:0; padding-top:0; border-top:0; }
    .site-nav .nav-link { width:100%; text-align:left; justify-content:space-between; padding:12px 4px!important; }
    .site-nav .dropdown-menu { width:100%; max-width:100%; margin:0 0 8px; padding:4px 8px; background:#f8fafc; }
    .site-nav-actions { align-items:center; margin-top:0; }
    .site-nav-actions .site-nav-group-label { margin-top:12px; }
    .site-nav-actions .site-join-link { display:none; }
    .site-nav-actions .site-login { min-height:44px; display:flex; align-items:center; }
    .site-nav .language-switcher__menu { top:auto; bottom:calc(100% + 8px); }
}
@media(max-width:767.98px), (max-width:991.98px) and (max-height:500px) {
    .site-nav { --site-nav-height:56px; position:sticky; top:0; padding:5px 0 6px; z-index:1200; }
    .site-nav>.site-container { min-height:44px; flex-wrap:nowrap; gap:8px; padding:0 12px; }
    .site-nav .navbar-brand { font-size:18px; gap:5px; margin-right:auto; padding:0; min-height:44px; }
    .site-nav .site-brand-mark { width:24px; height:28px; }
    .site-mobile-join { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:8px 10px; border:1px solid #c7d2fe; border-radius:8px; color:var(--qc-primary); background:#eef2ff; font:600 13px/1.2 Figtree,system-ui,sans-serif; text-decoration:none; white-space:nowrap; }
    .site-nav .navbar-toggler { min-width:44px; padding:8px; }
    .site-nav .navbar-toggler-icon { margin-left:0; }
    .site-nav .site-toggler-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
    .site-nav #navbarResponsive { padding:16px 20px max(20px, env(safe-area-inset-bottom)); }
    .site-nav-placeholder { height:56px; }
    .site-footer { padding:40px 0 24px; }
    .site-footer a:not(.site-brand),.site-footer-bottom button { min-height:44px; display:flex; align-items:center; width:100%; padding:10px 0; }
    .site-footer .site-brand { min-height:44px; }
    .site-footer-bottom>div { flex-direction:column; gap:0; width:100%; }
    .site-footer .language-switcher__menu a { display:grid; }
    .language-switcher>summary { min-height:44px; }
}
/* Cookie choices have equal touch targets and keep their existing consent behavior. */
@media(max-width:767.98px), (max-width:991.98px) and (max-height:500px) {
    .lcc-modal.lcc-modal--alert { top:auto; bottom:0; left:0; right:0; transform:none; width:100%; max-width:none; max-height:90vh; max-height:90dvh; padding:20px 20px max(16px, env(safe-area-inset-bottom)); border-radius:16px 16px 0 0; box-shadow:0 -8px 40px #0f172a20; }
    .lcc-modal--alert .lcc-modal__title { font:700 20px/1.3 Figtree,system-ui,sans-serif; margin-bottom:12px; }
    .lcc-modal--alert .lcc-text { font:400 14px/1.5 Figtree,system-ui,sans-serif; margin-bottom:0; }
    .lcc-modal--alert .lcc-modal__actions { margin-top:16px; display:flex; flex-direction:column; gap:8px; }
    .lcc-modal--alert .lcc-modal__actions>.lcc-button { width:100%; min-height:44px; margin:0; padding:10px 12px; border:1px solid #94a3b8; border-radius:8px; color:#0f172a; background:white; font:600 15px/1.4 Figtree,system-ui,sans-serif; }
    .lcc-modal--alert .lcc-modal__actions>.lcc-button:hover { color:#3730a3; border-color:#4338ca; background:#eef2ff; }
    .lcc-modal .lcc-modal__close { width:44px; height:44px; }
    .lcc-modal--settings { width:calc(100% - 24px); max-width:560px; max-height:calc(100dvh - 24px); }
    .lcc-modal--settings .lcc-modal__title { padding-right:24px; }
}
@media(max-width:767.98px), (max-width:991.98px) and (max-height:500px) {
    #mainNav.site-nav { padding-top:5px; padding-bottom:6px; }
    .lcc-backdrop { background:rgb(15 23 42 / .25); }
}
.site-footer-group>summary { list-style:none; pointer-events:none; }
.site-footer-group>summary::-webkit-details-marker { display:none; }
.site-footer-group>summary h2 { display:inline-block; }
@media(max-width:767.98px), (max-width:991.98px) and (max-height:500px) {
    #mainNav.site-nav .navbar-toggler { padding:8px; min-height:44px; min-width:44px; }
    .site-footer-grid { grid-template-columns:1fr; gap:0; }
    .site-footer-grid>div:first-child { padding-bottom:24px; }
    .site-footer-group { border-top:1px solid #334155; }
    .site-footer-group>summary { display:flex; align-items:center; justify-content:space-between; min-height:56px; padding:12px 0; cursor:pointer; pointer-events:auto; }
    .site-footer-group>summary h2 { margin:0; }
    .site-footer-group>summary::after { content:''; width:8px; height:8px; margin-right:4px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); }
    .site-footer-group[open]>summary::after { transform:rotate(225deg); }
    .site-footer-group>div { padding-bottom:16px; }
    .site-footer-bottom { margin-top:24px; }
}
@media(max-width:767.98px), (max-width:991.98px) and (max-height:500px) {
    .site-nav .language-switcher>summary,.site-footer .language-switcher>summary,
    .site-nav .language-switcher__menu a,.site-nav .language-switcher__menu button,
    .site-footer .language-switcher__menu a,.site-footer .language-switcher__menu button { min-height:44px; }
    .lcc-modal.lcc-modal--settings .lcc-modal__close { width:44px; height:44px; }
    .lcc-modal--settings .lcc-button { min-height:44px; }
    .lcc-modal--settings .lcc-label { min-height:44px; align-items:center; }
}
