:root{
  --ink-navy:#0E2033;
  --river-blue:#2E6690;
  --sky-wash:#6FA0C7;
  --mist:#BFD6E6;
  --paper:#F6F2EA;
  --graphite:#1C1F24;
  --ember:#B5432E;
  --paper-line:rgba(14,32,51,0.10);
  /* Aliases */
  --ink:#0E2033;
  --ink-60:rgba(14,32,51,0.6);
  --brand:#2E6690;
  --brand-deep:#0E2033;
  --coral:#B5432E;
  --mustard:#B5432E;
  --line:rgba(14,32,51,0.10);
  --sky:#6FA0C7;
  --grass:#2E6690;
  --pink:#6FA0C7;
}
*{box-sizing:border-box;}
body{margin:0;overflow-x:hidden;background:var(--paper);color:var(--graphite);font-family:'Archivo',sans-serif;-webkit-font-smoothing:antialiased;}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
a{color:inherit;text-decoration:none;}

.breakout{
  width:100vw;
  position:relative;
  left:50%;right:50%;
  margin-left:-50vw;margin-right:-50vw;
}

/* ════ HEADER BASE ════ */
/* hello-elementor theme.css constrains header to 1140px and sets position:relative — override both */
.site-header{
  position:sticky !important;top:0;z-index:200;
  background:var(--paper);
  max-width:none !important;
  width:100% !important;
  padding:0 !important;
}
/* Scroll state — se añade via JS */
.site-header.scrolled .nav-d,
.site-header.scrolled .nav-t,
.site-header.scrolled .nav-m{
  background:rgba(246,242,234,0.92);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}

/* ── Átomos compartidos ── */
.brand-unit{
  display:flex;align-items:center;gap:7px;
  text-decoration:none;
}
.brand-unit img{display:block;flex-shrink:0;width:auto;}
/* Tamaños del logo por contexto — sobrescriben img{height:auto} de reset.css */
.nav-m .brand-unit img{height:28px;}
.nav-t .brand-unit img{height:28px;}
.nav-d .brand-unit img{height:30px;}
.menu-m-head .brand-unit img{height:24px;}
.footer .brand-unit img{height:22px;filter:brightness(0) invert(1);}/* heredado — ft-logo toma el control en footer.php nuevo */
.logo-inverted{filter:brightness(0) invert(1);}
.brand-unit span{
  font-family:'Fraunces',serif;font-weight:600;font-size:17px;
  letter-spacing:0.01em;color:var(--ink-navy);
}
.hamburger{
  background:none;border:none;padding:4px;cursor:pointer;
  display:flex;flex-direction:column;gap:4.5px;
}
.hamburger span{
  width:18px;height:1.5px;
  background:var(--ink-navy);display:block;border-radius:1px;
  transition:transform .22s,opacity .22s;
}
.hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.hamburger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
.menu-close{
  background:none;border:none;cursor:pointer;
  font-size:18px;color:rgba(246,242,234,.5);font-weight:300;line-height:1;padding:4px;
}
.menu-close:hover{color:var(--paper);}

.cart-d{
  display:flex;align-items:center;gap:7px;
  background:var(--ink-navy);color:var(--paper);
  font-family:'IBM Plex Mono',monospace;font-size:10px;
  letter-spacing:.06em;text-transform:uppercase;
  padding:8px 14px;
  text-decoration:none;
  transition:opacity .15s;
}
.cart-d:hover{opacity:.85;}
.cart-d .badge{
  width:17px;height:17px;border-radius:50%;
  background:var(--ember);color:#fff;
  font-size:9px;display:flex;align-items:center;justify-content:center;font-weight:500;
}
.search-icon{
  background:none;border:none;cursor:pointer;
  font-size:18px;color:var(--ink-navy);opacity:.5;padding:4px;
}
.search-icon:hover{opacity:1;}

/* ════ MOBILE NAV ════ */
.nav-m{
  display:none;
  width:100%;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  padding:10px 20px;
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
.nav-m .hamburger{justify-self:start;}
.nav-m .brand-unit{justify-self:center;}
.nav-m .cart-m{justify-self:end;}
.nav-m .brand-unit span{font-size:15px;}
.cart-m{
  position:relative;
  color:var(--ink-navy);display:flex;align-items:center;
  text-decoration:none;
}
.cart-badge{
  position:absolute;top:-6px;right:-8px;
  width:16px;height:16px;border-radius:50%;
  background:var(--ember);color:#fff;
  font-family:'IBM Plex Mono',monospace;font-size:8px;
  display:flex;align-items:center;justify-content:center;font-weight:600;
}
.cart-badge:empty{display:none;}

/* ── Mobile Drawer ── */
.cm-drawer{
  position:fixed;inset:0;z-index:300;
  transform:translateX(-100%);
  transition:transform .3s cubic-bezier(.4,0,.2,1);
  pointer-events:none;
}
.cm-drawer.open{
  transform:translateX(0);
  pointer-events:all;
}
.menu-m{
  background:var(--ink-navy);
  display:flex;flex-direction:column;
  height:100%;max-width:320px;
  overflow-y:auto;
}
.menu-m-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 20px;
  border-bottom:1px solid rgba(246,242,234,.08);
  flex-shrink:0;
}
.menu-m-head .brand-unit span{
  font-family:'Fraunces',serif;font-weight:600;font-size:14px;color:var(--paper);
}
.menu-link{
  display:flex;align-items:center;
  padding:17px 20px;
  border-bottom:1px solid rgba(246,242,234,.07);
  cursor:pointer;
  text-decoration:none;
  background:none;border-left:none;border-right:none;border-top:none;width:100%;text-align:left;
}
.menu-link-text{
  font-family:'Fraunces',serif;font-weight:400;font-size:22px;
  color:var(--paper);letter-spacing:-.015em;line-height:1;
}
.menu-link-text em{font-style:italic;color:var(--sky-wash);font-size:16px;margin-left:4px;}
.menu-link-num{
  font-family:'IBM Plex Mono',monospace;font-size:9px;
  color:rgba(246,242,234,.28);letter-spacing:.08em;
  margin-right:auto;margin-left:12px;padding-top:4px;
}
.menu-link-arrow{
  font-family:'IBM Plex Mono',monospace;font-size:13px;
  color:rgba(246,242,234,.25);
}
.submenu{background:rgba(0,0,0,.25);border-bottom:1px solid rgba(246,242,234,.07);}
.sub-item{
  display:flex;align-items:center;gap:8px;
  padding:10px 20px 10px 28px;
  font-family:'Archivo',sans-serif;font-size:12.5px;
  color:rgba(246,242,234,.6);
  text-decoration:none;
}
.sub-item:hover{color:var(--paper);}
.sub-dot{width:4px;height:4px;border-radius:50%;flex-shrink:0;}
.menu-footer{
  padding:20px;
  border-top:1px solid rgba(246,242,234,.08);
  margin-top:auto;flex-shrink:0;
  display:flex;flex-direction:column;gap:8px;
}
.menu-footer-links{display:flex;gap:18px;}
.mfl{
  font-family:'IBM Plex Mono',monospace;font-size:9px;
  color:rgba(246,242,234,.35);letter-spacing:.06em;text-transform:uppercase;
  text-decoration:none;
}
.mfl:hover{color:rgba(246,242,234,.7);}
.menu-footer-meta{font-family:'IBM Plex Mono',monospace;font-size:9px;color:rgba(246,242,234,.2);}
.cm-overlay{
  display:none;position:fixed;inset:0;z-index:290;
  background:rgba(14,32,51,.55);
}
.cm-overlay.open{display:block;}

/* ════ TABLET NAV ════ */
.nav-t{
  display:none;
  width:100%;
  align-items:center;justify-content:space-between;
  padding:13px 28px;
  background:var(--paper);
  border-bottom:1px solid var(--line);
  gap:20px;
}
.nav-t-links{display:flex;gap:4px;align-items:center;flex:1;justify-content:center;}
.nav-t-link{
  font-family:'Archivo',sans-serif;font-size:12.5px;font-weight:500;
  color:var(--ink-navy);opacity:.65;
  padding:6px 10px;white-space:nowrap;
  background:none;border:none;cursor:pointer;
  text-decoration:none;
}
.nav-t-link:hover{opacity:1;}
.nav-t-link.active{opacity:1;color:var(--river-blue);border-bottom:1.5px solid var(--river-blue);}
.nav-t-link.has-caret::after{content:'▾';font-size:8px;margin-left:3px;opacity:.5;}
.t-panel{
  position:absolute;top:100%;right:0;
  width:260px;
  background:var(--ink-navy);
  z-index:250;
  box-shadow:4px 4px 24px rgba(0,0,0,.18);
}
.t-panel-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:13px 18px;
  border-bottom:1px solid rgba(246,242,234,.08);
}
.t-panel-head span{
  font-family:'IBM Plex Mono',monospace;font-size:9px;
  color:rgba(246,242,234,.35);letter-spacing:.1em;text-transform:uppercase;
}
.t-nav-link{
  display:flex;align-items:center;justify-content:space-between;
  padding:13px 18px;
  border-bottom:1px solid rgba(246,242,234,.06);
  text-decoration:none;
}
.t-nav-link-text{
  font-family:'Fraunces',serif;font-size:17px;font-weight:400;
  color:var(--paper);letter-spacing:-.01em;
}
.t-nav-link-text.muted{opacity:.55;font-size:15px;}
.t-arrow{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  color:rgba(246,242,234,.22);
}
.t-panel-foot{
  padding:14px 18px;
  border-top:1px solid rgba(246,242,234,.08);
  display:flex;flex-direction:column;gap:7px;
}
.t-foot-link{
  font-family:'IBM Plex Mono',monospace;font-size:9px;
  color:rgba(246,242,234,.3);letter-spacing:.06em;text-transform:uppercase;
  text-decoration:none;
}
.t-foot-link:hover{color:rgba(246,242,234,.7);}

/* ════ DESKTOP NAV ════ */
.nav-d{
  display:none;
  width:100%;
  align-items:center;justify-content:space-between;
  padding:0 48px;
  background:var(--paper);
  border-bottom:1px solid var(--line);
  height:64px;
  gap:24px;
}
.nav-d-center{
  display:flex;align-items:stretch;gap:0;
  height:64px;flex:1;justify-content:center;
}
.nav-d-link{
  font-family:'Archivo',sans-serif;font-size:13px;font-weight:500;
  color:var(--ink-navy);opacity:.6;
  padding:0 22px;height:100%;
  display:flex;align-items:center;
  cursor:pointer;letter-spacing:-.01em;
  border-bottom:2px solid transparent;
  white-space:nowrap;
  transition:opacity .15s,border-color .15s;
  background:none;border-top:none;border-left:none;border-right:none;
  text-decoration:none;
}
.nav-d-link:hover{opacity:1;}
.nav-d-link.active,
.nav-d-link[aria-expanded="true"]{
  opacity:1;color:var(--river-blue);border-bottom-color:var(--river-blue);
}
.nav-d-link.has-caret::after{content:'▾';font-size:8px;margin-left:4px;opacity:.4;}
.nav-d-right{display:flex;align-items:center;gap:14px;flex-shrink:0;}

/* ── Megamenu ── */
.mega{
  position:absolute;top:100%;left:0;right:0;
  background:var(--paper);
  border-top:2px solid var(--ink-navy);
  border-bottom:1px solid var(--line);
  padding:28px 48px 32px;
  display:grid;grid-template-columns:1fr 1fr;gap:40px;
  z-index:190;
  box-shadow:0 8px 24px rgba(14,32,51,.08);
}
.mega-col-title{
  font-family:'IBM Plex Mono',monospace;font-size:9px;
  letter-spacing:.1em;text-transform:uppercase;
  color:var(--river-blue);margin-bottom:14px;
  display:flex;align-items:center;gap:10px;
}
.mega-col-title::after{content:'';flex:1;height:1px;background:var(--line);}
.mega-cats{display:grid;grid-template-columns:1fr 1fr;gap:2px;}
.mega-cat{
  padding:11px 12px;cursor:pointer;
  display:flex;flex-direction:column;gap:4px;
  border:1px solid transparent;transition:all .12s;
  text-decoration:none;
}
.mega-cat:hover{background:#fff;border-color:var(--line);}
.mega-cat-bar{width:16px;height:2px;border-radius:1px;margin-bottom:2px;}
.mega-cat-name{
  font-family:'Fraunces',serif;font-size:14px;font-weight:500;
  color:var(--ink-navy);letter-spacing:-.01em;
}
.mega-cat-count{
  font-family:'IBM Plex Mono',monospace;font-size:9px;
  color:var(--graphite);opacity:.38;
}
.mega-all{
  padding:11px 12px;display:flex;align-items:center;gap:8px;
  cursor:pointer;margin-top:4px;text-decoration:none;
}
.mega-all span{
  font-family:'IBM Plex Mono',monospace;font-size:10px;
  color:var(--river-blue);letter-spacing:.06em;text-transform:uppercase;
}
.mega-right{
  border-left:1px solid var(--line);padding-left:40px;
  display:flex;flex-direction:column;justify-content:center;gap:8px;
}
.mega-right-label{
  font-family:'IBM Plex Mono',monospace;font-size:9px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ember);
}
.mega-right-title{
  font-family:'Fraunces',serif;font-weight:400;font-size:19px;font-style:italic;
  color:var(--ink-navy);line-height:1.05;letter-spacing:-.01em;
}
.mega-right-sub{font-size:12px;color:var(--graphite);opacity:.55;line-height:1.55;}
.mega-right-cta{
  font-family:'IBM Plex Mono',monospace;font-size:10px;
  color:var(--river-blue);letter-spacing:.06em;text-transform:uppercase;margin-top:4px;
  text-decoration:none;
}
.mega-right-cta:hover{color:var(--ember);}
.cm-mega-overlay{
  display:none;position:fixed;inset:0;z-index:180;
}
.cm-mega-overlay.open{display:block;}

/* ════ BREAKPOINTS ════ */
@media(max-width:767px){
  .nav-m{display:grid;}
  .nav-t,.nav-d{display:none !important;}
}
@media(min-width:768px) and (max-width:1024px){
  .nav-t{display:flex;position:relative;}
  .nav-m,.nav-d{display:none !important;}
}
@media(min-width:1025px){
  .nav-d{display:flex;position:relative;}
  .nav-m,.nav-t{display:none !important;}
}

/* ════ WRAP y utilidades ════ */
@media(max-width:640px){
  .wrap{padding:0 20px;}
}

/* ════ FOOTER ════ */
/* ── Footer SEO ── */
.ft-seo{
  background:var(--ink-navy);
  border-bottom:1px solid rgba(246,242,234,.09);
  padding:32px 22px;
}
.ft-seo-inner{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
  max-width:1180px;
  margin:0 auto;
}
.ft-seo-col--desc{ grid-column:1/-1; }
.ft-seo-text{
  font-family:'Archivo',sans-serif;font-size:12px;
  color:rgba(246,242,234,.35);line-height:1.7;
  margin:0;
}
.ft-seo-text strong{
  font-weight:600;color:rgba(246,242,234,.5);
}
.ft-seo-label{
  font-family:'IBM Plex Mono',monospace;font-size:9px;font-weight:500;
  letter-spacing:.1em;text-transform:uppercase;
  color:rgba(246,242,234,.28);margin-bottom:10px;
}
.ft-seo-list{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;gap:6px;
}
.ft-seo-list a{
  font-family:'Archivo',sans-serif;font-size:12px;
  color:rgba(246,242,234,.42);text-decoration:none;
  transition:color .12s;
}
.ft-seo-list a:hover{ color:rgba(246,242,234,.75); }

@media(min-width:641px){
  .ft-seo{ padding:36px 32px; }
  .ft-seo-inner{ grid-template-columns:2fr 1fr 1fr;gap:32px; }
  .ft-seo-col--desc{ grid-column:1; }
}
@media(min-width:1025px){
  .ft-seo{ padding:40px 56px; }
  .ft-seo-inner{ max-width:none; }
}

.footer{
  background:var(--ink-navy);
  /* Mobile base */
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  padding:32px 22px 28px;
}

/* ── Marca ── */
.ft-brand{ margin-bottom:6px; }
.ft-brand-unit{ text-decoration:none; }
.ft-brand-unit span{
  font-family:'Fraunces',serif;font-weight:600;font-size:16px;
  color:var(--paper);
}
.ft-logo{ height:22px;display:block;filter:brightness(0) invert(1); }
.ft-tagline{
  font-family:'IBM Plex Mono',monospace;font-size:10px;
  color:rgba(246,242,234,.34);letter-spacing:.05em;line-height:1.7;
  margin:8px 0 28px;
}
.ft-social{ display:flex;gap:10px;margin-top:14px; }
.ft-social-link{
  width:30px;height:30px;border-radius:50%;
  border:1px solid rgba(246,242,234,.16);
  display:flex;align-items:center;justify-content:center;
  font-family:'IBM Plex Mono',monospace;font-size:10px;
  color:rgba(246,242,234,.42);text-decoration:none;
}
.ft-social-link:hover{ color:var(--paper);border-color:rgba(246,242,234,.4); }

/* ── Links ── */
.ft-links{
  border-top:1px solid rgba(246,242,234,.09);
  margin-bottom:28px;
}
.ft-link{
  display:flex;align-items:center;justify-content:space-between;
  padding:13px 0;
  border-bottom:1px solid rgba(246,242,234,.09);
  text-decoration:none;
  cursor:pointer;
}
.ft-link-text{
  font-family:'Archivo',sans-serif;font-size:14px;font-weight:500;
  color:rgba(246,242,234,.72);letter-spacing:-.01em;
}
.ft-link.primary .ft-link-text{ color:var(--paper);font-weight:600; }
.ft-link.legal .ft-link-text{
  font-size:12px;font-weight:400;color:rgba(246,242,234,.3);
}
.ft-link-arrow{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  color:rgba(246,242,234,.2);flex-shrink:0;
}
.ft-link.primary .ft-link-arrow{ color:rgba(246,242,234,.32); }
.ft-sep{ height:1px;background:rgba(246,242,234,.15);margin:4px 0; }

/* ── Pago ── */
.pay-chip{
  background:rgba(246,242,234,.07);
  border:1px solid rgba(246,242,234,.12);
  border-radius:4px;padding:5px 9px;
  font-family:'IBM Plex Mono',monospace;font-size:9px;
  color:rgba(246,242,234,.5);letter-spacing:.03em;white-space:nowrap;
}
.ft-pay-label{
  font-family:'IBM Plex Mono',monospace;font-size:9px;
  letter-spacing:.08em;text-transform:uppercase;
  color:rgba(246,242,234,.26);
  white-space:nowrap;
}

/* ── Bottom (mobile: stacked) ── */
.ft-bottom{
  display:flex;flex-direction:column;gap:16px;
}
.ft-pay{
  display:flex;align-items:center;gap:7px;flex-wrap:wrap;
}
.ft-copy{
  font-family:'IBM Plex Mono',monospace;font-size:9px;
  letter-spacing:.04em;color:rgba(246,242,234,.2);
}

/* ══ TABLET (641–1024px) ══ */
@media(min-width:641px) and (max-width:1024px){
  .footer{
    padding:40px 32px 32px;
    grid-template-columns:180px 1fr;
    grid-template-rows:auto auto;
    column-gap:40px;row-gap:0;
    grid-template-areas:
      "brand links"
      "bottom bottom";
  }
  .ft-brand{
    grid-area:brand;
    padding-bottom:32px;
    border-bottom:1px solid rgba(246,242,234,.09);
    margin-bottom:0;
    align-self:start;
  }
  .ft-links{
    grid-area:links;
    border-top:none;
    padding-bottom:32px;
    border-bottom:1px solid rgba(246,242,234,.09);
    margin-bottom:0;
  }
  .ft-link{ padding:10px 0; }
  .ft-link-text{ font-size:13px; }
  .ft-link.legal .ft-link-text{ font-size:11.5px; }
  .ft-link-arrow{ font-size:10px; }
  .ft-bottom{
    grid-area:bottom;
    flex-direction:row;align-items:center;justify-content:space-between;
    padding-top:28px;flex-wrap:wrap;
  }
  .ft-tagline{ margin-bottom:0; }
}

/* ══ DESKTOP (≥1025px) ══ */
@media(min-width:1025px){
  .footer{
    padding:56px 56px 36px;
    grid-template-columns:220px 1fr;
    grid-template-rows:auto auto;
    column-gap:56px;row-gap:0;
    grid-template-areas:
      "brand links"
      "bottom bottom";
  }
  .ft-brand{
    grid-area:brand;
    padding-bottom:40px;
    border-bottom:1px solid rgba(246,242,234,.09);
    margin-bottom:0;
    align-self:start;
  }
  .ft-links{
    grid-area:links;
    border-top:none;
    display:flex;flex-wrap:wrap;align-content:start;
    padding-bottom:40px;
    border-bottom:1px solid rgba(246,242,234,.09);
    margin-bottom:0;
  }
  .ft-link{
    width:33.33%;
    flex-direction:row;
    padding:7px 0;
    border-bottom:none;
  }
  .ft-link-text{
    font-size:13px;
    color:rgba(246,242,234,.6);
  }
  .ft-link.primary .ft-link-text{ color:rgba(246,242,234,.9); }
  .ft-link.legal .ft-link-text{ font-size:11.5px;color:rgba(246,242,234,.3); }
  .ft-link-arrow{ display:none; }
  .ft-sep{ width:100%;border:none;background:transparent;margin:4px 0; }
  .ft-bottom{
    grid-area:bottom;
    flex-direction:row;align-items:center;justify-content:space-between;
    padding-top:32px;flex-wrap:wrap;gap:16px;
  }
  .ft-brand-unit{ margin-bottom:8px; }
  .ft-tagline{ margin-bottom:0; }
}

/* ════ WooCommerce ════ */
.woocommerce-product-gallery__image img,
.woocommerce-product-gallery__image img.wp-post-image{
  width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;background:var(--paper);
}
