
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
    --red:        #ff1b28;
    --black:      #000000;
    --dark:       #212529;
    --grey:       #555555;
    --light-grey: #6e798c;
    --white:      #ffffff;
    --off-white:  #f2f2f2;
    --near-white: #fafafa;
    --orange:     #ee740e;
    --gutter:     24px; /* gap between columns */
}

html, body {
    min-height: 100%;
    background: var(--white);
    color: var(--dark);
    font-family: 'Quicksand', sans-serif;
    font-size: 16px;
    line-height: 24px;
}

/* ─────────────────────────────────────────
───────────────────────────────────────── */
.d-flex         { display: flex; }
.flex-row        { flex-direction: row; }
.flex-column     { flex-direction: column; }
.flex-wrap       { flex-wrap: wrap; }
.flex-nowrap     { flex-wrap: nowrap; }
.align-items-start   { align-items: flex-start; }
.align-items-center  { align-items: center; }
.align-items-end     { align-items: flex-end; }
.align-items-stretch { align-items: stretch; }
.justify-content-start   { justify-content: flex-start; }
.justify-content-center  { justify-content: center; }
.justify-content-end     { justify-content: flex-end; }
.justify-content-between { justify-content: space-between; }
.justify-content-around  { justify-content: space-around; }
.flex-grow-1  { flex-grow: 1; }
.flex-shrink-0{ flex-shrink: 0; }
.flex-fill    { flex: 1 1 auto; }

.gap-1  { gap: 4px; }
.gap-2  { gap: 8px; }
.gap-3  { gap: 12px; }
.gap-4  { gap: 16px; }
.gap-5  { gap: 24px; }
.gap-6  { gap: 48px; }

.w-100  { width: 100%; }
.w-50   { width: 90%; }

/* ─────────────────────────────────────────
   CONTAINER
───────────────────────────────────────── */
.container {
    width: 100%;
    padding-right: 16px;
    padding-left:  16px;
    margin-right: auto;
    margin-left:  auto;
}
@media (min-width: 576px)  { .container { max-width: 540px;  } }
@media (min-width: 768px)  { .container { max-width: 720px;  } }
@media (min-width: 992px)  { .container { max-width: 960px;  } }
@media (min-width: 1200px) { .container { max-width: 1140px; } }
@media (min-width: 1400px) { .container { max-width: 1320px; } }

/* ─────────────────────────────────────────
   BOOTSTRAP-LIKE ROW + COLUMN GRID
───────────────────────────────────────── */
.row {
    display: flex;
    flex-wrap: wrap;
    margin-right: calc(var(--gutter) / -2);
    margin-left:  calc(var(--gutter) / -2);
}

/* Base: col-12 (mobile-first) */
.col-12 {
    flex: 0 0 100%;
    max-width: 100%;
    padding-right: calc(var(--gutter) / 2);
    padding-left:  calc(var(--gutter) / 2);
    margin-bottom: var(--gutter);
}

/* col-md-6 → ≥768px */
@media (min-width: 768px) {
    .col-md-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }
}

/* col-lg-4 → ≥992px */
@media (min-width: 992px) {
    .col-lg-4 {
        flex: 0 0 33.3333%;
        max-width: 33.3333%;
    }
    .col-lg-5 {
        flex: 0 0 50%;
        max-width: 50%;
    }
}

@media (min-width: 1200px) {

    .col-lg-5 {
        flex: 0 0 45%;
        max-width: 45%;
    }
}

/* ─────────────────────────────────────────
   SPACING UTILITIES
───────────────────────────────────────── */
.mt-0  { margin-top: 0; }
.mt-1  { margin-top: 4px; }
.mt-2  { margin-top: 8px; }
.mt-3  { margin-top: 12px; }
.mt-4  { margin-top: 16px; }

.mb-0  { margin-bottom: 0; }
.mb-1  { margin-bottom: 4px; }
.mb-2  { margin-bottom: 8px; }
.mb-3  { margin-bottom: 12px; }
.mb-4  { margin-bottom: 16px; }
.mb-5  { margin-bottom: 24px; }
.mb-6  { margin-bottom: 32px; }
.mb-8  { margin-bottom: 48px; }

.py-3  { padding-top: 12px;  padding-bottom: 12px; }
.py-4  { padding-top: 16px;  padding-bottom: 16px; }
.py-5  { padding-top: 24px;  padding-bottom: 24px; }
.py-10 { padding-top: 20px;  padding-bottom: 16px; }
.px-4  { padding-left: 16px; padding-right: 16px; }
.px-5  { padding-left: 24px; padding-right: 24px; }


.p-4   { padding: 16px; }

@media (min-width: 992px) {
    .py-10 { padding-top: 40px;  padding-bottom: 20px; }
    .px-10 { padding-left: 40px; padding-right: 40px; }
}

/* ─────────────────────────────────────────
   HEADER
───────────────────────────────────────── */
.site-header {
    position: relative;
    background: #000;
    background: linear-gradient(90deg, rgba(0, 0, 0, 1) 10%, rgba(86, 0, 0, 1) 45%, rgba(248, 46, 46, 1) 100%);
    overflow: hidden;
}


.site-header .container {
    position: relative;
    z-index: 1;
    padding-top: 18px;
    padding-bottom: 18px;
}

.header-logo {
    height: 70px;
    width: auto;
    display: block;
}

/* ─────────────────────────────────────────
   CARDS SECTION
───────────────────────────────────────── */
.cards-section {
    background: var(--white);
}

/* ─── CARD ─── */
.card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    background: var(--white);
    overflow: hidden;
    height: 100%;
    transition: transform 0.3s cubic-bezier(0.16,1,0.3,1);
}

.card-image {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
    flex-shrink: 0;
}

.card-top {
    height: 6px;
    background: var(--red);
    flex-shrink: 0;
    margin: 16px 0;
}

.card--kids .card-top { background: var(--orange); }

.card-body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

/* Logo + tag row */
.card-meta img {
    height: 75px;
    width: auto;
    flex-shrink: 0;
    display: block;
    border-radius: 100%;
}


.card-tag {
    display: inline-block;
    font-family: 'Quicksand', sans-serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    padding: 4px 12px;
    border-radius: 2px;
    white-space: nowrap;
}

.card--consulting .card-tag { background: rgba(255,27,40,0.08); color: var(--red); }
.card--kids       .card-tag { background: var(--off-white);      color: var(--grey); }

.card-domain {
    font-family: 'Quicksand', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.12em;
    color: var(--light-grey);
    margin-bottom: 12px;
}

.card h3 {
    font-family: 'Source Sans 3', sans-serif;
    font-weight: 700;
    font-size: 30px;
    line-height: 36px;
    color: var(--black);
    margin-bottom: 14px;
}

.card p {
    font-size: 15px;
    line-height: 24px;
    color: var(--grey);
    margin-bottom: 24px;
}

.card-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: 'Source Sans 3', sans-serif;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 14px 28px;
    width: fit-content;
    transition: gap 0.25s, background 0.25s, color 0.25s;
}

.card--consulting .card-cta { background: var(--red);    color: var(--white); }
.card--kids       .card-cta { background: var(--orange); color: var(--white); }

/* ─────────────────────────────────────────
   FOOTER
───────────────────────────────────────── */
footer { text-align: center; padding: 20px; padding-top: 0; }
footer p { font-size: 14px; color: #000; line-height: 22px; }