/* Event-specific palette and layout. Loaded only for annual-meetup-2027. */
body.page-slug-annual-meetup-2027 {
    --meetup-forest: #073e35;
    --meetup-petrol: #123d3d;
    --meetup-lime: #d7fa27;
    --meetup-paper: #eef2ce;
    --meetup-pink: #f1b9c7;
    color: var(--meetup-paper);
    background: var(--meetup-forest);
}

.page-slug-annual-meetup-2027 #page.site {
    overflow: visible;
}

.page-slug-annual-meetup-2027 #page.site::before {
    content: none;
}

.page-slug-annual-meetup-2027 .site-header {
    background: var(--meetup-petrol);
    border-color: rgb(238 242 206 / 20%);
}

.page-slug-annual-meetup-2027 .site-header__inner,
.page-slug-annual-meetup-2027 .meetup-container {
    width: min(100%, 1360px);
    max-width: 1360px;
    margin-inline: auto;
    padding-inline: clamp(24px, 5.5vw, 80px);
}

.page-slug-annual-meetup-2027 .site-header__external {
    color: var(--meetup-paper);
    display: inline-flex;
    align-items: center;
    min-height: 44px;
}

.page-slug-annual-meetup-2027 .site-logo-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding-block: 6px;
}

.page-slug-annual-meetup-2027 .site-main {
    padding: 0;
    min-height: 0;
}

.page-slug-annual-meetup-2027 .meetup-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden; /* Only the decorative landscape is cropped. */
    background: radial-gradient(ellipse at 97% 105%, var(--meetup-pink) 0%, transparent 36%),
        radial-gradient(ellipse at 78% 100%, #a9c858 0%, transparent 42%),
        linear-gradient(125deg, var(--meetup-petrol), var(--meetup-forest));
}

.page-slug-annual-meetup-2027 .meetup-landscape {
    position: absolute;
    z-index: -1;
    right: -7%;
    top: -10%;
    width: 66%;
    height: 120%;
    pointer-events: none;
    mask-image: linear-gradient(90deg, transparent, #000 22%);
}

.page-slug-annual-meetup-2027 .meetup-hero__inner {
    position: relative;
    padding-block: 42px 38px;
}

.page-slug-annual-meetup-2027 .meetup-kicker {
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
    margin-bottom: 22px;
}

.page-slug-annual-meetup-2027 .meetup-hero h1 {
    color: var(--meetup-lime);
    font-size: clamp(3.5rem, 7.3vw, 6.75rem);
    line-height: .96;
    letter-spacing: -.055em;
    text-transform: uppercase;
    margin-bottom: 32px;
}

.page-slug-annual-meetup-2027 .meetup-hero h1 span {
    display: block;
}

.page-slug-annual-meetup-2027 .meetup-hero h1 .meetup-year {
    color: var(--meetup-paper);
}

.page-slug-annual-meetup-2027 .meetup-details {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 40px;
    margin-bottom: 22px;
    font-size: 1rem;
    line-height: 1.35;
}

.page-slug-annual-meetup-2027 .meetup-details p {
    margin: 0;
}

.page-slug-annual-meetup-2027 .meetup-details time {
    font-weight: 700;
}

.page-slug-annual-meetup-2027 .meetup-details span {
    display: block;
}

.page-slug-annual-meetup-2027 .meetup-anchor {
    color: var(--meetup-lime);
    display: inline-flex;
    align-items: center;
    gap: 24px;
    min-height: 44px;
    border-bottom: 1px solid currentColor;
    text-decoration: none;
}

.page-slug-annual-meetup-2027 .meetup-anchor span {
    font-size: 1.5em;
}

.page-slug-annual-meetup-2027 .meetup-interest {
    color: var(--meetup-forest);
    background: linear-gradient(115deg, var(--meetup-paper), #f7f6e8);
    scroll-margin-top: 24px;
}

.page-slug-annual-meetup-2027 .meetup-interest__inner {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: clamp(48px, 7vw, 100px);
    padding-block: 72px 88px;
}

.page-slug-annual-meetup-2027 .meetup-intro {
    max-width: 43ch;
}

.page-slug-annual-meetup-2027 .meetup-intro .meetup-kicker {
    margin-bottom: 16px;
}

.page-slug-annual-meetup-2027 .meetup-intro h2 {
    color: var(--meetup-forest);
    font-size: clamp(2rem, 3vw, 2.75rem);
    line-height: 1.1;
    letter-spacing: -.035em;
    margin-bottom: 28px;
}

.page-slug-annual-meetup-2027 .meetup-intro p {
    margin-bottom: 24px;
}

.page-slug-annual-meetup-2027 .meetup-intro strong {
    font-weight: 600;
}

.page-slug-annual-meetup-2027 .meetup-form {
    min-width: 0;
    border-top: 2px solid var(--meetup-forest);
    padding-top: 24px;
}

.page-slug-annual-meetup-2027 .meetup-form > p {
    font-size: .875rem;
    margin: 24px 0 0;
}

.page-slug-annual-meetup-2027 .meetup-form a {
    color: var(--meetup-forest) !important;
}

.page-slug-annual-meetup-2027 .gform_wrapper .gchoice label a,
.page-slug-annual-meetup-2027 .gform_wrapper .gfield a {
    color: var(--meetup-forest) !important;
}

/* Override the shared dark GF skin without touching GF's definition. */
.page-slug-annual-meetup-2027 .gform_wrapper {
    --gf-color-primary: #073e35;
    --gf-color-primary-rgb: 7, 62, 53;
    --gf-color-primary-contrast: #d7fa27;
    --gf-color-in-ctrl-contrast: #073e35;
    --gf-color-out-ctrl-dark: #073e35;
    --gf-color-out-ctrl-dark-rgb: 7, 62, 53;
    --gf-ctrl-label-color-primary: #073e35;
    --gf-ctrl-label-color-secondary: #36564b;
    --gf-color-danger: #942e3a;
    --gf-color-danger-rgb: 148, 46, 58;
}

.page-slug-annual-meetup-2027 .gform_wrapper :is(label, legend.gfield_label, .gfield_label, .gfield_required, .gfield_required_text) {
    color: var(--meetup-forest) !important;
}

.page-slug-annual-meetup-2027 .gform_wrapper .gfield_description {
    color: #36564b !important;
    line-height: 1.5;
}

.page-slug-annual-meetup-2027 .gform_wrapper :is(input[type="text"], input[type="email"], textarea, select) {
    color: var(--meetup-forest) !important;
    background: rgb(255 255 255 / 40%) !important;
    border: 1px solid #527165 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    min-height: 50px;
    width: 100% !important;
    max-inline-size: 40ch;
}

.page-slug-annual-meetup-2027 .gform_wrapper textarea {
    max-inline-size: 70ch !important;
    width: 100% !important;
    height: 160px !important;
    min-height: 136px !important;
}

.page-slug-annual-meetup-2027 .gform_wrapper input::placeholder,
.page-slug-annual-meetup-2027 .gform_wrapper textarea::placeholder {
    color: #527165 !important;
}

.page-slug-annual-meetup-2027 .gform_wrapper input[type="checkbox"] {
    border-color: #527165 !important;
    border-radius: 0 !important;
    background-color: rgb(255 255 255 / 40%) !important;
}

.page-slug-annual-meetup-2027 .gform_wrapper input[type="checkbox"]:checked {
    background-color: var(--meetup-lime) !important;
    border-color: var(--meetup-forest) !important;
}

.page-slug-annual-meetup-2027 .gform_wrapper .gchoice {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.page-slug-annual-meetup-2027 .gform_wrapper .gchoice label {
    max-width: none;
    line-height: 1.5;
    min-height: 44px;
}

.page-slug-annual-meetup-2027 .gform_wrapper :is(.gform_button, input[type="submit"]) {
    background: var(--meetup-forest) !important;
    color: var(--meetup-lime) !important;
    border-radius: 0 !important;
    min-height: 54px;
    min-width: 0 !important;
    max-width: 100%;
    padding: 16px 24px !important;
    white-space: normal !important;
    line-height: 1.5 !important;
    box-shadow: none !important;
    transform: none !important;
}

.page-slug-annual-meetup-2027 .gform_wrapper :is(.gform_button, input[type="submit"]):hover {
    background: var(--meetup-petrol) !important;
    color: var(--meetup-paper) !important;
}

.page-slug-annual-meetup-2027 :is(a, input, textarea, select, button):focus-visible {
    outline: 3px solid currentColor !important;
    outline-offset: 5px !important;
    box-shadow: none !important;
}

.page-slug-annual-meetup-2027 .meetup-interest :is(a, input, textarea, select, button):focus-visible {
    outline-color: var(--meetup-forest) !important;
}

.page-slug-annual-meetup-2027 .gform_wrapper :is(.gfield_validation_message, .validation_message) {
    color: #942e3a !important;
    background: #f9e5df !important;
    border-color: #942e3a !important;
    border-radius: 0 !important;
}

.page-slug-annual-meetup-2027 .gform_wrapper .gform_validation_errors {
    background: #f9e5df;
    border: 1px solid #942e3a;
    border-radius: 0;
    box-shadow: none;
}

.page-slug-annual-meetup-2027 .gform_wrapper .gform_validation_errors h2 {
    color: #942e3a;
    font-size: 1rem;
}

.page-slug-annual-meetup-2027 :is(.gform_confirmation_wrapper, .gform_confirmation_message),
.page-slug-annual-meetup-2027 .gform_confirmation_message :is(h2, h3, p, a) {
    color: var(--meetup-forest) !important;
}

.page-slug-annual-meetup-2027 .gform_confirmation_message h2 {
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    margin-bottom: 24px;
}

.page-slug-annual-meetup-2027 .site-footer {
    color: var(--meetup-paper);
    background: var(--meetup-forest);
    padding-block: 28px;
}

.page-slug-annual-meetup-2027 .site-footer__menu {
    flex-wrap: wrap;
}

.page-slug-annual-meetup-2027 .site-footer a {
    display: inline-block;
    min-width: 44px;
    min-height: 44px;
    color: var(--meetup-paper);
    padding-block: 10px;
}

.page-slug-annual-meetup-2027 .site-footer .site-info p {
    color: #c9d5b8;
}

@media (min-width: 1200px) {
    .page-slug-annual-meetup-2027 :is(#field_50_1, #field_50_2, #field_50_3, #field_50_4) {
        grid-column: span 6;
    }
}

@media (max-width: 800px) {
    .page-slug-annual-meetup-2027 .meetup-interest__inner {
        grid-template-columns: minmax(0, 1fr);
        gap: 32px;
        padding-block: 44px 56px;
    }

    .page-slug-annual-meetup-2027 .meetup-intro {
        max-width: 60ch;
    }

    .page-slug-annual-meetup-2027 .meetup-landscape {
        width: 90%;
        right: -33%;
        opacity: .5;
        mask-image: linear-gradient(90deg, transparent 10%, #000 60%);
    }
}

@media (max-width: 480px) {
    .page-slug-annual-meetup-2027 .meetup-hero__inner {
        padding-block: 36px 30px;
        min-height: 400px;
    }

    .page-slug-annual-meetup-2027 .meetup-hero h1 {
        font-size: clamp(2.875rem, 14.7vw, 3.75rem);
        margin-bottom: 26px;
    }

    .page-slug-annual-meetup-2027 .meetup-hero .meetup-kicker {
        margin-bottom: 24px;
    }

    .page-slug-annual-meetup-2027 .meetup-details {
        font-size: .875rem;
        gap: 16px 24px;
    }

    .page-slug-annual-meetup-2027 .meetup-hero {
        background: radial-gradient(ellipse at 115% 110%, rgb(241 185 199 / 65%), transparent 55%), var(--meetup-petrol);
    }

    .page-slug-annual-meetup-2027 .gform_wrapper :is(.gform_button, input[type="submit"]) {
        width: 100% !important;
        font-size: .875rem !important;
        padding-inline: 16px !important;
    }
}
