/* =========================================================
   SWISS RACE CUSTOMS — PANIER
========================================================= */

.src-cart-page,
.src-cart-page * {
  box-sizing: border-box;
}


.src-cart-page {
  width: 100%;

  background: #f3f3f3;

  color: #111;
}


.src-cart-container {
  width: min(
    calc(100% - 48px),
    1180px
  );

  margin: 0 auto;
}


/* =========================================================
   HERO
========================================================= */

.src-cart-hero {
  position: relative;

  padding:
    72px
    0
    62px;

  overflow: hidden;

  background: #e6e6e6;

  border-bottom:
    1px
    solid
    #d3d3d3;
}


.src-cart-hero::before {
  content: "";

  position: absolute;

  top: 0;
  right: 0;

  width: 31%;
  height: 100%;

  background: #ddd;
}


.src-cart-hero::after {
  content: "";

  position: absolute;

  right: 7%;
  bottom: -150px;

  width: 320px;
  height: 320px;

  border:
    1px
    solid
    rgba(0, 0, 0, .06);

  border-radius: 50%;

  pointer-events: none;
}


.src-cart-hero__content {
  position: relative;

  z-index: 2;

  max-width: 700px;
}


.src-cart-eyebrow {
  margin-bottom: 11px;

  color: #898989;

  font-size: 9px;
  font-weight: 700;

  letter-spacing: .17em;

  text-transform: uppercase;
}


.src-cart-hero__title {
  margin:
    0
    0
    18px;

  color: #111;

  font-size:
    clamp(
      46px,
      5vw,
      64px
    );

  font-weight: 750;

  line-height: 1;

  letter-spacing: -2.8px;
}


.src-cart-hero__text {
  max-width: 560px;

  margin: 0;

  color: #5f5f5f;

  font-size: 14px;

  line-height: 1.7;
}


/* =========================================================
   CONTENT
========================================================= */

.src-cart-content {
  min-height: 500px;

  padding:
    70px
    0
    95px;

  background: #f3f3f3;
}


/* =========================================================
   PANIER VIDE
========================================================= */

.src-cart-empty {
  max-width: 650px;

  margin: 0 auto;

  padding:
    55px
    45px;

  border:
    1px
    solid
    #d7d7d7;

  background: #fff;

  text-align: center;
}


.src-cart-empty__icon {
  display: grid;

  width: 52px;
  height: 52px;

  place-items: center;

  margin:
    0
    auto
    25px;

  border:
    1px
    solid
    #d5d5d5;

  border-radius: 50%;

  background: #f7f7f7;
}


.src-cart-empty__icon svg {
  width: 22px;
  height: 22px;

  fill: none;

  stroke: #111;

  stroke-width: 1.5;

  stroke-linecap: round;

  stroke-linejoin: round;
}


.src-cart-empty__eyebrow {
  margin-bottom: 11px;

  color: #929292;

  font-size: 9px;
  font-weight: 700;

  letter-spacing: .16em;

  text-transform: uppercase;
}


.src-cart-empty h2 {
  margin:
    0
    0
    17px;

  color: #111;

  font-size: 32px;
  font-weight: 700;

  line-height: 1.05;

  letter-spacing: -1.4px;
}


.src-cart-empty p {
  max-width: 450px;

  margin:
    0
    auto;

  color: #666;

  font-size: 13px;

  line-height: 1.7;
}


.src-cart-empty__button {
  display: inline-flex;

  min-width: 210px;
  min-height: 48px;

  align-items: center;
  justify-content: space-between;

  gap: 30px;

  margin-top: 27px;

  padding:
    0
    18px;

  background: #111;

  color: #fff;

  font-size: 11px;
  font-weight: 700;

  text-decoration: none;
}


.src-cart-empty__button:hover {
  background: #292929;

  color: #fff;
}


/* =========================================================
   BENEFITS
========================================================= */

.src-cart-benefits {
  display: grid;

  max-width: 900px;

  grid-template-columns:
    repeat(
      3,
      minmax(0, 1fr)
    );

  margin:
    35px
    auto
    0;

  border:
    1px
    solid
    #d7d7d7;
}


.src-cart-benefit {
  display: flex;

  min-height: 90px;

  align-items: center;

  gap: 11px;

  padding:
    18px
    20px;

  border-right:
    1px
    solid
    #d7d7d7;
}


.src-cart-benefit:last-child {
  border-right: 0;
}


.src-cart-benefit__icon {
  display: grid;

  width: 21px;
  height: 21px;

  flex:
    0
    0
    21px;

  place-items: center;

  border-radius: 50%;

  background: #111;

  color: #fff;

  font-size: 8px;
}


.src-cart-benefit strong {
  display: block;

  margin-bottom: 3px;

  color: #111;

  font-size: 11px;
}


.src-cart-benefit div > span {
  display: block;

  color: #777;

  font-size: 9px;

  line-height: 1.45;
}


/* =========================================================
   WRAPPER WOOCOMMERCE
========================================================= */

.src-cart-woocommerce {
  width: 100%;
}


.src-cart-page
.woocommerce {
  width: 100%;
}


/* =========================================================
   WOOCOMMERCE BLOCK CART — LAYOUT
========================================================= */

.src-cart-page
.wc-block-cart {
  display: grid !important;

  grid-template-columns:
    minmax(0, 1fr)
    350px !important;

  align-items: start;

  gap: 48px !important;

  width: 100%;

  margin: 0 !important;
}


.src-cart-page
.wc-block-cart__main {
  width: 100% !important;

  margin: 0 !important;

  padding: 0 !important;
}


.src-cart-page
.wc-block-cart__sidebar {
  width: 100% !important;

  margin: 0 !important;

  padding:
    28px !important;

  border:
    1px
    solid
    #d5d5d5 !important;

  background:
    #fff !important;
}


/* =========================================================
   TABLE / CONTOUR PRODUITS
========================================================= */

.src-cart-page
.wc-block-cart-items {
  width: 100% !important;

  margin: 0 !important;

  border:
    1px
    solid
    #d4d4d4 !important;

  border-collapse:
    separate !important;

  border-spacing:
    0 !important;

  background:
    #fff !important;
}


/* =========================================================
   EN-TÊTE PRODUIT / TOTAL
========================================================= */

.src-cart-page
.wc-block-cart-items
thead th {
  padding:
    17px
    22px !important;

  border-bottom:
    1px
    solid
    #dedede !important;

  background:
    #f6f6f6 !important;

  color:
    #666 !important;

  font-size:
    9px !important;

  font-weight:
    700 !important;

  line-height:
    1 !important;

  letter-spacing:
    .06em !important;

  text-transform:
    uppercase;
}


.src-cart-page
.wc-block-cart-items
thead th:last-child {
  text-align: right;
}


/* =========================================================
   LIGNE PRODUIT — LE FIX IMPORTANT
========================================================= */

.src-cart-page
.wc-block-cart-items__row {
  min-height: 190px !important;
}


.src-cart-page
.wc-block-cart-items__row td {
  padding-top:
    30px !important;

  padding-bottom:
    30px !important;

  border-bottom:
    1px
    solid
    #e5e5e5 !important;

  vertical-align:
    top !important;
}


.src-cart-page
.wc-block-cart-items__row:last-child td {
  border-bottom:
    0 !important;
}


/* =========================================================
   IMAGE PRODUIT
========================================================= */

.src-cart-page
.wc-block-cart-item__image {
  width:
    125px !important;

  padding-left:
    22px !important;

  padding-right:
    24px !important;

  vertical-align:
    middle !important;
}


.src-cart-page
.wc-block-cart-item__image a {
  display: flex !important;

  width:
    100px !important;

  height:
    100px !important;

  align-items: center;
  justify-content: center;

  overflow: hidden;

  background:
    #f7f7f7;

  border:
    1px
    solid
    #ededed;
}


.src-cart-page
.wc-block-cart-item__image img {
  display: block;

  width:
    100% !important;

  height:
    100% !important;

  padding:
    7px;

  object-fit:
    contain !important;
}


/* =========================================================
   ZONE TEXTE PRODUIT
========================================================= */

.src-cart-page
.wc-block-cart-item__product {
  padding:
    30px
    28px
    30px
    0 !important;

  vertical-align:
    top !important;
}


/* NOM */

.src-cart-page
.wc-block-components-product-name {
  display: block !important;

  max-width:
    430px;

  margin:
    0
    0
    11px !important;

  color:
    #111 !important;

  font-size:
    13px !important;

  font-weight:
    650 !important;

  line-height:
    1.5 !important;

  text-decoration:
    none !important;
}


/* PRIX */

.src-cart-page
.wc-block-cart-item__prices {
  display: block;

  margin:
    0
    0
    12px !important;

  color:
    #333;

  font-size:
    12px !important;

  line-height:
    1.4;
}


/* =========================================================
   VARIATIONS PRODUIT
========================================================= */

.src-cart-page
.wc-block-components-product-metadata {
  margin:
    12px
    0
    18px !important;

  padding: 0 !important;
}


.src-cart-page
.wc-block-components-product-details {
  margin:
    0 !important;

  padding:
    0 !important;

  list-style:
    none !important;
}


.src-cart-page
.wc-block-components-product-details li {
  display: flex;

  align-items: baseline;

  gap: 5px;

  margin:
    0
    0
    5px !important;

  color:
    #666;

  font-size:
    10px !important;

  line-height:
    1.5;
}


.src-cart-page
.wc-block-components-product-details__name {
  font-weight:
    600 !important;

  color:
    #444;
}


.src-cart-page
.wc-block-components-product-details__value {
  color:
    #777;
}


/* =========================================================
   QUANTITÉ
========================================================= */

.src-cart-page
.wc-block-components-quantity-selector {
  min-width:
    115px;

  height:
    38px;

  margin:
    17px
    0
    0 !important;

  border:
    1px
    solid
    #d2d2d2 !important;

  border-radius:
    3px !important;

  background:
    #fff !important;
}


.src-cart-page
.wc-block-components-quantity-selector
input {
  min-width:
    45px !important;

  height:
    36px !important;

  font-size:
    11px !important;
}


.src-cart-page
.wc-block-components-quantity-selector
button {
  width:
    34px !important;

  height:
    36px !important;
}


/* =========================================================
   REMOVE
========================================================= */

.src-cart-page
.wc-block-cart-item__remove-link {
  display: inline-block;

  margin-top:
    14px !important;

  padding:
    0 !important;

  color:
    #777 !important;

  font-size:
    9px !important;

  line-height:
    1.4;

  text-decoration:
    underline;

  text-underline-offset:
    3px;
}


.src-cart-page
.wc-block-cart-item__remove-link:hover {
  color:
    #111 !important;
}


/* =========================================================
   TOTAL PRODUIT À DROITE
========================================================= */

.src-cart-page
.wc-block-cart-item__total {
  width:
    135px !important;

  padding:
    32px
    22px
    30px
    15px !important;

  color:
    #111;

  font-size:
    12px !important;

  font-weight:
    650;

  text-align:
    right !important;

  white-space:
    nowrap;
}


/* =========================================================
   SIDEBAR — TOTAL PANIER
========================================================= */

.src-cart-page
.wc-block-cart__totals-title {
  margin:
    0
    0
    14px !important;

  color:
    #111;

  font-size:
    10px !important;

  font-weight:
    700 !important;

  letter-spacing:
    .05em;

  text-transform:
    uppercase;
}


.src-cart-page
.wc-block-components-totals-wrapper {
  padding:
    15px
    0 !important;

  border-top:
    1px
    solid
    #ddd !important;
}


.src-cart-page
.wc-block-components-totals-item__label {
  color:
    #444;

  font-size:
    11px;
}


.src-cart-page
.wc-block-components-totals-item__value {
  color:
    #111;

  font-size:
    12px;

  font-weight:
    650;
}


/* =========================================================
   GRAND TOTAL
========================================================= */

.src-cart-page
.wc-block-components-totals-footer-item {
  padding:
    18px
    0 !important;
}


.src-cart-page
.wc-block-components-totals-footer-item
.wc-block-components-totals-item__label {
  font-size:
    16px !important;

  font-weight:
    700 !important;
}


.src-cart-page
.wc-block-components-totals-footer-item
.wc-block-components-totals-item__value {
  font-size:
    18px !important;

  font-weight:
    700 !important;
}


/* =========================================================
   COUPON
========================================================= */

.src-cart-page
.wc-block-components-totals-coupon {
  border-top:
    1px
    solid
    #ddd;
}


.src-cart-page
.wc-block-components-totals-coupon__button {
  color:
    #111 !important;

  font-size:
    10px !important;

  font-weight:
    600 !important;
}


/* =========================================================
   CHECKOUT BUTTON
========================================================= */

.src-cart-page
.wc-block-cart__submit {
  margin-top:
    18px !important;
}


.src-cart-page
.wc-block-cart__submit-button,
.src-cart-page
.wc-block-components-button {
  min-height:
    48px !important;

  border:
    1px
    solid
    #111 !important;

  border-radius:
    3px !important;

  background:
    #111 !important;

  color:
    #fff !important;

  font-size:
    11px !important;

  font-weight:
    700 !important;

  text-decoration:
    none !important;
}


.src-cart-page
.wc-block-cart__submit-button:hover,
.src-cart-page
.wc-block-components-button:hover {
  background:
    #292929 !important;

  border-color:
    #292929 !important;
}


/* =========================================================
   EXPRESS PAYMENT
========================================================= */

.src-cart-page
.wc-block-components-express-payment {
  margin-top:
    20px;
}


/* =========================================================
   PANIER CLASSIQUE — FALLBACK
========================================================= */

.src-cart-page
.woocommerce-cart-form {
  float: left;

  width:
    calc(
      100% - 390px
    );
}


.src-cart-page
.cart-collaterals {
  float: right;

  width:
    350px;
}


.src-cart-page
.woocommerce::after {
  content: "";

  display: table;

  clear: both;
}


.src-cart-page
.shop_table.cart {
  width: 100%;

  margin: 0;

  border:
    1px
    solid
    #d4d4d4;

  border-collapse:
    collapse;

  background:
    #fff;
}


.src-cart-page
.shop_table.cart th {
  padding:
    17px
    22px;

  border-bottom:
    1px
    solid
    #dedede;

  background:
    #f6f6f6;

  color:
    #666;

  font-size:
    9px;

  text-align:
    left;
}


.src-cart-page
.shop_table.cart td {
  padding:
    28px
    22px;

  border-bottom:
    1px
    solid
    #e5e5e5;

  vertical-align:
    middle;
}


.src-cart-page
.shop_table.cart
.product-thumbnail {
  width:
    125px;

  padding-right:
    24px;
}


.src-cart-page
.shop_table.cart
.product-thumbnail img {
  width:
    100px !important;

  height:
    100px !important;

  object-fit:
    contain;

  background:
    #f7f7f7;
}


.src-cart-page
.shop_table.cart
.product-name {
  padding-left:
    10px;
}


.src-cart-page
.shop_table.cart
.product-name a {
  display: block;

  margin-bottom:
    10px;

  color:
    #111;

  font-size:
    13px;

  font-weight:
    650;

  line-height:
    1.5;

  text-decoration:
    none;
}


/* =========================================================
   CLASSIC TOTAL
========================================================= */

.src-cart-page
.cart_totals {
  width:
    100% !important;

  float:
    none !important;

  padding:
    28px;

  border:
    1px
    solid
    #d5d5d5;

  background:
    #fff;
}


.src-cart-page
.cart_totals h2 {
  margin:
    0
    0
    20px;

  font-size:
    24px;

  letter-spacing:
    -1px;
}


/* =========================================================
   HIDE OLD EMPTY
========================================================= */

.src-cart-page
.wp-block-woocommerce-empty-cart-block,

.src-cart-page
.wc-block-cart__empty-cart__title,

.src-cart-page
.wc-block-grid__products {
  display: none;
}


/* =========================================================
   TABLETTE
========================================================= */

@media screen and (max-width: 1000px) {

  .src-cart-page
  .wc-block-cart {
    grid-template-columns:
      minmax(0, 1fr)
      310px !important;

    gap:
      25px !important;
  }


  .src-cart-page
  .wc-block-cart-item__image {
    width:
      105px !important;

    padding-left:
      16px !important;

    padding-right:
      18px !important;
  }


  .src-cart-page
  .wc-block-cart-item__image a {
    width:
      85px !important;

    height:
      85px !important;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media screen and (max-width: 749px) {

  .src-cart-container {
    width:
      calc(
        100% - 30px
      );
  }


  .src-cart-hero {
    padding:
      50px
      0
      45px;
  }


  .src-cart-hero::before,
  .src-cart-hero::after {
    display: none;
  }


  .src-cart-hero__title {
    font-size:
      40px;

    letter-spacing:
      -2px;
  }


  .src-cart-content {
    padding:
      40px
      0
      65px;
  }


  /* EMPTY */

  .src-cart-empty {
    padding:
      38px
      22px;
  }


  .src-cart-empty h2 {
    font-size:
      27px;
  }


  .src-cart-empty__button {
    width:
      100%;
  }


  /* BENEFITS */

  .src-cart-benefits {
    display:
      flex;

    width:
      calc(
        100% + 15px
      );

    margin-right:
      -15px;

    padding-right:
      15px;

    gap:
      9px;

    overflow-x:
      auto;

    border:
      0;

    scrollbar-width:
      none;

    scroll-snap-type:
      x mandatory;

    -webkit-overflow-scrolling:
      touch;
  }


  .src-cart-benefits::-webkit-scrollbar {
    display:
      none;
  }


  .src-cart-benefit,
  .src-cart-benefit:last-child {
    flex:
      0
      0
      82%;

    min-width:
      82%;

    border:
      1px
      solid
      #d7d7d7;

    background:
      #fff;

    scroll-snap-align:
      start;
  }


  /* BLOCK CART */

  .src-cart-page
  .wc-block-cart {
    display:
      block !important;
  }


  .src-cart-page
  .wc-block-cart__sidebar {
    margin-top:
      20px !important;

    padding:
      22px !important;
  }


  .src-cart-page
  .wc-block-cart-items__row {
    min-height:
      160px !important;
  }


  .src-cart-page
  .wc-block-cart-items__row td {
    padding-top:
      22px !important;

    padding-bottom:
      22px !important;
  }


  .src-cart-page
  .wc-block-cart-item__image {
    width:
      90px !important;

    padding-left:
      12px !important;

    padding-right:
      15px !important;
  }


  .src-cart-page
  .wc-block-cart-item__image a {
    width:
      72px !important;

    height:
      72px !important;
  }


  .src-cart-page
  .wc-block-cart-item__product {
    padding:
      22px
      12px
      22px
      0 !important;
  }


  .src-cart-page
  .wc-block-components-product-name {
    font-size:
      11px !important;

    line-height:
      1.4 !important;
  }


  .src-cart-page
  .wc-block-cart-item__total {
    width:
      auto !important;

    padding:
      22px
      12px
      22px
      5px !important;

    font-size:
      10px !important;
  }


  .src-cart-page
  .wc-block-components-product-metadata {
    margin:
      9px
      0
      13px !important;
  }


  /* CLASSIC */

  .src-cart-page
  .woocommerce-cart-form,
  .src-cart-page
  .cart-collaterals {
    float:
      none;

    width:
      100%;
  }


  .src-cart-page
  .cart-collaterals {
    margin-top:
      20px;
  }

}


/* =========================================================
   PETIT MOBILE
========================================================= */

@media screen and (max-width: 390px) {

  .src-cart-container {
    width:
      calc(
        100% - 24px
      );
  }


  .src-cart-page
  .wc-block-cart-item__image {
    width:
      78px !important;

    padding-left:
      9px !important;

    padding-right:
      11px !important;
  }


  .src-cart-page
  .wc-block-cart-item__image a {
    width:
      62px !important;

    height:
      62px !important;
  }

}




/* =========================================================
   PANIER — SIDEBAR TOTAL PLUS COMPACTE
========================================================= */

.src-cart-page
.wc-block-cart__sidebar {
  padding:
    22px 24px !important;
}


/* TITRE */

.src-cart-page
.wc-block-cart__totals-title {
  margin:
    0
    0
    10px !important;
}


/* LIGNES SOUS-TOTAL / LIVRAISON / COUPON */

.src-cart-page
.wc-block-components-totals-wrapper {
  padding:
    10px
    0 !important;
}


/* TOTAL FINAL */

.src-cart-page
.wc-block-components-totals-footer-item {
  padding:
    13px
    0 !important;
}


/* COUPON */

.src-cart-page
.wc-block-components-totals-coupon {
  margin:
    0 !important;
}


/* EXPRESS PAYMENTS */

.src-cart-page
.wc-block-components-express-payment {
  margin-top:
    12px !important;
}


.src-cart-page
.wc-block-components-express-payment
.wc-block-components-express-payment__event-buttons {
  gap:
    8px !important;
}


/* APPLE PAY / GOOGLE PAY */

.src-cart-page
.wc-block-components-express-payment
button {
  min-height:
    48px !important;

  height:
    48px !important;

  margin:
    0 !important;
}


/* SÉPARATEUR "OU" */

.src-cart-page
.wc-block-components-express-payment__separator {
  margin:
    12px
    0 !important;
}


/* BOUTON VALIDER */

.src-cart-page
.wc-block-cart__submit {
  margin-top:
    12px !important;
}


.src-cart-page
.wc-block-cart__submit-button {
  min-height:
    48px !important;
}


/* ENLEVER ESPACES INUTILES DANS LA SIDEBAR */

.src-cart-page
.wc-block-cart__sidebar > *:first-child {
  margin-top:
    0 !important;
}


.src-cart-page
.wc-block-cart__sidebar > *:last-child {
  margin-bottom:
    0 !important;
}





/* =========================================================
   PANIER — NETTOYER LES TRAITS DE LA SIDEBAR
========================================================= */

/* On enlève toutes les bordures par défaut */
.src-cart-page
.wc-block-cart__sidebar
.wc-block-components-totals-wrapper,
.src-cart-page
.wc-block-cart__sidebar
.wc-block-components-totals-coupon,
.src-cart-page
.wc-block-cart__sidebar
.wc-block-components-totals-item,
.src-cart-page
.wc-block-cart__sidebar
.wc-block-components-totals-footer-item,
.src-cart-page
.wc-block-cart__sidebar
.wc-block-components-express-payment,
.src-cart-page
.wc-block-cart__sidebar
.wc-block-components-express-payment__separator {
  border-top: 0 !important;
  border-bottom: 0 !important;
}


/* 1 — séparation sous le titre / coupon */
.src-cart-page
.wc-block-cart__totals-title {
  padding-bottom: 14px !important;

  border-bottom:
    1px solid #dddddd !important;
}


/* 2 — séparation avant le total final */
.src-cart-page
.wc-block-components-totals-footer-item {
  margin-top: 8px !important;

  padding-top: 16px !important;

  border-top:
    1px solid #dddddd !important;
}


/* 3 — séparation avant les paiements */
.src-cart-page
.wc-block-components-express-payment {
  margin-top: 14px !important;

  padding-top: 16px !important;

  border-top:
    1px solid #dddddd !important;
}


/* Séparateur OU plus discret */
.src-cart-page
.wc-block-components-express-payment__separator {
  margin:
    12px
    0 !important;
}


/* Si WooCommerce dessine des pseudo éléments */
.src-cart-page
.wc-block-components-express-payment__separator::before,
.src-cart-page
.wc-block-components-express-payment__separator::after {
  opacity: .45;
}