/* OSGT public site — component styles. Every value comes from tokens.css custom properties. */
.o-root{font-family:var(--font-body);color:var(--text-primary);background:var(--background);font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1;-webkit-font-smoothing:antialiased}
.o-root *{box-sizing:border-box}
.o-root h1,.o-root h2,.o-root h3,.o-root h4,.o-root p{margin:0}
.o-pad{padding:24px}
.o-num{font-family:var(--font-head);font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1,"tnum" 1}
.o-eyebrow{font:600 13px/20px var(--font-head);letter-spacing:.12em;text-transform:uppercase;color:var(--link)}
.o-display{font:700 64px/68px var(--font-head);letter-spacing:-.02em}
.o-h1{font:700 48px/56px var(--font-head);letter-spacing:-.02em}
.o-h2{font:700 36px/44px var(--font-head);letter-spacing:-.015em}
.o-h3{font:600 24px/32px var(--font-head);letter-spacing:-.01em}
.o-h4{font:600 18px/26px var(--font-head)}
.o-lead{font:500 20px/32px var(--font-body);color:var(--text-secondary)}
.o-body{font:500 17px/28px var(--font-body)}
.o-small{font:500 15px/24px var(--font-body);color:var(--text-secondary)}
.o-caption{font:500 13px/20px var(--font-body);color:var(--text-muted)}
.o-legal{font:500 14px/22px var(--font-body);color:var(--text-secondary)}
.o-label{font:600 14px/20px var(--font-body);color:var(--text-primary)}
.o-meta{font:600 11px/16px var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
@media (max-width:767px){.o-display{font-size:40px;line-height:44px}.o-h1{font-size:32px;line-height:38px}.o-h2{font-size:26px;line-height:32px}.o-h3{font-size:20px;line-height:28px}.o-lead{font-size:18px;line-height:28px}.o-body{font-size:16px;line-height:26px}}

/* Buttons */
.o-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:52px;padding:0 24px;border-radius:var(--radius-md);font:600 16px/20px var(--font-body);border:1.5px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color .16s cubic-bezier(.2,0,0,1),border-color .16s cubic-bezier(.2,0,0,1),box-shadow .16s cubic-bezier(.2,0,0,1),transform .16s cubic-bezier(.2,0,0,1)}
.o-btn svg{width:18px;height:18px}
.o-btn--sm{height:40px;padding:0 16px;font-size:14px;line-height:18px;border-radius:12px}
.o-btn--primary{background:var(--accent);color:var(--text-on-accent);box-shadow:var(--shadow-button)}
.o-btn--primary:hover,.o-btn--primary.is-hover{background:var(--accent-hover)}
.o-btn--primary:active,.o-btn--primary.is-pressed{background:var(--accent-pressed);box-shadow:none;transform:translateY(1px)}
.o-btn--secondary{background:var(--surface);color:var(--link);border-color:var(--border-input)}
.o-btn--secondary:hover,.o-btn--secondary.is-hover{border-color:var(--link);background:var(--accent-tint)}
.o-btn--secondary:active,.o-btn--secondary.is-pressed{background:var(--accent-tint);border-color:var(--accent-pressed);transform:translateY(1px)}
.o-btn--ghost{background:transparent;color:var(--link);padding:0 4px;height:auto;min-height:32px;border-radius:6px}
.o-btn--ghost:hover,.o-btn--ghost.is-hover{text-decoration:underline;text-underline-offset:4px}
.o-btn--ghost:active,.o-btn--ghost.is-pressed{color:var(--accent-pressed)}
.o-btn--on-dark{background:#FFFFFF;color:#17253F}
.o-btn--on-dark:hover,.o-btn--on-dark.is-hover{background:#EEF4FE}
.o-btn--on-dark:active,.o-btn--on-dark.is-pressed{background:#DCE8FD;transform:translateY(1px)}
.o-btn--outline-dark{background:transparent;color:#FFFFFF;border-color:#6B7A94}
.o-btn--outline-dark:hover,.o-btn--outline-dark.is-hover{border-color:#FFFFFF}
.o-btn:focus-visible,.o-btn.is-focus,.o-focusable:focus-visible,.o-focusable.is-focus{outline:2px solid var(--focus-ring);outline-offset:2px}
.o-btn[disabled],.o-btn.is-disabled{background:var(--brand-grey-100);color:#6B7280;border-color:transparent;box-shadow:none;cursor:not-allowed;transform:none}
[data-theme="dark"] .o-btn[disabled],[data-theme="dark"] .o-btn.is-disabled{background:#1E3050;color:#9AA7BA}
.o-btn--ghost[disabled],.o-btn--ghost.is-disabled{background:transparent;color:var(--text-muted);text-decoration:none}

/* Header */
.o-header{display:flex;align-items:center;gap:32px;height:80px;padding:0 40px;background:var(--surface);border-bottom:1px solid var(--border)}
.o-logo-slot{flex:none;width:168px;height:44px;border:1.5px dashed var(--border-input);border-radius:8px;display:flex;align-items:center;justify-content:center;font:600 12px/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
.o-nav{display:flex;gap:28px;margin:0 auto 0 16px}
.o-nav a{font:600 15px/20px var(--font-body);color:var(--text-primary);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.o-nav a:hover,.o-nav a.is-hover{color:var(--link)}
.o-nav a.is-active{border-bottom-color:var(--accent)}
.o-lang{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:var(--radius-pill);border:1px solid var(--border-input);font:600 13px/1 var(--font-body);color:var(--text-primary);background:var(--surface)}
.o-header__actions{display:flex;align-items:center;gap:12px}
.o-burger{width:44px;height:44px;border-radius:12px;border:1px solid var(--border-input);display:flex;align-items:center;justify-content:center;background:var(--surface);color:var(--text-primary)}
.o-mobile-sheet{background:var(--surface);border-radius:0 0 var(--radius-lg) var(--radius-lg);box-shadow:var(--shadow-3);padding:8px 16px 20px}
.o-mobile-sheet__link{display:flex;justify-content:space-between;align-items:center;min-height:52px;border-bottom:1px solid var(--divider);font:600 17px/24px var(--font-body);color:var(--text-primary);text-decoration:none}

/* Surfaces & cards */
.o-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow-1);transition:box-shadow .2s cubic-bezier(.2,0,0,1),transform .2s cubic-bezier(.2,0,0,1)}
.o-card.is-hover,.o-card--link:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}
.o-card--flat{box-shadow:none;border-color:var(--border-card)}
.o-icon-tile{width:48px;height:48px;border-radius:12px;background:var(--accent-tint);color:var(--link);display:flex;align-items:center;justify-content:center;margin-bottom:20px}
.o-icon-tile svg{width:24px;height:24px}
.o-step-num{font:700 14px/1 var(--font-head);font-variant-numeric:tabular-nums;width:36px;height:36px;border-radius:50%;border:1.5px solid var(--accent);color:var(--link);display:flex;align-items:center;justify-content:center;margin-bottom:20px}
.o-badge{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:var(--radius-xs);font:600 13px/1 var(--font-body)}
.o-badge--success{background:var(--success-tint);color:var(--success)}
.o-badge--warning{background:var(--warning-tint);color:var(--warning)}
.o-badge--info{background:var(--accent-tint);color:var(--link)}
.o-tier{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px 0 8px;border-radius:var(--radius-xs);font:700 12px/1 var(--font-head);letter-spacing:.06em;text-transform:uppercase}
.o-tier i{width:12px;height:12px;border-radius:50%;display:block}
.o-tier--bronze{background:var(--tier-bronze-bg);color:var(--tier-bronze-ink)} .o-tier--bronze i{background:radial-gradient(circle at 35% 30%,#F1D2B0,#A8733F 70%)}
.o-tier--silver{background:var(--tier-silver-bg);color:var(--tier-silver-ink)} .o-tier--silver i{background:radial-gradient(circle at 35% 30%,#FFFFFF,#9AA4B1 70%)}
.o-tier--gold{background:var(--tier-gold-bg);color:var(--tier-gold-ink)} .o-tier--gold i{background:radial-gradient(circle at 35% 30%,#FFF1BF,#C49A2C 70%)}
.o-tier--platinum{background:var(--tier-platinum-bg);color:var(--tier-platinum-ink)} .o-tier--platinum i{background:radial-gradient(circle at 35% 30%,#FFFFFF,#8FA6B6 70%)}
.o-tier--vip{background:#17253F;color:var(--tier-vip-ink)} .o-tier--vip i{background:radial-gradient(circle at 35% 30%,#FFF1BF,#C49A2C 70%)}

/* Stat strip */
.o-stats{display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}
.o-stat{padding:28px 28px 30px;border-left:1px solid var(--divider)}
.o-stat:first-child{border-left:0}
.o-stat__n{font:700 48px/52px var(--font-head);letter-spacing:-.02em;font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.o-stat__l{font:500 15px/22px var(--font-body);color:var(--text-secondary);margin-top:10px}
@media (max-width:767px){.o-stats{grid-template-columns:1fr 1fr}.o-stat{padding:20px 16px;border-left:0}.o-stat:nth-child(odd){border-right:1px solid var(--divider)}.o-stat:nth-child(-n+2){border-bottom:1px solid var(--divider)}.o-stat__n{font-size:36px;line-height:40px}}

/* Table */
.o-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);-webkit-overflow-scrolling:touch}
.o-table{width:100%;min-width:720px;border-collapse:collapse}
.o-table th{font:600 13px/18px var(--font-body);color:var(--text-secondary);text-align:left;padding:14px 20px;background:var(--surface-alt);border-bottom:1px solid var(--border);white-space:nowrap}
.o-table td{font:500 15px/22px var(--font-body);padding:16px 20px;border-bottom:1px solid var(--divider);vertical-align:middle}
.o-table tr:last-child td{border-bottom:0}
.o-table td.n,.o-table th.n{text-align:right;font-family:var(--font-head);font-variant-numeric:lining-nums tabular-nums}
.o-table tr.is-active td{background:var(--accent-tint)}
.o-table tbody tr:hover td{background:var(--surface-alt)}
.o-table th:first-child,.o-table td:first-child{position:sticky;left:0;background:inherit}
.o-table tbody td:first-child{background:var(--surface)}

/* Forms */
.o-field{display:flex;flex-direction:column;gap:8px}
.o-input,.o-select,.o-textarea{width:100%;height:52px;padding:0 16px;border-radius:var(--radius-sm);border:1.5px solid var(--border-input);background:var(--surface);font:500 16px/24px var(--font-body);color:var(--text-primary);transition:border-color .16s}
.o-textarea{height:112px;padding:14px 16px;resize:vertical}
.o-input::placeholder,.o-textarea::placeholder{color:var(--text-muted)}
.o-input:hover,.o-input.is-hover{border-color:var(--text-secondary)}
.o-input:focus,.o-input.is-focus,.o-select.is-focus{outline:2px solid var(--focus-ring);outline-offset:1px;border-color:var(--focus-ring)}
.o-input.is-error{border-color:var(--error);background:var(--surface)}
.o-input.is-success{border-color:var(--success)}
.o-input[disabled],.o-input.is-disabled{background:var(--brand-grey-100);color:#6B7280;border-color:#B8C0CC}
.o-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2317253F' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:44px}
.o-help{font:500 13px/18px var(--font-body);color:var(--text-muted)}
.o-msg{display:flex;gap:8px;align-items:flex-start;font:500 14px/20px var(--font-body)}
.o-msg svg{flex:none;width:16px;height:16px;margin-top:2px}
.o-msg--error{color:var(--error-text)} .o-msg--success{color:var(--success)}
.o-check{display:flex;gap:12px;align-items:flex-start;font:500 14px/22px var(--font-body);color:var(--text-secondary)}
.o-check__box{flex:none;width:22px;height:22px;border-radius:var(--radius-xs);border:1.5px solid var(--border-input);background:var(--surface);display:flex;align-items:center;justify-content:center;margin-top:1px}
.o-check__box.is-on{background:var(--accent);border-color:var(--accent);color:#fff}
.o-check__box.is-error{border-color:var(--error)}
.o-check a{color:var(--link)}

/* Slider */
.o-slider{position:relative;height:28px}
.o-slider__track{position:absolute;left:0;right:0;top:12px;height:4px;border-radius:2px;background:var(--divider)}
.o-slider__fill{position:absolute;left:0;top:12px;height:4px;border-radius:2px;background:linear-gradient(90deg,#266DF0 0%,#79A5F6 100%)}
.o-slider__thumb{position:absolute;top:2px;width:24px;height:24px;margin-left:-12px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:var(--shadow-1)}

/* Info note */
.o-note{display:flex;gap:14px;padding:18px 20px;border-radius:var(--radius-sm);background:var(--accent-tint);color:var(--text-primary);font:500 15px/24px var(--font-body)}
.o-note svg{flex:none;width:20px;height:20px;color:var(--info);margin-top:2px}
.o-note b{font-weight:700}

/* FAQ */
.o-faq{border-top:1px solid var(--divider)}
.o-faq__item{border-bottom:1px solid var(--divider)}
.o-faq__q{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:22px 4px;background:none;border:0;text-align:left;font:600 18px/26px var(--font-head);color:var(--text-primary);cursor:pointer}
.o-faq__q:hover,.o-faq__q.is-hover{color:var(--link)}
.o-faq__icon{flex:none;width:32px;height:32px;border-radius:50%;border:1.5px solid var(--border-input);display:flex;align-items:center;justify-content:center;transition:transform .24s cubic-bezier(.2,0,0,1)}
.o-faq__item.is-open .o-faq__icon{transform:rotate(45deg);border-color:var(--accent);color:var(--link)}
.o-faq__a{padding:0 56px 24px 4px;font:500 16px/26px var(--font-body);color:var(--text-secondary)}

/* Dark section helpers */
.o-dark{background:var(--brand-navy-900);color:#fff}
.o-hr{height:1px;background:var(--divider);border:0;margin:0}

/* Board helpers (previews only) */
.o-board-label{font:600 11px/16px var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px}
.o-row{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.o-grid2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.o-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media (max-width:767px){.o-grid2,.o-grid3{grid-template-columns:1fr}}
.o-illu{border-radius:var(--radius-xl);background:radial-gradient(120% 90% at 30% 20%,#FFFFFF 0%,#DCE8FD 60%,#C7DAFB 100%);display:flex;align-items:center;justify-content:center}
.o-rule{font:500 13px/20px var(--font-body);color:var(--text-secondary);margin-top:8px}
@media (prefers-reduced-motion:reduce){.o-root *{transition:none!important;animation:none!important}}

/* Numbers rule — last, so it wins over every `font` shorthand above (the shorthand resets numeric variants). */
.o-root,.o-root *{font-variant-numeric:lining-nums}
.o-root .o-num,.o-root .o-stat__n,.o-root .o-step-num,.o-root .o-table td.n,.o-root .o-table th.n{font-family:var(--font-head);font-variant-numeric:lining-nums tabular-nums}
