/* Below-the-fold styles for the UPVC window price page. */
.price-calculator,
.price-calculator__unavailable {
    border: 1px solid var(--color-border);
    border-radius: 18px;
    padding: clamp(20px, 3vw, 36px);
    background: #fff;
    box-shadow: var(--price-shadow);
}

.price-calculator__unavailable {
    max-width: 680px;
    margin-inline: auto;
    text-align: center;
}

.price-calculator__unavailable strong {
    display: block;
    font-size: 1rem;
    line-height: 1.8;
}

.price-calculator__unavailable p {
    margin: 8px 0 16px;
    color: var(--color-muted);
    font-size: .8rem;
    line-height: 1.9;
}

.price-calculator__unavailable a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--control-height);
    border-radius: var(--radius-button);
    padding: 8px 22px;
    color: #fff;
    background: var(--color-cta);
    font-size: .84rem;
    font-weight: 700;
}

.price-form__summary {
    margin-block-end: 16px;
    border-radius: 10px;
    color: var(--color-danger);
    background: rgba(232, 24, 32, .07);
    font-size: .75rem;
    line-height: 1.9;
}

.price-form__summary:not(:empty) {
    border: 1px solid rgba(232, 24, 32, .22);
    padding: 10px 14px;
}

.price-form__summary ul {
    margin: 0;
    padding-inline-start: 18px;
}

.price-types,
.price-specifications {
    min-width: 0;
    margin: 0;
    border: 0;
    padding: 0;
}

.price-types legend,
.price-specifications legend {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    margin-block-end: 18px;
    padding: 0;
    font-size: .92rem;
    font-weight: 700;
    line-height: 1.8;
}

.price-types legend > span,
.price-specifications legend > span {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    border-radius: 8px;
    padding: 3px 10px;
    color: #fff;
    background: var(--color-primary);
    font-size: .75rem;
    line-height: 1.5;
}

.price-types__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.price-type-card {
    position: relative;
    min-width: 0;
    cursor: pointer;
}

.price-type-card > input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.price-type-card__surface {
    display: grid;
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: #fff;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.price-type-card__surface img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    border-block-end: 1px solid var(--color-border);
    object-fit: contain;
    background: #fff;
}

.price-type-card__surface > span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 8px 10px;
    color: var(--color-primary);
    font-size: .75rem;
    font-weight: 600;
    line-height: 1.8;
    text-align: center;
}

.price-type-card:hover .price-type-card__surface {
    border-color: #b6bac9;
    transform: translateY(-1px);
}

.price-type-card > input:checked + .price-type-card__surface {
    border-color: var(--color-cta);
    box-shadow: 0 0 0 2px rgba(232, 24, 32, .12);
}

.price-type-card > input:checked + .price-type-card__surface > span {
    color: #fff;
    background: var(--color-cta);
}

.price-type-card > input:focus-visible + .price-type-card__surface {
    outline: 3px solid rgba(232, 24, 32, .3);
    outline-offset: 3px;
}

.price-types.is-collapsed .price-type-card:nth-child(n+9) {
    display: none;
}

.price-types__toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    margin: 18px auto 0;
    border: 1px solid var(--color-primary);
    border-radius: 9px;
    padding: 7px 18px;
    color: var(--color-primary);
    background: #fff;
    font: inherit;
    font-size: .75rem;
    font-weight: 700;
    line-height: 1.7;
    cursor: pointer;
}

.price-types__toggle:hover,
.price-types__toggle:focus-visible {
    color: #fff;
    background: var(--color-primary);
}

.price-types__selection {
    margin: 13px 0 0;
    border: 1px solid rgba(23, 29, 111, .12);
    border-radius: 9px;
    padding: 9px 11px;
    color: var(--color-muted);
    background: var(--color-surface-soft);
    font-size: .74rem;
    line-height: 1.8;
    text-align: center;
}

.price-types__selection strong {
    color: var(--color-primary);
}

.price-types-dialog {
    width: 100%;
    max-width: none;
    max-height: 92dvh;
    margin: auto 0 0;
    border: 0;
    padding: 0;
    color: var(--color-primary);
    background: transparent;
}

.price-types-dialog:not([open]) {
    display: none;
}

.price-types-dialog::backdrop {
    background: rgba(5, 9, 49, .6);
    backdrop-filter: blur(3px);
}

.price-types-dialog__surface {
    display: flex;
    flex-direction: column;
    max-height: 92dvh;
    overflow: hidden;
    border-radius: 20px 20px 0 0;
    background: #fff;
    box-shadow: 0 -20px 55px rgba(4, 8, 52, .28);
}

.price-types-dialog__surface > header {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border-block-end: 1px solid var(--color-border);
    padding: 16px;
}

.price-types-dialog__surface > header > div {
    display: grid;
    gap: 1px;
}

.price-types-dialog__surface > header span {
    color: var(--color-cta);
    font-size: .7rem;
    font-weight: 700;
    line-height: 1.7;
}

.price-types-dialog__surface h3 {
    margin: 0;
    font-size: 1rem;
    line-height: 1.7;
}

.price-types-dialog__surface > header button {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: 0;
    color: var(--color-primary);
    background: #fff;
    font: inherit;
    cursor: pointer;
}

.price-types-dialog__surface > header button > span {
    color: inherit;
    font-family: Arial, sans-serif;
    font-size: 1.45rem;
    font-weight: 400;
    line-height: 1;
}

.price-types-dialog__content {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 14px 14px 18px;
}

.price-types-dialog__surface > p {
    flex: 0 0 auto;
    margin: 0;
    border-block-start: 1px solid var(--color-border);
    padding: 11px 16px calc(11px + env(safe-area-inset-bottom));
    color: var(--color-muted);
    background: #fff;
    font-size: .72rem;
    line-height: 1.8;
    text-align: center;
}

.price-calculator__details {
    scroll-margin-top: calc(var(--header-height) + 16px);
}

.price-form__error,
.price-form__field > span {
    display: block;
    margin-block-start: 6px;
    color: var(--color-danger);
    font-size: .75rem;
    line-height: 1.8;
}

.price-form__error:empty,
.price-form__field > span:empty {
    display: none;
}

.price-calculator__details {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(320px, .72fr);
    align-items: start;
    gap: clamp(24px, 4vw, 54px);
    margin-block-start: 34px;
    border-block-start: 1px solid var(--color-border);
    padding-block-start: 30px;
}

.price-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.price-form__field {
    min-width: 0;
}

.price-form__field label {
    display: block;
    margin-block-end: 6px;
    font-size: .75rem;
    font-weight: 600;
    line-height: 1.8;
}

.price-form__field input,
.price-form__field select {
    width: 100%;
    min-height: var(--control-height);
    border: 1px solid #d9dce7;
    border-radius: var(--radius-field);
    padding: 10px 12px;
    color: var(--color-primary-dark);
    background: #fff;
    font: inherit;
    font-size: .78rem;
    line-height: 1.8;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.price-form__field select {
    cursor: pointer;
}

.price-form__field input:hover,
.price-form__field select:hover {
    border-color: #b6bac9;
}

.price-form__field input:focus,
.price-form__field select:focus {
    border-color: var(--color-primary);
    outline: none;
    box-shadow: 0 0 0 3px rgba(23, 29, 111, .08);
}

.price-form__dimension {
    position: relative;
}

.price-form__dimension input {
    direction: rtl;
    text-align: start;
    padding-inline-end: 88px;
}

.price-form__dimension > span {
    position: absolute;
    inset-inline-end: 12px;
    inset-block-start: 50%;
    border-inline-start: 1px solid var(--color-border);
    padding-inline-start: 10px;
    color: var(--color-muted);
    font-size: .75rem;
    line-height: 1.6;
    pointer-events: none;
    transform: translateY(-50%);
}

.price-calculator__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: var(--control-height);
    gap: 10px;
    margin-block-start: 18px;
    border: 2px solid var(--color-cta);
    border-radius: var(--radius-button);
    padding: 9px 22px;
    color: #fff;
    background: var(--color-cta);
    font: inherit;
    font-size: .84rem;
    font-weight: 700;
    line-height: 1.7;
    cursor: pointer;
    transition: border-color 160ms ease, background-color 160ms ease;
}

.price-calculator__submit:hover,
.price-calculator__submit:focus-visible {
    border-color: var(--color-primary);
    background: var(--color-primary);
}

.price-calculator__submit:disabled {
    cursor: wait;
    opacity: .78;
}

.price-calculator__spinner {
    display: none;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, .45);
    border-block-start-color: #fff;
    border-radius: 50%;
    animation: price-spin .75s linear infinite;
}

.price-calculator__submit.is-loading .price-calculator__spinner {
    display: inline-block;
}

.price-result {
    position: sticky;
    inset-block-start: calc(var(--header-height) + 20px);
    overflow: hidden;
    border: 1px solid var(--color-primary);
    border-radius: 16px;
    padding: 24px;
    background: #fff;
}

.price-result::before {
    position: absolute;
    inset-inline: 0;
    inset-block-start: 0;
    height: 4px;
    background: var(--color-cta);
    content: "";
}

.price-result__label {
    color: var(--color-muted);
    font-size: .75rem;
    font-weight: 600;
    line-height: 1.8;
}

.price-result > strong {
    display: block;
    margin-block-start: 5px;
    color: var(--color-primary);
    font-size: clamp(1.25rem, 2.2vw, 1.65rem);
    font-weight: 700;
    line-height: 1.7;
}

.price-result.is-success > strong {
    color: #117c50;
}

.price-result.is-error > strong,
.price-result.is-error > p {
    color: var(--color-danger);
}

.price-result > p {
    min-height: 54px;
    margin: 7px 0 0;
    color: #5a6073;
    font-size: .75rem;
    line-height: 1.9;
}

.price-result__dimensions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 18px 0 0;
}

.price-result__dimensions[hidden] {
    display: none;
}

.price-result__dimensions > div {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2px 5px;
    border-radius: 9px;
    padding: 9px 10px;
    background: var(--color-surface-soft);
}

.price-result__dimensions dt {
    color: var(--color-muted);
    font-size: .75rem;
    line-height: 1.7;
}

.price-result__dimensions dd {
    margin: 0;
    font-size: .75rem;
    font-weight: 700;
    line-height: 1.7;
}

.price-result__dimensions .price-result__unit {
    grid-column: 1 / -1;
    color: var(--color-muted);
    font-size: .75rem;
}

.price-result__notice {
    margin-block-start: 16px;
    border-block-start: 1px solid var(--color-border);
    padding-block-start: 14px;
    color: var(--color-muted);
    font-size: .75rem;
    line-height: 1.9;
}

.price-result > a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    margin-block-start: 14px;
    border: 1px solid var(--color-primary);
    border-radius: 9px;
    padding: 7px 12px;
    color: var(--color-primary);
    font-size: .75rem;
    font-weight: 700;
    line-height: 1.7;
    text-align: center;
}

.price-result > a:hover,
.price-result > a:focus-visible {
    color: #fff;
    background: var(--color-primary);
}

.price-methodology {
    display: grid;
    grid-template-columns: minmax(220px, .55fr) minmax(0, 1.45fr);
    gap: 18px 32px;
    margin-block-start: 28px;
    border-block-start: 1px solid var(--color-border);
    padding-block-start: 26px;
}

.price-methodology h3 {
    margin: 0;
    color: var(--color-primary);
    font-size: 1rem;
    line-height: 1.85;
}

.price-methodology ul {
    display: grid;
    gap: 7px;
    margin: 0;
    padding-inline-start: 1.25rem;
    color: #555b70;
    font-size: .76rem;
    line-height: 1.95;
}

.price-methodology li::marker {
    color: var(--color-cta);
}

.price-methodology > p {
    grid-column: 2;
    margin: 0;
    color: var(--color-muted);
    font-size: .75rem;
    line-height: 1.95;
}

.price-methodology__freshness {
    border-radius: 8px;
    padding: 9px 11px;
    background: rgba(20, 149, 95, .08);
}

.price-methodology__freshness time,
.price-examples__freshness time {
    color: var(--color-primary);
    font-weight: 700;
}

.price-methodology__freshness--missing,
.price-examples__freshness--missing {
    color: #7a4b00 !important;
    background: #fff7df;
}

/* Server-rendered price examples */
.price-examples {
    padding-block: var(--section-block-start) var(--section-block-end);
    background: #fff;
}

.price-examples .price-heading {
    max-width: 860px;
    margin-block-end: var(--section-title-gap);
}

.price-examples__freshness {
    width: fit-content;
    border-radius: 8px;
    padding: 7px 10px;
    color: #2f5b45 !important;
    background: rgba(20, 149, 95, .08);
}

.price-examples__table-wrap {
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: #fff;
    box-shadow: var(--price-shadow);
    overscroll-behavior-inline: contain;
}

.price-examples__table-wrap:focus-visible {
    outline: 3px solid rgba(232, 24, 32, .3);
    outline-offset: 3px;
}

.price-examples table {
    width: 100%;
    min-width: 880px;
    border-collapse: collapse;
    font-size: .76rem;
    line-height: 1.9;
}

.price-examples caption {
    padding: 12px 16px;
    color: var(--color-muted);
    background: var(--color-surface-soft);
    text-align: start;
}

.price-examples th,
.price-examples td {
    border-block-start: 1px solid var(--color-border);
    padding: 12px 14px;
    text-align: start;
    vertical-align: middle;
}

.price-examples thead th {
    border-block-start: 0;
    color: #fff;
    background: var(--color-primary);
    font-weight: 700;
    white-space: nowrap;
}

.price-examples tbody th {
    min-width: 170px;
    color: var(--color-primary);
}

.price-examples tbody tr:nth-child(even) {
    background: var(--color-surface-soft);
}

.price-examples td strong {
    color: #117c50;
    white-space: nowrap;
}

/* Explanation */
.price-explanation {
    padding-block: var(--section-block-start) var(--section-block-end);
    background: #fff;
}

.price-explanation__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .9fr);
    align-items: center;
    gap: clamp(44px, 7vw, 96px);
}

.price-explanation__content > p:not(.price-kicker) {
    margin: 14px 0 0;
    color: #555b70;
    font-size: .86rem;
    line-height: 2.05;
}

.price-explanation__content > a {
    display: inline-flex;
    margin-block-start: 18px;
    border-block-end: 2px solid var(--color-cta);
    padding-block-end: 4px;
    color: var(--color-primary);
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.8;
}

.price-explanation figure {
    width: min(100%, 620px);
    overflow: hidden;
    margin: 0;
    border-radius: 16px;
    box-shadow: var(--price-shadow);
    justify-self: center;
}

.price-explanation img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: auto;
    object-fit: contain;
}

/* Factors */
.price-factors {
    padding-block: var(--section-block-start) var(--section-block-end);
    background: var(--color-surface-soft);
}

.price-factors .price-heading {
    margin-block-end: var(--section-title-gap);
}

.price-factors__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.price-factors article {
    position: relative;
    overflow: hidden;
    min-height: 172px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    padding: 22px;
    background: #fff;
}

.price-factors article > span {
    position: absolute;
    inset-inline-end: 16px;
    inset-block-start: 10px;
    color: rgba(23, 29, 111, .08);
    font-family: Tahoma, sans-serif;
    font-size: 2.2rem;
    font-weight: 700;
    line-height: 1;
}

.price-factors h3 {
    position: relative;
    margin: 0;
    font-size: .88rem;
    font-weight: 700;
    line-height: 1.8;
}

.price-factors h3::after {
    display: block;
    width: 28px;
    height: 2px;
    margin-block-start: 10px;
    background: var(--color-cta);
    content: "";
}

.price-factors p {
    position: relative;
    margin: 12px 0 0;
    color: var(--color-muted);
    font-size: .75rem;
    line-height: 1.95;
}

/* Quote */
.price-quote {
    padding-block: var(--section-block-start) var(--section-block-end);
    background: #fff;
}

.price-quote .price-heading {
    margin-block-end: var(--section-title-gap);
}

.price-quote__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(320px, .82fr);
    align-items: stretch;
    gap: clamp(24px, 4vw, 52px);
}

.price-quote__steps {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.price-quote__steps li {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: start;
    gap: 14px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    padding: 18px;
    background: var(--color-surface-soft);
}

.price-quote__steps li > span {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    color: #fff;
    background: var(--color-primary);
    font-size: .84rem;
    font-weight: 700;
}

.price-quote__steps h3,
.price-quote__card h3 {
    margin: 0;
    color: var(--color-primary);
    font-size: .88rem;
    font-weight: 700;
    line-height: 1.8;
}

.price-quote__steps p,
.price-quote__card p {
    margin: 6px 0 0;
    color: var(--color-muted);
    font-size: .76rem;
    line-height: 1.95;
}

.price-quote__card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
    border-radius: 16px;
    padding: clamp(24px, 4vw, 38px);
    color: #fff;
    background:
        radial-gradient(circle at 15% 15%, rgba(232, 24, 32, .28), transparent 32%),
        linear-gradient(145deg, var(--color-primary-dark), var(--color-primary));
    box-shadow: var(--price-shadow);
}

.price-quote__card > span {
    margin-block-end: 7px;
    color: var(--color-accent-on-dark);
    font-size: .74rem;
    font-weight: 700;
    line-height: 1.8;
}

.price-quote__card h3 {
    color: #fff;
    font-size: 1.04rem;
}

.price-quote__card p {
    color: rgba(255, 255, 255, .78);
}

.price-quote__primary,
.price-quote__secondary {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    border: 2px solid transparent;
    border-radius: 10px;
    padding: 8px 16px;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.7;
    text-align: center;
}

.price-quote__primary {
    margin-block-start: 20px;
    border-color: var(--color-cta);
    color: #fff;
    background: var(--color-cta);
}

.price-quote__secondary {
    margin-block-start: 8px;
    border-color: rgba(255, 255, 255, .72);
    color: #fff;
}

.price-quote__primary:hover,
.price-quote__primary:focus-visible,
.price-quote__secondary:hover,
.price-quote__secondary:focus-visible {
    border-color: #fff;
    color: var(--color-primary);
    background: #fff;
}

.price-quote__card small {
    margin-block-start: 12px;
    color: rgba(255, 255, 255, .66);
    font-size: .68rem;
    line-height: 1.8;
    text-align: center;
}

/* FAQ */
.price-faq {
    padding-block: var(--section-block-start) var(--section-block-end);
    background: #fff;
}

.price-faq__layout {
    display: grid;
    grid-template-columns: minmax(260px, .6fr) minmax(0, 1.4fr);
    align-items: start;
    gap: clamp(40px, 7vw, 96px);
}

.price-faq__items {
    display: grid;
    gap: 8px;
}

.price-faq details {
    overflow: hidden;
    border: 1px solid var(--color-border);
    border-radius: 11px;
    background: #fff;
}

.price-faq summary {
    position: relative;
    padding: 15px 18px 15px 50px;
    font-size: .78rem;
    font-weight: 600;
    line-height: 1.9;
    cursor: pointer;
    list-style: none;
}

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

.price-faq summary::before,
.price-faq summary::after {
    position: absolute;
    inset-inline-start: 19px;
    inset-block-start: 50%;
    width: 13px;
    height: 2px;
    background: var(--color-primary);
    content: "";
    transform: translateY(-50%);
}

.price-faq summary::after {
    transform: translateY(-50%) rotate(90deg);
    transition: transform 160ms ease;
}

.price-faq details[open] summary::after {
    transform: translateY(-50%) rotate(0);
}

.price-faq details[open] summary {
    color: var(--color-primary-dark);
    background: var(--color-surface-soft);
}

.price-faq details > div {
    border-block-start: 1px solid var(--color-border);
    padding: 13px 18px 16px;
}

.price-faq details p {
    margin: 0;
    color: var(--color-muted);
    font-size: .75rem;
    line-height: 2;
}

@keyframes price-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 1023.98px) {
    .price-types.is-collapsed .price-type-card:nth-child(n+7) {
        display: none;
    }

    .price-explanation__layout,
    .price-quote__layout,
    .price-faq__layout {
        grid-template-columns: minmax(0, 1fr);
    }

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

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

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

    .price-methodology > p {
        grid-column: 1;
    }

    .price-result {
        position: static;
    }

    .price-explanation__content,
    .price-explanation figure {
        width: min(100%, 760px);
        margin-inline: auto;
    }

    .price-explanation figure {
        width: min(100%, 620px);
    }

    .price-explanation__content {
        text-align: center;
    }

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

    .price-quote__steps,
    .price-quote__card {
        width: min(100%, 760px);
        margin-inline: auto;
    }

    .price-faq__layout {
        gap: 28px;
    }

    .price-faq .price-heading {
        margin-inline: auto;
        text-align: center;
    }
}

@media (max-width: 639.98px) {
    .price-types.is-collapsed .price-type-card:nth-child(n+5) {
        display: none;
    }

    .price-button {
        width: 100%;
        min-width: 0;
        min-height: 48px;
        padding-block: 8px;
        font-size: .82rem;
    }

    .price-examples,
    .price-explanation,
    .price-factors,
    .price-quote,
    .price-faq {
        padding-block: 44px 48px;
    }

    .price-factors .price-heading,
    .price-quote .price-heading {
        margin-block-end: 24px;
    }

    .price-calculator {
        border-radius: 14px;
        padding: 20px 14px;
    }

    .price-types legend,
    .price-specifications legend {
        align-items: flex-start;
        font-size: .84rem;
    }

    .price-types__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .price-types__toggle {
        width: 100%;
        min-height: 48px;
        margin-block-start: 14px;
    }

    .price-types-dialog .price-types__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 9px;
    }

    .price-types-dialog .price-type-card {
        display: block;
    }

    .price-type-card__surface {
        border-radius: 10px;
    }

    .price-type-card__surface > span {
        min-height: 48px;
        padding: 7px 8px;
        font-size: .75rem;
    }

    .price-calculator__details {
        gap: 22px;
        margin-block-start: 26px;
        padding-block-start: 24px;
    }

    .price-form__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }

    .price-form__field input,
    .price-form__field select {
        min-height: 48px;
        font-size: .76rem;
    }

    .price-result {
        border-radius: 13px;
        padding: 22px 18px;
    }

    .price-result > strong {
        font-size: 1.28rem;
    }

    .price-methodology {
        gap: 14px;
        margin-block-start: 24px;
        padding-block-start: 22px;
    }

    .price-methodology ul,
    .price-methodology > p {
        font-size: .74rem;
    }

    .price-examples .price-heading {
        margin-block-end: 22px;
    }

    .price-examples__table-wrap {
        border-radius: 12px;
    }

    .price-examples table {
        min-width: 820px;
    }

    .price-explanation__layout {
        gap: 26px;
    }

    .price-explanation__content > p:not(.price-kicker) {
        font-size: .8rem;
        line-height: 2;
    }

    .price-explanation figure {
        border-radius: 13px;
    }

    .price-factors__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 9px;
    }

    .price-factors article {
        min-height: 0;
        border-radius: 12px;
        padding: 19px;
    }

    .price-quote__layout {
        gap: 22px;
    }

    .price-quote__steps li {
        grid-template-columns: 38px minmax(0, 1fr);
        gap: 11px;
        border-radius: 12px;
        padding: 15px;
    }

    .price-quote__steps li > span {
        width: 38px;
        height: 38px;
        border-radius: 10px;
    }

    .price-quote__card {
        border-radius: 14px;
        padding: 24px 18px;
    }

    .price-faq summary {
        padding-block: 14px;
        font-size: .75rem;
    }

}
