/* Agents listing (/agents/) and agent detail pages (/agents/{slug}/). Loaded by inc/agents-pages.php. */

/* One continuous background for the whole page: the Download hero's navy gradient and dot grid */
.ag-page {
    --ag-gutter: 16px;
    position: relative;
    overflow: hidden;
    font-family: "Poppins", system-ui, sans-serif;
    color: #fff;
    background: radial-gradient(900px 620px at 88% 0, rgba(54, 207, 242, .28), transparent 60%), radial-gradient(760px 560px at -6% 45%, rgba(55, 239, 182, .14), transparent 60%), radial-gradient(900px 700px at 100% 100%, rgba(54, 207, 242, .12), transparent 60%), linear-gradient(170deg, #00194F, #001042 40%, #000A2B);
}

/* style.css "section { padding: 3rem 0 }" (and the vertical-only paddings below) would
   zero the side gutter wherever a <section> is also the .container, so set it here. */
.ag-page .container {
    padding-right: var(--ag-gutter);
    padding-left: var(--ag-gutter);
}

@media (min-width: 768px) {
    .ag-page {
        --ag-gutter: 24px;
    }
}

@media (min-width: 1200px) {
    .ag-page {
        --ag-gutter: 2.5rem;
    }
}

.ag-page::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .32;
    pointer-events: none;
    background-image: radial-gradient(rgba(255, 255, 255, .1) 1px, transparent 1px);
    background-size: 28px 28px;
}

.ag-page>* {
    position: relative;
    z-index: 1;
}

/* hero */
.ag-hero {
    padding: clamp(40px, 6vh, 64px) 0 0;
    text-align: center;
}

.ag-hero-intro {
    max-width: 860px;
}

.ag-eyebrow {
    display: inline-flex;
    align-items: center;
    padding: 7px 15px;
    border: 1px solid rgba(55, 239, 182, .3);
    border-radius: 100px;
    background: rgba(55, 239, 182, .12);
    color: #37EFB6;
    font-family: "Figtree", system-ui, sans-serif;
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.ag-hero h1 {
    margin: 14px 0 0;
    color: #fff;
    font-family: "Figtree", system-ui, sans-serif;
    font-size: clamp(32px, 3.6vw, 52px);
    font-weight: 600;
    line-height: 1.08;
    letter-spacing: -.02em;
}

.ag-hero h1 em {
    font-style: normal;
    background: linear-gradient(96deg, #36CFF2, #37EFB6 58%, #F75CB5);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.ag-lede {
    max-width: 60ch;
    margin: 14px auto 0;
    color: rgba(255, 255, 255, .72);
    font-size: clamp(15px, 1.15vw, 17.5px);
    line-height: 1.6;
}

.ag-lede p {
    margin: 0;
}

/* filters */
.ag-filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin: clamp(28px, 3vw, 40px) 0 0;
}

/* Same pill as the blog category filter, on the theme's blue gradient */
.ag-chip {
    min-height: 42px;
    padding: 0 20px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 100px;
    background: rgba(255, 255, 255, .04);
    color: #d9dbe6;
    font-family: "Figtree", system-ui, sans-serif;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: color .15s, border-color .15s, background .15s;
}

.ag-chip:hover {
    border-color: #36CFF2;
    color: #36CFF2;
}

.ag-chip:focus-visible {
    outline: 2px solid #36CFF2;
    outline-offset: 2px;
}

.ag-chip[aria-pressed="true"] {
    border-color: transparent;
    /* border-box so the gradient also fills the (transparent) border, no seam at the edges */
    background: var(--blue-gradient) border-box;
    color: #fff;
    box-shadow: 0 6px 20px rgba(52, 60, 237, .35);
}

.ag-count {
    margin: 16px 0 0;
    color: #8b90a8;
    font-size: 14px;
    text-align: center;
}

/* cards */
.ag-list {
    padding: clamp(24px, 3vw, 40px) 0 clamp(40px, 4vw, 64px);
}

.ag-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(16px, 2vw, 28px);
}

.ag-card {
    /* Mascot tints (template-parts/coworker-mascot.php), same mix as the coworker page */
    --cw-accent: var(--ag-accent);
    --cw-light: color-mix(in srgb, var(--cw-accent) 88%, #fff);
    --cw-mid: color-mix(in srgb, var(--cw-accent) 90%, #000);
    --cw-dark: color-mix(in srgb, var(--cw-accent) 84%, #000);
    --cw-ear: color-mix(in srgb, var(--cw-accent) 78%, #000);
    --cw-shine: color-mix(in srgb, var(--cw-accent) 30%, #fff);
    display: flex;
    flex-direction: column;
    padding: 30px 28px 28px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-top: 3px solid var(--ag-accent);
    border-radius: 18px;
    background: rgba(4, 12, 48, .55);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    transition: transform .25s, border-color .25s;
}

.ag-card[hidden] {
    display: none;
}

.ag-card:hover {
    transform: translateY(-4px);
    border-color: color-mix(in srgb, var(--ag-accent) 45%, transparent);
}

.ag-top {
    display: flex;
    align-items: center;
    gap: 18px;
}

.ag-icon {
    flex: 0 0 auto;
    width: 96px;
}

.ag-icon svg {
    display: block;
    width: 100%;
    height: auto;
    transform-origin: 50% 90%;
}

.ag-card:hover .ag-icon svg {
    animation: ag-wave .9s ease-in-out;
}

@keyframes ag-wave {

    0%,
    100% {
        transform: rotate(0);
    }

    30% {
        transform: rotate(-6deg);
    }

    60% {
        transform: rotate(4deg);
    }
}

.ag-card .ag-name {
    margin: 0;
    color: #fff;
    font-family: inherit;
    font-size: clamp(24px, 1.9vw, 28px);
    font-weight: 700;
    line-height: 1.15;
}

.ag-cat {
    margin: 4px 0 0;
    color: var(--ag-accent);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.ag-summary {
    margin: 22px 0 0;
    color: #e3e5ee;
    font-size: 16px;
    line-height: 1.55;
}

.ag-points {
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
}

.ag-points li {
    position: relative;
    margin: 0 0 9px;
    padding-left: 22px;
    color: #c4c7d6;
    font-size: 15px;
    line-height: 1.5;
}

.ag-points li::before {
    content: "";
    position: absolute;
    top: .6em;
    left: 2px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--ag-accent);
}

.ag-works {
    margin: 12px 0 0;
    color: #8b90a8;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.ag-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 0;
    padding: 0;
    list-style: none;
}

.ag-chips li {
    display: inline-flex;
    align-items: center;
    height: 34px;
    padding: 0 14px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 17px;
    background: rgba(255, 255, 255, .05);
    color: #d9dbe6;
    font-size: 13.5px;
    font-weight: 600;
}

.ag-chips li:has(.ag-chip-logo) {
    gap: 7px;
    padding-left: 6px;
}

.ag-chips li.is-generic {
    border-style: dashed;
    background: transparent;
    color: #a9adc2;
}

.ag-chip-logo {
    flex: none;
    width: 22px;
    height: 22px;
    padding: 3px;
    border-radius: 50%;
    background: #fff;
    object-fit: contain;
}

.ag-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 22px;
    margin-top: auto;
    padding-top: 28px;
}

.ag-hire {
    display: inline-flex;
    align-items: center;
    height: 52px;
    padding: 0 28px;
    border-radius: 12px;
    background: var(--ag-accent);
    color: var(--ag-ink);
    font-size: 16.5px;
    font-weight: 600;
    text-decoration: none;
    transition: transform .2s, filter .2s;
}

.ag-hire:hover,
.ag-hire:focus-visible {
    color: var(--ag-ink);
    transform: translateY(-2px);
    filter: brightness(1.06);
}

.ag-more {
    padding-bottom: 3px;
    border-bottom: 1px solid #5a5f7a;
    color: #d9dbe6;
    font-size: 16.5px;
    font-weight: 500;
    text-decoration: none;
}

.ag-more:hover,
.ag-more:focus-visible {
    color: #fff;
    border-color: var(--ag-accent);
}

.ag-card.is-soon {
    position: relative;
    border-top-color: color-mix(in srgb, var(--ag-accent) 45%, transparent);
    background: rgba(4, 12, 48, .35);
}

/* Dim everything except the badge, so the "Coming soon" label stays crisp */
.ag-card.is-soon > :not(.ag-soon-badge) {
    opacity: .5;
    transition: opacity .25s, filter .25s;
}

.ag-card.is-soon .ag-icon {
    filter: grayscale(.55);
}

.ag-card.is-soon:hover > :not(.ag-soon-badge) {
    opacity: .8;
}

.ag-card.is-soon:hover .ag-icon {
    filter: none;
}

.ag-soon-badge {
    position: absolute;
    top: 18px;
    right: 18px;
    padding: 5px 11px;
    border: 1px solid color-mix(in srgb, var(--ag-accent) 30%, transparent);
    border-radius: 100px;
    background: color-mix(in srgb, var(--ag-accent) 8%, transparent);
    color: var(--ag-accent);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    opacity: .7;
}

.ag-soon {
    display: inline-flex;
    align-items: center;
    height: 52px;
    padding: 0 28px;
    border: 1px dashed rgba(255, 255, 255, .28);
    border-radius: 12px;
    color: #c4c7d6;
    font-size: 16.5px;
    font-weight: 600;
    cursor: default;
}

/* sections below the grid */
.ag-section {
    padding: clamp(28px, 3vw, 44px) 0;
}

.ag-section h2 {
    margin: 0;
    color: #fff;
    font-family: "Figtree", system-ui, sans-serif;
    font-size: clamp(26px, 2.6vw, 38px);
    font-weight: 600;
    line-height: 1.12;
    letter-spacing: -.02em;
}

/* Agents vs Store: Store parts -> packaged into -> one hireable agent */
.ag-section-head {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
}

.ag-section-head h2 {
    margin-top: 14px;
}

.ag-section-head p {
    margin: 12px 0 0;
    color: rgba(255, 255, 255, .72);
    font-size: 16.5px;
    line-height: 1.6;
}

.ag-flow {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: clamp(14px, 2vw, 28px);
    align-items: stretch;
    margin-top: clamp(28px, 3vw, 40px);
}

.ag-flow-card {
    display: flex;
    flex-direction: column;
    padding: 28px;
    border: 1px dashed rgba(255, 255, 255, .2);
    border-radius: 18px;
    background: rgba(255, 255, 255, .03);
}

.ag-flow-label {
    color: #8b90a8;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.ag-flow-card h3 {
    margin: 8px 0 0;
    color: #fff;
    font-family: inherit;
    font-size: 21px;
    font-weight: 700;
}

.ag-flow-card>p {
    margin: 8px 0 0;
    color: #c4c7d6;
    font-size: 15px;
    line-height: 1.55;
}

.ag-flow-card .ag-chips {
    margin-top: 18px;
}

.ag-flow-arrow {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #36CFF2;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    text-align: center;
}

.ag-flow-arrow svg {
    width: 44px;
    height: 44px;
    padding: 11px;
    border-radius: 50%;
    background: var(--blue-gradient);
    color: #fff;
}

/* The agent side reuses .ag-card, so it reads as "one of the cards above" */
.ag-flow .ag-card .ag-flow-label {
    margin-bottom: 14px;
    color: var(--ag-accent);
}

.ag-checks {
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.ag-checks li {
    position: relative;
    margin: 0 0 10px;
    padding-left: 28px;
    color: #c4c7d6;
    font-size: 15px;
    line-height: 1.5;
}

.ag-checks li::before {
    content: "";
    position: absolute;
    top: .2em;
    left: 0;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--ag-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300122B' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / 11px no-repeat;
}

.ag-checks strong {
    color: #fff;
    font-weight: 600;
}

.ag-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin: 26px 0 0;
    padding: 0;
    list-style: none;
    counter-reset: ag-step;
}

.ag-steps li {
    padding: 22px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 16px;
    background: rgba(4, 12, 48, .55);
    counter-increment: ag-step;
}

.ag-steps li::before {
    content: counter(ag-step);
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border-radius: 9px;
    background: #37EFB6;
    color: #00122B;
    font-size: 14px;
    font-weight: 700;
}

.ag-steps h3 {
    margin: 14px 0 0;
    color: #fff;
    font-family: inherit;
    font-size: 17px;
    font-weight: 700;
}

.ag-steps p {
    margin: 6px 0 0;
    color: #c4c7d6;
    font-size: 14.5px;
    line-height: 1.55;
}

/* Steps section sits right above the shared .cta-section (style.css) */
.ag-steps-section {
    padding-bottom: clamp(48px, 5vw, 80px);
}

/* Dark version of the shared CTA so it sits on this page's navy background */
.ag-page .ag-cta {
    padding: 0 0 clamp(56px, 6vw, 96px);
    background: transparent;
}

.ag-cta-panel {
    position: relative;
    overflow: hidden;
    gap: 0;
    padding: clamp(40px, 5vw, 72px) clamp(20px, 4vw, 56px);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 24px;
    background: radial-gradient(520px 260px at 50% 0, rgba(54, 207, 242, .28), transparent 70%), radial-gradient(420px 240px at 0 100%, rgba(55, 239, 182, .16), transparent 70%), radial-gradient(420px 240px at 100% 100%, rgba(247, 92, 181, .14), transparent 70%), linear-gradient(170deg, #0A1F66, #04104A);
}

.ag-cta .cta-title,
.ag-cta .cta-title p {
    color: #fff;
    font-weight: 600;
    letter-spacing: -.01em;
}

.ag-cta-sub {
    max-width: 52ch;
    margin: 14px auto 0;
    color: rgba(255, 255, 255, .72);
    font-size: 16.5px;
    line-height: 1.6;
}

.ag-cta .cta-actions {
    margin-top: 28px;
}

.ag-cta .cta-actions .btn {
    height: 52px;
    padding: 0 30px;
    border-radius: 12px;
    font-size: 16.5px;
    box-shadow: 0 8px 26px rgba(52, 60, 237, .4);
    transition: transform .2s, filter .2s;
}

.ag-cta .cta-actions .btn:hover,
.ag-cta .cta-actions .btn:focus-visible {
    color: #fff;
    transform: translateY(-2px);
    filter: brightness(1.08);
}

@media (prefers-reduced-motion: reduce) {

    .ag-cta .cta-actions .btn:hover,
    .ag-card,
    .ag-card:hover,
    .ag-hire:hover {
        transform: none;
    }

    .ag-card:hover .ag-icon svg {
        animation: none;
    }
}

@media (max-width: 1199px) {
    .ag-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ag-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ag-card {
        padding: 26px 22px 24px;
    }

    .ag-actions {
        gap: 18px;
    }

    .ag-soon {
        height: 46px;
        padding: 0 18px;
        font-size: 15px;
    }
}

@media (max-width: 767px) {

    .ag-flow {
        grid-template-columns: 1fr;
    }

    .ag-hero h1 {
        font-size: clamp(30px, 8.4vw, 38px);
    }

    .ag-section-head p,
    .ag-lede {
        font-size: 15.5px;
    }

    .ag-flow-arrow {
        flex-direction: row;
    }

    .ag-flow-arrow svg {
        transform: rotate(90deg);
    }

    .ag-flow-card {
        padding: 24px 20px;
    }

    /* One swipeable row, bleeding to the screen edges; the right edge fades to hint at more chips */
    .ag-filters {
        flex-wrap: nowrap;
        justify-content: flex-start;
        margin-right: calc(var(--ag-gutter) * -1);
        margin-left: calc(var(--ag-gutter) * -1);
        padding: 4px var(--ag-gutter) 8px;
        overflow-x: auto;
        scroll-padding-inline: var(--ag-gutter);
        scrollbar-width: none;
        -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent);
        mask-image: linear-gradient(90deg, #000 85%, transparent);
    }

    .ag-filters::-webkit-scrollbar {
        display: none;
    }

    .ag-chip {
        flex: 0 0 auto;
    }

    .ag-card {
        padding: 26px 20px 24px;
    }

    .ag-icon {
        width: 80px;
    }

    .ag-summary {
        font-size: 15px;
    }

    .ag-hire,
    .ag-more {
        font-size: 16px;
    }
}

/* ---------- Agent detail pages (template-pages/agent-detail.php) ---------- */

/* Mascot tints outside a card (same mix as .ag-card) */
.ag-tint {
    --cw-accent: var(--ag-accent);
    --cw-light: color-mix(in srgb, var(--cw-accent) 88%, #fff);
    --cw-mid: color-mix(in srgb, var(--cw-accent) 90%, #000);
    --cw-dark: color-mix(in srgb, var(--cw-accent) 84%, #000);
    --cw-ear: color-mix(in srgb, var(--cw-accent) 78%, #000);
    --cw-shine: color-mix(in srgb, var(--cw-accent) 30%, #fff);
}

.ad-hero {
    padding: clamp(24px, 3vw, 36px) 0 clamp(20px, 3vw, 36px);
}

.ad-crumb {
    display: flex;
    gap: 9px;
    align-items: center;
    color: #8b90a8;
    font-size: 14px;
}

.ad-crumb a {
    color: #c4c7d6;
    text-decoration: none;
}

.ad-crumb a:hover,
.ad-crumb a:focus-visible {
    color: #fff;
}

.ad-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr);
    gap: clamp(24px, 4vw, 64px);
    align-items: center;
    margin-top: clamp(20px, 3vw, 36px);
}

.ad-eyebrow {
    display: inline-flex;
    padding: 7px 15px;
    border: 1px solid color-mix(in srgb, var(--ag-accent) 35%, transparent);
    border-radius: 100px;
    background: color-mix(in srgb, var(--ag-accent) 12%, transparent);
    color: var(--ag-accent);
    font-family: "Figtree", system-ui, sans-serif;
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.ad-soon {
    position: static;
    display: inline-flex;
    margin-left: 8px;
    vertical-align: top;
}

.ad-hero h1 {
    margin: 16px 0 0;
    color: #fff;
    font-family: "Figtree", system-ui, sans-serif;
    font-size: clamp(32px, 4vw, 54px);
    font-weight: 600;
    line-height: 1.08;
    letter-spacing: -.02em;
}

.ad-lede {
    max-width: 58ch;
    margin: 16px 0 0;
    color: rgba(255, 255, 255, .72);
    font-size: clamp(15.5px, 1.2vw, 18px);
    line-height: 1.6;
}

.ad-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.ad-btn-ghost {
    display: inline-flex;
    align-items: center;
    height: 52px;
    padding: 0 28px;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 12px;
    background: transparent;
    color: #fff;
    font-family: inherit;
    font-size: 16.5px;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .2s, transform .2s;
}

.ad-btn-ghost:hover,
.ad-btn-ghost:focus-visible {
    border-color: rgba(255, 255, 255, .55);
    transform: translateY(-2px);
}

.ad-mascot {
    position: relative;
    width: 100%;
    max-width: 300px;
    margin: 0 auto;
}

.ad-mascot::before {
    content: "";
    position: absolute;
    inset: 10% -10%;
    border-radius: 50%;
    background: radial-gradient(closest-side, color-mix(in srgb, var(--ag-accent) 30%, transparent), transparent);
    filter: blur(10px);
}

.ad-mascot svg {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    animation: ad-float 5s ease-in-out infinite;
}

@keyframes ad-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

.ad-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
    margin: clamp(28px, 3vw, 44px) 0 0;
    padding: 0;
    list-style: none;
}

.ad-stats li {
    padding: 20px 22px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 16px;
    background: rgba(4, 12, 48, .55);
}

.ad-stats strong {
    display: block;
    color: var(--ag-accent);
    font-size: 30px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -.02em;
}

.ad-stats span {
    display: block;
    margin-top: 8px;
    color: #c4c7d6;
    font-size: 14px;
    line-height: 1.45;
}

/* section heads */
.ad-head {
    max-width: 760px;
    margin: 0 auto;
    text-align: center;
}

.ad-head p {
    margin: 12px 0 0;
    color: rgba(255, 255, 255, .72);
    font-size: 16.5px;
    line-height: 1.6;
}

.ad-head-left {
    margin: 0;
    text-align: left;
}

.ad-label {
    display: block;
    color: var(--ag-accent);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.ad-panel {
    padding: 24px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 18px;
    background: rgba(4, 12, 48, .55);
}

.ad-panel .ag-chips {
    margin-top: 14px;
}

.ad-note {
    margin: 14px 0 0;
    color: #8b90a8;
    font-size: 14px;
}

/* features */
.ad-features {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: clamp(24px, 3vw, 36px);
}

.ad-feature {
    padding: 24px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 18px;
    background: rgba(4, 12, 48, .55);
    transition: border-color .25s;
}

.ad-feature:hover {
    border-color: color-mix(in srgb, var(--ag-accent) 45%, transparent);
}

.ad-num {
    color: var(--ag-accent);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .1em;
}

.ad-feature h3,
.ad-flow h3,
.ad-guard h3 {
    margin: 10px 0 0;
    color: #fff;
    font-family: inherit;
    font-size: 18px;
    font-weight: 700;
}

.ad-feature p,
.ad-flow p,
.ad-guard p {
    margin: 8px 0 0;
    color: #c4c7d6;
    font-size: 15px;
    line-height: 1.55;
}

.ad-onto {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    gap: 16px;
    margin-top: clamp(24px, 3vw, 36px);
}

/* end-to-end flow: numbered steps joined by a line, last step highlighted */
.ad-flow {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
    margin: clamp(24px, 3vw, 36px) 0 0;
    padding: 0;
    list-style: none;
}

.ad-flow li {
    position: relative;
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 16px;
    background: rgba(4, 12, 48, .55);
}

.ad-flow li:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -15px;
    width: 14px;
    height: 2px;
    background: color-mix(in srgb, var(--ag-accent) 50%, transparent);
}

.ad-flow .ad-label {
    color: #8b90a8;
}

.ad-flow li.is-last {
    border-color: var(--ag-accent);
    background: color-mix(in srgb, var(--ag-accent) 10%, rgba(4, 12, 48, .55));
}

.ad-flow li.is-last .ad-label {
    color: var(--ag-accent);
}

.ad-stop {
    margin: 18px 0 0;
    color: var(--ag-accent);
    font-size: 15.5px;
    font-weight: 600;
    text-align: center;
}

/* two-column: heading left, content right */
.ad-split {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: clamp(24px, 4vw, 56px);
    align-items: start;
}

.ad-connect {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.ad-crew {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin: clamp(24px, 3vw, 36px) 0 0;
    padding: 0;
    list-style: none;
    counter-reset: ad-crew;
}

.ad-crew li {
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-top: 3px solid var(--ag-accent);
    border-radius: 14px;
    background: rgba(4, 12, 48, .55);
    counter-increment: ad-crew;
}

.ad-crew strong {
    display: block;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
}

.ad-crew strong::before {
    content: counter(ad-crew) ". ";
    color: var(--ag-accent);
}

.ad-crew span {
    display: block;
    margin-top: 6px;
    color: #c4c7d6;
    font-size: 14px;
    line-height: 1.5;
}

.ad-guard {
    padding: clamp(26px, 3vw, 44px);
    border: 1px solid color-mix(in srgb, var(--ag-accent) 40%, transparent);
    border-radius: 22px;
    background: color-mix(in srgb, var(--ag-accent) 7%, rgba(4, 12, 48, .55));
}

.ad-guard ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px 40px;
    margin: 24px 0 0;
    padding: 0;
    list-style: none;
}

.ad-guard li {
    position: relative;
    padding-left: 32px;
}

.ad-guard li::before {
    content: "";
    position: absolute;
    top: 13px;
    left: 0;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--ag-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300122B' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / 12px no-repeat;
}

/* FAQ accordion */
.ad-faq details {
    border-bottom: 1px solid rgba(255, 255, 255, .12);
}

.ad-faq details:first-child {
    border-top: 1px solid rgba(255, 255, 255, .12);
}

.ad-faq summary {
    position: relative;
    padding: 20px 40px 20px 0;
    color: #fff;
    font-size: 17px;
    font-weight: 600;
    list-style: none;
    cursor: pointer;
}

.ad-faq summary::-webkit-details-marker {
    display: none;
}

.ad-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 4px;
    color: var(--ag-accent);
    font-size: 24px;
    font-weight: 400;
    line-height: 1;
    transform: translateY(-50%);
    transition: transform .2s;
}

.ad-faq details[open] summary::after {
    transform: translateY(-50%) rotate(45deg);
}

.ad-faq summary:focus-visible {
    outline: 2px solid var(--ag-accent);
    outline-offset: 2px;
}

.ad-faq details p {
    margin: 0 0 20px;
    color: #c4c7d6;
    font-size: 15.5px;
    line-height: 1.6;
}

/* works alongside: two cards plus a "see all" tile */
.ad-alongside {
    margin-top: clamp(24px, 3vw, 36px);
}

.ad-all {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    min-height: 200px;
    border: 1px dashed rgba(255, 255, 255, .22);
    border-radius: 18px;
    color: #d9dbe6;
    font-size: 17px;
    font-weight: 600;
    text-decoration: none;
    transition: border-color .2s, color .2s;
}

.ad-all svg {
    width: 44px;
    height: 44px;
    padding: 11px;
    border-radius: 50%;
    background: var(--blue-gradient);
    color: #fff;
}

.ad-all:hover,
.ad-all:focus-visible {
    border-color: #36CFF2;
    color: #fff;
}

.ag-cta .cta-actions .ag-hire:hover,
.ag-cta .cta-actions .ag-hire:focus-visible {
    color: var(--ag-ink);
}

@media (prefers-reduced-motion: reduce) {
    .ad-mascot svg {
        animation: none;
    }

    .ad-btn-ghost:hover {
        transform: none;
    }
}

@media (max-width: 1199px) {
    .ad-features {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ad-flow,
    .ad-crew {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ad-flow li:not(:last-child)::after {
        display: none;
    }

    .ad-onto {
        grid-template-columns: 1fr 1fr;
    }

    .ad-onto .ad-panel:first-child {
        grid-column: 1 / -1;
    }

    .ad-stats {
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    }
}

/* Tablets: heading-left / content-right sections stack so the content keeps its width */
@media (max-width: 991px) {
    .ad-split {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .ad-head-left {
        max-width: 640px;
    }
}

/* Small tablets / large phones: stack the two-part layouts, keep card grids at two columns */
@media (max-width: 767px) {
    .ad-hero-grid,
    .ad-split,
    .ad-onto {
        grid-template-columns: 1fr;
    }

    .ad-onto .ad-panel:first-child {
        grid-column: auto;
    }

    .ad-flow,
    .ad-crew {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ad-mascot {
        order: -1;
        max-width: 190px;
    }

    .ad-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    /* odd count (3 stats): last one spans the row instead of leaving a hole */
    .ad-stats li:last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }

    .ad-stats li {
        padding: 16px;
    }

    .ad-stats strong {
        font-size: 26px;
    }

    .ad-stats span {
        font-size: 13px;
    }

    .ad-feature,
    .ad-panel {
        padding: 20px;
    }

    .ad-head p {
        font-size: 15.5px;
    }

    .ad-btn-ghost {
        font-size: 16px;
    }

    .ad-all {
        min-height: 120px;
    }
}

/* Phones: everything single column, tighter step and crew rows */
@media (max-width: 575px) {
    .ad-features,
    .ad-connect,
    .ad-guard ul,
    .ad-flow,
    .ad-crew {
        grid-template-columns: 1fr;
    }

    .ad-actions > * {
        flex: 1 1 0;
        justify-content: center;
        padding: 0 16px;
    }

    .ad-flow {
        gap: 10px;
    }

    .ad-flow li {
        padding: 16px 18px;
    }

    .ad-crew {
        gap: 8px;
    }

    .ad-crew li {
        display: flex;
        gap: 10px;
        align-items: baseline;
        padding: 12px 16px;
        border-top-width: 1px;
        border-left: 3px solid var(--ag-accent);
    }

    .ad-crew strong {
        flex: 0 0 92px;
    }

    .ad-crew span {
        margin-top: 0;
    }

    .ad-guard ul {
        gap: 18px;
    }
}

/* Phones: listing cards and hiring steps go to one column (two columns hold down to 576px) */
@media (max-width: 575px) {
    .ag-grid,
    .ag-steps {
        grid-template-columns: 1fr;
    }

    .ag-actions .ag-hire {
        flex: 1 1 auto;
        justify-content: center;
    }
}
