/*
 * Winter order-form components
 *
 * Standalone checkout/configuration layer, derived from Lagom2's public
 * order-form DOM and its modern design tokens.  This file deliberately loads
 * after the earlier Winter compatibility stylesheet so route-specific patches
 * cannot redefine the shared component contract below.
 */

body.winter-page-products,
body.winter-page-configureproduct,
body.winter-page-viewcart,
#order-standard_cart.winter-renewals {
    --winter-order-muted: #656d79;
}

body.winter-page-configureproduct,
body.winter-page-viewcart,
#order-standard_cart.winter-renewals {
    --winter-order-primary: #1062fe;
    --winter-order-heading: #17191c;
    --winter-order-body: #5e636e;
    --winter-order-border: #e7e9ed;
    --winter-order-surface: #fff;
    --winter-order-subtle: #f7f7f8;
    --winter-order-sidebar: 340px;
    --winter-order-gap: 40px;
    --winter-order-radius: 6px;
    --winter-order-shadow: 0 0 1px rgba(0, 0, 0, .1), 0 2px 24px rgba(0, 0, 0, .08);
    --winter-order-promo: #f12f75;
    --winter-order-promo-bg: #ffe7ec;
    --winter-order-promo-border: #fccfdf;
    --label-savings-color: var(--winter-order-promo);
    color: var(--winter-order-body);
    font-family: Roboto, sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 24px;
}

body.winter-page-configureproduct .container.primary-content,
body.winter-page-viewcart .container.primary-content {
    max-width: 1328px;
}

/* The standalone order form does not inherit Lagom's utility stylesheet.
 * Keep source-hidden validation and proxy controls out of the rendered flow. */
body.winter-page-configureproduct #frmConfigureProduct .alert.hidden,
body.winter-page-configureproduct #frmConfigureProduct .loader.hidden,
body.winter-page-viewcart #order-standard_cart .loader.hidden,
body.winter-page-viewcart #order-standard_cart .winter-checkout-tos .alert.hidden,
body.winter-page-viewcart #order-standard_cart #frmCheckout #submit-checkout.hidden {
    display: none;
}

body.winter-page-viewcart #order-standard_cart #frmCheckout #accepttos[hidden] {
    display: none;
}

body.winter-page-configureproduct #frmConfigureProduct > .main-grid,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals .winter-renewals-body) > .main-grid {
    display: flex;
    width: 100%;
    align-items: flex-start;
}

body.winter-page-configureproduct #frmConfigureProduct > .main-grid > .main-content,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals .winter-renewals-body) > .main-grid > .main-content {
    display: block;
    width: auto;
    min-width: 0;
    max-width: none;
    margin: 0;
    padding: 0;
    flex: 1 1 0;
}

body.winter-page-configureproduct #frmConfigureProduct > .main-grid > .main-sidebar,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals .winter-renewals-body) > .main-grid > .main-sidebar {
    position: static;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    z-index: auto;
    width: var(--winter-order-sidebar);
    min-width: var(--winter-order-sidebar);
    height: auto;
    max-height: none;
    margin-left: var(--winter-order-gap);
    padding: 0;
    overflow: visible;
    background: transparent;
    box-shadow: none;
    transform: none;
    flex: 0 0 var(--winter-order-sidebar);
    align-self: stretch;
}

body.winter-page-configureproduct #frmConfigureProduct .sidebar-sticky-summary,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) .sidebar-sticky-summary {
    position: sticky;
    top: 24px;
}

body.winter-page-configureproduct #frmConfigureProduct .main-content > .section,
body.winter-page-viewcart #order-standard_cart .main-content > .section,
body.winter-page-viewcart #order-standard_cart #frmCheckout > .section {
    margin-top: 48px;
}

body.winter-page-configureproduct #frmConfigureProduct .main-content > .section:first-child,
body.winter-page-viewcart #order-standard_cart .main-content > .section:first-child {
    margin-top: 0;
}

body.winter-page-configureproduct #frmConfigureProduct .section-header,
body.winter-page-viewcart #order-standard_cart .section-header {
    margin-bottom: 24px;
}

body.winter-page-configureproduct #frmConfigureProduct .section-title,
body.winter-page-configureproduct #frmConfigureProduct .section > h3,
body.winter-page-viewcart #order-standard_cart .section-title {
    margin: 0;
    color: var(--winter-order-heading);
    font-family: Roboto, sans-serif;
    font-size: 26px;
    font-weight: 300;
    line-height: 34px;
}

/* The source treats configuration field names as H6/input labels, not as
 * section headings. This selector catches both source markup variants. */
body.winter-page-configureproduct #frmConfigureProduct #productConfigurableOptions .section-title.h6,
body.winter-page-configureproduct #frmConfigureProduct #productConfigurableOptions .section.row > .section-header > .section-title {
    margin: 8px 0;
    color: var(--winter-order-body);
    font-size: 17px;
    font-weight: 400;
    line-height: 24px;
}

body.winter-page-configureproduct #frmConfigureProduct .section-desc,
body.winter-page-viewcart #order-standard_cart .section-desc {
    margin: 0;
    color: var(--winter-order-muted);
    font-size: 14px;
    line-height: 24px;
}

body.winter-page-configureproduct #frmConfigureProduct .panel,
body.winter-page-viewcart #order-standard_cart .panel {
    margin-bottom: 0;
    background: var(--winter-order-surface);
    border: 1px solid var(--winter-order-border);
    border-radius: var(--winter-order-radius);
    box-shadow: none;
}

body.winter-page-configureproduct #frmConfigureProduct .panel-form,
body.winter-page-viewcart #order-standard_cart .panel-form {
    background: var(--winter-order-subtle);
}

body.winter-page-configureproduct #frmConfigureProduct .panel-body {
    padding: 24px;
}

body.winter-page-viewcart #order-standard_cart #frmCheckout > .section > .section-body {
    padding: 0;
}

body.winter-page-configureproduct #frmConfigureProduct .form-control,
body.winter-page-viewcart #order-standard_cart .form-control {
    min-height: 44px;
    padding: 8px 16px;
    color: var(--winter-order-heading);
    font-size: 14px;
    line-height: 24px;
    background: #fff;
    border: 1px solid #d9dde5;
    border-radius: 3px;
    box-shadow: none;
}

body.winter-page-configureproduct #frmConfigureProduct .form-control:focus,
body.winter-page-viewcart #order-standard_cart .form-control:focus {
    border-color: var(--winter-order-primary);
    box-shadow: 0 0 0 3px rgba(16, 98, 254, .12);
}

body.winter-page-configureproduct #frmConfigureProduct .control-label,
body.winter-page-configureproduct #frmConfigureProduct .form-group > label,
body.winter-page-viewcart #order-standard_cart .control-label,
body.winter-page-viewcart #order-standard_cart .form-group > label {
    display: block;
    margin: 0 0 5px;
    color: var(--winter-order-body);
    font-size: 14px;
    font-weight: 400;
    line-height: 24px;
}

body.winter-page-configureproduct #frmConfigureProduct .form-group,
body.winter-page-viewcart #order-standard_cart .form-group {
    margin-bottom: 12px;
}

/* Configuration: grids, plans, and native radio/checkbox cards. */
@media (min-width: 768px) {
    body.winter-page-configureproduct #frmConfigureProduct #productConfigurableOptions .section.row {
        display: flex;
        flex-wrap: wrap;
        margin-right: -12px;
        margin-left: -12px;
    }

    body.winter-page-configureproduct #frmConfigureProduct #productConfigurableOptions .section.row > .section-header {
        width: 25%;
        margin-bottom: 24px;
        padding: 0 12px;
    }

    body.winter-page-configureproduct #frmConfigureProduct #productConfigurableOptions .section.row > .section-body {
        width: 75%;
        padding: 0 12px;
    }
}

body.winter-page-configureproduct #frmConfigureProduct .panel-check-group,
body.winter-page-viewcart #order-standard_cart .panel-check-group {
    overflow: hidden;
    margin: 0;
    background: #fff;
    border: 1px solid var(--winter-order-border);
    border-radius: var(--winter-order-radius);
}

body.winter-page-configureproduct #frmConfigureProduct .panel-check,
body.winter-page-viewcart #order-standard_cart .panel-check {
    position: relative;
    z-index: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
}

body.winter-page-configureproduct #frmConfigureProduct .panel-check + .panel-check,
body.winter-page-viewcart #order-standard_cart .panel-check + .panel-check {
    margin-top: -1px;
    border-top: 1px solid var(--winter-order-border);
}

body.winter-page-configureproduct #frmConfigureProduct .panel-check.checked,
body.winter-page-configureproduct #frmConfigureProduct .panel-check:has(.icheck-control:checked),
body.winter-page-viewcart #order-standard_cart .panel-check.checked,
body.winter-page-viewcart #order-standard_cart .panel-check:has(.icheck-control:checked) {
    z-index: 1;
    background: var(--winter-order-subtle);
    outline: 1px solid var(--winter-order-primary);
}

body.winter-page-configureproduct #frmConfigureProduct .panel-check > .check,
body.winter-page-viewcart #order-standard_cart .panel-check > .check,
body.winter-page-viewcart #order-standard_cart .panel-check > .panel-heading.check {
    height: 100%;
    margin: 0;
}

body.winter-page-configureproduct #frmConfigureProduct .panel-check label {
    position: relative;
    display: flex;
    width: 100%;
    min-height: 64px;
    align-items: flex-start;
    margin: 0;
    padding: 16px;
    cursor: pointer;
}

/* Billing cycles are independent Lagom cards. Other panel-check groups remain
 * joined rows because billing, payment, and configurable-option lists use that
 * source pattern. */
body.winter-page-configureproduct #frmConfigureProduct #sectionCycles .panel-check-group {
    display: flex;
    overflow: visible;
    flex-wrap: wrap;
    margin: 0 -12px -24px;
    background: transparent;
    border: 0;
    border-radius: 0;
}

body.winter-page-configureproduct #frmConfigureProduct #sectionCycles .panel-check-group > [class*="col-"] {
    display: flex;
    padding-right: 12px;
    padding-left: 12px;
}

body.winter-page-configureproduct #frmConfigureProduct #sectionCycles .panel-check {
    width: 100%;
    margin: 0 0 24px;
    border: 1px solid var(--winter-order-border);
    border-radius: var(--winter-order-radius);
}

body.winter-page-configureproduct #frmConfigureProduct #sectionCycles .panel-check + .panel-check {
    margin-top: 0;
    border-top: 1px solid var(--winter-order-border);
}

body.winter-page-configureproduct #frmConfigureProduct #sectionCycles .panel-check.checked,
body.winter-page-configureproduct #frmConfigureProduct #sectionCycles .panel-check:has(.icheck-control:checked) {
    border-color: var(--winter-order-primary);
    outline: 0;
}

body.winter-page-configureproduct #frmConfigureProduct .panel-check .icheck-control,
body.winter-page-viewcart #order-standard_cart .panel-check .icheck-control,
body.winter-page-viewcart #order-standard_cart .order-checkbox .icheck-control {
    position: absolute;
    top: 19px;
    left: 16px;
    width: 18px;
    height: 18px;
    margin: 0;
    appearance: none;
    cursor: pointer;
    background: #fff;
    border: 2px solid #d9dde5;
    outline: 0;
}

body.winter-page-configureproduct #frmConfigureProduct .panel-check input[type="radio"].icheck-control,
body.winter-page-viewcart #order-standard_cart .panel-check input[type="radio"].icheck-control,
body.winter-page-viewcart #order-standard_cart .order-checkbox input[type="checkbox"].icheck-control {
    border-radius: 50%;
}

body.winter-page-configureproduct #frmConfigureProduct .panel-check input[type="checkbox"].icheck-control,
body.winter-page-viewcart #order-standard_cart .panel-check input[type="checkbox"].icheck-control {
    border-radius: 3px;
}

body.winter-page-configureproduct #frmConfigureProduct .panel-check .icheck-control:checked,
body.winter-page-viewcart #order-standard_cart .panel-check .icheck-control:checked,
body.winter-page-viewcart #order-standard_cart .order-checkbox .icheck-control:checked {
    background: var(--winter-order-primary);
    border-color: var(--winter-order-primary);
    box-shadow: inset 0 0 0 4px var(--winter-order-subtle);
}

body.winter-page-configureproduct #frmConfigureProduct .panel-check input[type="checkbox"].icheck-control:checked,
body.winter-page-viewcart #order-standard_cart .panel-check input[type="checkbox"].icheck-control:checked {
    box-shadow: inset 0 0 0 3px var(--winter-order-primary);
}

body.winter-page-configureproduct #frmConfigureProduct .panel-check .winter-checkbox-indicator {
    position: absolute;
    top: 19px;
    left: 16px;
    z-index: 1;
    display: none;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    color: #fff;
    font-size: 9px;
    line-height: 1;
    pointer-events: none;
}

body.winter-page-configureproduct #frmConfigureProduct .panel-check input[type="checkbox"].icheck-control:checked + .winter-checkbox-indicator {
    display: flex;
}

body.winter-page-configureproduct #frmConfigureProduct .panel-check .check-content,
body.winter-page-viewcart #order-standard_cart .panel-check .check-content {
    min-width: 0;
    margin-left: 30px;
    flex: 1 1 0;
}

body.winter-page-configureproduct #frmConfigureProduct .panel-check .check-title,
body.winter-page-configureproduct #frmConfigureProduct .panel-check .check-content > span,
body.winter-page-viewcart #order-standard_cart .panel-check .check-title,
body.winter-page-viewcart #order-standard_cart .panel-check .check-content > span {
    display: block;
    margin: 0;
    color: var(--winter-order-heading);
    font-size: 15px;
    font-weight: 500;
    line-height: 24px;
}

body.winter-page-configureproduct #frmConfigureProduct .panel-check .check-subtitle,
body.winter-page-viewcart #order-standard_cart .panel-check .check-subtitle {
    margin: 6px 0 0;
    color: var(--winter-order-muted);
    font-size: 14px;
    line-height: 20px;
}

body.winter-page-configureproduct #frmConfigureProduct #sectionCycles .label.label-save {
    display: inline-flex;
    min-height: 20px;
    align-items: center;
    margin: 0 8px 0 0;
    padding: 3px 6px;
    color: var(--winter-order-primary);
    font-size: 12px;
    font-weight: 500;
    line-height: 14px;
    vertical-align: middle;
    background: #dce8ff;
    border-radius: 10px;
}

body.winter-page-configureproduct #frmConfigureProduct #sectionCycles .cycle-full-price {
    display: inline-block;
    color: #a7acb6;
    font-size: 12px;
    line-height: 20px;
    white-space: nowrap;
    text-decoration: line-through;
}

/*
 * Lagom configurable radio/checkbox options are independent cards. The shared
 * joined-panel rule clipped the selected outline, leaving only two blue
 * vertical lines, and Bootstrap's 15px child gutters narrowed the content.
 */
body.winter-page-configureproduct #frmConfigureProduct #productConfigurableOptions .panel-check-group {
    display: flex;
    overflow: visible;
    flex-wrap: wrap;
    margin: 0 -12px -24px;
    background: transparent;
    border: 0;
    border-radius: 0;
}

body.winter-page-configureproduct #frmConfigureProduct #productConfigurableOptions .panel-check-group > [class*="col-"] {
    display: flex;
    padding-right: 12px;
    padding-left: 12px;
}

body.winter-page-configureproduct #frmConfigureProduct #productConfigurableOptions .panel-check {
    width: 100%;
    margin: 0 0 24px;
    background: #fff;
    border: 1px solid var(--winter-order-border);
    border-radius: var(--winter-order-radius);
    outline: 0;
}

body.winter-page-configureproduct #frmConfigureProduct #productConfigurableOptions .panel-check.checked,
body.winter-page-configureproduct #frmConfigureProduct #productConfigurableOptions .panel-check:has(.icheck-control:checked) {
    background: var(--winter-order-subtle);
    border-color: var(--winter-order-primary);
    outline: 0;
}

/* The field-name rule must not leak through the nested source section-header
 * and restyle option-card copy. */
body.winter-page-configureproduct #frmConfigureProduct #productConfigurableOptions .panel-check .check-title {
    margin: 0;
    color: var(--winter-order-heading);
    font-size: 15px;
    font-weight: 500;
    line-height: 24px;
}

body.winter-page-configureproduct #frmConfigureProduct #productConfigurableOptions .panel-check .check-subtitle {
    margin: 6px 0 0;
    color: var(--winter-order-muted);
    font-size: 14px;
    line-height: 24px;
}

/* Checkout sections: the cart table, promo component, account panels and
 * payment rows all consume this same source-shaped component vocabulary. */
body.winter-page-configureproduct .winter-cart-header,
body.winter-page-viewcart #order-standard_cart .winter-cart-header {
    margin: 0 0 48px;
}

body.winter-page-configureproduct .winter-cart-header h1,
body.winter-page-viewcart #order-standard_cart .winter-cart-header h1 {
    margin: 0;
    color: var(--winter-order-heading);
    font-size: 40px;
    font-weight: 900;
    line-height: 52px;
}

/* Lagom's promo header and the existing checkout promo partial share the
 * reference savings colors and regular-weight code. */
body.winter-page-configureproduct .winter-checkout-promo-banner {
    display: inline-flex;
    max-width: 100%;
    align-items: center;
    margin-top: 12px;
    color: var(--winter-order-promo);
    background: var(--winter-order-promo-bg);
    border-radius: var(--winter-order-radius);
    font-size: 14px;
    line-height: 20px;
}

body.winter-page-configureproduct .winter-checkout-promo-code,
body.winter-page-viewcart #order-standard_cart .panel-promo-code .label-savings {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 8px 12px;
    color: var(--winter-order-promo);
    background: var(--winter-order-promo-bg);
    border-radius: var(--winter-order-radius);
    font-size: 14px;
    font-weight: 400;
    line-height: 20px;
    white-space: normal;
    overflow-wrap: anywhere;
}

body.winter-page-configureproduct .winter-checkout-promo-code > [aria-hidden],
body.winter-page-viewcart #order-standard_cart .panel-promo-code .label-savings > [aria-hidden] {
    display: inline-flex;
    flex: 0 0 16px;
}

body.winter-page-configureproduct .winter-checkout-promo-message {
    min-width: 0;
    padding: 8px 12px;
    border-left: 1px solid var(--winter-order-promo-border);
}

body.winter-page-configureproduct .winter-checkout-promo-info {
    display: inline-flex;
    width: 36px;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    flex: 0 0 36px;
    padding: 0;
    border: 0;
    border-radius: var(--winter-order-radius);
    background: transparent;
    color: inherit;
    cursor: pointer;
}

body.winter-page-configureproduct .winter-checkout-promo-info:focus-visible {
    outline: 2px solid var(--winter-order-promo);
    outline-offset: 2px;
}

body.winter-page-viewcart #order-standard_cart .panel-promo-code .panel-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    padding: 20px 24px;
}

body.winter-page-viewcart #order-standard_cart .promo-code-content {
    display: flex;
    min-width: 0;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    color: var(--winter-order-promo);
}

@media (max-width: 767px) {
    body.winter-page-configureproduct .winter-checkout-promo-banner {
        display: flex;
        flex-wrap: wrap;
    }

    body.winter-page-configureproduct .winter-checkout-promo-code {
        flex-basis: 100%;
    }

    body.winter-page-configureproduct .winter-checkout-promo-message {
        flex: 1 1 0;
        border-left: 0;
    }

    body.winter-page-configureproduct .winter-checkout-promo-info {
        min-height: 44px;
        flex-basis: 44px;
    }
}

body.winter-page-viewcart #order-standard_cart #frmCheckout h6 {
    margin: 0 0 16px;
    color: var(--winter-order-heading);
    font-size: 17px;
    font-weight: 500;
    line-height: 24px;
}

body.winter-page-viewcart #order-standard_cart #frmCheckout .panel-collapse {
    border-top: 0;
}

body.winter-page-viewcart #order-standard_cart #frmCheckout .panel-collapse:not(.show) {
    display: none;
}

body.winter-page-viewcart #order-standard_cart #frmCheckout .panel-collapse .panel-body {
    padding: 24px;
}

/* Lagom's desktop account login is one inline row. The markup is preserved
 * from form-billing.tpl; this is the missing source utility layer. */
body.winter-page-viewcart #order-standard_cart #frmCheckout .inline-form {
    display: flex;
    align-items: flex-end;
}

body.winter-page-viewcart #order-standard_cart #frmCheckout .inline-form-element {
    min-width: 0;
    margin-right: 16px;
}

body.winter-page-viewcart #order-standard_cart #frmCheckout .inline-form-element.w-100 {
    width: auto;
    flex: 1 1 0;
}

body.winter-page-viewcart #order-standard_cart #frmCheckout .inline-form-element.m-r-0,
body.winter-page-viewcart #order-standard_cart #frmCheckout .inline-form-element:last-child {
    margin-right: 0;
}

body.winter-page-viewcart #order-standard_cart #frmCheckout #btnExistingLogin {
    min-width: 120px;
    min-height: 44px;
}

body.winter-page-viewcart #order-standard_cart .search-box {
    margin: 0;
    padding: 24px;
    background: #0f8bed;
    border: 0;
    border-radius: var(--winter-order-radius);
    box-shadow: 0 12px 28px rgba(15, 139, 237, .16);
}

body.winter-page-viewcart #order-standard_cart .search-group {
    display: flex;
    align-items: stretch;
}

body.winter-page-viewcart #order-standard_cart .search-field {
    position: relative;
    min-width: 0;
    flex: 1 1 auto;
}

body.winter-page-viewcart #order-standard_cart .search-field .form-control {
    width: 100%;
    padding-left: 50px;
    border: 0;
}

body.winter-page-viewcart #order-standard_cart .search-field-icon {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 18px;
    display: flex;
    align-items: center;
    color: var(--winter-order-primary);
}

body.winter-page-viewcart #order-standard_cart .search-group-btn {
    margin-left: 16px;
    flex: 0 0 auto;
}

body.winter-page-viewcart #order-standard_cart .search-group-btn .btn {
    min-width: 96px;
    min-height: 44px;
}

body.winter-page-viewcart #order-standard_cart .panel-switch {
    max-width: 288px;
}

body.winter-page-viewcart #order-standard_cart .panel-switch .panel-body {
    display: flex;
    min-height: 76px;
    align-items: center;
    justify-content: space-between;
    padding: 16px;
}

body.winter-page-viewcart #order-standard_cart .switch-label {
    color: var(--winter-order-heading);
    font-size: 15px;
    font-weight: 500;
    line-height: 24px;
}

body.winter-page-viewcart #order-standard_cart .switch {
    position: relative;
    display: inline-block;
    width: 60px;
    height: 28px;
    margin: 0;
}

body.winter-page-viewcart #order-standard_cart .switch__checkbox {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

body.winter-page-viewcart #order-standard_cart .switch__container {
    position: absolute;
    inset: 0;
    display: block;
    cursor: pointer;
    background: #d9dde5;
    border-radius: 20px;
    transition: background .15s ease;
}

body.winter-page-viewcart #order-standard_cart .switch__handle {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 22px;
    height: 22px;
    background: #fff;
    border-radius: 50%;
    transition: transform .15s ease;
}

body.winter-page-viewcart #order-standard_cart .switch__checkbox:checked + .switch__container {
    background: var(--winter-order-primary);
}

body.winter-page-viewcart #order-standard_cart .switch__checkbox:checked + .switch__container .switch__handle {
    transform: translateX(32px);
}

body.winter-page-viewcart #order-standard_cart .winter-notes-section .section-body,
body.winter-page-viewcart #order-standard_cart .winter-captcha-section .section-body,
body.winter-page-viewcart #order-standard_cart .winter-security-section .section-body {
    padding: 0;
}

body.winter-page-viewcart #order-standard_cart textarea[name="notes"] {
    min-height: 112px;
    resize: vertical;
}

body.winter-page-viewcart #order-standard_cart .checkout-security-msg {
    display: block;
    min-height: 0;
    overflow: auto;
    margin: 0 0 24px;
    padding: 20px 24px;
    color: #cc6d00;
    font-size: 14px;
    line-height: 24px;
    background: #fff1e0;
    border: 1px solid #ffdeb8;
    border-radius: var(--winter-order-radius);
}

body.winter-page-viewcart #order-standard_cart .checkout-security-msg .alert-body {
    display: block;
}

body.winter-page-viewcart #order-standard_cart .checkout-security-msg .alert-body > i {
    display: none;
}

/* Shared 340px order summary card. */
body.winter-page-configureproduct #frmConfigureProduct #orderSummary,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary {
    width: 100%;
    margin: 0;
    overflow: hidden;
    background: #fff;
    border: 0;
    border-radius: var(--winter-order-radius);
    box-shadow: var(--winter-order-shadow);
    font-size: 13px;
    line-height: 20px;
}

:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary {
    position: relative;
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .loader.hidden,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .loader.hidden {
    display: none;
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .panel-heading,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .panel-heading {
    display: flex;
    min-height: 56px;
    align-items: center;
    padding: 24px;
    background: #fff;
    border: 0;
    border-bottom: 1px solid transparent;
}

:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals .winter-renewals-body) > .main-grid > .main-sidebar #orderSummary .panel-heading {
    display: flex;
    min-height: 56px;
    align-items: center;
    padding: 24px;
    border: 0;
    border-bottom: 1px solid transparent;
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .panel-title,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .panel-title {
    margin: 0;
    padding: 0;
    color: var(--winter-order-heading);
    font-size: 26px;
    font-weight: 300;
    line-height: 34px;
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .panel-body,
body.winter-page-configureproduct #frmConfigureProduct #orderSummary .panel-footer,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .panel-body,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .panel-footer {
    background: #fff;
    border: 0;
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .panel-body,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .panel-body {
    display: flex;
    padding: 0 24px 24px;
    flex-direction: column;
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .summary-list,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .summary-list {
    margin: 0;
    padding: 16px 0;
    list-style: none;
    border-top: 0;
    border-bottom: 1px solid #efeff1;
    font-size: 13px;
    line-height: 18px;
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .summary-list:first-child,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .summary-list:first-child {
    padding-top: 0;
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .summary-list:last-child,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .summary-list:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .summary-list .list-item,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .summary-list .list-item {
    display: flex;
    min-height: 0;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0;
    margin: 0;
    padding: 3px 0;
    color: var(--winter-order-body);
    font-size: 13px;
    line-height: 18px;
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .summary-list .list-item + .list-item,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .summary-list .list-item + .list-item {
    margin-top: 0;
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .summary-list .list-item-main {
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .summary-list .item-value,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .summary-list .item-value {
    color: var(--winter-order-heading);
    text-align: right;
    white-space: nowrap;
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .summary-list .faded,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .summary-list .faded {
    color: #9297a2;
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .panel-footer,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .panel-footer {
    position: relative;
    margin-top: -8px;
    padding: 24px;
}

/* The legacy checkout selector has two extra component classes and otherwise
 * wins the cascade even though this file loads last. Keep the source footer
 * spacing on the exact desktop summary branch. */
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals .winter-renewals-body) > .main-grid > .main-sidebar #orderSummary .panel-footer {
    margin-top: -8px;
    padding: 24px;
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .panel-footer::before,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .panel-footer::before {
    position: absolute;
    top: 0;
    right: 24px;
    left: 24px;
    height: 1px;
    content: "";
    background: var(--winter-order-border);
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .price-left-h,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .price-left-h {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .price-total,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .price-total {
    margin-bottom: 0;
    color: #9297a2;
    font-size: 13px;
    line-height: 20px;
    text-align: center;
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .price-amount,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .price-amount {
    display: flex;
    align-items: center;
    color: var(--winter-order-heading);
    font-size: 40px;
    font-weight: 900;
    line-height: 52px;
    text-align: center;
}

:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .list-item-promo .item-name,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .list-item-promo .item-value {
    color: var(--winter-order-promo);
}

:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .price-amount-total {
    color: var(--winter-order-promo);
    font-size: 14px;
    font-weight: 400;
    line-height: 20px;
    text-decoration: line-through;
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .summary-actions,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .summary-actions {
    margin-top: 0;
    padding-top: 16px;
}

body.winter-page-configureproduct #frmConfigureProduct #orderSummary .btn-checkout,
:is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) #orderSummary .btn-checkout {
    display: flex;
    width: 100%;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

body.winter-page-viewcart #order-standard_cart .winter-checkout-tos {
    display: block;
    margin: 18px 2px 10px;
    color: var(--winter-order-body);
    font-size: 14px;
    line-height: 24px;
}

body.winter-page-viewcart #order-standard_cart .winter-checkout-tos label {
    position: relative;
    display: flex;
    min-height: 24px;
    align-items: flex-start;
    margin: 0;
    padding-left: 0;
    cursor: pointer;
}

body.winter-page-viewcart #order-standard_cart #containerExistingAccountSelect .check-content {
    align-items: center;
    gap: 8px;
}

body.winter-page-viewcart #order-standard_cart #containerExistingAccountSelect .account-select-label {
    flex-shrink: 0;
    margin: 0;
}

/* One inset, shared with the payment-method headings below. */
body.winter-page-viewcart #order-standard_cart #paymentGatewaysDetails .winter-checkout-credit > .panel-body {
    padding: 16px;
}

body.winter-page-viewcart #order-standard_cart #paymentGatewaysDetails .winter-checkout-credit .radio {
    padding: 0;
}

body.winter-page-viewcart #order-standard_cart .winter-checkout-notice {
    margin-top: 12px;
    padding: 10px 12px;
    color: #c83c3c;
    font-size: 13px;
    line-height: 20px;
    background: #fff0f0;
    border: 1px solid #ffd1d1;
    border-radius: var(--winter-order-radius);
}

body.winter-page-viewcart #order-standard_cart .message-no-data {
    display: flex;
    min-height: 320px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center;
    background: #fff;
    border: 1px solid var(--winter-order-border);
    border-radius: var(--winter-order-radius);
}

body.winter-page-viewcart #order-standard_cart .message-image {
    margin-bottom: 16px;
    color: var(--winter-order-primary);
    font-size: 32px;
}

body.winter-page-viewcart #order-standard_cart .message-title {
    margin: 0 0 20px;
    color: var(--winter-order-heading);
    font-size: 20px;
    font-weight: 300;
    line-height: 28px;
}

body.winter-page-viewcart #winterOrderSummaryMob {
    display: none;
}

body.winter-page-configureproduct #orderSummaryMob {
    display: none;
}

@media (max-width: 991.98px) and (min-width: 768px) {
    body.winter-page-configureproduct,
    body.winter-page-viewcart,
    #order-standard_cart.winter-renewals {
        --winter-order-sidebar: 300px;
        --winter-order-gap: 24px;
    }
}

@media (max-width: 767.98px) {
    body.winter-page-configureproduct,
    body.winter-page-viewcart {
        padding-bottom: 72px;
    }

    body.winter-page-configureproduct #frmConfigureProduct > .main-grid,
    :is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals .winter-renewals-body) > .main-grid {
        display: block;
    }

    body.winter-page-configureproduct #frmConfigureProduct > .main-grid > .main-sidebar,
    :is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals .winter-renewals-body) > .main-grid > .main-sidebar {
        width: auto;
        min-width: 0;
        margin: 32px 0 0;
    }

    body.winter-page-configureproduct #frmConfigureProduct .sidebar-sticky-summary,
    :is(body.winter-page-viewcart #order-standard_cart, #order-standard_cart.winter-renewals) .sidebar-sticky-summary {
        position: static;
    }

    body.winter-page-configureproduct #frmConfigureProduct .main-content > .section,
    body.winter-page-viewcart #order-standard_cart .main-content > .section,
    body.winter-page-viewcart #order-standard_cart #frmCheckout > .section {
        margin-top: 32px;
    }

    body.winter-page-configureproduct #frmConfigureProduct .section-header,
    body.winter-page-viewcart #order-standard_cart .section-header {
        margin-bottom: 16px;
    }

    body.winter-page-configureproduct #frmConfigureProduct .section-title,
    body.winter-page-viewcart #order-standard_cart .section-title {
        font-size: 22px;
        line-height: 30px;
    }

    body.winter-page-configureproduct .winter-cart-header,
    body.winter-page-viewcart #order-standard_cart .winter-cart-header {
        margin-bottom: 32px;
    }

    body.winter-page-configureproduct .winter-cart-header h1,
    body.winter-page-viewcart #order-standard_cart .winter-cart-header h1 {
        font-size: 32px;
        line-height: 40px;
    }

    body.winter-page-viewcart #order-standard_cart #frmCheckout .inline-form.flex-column-sm {
        display: flex;
        align-items: stretch;
        flex-direction: column;
    }

    body.winter-page-viewcart #order-standard_cart #frmCheckout .inline-form.flex-column-sm .inline-form-element {
        width: 100%;
        margin-right: 0;
    }

    body.winter-page-viewcart #order-standard_cart #frmCheckout .inline-form.flex-column-sm .inline-form-element + .inline-form-element {
        margin-top: 16px;
    }

    body.winter-page-viewcart #order-standard_cart .panel-switch {
        max-width: none;
    }

    body.winter-page-viewcart #order-standard_cart .search-group {
        display: block;
    }

    body.winter-page-viewcart #order-standard_cart .search-group-btn {
        margin: 12px 0 0;
    }

    body.winter-page-viewcart #order-standard_cart .search-group-btn .btn {
        width: 100%;
    }

    body.winter-page-viewcart #winterOrderSummaryMob {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1050;
        display: block;
        padding: 8px 16px;
        background: #fff;
        box-shadow: 0 -6px 20px rgba(23, 25, 28, .08);
    }

    body.winter-page-configureproduct #orderSummaryMob {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1050;
        display: block;
        padding: 8px 16px;
        background: #fff;
        box-shadow: 0 -6px 20px rgba(23, 25, 28, .08);
    }

    body.winter-page-viewcart #winterOrderSummaryMob .btn,
    body.winter-page-configureproduct #orderSummaryMob .btn {
        display: flex;
        width: 100%;
        min-height: 48px;
        align-items: center;
        justify-content: center;
        gap: 8px;
    }
}

/*
 * Checkout detail fidelity
 *
 * Lagom draws the selected state with the panel border only. The earlier
 * shared card rule also added an outline, which doubled the account divider.
 */
body.winter-page-viewcart #order-standard_cart #frmCheckout .panel-group {
    overflow: visible;
}

body.winter-page-viewcart #order-standard_cart #frmCheckout .panel-check.checked,
body.winter-page-viewcart #order-standard_cart #frmCheckout .panel-check:has(.icheck-control:checked) {
    outline: 0;
}

/* A one-item gateway list is both the first and last panel. Preserve all four
 * source corners instead of allowing the later `:last-child` rule to square
 * the top edge. */
body.winter-page-viewcart #order-standard_cart #frmCheckout .panel-check:only-child {
    border-radius: var(--winter-order-radius);
}

body.winter-page-viewcart #order-standard_cart #frmCheckout .panel-heading > label {
    min-height: 56px;
}

/* Preserve Lagom's gateway logo bounds for provider-supplied SVG/image sizes.
 * Production Alipay logos include intrinsic 2500px-wide SVG dimensions. */
body.winter-page-viewcart #order-standard_cart #paymentGatewaysContainer .check-icon {
    display: flex;
    max-width: 70px;
    align-items: center;
    justify-content: center;
}

body.winter-page-viewcart #order-standard_cart #paymentGatewaysContainer .check-icon img,
body.winter-page-viewcart #order-standard_cart #paymentGatewaysContainer .check-icon svg {
    width: 100%;
    height: auto;
}

/* Match Lagom's 24px form gutters without changing Bootstrap's global grid. */
body.winter-page-viewcart #order-standard_cart #frmCheckout .panel-collapse .panel-body > .row {
    margin-right: -12px;
    margin-left: -12px;
}

body.winter-page-viewcart #order-standard_cart #frmCheckout .panel-collapse .panel-body > .row > [class*="col-"] {
    padding-right: 12px;
    padding-left: 12px;
}

body.winter-page-viewcart #order-standard_cart #frmCheckout #containerExistingAccountSelect .panel-body > .alert.alert-xs.alert-danger {
    display: flex;
    overflow: auto;
    margin-bottom: 16px;
    padding: 6px 10px;
    color: #b6202a;
    font-size: 13px;
    line-height: 20px;
    background: #fceeef;
    border: 1px solid #fae1e2;
}

/* Production keeps these native posted fields in the form but does not expose
 * a second billing-address page inside the new-account panel. */
body.winter-page-viewcart #order-standard_cart #frmCheckout .winter-register-address-title,
body.winter-page-viewcart #order-standard_cart #frmCheckout .winter-register-address {
    display: none;
}

/* The order-form input rule is more specific than WHMCS's telephone plugin.
 * Restore Lagom's reserved country-flag/dial-code space. */
body.winter-page-viewcart #order-standard_cart #frmCheckout .intl-tel-input {
    display: block;
    width: 100%;
}

body.winter-page-viewcart #order-standard_cart #frmCheckout .intl-tel-input input.form-control,
body.winter-page-viewcart #order-standard_cart #frmCheckout .intl-tel-input input[type="tel"].form-control,
body.winter-page-viewcart #order-standard_cart #frmCheckout .intl-tel-input input[type="text"].form-control {
    padding-left: 106px;
}

/* Native renewal controls in the shared checkout grid and summary. */
#order-standard_cart.winter-renewals .winter-renewal-status { float: right; margin-left: 12px; }
#order-standard_cart.winter-renewals .winter-renewals-header {
    display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 24px;
}
#order-standard_cart.winter-renewals .winter-renewals-filters {
    display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px; max-width: 50%;
}
#order-standard_cart.winter-renewals .service-renewals-quick-filter,
#order-standard_cart.winter-renewals .service-renewals-filter { float: none; width: auto; margin: 0; }
#order-standard_cart.winter-renewals .service-renewals-filter { min-width: 220px; }
#order-standard_cart.winter-renewals .service-renewals { border: 0; }
#order-standard_cart.winter-renewals .service-renewal {
    margin: 0 0 16px; padding: 24px; background: var(--winter-order-surface);
    border: 1px solid var(--winter-order-border); border-radius: var(--winter-order-radius);
}
#order-standard_cart.winter-renewals .service-renewal h3 {
    margin: 0 0 6px; color: var(--winter-order-heading); font-size: 20px; line-height: 28px; overflow-wrap: anywhere;
}
#order-standard_cart.winter-renewals .service-renewal h4 {
    margin: 0 0 16px; color: var(--winter-order-body); font-size: 14px; line-height: 24px; overflow-wrap: anywhere;
}
#order-standard_cart.winter-renewals .service-renewal > .clearfix {
    display: flex; align-items: flex-end; justify-content: space-between; gap: 16px;
}
#order-standard_cart.winter-renewals .service-renewal .btn-add-renewal-to-cart { flex-shrink: 0; }
#order-standard_cart.winter-renewals #btnGoToCart { margin-top: 16px; }
#order-standard_cart.winter-renewals .loader.hidden { display: none; }
@media (max-width: 767px) {
    #order-standard_cart.winter-renewals .winter-renewals-header,
    #order-standard_cart.winter-renewals .service-renewal > .clearfix { flex-direction: column; align-items: stretch; }
    #order-standard_cart.winter-renewals .winter-renewals-filters { max-width: none; justify-content: flex-start; }
    #order-standard_cart.winter-renewals .service-renewal { padding: 18px; }
    #order-standard_cart.winter-renewals .winter-renewal-status { float: none; margin-bottom: 12px; }
}
