body.woocommerce,
body.woocommerce-page,
body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account {
  --sophie-ink: #251f1d;
  --sophie-paper: #f8f5f1;
  --sophie-white: #fffdfc;
  --sophie-blush: #d8adb2;
  --sophie-burgundy: #7a414b;
  --sophie-muted: #716762;
  --sophie-line: rgba(37, 31, 29, .14);
  --sophie-shadow: 0 18px 50px rgba(55, 38, 34, .1);
  padding-bottom: clamp(72px, 9vw, 110px);
  color: var(--sophie-ink);
  background: var(--sophie-paper);
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.woocommerce,
.woocommerce * { box-sizing: border-box; }

body.woocommerce .topbar-wrapp,
body.woocommerce-page .topbar-wrapp,
body.woocommerce-cart .topbar-wrapp,
body.woocommerce-checkout .topbar-wrapp,
body.woocommerce-account .topbar-wrapp { display: none !important; }

body.woocommerce .main-header,
body.woocommerce-page .main-header,
body.woocommerce-cart .main-header,
body.woocommerce-checkout .main-header,
body.woocommerce-account .main-header {
  min-height: 68px;
  border-bottom: 1px solid var(--sophie-line);
  background: rgba(248, 245, 241, .97) !important;
  box-shadow: 0 7px 24px rgba(55, 38, 34, .05);
}

.woocommerce .main-header .container,
.woocommerce-page .main-header .container,
.woocommerce-cart .main-header .container,
.woocommerce-checkout .main-header .container,
.woocommerce-account .main-header .container { min-height: 68px; }

.woocommerce .basel-logo,
.woocommerce-page .basel-logo,
.woocommerce-cart .basel-logo,
.woocommerce-checkout .basel-logo,
.woocommerce-account .basel-logo,
.woocommerce .basel-sticky-logo,
.woocommerce-page .basel-sticky-logo,
.woocommerce-cart .basel-sticky-logo,
.woocommerce-checkout .basel-sticky-logo,
.woocommerce-account .basel-sticky-logo {
  position: relative;
  display: block;
  width: 88px !important;
  height: 54px !important;
  overflow: hidden;
  background: url('../images/sophie-logo.png') center/contain no-repeat;
}

.woocommerce .basel-logo img,
.woocommerce-page .basel-logo img,
.woocommerce-cart .basel-logo img,
.woocommerce-checkout .basel-logo img,
.woocommerce-account .basel-logo img,
.woocommerce .basel-sticky-logo img,
.woocommerce-page .basel-sticky-logo img,
.woocommerce-cart .basel-sticky-logo img,
.woocommerce-checkout .basel-sticky-logo img,
.woocommerce-account .basel-sticky-logo img { width: 88px !important; height: 54px !important; opacity: 0; }

.woocommerce .basel-logo::after,
.woocommerce-page .basel-logo::after,
.woocommerce-cart .basel-logo::after,
.woocommerce-checkout .basel-logo::after,
.woocommerce-account .basel-logo::after {
  content: "";
  position: absolute;
  top: -25%;
  bottom: -25%;
  left: -50%;
  width: 22%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .86), transparent);
  transform: rotate(18deg);
  animation: sophie-header-sheen 7s ease-in-out infinite;
  pointer-events: none;
}

@keyframes sophie-header-sheen {
  0%, 60% { left: -50%; opacity: 0; }
  68% { opacity: .9; }
  79% { left: 130%; opacity: .2; }
  100% { left: 130%; opacity: 0; }
}

.woocommerce .main-header a,
.woocommerce-page .main-header a,
.woocommerce-cart .main-header a,
.woocommerce-checkout .main-header a,
.woocommerce-account .main-header a { color: var(--sophie-ink); }

.woocommerce .shopping-cart > a,
.woocommerce-page .shopping-cart > a,
.woocommerce-cart .shopping-cart > a,
.woocommerce-checkout .shopping-cart > a,
.woocommerce-account .shopping-cart > a {
  display: grid;
  min-width: 42px;
  min-height: 42px;
  place-items: center;
}

.woocommerce .shopping-cart > a::before,
.woocommerce-page .shopping-cart > a::before,
.woocommerce-cart .shopping-cart > a::before,
.woocommerce-checkout .shopping-cart > a::before,
.woocommerce-account .shopping-cart > a::before {
  content: "" !important;
  display: block !important;
  width: 21px !important;
  height: 21px !important;
  background: currentColor !important;
  -webkit-mask: url('../icons/bag.svg') center/contain no-repeat;
  mask: url('../icons/bag.svg') center/contain no-repeat;
}

body.woocommerce .main-page-wrapper,
body.woocommerce-page .main-page-wrapper,
body.woocommerce-cart .main-page-wrapper,
body.woocommerce-checkout .main-page-wrapper,
body.woocommerce-account .main-page-wrapper {
  margin-top: 0 !important;
  padding-top: 0 !important;
  background: var(--sophie-paper);
}

.woocommerce .page-title,
.woocommerce-page .page-title,
.woocommerce-cart .page-title,
.woocommerce-checkout .page-title,
.woocommerce-account .page-title {
  min-height: 0;
  margin: 0 0 28px !important;
  padding: 24px 20px 22px;
  background: var(--sophie-paper) !important;
  color: var(--sophie-ink) !important;
  border-bottom: 1px solid var(--sophie-line);
}

.woocommerce .page-title .entry-title,
.woocommerce-page .page-title .entry-title,
.woocommerce-cart .page-title .entry-title,
.woocommerce-checkout .page-title .entry-title,
.woocommerce-account .page-title .entry-title,
.woocommerce .page-title h1,
.woocommerce-page .page-title h1 {
  margin: 0 0 7px;
  color: var(--sophie-ink) !important;
  font: 430 clamp(31px, 4vw, 38px)/1 "Helvetica Neue", Helvetica, Arial, sans-serif;
  letter-spacing: -.045em;
  text-transform: none;
}

.woocommerce .page-title .breadcrumbs,
.woocommerce-page .page-title .breadcrumbs,
.woocommerce-cart .page-title .breadcrumbs,
.woocommerce-checkout .page-title .breadcrumbs,
.woocommerce-account .page-title .breadcrumbs { color: var(--sophie-muted) !important; font-size: 11px; }

.woocommerce .page-title .breadcrumbs a,
.woocommerce-page .page-title .breadcrumbs a,
.woocommerce-cart .page-title .breadcrumbs a,
.woocommerce-checkout .page-title .breadcrumbs a,
.woocommerce-account .page-title .breadcrumbs a { color: var(--sophie-muted) !important; }

body.single-product .site-content { padding-top: 0; }

body.single-product .single-breadcrumbs-wrapper {
  min-height: 48px;
  margin: 0 -15px 30px !important;
  padding: 13px 20px;
  border-bottom: 1px solid var(--sophie-line);
  background: var(--sophie-paper);
  color: var(--sophie-muted);
  font-size: 10px;
  letter-spacing: .05em;
  text-transform: uppercase;
}

body.single-product .single-breadcrumbs-wrapper a { color: var(--sophie-muted) !important; }

.woocommerce .site-content,
.woocommerce-page .site-content,
.woocommerce-cart .site-content,
.woocommerce-checkout .site-content,
.woocommerce-account .site-content { padding-top: clamp(32px, 5vw, 58px); padding-bottom: clamp(45px, 7vw, 78px); }

.woocommerce h1,
.woocommerce h2,
.woocommerce h3,
.woocommerce-page h1,
.woocommerce-page h2,
.woocommerce-page h3 { color: var(--sophie-ink); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; text-transform: none; }

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-page a.button,
.woocommerce-page button.button,
.woocommerce-page input.button {
  min-height: 44px;
  padding: 12px 18px;
  border: 1px solid var(--sophie-ink);
  border-radius: 999px;
  background: var(--sophie-ink);
  box-shadow: none;
  color: var(--sophie-white);
  font: 650 11px/1.2 "Helvetica Neue", Helvetica, Arial, sans-serif;
  text-transform: none;
  transition: transform .2s ease, background .2s ease, color .2s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce-page a.button:hover,
.woocommerce-page button.button:hover { background: transparent; color: var(--sophie-ink); transform: translateY(-1px); }
.woocommerce .checkout-button,
.woocommerce #place_order,
.woocommerce-page .checkout-button,
.woocommerce-page #place_order { border-color: var(--sophie-burgundy) !important; background: var(--sophie-burgundy) !important; color: var(--sophie-white) !important; }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  margin-bottom: 20px;
  padding: 15px 18px 15px 44px;
  border: 1px solid var(--sophie-line);
  border-top: 2px solid var(--sophie-burgundy);
  border-radius: 12px;
  background: var(--sophie-white);
  box-shadow: none;
  color: var(--sophie-ink);
  font-size: 13px;
}

.woocommerce-cart-form,
.cart_totals,
.woocommerce-checkout-review-order,
.woocommerce-billing-fields,
.woocommerce-shipping-fields,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-order-details,
.woocommerce-customer-details {
  padding: clamp(18px, 2.6vw, 28px);
  border: 1px solid var(--sophie-line);
  border-radius: 16px;
  background: var(--sophie-white);
  box-shadow: 0 12px 34px rgba(55, 38, 34, .06);
}

.woocommerce-cart-form {
  margin-bottom: 26px;
  overflow: hidden;
  border-radius: 22px;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.woocommerce-cart-form:hover {
  border-color: rgba(122, 65, 75, .28);
  box-shadow: 0 18px 46px rgba(55, 38, 34, .09);
}
.woocommerce-cart-form table.shop_table { margin: 0; }
.woocommerce table.shop_table { overflow: hidden; border: 0; border-collapse: collapse; border-radius: 0; background: transparent; }
.woocommerce table.shop_table th { padding: 12px 10px; border-bottom: 1px solid var(--sophie-line); color: var(--sophie-muted); font-size: 10px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.woocommerce table.shop_table td { padding: 14px 9px; border-color: var(--sophie-line); color: var(--sophie-ink); font-size: 13px; }
.woocommerce table.shop_table tr.cart_item { transition: background-color .2s ease; }
.woocommerce table.shop_table tr.cart_item:hover { background: rgba(216, 173, 178, .08); }
.woocommerce table.shop_table .product-thumbnail { width: 74px; }
.woocommerce table.shop_table .product-thumbnail img { width: 68px; min-width: 68px; height: 74px; border-radius: 13px; object-fit: cover; background: #eee8e3; transition: transform .2s ease; }
.woocommerce table.shop_table tr.cart_item:hover .product-thumbnail img { transform: scale(1.025); }
.woocommerce table.shop_table .product-name a { color: var(--sophie-ink); font-weight: 550; }
.woocommerce table.shop_table .product-remove a { display: grid; width: 28px; height: 28px; place-items: center; border: 1px solid var(--sophie-line); border-radius: 50%; background: transparent; color: var(--sophie-muted) !important; font-size: 18px; }
.woocommerce table.shop_table .product-remove a::before { content: none !important; display: none !important; }
.woocommerce table.shop_table .product-remove a:hover { border-color: var(--sophie-burgundy); background: var(--sophie-burgundy); color: var(--sophie-white) !important; }
.woocommerce .quantity { display: inline-flex; min-height: 38px; align-items: center; overflow: hidden; border: 1px solid var(--sophie-line); border-radius: 999px; background: var(--sophie-white); transition: border-color .2s ease, box-shadow .2s ease; }
.woocommerce .quantity:focus-within { border-color: var(--sophie-burgundy); box-shadow: 0 0 0 3px rgba(122, 65, 75, .1); }
.woocommerce .quantity input.qty { width: 46px; min-height: 38px; padding: 6px; border: 0; background: transparent; text-align: center; }
.woocommerce .quantity .minus,
.woocommerce .quantity .plus {
  width: 31px;
  min-width: 31px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--sophie-muted);
  font: 500 16px/1 "Helvetica Neue", Helvetica, Arial, sans-serif;
  transition: background-color .18s ease, color .18s ease;
}
.woocommerce .quantity .minus:hover,
.woocommerce .quantity .plus:hover { background: rgba(216, 173, 178, .22); color: var(--sophie-ink); }
.woocommerce .cart-collaterals { margin: 0; }
.woocommerce .cart-collaterals .cart_totals { float: none; width: 100%; border-radius: 22px; }
.woocommerce .cart-collaterals .cart_totals h2 { margin: 0 0 15px; font-size: 25px; font-weight: 450; letter-spacing: -.025em; }
.woocommerce .cart-collaterals .shop_table tr:last-child th,
.woocommerce .cart-collaterals .shop_table tr:last-child td { border-bottom: 0; }
.woocommerce .cart-collaterals .order-total th,
.woocommerce .cart-collaterals .order-total td { padding-top: 18px; color: var(--sophie-ink); font-size: 16px; }
.woocommerce .cart-collaterals .wc-proceed-to-checkout { padding: 14px 0 0; }
.woocommerce .cart-collaterals .checkout-button { display: flex; width: 100%; min-height: 50px; align-items: center; justify-content: center; margin: 0; font-size: 12px; letter-spacing: .02em; }
.woocommerce td.actions .coupon { display: flex; gap: 8px; }
.woocommerce td.actions .coupon .input-text { width: 160px; min-height: 44px; padding: 10px 13px; border: 1px solid var(--sophie-line); border-radius: 999px; }

@media (min-width: 1024px) {
  body.woocommerce-cart .site-content .woocommerce {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, .75fr);
    gap: 22px;
    align-items: start;
  }
  body.woocommerce-cart .site-content .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
  body.woocommerce-cart .site-content .woocommerce > .woocommerce-cart-form { grid-column: 1; margin: 0; }
  body.woocommerce-cart .site-content .woocommerce > .cart-collaterals { grid-column: 2; }
  body.woocommerce-cart .cart-collaterals .cart_totals { position: sticky; top: 84px; }
}

.woocommerce form .form-row label { margin-bottom: 6px; color: var(--sophie-ink); font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
  min-height: 45px;
  padding: 10px 12px;
  border: 1px solid var(--sophie-line);
  border-radius: 9px;
  background: var(--sophie-white);
  color: var(--sophie-ink);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus { border-color: var(--sophie-burgundy); box-shadow: 0 0 0 3px rgba(122, 65, 75, .1); }
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 23px; }
.woocommerce-checkout #payment { border: 1px solid var(--sophie-line); border-radius: 14px; background: #eee8e3; }
.woocommerce-checkout #payment div.payment_box { border-radius: 9px; background: var(--sophie-white); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--sophie-white); }

.woocommerce ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px 15px; }
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product { width: auto !important; margin: 0 !important; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
.woocommerce ul.products li.product a img { width: 100%; aspect-ratio: 1 / 1.05; margin: 0 0 13px; border-radius: 14px; background: #eee8e3; object-fit: cover; transition: transform .35s ease, box-shadow .35s ease; }
.woocommerce ul.products li.product:hover a img { transform: translateY(-3px) scale(1.012); box-shadow: 0 16px 38px rgba(55, 38, 34, .13); }
.woocommerce ul.products li.product h3,
.woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: 39px; margin: 0 0 8px; padding: 0; color: var(--sophie-ink); font-size: 14px; font-weight: 500; line-height: 1.38; text-transform: none; transition: color .2s ease; }
.woocommerce ul.products li.product:hover h3,
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title { color: var(--sophie-burgundy); }
.woocommerce ul.products li.product .onsale { transition: transform .25s ease; }
.woocommerce ul.products li.product:hover .onsale { transform: scale(1.06); }

/* Estados de espera de WooCommerce: el velo gris del tema se sustituye por un
   difuminado en el color de la marca, y el enlace "Ver carrito" entra con fundido. */
.woocommerce .blockUI.blockOverlay,
.woocommerce-page .blockUI.blockOverlay {
  background: rgba(248, 245, 241, .66) !important;
  opacity: 1 !important;
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}

.woocommerce a.button.loading,
.woocommerce button.button.loading { opacity: .72; }

@keyframes sophie-added-enter {
  from { opacity: 0; transform: translateY(-4px); }
}

.woocommerce a.added_to_cart { display: inline-block; animation: sophie-added-enter .28s ease both; color: var(--sophie-burgundy) !important; font-size: 11px; }
/* Basel no imprime el catálogo como `ul.products li.product`, sino como
   `div.products.elements-grid > div.product-grid-item`, así que las reglas de rejilla de
   arriba no lo alcanzan. Aquí solo se unifica la tipografía y el tratamiento de la foto,
   sin tocar la rejilla de Bootstrap que ya funciona. */
.woocommerce .product-grid-item .product-title,
.woocommerce-page .product-grid-item .product-title { margin: 0 0 7px; }

.woocommerce .product-grid-item .product-title a,
.woocommerce-page .product-grid-item .product-title a {
  color: var(--sophie-ink) !important;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.38;
  letter-spacing: -.005em;
  text-transform: none;
  transition: color .2s ease;
}

.woocommerce .product-grid-item:hover .product-title a,
.woocommerce-page .product-grid-item:hover .product-title a { color: var(--sophie-burgundy) !important; }

.woocommerce .product-grid-item .product-element-top,
.woocommerce-page .product-grid-item .product-element-top {
  overflow: hidden;
  border-radius: 14px;
  background: #eee8e3;
  transition: box-shadow .35s ease;
}

.woocommerce .product-grid-item:hover .product-element-top,
.woocommerce-page .product-grid-item:hover .product-element-top { box-shadow: 0 16px 38px rgba(55, 38, 34, .13); }

.woocommerce .product-grid-item .product-element-top img,
.woocommerce-page .product-grid-item .product-element-top img { transition: transform .45s ease; }

.woocommerce .product-grid-item:hover .product-element-top img,
.woocommerce-page .product-grid-item:hover .product-element-top img { transform: scale(1.028); }

.woocommerce .price { color: var(--sophie-ink) !important; font-size: 13px; font-weight: 650; }
.woocommerce .price del { color: var(--sophie-muted); font-size: 11px; }
.woocommerce span.onsale { min-width: 0; min-height: 0; padding: 6px 9px; border-radius: 999px; background: var(--sophie-burgundy); font-size: 9px; line-height: 1; }

/* En la ficha de producto Basel titula con `.single-product-content .entry-title` y lo
   pinta desde su CSS dinámico en línea, que se imprime después de esta hoja. Hay que
   marcar estas reglas o el título se queda en Lora y el precio en el rosa del tema. */
.woocommerce .single-product-content .entry-title,
.woocommerce-page .single-product-content .entry-title {
  margin: 0 0 12px;
  color: var(--sophie-ink) !important;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-size: clamp(28px, 3.4vw, 38px) !important;
  font-weight: 430 !important;
  line-height: 1.06 !important;
  letter-spacing: -.035em;
  text-transform: none;
}

.woocommerce .summary .price,
.woocommerce-page .summary .price,
.woocommerce .summary .price ins,
.woocommerce-page .summary .price ins,
.woocommerce .summary .price ins span,
.woocommerce-page .summary .price ins span,
.woocommerce .summary .price > span,
.woocommerce-page .summary .price > span {
  color: var(--sophie-ink) !important;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
}

.woocommerce .summary .price del,
.woocommerce-page .summary .price del,
.woocommerce .summary .price del span,
.woocommerce-page .summary .price del span { color: var(--sophie-muted) !important; }

.woocommerce .product-grid-item .price ins,
.woocommerce-page .product-grid-item .price ins,
.woocommerce .product-grid-item .price ins span,
.woocommerce-page .product-grid-item .price ins span {
  color: var(--sophie-ink) !important;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  text-decoration: none;
}

/* El "Añadir al carrito" del catálogo hereda el rosa primario de Basel. */
.woocommerce .product-grid-item .add_to_cart_button,
.woocommerce-page .product-grid-item .add_to_cart_button,
.woocommerce .product-grid-item .added_to_cart,
.woocommerce-page .product-grid-item .added_to_cart { color: var(--sophie-burgundy) !important; }

.woocommerce .product-grid-item .add_to_cart_button:hover,
.woocommerce-page .product-grid-item .add_to_cart_button:hover { color: var(--sophie-ink) !important; }

.woocommerce div.product div.images img { border-radius: 16px; background: #eee8e3; }
.woocommerce div.product .product_title {
  color: var(--sophie-ink) !important;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-size: clamp(32px, 4vw, 44px);
  font-weight: 430;
  line-height: 1.03;
  letter-spacing: -.04em;
}
.woocommerce div.product .summary .price { color: var(--sophie-ink) !important; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
.woocommerce div.product .stock.out-of-stock {
  display: inline-flex;
  min-height: 32px;
  align-items: center;
  padding: 6px 12px;
  border: 1px solid var(--sophie-burgundy);
  border-radius: 999px;
  color: var(--sophie-burgundy);
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 10px;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 10px; }
.woocommerce div.product form.cart .button { min-height: 46px; background: var(--sophie-burgundy); border-color: var(--sophie-burgundy); }

body.woocommerce .cart-widget-side,
body.woocommerce-page .cart-widget-side,
body.woocommerce-cart .cart-widget-side,
body.woocommerce-checkout .cart-widget-side,
body.woocommerce-account .cart-widget-side { background: var(--sophie-white); color: var(--sophie-ink); }

body.woocommerce .cart-widget-side .checkout,
body.woocommerce-page .cart-widget-side .checkout,
body.woocommerce-cart .cart-widget-side .checkout,
body.woocommerce-checkout .cart-widget-side .checkout,
body.woocommerce-account .cart-widget-side .checkout {
  border-color: var(--sophie-burgundy) !important;
  background: var(--sophie-burgundy) !important;
  color: var(--sophie-white) !important;
}

body.woocommerce .buttonizer-button,
body.woocommerce-page .buttonizer-button,
body.woocommerce-cart .buttonizer-button,
body.woocommerce-checkout .buttonizer-button,
body.woocommerce-account .buttonizer-button {
  background: var(--sophie-burgundy) !important;
  box-shadow: 0 10px 28px rgba(55, 38, 34, .2) !important;
}

body.woocommerce .basel-cookies-popup,
body.woocommerce-page .basel-cookies-popup,
body.woocommerce-cart .basel-cookies-popup,
body.woocommerce-checkout .basel-cookies-popup,
body.woocommerce-account .basel-cookies-popup {
  right: 16px !important;
  bottom: 58px !important;
  left: 16px !important;
  width: auto !important;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 14px;
  background: rgba(37, 31, 29, .96) !important;
  box-shadow: var(--sophie-shadow);
}

body.woocommerce .woocommerce-store-notice,
body.woocommerce-page .woocommerce-store-notice,
body.woocommerce-cart .woocommerce-store-notice,
body.woocommerce-checkout .woocommerce-store-notice,
body.woocommerce-account .woocommerce-store-notice { background: rgba(37, 31, 29, .96) !important; }

body.woocommerce .footer-container,
body.woocommerce-page .footer-container,
body.woocommerce-cart .footer-container,
body.woocommerce-checkout .footer-container,
body.woocommerce-account .footer-container,
body.woocommerce .copyrights-wrapper,
body.woocommerce-page .copyrights-wrapper,
body.woocommerce-cart .copyrights-wrapper,
body.woocommerce-checkout .copyrights-wrapper,
body.woocommerce-account .copyrights-wrapper { display: none !important; }

.sophie-commerce-footer {
  border-top: 1px solid var(--sophie-line);
  background: #eee8e3;
  color: var(--sophie-ink);
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.sophie-commerce-footer__inner {
  display: grid;
  width: min(100% - 40px, 1120px);
  margin: 0 auto;
  padding: 48px 0 40px;
  grid-template-columns: minmax(260px, 1.4fr) repeat(2, minmax(160px, .7fr));
  gap: 48px;
}
.sophie-commerce-footer__brand img { width: 94px; height: auto; }
.sophie-commerce-footer__brand p { max-width: 330px; margin: 16px 0 0; color: var(--sophie-muted); font-size: 13px; }
.sophie-commerce-footer__inner > nav,
.sophie-commerce-footer__inner > div:not(.sophie-commerce-footer__brand) { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.sophie-commerce-footer__inner strong { margin-bottom: 5px; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.sophie-commerce-footer__inner a { color: var(--sophie-muted); font-size: 12px; transition: color .18s ease, transform .18s ease; }
.sophie-commerce-footer__inner a:hover { color: var(--sophie-burgundy); transform: translateX(2px); }
.sophie-commerce-footer__legal { padding: 16px 20px 62px; border-top: 1px solid var(--sophie-line); color: var(--sophie-muted); font-size: 10px; text-align: center; }

.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li + li { border-top: 1px solid var(--sophie-line); }
.woocommerce-account .woocommerce-MyAccount-navigation a { display: block; padding: 11px 4px; color: var(--sophie-ink); font-size: 12px; }
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a { color: var(--sophie-burgundy); font-weight: 700; }

.woocommerce .cart-empty,
.woocommerce-page .cart-empty { margin: 20px 0 12px; color: var(--sophie-ink); font: 410 clamp(28px, 4vw, 42px)/1.05 "Helvetica Neue", Helvetica, Arial, sans-serif; letter-spacing: -.035em; }
.woocommerce .cart-empty + .return-to-shop { margin: 0 0 50px; }

@media (max-width: 980px) {
  .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
  body.woocommerce .main-header,
  body.woocommerce-page .main-header,
  body.woocommerce-cart .main-header,
  body.woocommerce-checkout .main-header,
  body.woocommerce-account .main-header,
  .woocommerce .main-header .container,
  .woocommerce-page .main-header .container { min-height: 62px; }
  .woocommerce .basel-logo,
  .woocommerce-page .basel-logo,
  .woocommerce-cart .basel-logo,
  .woocommerce-checkout .basel-logo,
  .woocommerce-account .basel-logo { width: 76px !important; height: 48px !important; }
  .woocommerce .page-title,
  .woocommerce-page .page-title,
  .woocommerce-cart .page-title,
  .woocommerce-checkout .page-title,
  .woocommerce-account .page-title { margin-bottom: 20px !important; padding: 20px 16px 18px; }
  .woocommerce .page-title h1,
  .woocommerce-page .page-title h1 { font-size: 30px; }
  body.single-product .single-breadcrumbs-wrapper { margin-bottom: 22px !important; padding: 11px 16px; }
  .woocommerce .site-content,
  .woocommerce-page .site-content,
  .woocommerce-cart .site-content,
  .woocommerce-checkout .site-content,
  .woocommerce-account .site-content { padding-top: 26px; }
  .woocommerce-cart-form,
  .cart_totals,
  .woocommerce-checkout-review-order,
  .woocommerce-billing-fields,
  .woocommerce-shipping-fields { padding: 16px; border-radius: 16px; }
  .woocommerce-cart-form table.shop_table,
  .woocommerce-cart-form table.shop_table tbody,
  .woocommerce-cart-form table.shop_table tr,
  .woocommerce-cart-form table.shop_table td { display: block; width: 100%; }
  .woocommerce-cart-form table.shop_table thead { display: none; }
  .woocommerce-cart-form table.shop_table tr.cart_item { position: relative; display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 7px 13px; padding: 15px 0; border-bottom: 1px solid var(--sophie-line); }
  /* Basel styles the responsive cart through `table.shop_table_responsive tbody td`, which
     outranks a two-class child selector. Mirror the `tbody` depth and mark the properties
     it sets so the compact layout wins regardless of stylesheet order. */
  .woocommerce-cart-form table.shop_table tbody td { padding: 0 !important; border: 0 !important; background: transparent !important; text-align: left !important; }
  .woocommerce-cart-form table.shop_table tbody td::before { display: none !important; }
  .woocommerce-cart-form table.shop_table tbody .product-thumbnail { display: block !important; grid-column: 1; grid-row: 1 / span 4; }
  .woocommerce-cart-form table.shop_table tbody .product-thumbnail::before { display: none !important; }
  .woocommerce-cart-form table.shop_table tbody .product-thumbnail img { width: 70px; min-width: 70px; height: 76px; }
  .woocommerce-cart-form table.shop_table tbody .product-name,
  .woocommerce-cart-form table.shop_table tbody .product-price,
  .woocommerce-cart-form table.shop_table tbody .product-quantity,
  .woocommerce-cart-form table.shop_table tbody .product-subtotal { grid-column: 2; }
  .woocommerce-cart-form table.shop_table tbody .product-name { padding-right: 30px !important; }
  .woocommerce-cart-form table.shop_table tbody .product-price::before,
  .woocommerce-cart-form table.shop_table tbody .product-quantity::before,
  .woocommerce-cart-form table.shop_table tbody .product-subtotal::before { display: inline !important; float: none !important; margin-right: 7px; color: var(--sophie-muted); font-size: 9px !important; font-weight: 700; line-height: 1.5 !important; letter-spacing: .07em; text-transform: uppercase; }
  .woocommerce-cart-form table.shop_table tbody .product-remove { position: absolute !important; top: 14px; right: 0; width: auto; height: auto !important; }
  .woocommerce-cart-form table.shop_table tr:not(.cart_item) { padding-top: 15px; }
  .woocommerce-cart-form table.shop_table td.actions { display: grid; gap: 10px; }
  .woocommerce td.actions .coupon { display: grid; grid-template-columns: 1fr auto; }
  .woocommerce td.actions .coupon .input-text { width: 100%; }
  .woocommerce td.actions > .button { width: 100%; }
  .woocommerce .cart-collaterals .cart_totals { float: none; width: 100%; }
  .woocommerce-cart-form:hover { transform: none; }
  .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 10px; }
  .woocommerce ul.products li.product h3,
  .woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: 47px; font-size: 12px; }
  body.woocommerce .basel-cookies-popup,
  body.woocommerce-page .basel-cookies-popup,
  body.woocommerce-cart .basel-cookies-popup,
  body.woocommerce-checkout .basel-cookies-popup,
  body.woocommerce-account .basel-cookies-popup {
    right: 12px !important;
    bottom: 66px !important;
    left: 12px !important;
    padding: 13px 14px !important;
    border-radius: 16px !important;
  }
  body.woocommerce .basel-cookies-inner,
  body.woocommerce-page .basel-cookies-inner,
  body.woocommerce-cart .basel-cookies-inner,
  body.woocommerce-checkout .basel-cookies-inner,
  body.woocommerce-account .basel-cookies-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center !important;
    gap: 12px;
  }
  body.woocommerce .cookies-info-text,
  body.woocommerce-page .cookies-info-text,
  body.woocommerce-cart .cookies-info-text,
  body.woocommerce-checkout .cookies-info-text,
  body.woocommerce-account .cookies-info-text {
    margin: 0 !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
    text-align: left !important;
  }
  body.woocommerce .cookies-buttons,
  body.woocommerce-page .cookies-buttons,
  body.woocommerce-cart .cookies-buttons,
  body.woocommerce-checkout .cookies-buttons,
  body.woocommerce-account .cookies-buttons { margin: 0 !important; }
  body.woocommerce .cookies-accept-btn,
  body.woocommerce-page .cookies-accept-btn,
  body.woocommerce-cart .cookies-accept-btn,
  body.woocommerce-checkout .cookies-accept-btn,
  body.woocommerce-account .cookies-accept-btn {
    padding: 9px 12px !important;
    border: 1px solid rgba(255, 255, 255, .75) !important;
    border-radius: 999px;
    font-size: 9px !important;
    line-height: 1 !important;
  }
  .sophie-commerce-footer__inner { padding: 36px 0 30px; grid-template-columns: 1fr 1fr; gap: 28px 20px; }
  .sophie-commerce-footer__brand { grid-column: 1 / -1; }
  .sophie-commerce-footer__legal { padding-bottom: 70px; }
}

@media (max-width: 390px) {
  .woocommerce-cart-form table.shop_table tr.cart_item { grid-template-columns: 64px minmax(0, 1fr); }
  .woocommerce-cart-form table.shop_table tbody .product-thumbnail img { width: 64px; min-width: 64px; height: 72px; }
  .woocommerce td.actions .coupon { grid-template-columns: 1fr; }
  .sophie-commerce-footer__inner { grid-template-columns: 1fr; }
  .sophie-commerce-footer__brand { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .woocommerce *,
  .woocommerce *::before,
  .woocommerce *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .woocommerce .basel-logo::after,
  .woocommerce-page .basel-logo::after { display: none; }
}
