/* contact opener — tall bottom-aligned intro with a soft corner glow */
.contact-opener {
    min-height: 80vh;
}

.contact-opener__glow {
    width: 60vw;
    height: 60vw;
    max-width: 52rem;
    max-height: 52rem;
    transform: translate(35%, -45%);
    filter: blur(120px);
}

.contact-opener__band {
    padding: 6rem 1.5rem 3rem;
}

@media (min-width: 1024px) {
    .contact-opener__band {
        padding: 8rem 15% 5rem;
    }
}

.contact-opener__inner {
    max-width: 56rem;
}

.contact-opener__tag {
    font-size: 0.75rem;
    line-height: 1rem;
    letter-spacing: 0.1em;
}

.contact-opener__title {
    font-size: 3rem;
    line-height: 0.9;
    letter-spacing: -0.05em;
}

@media (min-width: 768px) {
    .contact-opener__title {
        font-size: 4.5rem;
    }
}

@media (min-width: 1024px) {
    .contact-opener__title {
        font-size: 6rem;
    }
}

.contact-opener__lead {
    max-width: 42rem;
    font-size: 1.25rem;
    line-height: 1.625;
}

@media (min-width: 1024px) {
    .contact-opener__lead {
        font-size: 1.5rem;
    }
}

/* intake desk — protocol column + consultation request form */
.intake-desk__aside {
    padding: 2rem;
    border-style: solid;
    border-width: 0 0 1px 0;
}

@media (min-width: 1024px) {
    .intake-desk__aside {
        padding: 4rem;
        border-width: 0 1px 0 0;
    }

    .intake-desk__sticky {
        position: sticky;
        top: 8rem;
    }
}

.intake-desk__main {
    padding: 2rem;
}

@media (min-width: 1024px) {
    .intake-desk__main {
        padding: 4rem 5rem;
    }
}

.intake-desk__heading {
    letter-spacing: -0.025em;
}

.intake-desk__steps {
    list-style: none;
}

.intake-desk__step {
    border-left-width: 6px;
}

.intake-desk__small {
    font-size: 0.875rem;
}

.intake-desk__kicker {
    font-size: 0.75rem;
    line-height: 1rem;
    letter-spacing: 0.1em;
}

.intake-desk__caption {
    font-size: 0.75rem;
    line-height: 1.25;
}

.intake-desk__hq {
    margin-top: 5rem;
    padding-top: 2.5rem;
}

.intake-desk__form-wrap {
    max-width: 42rem;
}

.intake-desk__field {
    font-family: inherit;
    border-top-width: 0;
    border-left-width: 0;
    border-right-width: 0;
    border-bottom-width: 2px;
    border-style: solid;
    transition: background-color 150ms ease, border-color 150ms ease;
}

.intake-desk__field--select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 3rem;
    cursor: pointer;
}

.intake-desk__field--area {
    resize: none;
    min-height: 9rem;
}

.intake-desk__check {
    width: 1rem;
    height: 1rem;
    accent-color: currentColor;
    cursor: pointer;
}

.intake-desk__submit {
    appearance: none;
    -webkit-appearance: none;
    font-family: inherit;
    padding: 1.25rem 2.5rem;
    letter-spacing: -0.05em;
    cursor: pointer;
    transition: padding 200ms ease, background-color 150ms ease;
}

.intake-desk__submit:hover,
.intake-desk__submit:focus-visible {
    padding-right: 3.5rem;
}

.intake-desk__arrow {
    width: 0;
    overflow: hidden;
    transition: width 200ms ease;
}

.intake-desk__submit:hover .intake-desk__arrow,
.intake-desk__submit:focus-visible .intake-desk__arrow {
    width: 3rem;
}

@media (max-width: 1023.98px) {
    .intake-desk__submit {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .intake-desk__submit,
    .intake-desk__arrow,
    .intake-desk__field {
        transition: none;
    }
}

/* hub locator — dark band with copy column and a framed, darkened map */
.hub-locator__band {
    padding: 5rem 1.5rem;
}

.hub-locator__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 4rem;
}

@media (min-width: 1024px) {
    .hub-locator__band {
        padding: 8rem 15%;
    }

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

.hub-locator__copy {
    min-width: 0;
}

.hub-locator__title {
    font-size: 2.25rem;
    line-height: 1;
}

@media (min-width: 1024px) {
    .hub-locator__title {
        font-size: 3rem;
    }
}

.hub-locator__body {
    max-width: 28rem;
}

.hub-locator__rule {
    width: 2.5rem;
    height: 1px;
}

.hub-locator__kicker {
    font-size: 0.75rem;
    line-height: 1rem;
    letter-spacing: 0.1em;
}

.hub-locator__note {
    font-size: 0.875rem;
}

.hub-locator__frame {
    aspect-ratio: 1 / 1;
}

@media (min-width: 1024px) {
    .hub-locator__frame {
        aspect-ratio: 16 / 9;
    }
}

.hub-locator__map {
    width: 100%;
    height: 100%;
    border: 0;
    filter: grayscale(1) invert(1);
    opacity: 0.8;
}

.hub-locator__inset {
    border-width: 12px;
    border-style: solid;
}

/* session prep — bordered checklist card with an offset corner square */
.session-prep__band {
    padding-inline: 1.5rem;
}

@media (min-width: 1024px) {
    .session-prep__band {
        padding-inline: 15%;
    }
}

.session-prep {
    padding-block: 5rem;
}

.session-prep__card {
    max-width: 56rem;
    padding: 2rem;
}

@media (min-width: 1024px) {
    .session-prep__card {
        padding: 3rem;
    }
}

.session-prep__corner {
    width: 1.5rem;
    height: 1.5rem;
    transform: translate(-0.75rem, -0.75rem);
}

.session-prep__heading {
    font-size: 1.25rem;
    letter-spacing: -0.025em;
}

.session-prep__list {
    grid-template-columns: minmax(0, 1fr);
    column-gap: 3rem;
    row-gap: 1.5rem;
}

@media (min-width: 768px) {
    .session-prep__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.session-prep__small {
    font-size: 0.875rem;
}

.session-prep__foot {
    margin-top: 3rem;
    padding-top: 2rem;
}

.session-prep__note {
    max-width: 36rem;
    font-size: 0.75rem;
}

@media (max-width: 1023.98px) {
    .session-prep__note {
        margin-inline: auto;
    }
}

/* explore strip — label on the left, a row of underlined page links on the right */
.explore-strip__band {
    padding: 3rem 1.5rem;
    gap: 2rem;
}

@media (min-width: 1024px) {
    .explore-strip__band {
        padding-inline: 15%;
    }
}

.explore-strip__label {
    font-size: 0.875rem;
    letter-spacing: 0.1em;
}

.explore-strip__links {
    column-gap: 2rem;
    row-gap: 0.75rem;
}

.explore-strip__link {
    font-size: 0.875rem;
    transition: color 150ms ease, border-color 150ms ease;
}

.explore-strip__icon {
    font-size: 0.75rem;
    transition: transform 150ms ease;
}

.explore-strip__link:hover .explore-strip__icon,
.explore-strip__link:focus-visible .explore-strip__icon {
    transform: translateX(0.25rem);
}

@media (prefers-reduced-motion: reduce) {
    .explore-strip__link,
    .explore-strip__icon {
        transition: none;
    }
}

