.button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 12px 21px; border: 1px solid transparent; border-radius: var(--radius-pill); font-weight: 760; line-height: 1.2; text-align: center; text-decoration: none; transition: transform .2s, background-color .2s, border-color .2s, box-shadow .2s; }
.button:hover { transform: translateY(-2px); }
.button svg, .text-link svg, .related-grid svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.button-small { min-height: 42px; padding: 10px 17px; font-size: .88rem; }
.button-large { min-height: 58px; padding: 16px 26px; }
.button-primary { color: var(--ink-950); background: var(--mint-400); box-shadow: 0 12px 35px rgba(57,231,178,.2); }
.button-primary:hover { background: #83f5d1; box-shadow: 0 15px 40px rgba(57,231,178,.3); }
.button-dark { width: 100%; color: var(--white); background: var(--ink-950); }
.button-dark:hover { background: var(--ink-800); }
.button-outline { color: var(--ink-950); border-color: var(--slate-300); background: transparent; }
.button-ghost { color: var(--white); border-color: rgba(255,255,255,.25); }
.button-disabled { width: 100%; color: var(--slate-500); background: var(--slate-100); cursor: not-allowed; }
.button-disabled:hover { transform: none; }
.eyebrow { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 24px; color: var(--mint-400); font-size: .76rem; font-weight: 820; letter-spacing: .12em; text-transform: uppercase; }
.eyebrow > i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 5px rgba(57,231,178,.13); }
.eyebrow-dark { color: var(--blue-500); }
.section-heading { margin-bottom: clamp(40px, 5vw, 70px); }
.centered-heading { max-width: 790px; margin-inline: auto; text-align: center; }
.centered-heading p { max-width: 650px; margin: 18px auto 0; font-size: 1.08rem; }
.split-heading { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(260px, .55fr); align-items: end; gap: 60px; }
.split-heading h2 { margin-bottom: 0; }
.split-heading > p { margin: 0 0 6px; font-size: 1.06rem; }
.light-heading .eyebrow { margin-bottom: 18px; }
.icon-box { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 14px; color: var(--blue-500); background: #edf3ff; }
.icon-box svg { width: 25px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.check-list { display: grid; gap: 14px; padding: 0; margin: 32px 0; list-style: none; }
.check-list li { display: flex; align-items: flex-start; gap: 10px; color: var(--ink-800); font-weight: 620; }
.check-list svg { flex: 0 0 auto; width: 20px; color: var(--mint-500); fill: none; stroke: currentColor; stroke-width: 2.2; }
.text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--ink-950); font-weight: 780; text-decoration: none; }
.text-link:hover { color: var(--blue-500); }
.text-link-light { color: var(--white); }
.page-title-section { padding: clamp(64px, 8vw, 110px) 0 clamp(72px, 9vw, 128px); }
.page-title-section h1 { margin-bottom: 28px; font-size: clamp(2.7rem, 5vw, 5rem); }
.page-title-section p { max-width: 720px; margin: 0 auto; font-size: clamp(1.05rem, 2vw, 1.28rem); }
.legal-container { max-width: 820px; }
.legal-container h1 { margin-bottom: 12px; overflow-wrap: anywhere; hyphens: auto; }
.legal-container h2 { margin: 52px 0 16px; font-size: 1.65rem; }
.legal-container p { font-size: 1.04rem; }
.legal-container a { color: var(--blue-500); }
.legal-label { display: inline-block; padding: 7px 12px; color: #7c4b00; background: #fff0c9; border-radius: var(--radius-pill); font-size: .77rem; font-weight: 800; text-transform: uppercase; }
.legal-updated { margin-bottom: 40px; }
.legal-notice { padding: 24px; margin-bottom: 48px; border: 1px solid #f2d38c; border-radius: var(--radius-md); background: #fffaeb; }
.legal-notice p { margin: 5px 0 0; }
.not-found { min-height: 72vh; display: grid; place-items: center; text-align: center; }
.not-found span:first-child { color: var(--mint-400); font-size: clamp(5rem, 18vw, 12rem); font-weight: 900; letter-spacing: -.09em; line-height: .8; opacity: .18; }
.not-found h1 { margin: -20px 0 20px; }
.not-found .hero-actions { justify-content: center; }
