/* Shared primitives from approved v3. Component layouts live with their blocks. */
:root { --ec3-dark:#181818; --ec3-light:#fff; --ec3-muted:#b8b8b1; --ec3-ring-color:var(--yellow); }
.ec3-ring-word { white-space:nowrap; }
.ec3-ring-stop { display:inline-block; width:max(10px,.24em); height:max(10px,.24em); margin-left:.07em; border:max(2px,.04em) solid var(--ec3-ring-color); border-radius:50%; vertical-align:.01em; }
.ec3-brand-ring { --ring-size:16px; display:inline-block; width:var(--ring-size); height:var(--ring-size); flex:0 0 var(--ring-size); border:2px solid var(--yellow); border-radius:50%; background:transparent; }
.ec3-section-label { font-size:12px; font-weight:600; line-height:1.4; letter-spacing:.1em; text-transform:uppercase; }
.ec3-text-link { display:inline-flex; align-items:center; gap:16px; min-height:44px; color:inherit; font-size:14px; font-weight:600; line-height:20px; }
.ec3-text-link-light { color:var(--yellow); }
.ec3-text-link > svg { flex:0 0 24px; width:24px; height:24px; transition:transform 220ms var(--ease); }
.ec3-button { display:inline-flex; align-items:center; justify-content:space-between; gap:24px; min-height:56px; padding:8px 8px 8px 24px; border-radius:999px; font-size:16px; font-weight:600; line-height:24px; white-space:nowrap; transition:background-color 220ms var(--ease),transform 160ms var(--ease); }
.ec3-button-dark { background:var(--ec3-dark); color:var(--ec3-light); }
.ec3-button-arrow { display:grid; place-items:center; width:40px; height:40px; flex:0 0 40px; border:2px solid var(--yellow); border-radius:50%; color:var(--yellow); }
.ec3-button-arrow svg { width:24px; height:24px; }
.ec3-button:active { transform:scale(.98); }
@media (hover:hover) and (pointer:fine) {
 .ec3-text-link:hover > svg { transform:translate(3px,-3px); }
 .ec3-button-dark:hover { background:var(--ink-soft); }
}
@media (prefers-reduced-motion:reduce) {
 .ec3-button, .ec3-text-link > svg { transition:none; }
}
