.servicepro-app-shop .servicepro-shop-slider { margin: 0; --servicepro-shop-hero-height: 520px; }
.servicepro-app-shop .servicepro-shop-slider--compact { --servicepro-shop-hero-height: 380px; }
.servicepro-app-shop .servicepro-shop-slider--tall { --servicepro-shop-hero-height: 680px; }
.servicepro-app-shop .servicepro-shop-slider .servicepro-shop-hero {
    position: relative;
    min-height: var(--servicepro-shop-hero-height);
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
    overflow: hidden;
    margin: 0;
}
.servicepro-app-shop .servicepro-shop-slider .servicepro-shop-hero__copy { padding: clamp(24px, 4vw, 58px); }
.servicepro-app-shop .servicepro-shop-slider .servicepro-shop-hero h1,
.servicepro-app-shop .servicepro-shop-slider .servicepro-shop-hero h2 { font-size: clamp(30px, 3.5vw, 56px); line-height: 1.08; overflow-wrap: anywhere; }
.servicepro-app-shop .servicepro-shop-slider .servicepro-shop-hero > img {
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: var(--servicepro-shop-hero-height);
    object-fit: var(--servicepro-shop-image-fit);
    object-position: var(--servicepro-shop-image-position);
    border-radius: 0;
    align-self: center;
}
.servicepro-app-shop .servicepro-shop-slider--overlay .servicepro-shop-hero { grid-template-columns: minmax(0, 1fr); }
.servicepro-app-shop .servicepro-shop-slider--overlay .servicepro-shop-hero > img { position: absolute; inset: 0; max-height: none; }
.servicepro-app-shop .servicepro-shop-slider--overlay .servicepro-shop-hero__copy { z-index: 1; color: #fff; background: linear-gradient(90deg, rgba(0,0,0,.65), rgba(0,0,0,.25)); }
.servicepro-app-shop .servicepro-shop-slider--overlay .servicepro-shop-hero__copy > p,
.servicepro-app-shop .servicepro-shop-slider--overlay .servicepro-shop-hero__copy > h1,
.servicepro-app-shop .servicepro-shop-slider--overlay .servicepro-shop-hero__copy > h2 { color: inherit; max-width: 640px; }
@media (max-width: 760px) {
    .servicepro-app-shop .servicepro-shop-slider .servicepro-shop-hero { grid-template-columns: minmax(0, 1fr); min-height: 0; }
    .servicepro-app-shop .servicepro-shop-slider .servicepro-shop-hero > img { max-height: 360px; height: 260px; }
    .servicepro-app-shop .servicepro-shop-slider--overlay .servicepro-shop-hero { min-height: 460px; }
    .servicepro-app-shop .servicepro-shop-slider--overlay .servicepro-shop-hero > img { max-height: none; height: 100%; }
}

.servicepro-app-shop .servicepro-catalog-sidebar .servicepro-sidebar-block > h2 {
    margin: 0 0 16px;
    font-size: 20px;
    font-weight: 650;
    line-height: 1.25;
    text-transform: none;
    overflow-wrap: anywhere;
}
.servicepro-app-shop .servicepro-catalog-sidebar .servicepro-filter-param h3 {
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
    margin: 0;
}
.servicepro-app-shop .servicepro-catalog-sidebar .servicepro-sidebar-category { margin: 0; padding: 0; }
.servicepro-app-shop .servicepro-catalog-sidebar .servicepro-sidebar-category__row { min-height: 32px; padding: 2px 0; }
.servicepro-app-shop .servicepro-catalog-sidebar .servicepro-sidebar-category__row > a { font-size: 14px; line-height: 1.4; }
.servicepro-app-shop .servicepro-catalog-sidebar .servicepro-sidebar-category__row > button {
    width: 28px;
    height: 28px;
    min-height: 28px;
    padding: 0;
    margin: 0;
}
.servicepro-app-shop .servicepro-catalog-sidebar { display: flex; flex-direction: column; }
.servicepro-app-shop .servicepro-catalog-sidebar > section { width: 100%; box-sizing: border-box; }

.servicepro-app-shop .product-info .servicepro-features {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    margin: 0;
    padding: 0;
}
.servicepro-app-shop .product-info .servicepro-features > .servicepro-features__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
    align-items: baseline;
    width: 100%;
    padding: 10px 0;
    margin: 0;
    gap: 16px;
    line-height: 1.45;
}
.servicepro-app-shop .product-info .servicepro-features .name,
.servicepro-app-shop .product-info .servicepro-features .value {
    display: block;
    width: auto;
    margin: 0;
    padding: 0;
    font-size: 14px;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}
.servicepro-app-shop .product-info .servicepro-features .divider { display: block; width: 100%; margin: 16px 0 0; }
.servicepro-app-shop .product-info .servicepro-features .divider h3 { margin: 0; font-size: 18px; }

.servicepro-app-shop .product-purchase .purchase > .servicepro-purchase-controls {
    --servicepro-buy-height: 48px;
    display: flex;
    gap: 8px;
    align-items: center;
}
.servicepro-app-shop .servicepro-purchase-controls .quantity-wrapper {
    position: relative;
    flex: 0 0 120px;
    margin: 0;
}
.servicepro-app-shop .servicepro-purchase-controls .quantity-wrapper > .wa-flex:first-child {
    position: absolute;
    bottom: 100%;
    width: 100%;
    margin-bottom: 4px;
}
.servicepro-app-shop .servicepro-purchase-controls .quantity-wrapper > .wa-flex:last-child {
    height: var(--servicepro-buy-height);
    grid-template-columns: 32px minmax(0, 1fr) 32px;
    border: 1px solid var(--servicepro-border);
    box-sizing: border-box;
    border-radius: var(--servicepro-button-radius);
}
.servicepro-app-shop .servicepro-purchase-controls .quantity-wrapper input,
.servicepro-app-shop .servicepro-purchase-controls .quantity-wrapper button {
    width: 100%;
    height: 100%;
    min-height: 0;
    border: 0;
    border-radius: 0;
    font-size: 16px;
    line-height: normal;
    appearance: none;
}
.servicepro-app-shop .servicepro-purchase-controls .quantity-wrapper input { border-inline: 1px solid var(--servicepro-border); }
.servicepro-app-shop .servicepro-purchase-controls .volume-buttons { display: block; }
.servicepro-app-shop .product-purchase .purchase > .servicepro-purchase-controls > button {
    height: var(--servicepro-buy-height);
    min-height: var(--servicepro-buy-height);
    margin: 0;
    box-sizing: border-box;
}
.servicepro-app-shop .product-purchase .purchase > .servicepro-purchase-controls > button[type="submit"] {
    flex: 1 1 0;
    min-width: 0;
    padding: 0 16px;
    font-size: 16px;
    line-height: 1.2;
    white-space: nowrap;
}
.servicepro-app-shop .product-purchase .purchase > .servicepro-purchase-controls > .servicepro-product-tool {
    flex: 0 0 var(--servicepro-buy-height);
    width: var(--servicepro-buy-height);
    padding: 0;
    border-radius: var(--servicepro-button-radius);
}
.servicepro-app-shop .servicepro-purchase-controls .servicepro-cart-message:not(:empty),
.servicepro-app-shop .servicepro-purchase-controls .added2cart { flex-basis: 100%; }
.servicepro-app-shop .servicepro-purchase-controls .servicepro-cart-message:empty { display: none; }
.servicepro-app-shop .servicepro-purchase-controls .adding2cart:empty:not(.loading) { display: none; }
.servicepro-app-shop .servicepro-recommendation__rail { width: 100%; margin: 0; padding: 0; overflow: visible; --servicepro-carousel-columns: 4; }
@media (max-width: 1100px) { .servicepro-app-shop .servicepro-recommendation__rail { --servicepro-carousel-columns: 2; } }
@media (max-width: 600px) {
    .servicepro-app-shop .product-purchase .purchase > .servicepro-purchase-controls { --servicepro-buy-height: 40px; gap: 5px; }
    .servicepro-app-shop .servicepro-purchase-controls .quantity-wrapper { flex-basis: 88px; }
    .servicepro-app-shop .servicepro-purchase-controls .quantity-wrapper > .wa-flex:last-child { grid-template-columns: 26px minmax(0, 1fr) 26px; }
    .servicepro-app-shop .product-purchase .purchase > .servicepro-purchase-controls > button[type="submit"] { padding-inline: 8px; font-size: 13px; }
    .servicepro-app-shop .product-purchase .cart { padding: 16px 12px; }
}
@media (max-width: 360px) {
    .servicepro-app-shop .servicepro-purchase-controls .quantity-wrapper { flex-basis: 72px; }
    .servicepro-app-shop .servicepro-purchase-controls .quantity-wrapper > .wa-flex:last-child { grid-template-columns: 22px minmax(0, 1fr) 22px; }
}

/* Give product features the full panel width and preserve whole words. */
.servicepro-app-shop #product-panel-features .product-info--wrapper {
    margin:0;
    padding:0;
    width:100%;
    max-width:none;
}
.servicepro-app-shop #product-panel-features .servicepro-features .name,
.servicepro-app-shop #product-panel-features .servicepro-features .value {
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
}
@media (max-width: 600px) {
    .servicepro-app-shop #product-panel-features { padding:24px 14px; }
    .servicepro-app-shop #product-panel-features .servicepro-features { margin:0; padding:0; }
    .servicepro-app-shop #product-panel-features .servicepro-features__row {
        display:flex;
        flex-wrap:wrap;
        gap:6px 12px;
    }
    .servicepro-app-shop #product-panel-features .servicepro-features__row > span {
        flex:1 1 120px;
        min-width:min-content;
        width:auto;
    }
}

/* Checkout controls retain visible boundaries. */
.servicepro-app-shop #js-order-page .wa-delivery-types-section .wa-type-wrapper {
    border:1px solid var(--servicepro-border, #ccc) !important;
    border-radius:4px;
    box-shadow:none;
}
.servicepro-app-shop #js-order-page .wa-delivery-types-section .wa-type-wrapper.is-active {
    border-color:var(--servicepro-accent, #777) !important;
    background:var(--servicepro-paper, #f7f7f7);
}
.servicepro-app-shop #js-order-page .wa-delivery-variants-section .wa-dropdown > .wa-dropdown-toggle {
    border:1px solid var(--servicepro-border, #ccc) !important;
    border-radius:var(--servicepro-input-radius, 8px);
    box-sizing:border-box;
}
.servicepro-app-shop #js-order-page .s-section-header > .s-header {
    font-size:25px;
    line-height:1.3;
    margin:0;
}
.servicepro-app-shop #wa-step-auth-section > .wa-section-header .wa-header,
.servicepro-app-shop #wa-step-region-section > .wa-section-header .wa-header,
.servicepro-app-shop #wa-step-payment-section > .wa-section-header .wa-header {
    font-size:20px;
    line-height:1.4;
}
.servicepro-app-shop #js-order-cart > .s-section-header {
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:12px;
}
.servicepro-app-shop #js-order-cart .s-delete-button {
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin:0 0 0 auto;
    padding:0;
    min-height:0;
    border:0 !important;
    border-radius:0;
    background:transparent !important;
    box-shadow:none;
    color:#888 !important;
    font:inherit;
    font-size:14px;
    font-weight:400;
    letter-spacing:normal;
    text-transform:none;
    text-decoration:underline;
    cursor:pointer;
}
.servicepro-app-shop #js-order-cart .s-delete-icon { width:12px; height:12px; color:#aaa; }
.servicepro-app-shop #js-order-cart .s-delete-icon svg { display:block; width:12px; height:12px; fill:currentColor; }
.servicepro-app-shop .servicepro-shop-main:has(#js-order-page) > .servicepro-breadcrumbs { margin-bottom:24px; }
.servicepro-app-shop #js-order-page { margin-top:0; row-gap:24px !important; }
.servicepro-app-shop #js-order-page > .servicepro-order-title { margin:0; }

.servicepro-app-shop #js-order-page > .s-order-column { margin-top:0; }
.servicepro-app-shop #js-order-cart .s-delete-button { white-space:nowrap; flex-shrink:0; }

/* Payment choices use the native selected state. */
.servicepro-app-shop #wa-step-payment-section .wa-methods-list .wa-method-wrapper {
    border:1px solid var(--servicepro-border, #ccc) !important;
    border-radius:8px;
    background:var(--servicepro-surface, #fff);
    box-shadow:none;
    box-sizing:border-box;
}
.servicepro-app-shop #wa-step-payment-section .wa-methods-list .wa-method-wrapper.is-active {
    border-color:var(--servicepro-accent, #336699) !important;
    box-shadow:inset 0 0 0 1px var(--servicepro-accent, #336699);
    background:#f0f4f8;
    background:color-mix(in srgb, var(--servicepro-accent, #336699) 8%, var(--servicepro-surface, #fff));
}
.servicepro-app-shop #wa-step-payment-section .wa-method-wrapper:focus-within {
    outline:2px solid var(--servicepro-accent, #336699);
    outline-offset:2px;
}

.servicepro-app-shop #js-order-page .wa-delivery-types-section .wa-types-list {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}
.servicepro-app-shop #js-order-page .wa-delivery-types-section .wa-types-list > .wa-type-wrapper {
    margin:0;
    width:calc((100% - 24px) / 3);
    box-sizing:border-box;
    border-radius:4px;
}
@media (max-width:600px) {
    .servicepro-app-shop #js-order-page .wa-delivery-types-section .wa-types-list > .wa-type-wrapper { width:100%; }
}

/* Supply native checkout dialog colors without changing map controls. */
.servicepro-app-shop .wa-order-dialog {
    --bg-color:var(--servicepro-surface, #fff);
    --bg-color-accent:var(--servicepro-surface, #fff);
    --divider-color:var(--servicepro-border, #ddd);
    --text-color:var(--servicepro-ink, #222);
    --element-border-radius:4px;
}
body.servicepro-app-shop .wa-order-dialog > .wa-dialog-background {
    background:rgba(0,0,0,.35) !important;
}
body.servicepro-app-shop .wa-order-dialog > .wa-dialog-body {
    background:var(--servicepro-surface, #fff) !important;
    color:var(--servicepro-ink, #222);
}

/* Keep pickup list typography independent of the storefront font scale. */
.servicepro-app-shop #wa-shipping-pickup-dialog .wa-sidebar-section { font-size:14px; font-weight:400; }
.servicepro-app-shop #wa-shipping-pickup-dialog .wa-variants-list .wa-variant-wrapper > .wa-name {
    font-size:16px;
    font-weight:400;
    line-height:1.4;
}
.servicepro-app-shop #wa-shipping-pickup-dialog .wa-variants-list .wa-variant-wrapper .wa-details { font-size:14px; line-height:1.45; font-weight:400; }
.servicepro-app-shop #js-order-page .wa-delivery-types-section .wa-type-wrapper .wa-name a {
    text-decoration:none;
    border-bottom:0;
}
.servicepro-app-shop #js-order-cart .js-delete-product,
.servicepro-app-shop #js-order-cart .js-delete-product a {
    color:#888 !important;
    font-weight:400;
    text-decoration:none;
}
.servicepro-app-shop #js-order-cart .js-delete-product .wa-icon { color:inherit; }
.servicepro-app-shop #js-order-cart .js-delete-product svg { fill:currentColor; }
.servicepro-app-shop #js-order-cart .js-delete-product:hover,
.servicepro-app-shop #js-order-cart .js-delete-product:hover a { color:#555 !important; }

.servicepro-app-shop #wa-shipping-pickup-dialog .js-use-variant {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:0 24px;
    border:1px solid var(--servicepro-button-background, var(--servicepro-dark)) !important;
    border-radius:var(--servicepro-button-radius) !important;
    background:var(--servicepro-button-background, var(--servicepro-dark)) !important;
    color:var(--servicepro-button-foreground, var(--servicepro-ink-inverse)) !important;
    box-shadow:none;
    font-family:inherit;
    font-size:12px;
    font-weight:650;
    letter-spacing:.12em;
    line-height:1.2;
    text-align:center;
    text-transform:lowercase;
    cursor:pointer;
    transition:background 180ms ease, color 180ms ease, transform 180ms ease;
}
.servicepro-app-shop #wa-shipping-pickup-dialog .js-use-variant:hover {
    transform:translateY(-2px);
    background:transparent !important;
    color:var(--servicepro-button-background, var(--servicepro-dark)) !important;
}
.servicepro-app-shop #wa-shipping-pickup-dialog .js-use-variant:focus-visible {
    outline:2px solid var(--servicepro-accent);
    outline-offset:3px;
}
