/*
 * Partnership builder blocks (inc/partnerships, template-parts/blocks/pg-partnerships/partnership-*).
 * Loaded only on pages that use the blocks. Built on the theme tokens in
 * foundations/ so it matches the rest of the site; patterns follow the 2027
 * sales brochures (green prices and eyebrows, chevron bullets, tier cards).
 */

/* || Shared */
[class*="partnerships__"][hidden] {
    display: none !important;
}

.partnerships__sr {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.partnerships__icon {
    display: inline-flex;
    flex: 0 0 auto;
    line-height: 0;
}

.partnerships__icon svg {
    width: 24px;
    height: 24px;
}

.partnerships__icon svg path {
    fill: currentColor;
}

.partnerships__journey,
.partnerships__paths,
.partnerships__options,
.partnerships__comparison,
.partnerships__callout-block,
.partnerships__plan {
    padding: var(--spacing-9xl) 0;
    color: var(--noninteractive-text-secondary);
}

.partnerships__callout-block {
    padding: var(--spacing-5xl) 0;
}

.partnerships__section-inner {
    grid-column: 1 / -1;
    min-width: 0;
}

.partnerships__head {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
    max-width: 880px;
    margin-bottom: var(--spacing-6xl);
}

.partnerships__eyebrow {
    color: var(--green-500);
    letter-spacing: var(--letter-spacing-2xl);
}

.partnerships__intro {
    max-width: 720px;
}

.partnerships__empty {
    padding: var(--spacing-2xl) 0;
}

.partnerships__journey__toggle:focus-visible,
.partnerships__tabs__tab:focus-visible,
.partnerships__tabs__panel:focus-visible,
.partnerships__plan__remove:focus-visible,
.partnerships__linkbutton:focus-visible,
.partnerships__row__details summary:focus-visible,
.partnerships__table-scroll:focus-visible,
.partnerships__success:focus-visible,
.partnerships__heading:focus-visible,
.partnerships__select:focus-visible,
.partnerships__qty:focus-visible {
    outline: 2px solid var(--green-500);
    outline-offset: 2px;
}

.partnerships__heading:focus {
    outline: none;
}

/* || Journey */
.partnerships__journey__stages {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(var(--pp-stage-count, 4), minmax(0, 1fr));
    column-gap: var(--spacing-5xl);
}

.partnerships__journey__stage {
    display: contents;
}

.partnerships__journey__toggle {
    grid-row: 1;
    appearance: none;
    background: none;
    border: 0;
    border-top: 1px solid var(--neutral-700);
    color: var(--neutral-25);
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--spacing-md);
    padding: var(--spacing-2xl) 0;
    position: relative;
    text-align: left;
}

.partnerships__journey__toggle::before {
    content: '';
    position: absolute;
    top: -1px;
    left: 0;
    width: 0;
    height: 3px;
    background: var(--green-500);
    transition: width 0.3s cubic-bezier(0.293, 0.74, 0.248, 0.991);
}

.partnerships__journey__stage.is-open .partnerships__journey__toggle::before {
    width: 100%;
}

.partnerships__journey__num {
    font-family: var(--font-family-eyebrow);
    font-size: clamp(56px, 6.5vw, 100px);
    font-weight: var(--font-weight-regular);
    line-height: 1;
    color: var(--green-50);
    transition: opacity 0.2s ease;
}

.partnerships__journey__stage:nth-child(2) .partnerships__journey__num { color: var(--green-200); }
.partnerships__journey__stage:nth-child(3) .partnerships__journey__num { color: var(--green-400); }
.partnerships__journey__stage:nth-child(4) .partnerships__journey__num { color: var(--green-500); }

.partnerships__journey__stage:not(.is-open) .partnerships__journey__num {
    opacity: 0.55;
}

.partnerships__journey__toggle:hover .partnerships__journey__num {
    opacity: 1;
}

.partnerships__journey__title {
    font-family: var(--font-family-eyebrow);
    font-size: var(--desktop-font-size-xl);
    line-height: 1.25;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.partnerships__journey__toggle .partnerships__icon {
    display: none;
}

.partnerships__journey__panel {
    grid-row: 2;
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--spacing-2xl) var(--spacing-5xl);
    padding-top: var(--spacing-4xl);
}

.partnerships__journey__panel p {
    max-width: 760px;
}

.partnerships__journey__link {
    width: fit-content;
}

/* || Paths */
.partnerships__paths__cards {
    display: grid;
    grid-template-columns: repeat(var(--pp-card-count, 3), minmax(0, 1fr));
    gap: var(--spacing-2xl);
}

.partnerships__path {
    display: flex;
    flex-direction: column;
    padding: var(--spacing-5xl) var(--spacing-4xl);
    border: 1px solid var(--neutral-700);
    background: var(--neutral-900);
    transition: border-color 0.2s ease;
}

.bg-dark .partnerships__path {
    background: var(--neutral-1000);
}

.partnerships__path:hover {
    border-color: var(--green-500);
}

.partnerships__path__eyebrow {
    color: var(--green-500);
}

.partnerships__path__price {
    color: var(--green-500);
    font-size: var(--desktop-font-size-3xl);
    font-weight: var(--font-weight-semibold);
    line-height: 1.1;
}

/* Text grows to push the button and link to the bottom of the card. */
.partnerships__path__body {
    flex: 1 0 auto;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
}

.partnerships__path .partnerships__path__link {
    grid-column: auto;
    width: fit-content;
    margin-top: var(--spacing-lg);
}

.partnerships__path__brochure {
    margin-top: var(--spacing-md);
}

.partnerships__path__body + .partnerships__path__brochure {
    margin-top: var(--spacing-lg);
}

/* Side by side, the cards share three rows (text, button, link), so every
   button is level whether or not a link sits under it or wraps. */
@media (min-width: 1080px) {
    @supports (grid-template-rows: subgrid) {
        .partnerships__paths__cards {
            row-gap: 0;
        }

        .partnerships__path {
            display: grid;
            grid-row: span 3;
            grid-template-rows: subgrid;
            row-gap: 0;
        }

        .partnerships__path__body {
            grid-row: 1;
        }

        .partnerships__path .partnerships__path__link {
            grid-row: 2;
        }

        .partnerships__path__brochure {
            grid-row: 3;
            align-self: start;
        }
    }
}

/* || Brochure link (PDF, new tab) */
.partnerships__brochure {
    color: var(--green-500);
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2xs);
}

.partnerships__brochure .partnerships__icon svg {
    width: 16px;
    height: 16px;
}

/* || Group details */
.partnerships__group-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--spacing-xs) var(--spacing-2xl);
    margin: calc(var(--spacing-6xl) * -0.5) 0 var(--spacing-4xl);
}

.partnerships__tabs .partnerships__group-meta {
    margin-top: 0;
}

.partnerships__group-meta__brochure {
    color: var(--green-500);
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2xs);
}

.partnerships__group-meta__brochure .partnerships__icon svg {
    width: 16px;
    height: 16px;
}

/* || Pills and prices */
.partnerships__pills {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-xs);
}

.partnerships__pill {
    font-family: var(--font-family-eyebrow);
    font-size: var(--desktop-font-size-2xs);
    letter-spacing: 1px;
    line-height: 1;
    text-transform: uppercase;
    padding: 6px 10px;
    border-radius: var(--radius-full);
    white-space: nowrap;
}

.partnerships__pill--available {
    background: var(--green-500);
    color: var(--neutral-900);
}

.partnerships__pill--badge {
    border: 1px solid var(--green-500);
    color: var(--green-500);
}

.partnerships__pill--soldout {
    background: var(--neutral-700);
    color: var(--neutral-300);
}

.partnerships__price {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3xs);
}

.partnerships__price__amount {
    color: var(--green-500);
    font-weight: var(--font-weight-semibold);
    line-height: 1.1;
}

.partnerships__price--lg .partnerships__price__amount {
    font-size: var(--desktop-font-size-3xl);
}

.partnerships__price--md .partnerships__price__amount {
    font-size: var(--desktop-font-size-xl);
}

.partnerships__price__note {
    font-family: var(--font-family-eyebrow);
    font-size: var(--desktop-font-size-2xs);
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--neutral-400);
}

.partnerships__price__value {
    font-size: var(--desktop-font-size-sm);
    color: var(--neutral-300);
}

/* || Chevron bullets */
.partnerships__inclusions {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.partnerships__inclusions li {
    position: relative;
    padding-left: var(--spacing-3xl);
    font-size: var(--desktop-font-size-md);
    line-height: 1.45;
    color: var(--neutral-200);
}

.partnerships__inclusions li::before {
    content: '>';
    position: absolute;
    left: 0;
    top: 0;
    font-family: var(--font-family-eyebrow);
    color: var(--green-500);
}

/* || Tier cards */
.partnerships__tiers {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2xl);
}

.partnerships__tier {
    display: grid;
    grid-template-columns: minmax(260px, 5fr) minmax(0, 7fr);
    gap: var(--spacing-5xl);
    padding: var(--spacing-5xl);
    border: 1px solid var(--neutral-700);
    background: var(--neutral-900);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.bg-dark .partnerships__tier {
    background: var(--neutral-1000);
}

.partnerships__tier.is-selected {
    border-color: var(--green-500);
    box-shadow: inset 0 0 0 1px var(--green-500);
}

.partnerships__tier.is-soldout {
    opacity: 0.7;
}

.partnerships__tier__main {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--spacing-md);
}

.partnerships__tier__inclusions {
    border-left: 1px solid var(--neutral-700);
    padding-left: var(--spacing-5xl);
    align-self: center;
}

/* || Add to plan controls */
.partnerships__add {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--spacing-md);
    margin-top: var(--spacing-xs);
}

.partnerships__add__label {
    flex-basis: 100%;
    color: var(--neutral-300);
    margin-bottom: calc(var(--spacing-md) * -0.5);
}

.partnerships__select,
.partnerships__qty {
    height: var(--dimension-10);
    background-color: var(--interactive-surface-default-inverse);
    color: var(--neutral-25);
    border: 1px solid var(--neutral-700);
    border-radius: 0;
    font-family: var(--font-family-body);
    font-size: var(--desktop-font-size-sm);
    padding: 0 var(--spacing-md);
    max-width: 100%;
}

.partnerships__select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 40px;
    min-width: 220px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath d='M12 15.5 5.5 9l1.4-1.4L12 12.7l5.1-5.1L18.5 9z' fill='%23B4E817'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
}

.partnerships__select option {
    background: var(--neutral-900);
    color: var(--neutral-25);
}

.partnerships__qty {
    width: 96px;
}

.partnerships__add.needs-choice .partnerships__select {
    border: 2px solid var(--red-400);
}

.partnerships__add__button {
    grid-column: auto;
    width: auto;
}

.partnerships__add__button .partnerships__icon svg {
    width: 20px;
    height: 20px;
    transition: transform 0.2s ease;
}

.partnerships__add__button.is-selected {
    background-color: var(--green-500);
    color: var(--neutral-900);
}

.partnerships__add__button.is-selected svg path {
    fill: var(--neutral-900);
}

.partnerships__add__button.is-selected .partnerships__icon svg {
    transform: rotate(45deg);
}

/* || Price list */
.partnerships__list {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--neutral-700);
}

.partnerships__row {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(160px, 0.7fr) minmax(240px, 1fr);
    gap: var(--spacing-2xl);
    align-items: start;
    padding: var(--spacing-2xl) var(--spacing-lg);
    border-bottom: 1px solid var(--neutral-700);
    transition: box-shadow 0.2s ease, background-color 0.2s ease;
}

.partnerships__row.is-selected {
    box-shadow: inset 3px 0 0 var(--green-500);
    background-color: rgba(180, 232, 23, 0.05);
}

.partnerships__row.is-soldout {
    opacity: 0.7;
}

.partnerships__row__name {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2xs);
}

.partnerships__row__meta {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
    align-items: flex-start;
}

.partnerships__row__action .partnerships__add {
    justify-content: flex-end;
    margin-top: 0;
}

.partnerships__row__action .partnerships__add__label {
    text-align: right;
}

.partnerships__row__details {
    margin-top: var(--spacing-xs);
}

.partnerships__row__details summary {
    cursor: pointer;
    color: var(--green-500);
    width: fit-content;
    list-style: none;
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2xs);
}

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

.partnerships__row__details summary::after {
    content: '+';
    font-family: var(--font-family-eyebrow);
}

.partnerships__row__details[open] summary::after {
    content: '−';
}

.partnerships__row__details .partnerships__inclusions {
    margin-top: var(--spacing-md);
}

.partnerships__row__details .partnerships__inclusions li {
    font-size: var(--desktop-font-size-sm);
}

/* || Tabs */
.partnerships__tabs__list {
    display: flex;
    overflow-x: auto;
    border-bottom: 1px solid var(--neutral-700);
    margin-bottom: var(--spacing-4xl);
    scrollbar-width: none;
}

.partnerships__tabs__list::-webkit-scrollbar {
    display: none;
}

.partnerships__tabs__tab {
    appearance: none;
    background: none;
    border: 0;
    border-bottom: 3px solid transparent;
    color: var(--neutral-400);
    cursor: pointer;
    font-family: var(--font-family-body);
    font-size: var(--desktop-font-size-md);
    padding: var(--spacing-lg) var(--spacing-xl);
    white-space: nowrap;
    transition: color 0.2s ease, border-color 0.2s ease;
}

.partnerships__tabs__tab:hover {
    color: var(--neutral-25);
}

.partnerships__tabs__tab.is-active {
    color: var(--neutral-25);
    border-bottom-color: var(--green-500);
}

.partnerships__tabs__intro {
    max-width: 760px;
    margin-bottom: var(--spacing-lg);
}

/* || Callout */
.partnerships__callout {
    display: flex;
    gap: var(--spacing-xl);
    max-width: 980px;
    margin-top: var(--spacing-6xl);
    padding: var(--spacing-4xl);
    border-left: 3px solid var(--green-500);
    background: var(--neutral-900);
}

.bg-dark .partnerships__callout {
    background: var(--neutral-1000);
}

.partnerships__callout-block .partnerships__callout {
    margin-top: 0;
}

.partnerships__callout__chevron {
    font-family: var(--font-family-eyebrow);
    font-size: 40px;
    line-height: 1;
    color: var(--green-500);
}

.partnerships__callout__text {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
}

.partnerships__callout__body {
    color: var(--neutral-200);
}

.partnerships__callout__link {
    color: var(--green-500);
    margin-top: var(--spacing-xs);
}

.partnerships__callout--accent {
    background: var(--green-500) !important;
    border-left-color: var(--neutral-900);
}

.partnerships__callout--accent,
.partnerships__callout--accent .partnerships__callout__chevron,
.partnerships__callout--accent .partnerships__callout__body,
.partnerships__callout--accent .partnerships__callout__link {
    color: var(--neutral-900);
}

/* || Comparison table */
.partnerships__table-scroll {
    position: relative; /* contains the absolutely positioned screen-reader labels */
    overflow-x: auto;
    border: 1px solid var(--neutral-700);
    --pp-surface: var(--neutral-1000);
}

.bg-dark .partnerships__table-scroll {
    --pp-surface: var(--neutral-900);
}

.partnerships__table {
    width: 100%;
    min-width: 680px;
    border-collapse: collapse;
    font-family: var(--font-family-body);
}

.partnerships__table th,
.partnerships__table td {
    padding: var(--spacing-md) var(--spacing-lg);
    text-align: left;
    vertical-align: top;
    font-size: var(--desktop-font-size-sm);
    line-height: 1.4;
    color: var(--neutral-25);
}

.partnerships__table thead th {
    background: var(--neutral-800);
    padding-top: var(--spacing-lg);
    padding-bottom: var(--spacing-lg);
    vertical-align: bottom;
}

.partnerships__table__name {
    display: block;
    font-size: var(--desktop-font-size-lg);
}

.partnerships__table__price {
    display: block;
    margin-top: var(--spacing-3xs);
    color: var(--green-500);
    font-weight: var(--font-weight-semibold);
}

.partnerships__table tbody th {
    position: sticky;
    left: 0;
    z-index: 1;
    background: var(--pp-surface);
    color: var(--neutral-200);
    font-weight: var(--font-weight-regular);
    min-width: 200px;
}

.partnerships__table tbody tr {
    background: var(--pp-surface);
}

.partnerships__table tbody tr:nth-child(odd),
.partnerships__table tbody tr:nth-child(odd) th {
    background: var(--neutral-900);
}

.bg-dark .partnerships__table tbody tr:nth-child(odd),
.bg-dark .partnerships__table tbody tr:nth-child(odd) th {
    background: var(--neutral-800);
}

.partnerships__table td .partnerships__icon {
    color: var(--green-500);
}

.partnerships__table__dash {
    color: var(--neutral-600);
}

.partnerships__footnote {
    margin-top: var(--spacing-lg);
}

/* || Plan */
.partnerships__deadline {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-lg) var(--spacing-xl);
    margin-bottom: var(--spacing-5xl);
    background: var(--green-500);
    color: var(--neutral-900);
}

.partnerships__plan__grid {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: var(--spacing-8xl);
    align-items: start;
}

.partnerships__plan__summary {
    position: sticky;
    top: 120px;
    padding: var(--spacing-4xl);
    border: 1px solid var(--neutral-700);
    background: var(--neutral-1000);
}

.bg-black .partnerships__plan__summary {
    background: var(--neutral-900);
}

.partnerships__plan__subhead {
    color: var(--green-500);
    margin-bottom: var(--spacing-xl);
    letter-spacing: var(--letter-spacing-2xl);
}

.partnerships__plan__list,
.partnerships__plan__list ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.partnerships__plan__group + .partnerships__plan__group {
    margin-top: var(--spacing-xl);
}

.partnerships__plan__group-label {
    color: var(--neutral-400);
    margin-bottom: var(--spacing-2xs);
}

.partnerships__plan__item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: var(--spacing-md);
    align-items: center;
    padding: var(--spacing-md) 0;
    border-bottom: 1px solid var(--neutral-800);
}

.partnerships__plan__item-main {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
    min-width: 0;
}

.partnerships__plan__item-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-xs);
}

.partnerships__plan__item-price {
    color: var(--green-500);
    font-weight: var(--font-weight-semibold);
    white-space: nowrap;
}

.partnerships__plan__qty {
    color: var(--neutral-400);
}

.partnerships__select--sm,
.partnerships__qty--sm {
    height: 32px;
    font-size: var(--desktop-font-size-xs);
}

.partnerships__select--sm {
    min-width: 0;
    width: 100%;
    max-width: 260px;
}

.partnerships__qty--sm {
    width: 72px;
}

.partnerships__plan__remove {
    appearance: none;
    width: 32px;
    height: 32px;
    display: inline-grid;
    place-items: center;
    background: none;
    border: 1px solid var(--neutral-600);
    color: var(--neutral-25);
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    transition: border-color 0.2s ease, color 0.2s ease;
}

.partnerships__plan__remove:hover {
    border-color: var(--green-500);
    color: var(--green-500);
}

.partnerships__plan__notices {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
    margin-top: var(--spacing-lg);
}

.partnerships__notice {
    padding: var(--spacing-sm) var(--spacing-md);
    border-left: 2px solid var(--green-500);
    background: rgba(180, 232, 23, 0.08);
    color: var(--neutral-200);
}

.partnerships__notice span {
    font-family: var(--font-family-eyebrow);
    color: var(--green-500);
}

.partnerships__plan__total {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3xs);
    margin-top: var(--spacing-2xl);
    padding-top: var(--spacing-lg);
    border-top: 2px solid var(--neutral-25);
}

.partnerships__plan__total__amount {
    color: var(--green-500);
    font-size: var(--desktop-font-size-3xl);
    font-weight: var(--font-weight-semibold);
    line-height: 1.1;
}

.partnerships__plan__disclaimer {
    margin-top: var(--spacing-xs);
}

.partnerships__plan__tools {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-xl);
    margin-top: var(--spacing-xl);
}

.partnerships__linkbutton {
    appearance: none;
    background: none;
    border: 0;
    padding: 0;
    color: var(--neutral-300);
    font-family: var(--font-family-body);
    font-size: var(--desktop-font-size-sm);
}

/* || Form (matches the site's newsletter form fields) */
.partnerships__form {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2xl);
}

.partnerships__form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing-xl) var(--spacing-2xl);
}

.partnerships__field {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
}

.partnerships__form .text-input-field__wrapper .label-md,
.partnerships__fieldset legend {
    color: var(--neutral-300);
}

.partnerships__form .text-input-field,
.partnerships__textarea {
    background-color: var(--interactive-surface-default-inverse);
    color: var(--interactive-label-default-default);
    border: 1px solid transparent;
}

.partnerships__textarea {
    width: 100%;
    box-sizing: border-box;
    min-height: 96px;
    padding: var(--spacing-md) var(--spacing-lg);
    font-family: var(--font-family-body);
    font-size: var(--desktop-font-size-md);
    letter-spacing: var(--letter-spacing-lg);
    border-radius: 0;
    resize: vertical;
}

.partnerships__textarea:focus,
.partnerships__textarea:focus-visible {
    outline: none;
    border: 3px solid var(--interactive-border-accent-default);
    padding: 11px 14px;
}

/* The theme turns :invalid fields red on load; only flag fields after a submit attempt. */
.partnerships__form .text-input-field:invalid {
    border: 1px solid transparent;
    color: var(--interactive-label-default-default);
}

.partnerships__form .text-input-field.invalid {
    border: 2px solid var(--red-400);
}

.partnerships__form .text-input-field:focus,
.partnerships__form .text-input-field:focus-visible {
    border: 3px solid var(--interactive-border-accent-default);
}

.partnerships__field__error {
    color: var(--red-300);
}

.partnerships__fieldset {
    border: 0;
    margin: 0;
    padding: 0;
    min-width: 0;
}

.partnerships__fieldset legend {
    padding: 0;
    margin-bottom: var(--spacing-md);
}

.partnerships__checks {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-md) var(--spacing-2xl);
}

.partnerships__check {
    position: relative;
    display: inline-flex;
    align-items: flex-start;
    gap: var(--spacing-md);
    cursor: pointer;
    color: var(--neutral-200);
}

.partnerships__check input {
    position: absolute;
    opacity: 0;
    width: 20px;
    height: 20px;
    margin: 0;
}

.partnerships__check__box {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    border: 2px solid var(--neutral-400);
    position: relative;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.partnerships__check input:checked + .partnerships__check__box {
    background: var(--green-500);
    border-color: var(--green-500);
}

.partnerships__check input:checked + .partnerships__check__box::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 1px;
    width: 5px;
    height: 10px;
    border: solid var(--neutral-900);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.partnerships__check input:focus-visible + .partnerships__check__box {
    outline: 2px solid var(--green-500);
    outline-offset: 2px;
}

.partnerships__field.invalid .partnerships__check__box {
    border-color: var(--red-400);
}

.partnerships__check--consent {
    max-width: 640px;
}

.partnerships__hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.partnerships__form__status {
    color: var(--green-500);
}

.partnerships__form__status.is-error {
    color: var(--red-300);
}

.partnerships__submit {
    width: fit-content;
}

/* Cloudflare Turnstile: invisible unless it needs a click, then it sits under the consent box. */
.partnerships__turnstile.is-visible {
    margin-top: var(--spacing-md);
}

.partnerships__success__reserved {
    max-width: 640px;
}

/* Live availability: an option fully reserved while the page is open. */
.partnerships__add__button[disabled] {
    cursor: not-allowed;
}

.partnerships__submit[disabled] {
    pointer-events: none;
}

.partnerships__backup a {
    color: var(--neutral-300);
}

.partnerships__success {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--spacing-lg);
    max-width: 760px;
    padding: var(--spacing-6xl);
    border: 1px solid var(--green-500);
}

.partnerships__success > .partnerships__icon {
    color: var(--green-500);
}

.partnerships__success > .partnerships__icon svg {
    width: 40px;
    height: 40px;
}

/* || Plan bar and toast (printed in wp_footer, outside .animate) */
.partnerships__planbar {
    position: fixed;
    left: var(--spacing-lg);
    right: var(--spacing-lg);
    bottom: calc(var(--spacing-lg) + var(--pp-bar-offset, 0px));
    z-index: 990;
    max-width: 1280px;
    margin: 0 auto;
    background: var(--neutral-1000);
    border: 1px solid var(--green-500);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5);
    animation: partnerships-rise 0.25s cubic-bezier(0.293, 0.74, 0.248, 0.991);
}

.partnerships__planbar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-lg);
    padding: var(--spacing-sm) var(--spacing-sm) var(--spacing-sm) var(--spacing-2xl);
}

.partnerships__planbar__summary {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: var(--spacing-2xs) var(--spacing-lg);
    color: var(--neutral-25);
}

.partnerships__planbar__label {
    color: var(--green-500);
    letter-spacing: var(--letter-spacing-2xl);
}

.partnerships__planbar__total {
    color: var(--green-500);
}

.partnerships__planbar__cta {
    grid-column: auto;
    width: auto;
}

body.partnerships-has-bar {
    padding-bottom: 88px;
}

.partnerships__toast {
    position: fixed;
    left: 50%;
    bottom: calc(100px + var(--pp-bar-offset, 0px));
    z-index: 991;
    max-width: calc(100% - 32px);
    padding: var(--spacing-md) var(--spacing-xl);
    background: var(--neutral-25);
    color: var(--neutral-900);
    font-family: var(--font-family-body);
    font-size: var(--desktop-font-size-sm);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 12px);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.partnerships__toast.is-visible {
    opacity: 1;
    transform: translate(-50%, 0);
}

@keyframes partnerships-rise {
    from { transform: translateY(16px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

/* || Lightbox-only blocks take no space on the page */
.partnerships__options--link {
    padding: 0 !important;
}

.partnerships__more {
    margin-top: var(--spacing-4xl);
}

.partnerships__more a {
    color: var(--green-500);
}

.partnerships__group-meta__links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-xs) var(--spacing-xl);
}

.partnerships__group-meta__link {
    color: var(--green-500);
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2xs);
}

.partnerships__group-meta__link .partnerships__icon svg {
    width: 16px;
    height: 16px;
}

/* || Summary card (levels open in a lightbox) */
.partnerships__summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-lg) var(--spacing-3xl);
    padding: var(--spacing-3xl) var(--spacing-4xl);
    border: 1px solid var(--neutral-700);
}

.partnerships__summary__from {
    color: var(--green-500);
    font-size: var(--desktop-font-size-2xl);
    font-weight: var(--font-weight-semibold);
}

.partnerships__summary__names {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-xs);
    flex: 1;
}

.partnerships__summary__names li {
    padding: 6px 12px;
    border: 1px solid var(--neutral-600);
    font-size: var(--desktop-font-size-sm);
    color: var(--neutral-200);
}

/* || A card per sub-group (events, membership)
 * Six-column grid: large cards take half a row, standard cards a third, so the
 * VU Summit and Membership sit side by side above the three regional conferences. */
.partnerships__launch {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: var(--spacing-4xl);
}

.partnerships__launch__card {
    grid-column: span 2;
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 1px solid var(--neutral-700);
    background: var(--neutral-900);
    transition: border-color 0.2s ease;
}

.partnerships__launch__card--large {
    grid-column: span 3;
}

.bg-dark .partnerships__launch__card {
    background: var(--neutral-1000);
}

.partnerships__launch__card:hover,
.partnerships__launch__card:focus-within {
    border-color: var(--green-500);
}

.partnerships__launch__card.is-featured {
    border-color: var(--green-500);
    box-shadow: inset 0 4px 0 var(--green-500);
    background: linear-gradient(180deg, rgba(180, 232, 23, 0.08) 0%, rgba(180, 232, 23, 0) 55%), var(--neutral-900);
}

.bg-dark .partnerships__launch__card.is-featured {
    background: linear-gradient(180deg, rgba(180, 232, 23, 0.08) 0%, rgba(180, 232, 23, 0) 55%), var(--neutral-1000);
}

.partnerships__launch__media {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--neutral-800);
}

.partnerships__launch__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.partnerships__launch__text {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
    padding: var(--spacing-4xl);
    flex: 1;
}

.partnerships__launch__card--large .partnerships__launch__text {
    gap: var(--spacing-md);
    padding: var(--spacing-5xl);
}

.partnerships__launch__eyebrow {
    color: var(--green-500);
}

.partnerships__launch__intro {
    max-width: 520px;
    margin-bottom: var(--spacing-2xs);
}

.partnerships__launch__summary {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: var(--spacing-xs) var(--spacing-md);
    margin: var(--spacing-md) 0 var(--spacing-xl);
}

.partnerships__launch__from {
    color: var(--green-500);
    font-size: var(--desktop-font-size-xl);
    font-weight: var(--font-weight-semibold);
}

.partnerships__launch__card--large .partnerships__launch__from {
    font-size: var(--desktop-font-size-2xl);
}

/* Full-width button so the label is always centered, however narrow the card. */
.partnerships__launch__open {
    margin-top: auto;
    width: 100%;
    justify-content: center;
}

/* || Lightbox (native <dialog>, rendered in the top layer above the nav and banners) */
html.partnerships-dialog-open {
    overflow: hidden;
}

.partnerships__dialog {
    width: min(1180px, calc(100vw - 48px));
    max-width: none;
    max-height: calc(100dvh - 48px);
    margin: auto;
    padding: 0;
    border: 1px solid var(--neutral-700);
    background: transparent;
    color: var(--neutral-25);
    overflow: hidden;
}

.partnerships__dialog[open] {
    display: flex;
    animation: partnerships-dialog-in 0.22s cubic-bezier(0.293, 0.74, 0.248, 0.991);
}

.partnerships__dialog::backdrop {
    background: rgba(0, 0, 0, 0.78);
}

.partnerships__dialog__panel {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-height: calc(100dvh - 48px);
}

.partnerships__dialog__close {
    position: absolute;
    top: var(--spacing-lg);
    right: var(--spacing-lg);
    z-index: 2;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    background: var(--neutral-1000);
    border: 1px solid var(--neutral-600);
    color: var(--neutral-25);
    cursor: pointer;
}

.partnerships__dialog__close:hover {
    border-color: var(--green-500);
    color: var(--green-500);
}

.partnerships__dialog__close:focus-visible {
    outline: 2px solid var(--green-500);
    outline-offset: 2px;
}

.partnerships__dialog__body {
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: var(--spacing-6xl) var(--spacing-6xl) var(--spacing-4xl);
}

.partnerships__dialog__body > .partnerships__head {
    padding-right: 56px;
    margin-bottom: var(--spacing-4xl);
}

/* Optional group image: full bleed across the top of the body, scrolls with it. */
.partnerships__dialog__media {
    margin: calc(var(--spacing-6xl) * -1) calc(var(--spacing-6xl) * -1) var(--spacing-5xl);
    background: var(--neutral-900);
}

.partnerships__dialog__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 1;
    max-height: 38vh;
    object-fit: cover;
}

.partnerships__dialog__body .partnerships__group-meta {
    margin-top: calc(var(--spacing-4xl) * -0.5);
}

.partnerships__dialog__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md) var(--spacing-2xl);
    padding: var(--spacing-lg) var(--spacing-6xl);
    border-top: 1px solid var(--neutral-700);
    background: var(--neutral-1000);
}

.partnerships__dialog__status {
    color: var(--neutral-300);
    min-height: 1.4em;
}

.partnerships__dialog__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-md) var(--spacing-2xl);
}

.partnerships__dialog__more {
    color: var(--green-500);
}

.partnerships__dialog__review {
    grid-column: auto;
    width: auto;
}

@keyframes partnerships-dialog-in {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

/* || One sheet: every option in a table with a checkbox, like the printed one-sheet */
.partnerships__sheet {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-6xl);
}

.partnerships__sheet__head {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2xs);
    margin-bottom: var(--spacing-md);
}

.partnerships__sheet__head p {
    margin: 0;
}

/* The theme sizes text on wrappers, not body, so the lightbox (moved to body) sets its own. */
.partnerships__sheet__table {
    width: 100%;
    border-collapse: collapse;
    border-top: 1px solid var(--neutral-600);
    font-size: var(--desktop-font-size-sm);
    line-height: 1.4;
}

.partnerships__sheet__table th,
.partnerships__sheet__table td {
    padding: var(--spacing-md) var(--spacing-lg) var(--spacing-md) 0;
    border-bottom: 1px solid var(--neutral-700);
    text-align: left;
    vertical-align: top;
    font-weight: var(--font-weight-regular);
}

.partnerships__sheet__table th:first-child {
    padding-left: var(--spacing-sm);
}

.partnerships__sheet__table thead th {
    padding-top: var(--spacing-sm);
    padding-bottom: var(--spacing-sm);
    color: var(--neutral-400);
    font-size: var(--desktop-font-size-xs);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.partnerships__sheet__level {
    width: 32%;
}

.partnerships__sheet__table--grid thead th:not(:first-child) {
    width: calc(68% / var(--pp-sheet-cols, 3));
}

.partnerships__sheet__table .partnerships__sheet__price {
    width: 15%;
    font-size: var(--desktop-font-size-md);
    white-space: nowrap;
    color: var(--green-500);
    font-weight: var(--font-weight-semibold);
}

.partnerships__sheet__price-note {
    display: block;
    color: var(--neutral-400);
    font-weight: var(--font-weight-regular);
    white-space: normal;
}

.partnerships__sheet__summary {
    color: var(--neutral-300);
}

.partnerships__sheet__row.is-selected,
.partnerships__sheet__pick.is-selected {
    background: color-mix(in srgb, var(--green-500) 10%, transparent);
}

.partnerships__sheet__row.is-soldout .partnerships__tick__text,
.partnerships__sheet__pick.is-soldout .partnerships__tick__text {
    color: var(--neutral-400);
    text-decoration: line-through;
}

/* Checkbox (not the plan form's .partnerships__check): square, Volt Green when ticked. */
.partnerships__tick {
    display: inline-flex;
    align-items: flex-start;
    gap: var(--spacing-sm);
    cursor: pointer;
    color: var(--neutral-25);
    font-size: var(--desktop-font-size-md);
    line-height: 1.35;
}

.partnerships__tick--info {
    cursor: default;
    padding-left: 28px;
}

.partnerships__tick:has(input:disabled) {
    cursor: not-allowed;
}

.partnerships__tick input {
    appearance: none;
    -webkit-appearance: none;
    flex: 0 0 auto;
    display: inline-grid;
    place-content: center;
    width: 20px;
    height: 20px;
    margin: 1px 0 0;
    border: 2px solid var(--neutral-400);
    border-radius: 0;
    background: transparent;
    cursor: pointer;
}

.partnerships__tick input::before {
    content: '';
    width: 10px;
    height: 5px;
    border: solid var(--neutral-1000);
    border-width: 0 0 2px 2px;
    transform: translateY(-1px) rotate(-45deg);
    opacity: 0;
}

.partnerships__tick input:hover:not(:disabled) {
    border-color: var(--green-500);
}

.partnerships__tick input:checked {
    background: var(--green-500);
    border-color: var(--green-500);
}

.partnerships__tick input:checked::before {
    opacity: 1;
}

.partnerships__tick input:focus-visible {
    outline: 2px solid var(--green-500);
    outline-offset: 2px;
}

.partnerships__tick input:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.partnerships__sheet__level .partnerships__tick__text {
    font-weight: var(--font-weight-medium);
}

.partnerships__sheet__table--grid .partnerships__sheet__level > .partnerships__tick__text {
    color: var(--neutral-25);
    font-size: var(--desktop-font-size-md);
}

/* Grid cells: the price is the checkbox's label. */
.partnerships__sheet__pick {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    margin: calc(var(--spacing-2xs) * -1) calc(var(--spacing-xs) * -1);
    padding: var(--spacing-2xs) var(--spacing-xs);
}

.partnerships__sheet__pick + .partnerships__sheet__pick {
    margin-top: var(--spacing-xs);
}

.partnerships__sheet__cell .partnerships__tick__text {
    color: var(--green-500);
    font-weight: var(--font-weight-semibold);
    white-space: nowrap;
}

.partnerships__sheet__alt,
.partnerships__sheet__flags {
    display: block;
    padding-left: 28px;
    color: var(--neutral-400);
}

.partnerships__sheet__flags {
    margin-top: 2px;
    font-size: var(--desktop-font-size-xs);
    color: var(--green-500);
}

.partnerships__sheet__flags.is-soldout {
    color: var(--red-400);
}

.partnerships__sheet__none {
    color: var(--neutral-600);
}

.partnerships__sheet__controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-xs) var(--spacing-sm);
    margin-top: var(--spacing-xs);
}

.partnerships__sheet__controls .partnerships__select--sm {
    width: auto;
    max-width: 100%;
}

.partnerships__sheet__qty-label {
    color: var(--neutral-400);
}

[data-pp-add].needs-choice .partnerships__select {
    border: 2px solid var(--red-400);
}

.partnerships__sheet__notes {
    list-style: none;
    margin: var(--spacing-md) 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

/* Running total in a one-sheet lightbox's footer. */
.partnerships__dialog__total {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--spacing-2xs) var(--spacing-md);
    margin: 0;
}

.partnerships__dialog__total-label,
.partnerships__dialog__total-count {
    color: var(--neutral-300);
}

.partnerships__dialog__total-amount {
    color: var(--green-500);
    font-size: var(--desktop-font-size-2xl);
    font-weight: var(--font-weight-semibold);
    line-height: 1.1;
}

.partnerships__dialog__total-amount:empty {
    display: none;
}

/* Phones: each row stacks; grid cells become "Asia ... [ ] US$18,000" lines. */
@media (max-width: 768px) {
    .partnerships__sheet__table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
    }

    .partnerships__sheet__table,
    .partnerships__sheet__table tbody,
    .partnerships__sheet__table th,
    .partnerships__sheet__table td {
        display: block;
        width: auto;
    }

    .partnerships__sheet__table th,
    .partnerships__sheet__table td,
    .partnerships__sheet__table th:first-child {
        padding: 0;
        border: 0;
    }

    .partnerships__sheet__row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: var(--spacing-2xs) var(--spacing-md);
        padding: var(--spacing-md) var(--spacing-xs);
        border-bottom: 1px solid var(--neutral-700);
    }

    .partnerships__sheet__table .partnerships__sheet__summary {
        grid-column: 1 / -1;
        padding-left: 28px;
    }

    .partnerships__sheet__table--grid .partnerships__sheet__row {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--spacing-xs);
    }

    .partnerships__sheet__table .partnerships__sheet__cell {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        gap: var(--spacing-md);
        padding-left: var(--spacing-md);
    }

    .partnerships__sheet__cell::before {
        content: attr(data-label);
        color: var(--neutral-300);
        font-size: var(--mobile-font-size-sm);
    }

    .partnerships__sheet__cell .partnerships__sheet__pick {
        align-items: flex-end;
        text-align: right;
    }

    .partnerships__tick {
        font-size: var(--mobile-font-size-md);
    }

    .partnerships__dialog__total-amount {
        font-size: var(--mobile-font-size-2xl);
    }
}

/* || Year timeline (plan section and review drawer) */
.partnerships__plan__grid > .partnerships__timeline {
    grid-column: 1 / -1;
}

.partnerships__timeline {
    min-width: 0;
}

.partnerships__drawer .partnerships__timeline {
    margin-top: var(--spacing-5xl);
}

.partnerships__timeline__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--spacing-xs) var(--spacing-2xl);
    margin-bottom: var(--spacing-md);
}

.partnerships__timeline__head .partnerships__plan__subhead {
    margin-bottom: 0;
}

.partnerships__timeline__grid {
    --pp-label-width: 240px;
}

.partnerships__timeline__months,
.partnerships__timeline__row {
    display: grid;
    grid-template-columns: var(--pp-label-width) minmax(0, 1fr);
    column-gap: var(--spacing-xl);
}

.partnerships__timeline__months {
    padding-bottom: var(--spacing-xs);
    border-bottom: 1px solid var(--neutral-700);
    color: var(--neutral-400);
    font-family: var(--font-family-eyebrow);
    font-size: 1.2rem;
    letter-spacing: var(--letter-spacing-2xl);
    text-transform: uppercase;
}

.partnerships__timeline__months-track {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    text-align: center;
}

.partnerships__timeline__month-short {
    display: none;
}

.partnerships__timeline__rows {
    list-style: none;
    margin: 0;
    padding: 0;
}

.partnerships__timeline__row {
    align-items: center;
    padding: var(--spacing-sm) 0;
    border-bottom: 1px solid var(--neutral-800);
}

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

.partnerships__timeline__name {
    overflow-wrap: anywhere;
}

/* Month lines are a hairline one step off the surface; the bar is the only loud mark. */
.partnerships__timeline__track {
    position: relative;
    height: 24px;
    background-image: repeating-linear-gradient(to right, var(--neutral-800) 0 1px, transparent 1px calc(100% / 12));
}

.partnerships__timeline__bar {
    position: absolute;
    top: 6px;
    left: var(--pp-start);
    width: max(calc(var(--pp-end) - var(--pp-start)), 10px);
    height: 12px;
    border: 2px solid var(--neutral-500);
    border-radius: 4px;
    background: transparent;
    transition: background-color 0.2s ease, border-color 0.2s ease;
}

.partnerships__timeline__row.is-approx .partnerships__timeline__bar {
    border-style: dashed;
}

.partnerships__timeline__row.is-lit .partnerships__timeline__bar {
    border-color: var(--green-500);
    background: var(--green-500);
}

.partnerships__timeline__row.is-lit.is-approx .partnerships__timeline__bar {
    background: rgba(180, 232, 23, 0.35);
}

/* || Review drawer: the plan in a side panel */
.partnerships__dialog--drawer {
    width: min(560px, 100vw);
    height: 100dvh;
    max-height: 100dvh;
    margin: 0 0 0 auto;
    border-width: 0 0 0 1px;
}

.partnerships__dialog--drawer[open] {
    animation-name: partnerships-drawer-in;
}

.partnerships__dialog--drawer .partnerships__dialog__panel {
    max-height: 100dvh;
    height: 100%;
}

.partnerships__dialog--drawer .partnerships__dialog__body {
    flex: 1 1 auto;
    padding: var(--spacing-5xl) var(--spacing-4xl) var(--spacing-4xl);
}

.partnerships__dialog--drawer .partnerships__dialog__foot {
    padding: var(--spacing-lg) var(--spacing-4xl);
}

.partnerships__drawer .partnerships__head {
    padding-right: 56px;
    margin-bottom: var(--spacing-3xl);
}

.partnerships__drawer {
    --pp-label-width: 100%;
}

.partnerships__drawer .partnerships__timeline__months,
.partnerships__drawer .partnerships__timeline__row {
    grid-template-columns: minmax(0, 1fr);
}

.partnerships__drawer .partnerships__timeline__months-spacer {
    display: none;
}

.partnerships__drawer .partnerships__timeline__row {
    row-gap: var(--spacing-xs);
}

@keyframes partnerships-drawer-in {
    from { opacity: 0; transform: translateX(32px); }
    to { opacity: 1; transform: translateX(0); }
}

/* || Partnership Impact: numbers, map, audience */
.partnerships__impact,
.partnerships__partners {
    padding: var(--spacing-9xl) 0;
    color: var(--noninteractive-text-secondary);
}

.partnerships__subheading {
    margin-bottom: var(--spacing-xl);
}

.partnerships__stats {
    display: grid;
    grid-template-columns: repeat(var(--pp-stat-cols, 4), minmax(0, 1fr));
    gap: var(--spacing-2xl);
    margin: 0 0 var(--spacing-8xl);
}

.partnerships__stats--1 { --pp-stat-cols: 1; }
.partnerships__stats--2 { --pp-stat-cols: 2; }
.partnerships__stats--3 { --pp-stat-cols: 3; }

.partnerships__stat {
    display: flex;
    flex-direction: column-reverse;
    justify-content: flex-end;
    gap: var(--spacing-xs);
    padding-top: var(--spacing-lg);
    border-top: 2px solid var(--green-500);
}

.partnerships__stat__value {
    margin: 0;
    font-size: var(--desktop-font-size-5xl);
    font-weight: var(--font-weight-semibold);
    line-height: 1;
}

.partnerships__stat__label {
    max-width: 28ch;
}

.partnerships__map {
    margin: 0 0 var(--spacing-8xl);
}

.partnerships__map__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--spacing-md) var(--spacing-3xl);
    margin-bottom: var(--spacing-xl);
}

.partnerships__map__head .partnerships__subheading {
    margin-bottom: 0;
}

.partnerships__map__legend {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-xs) var(--spacing-2xl);
    margin: 0;
    padding: 0;
    list-style: none;
}

.partnerships__map__legend li {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
}

.partnerships__map__key {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
}

/* Past: a hollow ring; upcoming: a filled dot. Shape backs up the color.
   Upcoming dots take each event's Map dot color (Partnerships › Events); the
   key shows every color in use. */
.partnerships__map__key--past {
    border: 2px solid var(--neutral-300);
}

.partnerships__map__key--next {
    background: var(--pp-key, var(--green-500));
}

.partnerships__map__frame {
    overflow-x: auto;
    overscroll-behavior-x: contain;
}

.partnerships__map__canvas {
    position: relative;
    min-width: 640px;
}

.partnerships__map__base {
    display: block;
    width: 100%;
    height: 100%;
}

.partnerships__map__dots {
    position: absolute;
    inset: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.partnerships__map__dot {
    position: absolute;
    width: 0;
    height: 0;
}

/* The hit area is larger than the dot, so small dots are easy to hover and tap.
   It is round, so its corners don't take the hover from a neighboring dot. */
.partnerships__map__hit {
    position: absolute;
    left: 50%;
    top: 50%;
    width: max(var(--pp-dot), 24px);
    height: max(var(--pp-dot), 24px);
    transform: translate(-50%, -50%);
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
}

.partnerships__map__hit::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: var(--pp-dot);
    height: var(--pp-dot);
    transform: translate(-50%, -50%);
    border-radius: 50%;
    box-shadow: 0 0 0 2px var(--neutral-1000);
}

.partnerships__map__dot--past .partnerships__map__hit::before {
    border: 2px solid var(--neutral-300);
    background: rgba(0, 0, 0, 0.35);
}

.partnerships__map__dot--next .partnerships__map__hit::before {
    background: var(--pp-dot-color, var(--green-500));
}

.partnerships__map__hit:hover::before,
.partnerships__map__hit:focus-visible::before {
    box-shadow: 0 0 0 2px var(--neutral-1000), 0 0 0 4px var(--neutral-25);
}

.partnerships__map__hit:focus-visible {
    outline: none;
}

.partnerships__map__tip {
    position: absolute;
    bottom: calc(var(--pp-dot) / 2 + 10px);
    left: 0;
    z-index: 3;
    display: none;
    flex-direction: column;
    gap: 2px;
    width: max-content;
    max-width: 260px;
    padding: var(--spacing-sm) var(--spacing-md);
    transform: translateX(-50%);
    border: 1px solid var(--neutral-600);
    background: var(--neutral-900);
    color: var(--neutral-300);
    pointer-events: none;
}

.partnerships__map__dot.is-left .partnerships__map__tip {
    transform: translateX(-16px);
}

.partnerships__map__dot.is-right .partnerships__map__tip {
    transform: translateX(calc(-100% + 16px));
}

/* Placed by the page script (above, below, or beside the dot) so the tooltip
   stays inside the visible map. Without the script, the rules above apply. */
.partnerships__map__dot.is-placed .partnerships__map__tip {
    top: var(--pp-tip-y);
    bottom: auto;
    left: var(--pp-tip-x);
    transform: none;
}

/* Shown for an instant, unseen, so the script can measure it. */
.partnerships__map__dot.is-measuring .partnerships__map__tip {
    display: flex;
    visibility: hidden;
}

.partnerships__map__hit:hover + .partnerships__map__tip,
.partnerships__map__hit:focus-visible + .partnerships__map__tip {
    display: flex;
}

.partnerships__map__dot:has(.partnerships__map__hit:hover),
.partnerships__map__dot:has(.partnerships__map__hit:focus-visible) {
    z-index: 4;
}

.partnerships__map__tip-action {
    color: var(--green-500);
}

.partnerships__map__tip-label {
    margin-top: var(--spacing-xs);
    font-weight: 600;
}

.partnerships__map__table .partnerships__sheet__table {
    width: 100%;
}

.partnerships__audience__charts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing-5xl) var(--spacing-8xl);
}

.partnerships__bars__title {
    margin-bottom: var(--spacing-lg);
    color: var(--green-500);
    letter-spacing: var(--letter-spacing-2xl);
}

.partnerships__bars__list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    margin: 0;
    padding: 0;
    list-style: none;
}

.partnerships__bars__row {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr) 4ch;
    align-items: center;
    gap: var(--spacing-md);
}

.partnerships__bars__track {
    position: relative;
    height: 16px;
}

/* Grows from the baseline; square at the start, 4px rounded at the data end.
   --pp-bar-color comes from Track Record › Audience. */
.partnerships__bars__fill {
    position: absolute;
    inset: 0 auto 0 0;
    width: max(var(--pp-bar), 2px);
    border-radius: 0 4px 4px 0;
    background: var(--pp-bar-color, var(--green-500));
}

.partnerships__bars__value {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.partnerships__audience__note {
    margin-top: var(--spacing-2xl);
}

/* || Past partners' logos */
.partnerships__logos {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-5xl);
}

.partnerships__logos__level {
    margin-bottom: var(--spacing-lg);
    color: var(--green-500);
    letter-spacing: var(--letter-spacing-2xl);
}

.partnerships__logos__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: var(--spacing-md);
    margin: 0;
    padding: 0;
    list-style: none;
}

.partnerships__logos__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-xs);
    min-height: 120px;
    padding: var(--spacing-xl);
    background: var(--neutral-25);
    text-align: center;
}

.partnerships__logos__item img {
    max-width: 100%;
    max-height: 64px;
    object-fit: contain;
    filter: grayscale(1);
    opacity: 0.85;
    transition: filter 0.2s ease, opacity 0.2s ease;
}

.partnerships__logos__item:hover img {
    filter: none;
    opacity: 1;
}

.partnerships__logos__item .partnerships__logos__name,
.partnerships__logos__item .partnerships__logos__meta {
    color: var(--neutral-700) !important;
}

@media (max-width: 1079px) {
    /* Two across, except three numbers, which stay in one row until phone width. */
    .partnerships__stats:not(.partnerships__stats--3) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .partnerships__audience__charts {
        grid-template-columns: minmax(0, 1fr);
    }

    .partnerships__timeline__grid {
        --pp-label-width: 180px;
    }
}

@media (max-width: 768px) {
    .partnerships__impact,
    .partnerships__partners {
        padding: var(--spacing-6xl) 0;
    }

    .partnerships__stats--3 {
        grid-template-columns: minmax(0, 1fr);
    }

    .partnerships__stat__value {
        font-size: var(--desktop-font-size-4xl);
    }

    .partnerships__timeline__grid {
        --pp-label-width: 100%;
    }

    .partnerships__timeline__months,
    .partnerships__timeline__row {
        grid-template-columns: minmax(0, 1fr);
        row-gap: var(--spacing-xs);
    }

    .partnerships__timeline__months-spacer {
        display: none;
    }

    .partnerships__timeline__month-long {
        display: none;
    }

    .partnerships__timeline__month-short {
        display: inline;
    }

    .partnerships__dialog--drawer .partnerships__dialog__body,
    .partnerships__dialog--drawer .partnerships__dialog__foot {
        padding-left: var(--spacing-xl);
        padding-right: var(--spacing-xl);
    }

    .partnerships__bars__row {
        grid-template-columns: minmax(0, 1fr) 4ch;
    }

    .partnerships__bars__label {
        grid-column: 1 / -1;
    }

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

@media (prefers-reduced-motion: reduce) {
    .partnerships__timeline__bar,
    .partnerships__logos__item img {
        transition: none;
    }
}

@media (forced-colors: active) {
    .partnerships__timeline__row.is-lit .partnerships__timeline__bar,
    .partnerships__bars__fill,
    .partnerships__map__key--next,
    .partnerships__map__dot--next .partnerships__map__hit::before {
        background: Highlight;
        border-color: Highlight;
    }
}

/* || Responsive (theme breakpoints: 1079px and 768px) */
@media (max-width: 1079px) {
    .partnerships__launch {
        gap: var(--spacing-2xl);
    }

    .partnerships__launch__text,
    .partnerships__launch__card--large .partnerships__launch__text {
        padding: var(--spacing-3xl);
    }

    .partnerships__journey__stages {
        grid-template-columns: 1fr;
    }

    .partnerships__journey__stage {
        display: block;
        border-top: 1px solid var(--neutral-700);
    }

    .partnerships__journey__stage:last-child {
        border-bottom: 1px solid var(--neutral-700);
    }

    .partnerships__journey__toggle {
        width: 100%;
        flex-direction: row;
        align-items: center;
        gap: var(--spacing-xl);
        border-top: 0;
        padding: var(--spacing-xl) 0;
    }

    .partnerships__journey__num {
        font-size: 48px;
        min-width: 64px;
    }

    .partnerships__journey__title {
        flex: 1;
        font-size: var(--desktop-font-size-lg);
    }

    .partnerships__journey__toggle .partnerships__icon {
        display: inline-flex;
        transition: transform 0.2s ease;
    }

    .partnerships__journey__stage.is-open .partnerships__journey__toggle .partnerships__icon {
        transform: rotate(180deg);
    }

    .partnerships__journey__panel {
        padding: 0 0 var(--spacing-2xl);
        flex-direction: column;
        align-items: flex-start;
    }

    .partnerships__paths__cards {
        grid-template-columns: 1fr;
    }

    .partnerships__tier {
        grid-template-columns: 1fr;
        gap: var(--spacing-2xl);
        padding: var(--spacing-3xl);
    }

    .partnerships__tier__inclusions {
        border-left: 0;
        border-top: 1px solid var(--neutral-700);
        padding: var(--spacing-2xl) 0 0;
    }

    .partnerships__row {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .partnerships__row__action {
        grid-column: 1 / -1;
    }

    .partnerships__row__action .partnerships__add {
        justify-content: flex-start;
    }

    .partnerships__row__action .partnerships__add__label {
        text-align: left;
    }

    .partnerships__plan__grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-5xl);
    }

    .partnerships__plan__summary {
        position: static;
    }
}

@media (max-width: 768px) {
    .partnerships__launch__card,
    .partnerships__launch__card--large {
        grid-column: 1 / -1;
    }

    .partnerships__dialog {
        inset: 0;
        margin: 0;
        width: 100%;
        height: 100%;
        max-height: 100%;
        border: 0;
    }

    .partnerships__dialog__panel {
        max-height: 100%;
        height: 100%;
    }

    .partnerships__dialog__body {
        padding: var(--spacing-5xl) var(--spacing-lg) var(--spacing-2xl);
        flex: 1;
    }

    .partnerships__dialog__media {
        margin: calc(var(--spacing-5xl) * -1) calc(var(--spacing-lg) * -1) var(--spacing-4xl);
    }

    .partnerships__dialog__image {
        aspect-ratio: 16 / 9;
    }

    .partnerships__dialog__close {
        top: var(--spacing-xs);
        right: var(--spacing-xs);
    }

    .partnerships__dialog__foot {
        padding: var(--spacing-md) var(--spacing-lg);
    }

    .partnerships__dialog__actions {
        width: 100%;
        justify-content: space-between;
    }

    .partnerships__summary {
        padding: var(--spacing-2xl);
    }

    .partnerships__journey,
    .partnerships__paths,
    .partnerships__options,
    .partnerships__comparison,
    .partnerships__plan {
        padding: var(--spacing-7xl) 0;
    }

    .partnerships__head {
        margin-bottom: var(--spacing-4xl);
    }

    .partnerships__price--lg .partnerships__price__amount,
    .partnerships__path__price,
    .partnerships__plan__total__amount {
        font-size: var(--mobile-font-size-3xl);
    }

    .partnerships__inclusions li {
        font-size: var(--mobile-font-size-md);
    }

    .partnerships__row {
        grid-template-columns: 1fr;
        padding-left: var(--spacing-md);
        padding-right: var(--spacing-md);
    }

    .partnerships__select {
        min-width: 0;
        width: 100%;
    }

    .partnerships__add .button-sm {
        grid-column: auto;
        width: 100%;
    }

    .partnerships__path,
    .partnerships__plan__summary,
    .partnerships__callout,
    .partnerships__success {
        padding: var(--spacing-2xl);
    }

    .partnerships__form__grid {
        grid-template-columns: 1fr;
    }

    .partnerships__submit,
    .partnerships__journey__link,
    .partnerships__path .partnerships__path__link {
        width: 100%;
    }

    .partnerships__planbar {
        left: var(--spacing-xs);
        right: var(--spacing-xs);
        bottom: calc(var(--spacing-xs) + var(--pp-bar-offset, 0px));
    }

    .partnerships__planbar__inner {
        padding-left: var(--spacing-lg);
    }

    .partnerships__planbar__label {
        display: none;
    }

    .partnerships__planbar__cta {
        width: auto !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .partnerships__journey__toggle::before,
    .partnerships__journey__num,
    .partnerships__tier,
    .partnerships__row,
    .partnerships__toast,
    .partnerships__add__button .partnerships__icon svg {
        transition: none;
    }

    .partnerships__planbar,
    .partnerships__dialog[open] {
        animation: none;
    }
}

/* || Print: "Print or save as PDF" prints the plan summary only */
@media print {
    body.partnerships-print-plan * {
        visibility: hidden;
    }

    body.partnerships-print-plan .partnerships__plan,
    body.partnerships-print-plan .partnerships__plan * {
        visibility: visible;
    }

    body.partnerships-print-plan .partnerships__plan {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        padding: 0;
        background: #FFFFFF !important;
    }

    body.partnerships-print-plan .partnerships__form,
    body.partnerships-print-plan .partnerships__plan__tools,
    body.partnerships-print-plan .partnerships__plan__remove,
    body.partnerships-print-plan .partnerships__plan__item-controls select,
    body.partnerships-print-plan .partnerships__intro {
        display: none !important;
    }

    body.partnerships-print-plan .partnerships__plan__grid {
        display: block;
    }

    body.partnerships-print-plan .partnerships__plan__summary {
        position: static;
        border: 0;
        padding: 0;
        background: #FFFFFF !important;
    }

    body.partnerships-print-plan .partnerships__plan *,
    body.partnerships-print-plan .partnerships__plan .inverse-text,
    body.partnerships-print-plan .partnerships__plan .tertiary-text {
        color: #171717 !important;
        border-color: #C5C5C5 !important;
    }

    .animate {
        opacity: 1 !important;
        transform: none !important;
    }

    .partnerships__planbar,
    .partnerships__toast,
    .partnerships__dialog,
    #cookie-notice {
        display: none !important;
    }
}
