/* ============================================================
   TEXTIL DEL HOGAR — PAGINAS — home, carrito, checkout, area de cliente, identificacion,
   favoritos, contacto y RGPD. Migrado tal cual desde el CSS monolitico.
   ============================================================ */
/* ============================================================
   HOME v4 — slider full-bleed, confianza neutra, tiles cuadrados,
   banda WhatsApp tinta, marcas y bloque SEO.
   ============================================================ */
.tdh-section{ padding:clamp(34px, 4vw, 56px) 0; }
.tdh-section h2.tdh-title{ font-family:var(--font-display); font-weight:800; font-size:clamp(26px, 2.6vw, 34px); margin:6px 0 0; }

/* ---------- SLIDER PRINCIPAL (ps_imageslider) ----------
   Full-bleed, texto real en HTML dentro de la diapositiva (SEO).
   Las imagenes son composiciones claras (campo neutro + foto a la derecha):
   el caption va en tinta sobre el campo, sin scrim oscuro. */
.tdh-slider{ position:relative; background:var(--bg3); }
/* el módulo flota .homeslider-container: si se deja, las rejillas BFC que
   siguen (trust bar) quedan con ancho 0 junto al flotante */
.tdh-slider .homeslider-container{ position:relative; margin:0; float:none !important; width:100%; }
.tdh-slider .rslides{ position:relative; list-style:none; overflow:hidden; margin:0; padding:0; width:100%; }
.tdh-slider .rslides li.slide{
  -webkit-backface-visibility:hidden; position:absolute; display:none; width:100%; left:0; top:0;
}
.tdh-slider .rslides li.slide:first-child{ position:relative; display:block; float:left; }
.tdh-slider .rslides img{ display:block; width:100%; height:auto; border:0; }
/* altura de escenario: la imagen cubre todo el slider */
.tdh-slider .rslides li.slide{ height:clamp(430px, 72vh, 680px); }
.tdh-slider .rslides li.slide > a{ display:block; height:100%; }
.tdh-slider .rslides img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
/* caption: texto SEO en tinta sobre el campo claro
   (el CSS del módulo pone .caption con fondo oscuro: se neutraliza aquí) */
.tdh-slider .caption,
.homeslider .caption,
.homeslider-container .caption{
  position:absolute; z-index:2; left:var(--gutter); right:var(--gutter);
  bottom:clamp(48px, 10vh, 96px); max-width:620px; color:var(--ink);
  display:block; text-decoration:none;
  background:transparent !important; padding:0; margin:0; text-shadow:none;
}
.tdh-slider .caption .tdh-slide-tag{
  display:inline-block; background:var(--ink); color:#fff;
  font-family:var(--font-display); font-weight:800; font-size:12px;
  letter-spacing:.1em; text-transform:uppercase; padding:7px 12px; margin-bottom:18px;
}
.tdh-slider .caption h1,
.tdh-slider .caption h2{
  color:var(--ink); margin:0 0 16px; font-family:var(--font-display); font-weight:900;
  font-size:clamp(34px, 4.6vw, 62px); line-height:1.06; letter-spacing:-0.02em; text-wrap:balance;
}
.tdh-slider .caption .tdh-slide-desc{ color:var(--fg2); font-size:clamp(15px, 1.5vw, 19px); line-height:1.55; max-width:520px; margin:0 0 26px; display:block; }
.tdh-slider .caption .tdh-slide-desc p{ margin:0; }
.tdh-slider .caption .tdh-slide-cta{
  display:inline-flex; align-items:center; gap:10px; background:var(--ink); color:#fff;
  font-family:var(--font-display); font-weight:800; font-size:13.5px; letter-spacing:.07em;
  text-transform:uppercase; padding:15px 24px; border-radius:var(--r-xs); margin-top:4px;
}
/* flechas que genera responsiveSlides (namespace homeslider).
   El módulo las pinta con un sprite gif y texto oculto: aquí son cajas
   blancas cuadradas con cheurón SVG en tinta. */
.homeslider_nav{
  position:absolute; z-index:3; top:50%; transform:translateY(-50%); margin-top:0;
  width:46px; height:46px; border-radius:var(--r-xs); opacity:1;
  background:rgba(255,255,255,.94) none !important; color:var(--ink);
  font-size:0; text-indent:0; overflow:hidden;
  display:flex; align-items:center; justify-content:center; text-decoration:none;
  transition:background .15s;
}
.homeslider_nav:hover{ background:#fff none !important; background-color:#fff !important; opacity:1; }
.homeslider_nav::before{
  content:""; width:20px; height:20px; background-color:var(--ink);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 18-6-6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 18-6-6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;
}
.homeslider_nav.next::before{ transform:scaleX(-1); }
.homeslider_nav.prev{ left:var(--gutter); }
.homeslider_nav.next{ right:var(--gutter); left:auto; }
@media (max-width: 767px){
  .tdh-slider .rslides li.slide{ height:480px; }
  .tdh-slider .rslides img{ object-position:28% 50%; }
  .homeslider_nav{ display:none; }
  .tdh-slider .caption{ bottom:32px; }
}

/* ---------- FRANJA DE CONFIANZA (neutra, hairlines) ---------- */
.tdh-trustbar{
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
  background:#fff; border-bottom:1px solid var(--line); border-radius:0; box-shadow:none; padding:0;
}
.tdh-trust{ display:flex; align-items:center; gap:13px; color:var(--ink); padding:18px 18px 18px 0; border-right:1px solid var(--line-2); }
.tdh-trust:last-child{ border-right:0; }
.tdh-trust .tdh-ico{ font-size:26px; color:var(--ink); }
.tdh-trust b{ font-family:var(--font-display); font-weight:800; font-size:14.5px; line-height:1.25; display:block; }
.tdh-trust span{ font-size:12.5px; color:var(--fg3); opacity:1; }
@media (max-width: 900px){ .tdh-trustbar{ grid-template-columns:1fr 1fr; } .tdh-trust:nth-child(2n){ border-right:0; } .tdh-trust{ padding:14px 12px 14px 0; } }

/* ---------- MOSAICO DE CATEGORÍAS (cuadrado, etiqueta sobre imagen) ---------- */
.tdh-tiles{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(12px, 1.6vw, 20px); }
.tdh-tile{ position:relative; background:var(--bg3); border-radius:var(--r-xs); overflow:hidden; box-shadow:none; transition:.2s ease; display:block; }
.tdh-tile:hover{ transform:none; box-shadow:var(--sh-sm); }
.tdh-tile-img{ height:auto; aspect-ratio:4 / 3.4; background:var(--bg3); }
.tdh-tile-img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.16,1,.3,1); }
.tdh-tile:hover .tdh-tile-img img{ transform:scale(1.04); }
.tdh-tile::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(22,22,20,.55), rgba(22,22,20,0) 45%); pointer-events:none; }
.tdh-tile-foot{
  position:absolute; z-index:2; left:20px; bottom:16px; right:20px; padding:0;
  display:flex; align-items:center; justify-content:space-between;
}
.tdh-tile-foot span{ font-family:var(--font-display); font-weight:800; font-size:19px; color:#fff; }
.tdh-tile-foot .tdh-ico{ color:#fff; font-size:20px; }

/* ---------- BANDA WHATSAPP (tinta, full-bleed) ---------- */
.tdh-whatsapp-band{ background:var(--ink); color:#EDEBE4; }
.tdh-whatsapp-band .tdh-wrap{
  display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(24px, 4vw, 64px); align-items:center;
  padding-top:clamp(40px, 5vw, 72px); padding-bottom:clamp(40px, 5vw, 72px);
}
.tdh-whatsapp-copy{ padding:0; }
.tdh-whatsapp-copy h2{ font-size:clamp(26px, 2.8vw, 36px); margin:0 0 14px; color:#fff; }
.tdh-whatsapp-copy p{ font-family:var(--font-body); font-size:17px; color:#B9B6AC; max-width:480px; margin:0 0 26px; }
.tdh-whatsapp-actions{ display:flex; gap:16px; flex-wrap:wrap; align-items:center; }
.tdh-whatsapp-actions .btn-coral,
.tdh-whatsapp-actions .btn{ background:#fff; color:var(--ink); border-color:#fff; }
.tdh-whatsapp-actions .btn-coral:hover,
.tdh-whatsapp-actions .btn:hover{ background:var(--bg2); }
.tdh-whatsapp-phone{ display:inline-flex; align-items:center; gap:10px; font-family:var(--font-display); font-weight:900; color:#fff; font-size:22px; }
.tdh-whatsapp-band .tdh-whatsapp-img{ border-radius:var(--r-xs); overflow:hidden; min-height:260px; }
.tdh-whatsapp-band .tdh-whatsapp-img img{ width:100%; height:100%; min-height:260px; object-fit:cover; display:block; }

/* ---------- BLOQUE SEO (home) ---------- */
.tdh-seo{ border-top:1px solid var(--line); }
.tdh-seo .tdh-wrap{ padding-top:clamp(36px, 4vw, 56px); padding-bottom:clamp(36px, 4vw, 56px); }
.tdh-seo h2{ margin:0 0 16px; }
.tdh-seo .tdh-seo-cols{ columns:2; column-gap:clamp(28px, 4vw, 64px); }
.tdh-seo p{ font-family:var(--font-body); font-size:15.5px; line-height:1.65; color:var(--fg2); margin:0 0 14px; break-inside:avoid; }
@media (max-width: 800px){ .tdh-seo .tdh-seo-cols{ columns:1; } }

/* ============================================================
   CARRITO
   ============================================================ */
.cart-grid-body .card,
.cart-grid-right .card,
.cart-summary{ background:#fff; border:0; border-radius:var(--r-lg); box-shadow:var(--sh-card); }
.cart-summary .cart-total .value,
.cart-detailed-totals .cart-total .value{ font-family:var(--font-display); font-weight:800; color:var(--price); }
.cart-item .product-price strong,
.product-line-info .price{ font-family:var(--font-display); font-weight:800; color:var(--price); }
.tdh-freeship{ background:var(--teal-50); color:var(--teal-700); border-radius:var(--r-md); padding:12px 18px; font-family:var(--font-display); font-weight:700; font-size:14px; display:flex; align-items:center; gap:8px; margin-bottom:16px; }
.tdh-freeship.is-free{ background:var(--success-bg); color:var(--success); }
.tdh-freeship .tdh-freeship-bar{ flex:1; height:7px; background:#fff; border-radius:99px; overflow:hidden; }
.tdh-freeship .tdh-freeship-fill{ width:100%; height:100%; background:var(--teal); border-radius:99px; transform:scaleX(0); transform-origin:left; transition:transform .3s; }

/* ============================================================
   CHECKOUT — acordeón de pasos estilo PrestaShop, reestilizado
   ============================================================ */
#checkout #content-hook_order_confirmation,
.checkout-step{ background:#fff; border-radius:var(--r-lg); box-shadow:var(--sh-card); border:1.5px solid var(--line); overflow:hidden; margin-bottom:16px; }
.checkout-step.-current{ border:2px solid var(--teal); }
.checkout-step .step-title{ font-family:var(--font-display); font-weight:800; font-size:18px; color:var(--fg1); padding:18px 22px; margin:0; display:flex; align-items:center; gap:14px; }
.checkout-step .step-number{ width:30px; height:30px; border-radius:99px; display:inline-flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:800; font-size:14px; background:var(--bg3); color:var(--fg3); }
.checkout-step.-current .step-number,
.checkout-step.-complete .step-number{ background:var(--teal); color:#fff; }
.checkout-step .step-edit{ color:var(--teal-700); font-weight:700; font-size:13.5px; }
.checkout-step .content{ padding:0 22px 22px; }
.checkout-step .nav-inline[role="tablist"]{
  display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center; gap:8px; margin:0 0 22px !important; padding:5px;
  border:1px solid var(--line); border-radius:var(--r-pill); background:var(--bg3);
}
.checkout-step .nav-inline[role="tablist"] .nav-item{ margin:0; min-width:0; text-align:center; }
.checkout-step .nav-inline[role="tablist"] .nav-link{
  min-height:42px; padding:10px 14px; display:flex; align-items:center; justify-content:center;
  border:0; border-radius:var(--r-pill); color:var(--fg2);
  font-family:var(--font-display); font-weight:800; font-size:14px;
}
.checkout-step .nav-inline[role="tablist"] .nav-link.active{
  background:#fff; color:var(--teal-700); box-shadow:var(--sh-xs);
}
.checkout-step .nav-inline[role="tablist"] .nav-separator{ color:var(--line); }
.tdh-checkout-account-option{
  margin:20px 0 14px; padding:14px 16px; display:flex; align-items:flex-start; gap:11px;
  border:1px solid var(--teal-100); border-radius:var(--r-md); background:var(--teal-50);
  color:var(--teal-700);
}
.tdh-checkout-account-option .tdh-ico{ flex:0 0 auto; margin-top:1px; }
.tdh-checkout-account-option strong{
  display:block; font-family:var(--font-display); font-size:14px; font-weight:800; color:var(--ink);
}
.tdh-checkout-account-option span{ display:block; margin-top:3px; font-size:13px; line-height:1.45; color:var(--fg2); }
#order-summary-content .card,
.order-confirmation-table,
#cart-summary,
.js-cart{ background:#fff; border-radius:var(--r-lg); box-shadow:var(--sh-card); border:0; }
.condition-label,
#conditions-to-approve label{ font-weight:600; color:var(--fg2); }
/* botón google de checkout (placeholder estilizado) */
.tdh-google-auth{ display:flex; align-items:center; justify-content:center; gap:11px; width:100%; border:1.5px solid var(--line); background:#fff; border-radius:var(--r-md); padding:13px 18px; font-family:var(--font-display); font-weight:800; font-size:15px; color:var(--fg1); box-shadow:var(--sh-xs); cursor:pointer; }
.tdh-google-auth:hover{ background:var(--bg3); }
.tdh-or-divider{ display:flex; align-items:center; gap:12px; margin:18px 0; color:var(--fg3); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.tdh-or-divider::before,.tdh-or-divider::after{ content:""; flex:1; height:1px; background:var(--line); }

/* --- CTA principal de avance en CORAL (fiel al diseño) --- */
/* "Finalizar compra" (carrito), "Continuar" (pasos) y "Realizar el pedido" */
.cart-detailed-actions .btn-primary,
.checkout-step .continue,
#payment-confirmation .btn-primary,
#payment-confirmation button[type="submit"]{
  background:var(--coral)!important; box-shadow:var(--sh-pink); color:#fff;
}
.cart-detailed-actions .btn-primary:hover,
.checkout-step .continue:hover,
#payment-confirmation .btn-primary:hover,
#payment-confirmation button[type="submit"]:hover{ background:var(--pink-600)!important; }
/* El submit "Iniciar sesión" del formulario de login se mantiene en turquesa */
#checkout-login-form .continue{ background:var(--teal)!important; box-shadow:var(--sh-teal); }
#checkout-login-form .continue:hover{ background:var(--teal-600)!important; }

/* --- Cabecera de la página de checkout: breadcrumb + título de marca --- */
.tdh-checkout-head{ padding:6px 0 18px; }
.tdh-checkout-title{ font-family:var(--font-display); font-weight:800; font-size:34px; line-height:1.16; color:var(--ink); margin:0; }
@media (max-width: 991px){
  .tdh-whatsapp-band .tdh-wrap{ grid-template-columns:1fr; }
  .tdh-whatsapp-band .tdh-whatsapp-img{ display:none; }
  .tdh-tiles{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 575px){
  .tdh-tiles{ grid-template-columns:1fr; }
}

/* ============================================================
   IDENTIFICACIÓN — Login / Registro (split de marca)
   Añadido para reproducir el prototipo "Tienda Textil del Hogar"
   ============================================================ */
.tdh-auth-page{ padding:40px 0 72px; }
.tdh-auth-card{
  display:grid; grid-template-columns:1fr 460px; max-width:920px; margin:0 auto;
  background:#fff; border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--sh-card);
}
/* panel de marca */
.tdh-auth-brand{ background:var(--teal-700); color:#fff; padding:48px 44px; display:flex; flex-direction:column; justify-content:center; }
.tdh-auth-kicker{ font-family:var(--font-display); font-weight:800; font-size:12px; letter-spacing:.14em; text-transform:uppercase; opacity:.8; }
.tdh-auth-claim{ font-family:var(--font-display); font-weight:900; font-size:30px; line-height:1.2; margin:14px 0 18px; color:#fff; }
.tdh-auth-lead{ font-family:var(--font-body); font-size:15.5px; line-height:1.6; opacity:.9; margin:0 0 28px; max-width:340px; }
.tdh-auth-perks{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.tdh-auth-perks li{ display:flex; align-items:center; gap:12px; font-family:var(--font-body); font-size:15px; font-weight:600; }
.tdh-auth-perks li .tdh-ico{ font-size:18px; padding:8px; box-sizing:content-box; border-radius:99px; background:rgba(255,255,255,.14); flex-shrink:0; }
.tdh-auth-rating{ display:flex; align-items:center; gap:8px; margin-top:30px; font-family:var(--font-display); font-weight:800; }
.tdh-auth-rating .tdh-stars{ color:var(--star); font-size:16px; letter-spacing:1px; }
/* formulario */
.tdh-auth-form{ padding:40px 40px 36px; display:flex; flex-direction:column; }
.tdh-auth-tabs{ display:flex; background:var(--bg3); border-radius:var(--r-pill); padding:4px; margin-bottom:26px; }
.tdh-auth-tab{ flex:1; text-align:center; border:0; cursor:pointer; border-radius:var(--r-pill); padding:10px 12px; font-family:var(--font-display); font-weight:800; font-size:14.5px; color:var(--fg3); background:transparent; transition:.15s; }
.tdh-auth-tab.is-active{ background:#fff; color:var(--teal-700); box-shadow:var(--sh-xs); }
.tdh-auth-tab:not(.is-active):hover{ color:var(--teal-700); }
/* form interno de PrestaShop reestilizado en vertical */
.tdh-auth-form .login-form,
.tdh-auth-form .register-form{ width:100%; }
.tdh-auth-form .form-fields{ display:flex; flex-direction:column; gap:16px; }
.tdh-auth-form .form-group{ display:flex; flex-direction:column; gap:6px; margin:0; }
.tdh-auth-form .form-group .row{ display:block; margin:0; }
.tdh-auth-form .form-group label,
.tdh-auth-form .form-control-label{ font-family:var(--font-body); font-weight:700; font-size:14px; color:var(--fg1); text-align:left; padding:0; max-width:none; flex:none; }
.tdh-auth-form .form-group .col-md-6,
.tdh-auth-form .form-group [class^="col-"]{ flex:0 0 100%; max-width:100%; padding:0; }
.tdh-auth-form .form-control{ width:100%; padding:12px 14px; font-size:15px; }
.tdh-auth-form .form-control-comment{ font-size:12px; color:var(--fg3); }
.tdh-auth-form .form-footer{ margin-top:20px; }
.tdh-auth-form .form-footer .btn,
.tdh-auth-form [data-link-action="sign-in"],
.tdh-auth-form [data-link-action="save-customer"]{ width:100%; background:var(--coral); color:#fff; box-shadow:var(--sh-pink); border-radius:var(--r-pill); padding:14px 24px; font-family:var(--font-display); font-weight:800; border:0; }
.tdh-auth-form .form-footer .btn:hover{ background:var(--pink-600); }
.tdh-auth-form .forgot-password{ margin-top:4px; }
.tdh-auth-form .forgot-password a{ color:var(--teal-700); font-family:var(--font-display); font-weight:800; font-size:13.5px; }
.tdh-auth-form .custom-checkbox span,
.tdh-auth-form .psgdpr_consent_message,
.tdh-auth-form label{ font-size:13.5px; }
.tdh-auth-switch{ text-align:center; margin-top:auto; padding-top:24px; font-family:var(--font-body); color:var(--fg2); }
.tdh-auth-switch a{ color:var(--teal-700); font-family:var(--font-display); font-weight:800; }
.tdh-auth-form hr{ display:none; }
.tdh-auth-form .no-account{ display:none; }

/* ============================================================
   ÁREA DE CLIENTE — sidebar + contenido (dos columnas)
   ============================================================ */
.tdh-account{ padding-top:8px; }
.tdh-account-grid{ display:grid; grid-template-columns:280px 1fr; gap:28px; align-items:start; max-width:none; margin:0; padding:0 var(--gutter) 40px; }
/* --- sidebar --- */
.tdh-acc-side{ display:flex; flex-direction:column; gap:16px; }
.tdh-acc-profile{ background:#fff; border-radius:var(--r-lg); box-shadow:var(--sh-card); padding:24px 22px; text-align:center; }
.tdh-acc-avatar{ width:72px; height:72px; border-radius:99px; background:var(--teal-50); color:var(--teal-700); margin:0 auto 12px; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:900; font-size:28px; }
.tdh-acc-name{ font-family:var(--font-display); font-weight:800; font-size:18px; color:var(--ink); }
.tdh-acc-sub{ font-size:13px; color:var(--fg3); margin-top:2px; }
.tdh-acc-nav{ background:#fff; border-radius:var(--r-lg); box-shadow:var(--sh-card); padding:8px; display:flex; flex-direction:column; gap:2px; }
.tdh-acc-nav a{ display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:var(--r-md); font-family:var(--font-display); font-weight:800; font-size:15px; color:var(--fg2); position:relative; transition:.15s; }
.tdh-acc-nav a .tdh-ico{ font-size:20px; }
.tdh-acc-nav a:hover{ background:var(--bg3); color:var(--teal-700); }
.tdh-acc-nav a.is-active{ background:var(--teal-50); color:var(--teal-700); }
.tdh-acc-nav a.is-active::before{ content:""; position:absolute; left:0; top:10px; bottom:10px; width:3px; border-radius:99px; background:var(--coral); }
.tdh-acc-nav .tdh-acc-logout{ border-top:1px solid var(--line-2); margin-top:6px; color:var(--fg3); border-radius:0; }
.tdh-acc-help{ background:var(--bg-cream); border-radius:var(--r-lg); padding:18px 20px; display:flex; align-items:center; gap:12px; }
.tdh-acc-help .tdh-ico{ font-size:22px; color:var(--teal-600); flex-shrink:0; }
.tdh-acc-help b{ font-family:var(--font-display); font-weight:800; font-size:14px; display:block; }
.tdh-acc-help span{ font-size:13px; color:var(--fg3); }
/* --- contenido --- */
.tdh-acc-main{ min-width:0; }
.tdh-acc-head{ margin-bottom:20px; }
.tdh-acc-h1{ font-family:var(--font-display); font-weight:800; font-size:34px; margin:0 0 4px; }
.tdh-acc-intro{ font-family:var(--font-body); font-size:18px; color:var(--fg2); margin:0; }
/* tarjetas de acceso (dashboard) */
.tdh-acc-cards{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.tdh-acc-card{ display:flex; align-items:center; gap:16px; background:#fff; border-radius:var(--r-lg); box-shadow:var(--sh-card); padding:20px 22px; transition:.2s ease; }
.tdh-acc-card:hover{ transform:translateY(-4px); box-shadow:var(--sh-lift); }
.tdh-acc-card-ico{ width:48px; height:48px; border-radius:var(--r-md); background:var(--teal-50); color:var(--teal-700); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.tdh-acc-card-ico.tdh-coral{ background:var(--pink-50); color:var(--coral); }
.tdh-acc-card-ico .tdh-ico{ font-size:24px; }
.tdh-acc-card-txt{ flex:1; min-width:0; }
.tdh-acc-card-txt b{ font-family:var(--font-display); font-weight:800; font-size:16px; color:var(--ink); display:block; }
.tdh-acc-card-txt small{ color:var(--fg3); font-size:13px; }
.tdh-acc-card-arrow{ color:var(--teal-600); font-size:20px; flex-shrink:0; }
/* Tarjetas inyectadas por hooks (wishlist, psgdpr) en displayCustomerAccount:
   PrestaShop las renderiza con clases col-* y .link-item, sin .tdh-acc-card.
   Les damos el mismo aspecto que las tarjetas nativas del tema. */
.tdh-acc-cards > a:not(.tdh-acc-card){
  display:flex; align-items:center; background:#fff; border-radius:var(--r-lg);
  box-shadow:var(--sh-card); padding:20px 22px; transition:.2s ease;
  width:auto; max-width:none; float:none; margin:0;
}
.tdh-acc-cards > a:not(.tdh-acc-card):hover{ transform:translateY(-4px); box-shadow:var(--sh-lift); }
.tdh-acc-cards > a:not(.tdh-acc-card) .link-item{
  display:flex; align-items:center; gap:16px; width:100%; padding:0; margin:0; border:0; box-shadow:none;
  font-family:var(--font-display); font-weight:800; font-size:16px; color:var(--ink); text-transform:none;
}
.tdh-acc-cards > a:not(.tdh-acc-card) .link-item .tdh-ico{
  width:48px; height:48px; border-radius:var(--r-md); background:var(--teal-50); color:var(--teal-700);
  display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:24px;
}
.tdh-acc-cards > a:not(.tdh-acc-card) .link-item::after{
  content:''; display:inline-block; width:20px; height:20px; background-color:currentColor; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center/contain no-repeat;
  color:var(--teal-600); margin-left:auto; flex-shrink:0;
}
/* contenido nativo de subpáginas (pedidos, direcciones, datos) sobre tarjeta blanca */
.tdh-acc-main .page-customer-account #content,
.tdh-acc-main #history .orders,
.tdh-acc-main .addresses-footer,
.tdh-acc-main #identity .account-form,
.tdh-acc-main #address .account-form,
.tdh-acc-main #order-detail #content,
.tdh-acc-main #order-slip #content,
.tdh-acc-main #discount #content{ background:#fff; border-radius:var(--r-lg); box-shadow:var(--sh-card); padding:24px 26px; }
.tdh-acc-main table.table{ background:#fff; border-radius:var(--r-lg); overflow:hidden; }
.tdh-acc-main .table thead th{ font-family:var(--font-display); font-weight:800; color:var(--fg2); border-color:var(--line-2); }
.tdh-acc-main .table td{ border-color:var(--line-2); vertical-align:middle; }
.tdh-acc-main .address{ background:#fff; border:0; border-radius:var(--r-lg); box-shadow:var(--sh-card); }
.tdh-acc-main h1,.tdh-acc-main .page-header h1{ font-family:var(--font-display); font-weight:800; font-size:30px; }

@media (max-width: 991px){
  .tdh-auth-card{ grid-template-columns:1fr; }
  .tdh-auth-brand{ padding:32px 28px; }
  .tdh-account-grid{ grid-template-columns:1fr; }
  .tdh-acc-cards{ grid-template-columns:1fr; }
}
.featured-products{ margin-top:20px; }

/* Rejillas de la home (ps_featuredproducts, ps_newproducts, ps_specials,
   ps_bestsellers): fluidas, sin columnas Bootstrap. */
.tdh-home-hooks .featured-products .products{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(245px, 1fr));
  gap:clamp(12px, 1.5vw, 18px); margin:0;
}
.tdh-home-hooks .featured-products .products > *{
  width:auto !important; max-width:none !important; flex:none !important;
  padding:0 !important; margin:0 !important; min-width:0;
}
.tdh-home-hooks .featured-products{ margin-bottom:clamp(28px, 4vw, 48px); }
.tdh-home-hooks .all-product-link{
  font-family:var(--font-display); font-weight:800; font-size:15px; color:var(--ink);
  display:inline-flex; align-items:center; gap:4px; margin-top:16px;
}

/* ============================================================
   FASE 2 — Botón "Continuar con Google" (estático) + divisor
   ============================================================ */
.tdh-google-wrap{ margin-bottom:18px; }
.tdh-google-wrap .tdh-google-auth{ width:100%; }
.tdh-google-auth{ display:flex; align-items:center; justify-content:center; gap:11px; width:100%; border:1.5px solid var(--line); background:#fff; border-radius:var(--r-md); padding:13px 18px; font-family:var(--font-display); font-weight:800; font-size:15px; color:var(--fg1); box-shadow:var(--sh-xs); cursor:pointer; transition:.15s; }
.tdh-google-auth:hover{ background:var(--bg3); border-color:var(--teal-300); }
.tdh-google-icon{ flex-shrink:0; display:block; }
.tdh-or-divider{ display:flex; align-items:center; gap:12px; margin:18px 0 6px; color:var(--fg3); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.tdh-or-divider::before,.tdh-or-divider::after{ content:""; flex:1; height:1px; background:var(--line); }
.tdh-or-divider span{ white-space:nowrap; }
/* En el checkout, el botón va dentro del step-content; afinar margen */
.checkout-step .tdh-google-wrap{ margin-bottom:14px; }

/* ============================================================
   FASE 4 — Carrito: USPs, pago seguro, cupón con icono, line-items
   ============================================================ */

/* "Seguir comprando" como botón ghost con icono */
.tdh-continue{ margin-top:18px; display:inline-flex; align-items:center; gap:6px; }

/* "Pago 100% seguro" bajo el CTA */
.tdh-cart-secure{
  display:flex; align-items:center; justify-content:center; gap:7px;
  margin-top:14px; color:var(--fg3); font-size:12.5px; font-weight:600;
  font-family:var(--font-body);
}
.tdh-cart-secure .tdh-ico{ font-size:14px; color:var(--fg3); }

/* Card crema de USPs bajo el resumen */
.tdh-cart-usps{
  background:var(--bg-cream); border-radius:var(--r-lg); padding:18px 20px;
  margin-top:16px; display:flex; flex-direction:column; gap:12px;
}
.tdh-cart-usp{ display:flex; align-items:center; gap:10px; font-size:13.5px; font-weight:600; color:var(--fg2); font-family:var(--font-body); }
.tdh-cart-usp .tdh-ico{ font-size:18px; color:var(--teal-600); flex-shrink:0; }

/* Cupón: form con icono + input pill + botón Aplicar */
.tdh-voucher{ display:flex; gap:8px; align-items:stretch; flex-wrap:wrap; }
.tdh-voucher-field{
  flex:1 1 180px; min-width:0; display:flex; align-items:center; gap:8px;
  background:var(--bg3); border:1.5px solid var(--line); border-radius:var(--r-md);
  padding:10px 14px;
}
.tdh-voucher-field .tdh-ico{ font-size:18px; color:var(--teal-600); flex-shrink:0; }
.tdh-voucher-field .promo-input{
  border:0; outline:none; background:none; flex:1; min-width:0;
  font-family:var(--font-body); font-size:14px; color:var(--ink); box-shadow:none; padding:0;
}
.tdh-voucher .btn{ flex-shrink:0; }
.cart-detailed .cart-item .qty input,
.cart-grid-body .cart-item .qty input{
  border:0; border-radius:0; text-align:center; font-family:var(--font-display); font-weight:800; min-width:32px; padding:0 4px;
}
/* Botón eliminar (trash) redondo */
.cart-detailed .cart-item .remove-from-cart,
.cart-grid-body .cart-item .remove-from-cart,
.cart-detailed .cart-item .cart-remove{
  background:var(--bg3); border:0; width:34px; height:34px; border-radius:99px;
  display:inline-flex; align-items:center; justify-content:center; color:var(--fg3); transition:.15s;
}
.cart-detailed .cart-item .remove-from-cart:hover,
.cart-grid-body .cart-item .remove-from-cart:hover{ background:var(--pink-50); color:var(--coral); }
.cart-detailed .cart-item .remove-from-cart .tdh-ico,
.cart-grid-body .cart-item .remove-from-cart .tdh-ico{ font-size:16px; }

/* Imagen del line-item redondeada */
.cart-detailed .cart-item .product-image img,
.cart-grid-body .cart-item .product-image img{ border-radius:var(--r-md); object-fit:cover; }

/* ============================================================
   FASE 5 — Área de cuenta: pills estado, cupones ticket, favoritos, direcciones
   ============================================================ */

/* --- Historial de pedidos: pills de estado --- */
.tdh-acc-main #history .label.label-pill,
.tdh-acc-main .orders .label.label-pill{
  display:inline-flex; align-items:center; gap:6px;
  border-radius:var(--r-pill); font-family:var(--font-display); font-weight:800;
  font-size:12.5px; padding:5px 12px; color:#fff !important; border:0;
}
.tdh-acc-main #history .label.label-pill::before,
.tdh-acc-main .orders .label.label-pill::before{
  content:""; display:inline-block; width:6px; height:6px; border-radius:99px; background:#fff; opacity:.9;
}
/* Tabla de pedidos: cabecera y filas afinadas */
.tdh-acc-main #history .table thead th{ font-family:var(--font-display); font-weight:800; color:var(--fg2); border-color:var(--line-2); text-transform:none; letter-spacing:0; }
.tdh-acc-main #history .table td{ border-color:var(--line-2); vertical-align:middle; }
.tdh-acc-main #history .order-actions a{ color:var(--teal-700); font-family:var(--font-display); font-weight:700; font-size:13px; margin-right:10px; }
.tdh-acc-main #history .order-actions a:hover{ color:var(--teal-800); }
/* Vista móvil de pedidos (.orders) en tarjetas */
.tdh-acc-main .orders .order{ background:#fff; border-radius:var(--r-lg); box-shadow:var(--sh-card); padding:16px 18px; margin-bottom:14px; }
.tdh-acc-main .orders .order h3{ font-family:var(--font-display); font-weight:800; font-size:17px; margin:0; }
.tdh-acc-main .orders .order .total{ font-family:var(--font-display); font-weight:800; color:var(--price); }

/* --- Vales descuento: estilo "ticket" --- */
.tdh-acc-main #discount .table,
.tdh-acc-main #discount .cart-rules{ }
.tdh-acc-main #discount .table thead th{ font-family:var(--font-display); font-weight:800; color:var(--fg2); border-color:var(--line-2); }
.tdh-acc-main #discount .table td{ border-color:var(--line-2); }
.tdh-acc-main #discount .cart-rule{
  background:#fff; border-radius:var(--r-lg); box-shadow:var(--sh-card); overflow:hidden;
  display:flex; align-items:stretch; margin-bottom:14px;
}
.tdh-acc-main #discount .cart-rule::before{
  content:""; width:72px; flex-shrink:0;
  background:var(--teal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 7v14'/%3E%3Cpath d='M20 11v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8'/%3E%3Cpath d='M7.5 7a1 1 0 0 1 0-5A4.8 8 0 0 1 12 7a4.8 8 0 0 1 4.5-5 1 1 0 0 1 0 5'/%3E%3Crect x='3' y='7' width='18' height='4' rx='1'/%3E%3C/svg%3E") center/28px 28px no-repeat;
}
.tdh-acc-main #discount .cart-rule ul{ list-style:none; margin:0; padding:18px 22px; flex:1; display:grid; grid-template-columns:repeat(2,1fr); gap:6px 18px; }
.tdh-acc-main #discount .cart-rule li{ font-size:13.5px; color:var(--fg2); }
.tdh-acc-main #discount .cart-rule li strong{ display:block; font-family:var(--font-display); font-weight:800; font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--fg3); margin-bottom:2px; }
.tdh-acc-main #discount .cart-rule li:first-child{ grid-column:1 / -1; }
.tdh-acc-main #discount .cart-rule li:first-child strong{ font-size:13px; color:var(--fg3); }
.tdh-acc-main #discount .cart-rule li:first-child{ font-family:var(--font-display); font-weight:800; font-size:20px; letter-spacing:.04em; color:var(--teal-700); }
#wishlist .wishlist-product,
#module-blockwishlist-view .wishlist-product{ background:#fff; border-radius:var(--r-lg); box-shadow:var(--sh-card); overflow:hidden; transition:.2s; }
#wishlist .wishlist-product:hover,
#module-blockwishlist-view .wishlist-product:hover{ transform:translateY(-4px); box-shadow:var(--sh-lift); }
#wishlist .wishlist-product img,
#module-blockwishlist-view .wishlist-product img{ width:100%; height:210px; object-fit:cover; }
#wishlist .wishlist-product .product-description,
#module-blockwishlist-view .wishlist-product .product-description{ padding:14px 16px 18px; }
/* Botón quitar de favoritos */
#wishlist .wishlist-product-remove,
#module-blockwishlist-view .wishlist-product-remove,
.tdh-wishlist-remove{
  background:#fff; border:0; width:36px; height:36px; border-radius:99px; box-shadow:var(--sh-sm);
  color:var(--coral); display:flex; align-items:center; justify-content:center; cursor:pointer;
}
#wishlist .wishlist-product-remove:hover,
#module-blockwishlist-view .wishlist-product-remove:hover{ background:var(--pink-50); }

/* --- Direcciones: tarjetas con badge "Principal" + caja dashed "Añadir" --- */
.tdh-acc-main #address .account-form,
.tdh-acc-main #addresses .account-form{ background:#fff; border-radius:var(--r-lg); box-shadow:var(--sh-card); padding:24px 26px; }
.tdh-acc-main .addresses{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.tdh-acc-main .address{
  background:#fff; border:2px solid transparent; border-radius:var(--r-lg); box-shadow:var(--sh-card);
  padding:22px 24px; position:relative; transition:.2s;
}
.tdh-acc-main .address.is-default{ border-color:var(--teal); }
.tdh-acc-main .address .address-alias{ font-family:var(--font-display); font-weight:800; font-size:17px; color:var(--ink); display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.tdh-acc-main .address .address-alias .tdh-ico{ color:var(--teal-700); }
.tdh-acc-main .address .badge-default{
  margin-left:auto; background:var(--teal-50); color:var(--teal-700); border-radius:var(--r-pill);
  padding:4px 11px; font-family:var(--font-display); font-weight:800; font-size:11.5px;
}
.tdh-acc-main .address address{ font-style:normal; font-family:var(--font-body); font-size:14px; color:var(--fg2); line-height:1.8; }
.tdh-acc-main .address .address-footer{ display:flex; gap:10px; margin-top:18px; }
.tdh-acc-main .addresses-footer a,
.tdh-acc-main .address .address-footer a{ font-family:var(--font-display); font-weight:700; font-size:13px; color:var(--teal-700); }
.tdh-acc-main .addresses-footer a:hover,
.tdh-acc-main .address .address-footer a:hover{ color:var(--teal-800); }
/* Botón "Añadir nueva dirección" estilo caja dashed */
.tdh-acc-main .addresses-footer a[href*="address"],
.tdh-acc-main #addresses .add-address{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  background:var(--bg3); border:2px dashed var(--line); border-radius:var(--r-lg);
  min-height:200px; color:var(--teal-700); font-family:var(--font-display); font-weight:800; font-size:15px;
  text-decoration:none; transition:.15s;
}
.tdh-acc-main .addresses-footer a[href*="address"]:hover,
.tdh-acc-main #addresses .add-address:hover{ border-color:var(--teal); background:var(--teal-50); }
.tdh-acc-main .addresses-footer a[href*="address"] .tdh-ico,
.tdh-acc-main #addresses .add-address .tdh-ico{ font-size:32px; }

/* --- Ajuste grid de direcciones en móvil --- */
@media (max-width:991px){
  .tdh-acc-main .addresses{ grid-template-columns:1fr; }
}

/* ============================================================
   FIX FIDELIDAD v7 — Login/registro + Ficha de producto
   ============================================================ */

/* ---------- AUTH (login / registro) ---------- */
.page-customer-account #content{ max-width:none !important; }
.tdh-auth-kicker, .tdh-auth-lead{ color:#fff !important; }
.tdh-auth-perks li{ color:#fff !important; }
.tdh-auth-form .input-group{ display:flex; align-items:stretch; }
.tdh-auth-form .input-group .btn,
.tdh-auth-form button[data-action="show-password"]{
  background:var(--teal-50); color:var(--teal-700); border:1.5px solid var(--teal-200);
  border-radius:var(--r-md); font-family:var(--font-display); font-weight:800; font-size:12px;
  box-shadow:none; margin-left:8px; padding:0 14px;
}
.tdh-auth-form .input-group .btn:hover{ background:var(--teal-100); }
.tdh-auth-form input[type=email], .tdh-auth-form input[type=text], .tdh-auth-form input[type=password]{ flex:1; }

/* ---------- FICHA DE PRODUCTO ----------
   (Reescrita de cero más abajo, en la sección CATEGORÍA + PDP v2.
    Esta versión previa usaba .tdh-pdp.row con Bootstrap cols 50/50,
    tamaños de título 27px y reglas de variantes/cantidad que competían
    entre sí. Se elimina y se consolida al final del archivo.) */

/* FIX v7b — login: ocultar botón "Mostrar contraseña" (el diseño no lo lleva) */
.tdh-auth-form .input-group-btn{ display:none; }
.tdh-auth-form .input-group{ display:block; }
.tdh-auth-form .input-group input{ width:100%; }
.tdh-auth-brand{ justify-content:flex-start; }

/* ============================================================
   FIX FIDELIDAD v8 — eliminado.
   (Era un juego de reglas de galería sticky para .tdh-pdp.row que se
   autocontradecía — v8d quitaba el sticky, v8e lo volvía a poner,
   v8f lo quitaba otra vez. El PDP ahora usa un grid CSS .tdh-pdp-cols
   y la galería se redefine limpia en la sección CATEGORÍA + PDP v2.)
   ============================================================ */

/* FIX v9 — auth: panel de marca centrado verticalmente (sin hueco muerto abajo)
   + etiqueta de email a una línea */
.tdh-auth-brand{ justify-content:center !important; }
.tdh-auth-form .form-group label,
.tdh-auth-form .form-control-label{ width:100% !important; max-width:none !important; white-space:normal; flex:0 0 100%; }
.tdh-auth-form .form-group > .row,
.tdh-auth-form .form-group > .row > div{ display:block; width:100%; max-width:100%; flex:0 0 100%; }

/* FIX v9b — alineación del panel de marca por página:
   login (alturas similares) -> centrado; registro (form alto) -> arriba */
body.page-authentication .tdh-auth-brand{ justify-content:center !important; }
body.page-registration .tdh-auth-brand{ justify-content:flex-start !important; }

/* FIX v10 — auth: campos del formulario a ancho COMPLETO (PS usa col-md-3/6/3
   con un comentario vacío que dejaba la mitad en blanco) */
.tdh-auth-form .form-group,
.tdh-auth-form .form-group.row{ display:block !important; margin-left:0 !important; margin-right:0 !important; }
.tdh-auth-form .form-group > *,
.tdh-auth-form .form-group .col-md-3,
.tdh-auth-form .form-group .col-md-6,
.tdh-auth-form .form-group .js-input-column,
.tdh-auth-form .form-group .form-control-label,
.tdh-auth-form .form-group .form-control-comment{
  display:block !important; width:100% !important; max-width:100% !important; flex:0 0 100% !important;
  padding-left:0 !important; padding-right:0 !important;
}
.tdh-auth-form .form-control,
.tdh-auth-form .input-group,
.tdh-auth-form .input-group .form-control{ width:100% !important; }
.tdh-auth-form .form-group .form-control-comment:empty{ display:none !important; }
.tdh-auth-form .form-control-label{ margin-bottom:6px; }

.tdh-auth-page{ padding:40px 0 72px !important; max-width:none !important; }
.tdh-auth-card{
  max-width:920px !important; width:100% !important;
  grid-template-columns:1fr 460px !important;
  margin:0 auto !important;
  border-radius:var(--r-xl) !important; box-shadow:var(--sh-card) !important; overflow:hidden;
}
/* El formulario es 460px fijo en desktop: el contenido ocupa todo el ancho
   del form (con su padding 40px) — sin max-width ni centrado extra. */
.tdh-auth-form > *{ width:100%; max-width:none; margin-left:0 !important; margin-right:0 !important; }
.tdh-auth-crumb{
  display:flex; align-items:center; gap:6px;
  font-family:var(--font-body); font-size:14px; color:var(--fg2);
  margin:0 0 24px;
}
.tdh-auth-crumb a{ color:var(--fg2); text-decoration:none; cursor:pointer; }
.tdh-auth-crumb a:hover{ color:var(--teal-700); }
.tdh-auth-crumb .sep{ color:var(--fg3); }
.tdh-auth-crumb .current{ color:var(--teal-700); font-weight:700; }

@media (max-width: 991px){
  .tdh-auth-card{ grid-template-columns:1fr !important; max-width:520px !important; }
  .tdh-auth-brand{ padding:32px 28px !important; }
  .tdh-auth-form{ padding:32px 28px 32px !important; }
}

/* FIX v16 — auth: el espacio alrededor de la tarjeta debe ser el bg2 de la web
   (como el diseño), no un bloque blanco. Quita el fondo blanco del #content. */
.tdh-auth-page{ background:transparent !important; }

/* ============================================================
   CONSENTIMIENTO RGPD (psgdpr) — newsletter + contacto
   ============================================================ */
/* Consentimiento discreto pero presente (legal): texto pequeño y tenue,
   checkbox sutil, enlace a la política visible. Se fuerza con !important
   para anular el estilo bold/14px de los label del formulario. */
/* Checkbox custom (cuadrado garantizado): el nativo se comprimía en el flex
   del newsletter y se veía rectangular. */
input[name="psgdpr_consent_checkbox"]{
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  width:16px !important; height:16px !important; min-width:16px; min-height:16px;
  flex:0 0 16px; box-sizing:border-box; margin:2px 0 0; padding:0;
  border:1.5px solid var(--teal-300); border-radius:4px; background:#fff;
  position:relative; cursor:pointer; vertical-align:top;
}
input[name="psgdpr_consent_checkbox"]:checked{ background:var(--teal); border-color:var(--teal); }
input[name="psgdpr_consent_checkbox"]:checked::after{
  content:''; position:absolute; left:4.5px; top:1px; width:4px; height:8px;
  border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg);
}
input[name="psgdpr_consent_checkbox"]:focus-visible{ outline:2px solid var(--teal-700); outline-offset:2px; }
.psgdpr_consent_message{ display:flex; gap:8px; align-items:flex-start; margin:0; }
.psgdpr_consent_message,
.psgdpr_consent_message label,
.psgdpr_consent_message span{ font-size:11px !important; font-weight:400 !important; line-height:1.4 !important; color:var(--fg3) !important; letter-spacing:normal !important; }
.psgdpr_consent_message label{ display:flex !important; gap:8px; align-items:flex-start; margin:0 !important; max-width:none !important; padding:0 !important; cursor:pointer; }
.psgdpr_consent_message a{ color:var(--teal-700) !important; text-decoration:underline; font-weight:600 !important; }
.psgdpr_consent_message a:hover{ color:var(--teal-800) !important; }
.tdh-contact-formwrap .psgdpr_consent_message{ margin-top:8px; }
#contact #content-wrapper, .page-contact #content-wrapper{ width:100% !important; max-width:100% !important; flex:0 0 100% !important; padding:0 !important; }
#contact #content.page-content, .page-contact #content.page-content,
#contact section.page-content, .page-contact section.page-content{ background:transparent !important; box-shadow:none !important; border:0 !important; padding:0 !important; margin:0 !important; }

.tdh-contact{ max-width:1120px; margin:0 auto; padding:8px 4px 16px; }

/* hero */
.tdh-contact-hero{ position:relative; overflow:hidden; border-radius:var(--r-xl); background:radial-gradient(120% 140% at 88% -10%, rgba(244,123,173,.16), transparent 55%), radial-gradient(120% 120% at -10% 120%, rgba(56,191,191,.20), transparent 50%), var(--bg-cream); padding:48px 48px; text-align:center; }
.tdh-contact-hero::after{ content:""; position:absolute; right:2px; bottom:-28px; width:185px; height:185px; opacity:.10; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2338BFBF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719'/%3E%3C/svg%3E") center/contain no-repeat; pointer-events:none; }
.tdh-contact-hero h1{ font-family:var(--font-display); font-weight:900; font-size:42px; line-height:1.1; margin:14px 0 12px; color:var(--ink); }
.tdh-contact-hero .tdh-script{ font-family:var(--font-script); font-weight:700; color:var(--coral); font-size:1.06em; }
.tdh-contact-hero p{ font-family:var(--font-body); font-size:17px; color:var(--fg2); max-width:560px; margin:0 auto; position:relative; z-index:1; }

/* grid info + form */
.tdh-contact-grid{ display:grid; grid-template-columns:380px 1fr; gap:24px; margin-top:26px; align-items:stretch; }

/* columna info — misma altura que el formulario; WhatsApp anclado al fondo */
.tdh-ci-card{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh-card); padding:26px 26px 24px; height:100%; display:flex; flex-direction:column; }
.tdh-ci-head{ display:flex; align-items:center; gap:13px; padding-bottom:18px; margin-bottom:6px; border-bottom:1px solid var(--line-2); }
.tdh-ci-head .tdh-ico{ font-size:24px; padding:11px; box-sizing:content-box; flex:none; border-radius:var(--r-md); background:var(--teal-50); color:var(--teal-700); }
.tdh-ci-head b{ font-family:var(--font-display); font-weight:800; font-size:17px; color:var(--ink); display:block; }
.tdh-ci-head span{ font-size:13px; color:var(--fg3); }
.tdh-ci-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.tdh-ci-list li{ display:flex; gap:14px; align-items:flex-start; padding:16px 0; border-bottom:1px solid var(--line-2); }
.tdh-ci-list li:last-child{ border-bottom:0; }
.tdh-ci-list li .tdh-ico{ color:var(--teal-600); font-size:22px; flex:none; margin-top:2px; }
.tdh-ci-list small{ display:block; font-family:var(--font-display); font-weight:800; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--fg3); margin-bottom:3px; }
.tdh-ci-list b{ font-family:var(--font-display); font-weight:800; font-size:16px; color:var(--ink); }
.tdh-ci-list a{ font-family:var(--font-display); font-weight:800; font-size:15.5px; color:var(--teal-700); }
.tdh-ci-list .v{ font-size:13.5px; color:var(--fg2); display:block; }
.tdh-ci-wa{ display:flex; align-items:center; justify-content:center; gap:9px; margin-top:auto; background:#25D366; color:#fff !important; font-family:var(--font-display); font-weight:800; font-size:15px; border-radius:var(--r-pill); padding:13px 20px; box-shadow:0 10px 24px rgba(37,211,102,.30); transition:.18s ease; }
.tdh-ci-wa:hover{ background:#1FB855; color:#fff !important; text-decoration:none !important; transform:translateY(-2px); }
.tdh-ci-wa .tdh-ico{ font-size:20px; }

/* formulario */
/* el módulo envuelve el form en section.contact-form (blanco + padding 16px):
   ese era el marco blanco alrededor de la tarjeta del formulario. */
.tdh-contact-formwrap .contact-form{ background:transparent !important; padding:0 !important; box-shadow:none !important; border:0 !important; }
.tdh-contact-formwrap .login-form,
.tdh-contact-formwrap form{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh-card); padding:30px 34px; margin:0; max-width:none; width:100%; }
.tdh-contact-formwrap header{ margin:0 0 20px; padding:0; }
.tdh-contact-formwrap header h1,
.tdh-contact-formwrap header .h3{ font-family:var(--font-display); font-weight:800; font-size:23px; color:var(--ink); margin:0 0 6px; }
.tdh-contact-formwrap header p{ font-family:var(--font-body); font-size:14.5px; color:var(--fg2); margin:0; }
.tdh-contact-formwrap .form-fields{ display:block; }
/* El módulo renderiza el form con Bootstrap grid (.form-group.row con
   label.col-md-3 + div.col-md-6/9). Lo pasamos a bloques verticales full-width. */
.tdh-contact-formwrap .form-group.row{ display:block; margin:0 0 18px; }
.tdh-contact-formwrap .form-group [class*="col-md"],
.tdh-contact-formwrap .form-group [class*="offset-md"]{ width:100%; max-width:100%; flex:0 0 100%; margin-left:0 !important; padding:0; }
.tdh-contact-formwrap .form-control-label,
.tdh-contact-formwrap .form-fields label{ display:block; width:100%; max-width:none; flex:none; text-align:left; margin:0 0 7px; padding:0; font-family:var(--font-display); font-weight:700; font-size:14px; color:var(--ink); }
.tdh-contact-formwrap .form-fields label > span{ font-family:var(--font-display); font-weight:700; font-size:14px; color:var(--ink); }
.tdh-contact-formwrap .form-control-comment{ display:block; margin-top:7px; font-size:12.5px; color:var(--fg3); }
.tdh-contact-formwrap .form-fields h3{ font-family:var(--font-display); font-weight:800; font-size:18px; color:var(--ink); margin:0 0 4px; }
/* archivo adjunto (bootstrap-filestyle): caja + botón unidos, botón suave */
.tdh-contact-formwrap input.filestyle{ position:absolute !important; width:1px; height:1px; opacity:0; overflow:hidden; padding:0; }
.tdh-contact-formwrap .bootstrap-filestyle.input-group{ display:flex; width:100%; flex-wrap:nowrap; }
.tdh-contact-formwrap .bootstrap-filestyle .form-control{ flex:1 1 auto; min-width:0; border-radius:var(--r-md) 0 0 var(--r-md); border-right:0; background:#fff; }
.tdh-contact-formwrap .group-span-filestyle{ display:flex; flex:none; }
.tdh-contact-formwrap .group-span-filestyle .btn{ background:var(--teal-50); color:var(--teal-700); border:1.5px solid var(--line); border-radius:0 var(--r-md) var(--r-md) 0; font-family:var(--font-display); font-weight:800; font-size:13px; padding:0 20px; white-space:nowrap; cursor:pointer; height:auto; box-shadow:none; }
.tdh-contact-formwrap .group-span-filestyle .btn:hover{ background:var(--teal-100); color:var(--teal-800); }
.tdh-contact-formwrap select,
.tdh-contact-formwrap input[type="email"],
.tdh-contact-formwrap input[type="text"],
.tdh-contact-formwrap textarea{ width:100%; border:1.5px solid var(--line); border-radius:var(--r-md); padding:12px 15px; font-family:var(--font-body); font-size:15px; color:var(--ink); background:#fff; }
.tdh-contact-formwrap select:focus,
.tdh-contact-formwrap input:focus,
.tdh-contact-formwrap textarea:focus{ border-color:var(--teal-300); box-shadow:0 0 0 3px var(--teal-50); outline:none; }
.tdh-contact-formwrap textarea{ min-height:140px; resize:vertical; }
/* el select heredaba una altura fija que recortaba el texto por arriba */
.tdh-contact-formwrap select{ height:50px; line-height:1.4; padding-top:0; padding-bottom:0; }
.tdh-contact-formwrap .form-footer,
.tdh-contact-formwrap .form-fields > .form-group:last-child{ margin-top:22px; margin-bottom:0; text-align:right; }
.tdh-contact-formwrap .form-footer .btn,
.tdh-contact-formwrap input[type="submit"],
.tdh-contact-formwrap button[type="submit"]{ background:var(--coral); color:#fff; border:0; box-shadow:var(--sh-pink); border-radius:var(--r-pill); font-family:var(--font-display); font-weight:800; font-size:16px; padding:13px 34px; cursor:pointer; transition:.18s ease; }
.tdh-contact-formwrap .form-footer .btn:hover,
.tdh-contact-formwrap input[type="submit"]:hover,
.tdh-contact-formwrap button[type="submit"]:hover{ background:var(--pink-600); transform:translateY(-2px); }
/* notificación de envío */
.tdh-contact-formwrap .notification{ border-radius:var(--r-md); padding:14px 18px; margin-bottom:18px; font-size:14.5px; }
.tdh-contact-formwrap .notification-success{ background:var(--success-bg); color:var(--success); }
.tdh-contact-formwrap .notification-error{ background:var(--pink-50); color:var(--pink-700); }

@media (max-width:860px){
  .tdh-contact-grid{ grid-template-columns:1fr; }
  .tdh-contact-hero h1{ font-size:32px; }
}

/* Reseguro nativo (displayReassurance) con texto placeholder: oculto en carrito
   y checkout por si algún hook lo reinyecta fuera del template. El diseño usa la
   tarjeta crema de USPs (carrito) y el resumen del pedido (checkout). */
.cart-grid-right .block-reassurance,
#checkout .cart-grid-right .block-reassurance{ display:none !important; }

/* ------------------------------------------------------------
   Migrado desde legacy-catalogo.css al terminar el rediseno v3.
   ------------------------------------------------------------ */
/* ============================================================
   TEXTIL DEL HOGAR — LEGACY CATALOGO — TEMPORAL, NO AMPLIAR.
   Reglas de categoria y ficha de producto heredadas del CSS monolitico, con
   capas solapadas (v1, FASE 3, FIX v7/v17/v18, CATEGORIA+PDP v2). Se vacia a
   medida que se escriben categoria.css y producto.css contra el prototipo v3;
   este archivo debe acabar borrado.
   ============================================================ */
/* ============================================================
   TARJETA DE PRODUCTO (.product-miniature reskin)
   ============================================================ */
/* La rejilla la gobierna Bootstrap (col-*). Aquí solo damos aire vertical y
   estilizamos la tarjeta para que parezca el diseño. */
.products{ margin-top:6px; }
.products > .js-product,
.featured-products .products > .js-product{ margin-bottom:18px; }
.tdh-brand-pill{ font-family:var(--font-display); font-weight:900; font-size:19px; color:var(--fg2); background:transparent; padding:10px 20px; border-radius:var(--r-xs); box-shadow:none; }
/* Títulos de sección de los módulos de inicio al estilo v4:
   alineados a la izquierda, Nunito 800, escala fluida. */
.featured-products .products-section-title,
.products-section-title.text-uppercase,
.products-section-title{ text-align:left; text-transform:none; font-family:var(--font-display); font-weight:800; font-size:clamp(26px, 2.6vw, 34px); color:var(--ink); letter-spacing:-.015em; margin:8px 0 20px; }

/* --- Favoritos (blockwishlist view): grid de tarjetas como FavCard --- */
#wishlist .products,
#module-blockwishlist-view .products,
.tdh-wishlist-products{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media (max-width:991px){
  #wishlist .products, #module-blockwishlist-view .products, .tdh-wishlist-products{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:575px){
  #wishlist .products, #module-blockwishlist-view .products, .tdh-wishlist-products{ grid-template-columns:1fr; }
}

/* ============================================================
   CATEGORÍA — Layout grid (sidebar 232px + contenido)
   El layout-left-column pinta: #wrapper > .container > .row >
   (#left-column + #content-wrapper). Lo pasamos a grid.
   ============================================================ */
@media (min-width: 992px){
  .layout-left-column #wrapper > .container > .row{
    display:grid; grid-template-columns:232px 1fr; gap:28px; align-items:start;
  }
}
@media (max-width: 991px){
  .layout-left-column #content-wrapper{ padding:0; }
}
@media (max-width: 991px){
  #_mobile_search_filters{ background:#fff; border-radius:var(--r-lg); padding:16px; }
}
