/* =========================================================
   NSSF AMM REVAMPED
   CONSOLIDATED STYLESHEET
========================================================= */


/* =========================================================
   GLOBAL
========================================================= */

.amm-modern {
    --amm-blue: #005ca9;
    --amm-blue-bright: #0874c8;
    --amm-blue-deep: #003b70;
    --amm-blue-dark: #002f5f;

    --amm-green: #8cc63f;
    --amm-green-dark: #75aa2e;

    --amm-cyan: #31e4e4;

    --amm-text: #172b4d;
    --amm-muted: #667085;

    --amm-background: #f7f9fc;
    --amm-background-blue: #eef5fb;
    --amm-border: #e1e7ee;

    --amm-radius: 14px;
    --amm-radius-small: 7px;

    --amm-shadow:
        0 16px 45px rgba(0, 47, 95, .08);

    --amm-shadow-strong:
        0 20px 60px rgba(0, 0, 0, .18);

    width: 100%;

    color: var(--amm-text);

    background: #fff;
}


.amm-modern *,
.amm-modern *::before,
.amm-modern *::after {
    box-sizing: border-box;
}


.amm-modern img {
    display: block;
    max-width: 100%;
}


.amm-modern a {
    text-decoration: none;
}


.amm-modern .amm-container {
    width: min(
        1240px,
        calc(100% - 48px)
    );

    margin-inline: auto;
}


/*
 * Prevent fixed mobile navigation from covering
 * sections when View Agenda / Register is clicked.
 */

.amm-modern section[id] {
    scroll-margin-top: 90px;
}


/* =========================================================
   SHARED HEADINGS
========================================================= */

.amm-modern .amm-section-label {
    display: block;

    margin: 0 0 12px;

    color: var(--amm-blue);

    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;

    letter-spacing: .12em;
    text-transform: uppercase;
}


.amm-modern .amm-section-heading {
    margin: 0 0 48px;
}


.amm-modern .amm-section-heading h2 {
    margin: 0;

    color: var(--amm-blue-deep);

    font-size: clamp(
        30px,
        3vw,
        42px
    );

    font-weight: 700;
    line-height: 1.1;

    letter-spacing: -.025em;
}


/* =========================================================
   BUTTONS
========================================================= */

.amm-modern .amm-btn {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 18px;

    min-height: 54px;

    padding: 0 23px;

    border: 1px solid transparent;
    border-radius: var(--amm-radius-small);

    font-size: 14px;
    font-weight: 700;
    line-height: 1;

    text-decoration: none;

    cursor: pointer;

    transition:
        background .2s ease,
        border-color .2s ease,
        color .2s ease,
        transform .2s ease;
}


.amm-modern .amm-btn:hover {
    transform: translateY(-2px);
    text-decoration: none;
}


.amm-modern .amm-btn__arrow {
    font-size: 19px;
    font-weight: 400;
}


.amm-modern .amm-btn--primary {
    border-color: var(--amm-green);

    background: var(--amm-green);

    color: #fff;
}


.amm-modern .amm-btn--primary:hover {
    border-color: var(--amm-green-dark);

    background: var(--amm-green-dark);

    color: #fff;
}


.amm-modern .amm-btn--outline,
.amm-modern .amm-btn--secondary,
.amm-modern .amm-btn--calendar {
    border-color:
        rgba(255, 255, 255, .68);

    background: transparent;

    color: #fff;
}


.amm-modern .amm-btn--outline:hover,
.amm-modern .amm-btn--secondary:hover,
.amm-modern .amm-btn--calendar:hover {
    border-color: #fff;

    background:
        rgba(255, 255, 255, .12);

    color: #fff;
}


.amm-modern .amm-calendar-label-mobile {
    display: none;
}


/* =========================================================
   HERO
========================================================= */

.amm-modern .amm-hero--campaign {
    position: relative;

    min-height: 740px;

    overflow: hidden;

    background-color: #063bb6;

    background-image:
        var(--amm-hero-image);

    background-repeat: no-repeat;

    background-position:
        center center;

    background-size: cover;

    color: #fff;
}


.amm-modern .amm-hero__overlay {
    min-height: inherit;

    background:
        linear-gradient(
            90deg,
            rgba(0, 25, 90, .14) 0%,
            rgba(0, 35, 110, .06) 42%,
            rgba(0, 35, 110, 0) 70%
        );
}


.amm-modern
.amm-hero--campaign
.amm-container {
    position: relative;
    z-index: 2;
}


.amm-modern .amm-campaign-hero {
    display: flex;

    align-items: center;

    min-height: 740px;
}


.amm-modern
.amm-campaign-hero__content {
    width: min(620px, 50%);

    padding:
        72px
        0
        55px;
}


/* Hero title */

.amm-modern .amm-campaign-title {
    display: flex;

    flex-direction: column;

    align-items: flex-start;

    margin: 0 0 62px;
}


.amm-modern .amm-campaign-title span {
    display: inline-block;

    margin: 0 0 5px;

    padding:
        3px
        9px
        4px;

    background: #fff;

    color: #102b8c;

    font-size: clamp(
        27px,
        2.6vw,
        43px
    );

    font-weight: 700;
    line-height: 1.02;

    letter-spacing: -.025em;
}


/* Campaign strap */

.amm-modern .amm-campaign-message {
    display: inline-block;

    max-width: 100%;

    margin: 0 0 14px;

    padding:
        7px
        12px;

    border-radius: 2px;

    background: var(--amm-cyan);

    color: #102b8c;

    font-size: clamp(
        15px,
        1.3vw,
        20px
    );

    line-height: 1.3;
}


.amm-modern
.amm-campaign-message strong {
    font-weight: 700;
}


/* Event date */

.amm-modern .amm-campaign-date {
    display: flex;

    align-items: baseline;

    flex-wrap: wrap;

    gap: 5px 7px;

    margin: 0 0 9px;

    color: #fff;

    font-size: clamp(
        19px,
        1.9vw,
        28px
    );

    line-height: 1.15;
}


.amm-modern
.amm-campaign-date__prefix,
.amm-modern
.amm-campaign-date__starts {
    font-size: .66em;
    font-weight: 400;
}


.amm-modern
.amm-campaign-date strong {
    font-size: 1em;
    font-weight: 700;
}


.amm-modern
.amm-campaign-date sup {
    position: relative;

    top: -.35em;

    font-size: .45em;
}


/* Broadcast */

.amm-modern .amm-campaign-format {
    display: flex;

    align-items: baseline;

    flex-wrap: wrap;

    gap: 7px;

    color: #fff;
}


.amm-modern .amm-campaign-format span {
    font-size: 16px;
}


.amm-modern .amm-campaign-format strong {
    font-size: clamp(
        22px,
        2.05vw,
        31px
    );

    font-weight: 700;

    line-height: 1.1;
}


/* Hero actions */

.amm-modern .amm-campaign-actions {
    display: flex;

    flex-wrap: wrap;

    gap: 14px;

    margin-top: 42px;
}


.amm-modern
.amm-campaign-actions
.amm-btn {
    min-height: 56px;

    padding-inline: 24px;
}


.amm-modern .amm-campaign-hashtag {
    margin-top: 72px;

    color: #fff;

    font-size: 20px;
    font-weight: 600;

    line-height: 1.2;
}


/* =========================================================
   COUNTDOWN
========================================================= */

.amm-modern .amm-countdown {
    width: 100%;

    background:
        linear-gradient(
            110deg,
            #003878 0%,
            #003269 50%,
            #00428b 100%
        );

    color: #fff;
}


.amm-modern .amm-countdown__inner {
    display: flex;

    flex-direction: column;

    align-items: center;
    justify-content: center;

    gap: 24px;

    min-height: 200px;

    padding: 34px 0;
}


.amm-modern .amm-countdown__intro {
    text-align: center;
}


.amm-modern .amm-countdown__label {
    color: #fff;

    font-size: 14px;
    font-weight: 700;

    letter-spacing: .08em;
    text-transform: uppercase;
}


.amm-modern .amm-countdown__units {
    display: flex;

    align-items: stretch;
    justify-content: center;
}


.amm-modern .amm-countdown__unit {
    min-width: 145px;

    padding: 8px 38px;

    text-align: center;

    border-left:
        1px solid
        rgba(255, 255, 255, .20);
}


.amm-modern
.amm-countdown__unit:first-child {
    border-left: 0;
}


.amm-modern .amm-countdown__number {
    display: block;

    color: #fff;

    font-size: clamp(
        32px,
        3vw,
        45px
    );

    font-weight: 700;

    line-height: 1;
}


.amm-modern
.amm-countdown__unit span {
    display: block;

    margin-top: 10px;

    color:
        rgba(255, 255, 255, .68);

    font-size: 10px;
    font-weight: 700;

    letter-spacing: .09em;
    text-transform: uppercase;
}


/* =========================================================
   ABOUT
========================================================= */

.amm-modern .amm-about {
    padding: 100px 0;

    background: #fff;
}


.amm-modern .amm-about__grid {
    display: grid;

    grid-template-columns:
        .85fr
        1.35fr;

    gap: 80px;

    align-items: start;
}


.amm-modern .amm-about__intro h2 {
    margin: 0 0 28px;

    color: var(--amm-blue-deep);

    font-size: clamp(
        34px,
        3.8vw,
        50px
    );

    font-weight: 700;

    line-height: 1.08;

    letter-spacing: -.035em;
}


.amm-modern .amm-about__body {
    color: var(--amm-muted);

    font-size: 16px;

    line-height: 1.75;
}


.amm-modern .amm-about__body p {
    margin: 0 0 18px;
}


.amm-modern .amm-about__cards {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap: 18px;
}


.amm-modern .amm-about-card {
    padding: 30px;

    border:
        1px solid
        var(--amm-border);

    border-radius:
        var(--amm-radius);

    background: #fff;

    box-shadow:
        var(--amm-shadow);
}


.amm-modern .amm-about-card__icon {
    display: grid;

    place-items: center;

    width: 46px;
    height: 46px;

    margin-bottom: 24px;

    border-radius: 50%;

    background:
        var(--amm-background-blue);
}


.amm-modern
.amm-about-card__icon span {
    width: 12px;
    height: 12px;

    border-radius: 50%;

    background: var(--amm-green);
}


.amm-modern .amm-about-card h3 {
    margin: 0 0 12px;

    color: var(--amm-blue-deep);

    font-size: 18px;
    font-weight: 700;

    line-height: 1.3;
}


.amm-modern .amm-about-card__text {
    color: var(--amm-muted);

    font-size: 14px;

    line-height: 1.65;
}


.amm-modern
.amm-about-card__text p {
    margin: 0;
}


/* =========================================================
   AGENDA
========================================================= */

.amm-modern .amm-programme {
    padding: 90px 0;

    background: var(--amm-background);
}


.amm-modern .amm-agenda {
    width: 100%;
    max-width: 960px;
}


.amm-modern .amm-agenda__item {
    display: grid;

    grid-template-columns:
        120px
        42px
        minmax(0, 1fr);

    min-height: 92px;
}


.amm-modern .amm-agenda__time {
    padding-right: 20px;

    color: var(--amm-blue);

    font-size: 14px;
    font-weight: 700;

    line-height: 1.4;
}


.amm-modern .amm-agenda__marker {
    position: relative;
}


.amm-modern .amm-agenda__marker span {
    position: relative;

    z-index: 2;

    display: block;

    width: 14px;
    height: 14px;

    border: 3px solid #fff;
    border-radius: 50%;

    background: var(--amm-green);

    box-shadow:
        0 0 0 2px
        var(--amm-green);
}


.amm-modern
.amm-agenda__marker::after {
    content: "";

    position: absolute;

    top: 16px;
    bottom: 0;
    left: 6px;

    width: 2px;

    background: #d7e0e9;
}


.amm-modern
.amm-agenda__item:last-child
.amm-agenda__marker::after {
    display: none;
}


.amm-modern .amm-agenda__content {
    padding: 0 0 30px 4px;
}


.amm-modern
.amm-agenda__content h3 {
    margin: -4px 0 7px;

    color: var(--amm-text);

    font-size: 17px;
    font-weight: 700;

    line-height: 1.45;
}


.amm-modern .amm-agenda__speaker {
    margin: 0;

    color: var(--amm-muted);

    font-size: 14px;

    line-height: 1.5;
}


/* =========================================================
   SPEAKERS
========================================================= */

.amm-modern .amm-speakers {
    padding: 100px 0;

    background: #fff;
}


.amm-modern .amm-speakers__grid {
    display: grid;

    grid-template-columns:
        repeat(
            4,
            minmax(0, 1fr)
        );

    gap: 24px;
}


.amm-modern .amm-speaker-card {
    overflow: hidden;

    border:
        1px solid
        var(--amm-border);

    border-radius:
        var(--amm-radius);

    background: #fff;

    transition:
        transform .25s ease,
        box-shadow .25s ease;
}


.amm-modern .amm-speaker-card:hover {
    transform: translateY(-5px);

    box-shadow: var(--amm-shadow);
}


.amm-modern .amm-speaker-card__image {
    position: relative;

    overflow: hidden;

    aspect-ratio: 4 / 5;

    background: #edf1f5;
}


.amm-modern
.amm-speaker-card__image img {
    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;

    transition: transform .35s ease;
}


.amm-modern
.amm-speaker-card:hover
.amm-speaker-card__image img {
    transform: scale(1.025);
}


.amm-modern
.amm-speaker-card__content {
    padding: 22px;
}


.amm-modern
.amm-speaker-card__content h3 {
    margin: 0 0 7px;

    color: var(--amm-blue-deep);

    font-size: 18px;
    font-weight: 700;

    line-height: 1.35;
}


.amm-modern
.amm-speaker-card__content p {
    margin: 0;

    color: var(--amm-muted);

    font-size: 13px;

    line-height: 1.5;
}


/* =========================================================
   REGISTRATION
========================================================= */

.amm-modern .amm-registration {
    padding: 100px 0;

    background: var(--amm-blue-dark);

    color: #fff;
}


.amm-modern .amm-registration__grid {
    display: grid;

    grid-template-columns:
        .8fr
        1.2fr;

    gap: 80px;

    align-items: start;
}


.amm-modern
.amm-registration
.amm-section-label {
    color: var(--amm-green);
}


.amm-modern
.amm-registration__intro h2 {
    margin: 0 0 22px;

    color: #fff;

    font-size: clamp(
        34px,
        3.6vw,
        48px
    );

    font-weight: 700;

    line-height: 1.08;

    letter-spacing: -.03em;
}


.amm-modern .amm-registration__text {
    max-width: 470px;

    color:
        rgba(255, 255, 255, .76);

    font-size: 16px;

    line-height: 1.7;
}


.amm-modern
.amm-registration__text p {
    margin: 0;
}


/* Registration card */

.amm-modern
.amm-registration__form {
    padding: 38px;

    border-radius:
        var(--amm-radius);

    background: #fff;

    box-shadow:
        var(--amm-shadow-strong);
}


.amm-modern .amm-form-group {
    margin-bottom: 20px;
}


.amm-modern
.amm-form-group label {
    display: block;

    margin: 0 0 8px;

    color: var(--amm-text);

    font-size: 13px;
    font-weight: 700;
}


.amm-modern
.amm-form-group input,
.amm-modern
.amm-form-group select,
.amm-modern
.amm-form-group textarea {
    display: block;

    width: 100%;

    margin: 0;

    border:
        1px solid #d8dee7;

    border-radius:
        var(--amm-radius-small);

    background: #fff;

    color: var(--amm-text);

    font: inherit;

    box-shadow: none;

    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}


.amm-modern
.amm-form-group input,
.amm-modern
.amm-form-group select {
    min-height: 52px;

    padding: 0 15px;
}


.amm-modern
.amm-form-group textarea {
    min-height: 130px;

    padding: 14px 15px;

    resize: vertical;
}


.amm-modern
.amm-form-group input:focus,
.amm-modern
.amm-form-group select:focus,
.amm-modern
.amm-form-group textarea:focus {
    outline: none;

    border-color: var(--amm-blue);

    box-shadow:
        0 0 0 3px
        rgba(0, 92, 169, .12);
}


.amm-modern .amm-form-submit {
    width: 100%;

    border: 0;

    cursor: pointer;
}


/* =========================================================
   REGISTRATION SUCCESS
========================================================= */

.amm-modern
.amm-registration-success {
    display: flex;

    flex-direction: column;

    align-items: center;
    justify-content: center;

    min-height: 420px;

    padding: 44px 28px;

    text-align: center;

    color: var(--amm-text);

    animation:
        ammSuccessAppear
        .45s ease
        both;
}


.amm-modern
.amm-success-icon {
    width: 84px;
    height: 84px;

    margin:
        0
        auto
        24px;
}


.amm-modern
.amm-success-icon svg {
    display: block;

    width: 100%;
    height: 100%;
}


.amm-modern
.amm-success-circle {
    stroke: var(--amm-green);

    stroke-width: 3;

    stroke-dasharray: 151;

    stroke-dashoffset: 151;

    animation:
        ammCircleDraw
        .7s ease
        forwards;
}


.amm-modern
.amm-success-check {
    stroke: var(--amm-green);

    stroke-width: 4;

    stroke-linecap: round;
    stroke-linejoin: round;

    stroke-dasharray: 40;

    stroke-dashoffset: 40;

    animation:
        ammCheckDraw
        .45s
        .55s
        ease
        forwards;
}


.amm-modern
.amm-success-eyebrow {
    display: block;

    margin-bottom: 8px;

    color: var(--amm-green-dark);

    font-size: 11px;
    font-weight: 700;

    letter-spacing: .12em;

    text-transform: uppercase;
}


.amm-modern
.amm-registration-success h3 {
    margin: 0 0 14px;

    color: var(--amm-blue-deep);

    font-size: clamp(
        27px,
        3vw,
        36px
    );

    font-weight: 700;

    line-height: 1.1;
}


.amm-modern
.amm-registration-success p {
    max-width: 470px;

    margin: 0 auto;

    color: var(--amm-muted);

    font-size: 15px;

    line-height: 1.7;
}


.amm-modern
.amm-success-meta {
    margin-top: 22px;

    padding:
        10px
        16px;

    border-radius: 999px;

    background:
        var(--amm-background-blue);

    color: var(--amm-blue-deep);

    font-size: 12px;
    font-weight: 700;
}


.amm-modern
.amm-success-meta span {
    margin:
        0
        6px;

    color: var(--amm-green);
}


/* Error state */

.amm-modern
.amm-registration-error {
    display: flex;

    flex-direction: column;

    align-items: center;
    justify-content: center;

    min-height: 320px;

    padding: 40px 28px;

    text-align: center;

    color: var(--amm-text);
}


.amm-modern
.amm-error-icon {
    display: grid;

    place-items: center;

    width: 64px;
    height: 64px;

    margin-bottom: 20px;

    border-radius: 50%;

    background: #fff0f0;

    color: #c0392b;

    font-size: 28px;
    font-weight: 700;
}


.amm-modern
.amm-registration-error h3 {
    margin: 0 0 12px;

    color: var(--amm-blue-deep);

    font-size: 25px;
    font-weight: 700;
}


.amm-modern
.amm-registration-error p {
    max-width: 430px;

    margin: 0;

    color: var(--amm-muted);

    font-size: 14px;

    line-height: 1.65;
}


/* Success animations */

@keyframes ammCircleDraw {

    to {
        stroke-dashoffset: 0;
    }

}


@keyframes ammCheckDraw {

    to {
        stroke-dashoffset: 0;
    }

}


@keyframes ammSuccessAppear {

    from {
        opacity: 0;

        transform:
            translateY(10px)
            scale(.98);
    }

    to {
        opacity: 1;

        transform:
            translateY(0)
            scale(1);
    }

}


/* =========================================================
   SMALL DESKTOP
========================================================= */

@media (max-width: 1100px) {

    .amm-modern
    .amm-campaign-hero__content {
        width: 56%;
    }


    .amm-modern
    .amm-campaign-actions {
        gap: 10px;
    }


    .amm-modern
    .amm-campaign-actions
    .amm-btn {
        padding-inline: 18px;
    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 991px) {

    .amm-modern
    .amm-hero--campaign,
    .amm-modern
    .amm-campaign-hero {
        min-height: 680px;
    }


    .amm-modern
    .amm-campaign-hero__content {
        width: 60%;

        padding: 58px 0;
    }


    .amm-modern
    .amm-campaign-title {
        margin-bottom: 44px;
    }


    .amm-modern
    .amm-campaign-hashtag {
        margin-top: 52px;
    }


    .amm-modern
    .amm-countdown__unit {
        min-width: 125px;

        padding-inline: 25px;
    }


    .amm-modern
    .amm-about__grid {
        grid-template-columns: 1fr;

        gap: 50px;
    }


    .amm-modern
    .amm-speakers__grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }


    .amm-modern
    .amm-registration__grid {
        grid-template-columns: 1fr;

        gap: 45px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {

    .amm-modern section[id] {
        scroll-margin-top: 130px;
    }


    .amm-modern .amm-container {
        width:
            min(
                100% - 32px,
                1240px
            );
    }


    .amm-modern .amm-about,
    .amm-modern .amm-programme,
    .amm-modern .amm-speakers,
    .amm-modern .amm-registration {
        padding: 70px 0;
    }


    .amm-modern
    .amm-section-heading {
        margin-bottom: 38px;
    }


    .amm-modern
    .amm-section-heading h2 {
        font-size: 31px;
    }


    /* Mobile hero */

    .amm-modern
    .amm-hero--campaign {
        min-height: 760px;

        background-position:
            64% center;
    }


    .amm-modern
    .amm-hero__overlay {
        min-height: inherit;

        background:
            linear-gradient(
                180deg,
                rgba(0, 35, 115, .82) 0%,
                rgba(0, 45, 140, .57) 46%,
                rgba(0, 35, 115, .10) 100%
            );
    }


    .amm-modern
    .amm-campaign-hero {
        align-items: flex-start;

        min-height: 760px;
    }


    .amm-modern
    .amm-campaign-hero__content {
        width: 100%;

        padding:
            100px
            0
            42px;
    }


    .amm-modern
    .amm-campaign-title {
        margin-bottom: 32px;
    }


    .amm-modern
    .amm-campaign-title span {
        font-size:
            clamp(
                24px,
                8.5vw,
                34px
            );
    }


    .amm-modern
    .amm-campaign-message {
        max-width: 100%;

        padding:
            7px
            10px;

        font-size: 14px;
    }


    .amm-modern
    .amm-campaign-date {
        max-width: 360px;

        font-size: 20px;

        gap: 4px 6px;
    }


    .amm-modern
    .amm-campaign-format span {
        font-size: 13px;
    }


    .amm-modern
    .amm-campaign-format strong {
        font-size: 20px;
    }


    /* Mobile CTA hierarchy */

    .amm-modern
    .amm-campaign-actions {
        display: grid;

        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

        width: 100%;

        max-width: 390px;

        gap: 10px;

        margin-top: 30px;
    }


    .amm-modern
    .amm-campaign-actions
    .amm-btn--register {
        grid-column: 1 / -1;

        min-height: 55px;

        font-size: 15px;
    }


    .amm-modern
    .amm-campaign-actions
    .amm-btn--agenda,
    .amm-modern
    .amm-campaign-actions
    .amm-btn--calendar {
        min-height: 50px;

        padding-inline: 10px;

        gap: 8px;

        font-size: 12px;
    }


    .amm-modern
    .amm-calendar-label-desktop {
        display: none;
    }


    .amm-modern
    .amm-calendar-label-mobile {
        display: inline;
    }


    .amm-modern
    .amm-btn__arrow {
        font-size: 16px;
    }


    .amm-modern
    .amm-campaign-hashtag {
        margin-top: 24px;

        font-size: 16px;
    }


    /* Mobile countdown */

    .amm-modern
    .amm-countdown__inner {
        gap: 20px;

        min-height: 170px;

        padding: 28px 0;
    }


    .amm-modern
    .amm-countdown__label {
        font-size: 12px;
    }


    .amm-modern
    .amm-countdown__units {
        width: 100%;
    }


    .amm-modern
    .amm-countdown__unit {
        flex: 1;

        min-width: 0;

        padding: 5px 8px;
    }


    .amm-modern
    .amm-countdown__number {
        font-size: 27px;
    }


    .amm-modern
    .amm-countdown__unit span {
        margin-top: 7px;

        font-size: 8px;
    }


    /* Mobile About */

    .amm-modern
    .amm-about__grid {
        gap: 36px;
    }


    .amm-modern
    .amm-about__intro h2 {
        font-size: 34px;
    }


    .amm-modern
    .amm-about__cards {
        grid-template-columns: 1fr;
    }


    .amm-modern
    .amm-about-card {
        padding: 25px;
    }


    /* Mobile Agenda */

    .amm-modern
    .amm-agenda__item {
        grid-template-columns:
            75px
            28px
            minmax(0, 1fr);

        min-height: 88px;
    }


    .amm-modern
    .amm-agenda__time {
        padding-right: 8px;

        font-size: 11px;
    }


    .amm-modern
    .amm-agenda__content {
        padding-bottom: 26px;
    }


    .amm-modern
    .amm-agenda__content h3 {
        font-size: 15px;
    }


    .amm-modern
    .amm-agenda__speaker {
        font-size: 12px;
    }


    /* =====================================================
       MOBILE SPEAKERS — TWO PER ROW
    ===================================================== */

    .amm-modern
    .amm-speakers__grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

        gap: 14px;
    }


    .amm-modern
    .amm-speaker-card {
        border-radius: 10px;
    }


    .amm-modern
    .amm-speaker-card__content {
        padding: 14px;
    }


    .amm-modern
    .amm-speaker-card__content h3 {
        margin-bottom: 6px;

        font-size: 14px;

        line-height: 1.3;
    }


    .amm-modern
    .amm-speaker-card__content p {
        font-size: 10.5px;

        line-height: 1.4;
    }


    /* Mobile registration */

    .amm-modern
    .amm-registration__grid {
        gap: 34px;
    }


    .amm-modern
    .amm-registration__intro h2 {
        font-size: 34px;
    }


    .amm-modern
    .amm-registration__form {
        padding: 24px;
    }


    .amm-modern
    .amm-registration-success {
        min-height: 360px;

        padding: 34px 15px;
    }


    .amm-modern
    .amm-success-icon {
        width: 72px;
        height: 72px;
    }


    .amm-modern
    .amm-registration-success h3 {
        font-size: 28px;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    .amm-modern .amm-container {
        width:
            calc(100% - 28px);
    }


    .amm-modern
    .amm-hero--campaign,
    .amm-modern
    .amm-campaign-hero {
        min-height: 750px;
    }


    .amm-modern
    .amm-hero--campaign {
        background-position:
            66% center;
    }


    .amm-modern
    .amm-campaign-hero__content {
        padding:
            96px
            0
            38px;
    }


    .amm-modern
    .amm-campaign-title span {
        font-size: 26px;
    }


    .amm-modern
    .amm-campaign-message {
        font-size: 13px;
    }


    .amm-modern
    .amm-campaign-date {
        font-size: 18px;
    }


    .amm-modern
    .amm-campaign-format strong {
        font-size: 18px;
    }


    .amm-modern
    .amm-campaign-actions
    .amm-btn--agenda,
    .amm-modern
    .amm-campaign-actions
    .amm-btn--calendar {
        font-size: 11px;

        padding-inline: 7px;
    }


    .amm-modern
    .amm-campaign-hashtag {
        margin-top: 22px;
    }


    .amm-modern
    .amm-countdown__unit {
        padding-inline: 4px;
    }


    .amm-modern
    .amm-countdown__number {
        font-size: 23px;
    }


    .amm-modern
    .amm-countdown__unit span {
        font-size: 7px;
    }


    .amm-modern
    .amm-agenda__item {
        grid-template-columns:
            66px
            25px
            minmax(0, 1fr);
    }


    .amm-modern
    .amm-agenda__marker span {
        width: 12px;
        height: 12px;
    }


    .amm-modern
    .amm-agenda__marker::after {
        top: 14px;
        left: 5px;
    }


    .amm-modern
    .amm-registration__form {
        padding: 20px;
    }

}


/* =========================================================
   VERY NARROW PHONES
   Speakers return to one column only when necessary.
========================================================= */

@media (max-width: 390px) {

    .amm-modern
    .amm-speakers__grid {
        grid-template-columns: 1fr;
    }


    .amm-modern
    .amm-speaker-card__content {
        padding: 18px;
    }


    .amm-modern
    .amm-speaker-card__content h3 {
        font-size: 16px;
    }


    .amm-modern
    .amm-speaker-card__content p {
        font-size: 12px;
    }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

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

    .amm-modern *,
    .amm-modern *::before,
    .amm-modern *::after {
        transition-duration:
            .01ms !important;

        animation-duration:
            .01ms !important;

        animation-iteration-count:
            1 !important;
    }


    .amm-modern
    .amm-success-circle,
    .amm-modern
    .amm-success-check {
        stroke-dashoffset: 0;
    }

}