/* Shared editorial page layouts. Typography stays in the utility layer. */
.section-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: var(--space-s);
    margin-bottom: var(--panel-padding);
}

.section-toolbar .section-heading {
    margin: 0;
}

.section-kicker {
    display: block;
    width: fit-content;
    margin-bottom: var(--panel-padding);
}

/* Decorative page/section titles that reuse .btn visuals. */
span.btn {
    cursor: default;
    pointer-events: none;
}

.event-intro-meta {
    display: grid;
    gap: var(--space-xxs);
}

.page-intro {
    margin-top: var(--space-m);
}

.page-intro__grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: var(--section-gap);
    align-items: end;
    margin-top: var(--section-gap);
}

.page-intro h1 {
    overflow-wrap: anywhere;
}

.prose {
    display: grid;
    gap: var(--space-s);
    justify-items: start;
}

.prose > * {
    max-width: var(--text-width);
}

.editorial-photo img {
    width: 100%;
    height: clamp(18rem, 45vw, 44rem);
    object-fit: cover;
    border-radius: var(--radius);
}

.event-cover img {
    height: clamp(18rem, 38vw, 36rem);
}

.editorial-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--grid-gap);
}

.statement-panel {
    background: var(--primary);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--space-xl);
    height: 100%;
    min-height: clamp(22rem, 36vw, 30rem);
    padding: clamp(1.25rem, 3vw, 3rem);
}

.statement-panel__top,
.statement-panel__bottom {
    display: grid;
    gap: var(--space-m);
    width: 100%;
}

.statement-panel--dark {
    background: var(--grey-dark);
}

.panel--media {
    position: relative;
    height: 100%;
    min-height: clamp(22rem, 36vw, 30rem);
    padding: 0;
    overflow: hidden;
}

.panel--media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.page-contact {
    margin-inline: var(--gutter);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-m);
    padding: var(--space-m);
}

.faq-layout {
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) minmax(0, 3fr);
    gap: var(--section-gap);
    align-items: start;
}

.faq-categories {
    position: sticky;
    top: calc(var(--header-height) + var(--space-m));
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-xs);
    max-width: 310px;
}

.faq-categories .btn {
    width: 100%;
    justify-content: flex-start;
}

.faq-groups {
    display: grid;
    gap: var(--section-gap);
}

.faq-group {
    scroll-margin-top: var(--space-xs);
}

.faq-group h2 {
    margin-bottom: var(--space-m);
}

.faq-answer p + p {
    margin-top: var(--space-s);
}

.faq-answer a {
    text-decoration: underline;
    text-underline-offset: .2em;
    overflow-wrap: anywhere;
}

.event-title a:hover {
    color: var(--white-muted);
}

.event-buy .grid-two {
    align-items: stretch;
}

.event-buy__aside {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.event-buy__artwork {
    display: block;
    width: 100%;
    flex-shrink: 0;
    border-radius: var(--radius) var(--radius) 0 0;
    overflow: hidden;
}

.event-buy__artwork img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 0;
}

.event-buy__panel {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: var(--space-m);
    background: var(--grey-dark);
    padding: var(--panel-padding);
    border-radius: 0 0 var(--radius) var(--radius);
    min-height: 0;
}

.event-buy__panel .event-lineup {
    margin-bottom: 0;
}

.event-buy__panel .event-extras {
    margin-bottom: 0;
}

.event-buy__tickets {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--grey-dark);
    border-radius: var(--radius);
    overflow: hidden;
    padding: var(--space-m);
}

.event-buy__tickets iframe {
    display: block;
    width: 100%;
    flex: 1 1 auto;
    min-height: clamp(28rem, 70vw, 44rem);
    border: 0;
    background: var(--white);
}

.event-info__col {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

@media (max-width: 900px) {
    .faq-layout {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-l);
    }

    .faq-categories {
        position: static;
        flex-direction: row;
        flex-wrap: wrap;
        gap: var(--space-xs);
    }
    .faq-categories {
        max-width: 100%;
    }

}

@media (max-width: 700px) {
    .page-intro__grid, .editorial-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-m);
    }

    .page-intro__grid {
        margin-top: var(--space-l);
    }

    .page-contact {
        align-items: flex-start;
        flex-direction: column;
        padding: var(--panel-padding);
    }

    .section-toolbar {
        flex-wrap: wrap;
    }

    .editorial-photo img {
        height: 22rem;
    }

    .statement-panel {
        gap: var(--space-l);
        min-height: 0;
    }

    .panel--media {
        min-height: 18rem;
    }

}


/* Blocks page and editorial two-column ACF block. */
.blocks-page__intro { margin-bottom: var(--section-gap); }
.blocks-page__intro-copy > * + * { margin-top: var(--space-s); }
.blocks-page__content > .section + .section { margin-top: var(--section-gap); }
.blocks-page__content > :not(.section) { margin-inline: var(--gutter); }
.blocks-page__content > .wp-block-columns { gap: var(--grid-gap); }
.blocks-page__content .wp-block-image img { max-width: 100%; height: auto; border-radius: var(--radius); }
.blocks-page__content > :is(p,h2,h3,h4,ul,ol,blockquote) { max-width: 70rem; margin-block: var(--space-m); }
.blocks-page__content > :is(ul,ol) { padding-left: 1.5rem; }
.hiv-two-columns__grid { align-items: stretch; }
.hiv-two-columns__text { min-width: 0; min-height: clamp(22rem, 34vw, 30rem); padding: clamp(1.5rem, 2.4vw, 3rem); border-radius: var(--radius); display: flex; flex-direction: column; justify-content: space-between; gap: var(--space-xl); }
.hiv-two-columns__text--accent { background: var(--primary); color: var(--white); }
.hiv-two-columns__text--dark { background: var(--grey-dark); color: var(--white); }
.hiv-two-columns__text--light { background: var(--paper); color: var(--black); }
.hiv-two-columns__text--light .hiv-two-columns__body, .hiv-two-columns__text--light .hiv-two-columns__eyebrow { color: var(--paper-muted); }
.hiv-two-columns__top, .hiv-two-columns__bottom { display: grid; justify-items: start; gap: var(--space-m); }
.hiv-two-columns__body { color: var(--white-muted); }
.hiv-two-columns__body > * + * { margin-top: var(--space-s); }
.hiv-two-columns__text--light .link { border-color: var(--line-on-light); }
.hiv-two-columns__image { min-height: clamp(22rem, 34vw, 30rem); }
.hiv-two-columns__text--flush { background: transparent; padding: 0; min-height: 0; }
.hiv-two-columns__text--flush.hiv-two-columns__text--light { color: var(--white); }
@media (max-width: 700px) {
  .hiv-two-columns__text { min-height: 18rem; gap: var(--space-l); }
  .hiv-two-columns__text--flush { gap: var(--space-m); }
}

/* Match the designer's t-m editorial body scale. */
.hiv-two-columns__body { font-size: clamp(1rem, 1.455vw, 1.375rem); line-height: 1.3; }
.hiv-two-columns__body :is(p,li) { font-size: inherit; line-height: inherit; }
.hiv-two-columns__body strong, .hiv-two-columns__body b { color: var(--white); font-weight: 700; }
.hiv-two-columns__text--light .hiv-two-columns__body strong,
.hiv-two-columns__text--light .hiv-two-columns__body b { color: var(--black); }
.hiv-two-columns__text--flush .hiv-two-columns__body { color: var(--grey); }
.hiv-two-columns__text--flush .hiv-two-columns__body strong,
.hiv-two-columns__text--flush .hiv-two-columns__body b { color: var(--white); }

/* Unboxed editorial columns: content starts at the top, unlike a panel card. */
.hiv-two-columns__text--flush { justify-content: flex-start; gap: var(--space-m); }
.hiv-two-columns__text--flush .hiv-two-columns__top:empty,
.hiv-two-columns__text--flush .hiv-two-columns__bottom:empty { display: none; }
.hiv-two-columns__text--flush .hiv-two-columns__body > p + p { margin-top: var(--space-s); }
.hiv-two-columns__text--flush .hiv-two-columns__body > p:not(:first-child) strong { color: var(--white); }

/* Default pages only: centered, readable editorial column. */
.page-default__inner {
    width: min(100% - 2 * var(--gutter), 900px);
    margin-inline: auto;
    padding-block: var(--section-gap);
}
.page-default__header { margin-bottom: var(--space-xl); }
.page-default__content > :not(.section) { margin-inline: 0; }
.page-default__content > :is(p,h2,h3,h4,ul,ol,blockquote) { max-width: 100%; }
.page-default__content > .section { margin-inline: 0; }

/* Emphasis in two-column body copy changes color, not font weight. */
.hiv-two-columns__body :is(strong, b) { font-weight: 400; }

/* Formidable press form (ID 3): use the site's visual language without
   affecting the ticket signup form or other Formidable instances. */
#frm_form_3_container,
#frm_form_3_container * {
    font-family: 'Circular XX', Arial, sans-serif;
}

#frm_form_3_container {
    color: var(--white);
}

#frm_form_3_container .frm_fields_container {
    min-width: 0;
}

#frm_form_3_container .frm_form_field:not(.frm_verify) {
    margin-bottom: var(--space-m);
}

#frm_form_3_container .frm_primary_label {
    display: block;
    margin-bottom: .5rem;
    color: var(--white) !important;
    font-size: clamp(.8125rem, 1.125vw, 1.0625rem) !important;
    font-weight: 700;
    line-height: 1.3;
}

#frm_form_3_container .frm_required {
    color: var(--white-muted) !important;
}

#frm_form_3_container .frm_form_field input:not([type='checkbox']):not([type='radio']):not([type='hidden']):not(.frm_verify),
#frm_form_3_container .frm_form_field select,
#frm_form_3_container .frm_form_field textarea {
    width: 100%;
    max-width: 100%;
    min-height: 3.25rem;
    padding: .75rem 1rem !important;
    border: 1px solid var(--line) !important;
    border-radius: var(--radius) !important;
    outline: 0;
    background: var(--surface-muted) !important;
    color: var(--white) !important;
    box-shadow: none !important;
    font-size: clamp(1rem, 1.455vw, 1.375rem) !important;
    line-height: 1.3;
    transition: border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);
}

#frm_form_3_container .frm_form_field select {
    cursor: pointer;
}

#frm_form_3_container .frm_form_field select option {
    background: var(--grey-dark);
    color: var(--white);
}

#frm_form_3_container .frm_form_field textarea {
    min-height: 9rem;
    resize: vertical;
}

#frm_form_3_container .frm_form_field input::placeholder,
#frm_form_3_container .frm_form_field textarea::placeholder {
    color: var(--grey);
    opacity: 1;
}

#frm_form_3_container .frm_form_field input:focus,
#frm_form_3_container .frm_form_field select:focus,
#frm_form_3_container .frm_form_field textarea:focus {
    border-color: var(--white) !important;
    box-shadow: 0 0 0 2px var(--primary) !important;
}

#frm_form_3_container .frm_combo_inputs_container {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-s);
}

#frm_form_3_container .frm_combo_inputs_container > .frm_form_field {
    width: 100% !important;
    min-width: 0;
    float: none !important;
    margin: 0 !important;
}

#frm_form_3_container .frm_description {
    margin-top: .5rem;
    color: var(--grey) !important;
    font-size: clamp(.8125rem, 1.125vw, 1.0625rem);
    line-height: 1.3;
}

#frm_form_3_container .frm_error,
#frm_form_3_container .frm_error_style {
    color: #ff8c9a !important;
    font-size: .875rem;
    font-weight: 700;
    line-height: 1.35;
}

#frm_form_3_container .frm_error_style {
    margin-bottom: var(--space-m);
    padding: var(--space-s);
    border: 1px solid currentColor;
    border-radius: var(--radius);
    background: rgba(176, 0, 32, .12);
}

#frm_form_3_container .frm_submit {
    margin-top: var(--space-m);
}

#frm_form_3_container .frm_button_submit {
    display: flex;
    width: 100% !important;
    align-items: center;
    justify-content: space-between;
    min-height: 0 !important;
    padding: .75rem calc(var(--space-s) * 1.5) !important;
    border: 0 !important;
    border-radius: var(--radius) !important;
    background: var(--primary) !important;
    color: var(--white) !important;
    box-shadow: none !important;
    cursor: pointer;
    font-size: clamp(1rem, 1.455vw, 1.375rem) !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    transition: background-color var(--duration) var(--ease);
}

#frm_form_3_container .frm_button_submit::after {
    content: '';
    width: .75em;
    height: .75em;
    flex: 0 0 auto;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M15.862 0V7.348L13.068 4.554L1.782 15.84L0 14.058L11.286 2.772L8.558 0H15.862Z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M15.862 0V7.348L13.068 4.554L1.782 15.84L0 14.058L11.286 2.772L8.558 0H15.862Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

#frm_form_3_container .frm_button_submit:hover,
#frm_form_3_container .frm_button_submit:focus-visible {
    background: var(--primary-hover) !important;
}

#frm_form_3_container .frm_button_submit:focus-visible {
    outline: 2px solid var(--white);
    outline-offset: 2px;
}

#frm_form_3_container .frm_message {
    padding: var(--space-m);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface-muted);
    color: var(--white);
}

@media (max-width: 700px) {
    #frm_form_3_container .frm_combo_inputs_container {
        grid-template-columns: minmax(0, 1fr);
    }
}
