/* Active public runtime layer: public shell, components, spacing rhythm. */
:root{
    --section-gap:96px;
}

html{scroll-behavior:smooth}
body{
    font-family:var(--site-font),Arial,sans-serif;
    font-size:16px;
    line-height:1.6;
    background:var(--color-bg);
    color:var(--color-text);
    margin:0;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.site-container{max-width:var(--container-width)}
.brand-link,.footer-brand{display:inline-flex;align-items:center;gap:.9rem}
.brand-logo{width:44px;height:44px;object-fit:contain}
.brand-logo--footer{width:52px;height:52px}
.nav-link{display:inline-flex;align-items:center;border-radius:999px;padding:.72rem .98rem !important;color:inherit;font-weight:600}
.navbar-toggler{border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:.58rem .75rem;box-shadow:none !important}
.navbar-toggler-icon{filter:invert(1) brightness(1.9)}
.btn-site,
.btn-outline-site{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5rem;
    min-height:50px;
    padding:.88rem 1.32rem;
    border-radius:var(--button-radius);
    font-weight:700;
    line-height:1.2;
}
.btn-primary.btn-site,
.btn-primary{
    border:0;
    color:#fff;
    background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));
    box-shadow:0 14px 34px rgba(0,68,131,.24);
}
.btn-outline-site,
.btn-outline-secondary.btn-site{
    border:1px solid rgba(255,255,255,.18);
    color:#fff;
    background:rgba(255,255,255,.08);
}
.btn-outline-secondary.btn-site{
    color:var(--color-primary-dark);
    background:#fff;
    border-color:rgba(9,29,55,.1);
}
.btn-site:hover,
.btn-outline-site:hover,
.btn-outline-secondary.btn-site:hover{transform:translateY(-2px)}
.form-control,
.form-select{
    border-radius:16px;
    border:1px solid rgba(12,44,76,.12);
    background:#fff;
    box-shadow:none;
}
.form-control:focus,
.form-select:focus{
    border-color:rgba(0,68,131,.2);
    box-shadow:0 0 0 4px rgba(0,68,131,.08);
}
.flash{margin-bottom:1rem;padding:1rem 1.15rem;border-radius:18px}
.reveal-on-scroll,
.reveal-card{
    opacity:0;
    transform:translateY(var(--reveal-distance, 16px)) scale(.985);
    filter:blur(var(--reveal-blur, 4px));
    will-change:transform, opacity, filter;
}
.reveal-on-scroll.is-revealed,
.reveal-card.is-revealed{
    opacity:1;
    transform:none;
    filter:none;
}
.cookie-banner{
    position:fixed;
    left:20px;
    right:20px;
    bottom:20px;
    z-index:1095;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    padding:14px 16px;
    border-radius:20px;
    border:1px solid rgba(255,255,255,.18);
    background:linear-gradient(180deg, rgba(8,16,30,.94), rgba(8,16,30,.86));
    color:#fff;
    box-shadow:0 22px 52px rgba(2,8,20,.28);
    backdrop-filter:blur(18px) saturate(160%);
    -webkit-backdrop-filter:blur(18px) saturate(160%);
    opacity:0;
    transform:translateY(18px);
    pointer-events:none;
    transition:opacity .22s ease,transform .22s ease;
}
.cookie-banner.is-visible{opacity:1;transform:none;pointer-events:auto}
.cookie-banner__copy{display:grid;gap:4px;max-width:820px;line-height:1.55}
.cookie-banner__copy span{color:rgba(255,255,255,.74)}
.cookie-banner__copy a{text-decoration:underline;text-underline-offset:2px}
.cookie-banner__actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.cookie-banner__btn{white-space:nowrap}
.site-footer{padding-top:1rem}
.footer-link{font-weight:500}
.footer-bottom{margin-top:1.35rem;padding-top:1.15rem;border-top:1px solid var(--color-border)}

@media (max-width:767.98px){
    .cookie-banner{left:14px;right:14px;bottom:14px;padding:12px 13px;border-radius:16px;flex-direction:column}
    .cookie-banner__actions{width:100%}
    .cookie-banner__actions .btn{flex:1 1 auto}
}


@media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto}
    .reveal-on-scroll,
    .reveal-card,
    .cookie-banner,
    .btn-site,
    .btn-outline-site,
    .btn-outline-secondary.btn-site,
    .nav-link,
    .brand-link{transition:none !important;transform:none !important;filter:none !important}
    .reveal-on-scroll,
    .reveal-card{opacity:1 !important}
}


/* Stage 3A / Iteration 1 — canonical public tokens */
:root{
    --public-section-gap: 96px;
    --public-section-gap-compact: 72px;
    --public-section-gap-mobile: 34px;
    --public-shell-radius: 32px;
    --public-shell-padding: clamp(18px, 2.6vw, 28px);
    --public-shell-padding-lg: clamp(24px, 3vw, 34px);
    --public-card-radius: 24px;
    --public-card-padding: 1.12rem;
    --public-card-padding-lg: 1.24rem;
    --public-card-shadow: 0 16px 32px rgba(10,30,70,.06);
    --public-card-shadow-hover: 0 22px 42px rgba(7,19,41,.10);
    --public-btn-height: 48px;
    --public-btn-padding-x: 1.22rem;
    --public-input-height: 54px;
    --public-field-radius: 18px;
    --public-section-head-gap: 1.1rem;
    --public-section-head-flow-gap: .76rem;
    --public-section-content-gap: 1.45rem;
    --public-muted-text: #58708a;
}
.btn-site,
.btn-outline-site,
.btn-outline-secondary.btn-site{
    min-height: var(--public-btn-height);
    padding: .8rem var(--public-btn-padding-x);
    gap: .56rem;
    line-height: 1.15;
}
.btn-site:focus-visible,
.btn-outline-site:focus-visible,
.btn-outline-secondary.btn-site:focus-visible,
.nav-link:focus-visible{
    outline: none;
    box-shadow: 0 0 0 4px rgba(0,68,131,.10);
}
.form-control,
.form-select,
textarea.form-control{
    min-height: var(--public-input-height);
    padding: .84rem 1rem;
    border-radius: var(--public-field-radius);
    transition: border-color .22s ease, box-shadow .22s ease, background-color .22s ease;
}
.form-control:hover,
.form-select:hover,
textarea.form-control:hover{
    border-color: rgba(12,44,76,.16);
}
.form-control::placeholder,
.form-select::placeholder,
textarea.form-control::placeholder{
    color: rgba(88,112,138,.86);
}
@media (max-width: 767.98px){
    :root{
        --public-btn-height: 47px;
        --public-input-height: 52px;
        --public-shell-radius: 28px;
        --public-card-radius: 22px;
    }
}

.skip-link{position:fixed;top:10px;left:12px;z-index:1200;padding:.72rem 1rem;border-radius:14px;background:#ffffff;color:#07111f;border:1px solid rgba(7,17,31,.12);box-shadow:0 18px 34px rgba(7,17,31,.16);transform:translateY(-140%);transition:transform .18s ease,opacity .18s ease;opacity:0}.skip-link:focus-visible{transform:translateY(0);opacity:1;outline:none}#main-content:focus{outline:none}@media (prefers-reduced-motion: reduce){.skip-link{transition:none}}
