/*
Theme Name: Natural Bride — Hello Elementor Child
Theme URI: https://naturalbrideboutique.com
Template: hello-elementor
Author: Natural Creative Studio
Author URI: https://naturalcreativestudio.com
Description: Child theme de Hello Elementor para Natural Bride Boutique — atelier de vestidos de novia artesanales en Badalona. Carga los tokens de diseño y CSS custom del rediseño NB26.
Tags: flexible-header,custom-colors,custom-menu,custom-logo,featured-images,rtl-language-support,threaded-comments,translation-ready,style-variations
Version: 1.1.6
Updated: 2026-05-19 13:01:04

*/



/* ============================================================
   NATURAL BRIDE — SHARED.CSS (copia exacta de referencia/)
   ============================================================ */
*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --white:#FFFFFF; --off:#F6F5F2; --sand:#E6E0D4; --sand-dark:#C4BBA8;
  --sage:#6B7D5E; --sage-light:#8FA07F; --slate:#525C68;
  --carbon:#22262A; --carbon-2:#343A40; --muted:#7A8085; --light:#A8ADB2;
}
.nb-page{
  font-family:'Cormorant',serif;
  /* fallback: cargado en Elementor globals */
}
.nb-page body, .nb-page-body {
  font-family:'DM Sans',sans-serif; font-weight:300;
  background:var(--white); color:var(--carbon);
  font-size:15px; line-height:1.6;
}
.nb-page .serif{font-family:'Playfair Display',serif;font-weight:500;}

/* common type */
.nb-page .section-eyebrow{
  font-size:10px;letter-spacing:0.4em;text-transform:uppercase;
  color:var(--sage);margin-bottom:24px;
  font-family:'DM Sans',sans-serif;font-weight:400;
}
.nb-page .h2{
  font-family:'Playfair Display',serif;
  font-size:clamp(30px,3.5vw,44px);
  font-weight:500;line-height:1.15;color:var(--carbon);margin-bottom:32px;
  letter-spacing:-0.02em;
}
.nb-page .h2 em{font-style:italic;color:var(--slate);font-weight:500;}
.nb-page .body-txt{font-size:13px;color:var(--muted);line-height:1.9;margin-bottom:32px;font-weight:300;font-family:'DM Sans',sans-serif;}
.nb-page .link-arrow{
  font-size:10px;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--carbon);border-bottom:1px solid var(--carbon);
  padding-bottom:2px;cursor:pointer;display:inline-block;
  transition:color 0.2s,border-color 0.2s;text-decoration:none;
  font-family:'DM Sans',sans-serif;font-weight:400;
}
.nb-page .link-arrow:hover{color:var(--sage);border-color:var(--sage);}

/* hero */
.nb-page .hero{height:100vh;min-height:600px;position:relative;display:flex;align-items:flex-end;overflow:hidden;}
.nb-page .hero-bg{position:absolute;inset:0;background:var(--carbon-2);display:flex;align-items:center;justify-content:center;}
.nb-page .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;}
.nb-page .hero-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(to top, rgba(20,23,26,0.85) 0%, rgba(20,23,26,0.2) 60%, transparent 100%);}
.nb-page .hero-content{position:relative;z-index:2;padding:120px 56px 72px;width:100%;max-width:760px;}
.nb-page .hero-eyebrow{font-size:10px;letter-spacing:0.4em;text-transform:uppercase;color:var(--sage-light);margin-bottom:24px;font-family:'DM Sans',sans-serif;font-weight:400;}
.nb-page .hero-h1{font-family:'Playfair Display',serif;font-size:clamp(48px,6vw,80px);font-weight:500;line-height:1.05;color:var(--white);margin-bottom:24px;letter-spacing:-0.02em;}
.nb-page .hero-h1 em{font-style:italic;color:rgba(255,255,255,0.85);font-weight:500;}
.nb-page .hero-sub{font-size:14px;color:rgba(255,255,255,0.55);line-height:1.8;max-width:420px;margin-bottom:44px;font-weight:300;font-family:'DM Sans',sans-serif;}
.nb-page .hero-actions{display:flex;align-items:center;gap:32px;}
.nb-page .btn-hero-main{font-size:10px;letter-spacing:0.18em;text-transform:uppercase;padding:16px 36px;background:var(--white);color:var(--carbon);border:none;font-family:'DM Sans',sans-serif;font-weight:500;transition:all 0.25s;text-decoration:none;display:inline-block;}
.nb-page .btn-hero-main:hover{background:var(--sage);color:var(--white);}

/* bar */
.nb-page .bar{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--sand);}
.nb-page .bar-item{padding:22px 28px;text-align:center;border-right:1px solid var(--sand);}
.nb-page .bar-item:last-child{border-right:none;}
.nb-page .bar-val{font-family:'Playfair Display',serif;font-size:20px;font-weight:500;color:var(--carbon);}
.nb-page .bar-lbl{font-size:9px;letter-spacing:0.2em;text-transform:uppercase;color:var(--light);margin-top:6px;font-family:'DM Sans',sans-serif;}

/* aroa */
.nb-page .aroa-carousel{position:relative;overflow:hidden;background:var(--carbon-2);}
.nb-page .aroa{display:grid;grid-template-columns:48% 52%;min-height:620px;border-bottom:1px solid var(--sand);}
.nb-page .aroa-img{background:var(--off);border-right:1px solid var(--sand);position:relative;overflow:hidden;display:block;}
.nb-page .aroa-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;}
.nb-page .aroa-text{padding:56px 56px;display:flex;flex-direction:column;justify-content:center;}
.nb-page .blockquote{font-family:'Playfair Display',serif;font-size:20px;font-style:italic;color:var(--slate);line-height:1.6;margin-bottom:24px;padding-left:20px;border-left:1.5px solid var(--sage);font-weight:500;}

/* tejidos section (oscura) */
.nb-page .tejidos{padding:96px 56px;background:var(--carbon);display:flex;flex-direction:column;align-items:flex-start;gap:32px;}
.nb-page .tejidos .section-eyebrow{color:var(--sage-light);}
.nb-page .tejidos .h2{color:var(--white);}
.nb-page .tejidos .h2 em{color:var(--sage-light);}
.nb-page .tejidos .body-txt{color:rgba(255,255,255,0.45);max-width:480px;}
.nb-page .tejidos .link-arrow{color:var(--white);border-color:rgba(255,255,255,0.3);}
.nb-page .tejidos .link-arrow:hover{color:var(--sage-light);border-color:var(--sage-light);}
.nb-page .tejidos-text{max-width:560px;}

/* marquee */
.nb-page .marquee-wrap{padding:20px 0;background:var(--off);border-top:1px solid var(--sand);border-bottom:1px solid var(--sand);overflow:hidden;display:flex;mask-image:linear-gradient(to right, transparent, black 8%, black 92%, transparent);-webkit-mask-image:linear-gradient(to right, transparent, black 8%, black 92%, transparent);}
.nb-page .marquee-track{display:flex;gap:48px;animation:nbMarqueeScroll 30s linear infinite;white-space:nowrap;flex-shrink:0;}
.nb-page .marquee-item{font-family:'Playfair Display',serif;font-size:17px;font-style:italic;color:var(--muted);letter-spacing:0.02em;display:flex;align-items:center;gap:48px;font-weight:500;}
.nb-page .marquee-item::after{content:'·';font-size:22px;color:var(--sand-dark);}
@keyframes nbMarqueeScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* coleccion (header + dynamic loop) */
.nb-page .coleccion{padding:56px 56px;background:var(--white);}
.nb-page .section-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:36px;}
.nb-page .section-header-right{text-align:right;max-width:280px;}
.nb-page .section-header-right .body-txt{text-align:right;margin-bottom:14px;}

/* proceso */
.nb-page .proceso{padding:56px 56px;background:var(--off);border-top:1px solid var(--sand);}
.nb-page .proceso-intro{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:end;margin-bottom:48px;}
.nb-page .steps-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--sand-dark);}
.nb-page .step{padding:32px 28px 0 28px;border-right:1px solid var(--sand);}
.nb-page .step:last-child{border-right:none;}
.nb-page .step-n{font-size:9px;letter-spacing:0.3em;text-transform:uppercase;color:var(--sage);margin-bottom:14px;font-family:'DM Sans',sans-serif;font-weight:400;}
.nb-page .step-t{font-family:'Playfair Display',serif;font-size:22px;font-weight:500;color:var(--carbon);margin-bottom:10px;}
.nb-page .step-b{font-size:12px;color:var(--muted);line-height:1.8;font-weight:300;font-family:'DM Sans',sans-serif;}

/* testimonios */
.nb-page .testimonios{padding:56px 56px;background:var(--white);}
.nb-page .test-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:36px;}

/* col grid (used in colección + testimonios) */
.nb-page .col-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--sand);}
.nb-page .col-item{background:var(--off);min-height:560px;display:flex;flex-direction:column;justify-content:flex-end;padding:28px;position:relative;overflow:hidden;transition:background 0.3s;text-decoration:none;color:inherit;}
.nb-page .col-item:hover{background:var(--sand);}
.nb-page .col-img{position:absolute;inset:0;}
.nb-page .col-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%;display:block;}
.nb-page .col-img::after{content:"";position:absolute;inset:0;background:linear-gradient(to top, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.15) 40%, transparent 70%);pointer-events:none;}
.nb-page .col-item:has(.col-img img) .col-name{color:var(--white);}
.nb-page .col-item:has(.col-img img) .col-tag{color:rgba(255,255,255,0.75);}
.nb-page .col-info{position:relative;z-index:2;}
.nb-page .col-name{font-family:'Playfair Display',serif;font-size:26px;font-weight:500;color:var(--carbon);margin-bottom:4px;}
.nb-page .col-tag{font-size:9px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);font-family:'DM Sans',sans-serif;font-weight:400;}

/* cierre */
.nb-page .cierre{background:var(--carbon);padding:96px 56px;}
.nb-page .cierre-top{text-align:center;margin-bottom:40px;}
.nb-page .cierre-top .h2{color:var(--white);}
.nb-page .cierre-top .h2 em{color:var(--sage-light);}
.nb-page .cierre-top .body-txt{color:rgba(255,255,255,0.4);max-width:480px;margin:0 auto;}
.nb-page .cierre-cta{text-align:center;margin-top:8px;}
.nb-page .btn-outline-light{font-size:10px;letter-spacing:0.18em;text-transform:uppercase;padding:16px 44px;background:var(--white);color:var(--carbon);border:1px solid var(--white);transition:all 0.25s;display:inline-block;text-decoration:none;font-family:'DM Sans',sans-serif;font-weight:500;}
.nb-page .btn-outline-light:hover{background:transparent;color:var(--white);}

/* mobile */
@media(max-width:768px){
  .nb-page .hero-content{padding:100px 20px 48px;}
  .nb-page .hero-h1{font-size:34px;line-height:1.08;}
  .nb-page .hero-sub{font-size:13px;max-width:100%;}
  .nb-page .hero-actions{flex-direction:column;align-items:flex-start;gap:16px;}
  .nb-page .btn-hero-main{padding:13px 24px;width:100%;text-align:center;}
  .nb-page .bar{grid-template-columns:1fr;}
  .nb-page .bar-item{padding:14px 12px;}
  .nb-page .bar-val{font-size:16px;}
  .nb-page .bar-lbl{font-size:8px;}
  .nb-page .aroa{grid-template-columns:1fr;}
  .nb-page .aroa-img{min-height:320px;border-right:none;border-bottom:1px solid var(--sand);}
  .nb-page .aroa-text{padding:36px 20px;}
  .nb-page .blockquote{font-size:16px;padding-left:14px;}
  .nb-page .tejidos{padding:48px 20px;gap:24px;}
  .nb-page .marquee-item{font-size:14px;gap:32px;}
  .nb-page .marquee-item::after{font-size:18px;}
  .nb-page .coleccion{padding:40px 20px;}
  .nb-page .section-header{flex-direction:column;gap:14px;align-items:flex-start;margin-bottom:24px;}
  .nb-page .section-header-right{text-align:left;max-width:100%;}
  .nb-page .section-header-right .body-txt{text-align:left;}
  .nb-page .col-grid{grid-template-columns:1fr;}
  .nb-page .col-item{min-height:0;aspect-ratio:3/4;padding:20px;}
  .nb-page .proceso{padding:40px 20px;}
  .nb-page .proceso-intro{grid-template-columns:1fr;gap:16px;margin-bottom:32px;}
  .nb-page .steps-grid{grid-template-columns:1fr 1fr;}
  .nb-page .step{padding:20px 14px 0 14px;}
  .nb-page .step:nth-child(2n){border-right:none;}
  .nb-page .step:nth-child(n+3){border-top:1px solid var(--sand);padding-top:20px;margin-top:20px;}
  .nb-page .step-t{font-size:18px;}
  .nb-page .step-b{font-size:11px;}
  .nb-page .testimonios{padding:40px 20px;}
  .nb-page .test-header{flex-direction:column;gap:12px;align-items:flex-start;margin-bottom:24px;}
  .nb-page .cierre{padding:64px 20px;}
  .nb-page .cierre-top{margin-bottom:28px;}
  .nb-page .cierre-cta{margin-top:28px;}
  .nb-page .btn-outline-light{width:100%;text-align:center;padding:14px 24px;}
}


/* =========================================================
   WOOCOMMERCE PRODUCTS GRID → estilo .col-item editorial NBB
   ========================================================= */
.nb-page .woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1px !important;
  background: var(--sand) !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.nb-page .woocommerce ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  padding: 28px !important;
  background: var(--off) !important;
  float: none !important;
  clear: none !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  min-height: 560px !important;
  position: relative !important;
  overflow: hidden !important;
  transition: background 0.3s !important;
}
.nb-page .woocommerce ul.products li.product:hover { background: var(--sand) !important; }
.nb-page .woocommerce ul.products li.product > a.woocommerce-LoopProduct-link {
  position: static !important;
  display: contents !important;
  text-decoration: none !important;
  color: inherit !important;
}
.nb-page .woocommerce ul.products li.product img,
.nb-page .woocommerce ul.products li.product .attachment-woocommerce_thumbnail,
.nb-page .woocommerce ul.products li.product .wp-post-image {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center 22% !important;
  margin: 0 !important;
  display: block !important;
  z-index: 0 !important;
}
.nb-page .woocommerce ul.products li.product::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(to top, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.15) 40%, transparent 70%) !important;
  z-index: 1 !important;
  pointer-events: none !important;
}
.nb-page .woocommerce ul.products li.product .woocommerce-loop-product__title {
  position: relative !important;
  z-index: 2 !important;
  font-family: 'Playfair Display', serif !important;
  font-weight: 500 !important;
  font-size: 28px !important;
  color: var(--white) !important;
  margin: 0 0 4px 0 !important;
  padding: 0 !important;
  letter-spacing: -0.02em !important;
}
.nb-page .woocommerce ul.products li.product .price,
.nb-page .woocommerce ul.products li.product .price * {
  position: relative !important;
  z-index: 2 !important;
  color: rgba(255,255,255,0.85) !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
}
.nb-page .woocommerce ul.products li.product .button,
.nb-page .woocommerce ul.products li.product .added_to_cart {
  display: none !important;
}
.nb-page .woocommerce ul.products li.product.outofstock .onsale,
.nb-page .woocommerce ul.products li.product .onsale {
  display: none !important;
}
.nb-page .woocommerce span.onsale { display: none !important; }
@media (max-width: 767px) {
  .nb-page .woocommerce ul.products { grid-template-columns: 1fr !important; }
}

/* =========================================================
   Eliminar paddings de Elementor que rompen el layout HTML widget
   ========================================================= */
.nb-page section.elementor-section,
.nb-page .elementor-widget-html,
.nb-page .elementor-widget-shortcode,
.nb-page .elementor-element {
  padding: 0 !important;
  margin: 0 !important;
}
.nb-page .elementor-widget-container,
.nb-page .elementor-widget-html .elementor-widget-container,
.nb-page .elementor-widget-shortcode .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
}
.nb-page .elementor-column > .elementor-widget-wrap,
.nb-page .elementor-column > .elementor-column-wrap {
  padding: 0 !important;
}


/* =========================================================
   FULL-WIDTH — romper max-width 1140px de Elementor container
   ========================================================= */
.nb-page section.elementor-section > .elementor-container {
  max-width: 100% !important;
  width: 100% !important;
}
.nb-page .elementor-section-stretched > .elementor-container,
.nb-page .elementor-container {
  max-width: 100% !important;
  width: 100% !important;
}
.nb-page .elementor-column.elementor-col-100 {
  width: 100% !important;
}


/* =========================================================
   TEJIDOS GRID (4 columnas) + placeholder elegante
   ========================================================= */
.nb-page .col-grid.nb-grid-4 {
  grid-template-columns: repeat(4, 1fr) !important;
}
@media (max-width: 1024px) {
  .nb-page .col-grid.nb-grid-4 { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 600px) {
  .nb-page .col-grid.nb-grid-4 { grid-template-columns: 1fr !important; }
}
.nb-page .nb-tejido-card {
  min-height: 380px !important;
}
.nb-page .nb-tejido-card .col-img.nb-tejido-placeholder {
  background: linear-gradient(135deg, #6B7D5E 0%, #525C68 100%) !important;
  position: absolute; inset: 0;
}
.nb-page .nb-tejido-card .col-img.nb-tejido-placeholder::before {
  content: ""; position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, transparent 0 14px, rgba(255,255,255,0.04) 14px 15px);
}
.nb-page .nb-tejido-card:has(.nb-tejido-placeholder) .col-name { color: #FFFFFF !important; }
.nb-page .nb-tejido-card:has(.nb-tejido-placeholder) .col-tag  { color: rgba(255,255,255,0.7) !important; }
.nb-page .nb-tejido-card:has(.col-img > img) .col-name { color: #FFFFFF !important; }
.nb-page .nb-tejido-card:has(.col-img > img) .col-tag  { color: rgba(255,255,255,0.8) !important; }


/* =========================================================
   AROA CAROUSEL — auto-play 4.5s
   ========================================================= */
.nb-page .nb-aroa-slider {
  position: relative;
  overflow: hidden;
  background: var(--carbon-2);
  width: 100%;
  height: 100%;
}
.nb-page .nb-aroa-slides {
  position: absolute;
  inset: 0;
}
.nb-page .nb-aroa-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.9s ease;
  pointer-events: none;
}
.nb-page .nb-aroa-slide.is-active {
  opacity: 1;
  pointer-events: auto;
  z-index: 2;
}
.nb-page .nb-aroa-slide img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.nb-page .nb-aroa-badge {
  position: absolute;
  bottom: 24px;
  left: 24px;
  z-index: 3;
  font-family: 'DM Sans', sans-serif;
  font-size: 9px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.85);
  background: rgba(0,0,0,0.45);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  padding: 8px 14px;
  border: 1px solid rgba(255,255,255,0.2);
}
.nb-page .nb-aroa-dots {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 4;
  display: flex;
  gap: 8px;
}
.nb-page .nb-aroa-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255,255,255,0.35);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: all 0.3s;
}
.nb-page .nb-aroa-dot.is-active {
  background: #ffffff;
  transform: scale(1.3);
}


/* =========================================================
   COOKIE NOTICE — estética NBB (override Compliance plugin)
   ========================================================= */
#cookie-notice.cookie-notice-nbb,
#cookie-notice {
  background: rgba(20, 23, 26, 0.92) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
  font-family: 'DM Sans', sans-serif !important;
  padding: 18px 56px !important;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.25);
}
@media (max-width: 767px) {
  #cookie-notice {
    padding: 16px 20px !important;
  }
}
#cookie-notice .cookie-notice-container {
  max-width: 1300px !important;
  margin: 0 auto !important;
  display: flex !important;
  align-items: center !important;
  gap: 32px !important;
  color: rgba(255,255,255,0.85) !important;
  padding: 0 !important;
}
@media (max-width: 900px) {
  #cookie-notice .cookie-notice-container {
    flex-direction: column !important;
    gap: 16px !important;
    text-align: center !important;
  }
}
#cookie-notice #cn-notice-text {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 13px !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
  color: rgba(255,255,255,0.75) !important;
  letter-spacing: 0 !important;
  flex: 1 1 auto !important;
}
#cookie-notice #cn-notice-buttons {
  display: flex !important;
  gap: 14px !important;
  flex-shrink: 0 !important;
  align-items: center !important;
}
@media (max-width: 600px) {
  #cookie-notice #cn-notice-buttons {
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 10px !important;
  }
}

/* Botones — primary (Aceptar) */
#cookie-notice #cn-accept-cookie.cn-button {
  background: #FFFFFF !important;
  color: #22262A !important;
  border: 1px solid #FFFFFF !important;
  border-radius: 0 !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  padding: 12px 28px !important;
  transition: all 0.25s !important;
  box-shadow: none !important;
  text-shadow: none !important;
  line-height: 1.2 !important;
}
#cookie-notice #cn-accept-cookie.cn-button:hover {
  background: #6B7D5E !important;
  border-color: #6B7D5E !important;
  color: #FFFFFF !important;
}

/* Botón outline (Rechazar) */
#cookie-notice #cn-refuse-cookie.cn-button {
  background: transparent !important;
  color: #FFFFFF !important;
  border: 1px solid rgba(255,255,255,0.4) !important;
  border-radius: 0 !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  padding: 12px 24px !important;
  transition: all 0.25s !important;
  box-shadow: none !important;
  text-shadow: none !important;
  line-height: 1.2 !important;
}
#cookie-notice #cn-refuse-cookie.cn-button:hover {
  border-color: #FFFFFF !important;
  background: rgba(255,255,255,0.05) !important;
}

/* Botón Política de privacidad — text-link arrow */
#cookie-notice #cn-more-info.cn-button {
  background: transparent !important;
  color: rgba(255,255,255,0.55) !important;
  border: none !important;
  border-bottom: 1px solid rgba(255,255,255,0.3) !important;
  border-radius: 0 !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 9.5px !important;
  font-weight: 400 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  padding: 4px 2px 6px !important;
  transition: all 0.25s !important;
  box-shadow: none !important;
  text-shadow: none !important;
  margin-left: 8px !important;
  line-height: 1.2 !important;
}
#cookie-notice #cn-more-info.cn-button:hover {
  color: #FFFFFF !important;
  border-color: #FFFFFF !important;
}

/* Close X */
#cookie-notice #cn-close-notice.cn-close-icon {
  color: rgba(255,255,255,0.5) !important;
  opacity: 0.7 !important;
  right: 14px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 22px !important;
  height: 22px !important;
}
#cookie-notice #cn-close-notice.cn-close-icon:hover {
  opacity: 1 !important;
}

/* Sobreescribir cualquier inline color del plugin */
#cookie-notice .cookie-notice-container[style] { color: rgba(255,255,255,0.85) !important; }
#cookie-notice button[style*="background"] { background-image: none !important; }


/* =========================================================
   SINGLE EDITORIAL — ocultar título y meta nativos del theme
   ========================================================= */
body.nb-single-editorial .entry-title,
body.nb-single-editorial .post-title,
body.nb-single-editorial .single-post-title,
body.nb-single-editorial header.entry-header,
body.nb-single-editorial .entry-meta,
body.nb-single-editorial .post-meta,
body.nb-single-editorial .entry-footer,
body.nb-single-editorial .comments-area,
body.nb-single-editorial #comments,
body.nb-single-editorial nav.post-navigation,
body.nb-single-editorial .nav-links,
body.nb-single-editorial .post-thumbnail {
  display: none !important;
}
body.nb-single-editorial .site-main,
body.nb-single-editorial .content-area,
body.nb-single-editorial main.site-main {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
}
body.nb-single-editorial article.post,
body.nb-single-editorial article.hentry {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
}
body.nb-single-editorial article .entry-content {
  margin: 0 !important;
  padding: 0 !important;
  max-width: 100% !important;
}
body.nb-single-editorial article .entry-content > .nb-page {
  /* Nuestro wrapper toma control */
}

/* Single product editorial */
body.nb-single-product-editorial .price,
body.nb-single-product-editorial .summary > .price,
body.nb-single-product-editorial form.cart,
body.nb-single-product-editorial .product_meta,
body.nb-single-product-editorial .stock {
  display: none !important;
}
body.nb-single-product-editorial .summary {
  padding: 0 !important;
}
body.nb-single-product-editorial .product_title.entry-title {
  font-family: 'Playfair Display', serif !important;
  font-size: clamp(36px, 4vw, 56px) !important;
  font-weight: 500 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.1 !important;
  color: var(--carbon) !important;
  margin-bottom: 8px !important;
}
body.nb-single-product-editorial .woocommerce-product-gallery img {
  border-radius: 0 !important;
}
body.nb-single-product-editorial .related.products,
body.nb-single-product-editorial .upsells.products,
body.nb-single-product-editorial .related.products h2,
body.nb-single-product-editorial .upsells.products h2 {
  font-family: 'Playfair Display', serif !important;
}
body.nb-single-product-editorial .related.products h2,
body.nb-single-product-editorial .upsells.products h2 {
  font-size: clamp(28px, 3vw, 40px) !important;
  font-weight: 500 !important;
  margin-bottom: 36px !important;
  text-align: left !important;
}


/* =========================================================
   CARDS VERTICALES (3-up) — vestidos y novias en home
   ========================================================= */
.nb-page .nb-cards-vertical .col-grid {
  grid-template-columns: repeat(3, 1fr) !important;
}
.nb-page .nb-cards-vertical .col-item {
  aspect-ratio: 3 / 4 !important;
  min-height: 0 !important;
}
@media (max-width: 900px) {
  .nb-page .nb-cards-vertical .col-grid { grid-template-columns: 1fr !important; }
  .nb-page .nb-cards-vertical .col-item { aspect-ratio: 4 / 5 !important; }
}

/* =========================================================
   EXPERIENCIA — sección lista 4 items + imagen
   ========================================================= */
.nb-page .experiencia {
  display: grid;
  grid-template-columns: 52% 48%;
  min-height: 480px;
  border-top: 1px solid var(--sand);
  border-bottom: 1px solid var(--sand);
  background: #FFFFFF;
}
.nb-page .exp-text {
  padding: 72px 56px 72px 56px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-right: 1px solid var(--sand);
}
.nb-page .exp-items {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 12px;
}
.nb-page .exp-item {
  padding: 22px 0;
  border-bottom: 1px solid var(--sand);
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 18px;
  align-items: start;
}
.nb-page .exp-item:last-child { border-bottom: none; }
.nb-page .exp-num {
  font-family: 'Playfair Display', serif;
  font-size: 28px;
  font-weight: 500;
  font-style: italic;
  color: var(--sand-dark);
  line-height: 1;
}
.nb-page .exp-title {
  font-family: 'Playfair Display', serif;
  font-size: 19px;
  font-weight: 500;
  color: var(--carbon);
  margin-bottom: 6px;
  letter-spacing: -0.01em;
}
.nb-page .exp-desc {
  font-size: 12.5px;
  color: var(--muted);
  line-height: 1.8;
  font-weight: 300;
  font-family: 'DM Sans', sans-serif;
}
.nb-page .exp-img {
  background: var(--carbon-2);
  position: relative;
  overflow: hidden;
}
.nb-page .exp-img img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
@media (max-width: 900px) {
  .nb-page .experiencia { grid-template-columns: 1fr; }
  .nb-page .exp-text { padding: 48px 20px; border-right: none; border-bottom: 1px solid var(--sand); }
  .nb-page .exp-img { min-height: 320px; }
}

/* =========================================================
   MOBILE — fix hamburguesa duplicada + ocultar header viejo
   ========================================================= */
@media (max-width: 1024px) {
  /* Si hay un nav-toggle de Hello Elementor además del nuestro, ocultar el del theme */
  body header.site-header .menu-toggle,
  body header.site-header .nav-toggle,
  body header.site-header.elementor-location-header ~ header.site-header,
  body main header.site-header,
  body .ehp-header__menu-toggle:not(:first-of-type) {
    display: none !important;
  }
  /* Hide any nested duplicate <header> inside Elementor header location */
  body header.elementor-location-header header.elementor-section.elementor-hidden-desktop:not(:first-of-type),
  body header.elementor-location-header > header:not(:first-child) {
    display: none !important;
  }
}


/* =========================================================
   HEADER MOBILE FIX (clase: nb-header-mobile-fix)
   Layout horizontal con logo izq + hamburguesa der.
   Botón Reservar oculto en móvil (sigue accesible vía menú)
   ========================================================= */
@media (max-width: 1024px) {
  body header.elementor-location-header .elementor-section > .elementor-container,
  body header.elementor-location-header .elementor-container {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  body header.elementor-location-header .elementor-column {
    width: auto !important;
    flex: 0 0 auto !important;
    min-height: 0 !important;
  }
  body header.elementor-location-header .elementor-column:nth-child(1) {
    flex: 1 1 auto !important;
    text-align: left !important;
  }
  body header.elementor-location-header .elementor-column:nth-child(2) {
    flex: 0 0 auto !important;
  }
  body header.elementor-location-header .elementor-column:nth-child(3) {
    display: none !important;
  }
  body header.elementor-location-header .elementor-element-hdrBtn {
    display: none !important;
  }
  body header.elementor-location-header .elementor-widget-wrap,
  body header.elementor-location-header .elementor-column-wrap {
    padding: 0 !important;
  }
  body header.elementor-location-header .elementor-element {
    padding: 0 !important;
    margin: 0 !important;
  }
  body header.elementor-location-header .elementor-nav-menu--dropdown {
    border-radius: 0 !important;
  }
  body header.elementor-location-header .elementor-menu-toggle {
    background: transparent !important;
    color: #22262A !important;
    padding: 8px !important;
  }
  /* El logo en mobile */
  body header.elementor-location-header .elementor-element-hdrLogo .elementor-heading-title {
    font-size: 15px !important;
    letter-spacing: 0.16em !important;
  }
}
.nb-header-mobile-fix { /* marker */ }


/* =========================================================
   MOBILE — Reservar cita visible junto a hamburguesa
   ========================================================= */
@media (max-width: 1024px) {
  body header.elementor-location-header .elementor-column:nth-child(3) {
    display: block !important;
    flex: 0 0 auto !important;
  }
  body header.elementor-location-header .elementor-element-hdrBtn {
    display: block !important;
    margin: 0 !important;
  }
  body header.elementor-location-header .elementor-element-hdrBtn .elementor-button {
    font-size: 9px !important;
    padding: 9px 14px !important;
    letter-spacing: 0.12em !important;
  }
  /* Reordenar para que el botón vaya antes que la hamburguesa */
  body header.elementor-location-header .elementor-container {
    gap: 8px !important;
  }
  body header.elementor-location-header .elementor-column:nth-child(2) {
    order: 3 !important;
  }
  body header.elementor-location-header .elementor-column:nth-child(3) {
    order: 2 !important;
  }
}
.nb-mobile-cta-visible { /* marker */ }

/* =========================================================
   AROA carousel — object-position dinámico para que el equipo no se corte
   ========================================================= */
.nb-page .nb-aroa-slide img {
  object-position: center 18% !important;
}
.nb-page .nb-aroa-slide:nth-child(2) img {
  object-position: center 25% !important;
}

/* =========================================================
   COOKIES — asegurar que el banner se cierra correctamente
   ========================================================= */
#cookie-notice.cookie-notice-hidden,
#cookie-notice[aria-hidden="true"],
body.cookies-accepted #cookie-notice,
body.cookies-set #cookie-notice {
  display: none !important;
}
#cookie-notice #cn-close-notice {
  cursor: pointer !important;
  pointer-events: auto !important;
  z-index: 999999 !important;
}
#cookie-notice .cn-button {
  cursor: pointer !important;
  pointer-events: auto !important;
}


/* ===========================================================
   NB — Single novia editorial v2 (artículo largo)
   =========================================================== */
.nb-novia-editorial { max-width: 800px; margin: 0 auto; padding: 56px 24px 96px; font-family: 'DM Sans', sans-serif; }
.nb-novia-editorial .ne-lead { font-family: 'Playfair Display', serif; font-weight: 500; font-style: italic; font-size: clamp(22px, 2.4vw, 30px); line-height: 1.35; color: #22262A; letter-spacing: -0.01em; margin-bottom: 48px; padding-bottom: 36px; border-bottom: 1px solid #E6E0D4; }
.nb-novia-editorial .ne-meta-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin: 0 0 56px; padding: 20px 0; border-top: 1px solid #E6E0D4; border-bottom: 1px solid #E6E0D4; }
.nb-novia-editorial .ne-meta { display: flex; flex-direction: column; padding: 0 18px; border-right: 1px solid #E6E0D4; }
.nb-novia-editorial .ne-meta:last-child { border-right: none; }
.nb-novia-editorial .ne-meta-lbl { font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase; color: #7A8085; margin-bottom: 6px; }
.nb-novia-editorial .ne-meta-val { font-family: 'Playfair Display', serif; font-style: italic; font-weight: 500; font-size: 14px; color: #22262A; line-height: 1.35; }
.nb-novia-editorial h2.ne-h { font-family: 'Playfair Display', serif; font-weight: 500; font-size: clamp(26px, 3vw, 36px); line-height: 1.1; letter-spacing: -0.015em; color: #22262A; margin: 56px 0 22px; }
.nb-novia-editorial h2.ne-h em { font-style: italic; color: #6B7D5E; }
.nb-novia-editorial p { font-size: 16px; line-height: 1.85; color: #22262A; font-weight: 300; margin: 0 0 22px; }
.nb-novia-editorial p em { font-style: italic; color: #525C68; }
.nb-novia-editorial .ne-pull { font-family: 'Playfair Display', serif; font-weight: 500; font-style: italic; font-size: clamp(22px, 2.4vw, 30px); line-height: 1.35; color: #22262A; letter-spacing: -0.01em; border-left: 3px solid #6B7D5E; padding: 18px 0 18px 28px; margin: 48px 0; }
.nb-novia-editorial .ne-fig { margin: 56px -80px; }
.nb-novia-editorial .ne-fig img { width: 100%; height: auto; display: block; aspect-ratio: 16/10; object-fit: cover; }
.nb-novia-editorial .ne-fig figcaption { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: #7A8085; margin-top: 14px; text-align: center; font-family: 'DM Sans', sans-serif; }
.nb-novia-editorial .ne-quote { background: #F6F5F2; padding: 48px 56px; margin: 64px 0 0; border-top: 1px solid #E6E0D4; border-bottom: 1px solid #E6E0D4; }
.nb-novia-editorial .ne-quote p { font-family: 'Playfair Display', serif; font-style: italic; font-size: 22px; line-height: 1.45; color: #22262A; font-weight: 500; margin-bottom: 18px; }
.nb-novia-editorial .ne-quote-sig { display: block; font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; color: #6B7D5E; font-family: 'DM Sans', sans-serif; }
@media (max-width: 900px) {
  .nb-novia-editorial { padding: 32px 18px 64px; }
  .nb-novia-editorial .ne-meta-strip { grid-template-columns: 1fr 1fr; gap: 0; }
  .nb-novia-editorial .ne-meta { padding: 10px 14px; border-right: none; border-bottom: 1px solid #E6E0D4; }
  .nb-novia-editorial .ne-meta:nth-child(odd) { border-right: 1px solid #E6E0D4; }
  .nb-novia-editorial .ne-meta:nth-last-child(-n+2) { border-bottom: none; }
  .nb-novia-editorial .ne-fig { margin: 40px 0; }
  .nb-novia-editorial .ne-fig img { aspect-ratio: 4/5; }
  .nb-novia-editorial .ne-quote { padding: 32px 24px; }
  .nb-novia-editorial .ne-quote p { font-size: 19px; }
}


/* Force novia editorial layout against theme resets */
.nb-novia-editorial .ne-meta-strip { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; }
.nb-novia-editorial .ne-meta { display: flex !important; flex-direction: column !important; }
.nb-novia-editorial .ne-meta-lbl { display: block !important; }
.nb-novia-editorial .ne-meta-val { display: block !important; }
@media (max-width: 900px) {
  .nb-novia-editorial .ne-meta-strip { grid-template-columns: 1fr 1fr !important; }
}
