:root{
    --brand-red: #e30613;
    --brand-red-dark: #b3000f;
    --brand-red-soft: #fff4f5;
    --brand-ash: #cfd5dd;
    --brand-ice: #f7f8fb;
    --brand-ink: #1f1f1f;
    --glass: rgba(255,255,255,.75);
    --shadow: 0 18px 48px rgba(0,0,0,.08);
}

body.brand-body{
    background: radial-gradient(1600px circle at 12% 8%, rgba(227,6,19,.08), transparent 45%),
                radial-gradient(1200px circle at 88% 18%, rgba(227,6,19,.05), transparent 40%),
                var(--brand-ice);
    color: var(--brand-ink);
}

.brand-logo{ width:44px; height:44px; }

.topbar{
    font-size: .92rem;
    background: linear-gradient(90deg, var(--brand-red-soft), #fff);
    color: var(--brand-red-dark);
    border-bottom: 1px solid rgba(0,0,0,.05);
}
.topbar .btn{ border-color: var(--brand-red-dark); color: var(--brand-red-dark); }

.navbar{
    background: #fff;
    border-bottom: 1px solid rgba(0,0,0,.05);
}
.navbar-brand span{
    color: var(--brand-red-dark);
    letter-spacing: .01em;
}
.nav-link{
    font-weight: 600;
    color: #2d2d2d;
}
.nav-link:hover,
.nav-link:focus,
.nav-link.active{
    color: var(--brand-red);
}

.btn-brand{
    background: linear-gradient(120deg, var(--brand-red), var(--brand-red-dark));
    color: #fff;
    border: none;
    box-shadow: 0 10px 30px rgba(227,6,19,.28);
}
.btn-brand:hover{
    color: #fff;
    filter: brightness(1.05);
}
.btn-outline-brand{
    border: 1px solid var(--brand-red);
    color: var(--brand-red-dark);
    background: #fff;
}
.btn-outline-brand:hover{
    color: #fff;
    background: linear-gradient(120deg, var(--brand-red), var(--brand-red-dark));
}

.hero{
    border-radius: 2rem;
    overflow: hidden;
    box-shadow: var(--shadow);
    position: relative;
    background: radial-gradient(1200px circle at 10% 10%, rgba(227,6,19,.16), transparent 55%),
                linear-gradient(135deg, #0f1218, #2c1b1d);
    color: #fff;
}
.hero::after{
    content:"";
    position:absolute;
    inset:0;
    background-image: url("/static/placeholders/hero-placeholder.72a564fe8c25.svg");
    background-size: cover;
    background-position: center;
    opacity:.20;
    mix-blend-mode: screen;
    pointer-events:none;
}
.hero::before{
    content:"";
    position:absolute;
    inset:0;
    background: radial-gradient(900px circle at 85% 15%, rgba(227,6,19,.35), transparent 45%);
    pointer-events:none;
}
.hero .hero-inner{ position: relative; z-index: 2; }

.chip{
    display:inline-flex;
    align-items:center;
    gap:.5rem;
    border:1px solid rgba(255,255,255,.35);
    background: rgba(255,255,255,.10);
    padding:.5rem .85rem;
    border-radius:999px;
    backdrop-filter: blur(10px);
}

.card-soft{
    border: 0;
    border-radius: 1.5rem;
    box-shadow: 0 10px 25px rgba(0,0,0,.06);
    transition: transform .18s ease, box-shadow .18s ease;
    background: #fff;
    border-top: 3px solid rgba(227,6,19,.08);
}
.card-soft:hover{
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(0,0,0,.12);
}

.icon-bubble{
    width:44px; height:44px;
    border-radius: 14px;
    display:flex; align-items:center; justify-content:center;
    background: linear-gradient(160deg, var(--brand-red), var(--brand-red-dark));
    color: #fff;
}

.section-title{
    letter-spacing: .02em;
    color: var(--brand-red-dark);
}

.muted-tight{ color: rgba(255,255,255,.82); }

.badge-soft{
    background: rgba(227,6,19,.08);
    border: 1px solid rgba(227,6,19,.10);
    border-radius: 999px;
    padding: .35rem .6rem;
    font-weight: 600;
    color: var(--brand-red-dark);
}

.glass{
    background: var(--glass);
    border: 1px solid rgba(255,255,255,.6);
    border-radius: 1.5rem;
    box-shadow: var(--shadow);
    backdrop-filter: blur(12px);
}

.bg-brand-soft{ background: var(--brand-red-soft); }
.text-brand{ color: var(--brand-red-dark) !important; }
.link-brand{ color: var(--brand-red-dark); }
.link-brand:hover{ color: var(--brand-red); }

.footer{
    background: linear-gradient(180deg, #fff, var(--brand-red-soft));
}
.footer a{ color: inherit; }
.footer a:hover{ text-decoration: underline; }
