/*
 * ÚNICA FUENTE DE DISEÑO DE TODA LA WEB
 * Para cambiar la identidad visual, edita únicamente las variables de
 * "Configuración de marca". Las variables de compatibilidad alimentan
 * automáticamente los componentes antiguos.
 */
:root {
  /*
   * CONFIGURACIÓN DE MARCA
   * Esta es la única sección que debes editar para cambiar los colores.
   */
  --brand-primary: #74236f;       /* Morado del logotipo: botones y cabeceras */
  --brand-accent: #f47a16;        /* Naranja del logotipo: detalles y selección */
  --brand-ink: #2d2025;           /* Texto principal */
  --brand-muted: #74676c;         /* Texto secundario */
  --brand-surface: #fffdf8;       /* Tarjetas y header */
  --brand-background: #f8f1e5;    /* Fondo general crema */
  --brand-footer: #24191d;         /* Pie de página */

  /* Valores derivados */
  --brand-primary-hover: color-mix(in srgb, var(--brand-primary) 88%, #000);
  --brand-primary-soft: color-mix(in srgb, var(--brand-primary) 10%, #fff);
  --brand-primary-border: color-mix(in srgb, var(--brand-primary) 24%, #fff);
  --brand-accent-soft: color-mix(in srgb, var(--brand-accent) 11%, #fff);
  --brand-line: color-mix(in srgb, var(--brand-ink) 14%, transparent);
  --brand-overlay: color-mix(in srgb, var(--brand-ink) 68%, transparent);

  /* Tipografía */
  --font-display: "Archivo Black", "Arial Black", sans-serif;
  --font-body: "Nunito Sans", "Poppins", sans-serif;

  /* Alias del tema actual */
  --home-ink: var(--brand-ink);
  --home-muted: var(--brand-muted);
  --home-cream: var(--brand-background);
  --home-paper: var(--brand-surface);
  --home-line: var(--brand-line);
  --home-overlay: var(--brand-overlay);
  --home-display: var(--font-display);
  --home-body: var(--font-body);

  /* Compatibilidad con CSS y JavaScript anteriores */
  --color-button: var(--brand-primary) !important;
  --color-button-hover: var(--brand-primary-hover) !important;
  --color-button-disabled: color-mix(in srgb, var(--brand-primary) 45%, transparent) !important;
  --color-letter: var(--brand-ink) !important;
  --color-letter-opacity: color-mix(in srgb, var(--brand-ink) 55%, transparent) !important;
  --color-background: var(--brand-background) !important;
  --color-background-96: color-mix(in srgb, var(--brand-background) 96%, transparent) !important;
  --color-background-84: color-mix(in srgb, var(--brand-background) 84%, transparent) !important;
  --color-background-border: var(--brand-line) !important;
  --color-background-opacity: color-mix(in srgb, var(--brand-ink) 4%, transparent) !important;
  --color-font-20: color-mix(in srgb, var(--brand-ink) 20%, transparent) !important;

  --primary-color-600: var(--brand-primary-hover) !important;
  --primary-color-500: var(--brand-primary) !important;
  --primary-color-300: var(--brand-primary-border) !important;
  --primary-color-200: var(--brand-primary-border) !important;
  --primary-color-50: var(--brand-primary-soft) !important;
  --secondary-color-600: var(--brand-footer) !important;
  --secondary-color-500: var(--brand-footer) !important;
  --secondary-color-200: var(--brand-line) !important;
  --secondary-color-50: var(--brand-background) !important;
  --white-color: #fff;
  --black-color: #000;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  font-family: var(--font-body);
}

html {
  overflow-x: hidden;
}

body {
  width: 100%;
  overflow-x: hidden;
  color: var(--brand-ink);
  background-color: var(--brand-background) !important;
}

/* Cargador global: evita mostrar logos, banners o productos a medio cargar. */
html.site-is-loading,
html.site-is-loading body {
  overflow: hidden !important;
}

.preloader {
  position: fixed !important;
  inset: 0 !important;
  z-index: 11000 !important;
  display: grid !important;
  width: 100% !important;
  height: 100vh !important;
  height: 100dvh !important;
  place-items: center;
  background-color: color-mix(in srgb, var(--brand-background) 86%, transparent) !important;
  background-image:
    radial-gradient(circle at 50% 42%, rgba(255,255,255,.72), transparent 18rem),
    repeating-linear-gradient(0deg, rgba(81,63,34,.018) 0, rgba(81,63,34,.018) 1px, transparent 1px, transparent 4px) !important;
  backdrop-filter: blur(10px) saturate(.78);
  -webkit-backdrop-filter: blur(10px) saturate(.78);
  opacity: 1;
  visibility: visible;
  transition: opacity .38s ease, visibility .38s ease;
}

.preloader::after {
  position: absolute;
  top: 50%;
  left: 50%;
  color: var(--brand-ink);
  content: "Cargando…";
  font-family: var(--font-display);
  font-size: 1rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  transform: translate(-50%, -50%);
}

.preloader[data-global-loader-ready="true"]::after {
  display: none;
}

.preloader--leaving {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.preloader > .circular {
  display: none !important;
}

.site-loader__content {
  display: flex;
  width: min(88vw, 360px);
  align-items: center;
  flex-direction: column;
  text-align: center;
}

.site-loader__mark {
  position: relative;
  width: 92px;
  height: 76px;
  margin-bottom: 1.15rem;
}

.site-loader__plate {
  position: absolute;
  right: 0;
  bottom: 5px;
  left: 0;
  height: 32px;
  border: 4px solid var(--brand-primary);
  border-top-width: 3px;
  border-radius: 50%;
  background: var(--brand-surface);
  box-shadow: 0 10px 25px color-mix(in srgb, var(--brand-primary) 15%, transparent);
  animation: loaderPlatePulse 1.5s ease-in-out infinite;
}

.site-loader__steam {
  position: absolute;
  bottom: 38px;
  width: 4px;
  height: 27px;
  border-radius: 999px;
  background: var(--brand-primary);
  opacity: 0;
  animation: loaderSteam 1.45s ease-in-out infinite;
}

.site-loader__steam--one { left: 29px; }
.site-loader__steam--two { left: 45px; animation-delay: .18s; }
.site-loader__steam--three { left: 61px; animation-delay: .36s; }

.site-loader__title {
  margin: 0;
  color: var(--brand-ink);
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 4vw, 1.35rem);
  line-height: 1.2;
  text-transform: uppercase;
}

.site-loader__message {
  margin: .45rem 0 1.1rem;
  color: var(--brand-muted);
  font-size: .88rem;
}

.site-loader__progress {
  position: relative;
  display: block;
  width: 150px;
  height: 3px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--brand-line);
}

.site-loader__progress::after {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--brand-primary);
  content: "";
  transform: translateX(-100%);
  animation: loaderProgress 1.35s ease-in-out infinite;
}

@keyframes loaderSteam {
  0% { opacity: 0; transform: translateY(8px) scaleY(.65); }
  35% { opacity: .8; }
  100% { opacity: 0; transform: translateY(-17px) scaleY(1.12); }
}

@keyframes loaderPlatePulse {
  50% { transform: scale(.96); }
}

@keyframes loaderProgress {
  0% { transform: translateX(-100%); }
  55%, 100% { transform: translateX(100%); }
}

@media (prefers-reduced-motion: reduce) {
  .site-loader__plate,
  .site-loader__steam,
  .site-loader__progress::after {
    animation-duration: 2.8s;
  }
}

/* Login y registro: composición minimalista y ancho adaptativo. */
@media (min-width: 576px) {
  :is(#myModal, #modalLogin).auth-modal--login .modal-dialog {
    width: min(100%, 480px);
    max-width: 480px;
  }

  :is(#myModal, #modalLogin).auth-modal--register .modal-dialog {
    width: min(calc(100% - 2rem), 780px);
    max-width: 780px;
  }
}

:is(#myModal, #modalLogin) .modal-content:has(#form-register) {
  border-radius: 18px;
  background: var(--brand-surface);
}

:is(#myModal, #modalLogin) .modal-content:has(#form-register) .modal-header,
#modalLogin .page-1 .modal-header {
  min-height: 78px;
  padding: 18px 22px !important;
  border-bottom: 1px solid var(--brand-line);
  background: var(--brand-surface) !important;
  color: var(--brand-ink);
}

:is(#myModal, #modalLogin) .modal-content:has(#form-register) .modal-header::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  width: auto;
  height: 4px;
  margin: 0;
  border-radius: 0;
  background: linear-gradient(90deg, var(--brand-primary), var(--brand-accent));
  content: "";
}

#modalLogin.auth-modal--login .page-1 .modal-header::before {
  position: static;
  display: flex;
  width: 42px;
  height: 42px;
  margin: 0 0 .75rem;
  border-radius: 12px;
  background: var(--brand-primary-soft);
  color: var(--brand-primary);
  content: "\f2bd";
}

:is(#myModal, #modalLogin) .modal-content:has(#form-register) .modal-header span,
#modalLogin .page-1 .modal-header span {
  color: var(--brand-ink) !important;
}

#myModal .page-1:has(#form-register) .modal-header::after,
#modalLogin .page-2:has(#form-register) .modal-header::after,
#modalLogin .page-1 .modal-header::after {
  color: var(--brand-muted);
}

:is(#myModal, #modalLogin) .modal-content:has(#form-register) .modal-header .close,
#modalLogin .page-1 .modal-header .close {
  background: #f3f0eb;
  color: var(--brand-muted);
}

:is(#myModal, #modalLogin) .modal-content:has(#form-register) .modal-header .close span,
#modalLogin .page-1 .modal-header .close span {
  color: var(--brand-muted) !important;
}

:is(#myModal, #modalLogin) .modal-body:has(#form-register) {
  background: #f8f4ed;
}

:is(#myModal, #modalLogin) #form-register .modal-register-box {
  border-color: color-mix(in srgb, var(--brand-ink) 11%, transparent);
  border-radius: 14px;
  background: #fff;
  box-shadow: none;
}

:is(#myModal, #modalLogin) #form-register .modal-register-box + .modal-register-box {
  margin-top: .8rem;
}

:is(#myModal, #modalLogin) #form-register .ent > div[style*="display:flex"] > div:first-child {
  min-width: 0;
}

:is(#myModal, #modalLogin) #form-register #consultaCliente {
  flex: 0 0 auto;
  min-width: 94px;
}

#modalLogin.auth-modal--login .page-1 .modal-body {
  padding-top: .25rem;
  background: var(--brand-surface);
}

#modalLogin.auth-modal--login .page-1 .modal-body > .d-flex {
  padding: .7rem 0;
  border: 0;
  border-bottom: 1px solid var(--brand-line);
  border-radius: 0;
  background: transparent;
}

#modalLogin.auth-modal--login .page-1 .btn-next-login {
  border-radius: 8px;
  background: var(--brand-primary-soft);
}

#modalLogin.auth-modal--login .page-1 .btn-login {
  box-shadow: none;
}

@media (max-width: 575.98px) {
  :is(#myModal, #modalLogin).auth-modal--login .modal-dialog {
    width: 100%;
    height: auto;
    min-height: 0;
    margin: auto 0;
  }

  :is(#myModal, #modalLogin).auth-modal--login .modal-content {
    height: auto;
    border-radius: 16px;
  }

  :is(#myModal, #modalLogin).auth-modal--register .modal-content:has(#form-register) .modal-header {
    min-height: 66px;
    padding: 13px 16px !important;
  }

  :is(#myModal, #modalLogin).auth-modal--register #form-register .modal-register-box {
    padding: .72rem;
  }

  :is(#myModal, #modalLogin).auth-modal--register #form-register .modal-register-title {
    font-size: .84rem;
  }

  :is(#myModal, #modalLogin).auth-modal--register #form-register #consultaCliente {
    min-width: 82px;
  }
}

/* Carga interna de productos destacados en la página principal. */
#contenedor-categorias[aria-busy="true"] {
  min-height: 430px;
}

#contenedor-categorias .featured-loading {
  padding-top: 1.5rem;
  padding-bottom: 2.5rem;
}

.featured-loading-heading {
  display: flex;
  margin-bottom: 1.25rem;
  align-items: center;
  gap: .65rem;
  color: var(--brand-muted);
  font-size: .92rem;
  font-weight: 650;
}

.featured-loading-spinner {
  width: 18px;
  height: 18px;
  border: 2px solid color-mix(in srgb, var(--brand-primary) 18%, transparent);
  border-top-color: var(--brand-primary);
  border-radius: 50%;
  animation: featuredProductsSpin .75s linear infinite;
}

.featured-loading-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}

.featured-loading-card {
  min-width: 0;
  padding: 0 14px 14px;
  overflow: hidden;
  border: 1px solid var(--brand-line);
  border-radius: 10px;
  background: var(--brand-surface);
}

.featured-loading-card > span {
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: 6px;
  background: #eee9e1;
}

.featured-loading-card > span::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.7), transparent);
  content: "";
  transform: translateX(-100%);
  animation: featuredProductsShimmer 1.35s ease-in-out infinite;
}

.featured-loading-image {
  height: 210px;
  margin: 0 -14px 18px;
  border-radius: 0 !important;
}

.featured-loading-line--title {
  width: 58%;
  height: 15px;
  margin-bottom: 18px;
}

.featured-loading-line--price {
  width: 30%;
  height: 17px;
  margin-bottom: 14px;
}

.featured-loading-button {
  width: 100%;
  height: 42px;
}

.featured-products-state {
  display: flex;
  max-width: 520px;
  min-height: 230px;
  margin: 2rem auto 3rem;
  padding: 2rem;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  border: 1px solid var(--brand-line);
  border-radius: 14px;
  background: var(--brand-surface);
  color: var(--brand-ink);
  text-align: center;
}

.featured-products-state__icon {
  display: grid;
  width: 42px;
  height: 42px;
  margin-bottom: .8rem;
  place-items: center;
  border-radius: 50%;
  background: color-mix(in srgb, var(--brand-primary) 9%, #fff);
  color: var(--brand-primary);
  font-weight: 800;
}

.featured-products-state p {
  margin: .45rem 0 1rem;
  color: var(--brand-muted);
}

.featured-products-state :is(button, a) {
  padding: .7rem 1rem;
  border: 0;
  border-radius: 8px;
  background: var(--brand-primary);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}

@keyframes featuredProductsSpin {
  to { transform: rotate(360deg); }
}

@keyframes featuredProductsShimmer {
  to { transform: translateX(100%); }
}

@media (max-width: 767.98px) {
  #contenedor-categorias[aria-busy="true"] {
    min-height: 390px;
  }

  #contenedor-categorias .featured-loading {
    padding: 1rem;
  }

  .featured-loading-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .featured-loading-card:not(:first-child) {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .featured-loading-spinner,
  .featured-loading-card > span::after {
    animation: none;
  }
}

/* Alineación uniforme de las tarjetas y acciones de productos destacados. */
.categorias__wrapper .owl-stage {
  display: flex;
  align-items: stretch;
}

.categorias__wrapper .owl-item {
  display: flex;
  height: auto;
}

.categorias__wrapper .owl-item .card__product {
  display: flex;
  width: 100%;
  min-width: 0;
  height: 100%;
  flex-direction: column;
}

.categorias__wrapper .card__product > img {
  display: block;
  width: 100%;
  flex: 0 0 210px;
  object-fit: cover;
}

.categorias__wrapper .card__product__body {
  display: flex;
  min-width: 0;
  height: 100%;
  flex: 1 1 auto;
  flex-direction: column;
}

.categorias__wrapper .card__product__info {
  display: flex;
  min-height: 72px;
  flex-direction: column;
}

.categorias__wrapper .card__product__info h3 {
  display: -webkit-box;
  min-height: 2.8em;
  margin: 0;
  overflow: hidden;
  line-height: 1.4;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.categorias__wrapper .card__product__info p {
  margin-top: .35rem;
}

.categorias__wrapper .card__product__price {
  margin-top: auto;
  padding-top: .55rem;
}

.categorias__wrapper .card__product__button {
  width: 100%;
  min-height: 42px;
  margin-top: .65rem;
  flex: 0 0 auto;
  align-items: center;
  gap: .35rem;
}

@media (max-width: 767.98px) {
  .categorias__wrapper .card__product__info {
    min-height: 64px;
  }

  .categorias__wrapper .card__product__info h3 {
    min-height: 2.65em;
  }
}

/* Detalle de producto compartido: escritorio y móvil. */
.modal-backdrop.show {
  background: rgba(31, 22, 27, .66);
  opacity: 1 !important;
  -webkit-backdrop-filter: blur(5px) saturate(.82);
  backdrop-filter: blur(5px) saturate(.82);
}

#exampleModal {
  background: rgba(31, 22, 27, .08);
}

#exampleModal.show #modalRedondo {
  animation: productModalFocusIn .28s cubic-bezier(.2, .8, .2, 1) both;
}

@keyframes productModalFocusIn {
  from {
    opacity: 0;
    transform: translateY(12px) scale(.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

#exampleModal .modal-dialog.modal-product-size {
  width: min(1000px, calc(100% - 32px));
  max-width: 1000px !important;
}

#exampleModal #modalRedondo {
  overflow: hidden;
  border: 0;
  border-radius: 18px;
  background: var(--brand-surface);
  box-shadow: 0 24px 70px rgba(35, 24, 29, .24);
}

#exampleModal .box-modal-product {
  min-width: 0;
  background: var(--brand-surface);
}

#exampleModal .modal-img-wrapper {
  width: 100%;
  height: 500px;
  overflow: hidden;
  background: #f4f1ec;
}

#exampleModal .modal-img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
}

#exampleModal .modal-header {
  min-height: 64px;
  padding: 1rem 1.1rem;
  align-items: center;
  border-bottom: 1px solid var(--brand-line);
  background: var(--brand-surface);
}

#exampleModal .modal-product-title {
  padding-right: 1rem;
  color: var(--brand-ink);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.35;
}

#exampleModal .modal-header .close {
  display: grid;
  width: 38px;
  height: 38px;
  margin: 0;
  padding: 0;
  place-items: center;
  border-radius: 50%;
  background: #f3f0eb;
  opacity: 1;
}

#exampleModal .modal-header .close svg {
  width: 18px;
  height: 18px;
  color: var(--brand-muted);
  fill: currentColor;
}

#exampleModal .modal-body {
  padding: 1rem;
}

#exampleModal .modal-card-content,
#exampleModal .modal-card-content .description {
  min-height: 0;
}

#exampleModal #modal-product-content:empty {
  display: none;
}

#exampleModal .modal-card-content .price {
  margin-top: .35rem;
  color: var(--brand-ink);
  font-size: 1.05rem !important;
  font-weight: 800;
}

#exampleModal .comment {
  margin-bottom: .4rem;
}

#exampleModal .comment-textarea textarea {
  min-height: 58px;
  border: 1px solid var(--brand-line);
  border-radius: 10px;
  background: #fff;
}

#exampleModal .coment {
  gap: .75rem;
  border-top: 1px solid var(--brand-line);
  background: var(--brand-surface);
  box-shadow: 0 -8px 24px rgba(54, 31, 40, .06) !important;
}

#exampleModal .card-less-add {
  min-height: 44px;
  overflow: hidden;
  border: 1px solid var(--brand-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: none;
}

#exampleModal .btn-product-less {
  min-width: 42px;
  padding: 0;
}

#exampleModal .btn-add-product {
  min-height: 44px;
  border-radius: 10px;
  background: var(--brand-primary);
  box-shadow: none;
  font-size: .92rem;
}

@media (max-width: 767.98px) {
  .modal-backdrop.show {
    background: rgba(31, 22, 27, .7);
    -webkit-backdrop-filter: blur(7px) saturate(.78);
    backdrop-filter: blur(7px) saturate(.78);
  }

  #exampleModal {
    padding: 0 !important;
  }

  #exampleModal .modal-dialog.modal-product-size {
    width: 100%;
    max-width: none !important;
    height: 100dvh;
    margin: 0;
    padding: max(10px, env(safe-area-inset-top)) 10px 0;
    align-items: flex-end;
  }

  #exampleModal #modalRedondo {
    width: 100%;
    max-height: calc(100dvh - max(10px, env(safe-area-inset-top)));
    border-radius: 20px 20px 0 0 !important;
  }

  #exampleModal .box-modal-product {
    display: flex !important;
    max-height: calc(100dvh - max(10px, env(safe-area-inset-top)));
    flex-direction: column !important;
    border-radius: 0 !important;
  }

  #exampleModal .box-modal-product > div:first-child:not(.d-none) {
    display: block !important;
    flex: 0 0 clamp(180px, 30dvh, 250px);
    overflow: hidden;
  }

  #exampleModal .modal-img-wrapper {
    height: 100% !important;
    border-radius: 0;
  }

  #exampleModal .modal-img {
    height: 100% !important;
    border-radius: 0 !important;
    object-fit: contain !important;
  }

  #exampleModal .box-modal-product > div:last-child {
    display: flex;
    min-height: 0;
    flex: 1 1 auto;
    flex-direction: column;
  }

  #exampleModal .box-modal-product > div:last-child > .d-flex.flex-column {
    min-height: 0;
    height: 100% !important;
  }

  #exampleModal .modal-header {
    min-height: 58px;
    padding: .75rem .85rem;
  }

  #exampleModal .modal-product-title {
    font-size: .95rem;
  }

  #exampleModal .modal-header .close {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
  }

  #exampleModal .modal-body {
    min-height: 0;
    padding: .8rem .85rem;
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }

  #exampleModal .modal-card-content .description {
    gap: .8rem;
  }

  #exampleModal .box-note-master {
    padding: .65rem !important;
  }

  #exampleModal .coment {
    display: grid !important;
    position: sticky;
    bottom: 0;
    z-index: 3;
    grid-template-columns: minmax(112px, .8fr) minmax(0, 1.45fr);
    gap: .65rem;
    padding: .7rem .85rem calc(.7rem + env(safe-area-inset-bottom)) !important;
  }

  #exampleModal .coment > div {
    width: 100%;
    max-width: none;
    padding: 0 !important;
  }

  #exampleModal .card-less-add,
  #exampleModal .btn-add-product {
    min-height: 48px;
    height: 48px;
  }

  #exampleModal .btn-add-product {
    font-size: clamp(.76rem, 3.6vw, .9rem);
    white-space: nowrap;
  }
}

@media (max-width: 370px) {
  #exampleModal .coment {
    grid-template-columns: 108px minmax(0, 1fr);
  }

  #exampleModal .btn-product-less {
    min-width: 34px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #exampleModal.show #modalRedondo {
    animation: none;
  }
}

/* Acceso de clientes: presentación compartida en todas las páginas. */
#modalLogin {
  padding: 18px !important;
  background: rgba(20, 17, 15, .48);
  backdrop-filter: blur(5px);
}

#modalLogin .modal-dialog {
  width: min(100%, 480px);
  max-width: 480px;
  margin-right: auto;
  margin-left: auto;
}

#modalLogin .modal-content {
  overflow: hidden !important;
  border: 1px solid rgba(30, 34, 45, .08);
  border-radius: 22px;
  background: #fffdf9;
  box-shadow: 0 24px 70px rgba(24, 18, 14, .24);
}

#modalLogin .page-1 .modal-header {
  position: relative;
  display: block !important;
  padding: 32px 32px 16px !important;
  border: 0;
}

#modalLogin .page-1 .modal-header::before {
  display: flex;
  width: 48px;
  height: 48px;
  margin-bottom: 18px;
  align-items: center;
  justify-content: center;
  border-radius: 15px;
  background: var(--brand-primary-soft, #edf2ff);
  color: var(--brand-primary, #2454df);
  content: "\f2bd";
  font-family: "Font Awesome 6 Free";
  font-size: 23px;
  font-weight: 900;
}

#modalLogin .page-1 .modal-header span {
  color: #17181c !important;
  font-size: 25px;
  font-weight: 800;
  letter-spacing: -.03em;
}

#modalLogin .page-1 .modal-header::after {
  display: block;
  margin-top: 7px;
  color: #747883;
  content: "Ingresa para revisar tus pedidos y continuar tu compra.";
  font-size: 14px;
  line-height: 1.5;
}

#modalLogin .page-1 .modal-header .close {
  position: absolute;
  top: 20px;
  right: 20px;
  display: flex;
  width: 38px;
  height: 38px;
  margin: 0;
  padding: 0;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #f3f2ef;
  color: #45474d;
  font-size: 24px;
  opacity: 1;
  transition: background .2s ease, transform .2s ease;
}

#modalLogin .page-1 .modal-header .close:hover {
  background: #e9e7e2;
  transform: rotate(5deg);
}

#modalLogin .page-1 .modal-body {
  padding: 6px 32px 32px;
}

#modalLogin .page-1 .modal-body > .d-flex {
  padding: 11px 14px;
  border: 1px solid #e9e6df;
  border-radius: 12px;
  background: #f8f7f3;
  color: #656872;
  font-size: 13px;
}

#modalLogin .page-1 .modal-body > .d-flex span {
  color: inherit !important;
}

#modalLogin .page-1 .btn-next-login {
  padding: 5px 9px;
  border: 0;
  background: transparent;
  color: var(--brand-primary, #2454df);
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
}

#modalLogin .page-1 .btn-next-login:hover {
  background: var(--brand-primary-soft, #edf2ff);
  color: var(--brand-primary, #2454df);
}

#modalLogin .page-1 .modal-body > hr {
  display: none;
}

#modalLogin .page-1 .floating-labels {
  margin-top: 8px;
}

#modalLogin .page-1 .floating-labels .col-12.pt-4 {
  padding-top: 18px !important;
}

#modalLogin .page-1 .form-group {
  position: relative;
  margin-bottom: 4px;
}

#modalLogin .page-1 .form-control {
  height: 54px;
  padding: 20px 46px 7px 15px;
  border: 1px solid #dcd9d2;
  border-radius: 12px;
  background: #fff;
  box-shadow: none;
  color: #202126;
  font-size: 15px;
  transition: border-color .2s ease, box-shadow .2s ease;
}

#modalLogin .page-1 .form-control:focus {
  border-color: var(--brand-primary, #2454df);
  box-shadow: 0 0 0 4px rgba(36, 84, 223, .1);
}

#modalLogin .page-1 .floating-labels label {
  top: 7px;
  left: 15px;
  margin: 0;
  color: #747883;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .02em;
  pointer-events: none;
  transform: none;
}

#modalLogin .page-1 .floating-labels .bar {
  display: none;
}

#modalLogin #togglePasswordLogin {
  top: 17px;
  right: 16px !important;
  margin: 0 !important;
  color: #72757d;
  line-height: 1;
}

#modalLogin .page-1 .invalid-feedback {
  margin: 7px 2px 0;
  color: #d93f55;
  font-size: 12px;
}

#modalLogin .page-1 a[href*="send_email"] {
  display: inline-block;
  margin-top: 10px;
  color: var(--brand-primary, #2454df);
  font-size: 13px !important;
  font-weight: 700;
}

#modalLogin .page-1 .btn-login {
  width: 100%;
  min-height: 52px;
  margin-top: 10px;
  border: 0;
  border-radius: 13px;
  background: var(--brand-primary, #2454df);
  box-shadow: 0 10px 24px rgba(36, 84, 223, .2);
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  transition: box-shadow .2s ease, transform .2s ease;
}

#modalLogin .page-1 .btn-login:hover {
  box-shadow: 0 13px 28px rgba(36, 84, 223, .28);
  transform: translateY(-2px);
}

.modal-drawer-account-item {
  margin: 10px 12px 0;
  padding-top: 12px;
  border-top: 1px solid #e7e9ef;
}

.modal-drawer-account-item .modal-drawer-account-link {
  min-height: 54px;
  padding: 10px 12px;
  border: 1px solid rgba(36, 84, 223, .14);
  border-left: 1px solid rgba(36, 84, 223, .14);
  border-radius: 12px;
  background: var(--brand-primary-soft, #edf2ff);
  color: var(--brand-primary, #2454df);
  font-weight: 750;
}

.modal-drawer-account-item .modal-drawer-account-link:hover {
  border-left-color: rgba(36, 84, 223, .14);
  background: #e4ebff;
}

.modal-drawer-account-link__action {
  margin-left: auto;
  padding: 4px 8px;
  border-radius: 999px;
  background: #fff;
  color: var(--brand-primary, #2454df);
  font-size: 11px;
  font-weight: 800;
}

.modal-drawer-logout-item {
  margin: .4rem 12px 0;
}

.modal-drawer-logout-item .modal-drawer-logout-link {
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid #f0cbd1;
  border-left: 1px solid #f0cbd1;
  border-radius: 12px;
  background: #fff5f6;
  color: #b32940;
  font-weight: 800;
}

.modal-drawer-logout-item .modal-drawer-logout-link:hover {
  border-left-color: #f0cbd1;
  background: #fdebed;
  color: #962137;
}

/* Navegación de cuenta y cierre de sesión: escritorio y móvil. */
body .nav-profile-menu {
  overflow: hidden;
  border: 1px solid var(--brand-line);
  border-radius: 14px;
  background: var(--brand-surface);
  box-shadow: 0 8px 24px rgba(54, 31, 40, .07);
}

body .nav-profile-menu .nav-link {
  display: inline-flex;
  min-height: 44px;
  padding: .65rem .9rem;
  align-items: center;
  justify-content: center;
  gap: .42rem;
  border: 0 !important;
  border-radius: 10px;
  color: var(--brand-muted);
  font-size: .78rem;
  font-weight: 850;
  white-space: nowrap;
}

body .nav-profile-menu .nav-link i {
  font-size: 1rem;
}

body .nav-profile-menu .nav-link.active {
  background: var(--brand-primary) !important;
  color: #fff !important;
}

body .nav-profile-menu .nav-item--logout {
  margin-left: .15rem;
  padding-left: .4rem;
  border-left: 1px solid var(--brand-line);
}

body .nav-profile-menu .nav-item--logout .nav-link {
  color: #b32940;
}

body .nav-profile-menu .nav-item--logout .nav-link:hover {
  background: #fff0f2;
  color: #962137;
}

.account-session-footer {
  display: flex;
  max-width: 720px;
  margin: 4rem auto 0;
  padding: 1rem 1.1rem;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  border-top: 1px solid var(--brand-line);
  color: var(--brand-muted);
}

.account-session-footer > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: .15rem;
}

.account-session-footer strong {
  color: var(--brand-ink);
  font-size: .78rem;
  font-weight: 800;
}

.account-session-footer span {
  font-size: .72rem;
  line-height: 1.45;
}

.account-session-footer__link {
  display: inline-flex;
  min-height: 38px;
  padding: .45rem .7rem;
  align-items: center;
  gap: .4rem;
  border-radius: 9px;
  color: var(--brand-muted);
  font-size: .72rem;
  font-weight: 750;
  white-space: nowrap;
  transition: background .2s ease, color .2s ease;
}

.account-session-footer__link:hover {
  background: rgba(179, 41, 64, .07);
  color: #a3293e;
  text-decoration: none;
}

/* Seguimiento de pedidos */
body .tracking-modal .modal-dialog {
  max-width: 590px;
}

body .tracking-modal .modal-content {
  overflow: hidden;
  border: 1px solid rgba(45, 32, 37, .1);
  border-radius: 22px;
  background: var(--brand-surface);
  box-shadow: 0 28px 80px rgba(37, 23, 30, .28);
}

body .tracking-modal__header {
  position: relative;
  min-height: 88px;
  padding: 1.25rem 1.4rem !important;
  align-items: center !important;
  border: 0;
  border-bottom: 1px solid var(--brand-line);
  background:
    radial-gradient(circle at 90% 0, var(--brand-accent-soft), transparent 12rem),
    var(--brand-surface);
}

body .tracking-modal__header::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 5px;
  background: linear-gradient(90deg, var(--brand-primary), var(--brand-accent));
  content: "";
}

body .tracking-modal__header h2 {
  color: var(--brand-ink);
  font-size: 1.25rem;
  letter-spacing: -.02em;
}

body .tracking-modal__header .close {
  display: flex;
  width: 38px;
  height: 38px;
  margin: 0;
  padding: 0;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(45, 32, 37, .06);
  color: var(--brand-muted);
  opacity: 1;
}

body .tracking-modal__header .close:hover {
  background: rgba(45, 32, 37, .11);
}

body .tracking-content {
  padding: 1rem 1.4rem 1.25rem;
}

body .tracking-summary {
  display: grid;
  padding: 1rem;
  align-items: center;
  grid-template-columns: 50px minmax(0, 1fr);
  gap: .85rem;
  border: 1px solid var(--brand-primary-border);
  border-radius: 15px;
  background: var(--brand-primary-soft);
}

.tracking-summary__icon {
  display: grid;
  width: 50px;
  height: 50px;
  border-radius: 14px;
  background: var(--brand-primary);
  box-shadow: 0 8px 18px color-mix(in srgb, var(--brand-primary) 24%, transparent);
  color: #fff;
  font-size: 1.25rem;
  place-items: center;
}

body .tracking-summary small {
  display: block;
  margin-bottom: .12rem;
  color: var(--brand-muted);
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

body .tracking-summary strong {
  color: var(--brand-primary);
  font-size: 1.02rem;
  font-weight: 900;
}

body .tracking-summary p {
  margin-top: .25rem;
  line-height: 1.5;
}

body .tracking-content.is-cancelled .tracking-summary {
  border-color: #f0cbd1;
}

body .tracking-content.is-cancelled .tracking-summary__icon {
  background: #c9364f;
  box-shadow: 0 8px 18px rgba(201, 54, 79, .22);
}

body .tracking-steps {
  margin-top: 1.65rem;
  grid-template-columns: repeat(5, 1fr);
}

body .tracking-steps li {
  gap: .55rem;
  font-size: .64rem;
  font-weight: 700;
}

body .tracking-steps li.is-current {
  color: var(--brand-primary);
  font-weight: 900;
}

body .tracking-steps li.is-current .tracking-step__dot {
  box-shadow: 0 0 0 6px var(--brand-primary-soft);
  animation: trackingCurrentPulse 1.8s ease-in-out infinite;
}

.tracking-update-note {
  display: flex;
  margin: 1.4rem 0 0;
  padding-top: .85rem;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  border-top: 1px solid var(--brand-line);
  color: var(--brand-muted);
  font-size: .68rem;
  text-align: center;
}

@keyframes trackingCurrentPulse {
  50% { box-shadow: 0 0 0 9px color-mix(in srgb, var(--brand-primary) 7%, transparent); }
}

/* Alertas de éxito: registro completado y confirmaciones equivalentes. */
body .swal2-container.swal2-backdrop-show {
  background: rgba(31, 22, 26, .58);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}

body .swal2-popup.swal2-icon-success {
  width: min(420px, calc(100vw - 2rem));
  padding: 2rem 1.75rem 1.65rem;
  overflow: hidden;
  border: 1px solid rgba(45, 32, 37, .1);
  border-radius: 22px;
  background:
    radial-gradient(circle at 100% 0, var(--brand-accent-soft), transparent 13rem),
    var(--brand-surface);
  box-shadow: 0 28px 80px rgba(37, 23, 30, .3);
}

body .swal2-popup.swal2-icon-success::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 5px;
  background: linear-gradient(90deg, var(--brand-primary), var(--brand-accent));
  content: "";
}

body .swal2-popup.swal2-icon-success.swal2-show {
  animation: brandSuccessEnter .55s cubic-bezier(.16, 1, .3, 1) both !important;
}

body .swal2-icon.swal2-success {
  width: 76px;
  height: 76px;
  margin: .35rem auto 1.15rem;
  border-color: color-mix(in srgb, #39a65a 28%, #fff);
  background: color-mix(in srgb, #39a65a 8%, #fff);
  box-shadow: 0 0 0 0 rgba(57, 166, 90, .2);
  animation: brandSuccessPulse 1.8s .55s ease-out 2;
}

body .swal2-success-ring {
  border-color: color-mix(in srgb, #39a65a 28%, transparent) !important;
}

body .swal2-success-line-tip,
body .swal2-success-line-long {
  background-color: #39a65a !important;
}

body .swal2-title {
  padding: 0;
  color: var(--brand-ink);
  font-family: var(--font-body);
  font-size: clamp(1.3rem, 4vw, 1.65rem);
  font-weight: 900;
  letter-spacing: -.025em;
}

body .swal2-html-container,
body .swal2-content {
  margin: .65rem auto 0;
  color: var(--brand-muted);
  font-size: .9rem;
  line-height: 1.55;
}

body .swal2-actions {
  width: 100%;
  margin: 1.35rem 0 0;
}

body .swal2-confirm {
  min-width: 170px;
  min-height: 48px;
  margin: 0;
  padding: .7rem 1.25rem;
  border: 0 !important;
  border-radius: 12px !important;
  background: var(--brand-primary) !important;
  box-shadow: 0 10px 24px color-mix(in srgb, var(--brand-primary) 24%, transparent) !important;
  font-size: .86rem !important;
  font-weight: 850 !important;
  transition: box-shadow .2s ease, transform .2s ease;
}

body .swal2-confirm:hover {
  background: var(--brand-primary-hover) !important;
  box-shadow: 0 13px 28px color-mix(in srgb, var(--brand-primary) 30%, transparent) !important;
  transform: translateY(-2px);
}

@keyframes brandSuccessEnter {
  0% { opacity: 0; transform: translateY(28px) scale(.92); }
  65% { opacity: 1; transform: translateY(-3px) scale(1.012); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes brandSuccessPulse {
  0% { box-shadow: 0 0 0 0 rgba(57, 166, 90, .22); transform: scale(1); }
  55% { box-shadow: 0 0 0 15px rgba(57, 166, 90, 0); transform: scale(1.04); }
  100% { box-shadow: 0 0 0 0 rgba(57, 166, 90, 0); transform: scale(1); }
}

/* Página Contacto */
.contact-page .banner__contact__section {
  position: relative;
  min-height: clamp(260px, 34vw, 460px);
  overflow: hidden;
  isolation: isolate;
}

.contact-page .banner__contact__section::after {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(34, 18, 27, .78) 0%, rgba(34, 18, 27, .42) 48%, rgba(34, 18, 27, .08) 78%),
    linear-gradient(0deg, rgba(34, 18, 27, .28), transparent 55%);
  content: "";
}

.contact-page .banner__contact__section__img {
  width: 100%;
  height: clamp(260px, 34vw, 460px) !important;
  object-fit: cover;
  transition: transform .7s ease;
}

.contact-page .banner__contact__section:hover .banner__contact__section__img {
  transform: scale(1.015);
}

.contact-hero__overlay {
  position: absolute;
  top: 50%;
  left: max(1.25rem, calc((100% - 1180px) / 2 + 1rem));
  z-index: 2;
  width: min(560px, calc(100% - 2.5rem));
  color: #fff;
  transform: translateY(-50%);
}

.contact-hero__overlay .section__eyebrow {
  color: #ffc18d;
}

.contact-hero__overlay h2 {
  margin: 0 0 .7rem;
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 5vw, 4.5rem);
  line-height: 1;
  letter-spacing: -.035em;
  text-transform: uppercase;
}

.contact-hero__overlay p {
  max-width: 510px;
  margin: 0;
  color: rgba(255, 255, 255, .88);
  font-size: clamp(.9rem, 1.4vw, 1.08rem);
  line-height: 1.65;
}

.contact-page .form__contact__section {
  background: var(--brand-background) !important;
}

.contact-page .form__contact__section__content {
  max-width: 1120px;
  padding-top: clamp(2.5rem, 6vw, 5rem);
  padding-bottom: clamp(2.5rem, 6vw, 5rem);
  align-items: stretch;
  gap: clamp(1.25rem, 3vw, 2.25rem);
}

.contact-page .contact__card,
.contact-page .contact__rigth {
  border: 1px solid var(--brand-line);
  border-radius: 20px;
  background: var(--brand-surface);
  box-shadow: 0 18px 50px rgba(54, 31, 40, .08);
}

.contact-page .contact__card {
  padding: clamp(1.35rem, 3vw, 2rem);
  gap: 1.25rem;
}

.contact-page .contact__card .title__text {
  margin-bottom: .45rem;
  font-size: clamp(1.7rem, 3vw, 2.35rem);
}

.contact-page .form__contact {
  gap: 1.05rem;
}

.contact-page .form__label {
  display: block;
  margin-bottom: .42rem;
  color: var(--brand-ink);
  font-size: .78rem;
  font-weight: 800;
}

.contact-page .form__label span {
  color: var(--brand-accent);
}

.contact-page .form__input {
  width: 100%;
  min-height: 52px;
  padding: .78rem .9rem;
  border: 1px solid var(--brand-line) !important;
  border-radius: 11px !important;
  background: #fff !important;
  color: var(--brand-ink);
  box-shadow: none !important;
  outline: 0;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.contact-page textarea.form__input {
  min-height: 128px;
  resize: vertical;
}

.contact-page .form__input:focus {
  border-color: var(--brand-primary) !important;
  box-shadow: 0 0 0 4px var(--brand-primary-soft) !important;
}

.contact-page .form__contact__button {
  width: 100%;
  min-height: 52px;
  margin-top: .25rem;
  border: 0;
  border-radius: 12px;
  font-weight: 850;
  box-shadow: 0 10px 24px color-mix(in srgb, var(--brand-primary) 22%, transparent);
}

.contact-page .contact__rigth {
  position: relative;
  padding: clamp(1.35rem, 3vw, 2rem);
  overflow: hidden;
}

.contact-page .contact__rigth::before {
  position: absolute;
  top: -90px;
  right: -90px;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  background: var(--brand-accent-soft);
  content: "";
  pointer-events: none;
}

.contact-page .contact__info,
.contact-page .contact__address {
  position: relative;
  padding: 1.1rem;
  border: 1px solid var(--brand-line);
  border-radius: 14px;
  background: rgba(255, 255, 255, .72);
}

.contact-page .contact__info h3,
.contact-page .contact__address h3 {
  margin: 0 0 .75rem;
  color: var(--brand-ink);
  font-size: .95rem;
  font-weight: 850;
}

.contact-page .contact__info__numbers img {
  width: 62px;
  height: 62px;
  padding: 10px;
  border-radius: 15px;
  background: #eaf8ee;
}

.contact-page .contact__info__numbers__text span {
  color: var(--brand-muted);
  word-break: break-word;
}

.contact-page .contact__info__numbers__text p {
  color: var(--brand-ink);
  font-size: .94rem;
}

.contact-page .contact__address p {
  margin: 0 0 .4rem;
  color: var(--brand-muted);
  font-size: .88rem;
  line-height: 1.6;
}

.contact-page .contact__social__media {
  position: relative;
  justify-content: flex-start;
}

.contact-page .contact__social__media__item {
  width: 43px;
  height: 43px;
  background: var(--brand-primary-soft);
  color: var(--brand-primary);
}

.contact-page .contact__social__media__item:hover {
  background: var(--brand-primary);
  color: #fff;
  transform: translateY(-2px);
}

.contact-page .contact-payments {
  text-align: center;
}

.contact-page .contact-payments .pay__section__content {
  margin-top: 1.5rem;
  border: 1px solid var(--brand-line);
  border-radius: 18px;
  background: var(--brand-surface);
  box-shadow: 0 14px 38px rgba(54, 31, 40, .07);
}

/* Formularios compartidos de registro de clientes */
:is(#myModal, #modalLogin) .modal-content:has(#form-register) {
  overflow: hidden !important;
  border: 1px solid rgba(45, 32, 37, .1);
  border-radius: 22px;
  background: var(--brand-surface);
  box-shadow: 0 28px 80px rgba(37, 23, 30, .26);
}

:is(#myModal, #modalLogin) .modal-content:has(#form-register) .modal-header {
  position: relative;
  min-height: 76px;
  padding: 18px 24px !important;
  align-items: center;
  border: 0;
  background:
    radial-gradient(circle at 88% 20%, color-mix(in srgb, var(--brand-accent) 28%, transparent), transparent 9rem),
    var(--brand-primary) !important;
  color: #fff;
}

:is(#myModal, #modalLogin) .modal-content:has(#form-register) .modal-header span {
  color: #fff !important;
  font-size: 1.12rem;
  font-weight: 850;
  letter-spacing: -.01em;
  text-transform: none;
}

:is(#myModal, #modalLogin) .modal-content:has(#form-register) .modal-header .close {
  display: flex;
  width: 38px;
  height: 38px;
  margin: 0;
  padding: 0;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, .13);
  color: #fff;
  opacity: 1;
}

:is(#myModal, #modalLogin) .modal-content:has(#form-register) .modal-header .close:hover {
  background: rgba(255, 255, 255, .22);
}

#myModal .page-1:has(#form-register) .modal-header::after,
#modalLogin .page-2:has(#form-register) .modal-header::after {
  position: absolute;
  bottom: 10px;
  left: 24px;
  color: rgba(255, 255, 255, .72);
  content: "Completa tus datos para realizar pedidos más rápido.";
  font-size: .68rem;
  font-weight: 500;
}

:is(#myModal, #modalLogin) #form-register {
  color: var(--brand-ink);
}

:is(#myModal, #modalLogin) .modal-body:has(#form-register) {
  padding: clamp(1.15rem, 3vw, 2rem);
  background:
    radial-gradient(circle at 100% 0, var(--brand-accent-soft), transparent 18rem),
    var(--brand-background);
}

:is(#myModal, #modalLogin) #form-register .modal-register-box {
  padding: 1.15rem;
  border: 1px solid var(--brand-line);
  border-radius: 16px;
  background: var(--brand-surface);
  box-shadow: 0 10px 28px rgba(54, 31, 40, .055);
}

:is(#myModal, #modalLogin) #form-register .modal-register-box + .modal-register-box {
  margin-top: 1rem;
}

:is(#myModal, #modalLogin) #form-register .modal-register-title {
  display: block;
  margin-bottom: .25rem;
  color: var(--brand-ink) !important;
  font-size: .96rem;
  font-weight: 900;
}

:is(#myModal, #modalLogin) #form-register .modal-register-title::before {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: .5rem;
  border-radius: 50%;
  background: var(--brand-accent);
  content: "";
}

:is(#myModal, #modalLogin) #form-register .box-new_client {
  display: flex !important;
  margin: .75rem 0 .15rem;
  flex-wrap: wrap;
  gap: .45rem;
}

:is(#myModal, #modalLogin) #form-register .box-new_client > div {
  display: inline-flex !important;
}

:is(#myModal, #modalLogin) #form-register .box-new_client label {
  min-height: 36px;
  margin: 0;
  padding: .45rem .75rem .45rem 2rem;
  border: 1px solid var(--brand-line);
  border-radius: 999px;
  background: #fff;
  color: var(--brand-muted);
  font-size: .78rem;
  font-weight: 800;
  cursor: pointer;
}

:is(#myModal, #modalLogin) #form-register .box-new_client input:checked + label {
  border-color: var(--brand-primary);
  background: var(--brand-primary-soft);
  color: var(--brand-primary);
}

:is(#myModal, #modalLogin) #form-register .floating-labels .col-12,
:is(#myModal, #modalLogin) #form-register .floating-labels [class*="col-lg-"] {
  padding-top: 1rem !important;
}

:is(#myModal, #modalLogin) #form-register .form-group {
  position: relative;
  margin: 0;
}

:is(#myModal, #modalLogin) #form-register .form-control {
  width: 100%;
  height: 54px;
  padding: 20px 44px 7px 14px;
  border: 1px solid var(--brand-line) !important;
  border-radius: 11px !important;
  background: #fff !important;
  color: var(--brand-ink);
  box-shadow: none !important;
  font-size: .9rem;
}

:is(#myModal, #modalLogin) #form-register .form-control:focus {
  border-color: var(--brand-primary) !important;
  box-shadow: 0 0 0 4px var(--brand-primary-soft) !important;
}

:is(#myModal, #modalLogin) #form-register .floating-labels label.modal-form-register-camp {
  top: 7px;
  left: 14px;
  margin: 0;
  color: var(--brand-muted);
  font-size: .66rem;
  font-weight: 750;
  transform: none;
  pointer-events: none;
}

:is(#myModal, #modalLogin) #form-register .floating-labels .bar {
  display: none;
}

:is(#myModal, #modalLogin) #form-register :is(#togglePasswordRegister, #togglePasswordRegisterConfir) {
  top: 17px;
  right: 15px !important;
  z-index: 2;
  margin: 0 !important;
  color: var(--brand-muted);
  line-height: 1;
}

:is(#myModal, #modalLogin) #form-register #consultaCliente {
  min-width: 92px;
  height: 54px;
  margin-left: .45rem;
  border: 1px solid var(--brand-primary);
  border-radius: 11px;
  background: var(--brand-primary-soft);
  color: var(--brand-primary);
  font-weight: 800;
}

:is(#myModal, #modalLogin) #form-register #consultaCliente:hover {
  background: var(--brand-primary);
  color: #fff;
}

:is(#myModal, #modalLogin) #form-register .invalid-feedback {
  margin: .35rem .15rem 0;
  color: #c9364f;
  font-size: .68rem;
}

:is(#myModal, #modalLogin) #form-register .btn-register {
  width: 100%;
  min-height: 52px;
  margin-top: 1rem;
  border: 0;
  border-radius: 12px;
  background: var(--brand-primary);
  box-shadow: 0 10px 24px color-mix(in srgb, var(--brand-primary) 22%, transparent);
  color: #fff;
  font-size: .9rem;
  font-weight: 850;
  transition: box-shadow .2s ease, transform .2s ease;
}

:is(#myModal, #modalLogin) #form-register .btn-register:hover {
  background: var(--brand-primary-hover);
  box-shadow: 0 13px 28px color-mix(in srgb, var(--brand-primary) 28%, transparent);
  transform: translateY(-1px);
}

/* Formularios relacionados que comparten la misma experiencia de cliente. */
:is(#formAddress, #formPassword, #form-confir-pedido) .form-control {
  min-height: 50px;
  border: 1px solid var(--brand-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: none;
}

:is(#formAddress, #formPassword, #form-confir-pedido) .form-control:focus {
  border-color: var(--brand-primary);
  box-shadow: 0 0 0 4px var(--brand-primary-soft);
}

@media (max-width: 575.98px) {
  #modalLogin {
    padding: 12px !important;
  }

  #modalLogin .page-1 .modal-header {
    padding: 26px 22px 13px !important;
  }

  #modalLogin .page-1 .modal-body {
    padding: 4px 22px 24px;
  }

  .contact-page .banner__contact__section,
  .contact-page .banner__contact__section__img {
    min-height: 300px;
    height: 300px !important;
  }

  .contact-page .banner__contact__section__img {
    object-position: 62% center;
  }

  .contact-page .banner__contact__section::after {
    background: linear-gradient(90deg, rgba(34, 18, 27, .82), rgba(34, 18, 27, .28));
  }

  .contact-page .contact__card,
  .contact-page .contact__rigth {
    border-radius: 16px;
  }

  body .profile__section .nav-profile-menu {
    display: grid !important;
    width: 100%;
    margin: 0 0 1.4rem;
    padding: .35rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .35rem;
    overflow: visible;
  }

  body .profile__section .nav-profile-menu .nav-item {
    width: 100%;
  }

  body .profile__section .nav-profile-menu .nav-link {
    display: flex !important;
    width: 100%;
    min-height: 46px;
    padding: .6rem .45rem;
    font-size: .72rem;
  }

  body .profile__section .nav-profile-menu .nav-item--logout {
    margin: 0;
    padding: 0;
    grid-column: 1 / -1;
    border: 0;
  }

  body .profile__section .nav-profile-menu .nav-item--logout .nav-link {
    border: 1px solid #f0cbd1 !important;
    background: #fff5f6;
    color: #b32940;
  }

  .account-session-footer {
    margin-top: 3rem;
    padding: 1rem .25rem 0;
    align-items: flex-start;
    flex-direction: column;
    gap: .65rem;
  }

  .account-session-footer__link {
    min-height: 36px;
    margin-left: -.7rem;
    padding: .4rem .7rem;
  }

  body .tracking-modal {
    padding: .5rem !important;
  }

  body .tracking-modal .modal-dialog {
    width: 100%;
    max-width: none;
    margin: 0;
  }

  body .tracking-modal .modal-content {
    border-radius: 18px;
  }

  body .tracking-modal__header {
    min-height: 76px;
    padding: 1rem !important;
  }

  body .tracking-modal__header h2 {
    font-size: 1.02rem;
  }

  body .tracking-content {
    max-height: calc(100dvh - 110px);
    padding: .75rem;
    overflow-y: auto;
  }

  body .tracking-summary {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: .65rem;
    padding: .75rem;
  }

  .tracking-summary__icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    font-size: 1rem;
  }

  body .tracking-steps {
    display: flex;
    margin: 1rem 0 0;
    padding-left: .2rem;
    flex-direction: column;
    gap: 0;
  }

  body .tracking-steps li {
    min-height: 48px;
    padding-left: 48px;
    align-items: flex-start;
    justify-content: center;
    gap: 0;
    font-size: .72rem;
    text-align: left;
  }

  body .tracking-steps li:not(:last-child)::after {
    top: 32px;
    bottom: 0;
    left: 16px;
    width: 2px;
    height: auto;
  }

  body .tracking-steps .tracking-step__dot {
    position: absolute;
    top: 7px;
    left: 0;
  }

  .tracking-update-note {
    justify-content: flex-start;
    text-align: left;
  }

  body .swal2-popup.swal2-icon-success {
    width: calc(100vw - 1.25rem);
    padding: 1.55rem 1.15rem 1.15rem;
    border-radius: 18px;
  }

  body .swal2-icon.swal2-success {
    width: 66px;
    height: 66px;
    margin-bottom: .9rem;
  }

  body .swal2-confirm {
    width: 100%;
  }

  :is(#myModal, #modalLogin) {
    padding: .4rem !important;
  }

  :is(#myModal, #modalLogin) .modal-dialog:has(#form-register) {
    width: 100%;
    max-width: none;
    height: calc(100dvh - .8rem);
    max-height: calc(100dvh - .8rem);
    margin: 0;
    align-items: stretch;
  }

  :is(#myModal, #modalLogin) .modal-content:has(#form-register) {
    height: 100%;
    max-height: 100%;
    border-radius: 18px;
  }

  :is(#myModal, #modalLogin) .page-1:has(#form-register):not([style*="display: none"]),
  :is(#myModal, #modalLogin) .page-2:has(#form-register):not([style*="display: none"]) {
    display: flex !important;
    min-height: 0;
    flex: 1;
    flex-direction: column;
  }

  :is(#myModal, #modalLogin) .modal-content:has(#form-register) .modal-header {
    position: sticky;
    top: 0;
    z-index: 10;
    min-height: 70px;
    padding: 15px 18px !important;
    flex: 0 0 auto;
  }

  #myModal .page-1:has(#form-register) .modal-header::after,
  #modalLogin .page-2:has(#form-register) .modal-header::after {
    bottom: 8px;
    left: 18px;
    max-width: calc(100% - 70px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  :is(#myModal, #modalLogin) .modal-body:has(#form-register) {
    min-height: 0;
    padding: .7rem;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  :is(#myModal, #modalLogin) #form-register .modal-register-box {
    padding: .8rem;
    border-radius: 14px;
    box-shadow: 0 7px 20px rgba(54, 31, 40, .045);
  }

  :is(#myModal, #modalLogin) #form-register .modal-register-title {
    font-size: .88rem;
  }

  :is(#myModal, #modalLogin) #form-register .box-new_client {
    margin-top: .55rem;
    gap: .3rem;
  }

  :is(#myModal, #modalLogin) #form-register .box-new_client label {
    min-height: 32px;
    padding: .35rem .6rem .35rem 1.75rem;
    font-size: .7rem;
  }

  /* Los campos desactivados no deben dejar columnas vacías en el registro. */
  :is(#myModal, #modalLogin) #form-register [class*="col-"]:has(> #div-email[style*="display:none"]),
  :is(#myModal, #modalLogin) #form-register [class*="col-"]:has(> #div-password[style*="display:none"]),
  :is(#myModal, #modalLogin) #form-register [class*="col-"]:has(> #div-password-confir[style*="display:none"]) {
    display: none;
  }

  :is(#myModal, #modalLogin) #form-register .floating-labels .col-12,
  :is(#myModal, #modalLogin) #form-register .floating-labels [class*="col-lg-"] {
    padding-top: .7rem !important;
  }

  :is(#myModal, #modalLogin) #form-register .form-control {
    height: 48px;
    padding: 18px 40px 5px 12px;
    border-radius: 10px !important;
    font-size: .82rem;
  }

  :is(#myModal, #modalLogin) #form-register .floating-labels label.modal-form-register-camp {
    top: 6px;
    left: 12px;
    font-size: .6rem;
  }

  :is(#myModal, #modalLogin) #form-register #consultaCliente {
    min-width: 80px;
    height: 48px;
    padding-right: .55rem;
    padding-left: .55rem;
    font-size: .7rem !important;
  }

  :is(#myModal, #modalLogin) #form-register .btn-register {
    position: sticky;
    bottom: -.15rem;
    z-index: 5;
    min-height: 48px;
    margin-top: .75rem;
    box-shadow:
      0 -8px 18px var(--brand-surface),
      0 10px 24px color-mix(in srgb, var(--brand-primary) 24%, transparent);
  }

  /* Confirmación de pedido como hoja móvil, sin acciones fuera de pantalla. */
  #modal-editar-pedido {
    padding: .4rem !important;
  }

  #modal-editar-pedido .modal-dialog {
    width: 100%;
    max-width: none;
    height: calc(100dvh - .8rem);
    max-height: calc(100dvh - .8rem);
    margin: 0;
  }

  #modal-editar-pedido .modal-content {
    height: 100%;
    max-height: 100%;
    overflow: hidden;
    border: 1px solid rgba(45, 32, 37, .1);
    border-radius: 18px;
    background: var(--brand-background);
    box-shadow: 0 28px 80px rgba(37, 23, 30, .28);
    animation: none;
  }

  #modal-editar-pedido #form-confir-pedido {
    display: flex;
    height: 100%;
    min-height: 0;
    flex-direction: column;
  }

  #modal-editar-pedido .modal-header {
    position: relative;
    z-index: 5;
    display: flex;
    min-height: 70px;
    padding: .9rem 1rem !important;
    align-items: center !important;
    flex: 0 0 auto;
    border: 0;
    border-bottom: 1px solid var(--brand-line);
    background: var(--brand-surface);
  }

  #modal-editar-pedido .modal-header::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--brand-primary), var(--brand-accent));
    content: "";
  }

  #modal-editar-pedido .modal-title {
    color: var(--brand-ink) !important;
    font-size: 1.05rem !important;
    font-weight: 900 !important;
  }

  #modal-editar-pedido .modal-title-precio {
    margin-left: auto;
    padding: .42rem .65rem;
    border-radius: 999px;
    background: var(--brand-primary-soft);
    color: var(--brand-primary) !important;
    font-size: .8rem !important;
    font-weight: 900 !important;
    white-space: nowrap;
  }

  #modal-editar-pedido .modal-body {
    min-height: 0;
    padding: .75rem;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    background:
      radial-gradient(circle at 100% 0, var(--brand-accent-soft), transparent 17rem),
      var(--brand-background);
    -webkit-overflow-scrolling: touch;
  }

  #modal-editar-pedido .display_box-tipo-pago {
    margin: 0;
    padding-top: 0 !important;
  }

  #modal-editar-pedido .display_box-tipo-pago > [class*="col-"] {
    padding-right: 0;
    padding-left: 0;
  }

  #modal-editar-pedido .form-group {
    position: relative;
    margin-bottom: .75rem !important;
  }

  #modal-editar-pedido .form-control,
  #modal-editar-pedido .bootstrap-select > .dropdown-toggle {
    width: 100%;
    height: 49px;
    min-height: 49px;
    padding: 18px 38px 5px 12px !important;
    border: 1px solid var(--brand-line) !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: var(--brand-ink);
    box-shadow: none !important;
    font-size: .82rem;
  }

  #modal-editar-pedido .form-control:focus,
  #modal-editar-pedido .bootstrap-select > .dropdown-toggle:focus {
    border-color: var(--brand-primary) !important;
    box-shadow: 0 0 0 4px var(--brand-primary-soft) !important;
    outline: 0 !important;
  }

  #modal-editar-pedido .floating-labels label {
    top: 6px;
    left: 12px;
    margin: 0;
    color: var(--brand-muted);
    font-size: .61rem;
    font-weight: 750;
    transform: none;
    pointer-events: none;
  }

  #modal-editar-pedido .floating-labels .bar {
    display: none;
  }

  #modal-editar-pedido .box-dato-entrega-pedido {
    margin-top: .25rem;
    padding: .8rem;
    border: 1px solid var(--brand-line);
    border-radius: 14px;
    background: var(--brand-surface);
    box-shadow: 0 7px 20px rgba(54, 31, 40, .045);
  }

  #modal-editar-pedido .box-dato-entrega-pedido .modal-register-title {
    display: block;
    margin-bottom: .15rem;
    color: var(--brand-ink) !important;
    font-size: .86rem;
    font-weight: 900;
  }

  #modal-editar-pedido .box-dato-entrega-pedido .modal-register-title::before {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: .45rem;
    border-radius: 50%;
    background: var(--brand-accent);
    content: "";
  }

  #modal-editar-pedido .box-dato-entrega-pedido .row {
    margin: 0;
    padding-top: .2rem !important;
  }

  #modal-editar-pedido .box-dato-entrega-pedido [class*="col-"] {
    padding: .55rem 0 0;
  }

  #modal-editar-pedido .box-tipo_pago {
    margin-top: 0 !important;
  }

  #modal-editar-pedido .box-tipo_pago_img_qr {
    width: min(170px, 55vw) !important;
    height: min(170px, 55vw) !important;
  }

  #modal-editar-pedido .modal-footer {
    position: relative;
    z-index: 6;
    display: grid;
    padding: .7rem;
    padding-bottom: max(.7rem, env(safe-area-inset-bottom));
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: .55rem;
    flex: 0 0 auto;
    border-top: 1px solid var(--brand-line);
    background: var(--brand-surface);
    box-shadow: 0 -10px 28px rgba(54, 31, 40, .08);
  }

  #modal-editar-pedido .modal-footer .btn {
    width: 100%;
    min-height: 48px;
    margin: 0;
    border-radius: 11px;
    font-size: .8rem;
    font-weight: 850;
  }

  #modal-editar-pedido .modal-footer .btn-secondary {
    border: 1px solid var(--brand-line);
    background: #fff;
    color: var(--brand-muted);
  }

  #modal-editar-pedido .modal-footer .btn-conf-perdido {
    border: 0;
    background: var(--brand-primary);
    color: #fff;
    box-shadow: 0 8px 20px color-mix(in srgb, var(--brand-primary) 22%, transparent);
  }
}

@media (prefers-reduced-motion: reduce) {
  body .swal2-popup.swal2-icon-success.swal2-show,
  body .swal2-icon.swal2-success {
    animation: none !important;
  }

  body .tracking-steps li.is-current .tracking-step__dot {
    animation: none !important;
  }
}

/* Invitación global para instalar la aplicación. */
.pwa-install-card {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 10030;
  display: grid;
  width: min(430px, calc(100vw - 2rem));
  padding: .9rem 2.75rem .9rem .9rem;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  align-items: center;
  gap: .8rem;
  border: 1px solid color-mix(in srgb, var(--brand-primary) 20%, var(--brand-line));
  border-radius: 16px;
  background: color-mix(in srgb, var(--brand-surface) 97%, transparent);
  box-shadow: 0 18px 48px rgba(43, 33, 24, .22);
  opacity: 0;
  transform: translateY(20px) scale(.98);
  transition: opacity .25s ease, transform .25s ease;
  backdrop-filter: blur(14px);
}

.pwa-install-card--visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.pwa-install-card__icon {
  display: grid;
  width: 46px;
  height: 46px;
  border-radius: 13px;
  background: var(--brand-primary-soft);
  color: var(--brand-primary);
  place-items: center;
}

.pwa-install-card__icon svg,
.pwa-install-card__close svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.pwa-install-card__content {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: .18rem;
}

.pwa-install-card__content strong {
  color: var(--brand-ink);
  font-size: .88rem;
  line-height: 1.25;
}

.pwa-install-card__content span {
  color: var(--brand-muted);
  font-size: .76rem;
  line-height: 1.35;
}

.pwa-install-card__action {
  min-height: 38px;
  padding: .55rem .85rem;
  border: 0;
  border-radius: 10px;
  background: var(--brand-primary);
  color: #fff;
  cursor: pointer;
  font-size: .78rem;
  font-weight: 800;
}

.pwa-install-card__close {
  position: absolute;
  top: .45rem;
  right: .45rem;
  display: grid;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--brand-muted);
  cursor: pointer;
  place-items: center;
}

.pwa-install-card__close:hover {
  background: var(--brand-primary-soft);
  color: var(--brand-ink);
}

@media (max-width: 575.98px) {
  .pwa-install-card {
    right: .75rem;
    bottom: max(.75rem, env(safe-area-inset-bottom));
    left: .75rem;
    width: auto;
    padding: .8rem 2.4rem .8rem .8rem;
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .pwa-install-card__icon {
    width: 42px;
    height: 42px;
  }

  .pwa-install-card__action {
    grid-column: 1 / -1;
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pwa-install-card {
    transition: none;
  }
}

/* Superficie global con textura ligera */
main,
.libro-page,
.form__contact__section,
.history__section,
.section__search,
.section__categories,
.products__section,
.product__cards__section {
  background-color: var(--brand-background);
  background-image:
    radial-gradient(circle at 12% 8%, rgba(255,255,255,.82), transparent 25rem),
    radial-gradient(circle at 88% 32%, color-mix(in srgb, var(--brand-accent) 5%, transparent), transparent 28rem),
    repeating-linear-gradient(0deg, rgba(81,63,34,.014) 0, rgba(81,63,34,.014) 1px, transparent 1px, transparent 4px);
}

/* Header compartido */
.navbar__content {
  position: fixed !important;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1035;
  width: 100%;
  border-bottom: 1px solid color-mix(in srgb, var(--brand-accent) 16%, var(--brand-line)) !important;
  background-color: color-mix(in srgb, var(--brand-surface) 96%, transparent) !important;
  background-image:
    linear-gradient(90deg, color-mix(in srgb, var(--brand-accent) 2.5%, transparent) 50%, transparent 50%),
    linear-gradient(color-mix(in srgb, var(--brand-primary) 1.8%, transparent) 50%, transparent 50%) !important;
  background-size: 4px 4px !important;
  box-shadow: 0 5px 22px rgba(63, 35, 47, .08) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transform: none !important;
}

.navbar__content .navbar {
  background: transparent !important;
}

/* Al sacar el header del flujo, reservamos exactamente su espacio en cada vista. */
html body:has(.navbar__content) {
  padding-top: 77px !important;
}

.navbar__content .nav-link {
  position: relative;
  color: var(--brand-ink) !important;
  font-family: var(--font-body);
  font-weight: 900;
}

.navbar__content .nav-link.active {
  border: 0 !important;
  background: transparent !important;
  color: var(--brand-ink) !important;
}

.navbar__content .navbar-nav .nav-link:hover::after,
.navbar__content .navbar-nav .nav-link.active::after {
  position: absolute;
  right: .75rem;
  bottom: .2rem;
  left: .75rem;
  height: 3px;
  border-radius: 999px;
  background: var(--brand-accent) !important;
  content: "";
}

.navbar__content .button__fill {
  border-color: var(--brand-primary);
  background: var(--brand-primary);
  color: #fff;
  box-shadow: 0 8px 20px color-mix(in srgb, var(--brand-primary) 20%, transparent);
}

/* Footer compartido: nunca vuelve a tomar el antiguo rosado */
.footer__section {
  background-color: var(--brand-footer) !important;
  background-image:
    radial-gradient(circle at 15% 20%, color-mix(in srgb, var(--brand-accent) 11%, transparent), transparent 22rem),
    radial-gradient(circle at 88% 75%, color-mix(in srgb, var(--brand-primary) 18%, transparent), transparent 25rem),
    repeating-linear-gradient(135deg, rgba(255,255,255,.018) 0, rgba(255,255,255,.018) 1px, transparent 1px, transparent 5px) !important;
  color: #fff;
}

.sub__footer {
  background: color-mix(in srgb, var(--brand-footer) 88%, #000) !important;
}

.footer__content__about__social__link {
  width: 38px;
  height: 38px;
  padding: 0 !important;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 50% !important;
  background: rgba(255,255,255,.05);
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}

.footer__content__about__social__link:hover {
  border-color: color-mix(in srgb, var(--brand-accent) 55%, #fff);
  background: color-mix(in srgb, var(--brand-accent) 22%, transparent);
  transform: translateY(-2px);
}

.footer__content__location__item span,
.footer__content__contact__item span {
  display: inline-flex;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255,255,255,.06);
}

.footer__content__location__item svg,
.footer__content__contact__item svg {
  width: 18px;
  height: 18px;
}

/* Drawer del carrito */
.modal-drawer-cart,
.modal-drawer-header-cart,
.modal-drawer-content-cart,
.modal-drawer-footer-cart {
  background-color: #fff;
}

.modal-drawer-footer-cart-link-continue,
.modal-drawer-footer-cart-link-continue:visited {
  background: var(--brand-primary) !important;
  color: #fff !important;
}

.modal-drawer-footer-cart-link-continue:hover {
  background: var(--brand-primary-hover) !important;
}

.modal-drawer-cart.is-empty .modal-drawer-content-cart {
  display: grid;
  padding: 1.25rem;
  place-items: center;
  background: var(--brand-surface);
}

.modal-drawer-cart.is-empty .cart-items-container {
  width: 100%;
}

.modal-drawer-cart.is-empty .modal-drawer-footer-cart {
  display: none;
}

.modal-drawer-cart .empty-cart-message {
  display: flex;
  width: min(100%, 340px);
  margin: auto;
  padding: 1.25rem;
  align-items: center;
  flex-direction: column;
  color: var(--brand-ink);
  text-align: center;
}

.empty-cart-basket {
  position: relative;
  width: 112px;
  height: 104px;
  margin-bottom: .65rem;
}

.empty-cart-basket::before {
  position: absolute;
  inset: 10px 2px 0;
  border-radius: 50%;
  background: color-mix(in srgb, var(--brand-primary) 5%, #fff);
  content: "";
  transform: scale(.92);
}

.empty-cart-basket svg {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.empty-cart-basket__handle,
.empty-cart-basket__body,
.empty-cart-basket__line {
  stroke-linecap: round;
  stroke-linejoin: round;
}

.empty-cart-basket__handle {
  stroke: var(--brand-primary);
  stroke-width: 4;
}

.empty-cart-basket__body {
  fill: #fff;
  stroke: var(--brand-primary);
  stroke-width: 3.5;
}

.empty-cart-basket__line {
  stroke: color-mix(in srgb, var(--brand-primary) 38%, #fff);
  stroke-width: 2.25;
}

.modal-drawer-cart .empty-cart-message-text {
  display: flex;
  margin: 0;
  flex-direction: column;
  gap: .45rem;
}

.modal-drawer-cart .empty-cart-message-text strong {
  color: var(--brand-ink);
  font-size: 1.05rem;
  font-weight: 850;
  letter-spacing: -.02em;
}

.modal-drawer-cart .empty-cart-message-text p {
  max-width: 290px;
  margin: 0;
  color: var(--brand-muted);
  font-size: .78rem;
  line-height: 1.55;
}

.empty-cart-action {
  display: inline-flex;
  min-height: 42px;
  margin-top: 1rem;
  padding: .55rem .85rem;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  border-radius: 11px;
  border: 1px solid var(--brand-primary-border);
  background: transparent;
  box-shadow: none;
  color: var(--brand-primary);
  font-size: .76rem;
  font-weight: 800;
}

.empty-cart-action:hover {
  background: var(--brand-primary-soft);
  color: var(--brand-primary);
  text-decoration: none;
  transform: translateY(-1px);
}

.empty-cart-action svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.navbar__mobile-actions {
  display: flex;
  margin-left: auto;
  align-items: center;
  gap: .35rem;
}

.mobile-cart-trigger {
  position: relative;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border: 1px solid var(--brand-line);
  border-radius: 50%;
  background: var(--brand-surface);
  color: var(--brand-ink);
}

.navbar > .mobile-cart-trigger {
  margin-left: auto;
  margin-right: .35rem;
}

.mobile-cart-trigger > span:first-child,
.mobile-cart-trigger svg {
  display: block;
  width: 22px;
  height: 22px;
}

/* Controles y acciones */
.button__fill,
.btn-send,
.product__card__button,
.card__product__button,
.card__product__blog__2__btn {
  background-color: var(--brand-primary);
  color: #fff;
}

.button__fill:hover,
.btn-send:hover,
.product__card__button:hover,
.card__product__button:hover,
.card__product__blog__2__btn:hover {
  background-color: var(--brand-primary-hover);
}

@media (max-width: 767.98px) {
  html body:has(.navbar__content) {
    padding-top: 65px !important;
  }

  .navbar__content .navbar {
    min-height: 64px;
    padding: .5rem .85rem;
    flex-wrap: nowrap;
  }

  .navbar__content .navbar-brand {
    max-width: calc(100% - 112px);
    margin-right: .5rem;
  }

  .navbar__content .navbar-brand img,
  .navbar__content #logo-principal {
    width: auto;
    max-width: 132px;
    height: 42px !important;
    object-fit: contain;
  }

  .navbar__mobile-actions .navbar-toggler {
    width: 44px;
    height: 44px;
    padding: .45rem;
    border: 1px solid var(--brand-line);
    border-radius: 50%;
  }

  .max__width__section {
    width: 100%;
    max-width: 100%;
    padding-right: 1rem;
    padding-left: 1rem;
    box-sizing: border-box;
  }

  .form__contact__section__content,
  .contact__card,
  .contact__rigth,
  .form__group,
  .form__input,
  .products__cards,
  .product__card,
  .history__content,
  .history__text {
    min-width: 0;
    max-width: 100%;
  }

  .title__text {
    overflow-wrap: anywhere;
    line-height: 1.15;
  }

  .footer__content {
    grid-template-columns: 1fr !important;
    gap: 1.5rem;
    padding: 2.25rem 1.25rem;
  }

  .footer__content > * {
    grid-column: auto !important;
    min-width: 0;
  }

  .footer__content__about p {
    max-width: 34rem;
    text-align: left;
  }

  .footer__content__location__item,
  .footer__content__contact__item {
    align-items: flex-start;
  }

  .sub__footer__content {
    flex-wrap: wrap;
    gap: .35rem;
    padding: 0 1rem;
  }

  .modal-dialog {
    max-width: calc(100% - 1rem);
    margin: .5rem auto;
  }
}

@media (max-width: 359.98px) {
  .navbar__content .navbar-brand img,
  .navbar__content #logo-principal {
    max-width: 104px;
  }

  .navbar__mobile-actions {
    gap: .2rem;
  }

  .mobile-cart-trigger,
  .navbar__mobile-actions .navbar-toggler {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
  }
}

/* Carrito global: contador y respuesta visual compartidos por todas las vistas. */
body .navbar__content #modalDrawerCartTrigger,
body .navbar__content .icon__button--cart,
body .navbar__content .mobile-cart-trigger {
  position: relative;
  overflow: visible;
  transform: none;
}

body .navbar__content #modalDrawerCartTrigger:hover,
body .navbar__content .icon__button--cart:hover,
body .navbar__content .mobile-cart-trigger:hover {
  transform: none;
}

body .navbar__content .icon__button--cart-count {
  position: absolute;
  top: -8px;
  right: -8px;
  z-index: 3;
  display: inline-flex;
  width: auto;
  min-width: 24px;
  height: 24px;
  padding: 0 5px;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--brand-surface);
  border-radius: 999px;
  background: var(--brand-primary);
  box-shadow: 0 3px 9px rgba(33, 56, 139, .3);
  color: #fff;
  font-size: 11px;
  font-weight: 900;
  line-height: 20px;
  white-space: nowrap;
}

body .navbar__content .mobile-cart-trigger .icon__button--cart-count {
  top: -6px;
  right: -5px;
}

body .navbar__content :is(#modalDrawerCartTrigger, .icon__button--cart, .mobile-cart-trigger).cart-item-added {
  background: var(--brand-primary-soft);
}

body .navbar__content :is(#modalDrawerCartTrigger, .icon__button--cart, .mobile-cart-trigger).cart-item-added::after {
  position: absolute;
  inset: -5px;
  border: 2px solid var(--brand-primary);
  border-radius: 50%;
  content: "";
  pointer-events: none;
  animation: globalCartRing .85s ease-out;
}

body .navbar__content :is(#modalDrawerCartTrigger, .icon__button--cart, .mobile-cart-trigger).cart-item-added .icon__button--cart-count {
  animation: globalCartCounterAttention .85s cubic-bezier(.2, .9, .25, 1.3);
}

@keyframes globalCartCounterAttention {
  35% { background: #287a45; transform: translate(2px, -2px) scale(1.5); }
  70% { transform: scale(.94); }
}

@keyframes globalCartRing {
  from { opacity: .65; transform: scale(.7); }
  to { opacity: 0; transform: scale(1.55); }
}

@media (prefers-reduced-motion: reduce) {
  body .navbar__content :is(#modalDrawerCartTrigger, .icon__button--cart, .mobile-cart-trigger).cart-item-added,
  body .navbar__content :is(#modalDrawerCartTrigger, .icon__button--cart, .mobile-cart-trigger).cart-item-added::after,
  body .navbar__content :is(#modalDrawerCartTrigger, .icon__button--cart, .mobile-cart-trigger).cart-item-added .icon__button--cart-count {
    animation: none;
  }

}

/* Ajuste final del componente de cuenta; prevalece sobre estilos heredados. */
:is(#myModal, #modalLogin).auth-modal--register .modal-content:has(#form-register) .modal-header {
  min-height: 78px;
  padding: 18px 22px !important;
  border-bottom: 1px solid var(--brand-line);
  background: var(--brand-surface) !important;
  color: var(--brand-ink);
}

:is(#myModal, #modalLogin).auth-modal--register .modal-content:has(#form-register) .modal-header span {
  color: var(--brand-ink) !important;
}

:is(#myModal, #modalLogin).auth-modal--register .modal-content:has(#form-register) .modal-header .close {
  background: #f3f0eb;
  color: var(--brand-muted);
}

:is(#myModal, #modalLogin).auth-modal--register .modal-content:has(#form-register) .modal-header .close span {
  color: var(--brand-muted) !important;
}

:is(#myModal, #modalLogin).auth-modal--register .modal-body:has(#form-register) {
  background: #f8f4ed;
}

:is(#myModal, #modalLogin).auth-modal--register #form-register .modal-register-box {
  border-color: color-mix(in srgb, var(--brand-ink) 11%, transparent);
  border-radius: 14px;
  background: #fff;
  box-shadow: none;
}

#modalLogin.auth-modal--login .page-1 .modal-header {
  min-height: 78px;
  padding: 18px 22px !important;
  border-bottom: 1px solid var(--brand-line);
  background: var(--brand-surface) !important;
}

#modalLogin.auth-modal--login .page-1 .modal-header span {
  color: var(--brand-ink) !important;
}

#modalLogin.auth-modal--login .page-1 .modal-body {
  background: var(--brand-surface);
}

/* Encabezado único para el paso de registro en cualquier pestaña. */
:is(#myModal, #modalLogin) .auth-register-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

:is(#myModal, #modalLogin) .auth-back-button {
  display: inline-grid;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  padding: 0;
  place-items: center;
  border: 1px solid var(--brand-line);
  border-radius: 50%;
  background: #fff;
  color: var(--brand-ink);
  cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}

:is(#myModal, #modalLogin) .auth-back-button svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

:is(#myModal, #modalLogin) .auth-back-button:hover {
  border-color: color-mix(in srgb, var(--brand-primary) 35%, var(--brand-line));
  background: color-mix(in srgb, var(--brand-primary) 7%, #fff);
  color: var(--brand-primary);
  transform: translateX(-2px);
}

:is(#myModal, #modalLogin) .auth-back-button:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--brand-primary) 22%, transparent);
  outline-offset: 2px;
}

:is(#myModal, #modalLogin) .auth-register-title {
  overflow: hidden;
  color: var(--brand-ink) !important;
  font-size: 1.08rem;
  font-weight: 750;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 575.98px) {
  :is(#myModal, #modalLogin).auth-modal--register .modal-content:has(#form-register) .modal-header {
    min-height: 66px;
    padding: 13px 16px !important;
  }

  :is(#myModal, #modalLogin).auth-modal--register #form-register .modal-register-box {
    padding: .72rem;
  }

  :is(#myModal, #modalLogin) .auth-back-button {
    flex-basis: 34px;
    width: 34px;
    height: 34px;
  }
}
