html.cart-page-document,body.cart-page { min-width:0; }
.cart-page { background:#f6f7f8; color:#17191d; }
.cart-page__content[hidden],.cart-page__empty[hidden] { display:none; }
.cart-page .site-header { background:#171b1e; }
.cart-page__main { min-height:calc(100vh - 78px); padding:48px 0 72px; }
.cart-page__container { width:min(1320px, calc(100% - 96px)); margin:0 auto; }
.cart-page__heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:30px; }
.cart-page__heading h1,.cart-page__summary h2,.cart-page__empty h2 { margin:0; font-size:42px; letter-spacing:-1.2px; line-height:1; }
.cart-page__heading>a { color:#4f565e; font-size:15px; text-decoration:none; }
.cart-page__content { display:grid; grid-template-columns:minmax(0,1fr) 310px; align-items:start; gap:22px; }
.cart-page__items { display:grid; gap:14px; }
.cart-page__item { display:grid; grid-template-columns:150px minmax(0,1fr) 220px; align-items:start; gap:20px; padding:18px; border:1px solid #e0e3e6; border-radius:8px; background:#fff; }
.cart-page__image { width:100%; min-width:0; align-self:start; aspect-ratio:1/1; border-radius:5px; background:#f1f3f5 center/contain no-repeat; }
.cart-page__product { min-width:0; }
.cart-page__product p,.cart-page__product h2,.cart-page__product>span,.cart-page__product ul { margin:0; }
.cart-page__product p { color:#737982; font-size:13px; font-weight:700; }
.cart-page__product h2 { margin-top:4px; font-size:20px; line-height:1.15; }
.cart-page__product>span { display:block; margin-top:7px; color:#737982; font-size:13px; }
.cart-page__product>span + span { margin-top:3px; }
.cart-page__product ul { display:grid; gap:5px; margin-top:14px; padding:0; list-style:none; }
.cart-page__product li { display:grid; grid-template-columns:112px minmax(0,1fr); gap:8px; color:#656b73; font-size:13px; line-height:1.3; }
.cart-page__product li b { color:#25292e; font-weight:600; white-space:nowrap; overflow-wrap:normal; word-break:normal; }
.cart-page__side { grid-column:3; min-width:0; display:flex; height:fit-content; min-height:0; flex-direction:column; align-items:stretch; align-self:start; justify-content:flex-start; gap:12px; }
.cart-page__controls { display:flex; justify-content:flex-end; }
.cart-page__stepper { display:grid; grid-template-columns:32px 40px 32px; height:34px; border:1px solid #d9dde1; border-radius:4px; overflow:hidden; }
.cart-page__stepper button,.cart-page__stepper input { display:grid; min-width:0; place-items:center; border:0; background:#fff; color:#20242a; font:inherit; }
.cart-page__stepper button { cursor:pointer; font-size:18px; }
.cart-page__stepper input { border-inline:1px solid #d9dde1; text-align:center; appearance:textfield; outline:0; box-shadow:none; }
.cart-page__stepper input:focus { outline:0; box-shadow:none; }
.cart-page__stepper input:focus-visible { outline:2px solid #9c1b21; outline-offset:-2px; position:relative; z-index:1; }
.cart-page__stepper input::-webkit-inner-spin-button,.cart-page__stepper input::-webkit-outer-spin-button { margin:0; appearance:none; }
.cart-page__remove { align-self:flex-start; min-height:32px; margin-top:0; margin-left:auto; padding:0 11px; border:1px solid #c9343a; border-radius:4px; background:#fff; color:#9c1b21; font:inherit; font-size:12px; font-weight:700; cursor:pointer; transition:background-color .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease; }
.cart-page__remove:hover { border-color:#ef1824; background:#ef1824; color:#fff; }
.cart-page__remove:focus-visible { outline:0; border-color:#ef1824; box-shadow:0 0 0 3px rgba(239,24,36,.22); }
.cart-page__price { display:flex; min-width:0; margin-top:0; flex-direction:column; align-items:flex-end; justify-content:flex-start; gap:7px; text-align:right; }
.cart-page__price span { color:#777e86; font-size:12px; }
.cart-page__price strong { color:#353a40; font-size:14px; }
.cart-page__price b { color:#17191d; font-size:19px; }
.cart-page__summary { min-width:0; padding:24px; border:1px solid #e0e3e6; border-radius:8px; background:#fff; }
.cart-page__summary h2 { font-size:25px; }
.cart-page__summary-row,.cart-page__total { display:flex; justify-content:space-between; gap:12px; }
.cart-page__summary-row { margin-top:20px; color:#687079; font-size:14px; }
.cart-page__total { margin-top:20px; padding-top:18px; border-top:1px solid #e0e3e6; color:#17191d; font-size:18px; font-weight:700; }
.cart-page__total strong { font-size:22px; }
.cart-page__currency-totals { display:grid; gap:7px; margin-top:14px; padding-top:14px; border-top:1px solid #e0e3e6; }
.cart-page__currency-totals[hidden] { display:none; }
.cart-page__currency-totals div { display:flex; justify-content:space-between; gap:12px; color:#687079; font-size:14px; }
.cart-page__currency-totals strong { color:#17191d; }
.cart-page__checkout,.cart-page__request button { width:100%; min-height:48px; margin-top:20px; border:0; border-radius:5px; background:#ef1824; color:#fff; font:inherit; font-size:15px; font-weight:700; cursor:pointer; }
.cart-page__checkout[aria-disabled="true"] { background:#9ba2aa; color:#fff; cursor:not-allowed; }
.cart-page__minimum-message { margin:9px 0 0; color:#b42318; font-size:13px; font-weight:600; line-height:1.35; text-align:center; }
.cart-page__request { margin-top:18px; padding-top:18px; border-top:1px solid #e0e3e6; }
.cart-page__request h3,.cart-page__request p { margin:0; }
.cart-page__request h3 { font-size:18px; line-height:1.15; }
.cart-page__request p { margin-top:5px; color:#737982; font-size:13px; line-height:1.35; }
.cart-page__request label { display:block; margin-top:12px; color:#555b64; font-size:13px; }
.cart-page__request input:not([type="hidden"]),.cart-page__request textarea { box-sizing:border-box; width:100%; margin-top:5px; padding:9px 10px; border:1px solid #d7dce0; border-radius:5px; color:#20242a; font:inherit; font-size:14px; resize:vertical; }
.cart-page__request label { position:relative; }
.cart-page__request .consent-field { display:grid; grid-template-columns:18px minmax(0,1fr); gap:8px; align-items:start; }
.cart-page__request .consent-field input[type="checkbox"] { width:16px; height:16px; margin:2px 0 0; padding:0; }
.cart-page__request .consent-field .form-field__error { grid-column:1 / -1; }
.cart-page__request input[aria-invalid="true"],.cart-page__request textarea[aria-invalid="true"] { border-color:#b42318; }
.cart-page__request .form-field__error { display:block; margin-top:4px; color:#b42318; font-size:12px; line-height:1.3; }
.cart-page__request input:focus-visible,.cart-page__request textarea:focus-visible { outline:2px solid rgba(180,35,24,.48); outline-offset:2px; }
.cart-page__request button[aria-disabled="true"] { background:#9ba2aa; color:#fff; cursor:not-allowed; }
.cart-page__form-status { margin-top:10px !important; color:#687079; font-size:12px; line-height:1.35; }
.cart-page__request button { margin-top:14px; background:#272b30; cursor:default; }
.cart-page__empty { max-width:560px; margin-inline:auto; padding:38px; border:1px solid #e0e3e6; border-radius:8px; background:#fff; text-align:center; }
.cart-page__empty h2 { font-size:28px; }.cart-page__empty p { margin:12px 0 22px; color:#6e757d; line-height:1.5; }
.cart-page__catalog-button { display:inline-flex; min-height:46px; align-items:center; justify-content:center; padding:0 20px; border-radius:5px; background:#ef1824; color:#fff; font-weight:700; text-decoration:none; }
@media (max-width:900px){.cart-page__content{grid-template-columns:1fr}.cart-page__summary{order:-1}.cart-page__item{grid-template-columns:120px minmax(0,1fr) 185px}.cart-page__side{grid-column:3}.cart-page__price{align-items:flex-end;text-align:right;}}
@media (max-width:600px){.cart-page .site-header{display:grid;grid-template-columns:clamp(96px,31vw,126px) minmax(0,1fr) 42px;grid-template-areas:"brand consultation cart" "nav nav nav";min-width:0;padding:12px var(--header-gutter) 14px;column-gap:clamp(5px,2vw,12px);row-gap:12px}.cart-page .site-header .brand{grid-area:brand;min-width:0}.cart-page .site-header .brand img{width:clamp(96px,31vw,126px)}.cart-page .site-header .cart-toggle{grid-area:cart;justify-self:end;margin:0}.cart-page .site-header .consultation-link{grid-area:consultation;width:auto;min-width:0;height:44px;margin:0;padding-inline:clamp(4px,2.4vw,16px);justify-self:end;font-size:clamp(10px,3vw,13px)}.cart-page .site-header .site-nav{grid-area:nav;display:flex;min-width:0;flex-wrap:wrap;justify-content:space-between;gap:10px 14px}.cart-page .site-header .site-nav a{font-size:14px}.cart-page__main{padding:28px 0 42px}.cart-page__container{width:calc(100% - 32px)}.cart-page__heading{align-items:flex-start;flex-direction:column;margin-bottom:20px}.cart-page__heading h1{font-size:34px}.cart-page__item{grid-template-columns:88px minmax(0,1fr);gap:14px;padding:14px}.cart-page__side{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"controls price" "remove remove";gap:10px 14px;margin-top:2px}.cart-page__controls{grid-area:controls;justify-content:flex-start}.cart-page__remove{grid-area:remove;justify-self:end;margin-top:0}.cart-page__price{grid-area:price;min-width:0;margin-top:0;align-items:flex-end;text-align:right}.cart-page__product{padding-right:0}.cart-page__product h2{font-size:17px}.cart-page__product li{grid-template-columns:minmax(0,1fr);gap:2px;font-size:12px}.cart-page__summary{padding:18px}.cart-page__empty{padding:28px 18px}.cart-page__empty h2{font-size:25px;}}

@media (max-width:360px){.cart-page__item{grid-template-columns:72px minmax(0,1fr);gap:12px}.cart-page__product li{grid-template-columns:minmax(0,1fr);gap:2px}.cart-page__product h2{font-size:16px}.cart-page__product>span{overflow-wrap:anywhere;}}

@media (min-width:601px) and (max-width:900px){
  .cart-page__item { align-items:start; }
  .cart-page__side { align-self:start; }
}

/* Keep the control column beside the product at intermediate CSS widths.
   This also covers a narrowed Safari window with page zoom applied. */
@media (min-width:481px) and (max-width:600px){
  .cart-page__item {
    grid-template-columns:100px minmax(0, 1fr) 160px;
    align-items:start;
    gap:12px;
    padding:14px;
  }

  .cart-page__side {
    grid-column:3;
    display:flex;
    height:fit-content;
    min-height:0;
    align-self:start;
    justify-content:flex-start;
    gap:12px;
    margin-top:0;
  }

  .cart-page__controls { justify-content:flex-end; }
  .cart-page__price { align-items:flex-end; text-align:right; }
  .cart-page__remove { align-self:flex-start; margin-left:auto; }
}

/* Keep quantity, pricing and removal controls in one ordered column on phones. */
@media (max-width:480px){
  .cart-page__side { display:flex; flex-direction:column; align-self:stretch; margin-top:0; gap:12px; }
  .cart-page__controls { justify-content:flex-end; }
  .cart-page__price { align-items:flex-end; text-align:right; }
  .cart-page__remove { align-self:flex-start; margin-left:auto; }
}

/* The cart page has a later header rule; keep its intermediate navigation
   stretched instead of letting that rule collapse the links to the left. */
@media (min-width:601px) and (max-width:899px) {
  .cart-page .site-header .site-nav {
    justify-content: space-between;
    gap: clamp(12px, 2.5vw, 24px);
    width: 100%;
  }
}
