/* Subscription composition; all control/surface states are canonical UI Kit recipes. */
.cd-subscription-configurator { scroll-margin-top: var(--cd-space-8); }
.cd-subscription-configurator [hidden] { display: none; }
.cd-subscription-configurator form { display: grid; gap: var(--cd-space-6); }
.cd-subscription-configurator fieldset { min-width: 0; margin: 0; border: 0; }
.cd-subscription-configurator [data-choices], .cd-subscription-configurator [data-choices] fieldset { padding: 0; }
.cd-subscription-configurator legend { margin-bottom: var(--cd-space-3); font-weight: var(--cd-weight-semibold); }
.cd-subscription-configurator [data-choices] fieldset { margin-top: var(--cd-space-6); }
.cd-subscription-choices { display: flex; flex-wrap: wrap; gap: var(--cd-space-2); }
.cd-subscription-choices > .cd-pill { min-height: var(--cd-control-size); white-space: normal; gap: var(--cd-space-2); cursor: pointer; }
.cd-subscription-choices input { flex-shrink: 0; }
.cd-subscription-configurator [data-tier-help] { margin-top: var(--cd-space-3); }
.cd-subscription-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--cd-space-4); margin-block: var(--cd-space-4); }
.cd-subscription-fields label { display: block; margin-bottom: var(--cd-space-2); }
.cd-subscription-price { font-size: var(--cd-font-xl); line-height: var(--cd-line-height-heading); }
.cd-subscription-reference { overflow-wrap: anywhere; }
.cd-subscription-configurator [data-subscription-success] { max-width: var(--cd-container-narrow); }
.cd-subscription-configurator .cd-subscription-contact-link { margin-top: var(--cd-space-4); }
@media (max-width: 40rem) {
 .cd-subscription-fields { grid-template-columns: minmax(0,1fr); }
 .cd-subscription-choices { display: grid; grid-template-columns: minmax(0,1fr); }
 .cd-subscription-choices > .cd-pill { justify-content: flex-start; }
}

.cd-subscription-benefits { display: none; }

/* One DOM: selection/contact at left, the same summary at right on wide screens. */
.cd-subscription-configurator [data-choices]:not(:has([name="subscription_tier"])) fieldset { margin-top: 0; }
@media (min-width: 64.001rem) {
 .cd-subscription-benefits { display: grid; margin-top: var(--cd-space-6); }
 .cd-subscription-configurator form { grid-template-columns: minmax(0,1.6fr) minmax(0,1fr); align-items: start; }
 .cd-subscription-configurator [data-choices], .cd-subscription-configurator [data-contact] { grid-column: 1; grid-row: 1; }
 .cd-subscription-configurator [data-preview] { grid-column: 2; grid-row: 1; }
 .cd-subscription-configurator [data-preview] .cd-button { width: 100%; }
 .cd-subscription-configurator form:has([data-contact]:not([hidden])) [data-choices],
 .cd-subscription-configurator form:has([data-contact]:not([hidden])) [data-open] { display: none; }
 .cd-subscription-configurator [data-request-error] { grid-column: 1; }
 .cd-subscription-configurator [data-request-error]:empty { display: none; }
 .cd-subscription-configurator > [data-subscription-success] { margin-inline: auto; }
}

/* Custom amount uses the same inputs and surfaces; only field composition differs. */
.cd-subscription-custom-fields { display: grid; gap: var(--cd-space-6); }
.cd-subscription-custom-fields label { display: block; margin-bottom: var(--cd-space-2); }
.cd-subscription-custom-fields .cd-input { width: 100%; min-width: 0; }
.cd-subscription-configurator--custom .cd-subscription-price { overflow-wrap: anywhere; }
