/* === PATCH v29: white item boxes + service grids === */
.service-items,
.info-card ul{
  background: #fff !important;
}

.service-items{
  border: 1px solid rgba(15,23,42,0.08) !important;
}

.info-card ul{
  border: 1px solid rgba(15,23,42,0.08) !important;
}

/* Narrow centered service width when needed */
.service-wrap--narrow{ max-width: 860px !important; }

/* Grid for multiple service cards (2 columns on desktop) */
.service-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
@media (max-width: 900px){
  .service-grid{ grid-template-columns: 1fr; }
}

/* Centered list blocks (para quién, etc.) */
.center-list{
  list-style:none;
  padding:0;
  margin: 10px auto 0;
  max-width: 860px;
  text-align:center;
}
.center-list li{
  padding: 8px 0;
  border-bottom: 1px solid rgba(15,23,42,0.08);
}
.center-list li:last-child{ border-bottom:none; }

/* LLC price box */
.llc-price{
  max-width: 860px;
  margin: 0 auto;
  border: 1px solid rgba(15,23,42,0.08);
  border-radius: 18px;
  padding: 18px;
  background: rgba(255,255,255,0.02);
  text-align:center;
}
.llc-price .big{ font-size: 44px; font-weight: 700; margin: 8px 0 6px; }
.llc-price .muted{ margin: 0 auto 14px; max-width: 760px; }


/* === PATCH v30: global centering + service card consistency === */
.page-hero, .page-hero * { text-align:center; }
.page-content { text-align:center; }
.page-content p { margin-left:auto; margin-right:auto; }
.page-content .muted { margin-left:auto; margin-right:auto; }

/* Keep service components readable */
.service-card { text-align:left; }
.service-title { text-align:center; }
.service-items { text-align:left; list-style:none; padding-left:0; background:#fff !important; }
.service-items li { padding:10px 0; border-bottom:1px solid rgba(15,23,42,0.08); }
.service-items li:last-child { border-bottom:none; }

/* Toggle centered under section titles */
.billing-toggle { justify-content:center !important; }
.packs-section .billing-toggle { margin: 14px auto 18px; }

/* Responsive video embed */
.video-embed{
  max-width: 980px;
  margin: 18px auto 0;
  border-radius: 18px;
  overflow:hidden;
  border: 1px solid rgba(15,23,42,0.08);
  background: rgba(255,255,255,0.02);
}
.video-embed .ratio{
  position:relative;
  padding-top:56.25%;
}
.video-embed iframe{
  position:absolute; inset:0;
  width:100%; height:100%;
  border:0;
}

/* Service grids */
.service-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 16px;
}
@media (max-width: 900px){
  .service-grid{ grid-template-columns:1fr; }
}

/* Pack grid with third spanning both columns */
.pack-grid-3{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 16px;
  align-items: start;
}
.pack-grid-3 .span-2{ grid-column: 1 / -1; }
@media (max-width: 900px){
  .pack-grid-3{ grid-template-columns:1fr; }
  .pack-grid-3 .span-2{ grid-column:auto; }
}

/* Make item-boxes white everywhere */
.info-card ul, .service-items { background:#fff !important; }

/* Centered list block (used in LLC) */
.center-list{
  list-style:none;
  padding:0;
  margin: 10px auto 0;
  max-width: 860px;
  text-align:center;
}
.center-list li{
  padding: 8px 0;
  border-bottom: 1px solid rgba(15,23,42,0.08);
}
.center-list li:last-child{ border-bottom:none; }

/* CTA block: title+text centered + button below */
.contact-cta-inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;}
.contact-cta-actions{display:flex;justify-content:center;width:100%;}
.contact-cta-actions .btn{max-width:320px;width:100%;}

/* CTA (Solicita mas informacion) - centrado con boton debajo */
.contact-cta-inner{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  gap:14px !important;
}
.contact-cta-copy{max-width:720px; margin:0 auto;}
.contact-cta-actions{width:100%; display:flex; justify-content:center;}



/* === PATCH v33: Service cards (items in white, lead text, bundles) === */
.service-items{ padding:10px 12px !important; }
.service-item{ padding:9px 10px !important; }
.service-bundle .service-items{ border:none; padding:0 !important; background:transparent !important; }
.service-bundle .service-item{ padding:9px 0 !important; }

.service-items{ background:#FFFFFF !important; }
.service-lead{ text-align:center; margin:0 0 12px; padding:12px 12px; border:1px solid rgba(15,23,42,0.08); border-radius:14px; background:rgba(15,23,42,0.02); }
.service-right{ display:flex; flex-direction:column; gap:12px; }
/* keep items clean (no bullets) and separated by rules */
.service-items, .service-items ul{ list-style:none; }
.service-item{ list-style:none; }
/* bundle layout for PLUS TOTAL + LEGAL */
.service-bundle{ display:grid; grid-template-columns: minmax(240px,280px) 1fr auto 1fr; gap:16px; align-items:start; max-width:980px; margin:0 auto; }
.service-bundle .bundle-col{ border:1px solid rgba(15,23,42,0.08); border-radius:16px; padding:12px 14px; background:#FFFFFF; }
.service-bundle .bundle-title{ text-align:center; font-weight:700; margin:2px 0 10px; }
.service-bundle .bundle-plus{ font-size:34px; font-weight:700; opacity:.55; align-self:center; justify-self:center; }
@media (max-width: 900px){ .service-bundle{ grid-template-columns: 1fr; } .service-bundle .bundle-plus{ display:none; } }



/* === PATCH v38: clean alignment + videos + logo === */
.hero-kicker{ text-align:center !important; }

/* Bigger logo */
.brand-logo img{ max-height:72px !important; height:auto; }
@media (min-width: 744px){ .brand-logo img{ max-height:80px !important; } }
@media (min-width: 1128px){ .brand-logo img{ max-height:92px !important; } }

/* Responsive video embeds (portrait + landscape) */
.video-embed{ max-width:980px; margin:18px auto 28px; border-radius:22px; overflow:hidden; box-shadow:0 16px 40px rgba(0,0,0,.12); background:#000; }
.video-embed .ratio{ position:relative; width:100%; padding-top:56.25%; }
.video-embed.portrait{ max-width:520px; }
.video-embed.portrait .ratio{ padding-top:177.78%; }
.video-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }



/* === PATCH v40: logo + tax + holding fixes === */
/* Logo más grande solo en header (footer se mantiene) */
.site-header .brand-logo{height:60px !important;}
@media (min-width: 744px){
  .site-header .brand-logo{height:64px !important;}
}

/* Ocultar cualquier placeholder de */
.tax{display:none !important;}

/* === PATCH v41: pricing layout unify (price bottom, consistent & clean) === */

/* Ensure grid items stretch nicely */
.pack-grid,
.two-cols.pack-grid,
.services-grid,
.cards-grid,
.grid {
  align-items: stretch;
}

/* Standardize cards height & internal flow */
.service-card,
.pack-card,
.plan-card,
.pricing-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* Normalize split layouts so items come first and price sits at the bottom */
.service-split,
.service-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 14px;
}

/* Lists/feature areas */
.service-items {
  flex: 1;
}

/* Price block: clean, centered, consistent */
.service-price {
  width: 100%;
  order: 2;
  margin-top: auto;
  padding: 14px 16px;
  border-top: 1px solid rgba(0,0,0,0.08);
  background: rgba(0,0,0,0.02);
  border-radius: 12px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

/* Big price typography supports both markup styles (.price-big .price) and (.big) */
.service-price .price-big,
.service-price .big {
  font-size: 32px;
  line-height: 1.05;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.service-price .price-big .per,
.service-price .sub {
  font-size: 14px;
  font-weight: 600;
  opacity: 0.75;
}

/* Remove any leftover/tax placeholders inside price blocks */
.service-price .tax,
.tax,
.,
.vat {
  display: none !important;
}

/* CTA inside cards always aligns and stays clean */
.service-cta {
  margin-top: auto;
  padding-top: 14px;
  text-align: center;
}

.service-cta .btn,
.service-price .btn,
.service-price .btn-block,
.service-cta .btn-block {
  width: 100%;
  max-width: 320px;
  margin-left: auto;
  margin-right: auto;
}

/* Keep card paddings balanced when content is short */
.service-card {
  gap: 10px;
}

/* Portrait video: prevent huge blank areas and keep it centered */
.video-embed.portrait {
  max-width: 380px;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 480px) {
  .video-embed.portrait { max-width: 100%; }
}


/* === PATCH v42: price block cleanup (avoid left-column leftovers) === */
.service-price { min-width: 0 !important; }

/* If any old layout forced side-by-side columns, ensure full width */
.service-price,
.service-items { width: 100%; }

/* Keep price spacing tight on very small screens */
@media (max-width: 380px) {
  .service-price .price-big,
  .service-price .big { font-size: 28px; }
}


/* === PATCH v43: CTA spacing inside price block === */
.service-price .service-cta { margin-top: 10px; padding-top: 0; }



/* ===== Footer v6 overrides (keep structure, refine desktop grids + social row) ===== */
.site-footer { text-align: left; } /* ensure no centering */
.site-footer .footer-top.footer-two-cols{
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  align-items: start;
}

@media (min-width: 744px){
  .site-footer .footer-top.footer-two-cols{ grid-template-columns: 1fr 1fr; gap: 40px; }
}

/* Left side: split brand area into 2 quarters (logo / tagline+social) */
.site-footer .footer-brand-row{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}

@media (min-width: 744px){
  .site-footer .footer-brand-row{
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 36px;
    align-items: center;
  }
  .site-footer .footer-brand-row .footer-logo{
    justify-self: center;           /* center within its quarter */
    transform: translateY(10px);    /* slightly lower (as requested) */
  }
}

/* Tagline + socials */
.site-footer .footer-brand-meta{ display:flex; flex-direction: column; align-items:flex-start; }
.site-footer .footer-tagline{
  margin: 0;
  font-weight: 700;
  letter-spacing: 0.2px;
  color: var(--dark-gray);
  line-height: 1.25;
}
.site-footer .footer-brand-meta .footer-social{
  margin-top: 18px;                /* give air from tagline */
  display: flex;
  flex-direction: row;             /* ALWAYS horizontal */
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
}

/* Social links: compact chips */
.site-footer .footer-social .social-link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 1px solid #EBEBEB;
  border-radius: 14px;
  background: #FFFFFF;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.site-footer .footer-social .social-link:hover{
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.08);
  border-color: rgba(0,0,0,0.18);
  text-decoration: none;
}
.site-footer .footer-social .social-link svg{ width: 18px; height: 18px; }

/* Right side: contact cards grid */
.site-footer .footer-contact-cards{
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

@media (min-width: 1128px){
  .site-footer .footer-contact-cards{ grid-template-columns: 1fr 1fr; gap: 14px 16px; }
}

/* Contact card layout */
.site-footer .contact-card{
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 16px 16px;
  border: 1px solid #EBEBEB;
  border-radius: 18px;
  background: #FFFFFF;
  text-decoration: none;
}
.site-footer .contact-card:hover{
  box-shadow: 0 10px 22px rgba(0,0,0,0.08);
  border-color: rgba(0,0,0,0.16);
}
.site-footer .contact-ico{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 12px;
  background: rgba(0,0,0,0.04);
  flex: 0 0 auto;
}
.site-footer .contact-ico svg{ width: 18px; height: 18px; }
.site-footer .contact-txt{ display:flex; flex-direction:column; gap: 2px; }
.site-footer .contact-txt strong{ font-size: 14px; color: var(--dark-gray); }
.site-footer .contact-txt span{ font-size: 13px; color: var(--gray); line-height: 1.3; word-break: break-word; }

/* Footer bottom: keep clean, compact */
.site-footer .footer-bottom.footer-links-only{
  margin-top: 28px;
  padding-top: 18px;
  border-top: 1px solid #EBEBEB;
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: flex-start;
}
@media (min-width: 744px){
  .site-footer .footer-bottom.footer-links-only{
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
  }
}
.site-footer .footer-legal{ display:flex; gap: 12px; flex-wrap: wrap; }
.site-footer .footer-legal a{ font-size: 13px; font-weight: 600; color: var(--gray); text-decoration:none; }
.site-footer .footer-legal a:hover{ color: var(--black); text-decoration: underline; }
.site-footer .footer-copy{ font-size: 13px; color: var(--gray); opacity: .85; }

/* Mobile tightening */
@media (max-width: 743px){
  .site-footer{ padding-left: 20px; padding-right: 20px; }
  .site-footer .footer-brand-row{ gap: 10px; }
  .site-footer .footer-brand-meta .footer-social{ margin-top: 14px; }
  .site-footer .footer-contact-cards{ gap: 12px; }
  .site-footer .contact-card{ padding: 14px; }
}
/* --- Desktop: social icons bigger (2.5x) + evenly spaced + vertically centered --- */
@media (min-width: 1128px){
  /* make both columns stretch to same height so we can center inside */
  .site-footer .footer-top.footer-two-cols{ align-items: stretch; }

  /* ensure brand column can stretch its inner grid to full height */
  .site-footer .footer-col.footer-brand-col{ display:flex; }
  .site-footer .footer-brand-row{ width:100%; height:100%; }

  /* split tagline (top) + socials (centered in remaining height) */
  .site-footer .footer-brand-meta{
    height: 100%;
    display: grid;
    grid-template-rows: auto 1fr;
    align-items: start;
  }

  /* socials: fill the quarter width and distribute icons across it */
  .site-footer .footer-brand-meta .footer-social{
    margin-top: 0;               /* spacing handled by centering */
    align-self: center;          /* vertical center within footer height */
    width: 100%;
    justify-content: space-between;
    flex-wrap: nowrap;
    gap: 0;                      /* spacing comes from space-between */
  }

  /* 2.5x sizing vs default 38px chips */
  .site-footer .footer-social .social-link{
    width: 95px;
    height: 95px;
    border-radius: 30px;
  }
  .site-footer .footer-social .social-link svg{
    width: 45px;
    height: 45px;
  }
}
/* --- End desktop social tweaks --- */

/* ===== End Footer v6 overrides ===== */


/* ===== Mobile dropdown toggles (override) ===== */
.submenu-toggle{
  display:none;
  border:0;
  background:transparent;
  padding:8px 10px;
  margin-left:6px;
  cursor:pointer;
  border-radius:10px;
}
.submenu-toggle svg{ width:18px; height:18px; display:block; transition: transform .18s ease; }
.menu-item-has-children.is-open > .submenu-toggle svg{ transform: rotate(180deg); }

@media (max-width: 1127px){
  /* show arrow toggle only on responsive */
  .nav-links .menu-item-has-children{ display:flex; align-items:center; flex-wrap:wrap; width:100%; }
  .nav-links .menu-item-has-children > a{ flex:1 1 auto; }
  .submenu-toggle{ display:inline-flex; align-items:center; justify-content:center; }

  /* IMPORTANT: don't force all submenus open; only when expanded */
  .nav-open .nav-links .sub-menu{ display:none !important; border:0 !important; padding:6px 0 0 14px !important; margin:6px 0 0 !important; box-shadow:none !important; position:static !important; }
  .nav-links .menu-item-has-children.is-open > .sub-menu{ display:block !important; width:100%; }
}

/* === v19 overrides (mobile menu + footer tweaks) === */

/* Footer: slightly tighter vertical rhythm */
.site-footer { padding: 32px 20px; }
@media (min-width: 744px) { .site-footer { padding: 40px 40px; } }
@media (min-width: 1128px) { .site-footer { padding: 44px 80px; } }

.footer-bottom { margin-top: 18px; padding-top: 14px; }
.footer-copy { margin-top: 10px; }

/* Mobile menu: cleaner spacing + submenu arrow at right (no circle button) */
@media (max-width: 1127px) {
  .nav-open .nav-links { gap: 0; }
  .nav-open .nav-links > li { width: 100%; }
  .nav-open .nav-links a { width: 100%; display: block; padding: 10px 0; }

  .nav-open .nav-links .menu-item-has-children { position: relative; display: flex; flex-wrap: wrap; width: 100%; }
  .nav-open .nav-links .menu-item-has-children > a { flex: 1 1 auto; padding-right: 46px; }

  .nav-open .nav-links .menu-item-has-children > .submenu-toggle {
    position: absolute;
    right: 0;
    top: 2px;
    width: 40px;
    height: 40px;
    border: none !important;
    background: transparent !important;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .nav-open .nav-links .menu-item-has-children > .submenu-toggle:hover { background: #F3F3F3 !important; }
  .nav-open .nav-links .menu-item-has-children > .submenu-toggle svg { width: 18px; height: 18px; }

  /* Submenu appears below, indented to the right */
  .nav-open .nav-links .sub-menu {
    flex-basis: 100%;
    margin: 6px 0 0 !important;
    padding: 6px 0 6px 14px !important;
    border-left: 1px solid #EBEBEB !important;
  }
  .nav-open .nav-links .sub-menu a { padding: 10px 0; }
}

/* === Premium overrides (merged) === */

/* === PREMIUM MINIMAL OVERRIDES (FIX8) ===
   - Services / packs: one consistent premium system
   - Info items (non-service): distinct system
   - Minimal separators (no boxed lists)
   - Subtle hover across all cards
*/

:root{
  --premium-card-radius: 18px;
  --premium-card-border: rgba(0,0,0,.08);
  --premium-divider: rgba(0,0,0,.10);
  --premium-divider-soft: rgba(0,0,0,.07);
  --premium-shadow: 0 14px 30px rgba(0,0,0,.08);
  --premium-shadow-soft: 0 8px 18px rgba(0,0,0,.07);
  --premium-bg-soft: #F7F7F7;
}

/* --- Card baseline (services/packs/holding) --- */
.service-card,
.pack-card,
.holding-section,
.llc-price{
  border: none !important;
  border-radius: var(--premium-card-radius) !important;
  background: #FFFFFF !important;
  box-shadow: var(--premium-shadow-soft) !important;
  transition: transform .18s ease, box-shadow .18s ease !important;
}

.service-card:hover,
.pack-card:hover,
.holding-section:hover,
.llc-price:hover{
  transform: translateY(-3px);
  box-shadow: var(--premium-shadow);
}

/* Keep padding balanced */
.service-card, .pack-card { padding: 22px 22px !important; }
.holding-section { padding: 20px 20px !important; }

/* Headings centered on all service/packs */
.service-title,
.pack-name,
.pack-card h3,
.service-card h3,
.holding-section h2,
.holding-section h3{
  text-align: center !important;
}

/* --- Services: items as clean rows (no boxed list) --- */
.service-items{
  border: none !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin-top: 14px !important;
  text-align: center !important;
  list-style: none !important;
}

.service-item,
.service-items li{
  padding: 10px 0 !important;
  border-bottom: 1px solid var(--premium-divider-soft) !important;
  text-align: center !important;
  list-style: none !important;
}

.service-item:last-child,
.service-items li:last-child{
  border-bottom: none !important;
}

/* --- Services: price block unified (light, not boxed/dark) --- */
.service-price,
.pack-price,
.llc-price{
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

/* Ensure price appears as a clean footer separator */
.service-card .service-price,
.pack-card .service-price,
.service-card .pack-price,
.pack-card .pack-price{
  margin-top: 16px !important;
  padding-top: 14px !important;
  border-top: 1px solid var(--premium-divider) !important;
  text-align: center !important;
}

.service-price .big,
.service-price .price-big,
.pack-price .price,
.price-big .price,
.llc-price .big{
  font-weight: 800 !important;
  letter-spacing: -0.2px;
}

/* Keep price tone premium (not too dark/harsh) */
.service-price .big,
.price-big,
.llc-price .big{
  color: #111111 !important;
}

.tax.muted,
.service-price .sub,
.pack-desc-centered,
.llc-price .muted{
  color: #717171 !important;
}

/* --- Buttons inside cards: never full-bleed --- */
.btn-block{ width: auto !important; }

.service-cta,
.contact-cta-actions,
.llc-price{
  text-align: center !important;
}

.service-cta .btn,
.service-price .btn,
.pack-cta,
.llc-price .btn,
.contact-cta-actions .btn{
  width: auto !important;
  max-width: 280px;
  min-width: 180px;
  justify-content: center;
  display: inline-flex;
}

/* --- Split layouts: keep items dominant, price clean --- */
.service-split{
  gap: 18px !important;
}

/* If a split layout is present, remove any boxed panel that may exist */
.service-split .service-price{
  border: none !important;
  background: transparent !important;
}

/* --- Single service card sections: half-width and centered --- */
.service-wrap--narrow,
.single-pack,
.llc-price{
  margin-left: auto !important;
  margin-right: auto !important;
}

.service-wrap--narrow{ max-width: 740px !important; }
.service-wrap--narrow .service-card{ max-width: 480px !important; margin: 0 auto !important; }

/* Also handle one-card grids without relying on :has() support */
.single-pack .pack-card,
.single-pack .service-card{
  max-width: 480px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Keep service/pack grids comfortably centered (avoid edge-to-edge feel) */
.packs-section .service-wrap,
.packs-section .pack-grid,
.packs-section .packs-grid,
.packs-section .pack-grid-3{
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}

/* Standalone price cards (LLC etc.) */
.llc-price{ max-width: 480px; margin: 0 auto; }

/* --- Info (non-service) system: distinct from service cards --- */
.info-card{
  border: none !important;
  border-radius: var(--premium-card-radius) !important;
  background: #FFFFFF !important;
  box-shadow: var(--premium-shadow-soft) !important;
  padding: 20px 20px !important;
  transition: transform .18s ease, box-shadow .18s ease !important;
}

.info-card:hover{
  transform: translateY(-3px);
  box-shadow: var(--premium-shadow);
}

.info-card h3{ text-align: center !important; }

/* Info lists: bullet style (no row separators) */
.info-card ul{
  list-style: none !important;
  padding: 0 !important;
  margin: 14px 0 0 !important;
}

.info-card li{
  position: relative;
  padding: 6px 0 6px 18px !important;
  border: none !important;
  text-align: left !important;
}

.info-card li::before{
  content: '•';
  position: absolute;
  left: 0;
  top: 6px;
  color: #111111;
}

/* Make info grids feel tighter and more premium */
.info-grid{ gap: 18px !important; }

/* --- Info grid: 2x2 cards (like Home) --- */
.info-grid--cards{
  display: grid !important;
  grid-template-columns: 1fr;
  gap: 18px !important;
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 780px){
  .info-grid--cards{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}




/* --- Footer compactness (keep premium) --- */
.site-footer{ padding-top: 32px !important; padding-bottom: 32px !important; }

/* --- Accessibility: avoid reduced motion issues --- */
@media (prefers-reduced-motion: reduce){
  .service-card, .pack-card, .info-card, .holding-section, .llc-price{
    transition: none !important;
  }
  .service-card:hover, .pack-card:hover, .info-card:hover, .holding-section:hover, .llc-price:hover{
    transform: none !important;
  }
}

/* --- Mobile tweaks --- */
@media (max-width: 720px){
  .service-card, .pack-card{ padding: 18px 16px !important; }
  .service-wrap--narrow .service-card,
  .single-pack .pack-card,
  .single-pack .service-card{ max-width: 100% !important; }
  .service-cta .btn,
  .service-price .btn,
  .pack-cta,
  .llc-price .btn,
  .contact-cta-actions .btn{
    min-width: 160px;
  }
}


/* --- Utility: chip lists for centered informational bullets --- */
.info-chips{
  list-style: none !important;
  padding: 0 !important;
  margin: 14px auto 0 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  justify-content: center !important;
  max-width: 980px;
}

.info-chips li{
  padding: 10px 14px !important;
  border-radius: 999px !important;
  background: var(--premium-bg-soft) !important;
  border: none !important;
  color: #111111 !important;
  text-align: center !important;
}

/* --- Utility: 3-column service grid for Autónomos plans --- */
.service-grid.is-3col{
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}

@media (min-width: 820px){
  .service-grid.is-3col{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1120px){
  .service-grid.is-3col{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* --- Callout block (e.g., ¿Para quién?) --- */
.info-callout{
  text-align: center !important;
}

.info-callout .section-title{
  margin-bottom: 10px !important;
}

/* Ensure primary button never stretches full width */
.btn-primary,
.btn.btn-primary{
  width: auto !important;
  display: inline-flex !important;
  justify-content: center !important;
}


/* --- Holding: 2x2 layout on desktop --- */
.holding-sections{
  display: grid !important;
  grid-template-columns: 1fr;
  gap: 22px;
}
@media (min-width: 980px){
  .holding-sections{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}


/* --- Logo sizing --- */
.logo-img{ height: 64px !important; width: auto !important; }
.footer-logo-img{ height: 76px !important; width: auto !important; }
@media (max-width: 520px){
  .logo-img{ height: 56px !important; }
  .footer-logo-img{ height: 64px !important; }
}


/* --- Narrow containers (single service blocks) --- */
.service-wrap--narrow,
.single-col,
.service-grid.single-col{
  max-width: 480px !important;
}
.holding-section .service-items{
  max-width: 480px !important;
}

/* =============================
   PATCH v10 (premium/minimal)
   - Force service rows (no boxed lists) even when pages ship inline overrides
   - Unify price blocks (lighter, compact)
   - Remove "boxed" look from Holding 2x2 tiles
   ============================= */

/* Stronger override for inline rules that target .service-body/.service-split */
.service-card .service-items,
.service-card .service-body .service-items,
.service-card .service-split .service-items,
.service-card .service-split.is-stacked .service-items,
.pack-card .service-items,
.holding-section .service-items{
  border: none !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}

.service-card .service-item,
.service-card .service-items li,
.pack-card .service-item,
.pack-card .service-items li,
.holding-section .service-item,
.holding-section .service-items li{
  background: transparent !important;
  border-left: none !important;
  border-right: none !important;
  border-top: none !important;
  border-bottom: 1px solid var(--premium-divider-soft) !important;
  text-align: center !important;
}

/* Compact, consistent price area across ALL pages */
.service-card .service-price,
.pack-card .service-price,
.service-card .pack-price,
.pack-card .pack-price,
.service-card .service-split .service-price,
.service-card .service-split.is-stacked .service-price{
  border: none !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}

/* Keep the price visually "anchored" without looking like a dark box */
.service-card .service-price,
.pack-card .pack-price{
  margin-top: 16px !important;
  padding-top: 12px !important;
  border-top: 1px solid var(--premium-divider) !important;
}

/* Buttons inside price panels should never go full-width */
.service-price .btn-block,
.pack-price .btn-block,
.llc-price .btn-block,
.contact-cta .btn-block{
  width: auto !important;
  max-width: 280px !important;
}

/* Lighter tone for price typography / containers */
.service-price .price-big,
.service-price .big,
.pack-price .price,
.llc-price{
  color: #111111 !important;
}

/* Narrow single "service" blocks that appear after headings (common pattern) */
.service-card[style*="max-width:480px"],
.service-card[style*="max-width:520px"],
.llc-price[style*="max-width:480px"],
.llc-price[style*="max-width:520px"]{
  max-width: 420px !important;
}

/* Holding: remove the boxed tile look (keep grid, add subtle separators) */
.holding-sections .holding-section{
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  border: none !important;
  padding: 0 6px 18px !important;
  border-bottom: 1px solid var(--premium-divider) !important;
}

.holding-sections .holding-section:hover{
  transform: none !important;
  box-shadow: none !important;
}

/* Don't draw a bottom rule on the last tile when stacked (mobile) */
.holding-sections .holding-section:last-child{
  border-bottom: none !important;
}

/* PATCH v10b: Holding lists are informational (use bullets, not row separators) */
.holding-sections .service-item,
.holding-sections .service-items li{
  border-bottom: none !important;
  text-align: left !important;
  padding: 6px 0 6px 18px !important;
  position: relative;
}
.holding-sections .service-item::before,
.holding-sections .service-items li::before{
  content: '•';
  position: absolute;
  left: 0;
  top: 6px;
  color: #111111;
}

/* =============================
   PATCH v11 (premium/minimal)
   - LLC Florida: include cards like Home "Problemas" (simple white cards + hover)
   - Price panel: remove boxed look, keep subtle dynamics
   - Autónomos Otros Servicios: 2 cards on first row, 3 on second (desktop)
   ============================= */

/* LLC includes grid: keep centered width */
.llc-includes-grid{
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}

.llc-include-card{ text-align: left; }
.llc-include-card h3{ text-align: center; }

.llc-include-list{
  list-style: none !important;
  padding: 0 !important;
  margin: 14px 0 0 !important;
}

.llc-include-list li{
  position: relative;
  padding: 6px 0 6px 18px !important;
  margin: 0 !important;
}

.llc-include-list li::before{
  content: '•';
  position: absolute;
  left: 0;
  top: 6px;
  color: #111111;
}

/* Price panel (LLC, etc.): clean + premium without a "boxed" feel */
.price-panel{
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  max-width: 520px;
  margin: 0 auto;
  text-align: center;
  transition: transform .18s ease;
}

.price-panel::before{
  content: '';
  display: block;
  height: 1px;
  width: 100%;
  background: var(--premium-divider);
  margin: 0 auto 14px;
}

.price-panel:hover{
  transform: translateY(-2px);
}

/* Make sure LLC price doesn't inherit card boxing from earlier overrides */
.llc-price.price-panel{
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

/* Centered note below chip blocks */
.centered-note{
  max-width: 980px;
  margin: 14px auto 0;
  text-align: center;
  color: #111111;
  font-weight: 600;
}

/* Autónomos Otros Servicios: 2 items row1 + 3 items row2 on wide screens */
@media (min-width: 1120px){
  .service-grid.is-2-3{
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 18px;
  }
  .service-grid.is-2-3 > *:nth-child(1),
  .service-grid.is-2-3 > *:nth-child(2){
    grid-column: span 3;
  }
  .service-grid.is-2-3 > *:nth-child(n+3){
    grid-column: span 2;
  }
}


/* === FIX12 (2026-01-20) Premium separation + stronger hover === */
body .service-card,
body .pack-card,
body .card,
body .holding-section,
body .llc-price,
body .info-card{
  border: 1px solid rgba(0,0,0,.10) !important;
  border-radius: var(--premium-card-radius) !important;
  background: #FFFFFF !important;
  box-shadow: 0 6px 14px rgba(0,0,0,.06) !important;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}

body .service-card:hover,
body .pack-card:hover,
body .card:hover,
body .holding-section:hover,
body .llc-price:hover,
body .info-card:hover{
  transform: translateY(-4px) !important;
  box-shadow: 0 18px 42px rgba(0,0,0,.14) !important;
  border-color: rgba(0,0,0,.18) !important;
}

/* More breathing room between dense card grids */
body .packs-grid, body .pack-grid, body .grid-2, body .grid-3{ gap: 22px !important; }

/* LLC includes cards: keep them super clean like Home */
body .llc-include-card p{ margin: 0 !important; }

/* Price panels: avoid squared feel */
body .price-panel{ padding: 22px 22px !important; }

/* Single-card grids: keep them narrower & centered (works without :has) */
body .single-pack{ justify-items: center !important; }
body .single-pack > .service-card, body .single-pack > .card, body .single-pack > .pack-card{ max-width: 560px !important; width: 100% !important; }


/* Dual price options (Declaración de la Renta) */
body .dual-price{ display:grid; grid-template-columns:1fr; gap:14px; margin-top: 14px; }
@media (min-width: 820px){ body .dual-price{ grid-template-columns:1fr 1fr; } }
body .price-option{ border: 1px solid rgba(0,0,0,.10); border-radius: 14px; padding: 14px 14px; text-align: center; box-shadow: 0 4px 12px rgba(0,0,0,.05); }
body .price-option:hover{ box-shadow: 0 12px 28px rgba(0,0,0,.12); transform: translateY(-2px); }
body .price-label{ font-weight: 700; margin-bottom: 6px; }
body .price-amount{ font-size: 28px; font-weight: 800; margin-bottom: 10px; }

/* === WordPress bridge overrides (merged) === */

/* ASESOLAB WP OVERRIDES (v6)
   These rules are scoped to the HTML-template pages.
*/

/* Always keep the site light (prevents plugin/theme collisions) */
body.asx-html-page,
body.asx-html-page .site-main,
body.asx-html-page .main-content,
body.asx-html-page .page-hero,
body.asx-html-page .hero,
body.asx-html-page .page-content,
body.asx-html-page .packs-section,
body.asx-html-page .contact-cta,
body.asx-html-page section{
  background: #FFFFFF !important;
}

/* --- Header height: enough room for 160px logo (tighter to reduce the gap) --- */
:root{ --header-h: 175px; }
@media (max-width: 743px){ :root{ --header-h: 155px; } }
@media (max-width: 420px){ :root{ --header-h: 140px; } }

body.asx-html-page{ padding-top: var(--header-h) !important; }
body.asx-html-page .site-header{ height: var(--header-h) !important; }
body.asx-html-page .nav-links-wrap{ top: var(--header-h) !important; }

/* Reduce the gap between header and titles (user request: ~50%) */
body.asx-html-page .page-hero,
body.asx-html-page .hero{
  padding-top: 12px !important;
}

/* Home had a slightly larger gap - tighten it a bit more */
body.asx-html-page.asx-slug-index .page-hero,
body.asx-html-page.asx-slug-index .hero{
  padding-top: 6px !important;
}

/* Ensure titles stay dark (prevents "washed out" headings) */
body.asx-html-page .page-hero h1,
body.asx-html-page .page-hero h2,
body.asx-html-page .hero h1,
body.asx-html-page .hero h2{
  color: #000000 !important;
  opacity: 1 !important;
}

/* --- LOGOS --- */
/* Header logo: 160px */
body.asx-html-page .site-header img.brand-logo,
body.asx-html-page .site-header .brand-logo img,
body.asx-html-page .site-header .custom-logo,
body.asx-html-page .site-header .custom-logo-link img,
body.asx-html-page .site-header .site-brand img{
  height: 160px !important;
  max-height: 160px !important;
  width: auto !important;
  object-fit: contain !important;
}

/* Footer logo: 200px */
body.asx-html-page .site-footer img.footer-logo-img,
body.asx-html-page .site-footer img.brand-logo,
body.asx-html-page .site-footer .brand-logo img,
body.asx-html-page .site-footer .custom-logo,
body.asx-html-page .site-footer .custom-logo-link img,
body.asx-html-page .site-footer .footer-logo img,
body.asx-html-page .site-footer .footer-logo-img,
body.asx-html-page .site-footer .footer-logo{
  height: 200px !important;
  max-height: 200px !important;
  width: auto !important;
  object-fit: contain !important;
}

/* Responsive scaling so nav doesn't break */
@media (max-width: 743px){
  body.asx-html-page .site-header img.brand-logo,
  body.asx-html-page .site-header .brand-logo img,
  body.asx-html-page .site-header .custom-logo,
  body.asx-html-page .site-header .custom-logo-link img,
  body.asx-html-page .site-header .site-brand img{ height: 120px !important; max-height: 120px !important; }

  body.asx-html-page .site-footer img.footer-logo-img,
  body.asx-html-page .site-footer img.brand-logo,
  body.asx-html-page .site-footer .brand-logo img,
  body.asx-html-page .site-footer .custom-logo,
  body.asx-html-page .site-footer .custom-logo-link img,
  body.asx-html-page .site-footer .footer-logo img{ height: 160px !important; max-height: 160px !important; }
}

/* --- Footer contact: phones in one line, flush right --- */
@media (min-width: 1128px){
  body.asx-html-page .footer-contact-grid{
    flex-wrap: nowrap !important;
    justify-content: flex-end !important;
    gap: 10px !important;
    align-items: center !important;
  }
  body.asx-html-page .footer-contact-block{
    min-width: auto !important;
    white-space: nowrap !important;
  }
}

/* Keep email aligned under phones (desktop) */
@media (min-width: 1128px){
  body.asx-html-page .footer-contact-email{ margin-top: 10px !important; }
}

/* --- Tabs / toggle buttons (prevent invisible text from plugin collisions) --- */
body.asx-html-page .toggle-btn,
body.asx-html-page .pill,
body.asx-html-page .chip{
  color: #0b0f1a !important;
}
body.asx-html-page .toggle-btn.is-active{
  background: #0b0f1a !important;
  color: #FFFFFF !important;
}

/* Make sure external template assets always render */
body.asx-html-page img{ max-width: 100%; height: auto; }

/* --- v5 tuning requested by user --- */

/* Reduce perceived gap between fixed header and hero titles across ALL pages */
body.asx-html-page .page-hero,
body.asx-html-page .hero{
  padding-top: 12px !important;
  padding-bottom: 18px !important;
  margin-top: 0 !important;
}

/* Home & inner-section headings must be pure black */
body.asx-html-page .featured h2,
body.asx-html-page .cta-section h2,
body.asx-html-page section h2,
body.asx-html-page section h3{
  color: #000000 !important;
  opacity: 1 !important;
}

/* Footer contact row: Área Comercial left, other 2 phones aligned right; controlled spacing */
body.asx-html-page .footer-contact-grid{
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  width: 100% !important;
  gap: 16px !important;
}
body.asx-html-page .footer-contact-grid .footer-contact-block{
  white-space: nowrap !important;
}
body.asx-html-page .footer-contact-grid .footer-contact-block:first-child{
  margin-right: auto !important;
  text-align: left !important;
}

/* Mobile: allow wrapping without huge gaps */
@media (max-width: 860px){
  body.asx-html-page .footer-contact-grid{
    flex-wrap: wrap !important;
    gap: 10px !important;
  }
  body.asx-html-page .footer-contact-grid .footer-contact-block:first-child{
    flex-basis: 100% !important;
    margin-right: 0 !important;
  }
}

/* Make billing/plan buttons show selection clearly (Mensual/Anual, etc.) */
body.asx-html-page .btn.btn-outline.is-active,
body.asx-html-page .btn.btn-outline[aria-selected="true"]{
  background: #0b0f1a !important;
  border-color: #0b0f1a !important;
  color: #FFFFFF !important;
}
body.asx-html-page .btn.btn-outline{
  cursor: pointer;
}

/* --- v6 fixes (Jan 2026) --- */

/* IMPORTANT: templates already add body padding-top; some also add .main-content padding-top.
   That caused DOUBLE space under header on some pages (Home, Legal pages, etc).
   We neutralize inner padding so the gap becomes correct everywhere. */
body.asx-html-page .main-content,
body.asx-html-page main.site-main,
body.asx-html-page .site-main{
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* Fine-tune hero top spacing (keep closer to header, without overlap) */
body.asx-html-page .page-hero,
body.asx-html-page .hero,
body.asx-html-page .hero-centered{
  padding-top: 6px !important;
}

/* Ensure ALL section headings remain true black (Home + Otros servicios) */
body.asx-html-page .main-content h1,
body.asx-html-page .main-content h2,
body.asx-html-page .main-content h3{
  color: #000000 !important;
  opacity: 1 !important;
}

/* Footer: structure as 3 stacked blocks
   1) CONTACTO + Información de contacto (one under the other)
   2) 3 phones (same line on desktop)
   3) Email pushed down to align with the bottom of the social icons column
*/
body.asx-html-page .footer-two-cols{ align-items: stretch !important; }
body.asx-html-page .footer-contact-col{
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}
body.asx-html-page .footer-contact-col .footer-heading{
  margin: 0 0 6px 0 !important;
  padding: 0 !important;
}
body.asx-html-page .footer-contact-col .footer-contact-line{
  margin: 0 !important;
  padding: 0 !important;
}

/* Footer phones: distribute 3 blocks evenly, keep Madrid perfectly centered */
@media (min-width: 1128px){
  body.asx-html-page .footer-contact-grid{
    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr !important;
    column-gap: 22px !important;
    row-gap: 0 !important;
    align-items: start !important;
    width: 100% !important;
    margin-top: 14px !important;
  }
  body.asx-html-page .footer-contact-grid .footer-contact-block{
    white-space: nowrap !important;
  }
  body.asx-html-page .footer-contact-grid .footer-contact-block:nth-child(1){
    justify-self: start !important;
    text-align: left !important;
  }
  body.asx-html-page .footer-contact-grid .footer-contact-block:nth-child(2){
    justify-self: center !important;
    text-align: center !important;
  }
  body.asx-html-page .footer-contact-grid .footer-contact-block:nth-child(3){
    justify-self: end !important;
    text-align: right !important;
  }

  /* Push the email down to align with the bottom edge of the social icons column */
  body.asx-html-page .footer-contact-email{
    margin-top: auto !important;
    padding-top: 14px !important;
  }
}

/* Mobile/tablet: allow wrap, keep good spacing */
@media (max-width: 1127px){
  body.asx-html-page .footer-contact-grid{
    flex-wrap: wrap !important;
    gap: 10px !important;
  }
  body.asx-html-page .footer-contact-grid .footer-contact-block{
    flex: 1 1 220px !important;
    text-align: left !important;
    padding: 0 !important;
    white-space: normal !important;
  }
}

/* Footer contact blocks spacing on mobile/tablet */
@media (max-width: 1127px){
  body.asx-html-page .footer-contact-email{ margin-top: 14px !important; }
}

/* Ensure footer logo sizes requested (header 160px handled in templates, footer 200px here too) */
body.asx-html-page .footer-logo-img{ height: 200px !important; width: auto !important; }

/* --- Responsive footer: stop logo/tagline overlap ---
   On small screens we want a clean 2-column layout:
   - Logo left (about 1/4)
   - Tagline + social icons right
   Icons must be in-line (not vertical).
   Also make the footer logo ~15% smaller than the mobile default.
*/
@media (max-width: 860px){
  /* Slightly smaller footer logo on responsive (~15% less than 160px) */
  body.asx-html-page .site-footer img.footer-logo-img{ height: 136px !important; max-height: 136px !important; }

  /* Build two columns inside the left footer column */
  body.asx-html-page .footer-social-col{
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 3fr) !important;
    grid-template-areas:
      "logo tagline"
      "logo social";
    column-gap: 14px !important;
    align-items: start !important;
  }
  body.asx-html-page .footer-social-col .footer-logo{ grid-area: logo !important; align-self: start !important; }
  body.asx-html-page .footer-social-col .footer-tagline{ grid-area: tagline !important; margin: 6px 0 8px 0 !important; }
  body.asx-html-page .footer-social-col .footer-social{ grid-area: social !important; margin-top: 0 !important; }

  /* Make the tagline a bit narrower/cleaner */
  body.asx-html-page .footer-tagline{ font-size: 12px !important; line-height: 1.25 !important; }

  /* Social icons: always one row */
  body.asx-html-page .footer-social{
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 12px !important;
    align-items: center !important;
  }
}

/* --- NAV: make dropdowns usable and hamburger look premium --- */
body.asx-html-page .site-header{ z-index: 9999 !important; }
body.asx-html-page .nav-links-wrap{ overflow: visible !important; }
body.asx-html-page .sub-menu{ z-index: 9999 !important; }

/* Mobile submenu behavior (v20): arrow toggles + flyout panel to the right */
@media (max-width: 1127px){
  /* Clean list look */
  body.asx-html-page .nav-links,
  body.asx-html-page .nav-links li{ list-style: none !important; }

  /* Parent rows: text left, arrow right */
  body.asx-html-page .nav-open .nav-links > li.menu-item-has-children{
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    position: relative !important;
  }
  body.asx-html-page .nav-open .nav-links > li.menu-item-has-children > a{
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }

  /* Arrow button: NO círculo, just a chevron */
  body.asx-html-page .submenu-toggle{
    margin-left: 10px !important;
    width: 28px !important;
    height: 28px !important;
    border: 0 !important;
    background: transparent !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #0b0f1a !important;
    opacity: .9 !important;
    cursor: pointer !important;
  }
  body.asx-html-page .submenu-toggle svg{ width: 18px !important; height: 18px !important; }
  body.asx-html-page .menu-item-has-children.is-open > .submenu-toggle svg{ transform: rotate(180deg) !important; }

  /* Flyout panel */
  body.asx-html-page .nav-links-wrap{ overflow: visible !important; }
  body.asx-html-page .nav-open .nav-links{ position: relative !important; }

  body.asx-html-page .menu-item-has-children > .sub-menu{
    display: none !important;
    position: absolute !important;
    top: -6px !important;
    left: calc(100% - 6px) !important;
    width: 240px !important;
    max-width: 72vw !important;
    margin: 0 !important;
    padding: 10px 12px !important;
    border: 1px solid rgba(0,0,0,.10) !important;
    border-radius: 12px !important;
    background: rgba(255,255,255,.98) !important;
    box-shadow: 0 18px 40px rgba(0,0,0,.12) !important;
    z-index: 10000 !important;
  }
  body.asx-html-page .menu-item-has-children.is-open > .sub-menu{ display: block !important; }

  /* Submenu links spacing */
  body.asx-html-page .nav-open .nav-links .sub-menu a{
    display: block !important;
    padding: 10px 8px !important;
    font-weight: 600 !important;
  }

  /* Make main items spacing consistent (cleaner look) */
  body.asx-html-page .nav-open .nav-links{
    gap: 14px !important;
  }
}
}

/* Nicer hamburger (no ugly square) */
body.asx-html-page .nav-toggle{
  width: 46px !important;
  height: 46px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(0,0,0,.10) !important;
  background: rgba(255,255,255,.92) !important;
  backdrop-filter: blur(6px);
  box-shadow: 0 10px 22px rgba(0,0,0,.08) !important;
}
body.asx-html-page .nav-toggle .nav-toggle-label{ display:none !important; }
body.asx-html-page .nav-toggle-icon,
body.asx-html-page .nav-toggle-icon::before,
body.asx-html-page .nav-toggle-icon::after{
  background: #0b0f1a !important;
}

/* --- Legal pages lists: centered container but left-aligned bullets --- */
body.asx-html-page.asx-slug-politica-de-cookies ul,
body.asx-html-page.asx-slug-politica-de-privacidad ul{
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 22px;
  text-align: left;
}
body.asx-html-page.asx-slug-politica-de-cookies li,
body.asx-html-page.asx-slug-politica-de-privacidad li{
  margin: 10px 0;
  padding-left: 4px;
}
body.asx-html-page.asx-slug-politica-de-cookies li::marker,
body.asx-html-page.asx-slug-politica-de-privacidad li::marker{
  font-size: .9em;
}

/* Titles must stay black also on responsive */
body.asx-html-page .main-content h1,
body.asx-html-page .main-content h2,
body.asx-html-page .main-content h3,
body.asx-html-page .main-content .section-title,
body.asx-html-page .main-content .hero h1{
  color: #000000 !important;
  opacity: 1 !important;
}

/* Center a single specialty card when a grid has only one item (better UX) */
body.asx-html-page .grid-3 > :only-child,
body.asx-html-page .grid-2 > :only-child,
body.asx-html-page .comparison-grid > :only-child,
body.asx-html-page .cards-grid > :only-child{
  justify-self: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Single-pack sections: force true centering + comfortable max width */
body.asx-html-page .single-pack.grid-2,
body.asx-html-page .grid-2.single-pack{
  grid-template-columns: minmax(0, 1fr) !important;
  justify-items: center !important;
}
body.asx-html-page .single-pack .service-card,
body.asx-html-page .single-pack .card{
  width: 100% !important;
  max-width: 820px !important;
}

/* Declaración de la renta: docs list without outer box + in 2 columns (only where class is added) */
body.asx-html-page .info-card--docs{
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  max-width: 980px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
body.asx-html-page .info-card--docs .info-chips{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px 14px !important;
  padding: 0 !important;
  margin: 14px 0 0 !important;
  list-style: none !important;
  padding-left: 0 !important;
}
body.asx-html-page .info-card--docs .info-chips li{
  background: #FFFFFF !important;
  border: 1px solid rgba(0,0,0,.08) !important;
  border-radius: 16px !important;
  box-shadow: 0 8px 18px rgba(0,0,0,.06) !important;
  padding: 12px 14px !important;
  line-height: 1.25 !important;
  min-height: 54px !important; /* keeps height consistent (2 lines max in most cases) */
  list-style: none !important;
  transition: transform .18s ease, box-shadow .18s ease !important;
}
body.asx-html-page .info-card--docs .info-chips li::marker{ content: '' !important; }
body.asx-html-page .info-card--docs .info-chips li:hover{
  transform: translateY(-3px) !important;
  box-shadow: 0 14px 30px rgba(0,0,0,.08) !important;
}
@media (max-width: 860px){
  body.asx-html-page .info-card--docs .info-chips{ grid-template-columns: 1fr !important; }
}

/* Declaración de la renta (y secciones tipo "ámbitos"): no bullets, centered items, subtle underline only */
body.asx-html-page .holding-sections .service-items,
body.asx-html-page .holding-sections .service-items li{
  list-style: none !important;
  padding-left: 0 !important;
}
body.asx-html-page .holding-sections .service-item,
body.asx-html-page .holding-sections .service-items li{
  border-bottom: 1px solid rgba(0,0,0,.07) !important;
  text-align: center !important;
  padding: 10px 0 !important;
}
body.asx-html-page .holding-sections .service-item:last-child,
body.asx-html-page .holding-sections .service-items li:last-child{
  border-bottom: none !important;
}
body.asx-html-page .holding-sections .service-item::before,
body.asx-html-page .holding-sections .service-items li::before{
  content: none !important;
}

/* LLC Florida: price panel should look like premium card and center the CTA */
body.asx-html-page .llc-price--panel{
  border-radius: 18px !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.08) !important;
}
body.asx-html-page .llc-price--panel .btn{
  display: inline-flex !important;
  margin: 14px auto 0 !important;
}
body.asx-html-page .llc-price--panel{
  text-align: center !important;
}
body.asx-html-page .llc-price--panel .section-title{
  margin-bottom: 10px !important;
}

/* --- v10 tuning (footer compact on responsive + keep visual parity) --- */
@media (max-width: 860px){
  /* Make the footer shorter on mobile/tablet while keeping the same style */
  body.asx-html-page .site-footer{
    padding-top: 34px !important;
    padding-bottom: 26px !important;
  }
  body.asx-html-page .footer-inner{ padding: 0 !important; }

  /* Tighten vertical rhythm in the left block (logo + tagline + icons) */
  body.asx-html-page .footer-top{ gap: 16px !important; }
  body.asx-html-page .footer-social-col{ row-gap: 6px !important; }
  body.asx-html-page .footer-social-col .footer-tagline{
    margin: 2px 0 6px 0 !important;
  }
  body.asx-html-page .footer-social-col .footer-social{
    margin: 0 !important;
    gap: 12px !important;
  }

  /* Keep colors/shadows consistent with desktop (avoid "dark blocks" on mobile) */
  body.asx-html-page,
  body.asx-html-page .main-content,
  body.asx-html-page .site-main,
  body.asx-html-page section{
    background: #FFFFFF !important;
    color: #0b0f1a !important;
  }
  body.asx-html-page a{ color: inherit; }
  body.asx-html-page .card,
  body.asx-html-page .service-card,
  body.asx-html-page .pricing-card,
  body.asx-html-page .plan-card,
  body.asx-html-page .feature-card{
    background: #FFFFFF !important;
  }
}

/* Footer: ensure the left block doesn't reserve extra height */
@media (max-width: 860px){
  body.asx-html-page .footer-social-col{
    align-items: start !important;
  }
  body.asx-html-page .footer-social-col .footer-logo{ margin: 0 !important; }
}


/* ============================
   Asesolab theme fixes (v11)
   - Responsive menu: parent taps open submenu
   - Footer: 2x2 contact grid + compact spacing
   ============================ */

body.asx-html-page .nav-links > li.menu-item-has-children > a{
  display:flex;
  align-items:center;
  gap:10px;
}
body.asx-html-page .nav-links > li.menu-item-has-children > a .submenu-toggle{
  margin-left:auto;
}

body.asx-html-page .nav-links-wrap .sub-menu{
  /* allow JS toggles on mobile */
  display:none;
}
body.asx-html-page .nav-links li.menu-item-has-children.is-open > .sub-menu{
  display:block;
}
@media (hover:hover) and (pointer:fine){
  body.asx-html-page .nav-links li.menu-item-has-children:hover > .sub-menu{
    display:block;
  }
}

body.asx-html-page .site-footer{
  padding-top:34px !important;
  padding-bottom:22px !important;
}
body.asx-html-page .footer-top{
  gap:18px !important;
}
body.asx-html-page .footer-tagline{
  margin-top:6px !important;
}
body.asx-html-page .footer-social{
  margin-top:10px !important;
}
body.asx-html-page .footer-contact-grid--4{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:12px 18px !important;
  margin-top:10px !important;
}
@media (max-width: 860px){
  body.asx-html-page .footer-contact-grid--4{
    grid-template-columns:1fr !important;
  }
}
body.asx-html-page .footer-contact-block--main span{
  display:block;
  margin-top:6px;
  opacity:0.9;
}
body.asx-html-page .footer-contact-line{
  margin:10px 0 0 0 !important;
  padding:0 !important;
}
body.asx-html-page .footer-contact-line.footer-contact-email{
  margin-top:14px !important;
}

body.asx-html-page .footer-two-cols{
  gap:22px !important;
}

/* Servicios: igualar alturas de cards en grids */
body.asx-html-page .service-grid .service-card{
  display:flex;
  flex-direction:column;
}
body.asx-html-page .service-grid .service-body{
  flex:1 1 auto;
}
body.asx-html-page .service-grid .service-cta{
  margin-top:auto;
}

/* Declaración de la renta: recuadros más ordenados */
body.asx-html-page .dual-price{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:16px;
}
@media (max-width: 860px){
  body.asx-html-page .dual-price{
    grid-template-columns:1fr;
  }
}
body.asx-html-page .dual-price .price-option{
  height:100%;
}

/* Abogados: cards uniformes */
body.asx-html-page .abogado-sections .abogado-card{
  background:#ffffff;
  border:1px solid rgba(0,0,0,0.08);
  border-radius:18px;
  padding:22px 22px;
  box-shadow:0 12px 28px rgba(0,0,0,0.06);
  margin-bottom:18px;
}
body.asx-html-page .abogado-sections .abogado-card .section-title{
  margin:0 0 10px 0;
}
body.asx-html-page .abogado-sections .abogado-cta{
  margin-top:14px;
}

/* v11 - mobile: keep submenus collapsed unless opened */
body.asx-html-page .nav-open .nav-links .sub-menu{
  display:none !important;
}
body.asx-html-page .nav-open .nav-links li.menu-item-has-children.is-open > .sub-menu{
  display:block !important;
}


/* ==============================
   Fix Pack v11 - Requested tweaks
   ============================== */

/* 1) Header CTA: in mobile it must NOT appear as a black block; keep label visible */
@media (max-width: 1127px){
  body.asx-html-page .cta-header{
    background: rgba(255,255,255,.96) !important;
    color: #0b0f1a !important;
    border: 1px solid rgba(0,0,0,.12) !important;
    box-shadow: 0 10px 22px rgba(0,0,0,.08) !important;
  }
  body.asx-html-page .cta-header:hover{
    background: rgba(255,255,255,.96) !important;
    color: #0b0f1a !important;
  }
}

/* 2) Footer: cleaner, compact, and aligned */
body.asx-html-page .site-footer .footer-top{
  padding-bottom: 10px !important;
}
body.asx-html-page .site-footer .footer-two-cols{
  gap: 18px !important;
}
body.asx-html-page .site-footer .footer-tagline{
  margin-left: 15px !important;   /* +15 right */
  margin-top: 6px !important;     /* subtle down */
}
body.asx-html-page .site-footer .footer-social{
  margin-left: 15px !important;   /* +15 right */
  margin-top: -15px !important;   /* +15 up */
  gap: 10px !important;           /* icons closer */
}
body.asx-html-page .site-footer .footer-social .social-link{
  width: 38px !important;
  height: 38px !important;
}
body.asx-html-page .site-footer .footer-contact-col{
  margin-top: 0 !important;
}
body.asx-html-page .site-footer .footer-contact-grid{
  gap: 10px 14px !important;
}

/* Reduce extra whitespace between social block and contact block */
body.asx-html-page .site-footer .footer-top.footer-two-cols{
  align-items: flex-start !important;
}

/* 3) Services list boxes: remove the inner box that wraps items; keep only row separators */
body.asx-html-page .service-items{
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
}
body.asx-html-page .service-items .service-item,
body.asx-html-page .service-items li{
  padding: 10px 0 !important;
  border-bottom: 1px solid rgba(15,23,42,0.08) !important;
}
body.asx-html-page .service-items .service-item:last-child,
body.asx-html-page .service-items li:last-child{
  border-bottom: none !important;
}
body.asx-html-page .service-items ul{
  margin: 0 !important;
  padding-left: 18px !important;
}
body.asx-html-page .service-items li{
  padding-left: 4px !important; /* prevents bullet overlapping first letter */
}

/* 4) Equal-height cards in grids (Otros servicios / Servicios legales empresas / etc.) */
body.asx-html-page .service-grid,
body.asx-html-page .service-wrap.service-grid,
body.asx-html-page .pack-grid{
  align-items: stretch !important;
}
body.asx-html-page .service-card,
body.asx-html-page .pack-card,
body.asx-html-page .info-card{
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}
body.asx-html-page .service-card .service-body,
body.asx-html-page .pack-card .pack-body,
body.asx-html-page .info-card{
  flex: 1 1 auto !important;
}

/* 5) Title colors consistency across templates */
body.asx-html-page .section-title,
body.asx-html-page .service-title,
body.asx-html-page .card-title,
body.asx-html-page .pack-title,
body.asx-html-page .page-hero h1,
body.asx-html-page .card h3,
body.asx-html-page .info-card h3{
  color: #000000 !important;
}

/* Center single pack card (Servicios legales autónomos) */
body.asx-html-page .pack-grid.one-col{
  grid-template-columns: minmax(0, 520px) !important;
  justify-content: center !important;
}

/* 6) Footer legal links: keep same colors/backgrounds in responsive */
body.asx-html-page .site-footer .footer-legal,
body.asx-html-page .site-footer .footer-links-only{
  padding-left: 15px !important; /* shift right a bit */
  padding-right: 15px !important;
}
body.asx-html-page .site-footer .footer-legal a{
  color: #6b7280 !important;
  background: transparent !important;
  border: 0 !important;
}
body.asx-html-page .site-footer .footer-legal a:hover{
  color: #0b0f1a !important;
  background: transparent !important;
}

/* 7) Desktop footer layout: 5 columns (logo | slogan+icons | 3 contact columns) */
@media (min-width: 1128px){
  body.asx-html-page .site-footer .footer-two-cols{
    display: grid !important;
    grid-template-columns: 220px minmax(220px, 1.1fr) repeat(3, minmax(180px, 1fr)) !important;
    gap: 18px 26px !important;
    align-items: start !important;
  }
  /* Flatten wrappers so inner blocks can be placed directly on the grid */
  body.asx-html-page .site-footer .footer-social-col,
  body.asx-html-page .site-footer .footer-contact-col,
  body.asx-html-page .site-footer .footer-contact-grid{
    display: contents !important;
  }
  body.asx-html-page .site-footer .footer-logo{
    grid-column: 1;
    grid-row: 1 / span 3;
    align-self: center;
    justify-self: start;
  }
  body.asx-html-page .site-footer .footer-tagline{
    grid-column: 2;
    grid-row: 1;
    margin-left: 15px !important;
  }
  body.asx-html-page .site-footer .footer-social{
    grid-column: 2;
    grid-row: 2;
    margin-left: 15px !important;
    margin-top: 6px !important;
    justify-content: flex-start;
    gap: 12px !important;
  }
  body.asx-html-page .site-footer .footer-contact-intro{
    grid-column: 3 / 6;
    grid-row: 1;
    text-align: center;
    margin: 0 !important;
  }
  body.asx-html-page .site-footer .footer-contact-block:nth-of-type(1){
    grid-column: 3;
    grid-row: 2;
  }
  body.asx-html-page .site-footer .footer-contact-block:nth-of-type(2){
    grid-column: 4;
    grid-row: 2;
  }
  body.asx-html-page .site-footer .footer-contact-block:nth-of-type(3){
    grid-column: 5;
    grid-row: 2;
  }
  body.asx-html-page .site-footer .footer-contact-email{
    grid-column: 3 / 6;
    grid-row: 3;
    text-align: center;
    margin-top: 10px !important;
  }
}

/* 8) Mobile footer: logo 30% / text+icons 70%, and compact spacing */
@media (max-width: 860px){
  body.asx-html-page .site-footer .footer-two-cols{
    display: grid !important;
    grid-template-columns: 30% 70% !important;
    gap: 12px !important;
    align-items: center !important;
  }
  body.asx-html-page .site-footer .footer-logo{
    justify-self: center !important;
  }
  body.asx-html-page .site-footer .footer-tagline{
    margin-top: 11px !important; /* +5px down */
  }
  body.asx-html-page .site-footer .footer-social{
    margin-top: -10px !important; /* +10px up */
    justify-content: center !important;
  }
}

/* 9) Keep 3 cards on one row earlier on desktop for "Packs autónomos" */
@media (min-width: 980px){
  body.asx-html-page .service-grid.is-3col{
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* 10) Hardening: keep component look consistent between desktop and mobile */
body.asx-html-page{ background: #fff !important; }
body.asx-html-page h1,
body.asx-html-page h2,
body.asx-html-page h3,
body.asx-html-page .section-title,
body.asx-html-page .page-hero h1,
body.asx-html-page .page-hero h2{
  background: transparent !important;
}

/* Footer bottom links: prevent any dark backgrounds in responsive + add 15px right shift */
body.asx-html-page .footer-bottom.footer-links-only{
  background: transparent !important;
  padding-left: 15px !important;
  padding-right: 15px !important;
}
body.asx-html-page .footer-bottom.footer-links-only .footer-legal a{
  background: transparent !important;
}

/* Make cards in the same row always align (Legal empresas, Pack autónomos, Otros servicios, etc.) */
body.asx-html-page .service-grid,
body.asx-html-page .pack-grid,
body.asx-html-page .grid-2,
body.asx-html-page .grid-3{
  align-items: stretch !important;
}
body.asx-html-page .service-grid > *,
body.asx-html-page .pack-grid > *,
body.asx-html-page .grid-2 > *,
body.asx-html-page .grid-3 > *{
  height: 100% !important;
}
body.asx-html-page .service-card,
body.asx-html-page .pack-card,
body.asx-html-page .card{
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}
body.asx-html-page .service-body,
body.asx-html-page .pack-body,
body.asx-html-page .card-content{
  flex: 1 1 auto !important;
}

/* Clean service items: no boxed wrapper + no bullet overlap */
body.asx-html-page .service-items{
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
}
body.asx-html-page .service-items ul,
body.asx-html-page .service-items ol{
  list-style: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}
body.asx-html-page .service-items li::marker{ content: "" !important; }
body.asx-html-page .service-items .service-item::before{
  content: none !important;
}

/* Autoservicios (Servicios legales autónomos): center the list */
body.asx-html-page.asx-slug-servicios-legales-autonomos .service-items{
  text-align: center !important;
}
body.asx-html-page.asx-slug-servicios-legales-autonomos .service-item{
  justify-content: center !important;
}

/* Declaración de la renta: make the 7 "documentos" chips look like Home cards */
body.asx-html-page.asx-slug-declaracion-de-la-renta .info-chips{
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
  gap: 12px !important;
  padding-left: 0 !important;
  margin: 14px 0 0 0 !important;
  list-style: none !important;
}
body.asx-html-page.asx-slug-declaracion-de-la-renta .info-chips > li{
  background: #fff !important;
  border: 1px solid rgba(17,24,39,.10) !important;
  border-radius: 18px !important;
  padding: 12px 14px !important;
  box-shadow: 0 8px 20px rgba(17,24,39,.06) !important;
  line-height: 1.35 !important;
}

/* Header: use a clean SVG hamburger (matches social icon style) */
body.asx-html-page .nav-toggle-icon{
  width: 24px !important;
  height: 24px !important;
  background: center / 24px 24px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%230b0f1a' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 7h16'/%3E%3Cpath d='M4 12h16'/%3E%3Cpath d='M4 17h16'/%3E%3C/svg%3E") !important;
}
body.asx-html-page .nav-toggle-icon::before,
body.asx-html-page .nav-toggle-icon::after{
  display: none !important;
  content: none !important;
}

/* Footer layout: keep it compact + matching desktop while responsive */
body.asx-html-page .site-footer .footer-top{
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 18px !important;
}

/* Mobile/tablet: logo column (30%) + slogan+icons column (70%) */
@media (max-width: 900px){
  body.asx-html-page .site-footer .footer-top{
    gap: 14px !important;
  }
  body.asx-html-page .site-footer .footer-social-col{
    display: grid !important;
    grid-template-columns: 30% 70% !important;
    align-items: center !important;
    column-gap: 12px !important;
  }
  body.asx-html-page .site-footer .footer-logo{
    justify-self: center !important;
  }
  body.asx-html-page .site-footer .footer-tagline{
    margin: 6px 0 0 0 !important;
  }
  body.asx-html-page .site-footer .footer-social{
    margin-top: 8px !important;
    justify-content: center !important;
  }
  body.asx-html-page .site-footer .footer-social a{ margin: 0 8px !important; }

  /* Contacts: title/subtitle centered, 3 columns when space allows */
  body.asx-html-page .site-footer .footer-contact-col{ text-align: center !important; }
  body.asx-html-page .site-footer .footer-contact-grid{
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
  @media (max-width: 520px){
    body.asx-html-page .site-footer .footer-contact-grid{ grid-template-columns: 1fr !important; }
  }
  body.asx-html-page .site-footer .footer-contact-email{ text-align: center !important; }

  /* Footer legal links: shift right 15px and keep same colors */
  body.asx-html-page .site-footer .footer-bottom{ padding-left: 15px !important; }
}

/* Desktop: visually 5 columns (logo | slogan+icons | 3 contact columns) */
@media (min-width: 901px){
  body.asx-html-page .site-footer .footer-top{
    grid-template-columns: 1fr 1.35fr !important;
    gap: 28px !important;
  }
  body.asx-html-page .site-footer .footer-social-col{
    display: grid !important;
    grid-template-columns: 30% 70% !important;
    align-items: start !important;
    column-gap: 16px !important;
  }
  body.asx-html-page .site-footer .footer-logo{ justify-self: center !important; }
  body.asx-html-page .site-footer .footer-tagline{ margin-top: 8px !important; }
  body.asx-html-page .site-footer .footer-social{
    margin-top: 14px !important;
    justify-content: flex-start !important;
  }
  body.asx-html-page .site-footer .footer-social a{ margin: 0 12px 0 0 !important; }

  body.asx-html-page .site-footer .footer-contact-col{ padding-top: 4px !important; }
  body.asx-html-page .site-footer .footer-contact-grid{
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }
  /* Use the existing "main" block only as centered subtitle (no box) */
  body.asx-html-page .site-footer .footer-contact-grid .footer-contact-block--main{
    grid-column: 1 / -1 !important;
    padding: 0 !important;
    margin: 0 0 8px 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    text-align: center !important;
  }
  body.asx-html-page .site-footer .footer-contact-grid .footer-contact-block--main strong{ display: none !important; }
  body.asx-html-page .site-footer .footer-contact-grid .footer-contact-block--main span{
    display: inline-block !important;
    color: rgba(17,24,39,.70) !important;
    font-weight: 600 !important;
  }

  body.asx-html-page .site-footer .footer-contact-email{ text-align: center !important; }
  body.asx-html-page .site-footer .footer-bottom{ padding-left: 15px !important; }
}




/* ===========================
   Cookie banner hardening
   =========================== */
.cookie-banner{
  background: #FFFFFF !important;
  border-top: 1px solid rgba(0,0,0,0.10) !important;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.10) !important;
}
.cookie-banner .cookie-text{ color: var(--gray, #717171) !important; }
.cookie-banner .cookie-text a{ color: var(--black, #000000) !important; text-decoration: underline !important; }

/* Force the cookie buttons to look like the design even if WP/plugins style <button> globally */
.cookie-banner .cookie-btn,
.cookie-overlay .cookie-overlay-btn{
  -webkit-appearance: none !important;
  appearance: none !important;
  font: inherit !important;
  line-height: 1.15 !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 10px 20px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
}
.cookie-banner .cookie-accept{ background: var(--black, #000000) !important; color: #FFFFFF !important; }
.cookie-banner .cookie-reject{ background: #EBEBEB !important; color: var(--dark-gray, #222222) !important; }

.cookie-overlay{ background: rgba(0,0,0,0.95) !important; }
.cookie-overlay .cookie-overlay-content{ background: #FFFFFF !important; color: var(--dark-gray, #222222) !important; }
.cookie-overlay .cookie-overlay-policy-link{ color: var(--black, #000000) !important; }
.cookie-overlay .cookie-overlay-accept{ background: var(--black, #000000) !important; color: #FFFFFF !important; }
.cookie-overlay .cookie-overlay-reject{ background: #EBEBEB !important; color: var(--dark-gray, #222222) !important; }


/* ===== Fix: submenu toggle as sibling of <a> (v17 JS inserts after link) ===== */
@media (max-width: 1127px){
  body.asx-html-page .nav-links .menu-item-has-children{
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
  }
  body.asx-html-page .nav-links .menu-item-has-children > a{
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }
  body.asx-html-page .nav-links .menu-item-has-children > .submenu-toggle{
    flex: 0 0 auto !important;
    margin-left: auto !important;
  }
  body.asx-html-page .nav-links .menu-item-has-children > .sub-menu{
    flex: 0 0 100% !important;
    width: 100% !important;
  }
}

/* ===== Footer layout (from index_footer_v12) ===== */
body.asx-html-page .site-footer{
  background: var(--bg-light, #F7F7F7) !important;
  border-top: 1px solid #EBEBEB !important;
  padding: 40px 20px !important;
  color: var(--gray, #717171) !important;
  font-size: 14px !important;
}
body.asx-html-page .site-footer .footer-inner{
  max-width: 1760px !important;
  margin: 0 auto !important;
}
body.asx-html-page .site-footer .footer-top{
  display: grid !important;
  gap: 28px !important;
}
@media (min-width: 900px){
  body.asx-html-page .site-footer .footer-two-cols{
    grid-template-columns: 1.15fr 0.85fr !important;
    align-items: start !important;
    text-align: left !important;
  }
}
body.asx-html-page .site-footer .footer-brand-row{
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
}
body.asx-html-page .site-footer .footer-logo-img{
  height: 56px !important;
  width: auto !important;
  display: block !important;
}
body.asx-html-page .site-footer .footer-tagline{
  margin: 6px 0 0 !important;
  color: var(--gray, #717171) !important;
}
body.asx-html-page .site-footer .footer-links-col{
  text-align: left !important;
}
body.asx-html-page .site-footer .footer-links{
  margin-top: 14px !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 14px !important;
}
body.asx-html-page .site-footer .footer-links a{
  color: inherit !important;
  text-decoration: none !important;
}
body.asx-html-page .site-footer .footer-links a:hover{
  text-decoration: underline !important;
}
body.asx-html-page .site-footer .footer-copy{
  margin-top: 16px !important;
  opacity: 0.7 !important;
}


/* --- Footer desktop layout (v20): 50/50 split, contact title + 4 cards under it --- */
@media (min-width: 1128px){
  body.asx-html-page .footer-top.footer-two-cols{
    display: flex !important;
    align-items: flex-start !important;
    gap: 28px !important;
  }
  body.asx-html-page .footer-top.footer-two-cols .footer-brand-col{
    flex: 0 0 50% !important;
    max-width: 50% !important;
  }
  body.asx-html-page .footer-top.footer-two-cols .footer-contact-col{
    flex: 0 0 50% !important;
    max-width: 50% !important;
  }
  body.asx-html-page .footer-contact-col .footer-heading{
    text-align: center !important;
    margin-bottom: 14px !important;
  }
  body.asx-html-page .footer-contact-col .footer-contact-cards{
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
    width: 100% !important;
  }
  body.asx-html-page .footer-contact-col .contact-card{
    width: 100% !important;
  }
}

/* === PATCH v21: Otros Servicios + Declaración de la Renta (listas sin puntitos + cards estilo home) === */

/* Otros servicios (Servicios Legales) - quitar bullets que tapan la primera letra y dar estilo de lista "marcada" */
body.asx-slug-otros-servicios .info-card ul{
  list-style: none !important;
  padding-left: 0 !important;
  margin: 12px 0 0 !important;
}
body.asx-slug-otros-servicios .info-card ul li{
  padding: 10px 0 !important;
  border-bottom: 1px solid rgba(15,23,42,0.08) !important;
  color: var(--dark-gray) !important;
  line-height: 1.55 !important;
}
body.asx-slug-otros-servicios .info-card ul li:last-child{
  border-bottom: 0 !important;
}

/* Declaración de la renta - sección "¿Qué documentos te vamos a solicitar...?" 
   Mostrar items como cards en grid (igual look&feel que las cards del home) */
body.asx-slug-declaracion-de-la-renta .info-card--docs .info-chips{
  list-style: none !important;
  padding: 0 !important;
  margin: 14px 0 0 !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 16px !important;
}
body.asx-slug-declaracion-de-la-renta .info-card--docs .info-chips > li{
  background: #FFFFFF !important;
  border: 1px solid #EBEBEB !important;
  border-radius: 12px !important;
  padding: 18px 18px !important;
  font-weight: 600 !important;
  color: var(--dark-gray) !important;
  line-height: 1.45 !important;
}
body.asx-slug-declaracion-de-la-renta .info-card--docs .info-chips > li:hover{
  box-shadow: 0 6px 16px rgba(0,0,0,0.12) !important;
  border-color: var(--black) !important;
}
@media (min-width: 744px){
  body.asx-slug-declaracion-de-la-renta .info-card--docs .info-chips{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 20px !important;
  }
}
@media (min-width: 1128px){
  body.asx-slug-declaracion-de-la-renta .info-card--docs .info-chips{
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 24px !important;
  }
}

/* =====================================================
   PATCH v22 (enero 2026)
   - Menú responsivo: flecha a la derecha + submenú en panel a la derecha (sin circulitos)
   - Footer (PC): igualar distribución + tamaños de íconos como index_footer_v12
   Solo afecta a body.asx-html-page.
===================================================== */

/* === Menú responsivo: panel lateral para submenús === */
@media (max-width: 1127px){
  /* El panel del menú debe poder contener el flyout a la derecha */
  body.asx-html-page #primaryMenu{
    position: relative !important;
    overflow: hidden !important;
  }

  /* Flecha (toggle) a la derecha del item padre, sin círculo */
  body.asx-html-page #primaryMenu .menu-item-has-children{ position: relative !important; }
  body.asx-html-page #primaryMenu .menu-item-has-children > a{ padding-right: 46px !important; }

  body.asx-html-page #primaryMenu .submenu-toggle{
    position: absolute !important;
    right: 12px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 28px !important;
    height: 28px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 10px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #0b0f1a !important;
    opacity: .75 !important;
    cursor: pointer !important;
  }
  body.asx-html-page #primaryMenu .submenu-toggle:hover{ opacity: 1 !important; background: rgba(15,23,42,0.04) !important; }
  body.asx-html-page #primaryMenu .submenu-toggle svg{ width: 18px !important; height: 18px !important; }

  /* En mobile NO mostramos el sub-menu debajo del item padre. Se muestra en el panel lateral. */
  body.asx-html-page #primaryMenu .menu-item-has-children > .sub-menu{ display: none !important; }

  /* Panel lateral (submenú a la derecha) */
  body.asx-html-page #primaryMenu .asx-submenu-panel{
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    height: 100% !important;
    width: min(280px, 78vw) !important;
    background: #FFFFFF !important;
    border-left: 1px solid rgba(15,23,42,0.08) !important;
    box-shadow: -10px 0 28px rgba(0,0,0,0.10) !important;
    transform: translateX(100%) !important;
    transition: transform 220ms ease !important;
    z-index: 3 !important;
    display: flex !important;
    flex-direction: column !important;
  }
  body.asx-html-page #primaryMenu.asx-submenu-open .asx-submenu-panel{
    transform: translateX(0) !important;
  }

  body.asx-html-page #primaryMenu .asx-submenu-panel__header{
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 12px 14px !important;
    border-bottom: 1px solid rgba(15,23,42,0.08) !important;
  }
  body.asx-html-page #primaryMenu .asx-submenu-back{
    width: 34px !important;
    height: 34px !important;
    border: 1px solid rgba(15,23,42,0.10) !important;
    border-radius: 12px !important;
    background: #FFFFFF !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
  }
  body.asx-html-page #primaryMenu .asx-submenu-back svg{ width: 18px !important; height: 18px !important; }
  body.asx-html-page #primaryMenu .asx-submenu-title{
    font-weight: 700 !important;
    font-size: 14px !important;
    color: #0b0f1a !important;
    line-height: 1.2 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  body.asx-html-page #primaryMenu .asx-submenu-panel__body{
    padding: 10px 10px 18px !important;
    overflow: auto !important;
  }

  body.asx-html-page #primaryMenu .asx-submenu-panel__body .sub-menu{
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }

  body.asx-html-page #primaryMenu .asx-submenu-panel__body .sub-menu a{
    display: block !important;
    padding: 12px 12px !important;
    border-radius: 12px !important;
    text-decoration: none !important;
    color: inherit !important;
    background: transparent !important;
  }
  body.asx-html-page #primaryMenu .asx-submenu-panel__body .sub-menu a:hover{
    background: rgba(15,23,42,0.04) !important;
  }
}

/* Desktop: ocultar el toggle y el panel (desktop usa hover) */
@media (min-width: 1128px){
  body.asx-html-page .submenu-toggle{ display: none !important; }
  body.asx-html-page #primaryMenu .asx-submenu-panel{ display: none !important; }
}


/* === Footer (PC): igualar a index_footer_v12 === */
@media (min-width: 1128px){
  /* Asegurar layout 50/50 y evitar display:contents de parches anteriores */
  body.asx-html-page .site-footer .footer-top.footer-two-cols,
  body.asx-html-page .site-footer .footer-two-cols{
    display: flex !important;
    align-items: flex-start !important;
    gap: 28px !important;
  }

  body.asx-html-page .site-footer .footer-social-col,
  body.asx-html-page .site-footer .footer-contact-col,
  body.asx-html-page .site-footer .footer-contact-grid{
    display: block !important;
  }

  body.asx-html-page .site-footer .footer-brand-col{
    flex: 0 0 50% !important;
    max-width: 50% !important;
  }
  body.asx-html-page .site-footer .footer-contact-col{
    flex: 0 0 50% !important;
    max-width: 50% !important;
  }

  /* Brand row como en v12: logo + meta alineados en fila */
  body.asx-html-page .site-footer .footer-brand-row{
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 14px !important;
    text-align: left !important;
  }
  body.asx-html-page .site-footer .footer-brand-meta{
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
  }

  /* Logo footer (desktop) igual que v12 */
  body.asx-html-page .site-footer img.footer-logo-img{
    height: 200px !important;
    max-height: 200px !important;
    width: auto !important;
  }

  /* Social icons: tamaño + padding como v12 (evita cuadrados gigantes) */
  body.asx-html-page .site-footer .footer-social{
    margin-left: 0 !important;
    margin-top: 12px !important;
    justify-content: flex-start !important;
    gap: 12px !important;
  }
  body.asx-html-page .site-footer .footer-social .social-link{
    width: auto !important;
    height: auto !important;
    padding: 8px 10px !important;
    border: 1px solid #EBEBEB !important;
    border-radius: 12px !important;
    background: #FFFFFF !important;
    box-shadow: none !important;
  }
  body.asx-html-page .site-footer .footer-social .social-link:hover{
    border-color: #0b0f1a !important;
    box-shadow: 0 6px 16px rgba(0,0,0,0.08) !important;
  }
  body.asx-html-page .site-footer .footer-social .social-link svg{
    width: 18px !important;
    height: 18px !important;
  }

  /* Contact: título centrado + 4 tarjetas debajo en grid 2x2 */
  body.asx-html-page .site-footer .footer-contact-col .footer-heading{
    text-align: center !important;
    margin-bottom: 14px !important;
  }
  body.asx-html-page .site-footer .footer-contact-col .footer-contact-cards{
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 14px !important;
    width: 100% !important;
    margin-top: 14px !important;
  }
}



/* =========================================================
   FINAL FIX (v23) — ONLY what user requested:
   1) Footer DESKTOP must match index_footer_v12 (exact layout + icon sizing)
   2) Mobile menu: arrow on dropdowns + flyout panel to the RIGHT with Back
   ========================================================= */

/* 2) MOBILE MENU (hamburguesa): show arrow + right flyout panel */
@media (max-width: 1127px){
  body.asx-html-page #primaryMenu{ position: relative !important; }

  /* Ensure arrow exists and is visible (some older rules hid it) */
  body.asx-html-page #primaryMenu .submenu-toggle{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 34px !important;
    height: 34px !important;
    margin-left: 8px !important;
    border: 0 !important;
    background: transparent !important;
    padding: 0 !important;
    border-radius: 10px !important;
    cursor: pointer !important;
  }
  body.asx-html-page #primaryMenu .submenu-toggle::before,
  body.asx-html-page #primaryMenu .submenu-toggle::after{ content: none !important; }
  body.asx-html-page #primaryMenu .submenu-toggle svg{
    width: 18px !important;
    height: 18px !important;
    stroke: currentColor !important;
  }

  /* Never show the classic dropdown list in mobile; we use the flyout panel */
  body.asx-html-page .nav-open #primaryMenu .nav-links > li.menu-item-has-children > .sub-menu{
    display: none !important;
  }

  /* Make the menu area a 2-column layout when flyout is open */
  body.asx-html-page .nav-open #primaryMenu.asx-submenu-open{
    display: flex !important;
    align-items: stretch !important;
    gap: 10px !important;
  }
  body.asx-html-page .nav-open #primaryMenu.asx-submenu-open > .nav-links{
    flex: 0 0 58% !important;
    max-width: 58% !important;
  }

  /* Flyout panel at the RIGHT */
  body.asx-html-page #primaryMenu .asx-submenu-panel{
    display: block !important;         /* override any "display:none" old rule */
    position: relative !important;
    flex: 0 0 42% !important;
    max-width: 42% !important;
    background: #FFFFFF !important;
    border: 1px solid #E6E6E6 !important;
    border-radius: 16px !important;
    box-shadow: 0 12px 30px rgba(0,0,0,0.12) !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transform: translateX(10px) !important;
    transition: opacity .18s ease, transform .18s ease !important;
  }
  body.asx-html-page #primaryMenu.asx-submenu-open .asx-submenu-panel{
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translateX(0) !important;
  }

  body.asx-html-page #primaryMenu .asx-submenu-panel__header{
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 12px 12px !important;
    border-bottom: 1px solid #F0F0F0 !important;
    background: #FAFAFA !important;
  }
  body.asx-html-page #primaryMenu .asx-submenu-back{
    width: 34px !important;
    height: 34px !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: #FFFFFF !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
  }
  body.asx-html-page #primaryMenu .asx-submenu-back svg{ width: 18px !important; height: 18px !important; }
  body.asx-html-page #primaryMenu .asx-submenu-title{
    font-weight: 800 !important;
    font-size: 13px !important;
    letter-spacing: .2px !important;
    text-transform: uppercase !important;
    color: #0b0f1a !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  body.asx-html-page #primaryMenu .asx-submenu-panel__body{
    padding: 10px 10px 12px !important;
  }
  body.asx-html-page #primaryMenu .asx-submenu-panel__body .sub-menu{
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    gap: 6px !important;
  }
  body.asx-html-page #primaryMenu .asx-submenu-panel__body .sub-menu a{
    display: block !important;
    padding: 10px 12px !important;
    border-radius: 12px !important;
    text-decoration: none !important;
    color: #0b0f1a !important;
    font-weight: 650 !important;
    background: #FFFFFF !important;
    border: 1px solid #F0F0F0 !important;
  }
  body.asx-html-page #primaryMenu .asx-submenu-panel__body .sub-menu a:hover{
    background: #F7F7F7 !important;
    border-color: #E6E6E6 !important;
  }
}

/* 1) FOOTER DESKTOP: force EXACT distribution like index_footer_v12
   - Left 50%: logo + tagline + list + social icons (same sizes)
   - Right 50%: CONTACTO title centered + 4 cards under it (2x2 grid)
   - Keep responsive untouched (only applies >=1128px)
*/
@media (min-width: 1128px){
  /* Layout */
  body.asx-html-page .site-footer{ padding: 72px 80px !important; }
  body.asx-html-page .site-footer .footer-inner{ max-width: 1760px !important; margin: 0 auto !important; }

  body.asx-html-page .site-footer .footer-top.footer-two-cols{
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 36px !important;
    align-items: start !important;
  }

  /* Left column brand row */
  body.asx-html-page .site-footer .footer-brand-row{
    display: flex !important;
    align-items: flex-start !important;
    gap: 24px !important;
  }

  /* Footer logo size like index_footer_v12 */
  body.asx-html-page .site-footer img.footer-logo-img{
    height: 58px !important;
    max-height: 58px !important;
    width: auto !important;
  }

  /* Social icons sizing like index_footer_v12 */
  body.asx-html-page .site-footer .footer-social{
    display: flex !important;
    flex-direction: row !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
    margin-top: 16px !important;
  }
  body.asx-html-page .site-footer .social-link{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 8px 10px !important;
    border: 1px solid #EBEBEB !important;
    border-radius: 12px !important;
    background: #FFFFFF !important;
    text-decoration: none !important;
  }
  body.asx-html-page .site-footer .social-link svg{
    width: 18px !important;
    height: 18px !important;
    fill: #1f2937 !important;
    opacity: .85 !important;
  }

  /* Right column: CONTACTO title + 4 cards under it */
  body.asx-html-page .site-footer .footer-contact-col{
    text-align: center !important;
  }
  body.asx-html-page .site-footer .footer-contact-col .footer-heading{
    text-align: center !important;
    margin: 0 0 14px 0 !important;
  }
  body.asx-html-page .site-footer .footer-contact-cards{
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
    justify-items: stretch !important;
    align-items: start !important;
  }
  body.asx-html-page .site-footer .footer-contact-cards .contact-card{
    text-align: left !important;
  }
}



/* v23.1: ensure parent rows are flex so text + arrow align properly */
@media (max-width: 1127px){
  body.asx-html-page .nav-open #primaryMenu .nav-links > li.menu-item-has-children{
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
  }
  body.asx-html-page .nav-open #primaryMenu .nav-links > li.menu-item-has-children > a{
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }
}


/* === HOTFIX: Footer desktop = index_footer_v12 (do not edit above) === */
/* Goal:
   - Desktop (>=1128px): match the footer layout/scale used in index_footer_v12.html
   - Keep existing responsive behavior (<=1127px) untouched.
*/
@media (min-width: 1128px){

  /* Undo WP overrides that made footer logo huge on desktop */
  body.asx-html-page .site-footer img.footer-logo-img,
  body.asx-html-page .site-footer .footer-logo-img,
  body.asx-html-page .site-footer .footer-logo img,
  body.asx-html-page .site-footer .footer-logo{
    height: 58px !important;
    max-height: 58px !important;
    width: auto !important;
    max-width: 190px !important;
    object-fit: contain !important;
  }

  /* Base footer spacing + left alignment */
  body.asx-html-page .site-footer{
    text-align: left !important;
    padding: 48px 40px !important;
  }
  body.asx-html-page .site-footer .footer-inner{
    max-width: 1760px !important;
    margin: 0 auto !important;
  }

  /* Two columns on desktop: brand/social (left) + contact cards (right) */
  body.asx-html-page .site-footer .footer-top.footer-two-cols{
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 40px !important;
    align-items: start !important;
  }

  /* Left side: split in 2 quarters (logo | tagline+social) */
  body.asx-html-page .site-footer .footer-col.footer-brand-col{ display: flex !important; }
  body.asx-html-page .site-footer .footer-brand-row{
    width: 100% !important;
    height: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    column-gap: 36px !important;
    align-items: center !important;
  }
  body.asx-html-page .site-footer .footer-brand-row .footer-logo{
    justify-self: center !important;
    transform: translateY(10px) !important;
  }

  /* Split tagline (top) + socials (centered) */
  body.asx-html-page .site-footer .footer-brand-meta{
    height: 100% !important;
    display: grid !important;
    grid-template-rows: auto 1fr !important;
    align-items: start !important;
  }

  /* Socials: bigger + evenly distributed */
  body.asx-html-page .site-footer .footer-brand-meta .footer-social{
    margin-top: 0 !important;
    align-self: center !important;
    width: 100% !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
  }
  body.asx-html-page .site-footer .footer-social .social-link{
    width: 95px !important;
    height: 95px !important;
    border-radius: 30px !important;
  }
  body.asx-html-page .site-footer .footer-social .social-link svg{
    width: 45px !important;
    height: 45px !important;
  }

  /* Contact heading alignment */
  body.asx-html-page .site-footer .footer-heading{
    text-align: left !important;
    margin: 0 0 16px 0 !important;
  }

  /* Contact cards grid: 2 columns on desktop */
  body.asx-html-page .site-footer .footer-contact-cards{
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 14px 16px !important;
  }

  /* Bottom row: legal left, copyright right */
  body.asx-html-page .site-footer .footer-bottom.footer-links-only{
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 18px !important;
  }
}


/* === FOOTER DESKTOP v21: 50/50 layout + larger logo block === */
@media (min-width: 1128px) {
  .site-footer .footer-top {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important; /* 50 / 50 */
    gap: 40px !important;
    align-items: center !important;
  }

  /* LEFT 50%: logo + tagline + socials stacked, centered */
  .footer-social-col {
    display: grid !important;
    grid-template-rows: 1fr 1fr 1fr !important; /* thirds */
    align-items: center !important;
    justify-items: center !important;
    text-align: center !important;
    min-height: 260px;
  }

  /* Logo ~15% larger than header logo */
  .site-footer .footer-logo img,
  .site-footer .footer-logo-img {
    max-height: 80px !important;
    max-width: 220px !important;
  }

  .site-footer .footer-tagline {
    margin: 0 !important;
    font-weight: 600 !important;
  }

  .site-footer .footer-social {
    justify-content: center !important;
    gap: 14px !important;
  }

  /* RIGHT 50%: Contact block */
  .footer-contact-col {
    width: 100% !important;
  }

  .footer-contact-col .footer-heading {
    text-align: center !important;
    margin-bottom: 18px !important;
  }

  .footer-contact-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px 18px !important;
  }

  /* Contact cards: wider + softer */
  .footer-contact-grid .contact-card,
  .footer-contact-grid .footer-contact-card {
    padding: 16px 18px !important;
    border-radius: 18px !important;
    min-height: 86px;
  }
}


/* ==========================================================================
   PATCH v31 (2026-01-26): FIX NAV MOBILE + FOOTER DESKTOP (KEEP RESPONSIVE OK)
   - Mobile: hide menu until hamburger open; clean list styling; accordion submenus
   - Desktop: footer left block stacked (logo/tagline/icons) + contact cards wider
   ========================================================================== */

/* --- NAV (mobile-first) --- */
@media (max-width: 1127px){
  body.asx-html-page .nav-toggle{ display:flex !important; }

  /* Always start hidden (JS toggles html.nav-open / body.nav-open) */
  body.asx-html-page .nav-links-wrap{
    display:none !important;
  }

  html.nav-open body.asx-html-page .nav-links-wrap,
  body.nav-open.asx-html-page .nav-links-wrap{
    display:block !important;
    position: fixed !important;
    left: 14px !important;
    right: 14px !important;
    top: calc(var(--header-h, 88px) + 10px) !important;
    max-height: calc(100vh - (var(--header-h, 88px) + 26px)) !important;
    overflow: auto !important;
    background: #fff !important;
    border: 1px solid rgba(15,23,42,0.10) !important;
    border-radius: 18px !important;
    box-shadow: 0 18px 50px rgba(0,0,0,0.12) !important;
    padding: 10px !important;
    z-index: 9999 !important;
  }

  body.asx-html-page .nav-links{
    display:flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
  }

  body.asx-html-page .nav-links > li{ position: relative !important; }

  body.asx-html-page .nav-links > li > a{
    display:flex !important;
    align-items:center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    padding: 12px 14px !important;
    border-radius: 14px !important;
    text-decoration:none !important;
    color: #0F172A !important;
    background: transparent !important;
  }

  body.asx-html-page .nav-links > li > a:hover{
    background: rgba(15,23,42,0.04) !important;
  }

  /* Submenu toggle button (chevron) */
  body.asx-html-page .submenu-toggle{
    position: absolute !important;
    right: 10px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 34px !important;
    height: 34px !important;
    border-radius: 10px !important;
    border: 1px solid rgba(15,23,42,0.10) !important;
    background: #fff !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    cursor: pointer !important;
  }
  body.asx-html-page .submenu-toggle svg{ width: 18px !important; height: 18px !important; }

  /* Hide submenus until opened */
  body.asx-html-page .nav-links .sub-menu{
    display:none !important;
    margin: 6px 0 0 0 !important;
    padding: 6px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(15,23,42,0.08) !important;
    background: rgba(15,23,42,0.02) !important;
    list-style: none !important;
  }
  body.asx-html-page .nav-links .sub-menu a{
    display:block !important;
    padding: 10px 12px !important;
    border-radius: 12px !important;
    text-decoration:none !important;
    color: #0F172A !important;
    background: transparent !important;
  }
  body.asx-html-page .nav-links .sub-menu a:hover{
    background: rgba(15,23,42,0.04) !important;
  }

  body.asx-html-page .menu-item-has-children.is-open > .sub-menu{
    display:block !important;
  }

  /* When submenu open, rotate chevron */
  body.asx-html-page .menu-item-has-children.is-open > .submenu-toggle svg{
    transform: rotate(180deg) !important;
  }
}

/* Desktop: ensure hamburger does not interfere */
@media (min-width: 1128px){
  body.asx-html-page .nav-toggle{ display:none !important; }
  body.asx-html-page .nav-links-wrap{
    display:block !important;
    position: static !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
  }
  body.asx-html-page .submenu-toggle{ display:none !important; }
}

/* --- FOOTER (desktop only; keep current responsive) --- */
@media (min-width: 1128px){
  body.asx-html-page .site-footer{
    padding-top: 56px !important;
    padding-bottom: 26px !important;
  }

  body.asx-html-page .footer-top.footer-two-cols{
    display:grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 40px !important;
    align-items: center !important;
  }

  /* LEFT 50%: one compact vertical block */
  body.asx-html-page .footer-brand-row{
    display:flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    gap: 14px !important;
  }

  /* Make logo bigger and centered */
  body.asx-html-page .footer-logo{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width: 100% !important;
  }
  body.asx-html-page .footer-logo-img{
    max-width: 230px !important;
    width: auto !important;
    height: auto !important;
    transform: scale(1.15) !important; /* ~15% bigger */
    transform-origin: center !important;
  }

  body.asx-html-page .footer-tagline{
    margin: 0 !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em !important;
  }

  body.asx-html-page .footer-social{
    justify-content:center !important;
    gap: 18px !important;
  }

  body.asx-html-page .footer-social .social-link{
    width: 70px !important;
    height: 70px !important;
    border-radius: 22px !important;
  }
  body.asx-html-page .footer-social .social-link svg{
    width: 32px !important;
    height: 32px !important;
  }

  /* RIGHT 50%: cards wider and balanced */
  body.asx-html-page .footer-contact-col .footer-heading{
    text-align: center !important;
    margin-bottom: 14px !important;
  }

  body.asx-html-page .footer-contact-cards{
    display:grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
    align-items: stretch !important;
  }

  body.asx-html-page .footer-contact-cards .contact-card{
    width: 100% !important;
    min-height: 70px !important;
    padding: 14px 16px !important;
    border-radius: 18px !important;
  }

  body.asx-html-page .footer-contact-cards .contact-txt{
    display:flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    min-width: 0 !important;
  }

  body.asx-html-page .footer-contact-cards .contact-txt strong{
    font-size: 14px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.asx-html-page .footer-contact-cards .contact-txt span{
    font-size: 13px !important;
    opacity: 0.85 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
}



/* --- HEADER sizing reset (match index_footer_v12: compact header) --- */
:root{ --header-h: 88px !important; }
@media (max-width: 1127px){ :root{ --header-h: 76px !important; } }

body.asx-html-page{ padding-top: var(--header-h) !important; }
body.asx-html-page .site-header{ height: var(--header-h) !important; }
body.asx-html-page .site-nav{ height: var(--header-h) !important; }

body.asx-html-page .site-header img.brand-logo,
body.asx-html-page .site-header .custom-logo-link img,
body.asx-html-page .site-header .site-brand img{
  height: 44px !important;
  max-height: 44px !important;
  width: auto !important;
}

body.asx-html-page .site-footer img.footer-logo-img{
  height: 52px !important; /* ~15-20% larger than 44px */
  max-height: 52px !important;
  width: auto !important;
  transform: none !important;
}



@media (min-width: 1128px){
  body.asx-html-page .footer-brand-col{
    display:flex !important;
    justify-content:center !important;
  }
  body.asx-html-page .footer-brand-row{
    min-height: 240px !important;
    justify-content: space-between !important;
    max-width: 420px !important;
  }
}



@media (min-width: 1128px){
  body.asx-html-page .footer-brand-meta{
    display:flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 14px !important;
  }
}




/* =====================================================
   PATCH v24 (enero 2026)
   - Header: NO se toca (mantiene la versión que te gustaba)
   - NAV mobile: drawer desde la izquierda (pantalla completa) + drilldown de submenús
   - Footer desktop: 20% logo | 30% (tagline+iconos) | 50% contacto (sin solaparse)
===================================================== */

/* --- NAV: OFF-CANVAS + DRILLDOWN (solo mobile) --- */
@media (max-width: 1127px){
  /* Drawer full screen */
  body.asx-html-page .nav-links-wrap{
    display:block !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: 9999 !important;
    background: #ffffff !important;
    transform: translateX(-100%) !important;
    transition: transform .28s ease !important;
    opacity: 1 !important;
    pointer-events: none !important;
    padding: 16px 16px 22px !important;
    overflow: hidden !important;
  }
  html.nav-open body.asx-html-page .nav-links-wrap,
  body.nav-open.asx-html-page .nav-links-wrap{
    transform: translateX(0) !important;
    pointer-events: auto !important;
  }

  /* Top bar close */
  body.asx-html-page .nav-drawer-top{
    height: 52px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    padding: 4px 2px !important;
  }
  body.asx-html-page .nav-drawer-close{
    width: 44px !important;
    height: 44px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(0,0,0,.10) !important;
    background: #fff !important;
    font-size: 18px !important;
    line-height: 1 !important;
  }

  /* Panels */
  body.asx-html-page .nav-panel{
    position:absolute !important;
    top: 62px !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    overflow: auto !important;
    -webkit-overflow-scrolling: touch;
    padding: 6px 2px 18px !important;
    transition: transform .22s ease !important;
  }
  body.asx-html-page .nav-panel-main{ transform: translateX(0) !important; }
  body.asx-html-page .nav-panel-sub{ transform: translateX(100%) !important; background:#fff !important; }
  body.asx-html-page .nav-links-wrap.sub-open .nav-panel-main{ transform: translateX(-100%) !important; }
  body.asx-html-page .nav-links-wrap.sub-open .nav-panel-sub{ transform: translateX(0) !important; }

  /* Main list */
  body.asx-html-page .nav-links{
    display:flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    padding: 4px !important;
    margin: 0 !important;
    list-style:none !important;
  }
  body.asx-html-page .nav-links > li{
    display:flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px 10px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(15,23,42,0.10) !important;
    background: rgba(15,23,42,0.02) !important;
  }
  body.asx-html-page .nav-links > li > a{
    flex: 1 1 auto !important;
    min-width: 0 !important;
    text-decoration:none !important;
    color:#0F172A !important;
    font-weight: 600 !important;
  }

  /* Toggle arrow button (no overlap) */
  body.asx-html-page .submenu-toggle{
    flex: 0 0 auto !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(15,23,42,0.10) !important;
    background: #fff !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding: 0 !important;
  }
  body.asx-html-page .submenu-toggle .chev{
    font-size: 20px !important;
    transform: translateX(1px);
  }

  /* Hide inline submenus in main panel (we use drilldown) */
  body.asx-html-page .nav-panel-main .sub-menu{ display:none !important; }

  /* Subpanel top */
  body.asx-html-page .nav-sub-top{
    position: sticky !important;
    top: 0 !important;
    display:flex !important;
    align-items:center !important;
    gap: 10px !important;
    padding: 10px 6px !important;
    background: #fff !important;
    border-bottom: 1px solid rgba(15,23,42,0.08) !important;
  }
  body.asx-html-page .nav-sub-back{
    width: 44px !important;
    height: 44px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(15,23,42,0.10) !important;
    background:#fff !important;
    font-size: 18px !important;
  }
  body.asx-html-page .nav-sub-title{
    font-weight: 700 !important;
    color:#0F172A !important;
  }

  /* Submenu list */
  body.asx-html-page .nav-sub-body{
    padding: 10px 4px 18px !important;
  }
  body.asx-html-page .nav-sub-body .sub-menu{
    display:flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    padding: 4px !important;
    margin: 0 !important;
    list-style:none !important;
  }
  body.asx-html-page .nav-sub-body .sub-menu a{
    display:block !important;
    padding: 12px 12px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(15,23,42,0.10) !important;
    background: rgba(15,23,42,0.02) !important;
    text-decoration:none !important;
    color:#0F172A !important;
    font-weight: 600 !important;
  }
}

/* --- FOOTER DESKTOP: 20/30/50 (sin solaparse) --- */
@media (min-width: 1128px){
  body.asx-html-page .site-footer .footer-top{
    display:grid !important;
    grid-template-columns: 20% 30% 50% !important;
    column-gap: 26px !important;
    align-items: center !important;
  }

  /* Convert brand wrapper into grid items: logo + meta */
  body.asx-html-page .footer-brand-col,
  body.asx-html-page .footer-brand-row{
    display: contents !important;
  }

  /* LOGO column (20%) */
  body.asx-html-page .footer-logo{
    grid-column: 1 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width: 100% !important;
  }
  body.asx-html-page .footer-logo-img{
    max-width: 180px !important; /* como la versión anterior (sin escala) */
    width: 100% !important;
    height: auto !important;
    transform: none !important;
  }

  /* Tagline + socials column (30%), pushed right */
  body.asx-html-page .footer-brand-meta{
    grid-column: 2 !important;
    justify-self: end !important; /* lo corre a la derecha */
    text-align: center !important;
    display:flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 14px !important;
    max-width: 340px !important;
    width: 100% !important;
  }
  body.asx-html-page .footer-tagline{ margin: 0 !important; }

  /* Contact column (50%) */
  body.asx-html-page .footer-contact-col{
    grid-column: 3 !important;
    width: 100% !important;
  }
  body.asx-html-page .footer-contact-col .footer-heading{
    text-align: center !important;
    margin-bottom: 14px !important;
  }
  body.asx-html-page .footer-contact-cards{
    display:grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 14px 16px !important;
  }
  body.asx-html-page .footer-contact-cards .contact-card{
    width: 100% !important;
    min-height: 84px;
    padding: 14px 16px !important;
    border-radius: 18px !important;
  }
}



/* =====================================================
   PATCH v25 (enero 2026)
   - Footer desktop: 30% logo | 30% (tagline+iconos) | 40% contacto + márgenes 5%
   - Logos: header y footer más grandes (igual escala que iconos del footer)
   - NAV mobile: off-canvas real sobre #primaryMenu + accordion (submenús debajo)
===================================================== */

/* --- LOGOS (ajuste tamaño) --- */
@media (min-width: 1128px){
  body.asx-html-page .site-header img.brand-logo,
  body.asx-html-page .site-header .custom-logo-link img,
  body.asx-html-page .site-header .site-brand img{
    height: 95px !important;   /* igual que botones de redes del footer */
    max-height: 95px !important;
    width: auto !important;
  }
  :root{ --header-h: 110px; }
}
@media (max-width: 1127px){
  body.asx-html-page .site-header img.brand-logo,
  body.asx-html-page .site-header .custom-logo-link img,
  body.asx-html-page .site-header .site-brand img{
    height: 72px !important;
    max-height: 72px !important;
    width: auto !important;
  }
}

/* Footer logo (desktop + mobile) */
@media (min-width: 1128px){
  body.asx-html-page .site-footer img.footer-logo-img,
  body.asx-html-page .site-footer img.brand-logo,
  body.asx-html-page .site-footer .brand-logo img{
    height: 95px !important;
    max-height: 95px !important;
    width: auto !important;
    transform: none !important;
  }
}
@media (max-width: 1127px){
  body.asx-html-page .site-footer img.footer-logo-img,
  body.asx-html-page .site-footer img.brand-logo,
  body.asx-html-page .site-footer .brand-logo img{
    height: 82px !important;
    max-height: 82px !important;
    width: auto !important;
    transform: none !important;
  }
}

/* --- FOOTER DESKTOP layout 30/30/40 + padding --- */
@media (min-width: 1128px){
  body.asx-html-page .site-footer .footer-top{
    display: grid !important;
    grid-template-columns: 30% 30% 40% !important;
    column-gap: 22px !important;
    align-items: stretch !important; /* misma altura visual */
    padding-left: 5% !important;
    padding-right: 5% !important;   /* margen derecha 5% */
  }

  /* wrappers -> grid items */
  body.asx-html-page .footer-brand-col,
  body.asx-html-page .footer-brand-row{ display: contents !important; }

  /* LOGO (col 1) */
  body.asx-html-page .footer-logo{ 
    grid-column: 1 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width: 100% !important;
    min-height: 140px !important;
  }

  /* Tagline + socials (col 2) */
  body.asx-html-page .footer-brand-meta{
    grid-column: 2 !important;
    justify-self: center !important;
    text-align: center !important;
    display:flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 14px !important;
    width: 100% !important;
    min-height: 140px !important;
  }

  /* CONTACTO (col 3) - ocupa 40% y va a la derecha */
  body.asx-html-page .footer-contact-col{
    grid-column: 3 !important;
    justify-self: end !important;
    width: 100% !important;
    min-height: 140px !important;
  }

  body.asx-html-page .footer-contact-col .footer-heading{
    text-align: center !important;
    margin-bottom: 14px !important;
  }

  /* Cards un poco menos anchas (más compactas) */
  body.asx-html-page .footer-contact-cards{
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 14px 14px !important;
  }
  body.asx-html-page .footer-contact-cards .contact-card{
    width: 100% !important;
    padding: 12px 14px !important;
    border-radius: 18px !important;
  }
}

/* --- NAV MOBILE: off-canvas sobre #primaryMenu + accordion --- */
@media (max-width: 1127px){
  /* Base: oculto hasta que se abra con hamburguesa */
  body.asx-html-page #primaryMenu{
    display: block !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: 9999 !important;
    background: #ffffff !important;
    transform: translateX(-100%) !important;
    transition: transform .28s ease !important;
    pointer-events: none !important;
    padding: 14px 14px 22px !important;
    overflow: auto !important;
  }
  html.nav-open body.asx-html-page #primaryMenu,
  body.nav-open.asx-html-page #primaryMenu{
    transform: translateX(0) !important;
    pointer-events: auto !important;
  }

  /* Top bar close */
  body.asx-html-page #primaryMenu .nav-drawer-top{
    position: sticky !important;
    top: 0 !important;
    height: 54px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    background:#fff !important;
    z-index: 1 !important;
    padding: 6px 2px !important;
  }
  body.asx-html-page #primaryMenu .nav-drawer-close{
    width: 44px !important;
    height: 44px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(0,0,0,.10) !important;
    background: #fff !important;
    font-size: 18px !important;
    line-height: 1 !important;
  }

  /* Links list */
  body.asx-html-page #primaryMenu .nav-links{
    display:flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    padding: 8px 2px 18px !important;
    margin: 0 !important;
    list-style:none !important;
  }
  body.asx-html-page #primaryMenu .nav-links > li{
    display:flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px 10px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(15,23,42,0.10) !important;
    background: rgba(15,23,42,0.02) !important;
  }
  body.asx-html-page #primaryMenu .nav-links > li > a{
    flex: 1 1 auto !important;
    min-width: 0 !important;
    text-decoration:none !important;
    color:#0F172A !important;
    font-weight: 600 !important;
  }

  /* Toggle arrow button */
  body.asx-html-page #primaryMenu .submenu-toggle{
    flex: 0 0 auto !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(15,23,42,0.10) !important;
    background: #fff !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding: 0 !important;
  }
  body.asx-html-page #primaryMenu .submenu-toggle .chev{
    font-size: 18px !important;
    transform: translateY(-1px);
  }

  /* Submenu (accordion) */
  body.asx-html-page #primaryMenu .sub-menu{
    display:none !important;
    flex-direction: column !important;
    gap: 10px !important;
    padding: 10px 6px 6px !important;
    margin: 0 !important;
    list-style:none !important;
    width: 100% !important;
  }
  body.asx-html-page #primaryMenu .menu-item-has-children.is-open > .sub-menu{
    display:flex !important;
  }

  body.asx-html-page #primaryMenu .sub-menu a{
    display:block !important;
    padding: 12px 12px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(15,23,42,0.10) !important;
    background: rgba(15,23,42,0.02) !important;
    text-decoration:none !important;
    color:#0F172A !important;
    font-weight: 600 !important;
  }
}

/* === v26: Footer 30/30/40 + logo sizing + mobile drawer polish === */

/* Header logo sizing (desktop) */
@media (min-width: 1128px){
  body.asx-html-page .brand-logo{
    height: 62px !important;
    width: auto !important;
  }
  /* Hide hamburger on desktop (removes the small square) */
  body.asx-html-page .nav-toggle{
    display: none !important;
  }
}

/* Ensure hamburger icon renders (no font dependency) */
body.asx-html-page .nav-toggle-icon{
  position: relative !important;
  width: 22px !important;
  height: 16px !important;
  display: inline-block !important;
  background: transparent !important;
}
body.asx-html-page .nav-toggle-icon::before,
body.asx-html-page .nav-toggle-icon::after{
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  height: 2px !important;
  border-radius: 2px !important;
  background: #111 !important;
}
body.asx-html-page .nav-toggle-icon::before{ top: 0 !important; }
body.asx-html-page .nav-toggle-icon::after{ bottom: 0 !important; }
body.asx-html-page .nav-toggle-icon{
  box-shadow: 0 7px 0 #111 !important; /* middle bar */
}

/* Mobile off-canvas menu: full-screen slide from left */
@media (max-width: 1127px){
  body.asx-html-page .nav-links-wrap{
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    transform: translateX(-110%) !important;
    transition: transform .28s ease !important;
    background: rgba(255,255,255,0.98) !important;
    z-index: 9999 !important;
    padding: 18px 16px 20px 16px !important;
    overflow: auto !important;
    box-sizing: border-box !important;
  }
  html.nav-open body.asx-html-page .nav-links-wrap{
    transform: translateX(0) !important;
  }
  body.asx-html-page .nav-links{
    display: block !important;
    padding: 70px 8px 24px 8px !important; /* space for header area */
  }
}

/* Desktop footer proportions 30/30/40 with 15px gaps */
@media (min-width: 1128px){
  body.asx-html-page footer.site-footer .footer-inner{
    padding: 0 5% !important;
    box-sizing: border-box !important;
  }

  body.asx-html-page footer.site-footer .footer-top{
    display: grid !important;
    grid-template-columns: 3fr 4fr !important; /* 60% / 40% */
    column-gap: 15px !important;
    align-items: center !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  body.asx-html-page footer.site-footer .footer-brand-row{
    display: grid !important;
    grid-template-columns: 1fr 1fr !important; /* 30% / 30% inside brand row */
    column-gap: 15px !important;
    align-items: center !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Footer logo column = 30% */
  body.asx-html-page footer.site-footer .footer-logo-col{
    display: grid !important;
    place-items: center !important;
    width: 100% !important;
  }
  body.asx-html-page footer.site-footer .footer-logo-img{
    height: 112px !important; /* ~2x */
    width: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
  }

  /* Middle column (tagline + icons) = 30% */
  body.asx-html-page footer.site-footer .footer-brand-meta{
    width: 100% !important;
    display: grid !important;
    place-items: center !important;
    row-gap: 10px !important;
  }
  body.asx-html-page footer.site-footer .footer-tagline{
    text-align: center !important;
    margin: 0 !important;
  }
  body.asx-html-page footer.site-footer .footer-social{
    justify-content: center !important;
  }

  /* Contact column = 40% */
  body.asx-html-page footer.site-footer .footer-contact-col{
    width: 100% !important;
    box-sizing: border-box !important;
    padding-right: 2% !important; /* small right breathing room */
  }
  body.asx-html-page footer.site-footer .footer-contact-wrap{
    width: 100% !important;
  }
  body.asx-html-page footer.site-footer .footer-contact-cards{
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  body.asx-html-page footer.site-footer .contact-card{
    width: 100% !important;
    min-width: 0 !important;
  }
  body.asx-html-page footer.site-footer .contact-card .contact-lines{
    min-width: 0 !important;
  }
  body.asx-html-page footer.site-footer .contact-card .contact-title{
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    max-width: 100% !important;
  }
  body.asx-html-page footer.site-footer .contact-card .contact-sub{
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    max-width: 100% !important;
  }
}

/* Keep header/toggle above the drawer so you can always close it */
@media (max-width: 1127px){
  body.asx-html-page .site-header{
    position: sticky !important;
    top: 0 !important;
    z-index: 10001 !important;
  }
  body.asx-html-page .nav-toggle{
    position: relative !important;
    z-index: 10002 !important;
  }
  /* Drawer sits below header so it doesn't cover the toggle */
  body.asx-html-page .nav-links-wrap{
    top: var(--header-h) !important;
    height: calc(100vh - var(--header-h)) !important;
  }
  body.asx-html-page .nav-links{
    padding-top: 14px !important;
  }
}


/* === PATCH v27: Hide mobile hamburger toggle on desktop (removes square next to logo) === */
@media (min-width: 1128px){
  body.asx-html-page .nav-toggle,
  body.asx-html-page .menu-toggle,
  body.asx-html-page .asx-nav-toggle,
  body.asx-html-page button.nav-toggle{
    display: none !important;
  }
}


/* === PATCH v27: Mobile nav submenu should expand BELOW (accordion), not to the right === */
@media (max-width: 1127px){
  body.asx-html-page .asx-nav ul.sub-menu,
  body.asx-html-page .asx-nav .sub-menu{
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    transform: none !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 8px 0 0 0 !important;
    padding: 8px 0 !important;
    border: 1px solid rgba(0,0,0,.08) !important;
    border-radius: 14px !important;
    background: #fff !important;
    box-shadow: none !important;
    display: none !important;
  }
  body.asx-html-page .asx-nav li.is-open > ul.sub-menu,
  body.asx-html-page .asx-nav li.is-open > .sub-menu{
    display: block !important;
  }
  body.asx-html-page .asx-nav li.menu-item-has-children{
    flex-wrap: wrap !important;
  }
  body.asx-html-page .asx-nav li.menu-item-has-children > a{
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }
  body.asx-html-page .asx-nav .submenu-toggle{
    flex: 0 0 36px !important;
    width: 36px !important;
    height: 36px !important;
  }
}


/* === PATCH v27: Footer desktop 20/30/50 layout + full contact titles === */
@media (min-width: 1128px){
  body.asx-html-page .site-footer .footer-top.footer-two-cols{
    /* brand-col (logo+social) = 50%, contact-col = 50% */
    grid-template-columns: 1fr 1fr !important;
    gap: 15px !important;
    align-items: stretch !important;
  }

  /* Inside brand-col: logo = 40% of brand-col (=> 20% total), meta = 60% of brand-col (=> 30% total) */
  body.asx-html-page .site-footer .footer-brand-row{
    display: grid !important;
    grid-template-columns: 40% 60% !important;
    gap: 15px !important;
    align-items: center !important;
    width: 100% !important;
  }

  body.asx-html-page .site-footer .footer-logo{
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
  }

  body.asx-html-page .site-footer img.footer-logo-img,
  body.asx-html-page .site-footer img.brand-logo{
    /* Make it clearly bigger on desktop footer */
    height: 260px !important;
    max-height: 260px !important;
    width: auto !important;
    object-fit: contain !important;
  }

  body.asx-html-page .site-footer .footer-brand-meta{
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    width: 100% !important;
  }

  body.asx-html-page .site-footer .footer-contact-col{
    width: 100% !important;
    justify-self: stretch !important;
  }

  body.asx-html-page .site-footer .footer-contact-col .footer-contact-title{
    text-align: center !important;
  }

  body.asx-html-page .site-footer .footer-contact-cards{
    width: 100% !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 15px !important;
  }

  body.asx-html-page .site-footer .footer-contact-cards .contact-card{
    min-width: 0 !important;
    width: 100% !important;
  }

  body.asx-html-page .site-footer .contact-card-info{
    min-width: 0 !important;
    max-width: 100% !important;
  }

  /* Allow titles + values to wrap (no ellipsis) */
  body.asx-html-page .site-footer .footer-contact-cards .contact-card-info strong,
  body.asx-html-page .site-footer .footer-contact-cards .contact-card-info span{
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: unset !important;
    word-break: break-word !important;
  }
}


/* === PATCH v27: Never truncate footer contact texts === */
body.asx-html-page .site-footer .footer-contact-cards .contact-card-info strong,
body.asx-html-page .site-footer .footer-contact-cards .contact-card-info span{
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: unset !important;
  word-break: break-word !important;
}
/* === PATCH v27: Footer inner spacing on desktop === */
@media (min-width: 1128px){
  body.asx-html-page .site-footer .footer-inner{
    padding-left: 5% !important;
    padding-right: 5% !important;
    box-sizing: border-box !important;
  }
}

/* ==========================================================
   PATCH v28 (2026-01-26)
   - Desktop header: remove stray hamburger square, slightly enlarge logo.
   - Mobile menu: reliable left off-canvas drawer + accordion submenus.
   - Footer desktop: 3-column layout (logo / social / contact), no horizontal scroll,
     contact titles wrap (no truncation).
   ========================================================== */

/* Prevent accidental horizontal scroll from layout calculations */
body.asx-html-page{ overflow-x: hidden; }

/* --- HEADER fixes (desktop) --- */
@media (min-width: 861px){
  /* Hide the mobile hamburger button that appears as a square on desktop */
  body.asx-html-page .nav-toggle{ display: none !important; }

  /* Bring the header logo closer to the size you had before */
  body.asx-html-page .site-logo img{
    height: 48px !important;
    width: auto !important;
    max-width: 100% !important;
    object-fit: contain;
  }
}

/* --- MOBILE MENU (off-canvas + accordion) --- */
@media (max-width: 860px){
  /* Ensure toggle is visible on mobile */
  body.asx-html-page .nav-toggle{
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    border: 0 !important;
    background: transparent !important;
  }

  /* Off-canvas drawer */
  body.asx-html-page #primaryMenu.nav-links-wrap{
    display: block !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: auto !important;
    bottom: 0 !important;
    width: 86vw !important;
    max-width: 360px !important;
    height: 100vh !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    transform: translateX(-105%) !important;
    transition: transform .28s ease !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    z-index: 9999 !important;
    box-shadow: 0 10px 30px rgba(0,0,0,.18);
    opacity: 1 !important;
    visibility: visible !important;
  }

  html.nav-open body.asx-html-page #primaryMenu.nav-links-wrap,
  body.nav-open.asx-html-page #primaryMenu.nav-links-wrap,
  html.nav-open #primaryMenu.nav-links-wrap{
    transform: translateX(0) !important;
  }

  /* Drawer top bar injected by JS */
  body.asx-html-page #primaryMenu .nav-drawer-top{
    position: sticky;
    top: 0;
    z-index: 5;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 10px 12px;
    background: #fff;
    border-bottom: 1px solid rgba(0,0,0,.08);
  }
  body.asx-html-page #primaryMenu .nav-drawer-close{
    width: 44px;
    height: 44px;
    border-radius: 12px;
    border: 1px solid rgba(0,0,0,.10);
    background: #fff;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
  }

  /* Menu list inside drawer */
  body.asx-html-page #primaryMenu .nav-links{
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    padding: 80px 18px 18px !important;
    margin: 0 !important;
    list-style: none !important;
  }

  body.asx-html-page #primaryMenu .nav-links > li{
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.asx-html-page #primaryMenu .nav-links > li > a{
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 14px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    color: #111 !important;
    text-decoration: none;
  }

  body.asx-html-page #primaryMenu .nav-links > li > .sub-menu{
    flex-basis: 100%;
  }

  /* Accordion: keep submenus in-flow (open BELOW) */
  body.asx-html-page #primaryMenu .menu-item-has-children{
    position: relative;
  }

  body.asx-html-page #primaryMenu .submenu-toggle{
    width: 40px;
    height: 40px;
    border-radius: 12px;
    border: 1px solid rgba(0,0,0,.10);
    background: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    cursor: pointer;
  }

  body.asx-html-page #primaryMenu .menu-item-has-children > .sub-menu{
    display: none !important;
    position: static !important;
    transform: none !important;
    inset: auto !important;
    background: transparent !important;
    margin: 8px 0 0 !important;
    padding: 0 0 0 12px !important;
    list-style: none !important;
    border-left: 2px solid rgba(0,0,0,.08);
  }

  body.asx-html-page #primaryMenu .menu-item-has-children.is-open > .sub-menu{
    display: block !important;
  }

  body.asx-html-page #primaryMenu .sub-menu li{
    margin: 0;
    padding: 0;
  }

  body.asx-html-page #primaryMenu .sub-menu a{
    display: block;
    padding: 12px 12px;
    border-radius: 12px;
    background: #fff;
    border: 1px solid rgba(0,0,0,.06);
    color: #111 !important;
    text-decoration: none;
    margin: 8px 0;
  }
}

/* --- FOOTER (desktop) --- */
@media (min-width: 861px){
  /* Convert the top footer area into 3 columns without editing HTML */
  body.asx-html-page .footer-top.footer-two-cols{
    display: grid !important;
    /* approx: logo ~24%, social ~30%, contact ~46% */
    grid-template-columns: 1.2fr 1.5fr 2.3fr;
    align-items: center;
    column-gap: 30px;
    row-gap: 0;
  }

  /* Flatten wrappers so logo + meta become their own grid items */
  body.asx-html-page .footer-brand-col{ display: contents !important; }
  body.asx-html-page .footer-brand-row{ display: contents !important; }

  /* Left column: logo */
  body.asx-html-page .footer-logo{
    justify-self: center;
    align-self: center;
    min-width: 0;
  }
  body.asx-html-page .footer-logo img{
    width: auto !important;
    height: 84px !important; /* ~2x vs previous */
    max-width: 100% !important;
    object-fit: contain;
    display: block;
  }

  /* Middle column: title + social icons */
  body.asx-html-page .footer-brand-meta{
    justify-self: start;
    align-self: center;
    min-width: 0;
  }

  /* Right column: contact cards */
  body.asx-html-page .footer-contact-col{
    justify-self: end;
    align-self: center;
    min-width: 0;
  }

  /* Make sure the contact grid never overflows and titles are readable */
  body.asx-html-page .footer-contact-cards{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    min-width: 0;
    max-width: 100%;
  }
  body.asx-html-page .footer-contact-cards,
  body.asx-html-page .footer-contact-cards *{
    box-sizing: border-box;
  }
  body.asx-html-page .contact-card{ min-width: 0; }
  body.asx-html-page .contact-txt{ min-width: 0; }
  body.asx-html-page .contact-txt strong,
  body.asx-html-page .contact-txt span{
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: unset !important;
    word-break: break-word;
  }
}

/* PATCH v28b: ensure accordion button sits on the same row as the parent item */
@media (max-width: 860px){
  body.asx-html-page #primaryMenu .nav-links > li{
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
  }
  body.asx-html-page #primaryMenu .nav-links > li > a{
    flex: 1 1 auto;
    min-width: 0;
    justify-content: flex-start;
  }
  body.asx-html-page #primaryMenu .nav-links > li > .submenu-toggle{
    flex: 0 0 auto;
  }
  body.asx-html-page #primaryMenu .nav-links > li > .sub-menu{
    flex-basis: 100%;
  }
}

/* ==========================================================
   ASESOLAB WP OVERRIDES — HOTFIX v29 (2026-01-26)
   - Footer desktop layout: Contact 50% + (Logo 25% + Social/Tagline 25%)
   - Mobile menu: ensure hamburger icon visible + accordion submenus reliable
   ========================================================== */

/* --- FOOTER desktop: 50 / 25 / 25 --- */
@media (min-width: 1128px){
  /* Keep the two main columns at 50/50 */
  body.asx-html-page .footer-top.footer-two-cols{
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 40px !important;
    align-items: stretch !important;
  }

  /* Inside the left half (brand column): split into 25/25 */
  body.asx-html-page .footer-brand-row{
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    align-items: center !important;
    gap: 18px !important;
    text-align: left !important;
  }

  /* Logo side (≈25% of footer width) */
  body.asx-html-page .footer-logo{
    justify-content: flex-start !important;
  }
  body.asx-html-page .footer-logo-img{
    max-width: 190px !important;
    height: auto !important;
  }

  /* Tagline + icons side (≈25% of footer width) */
  body.asx-html-page .footer-brand-meta{
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    text-align: right !important;
    gap: 10px !important;
  }
  body.asx-html-page .footer-tagline{
    margin: 0 !important;
  }

  /* Make the 3 icons clear & evenly spaced */
  body.asx-html-page .footer-social{
    justify-content: flex-end !important;
    gap: 12px !important;
  }
  body.asx-html-page .footer-social .social-link svg{
    width: 26px !important;
    height: 26px !important;
  }

  /* Contact column (≈50% of footer width) */
  body.asx-html-page .footer-contact-col{
    align-self: stretch !important;
  }
}

/* --- NAV: make sure hamburger icon is visible (fix "empty square") --- */
body.asx-html-page .nav-toggle{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
body.asx-html-page .nav-toggle-icon{
  display: block !important;
  width: 18px !important;
  height: 2px !important;
  position: relative !important;
  border-radius: 2px !important;
}
body.asx-html-page .nav-toggle-icon::before,
body.asx-html-page .nav-toggle-icon::after{
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  width: 18px !important;
  height: 2px !important;
  border-radius: 2px !important;
}
body.asx-html-page .nav-toggle-icon::before{ top: -6px !important; }
body.asx-html-page .nav-toggle-icon::after{ top: 6px !important; }

/* --- NAV: stronger open-state enforcement (prevents "blank drawer") --- */
@media (max-width: 1127px){
  body.asx-html-page .nav-links-wrap{
    visibility: hidden !important;
    opacity: 0 !important;
    transform: translateY(-6px) !important;
    transition: opacity .18s ease, transform .18s ease !important;
  }

  html.nav-open body.asx-html-page .nav-links-wrap,
  body.nav-open.asx-html-page .nav-links-wrap{
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
  }

  /* Accordion submenu spacing */
  body.asx-html-page .nav-links .sub-menu{
    position: static !important;
    width: auto !important;
  }

  /* Rotate chevron for BOTH svg and text chevron */
  body.asx-html-page .menu-item-has-children.is-open > .submenu-toggle .chev,
  body.asx-html-page .menu-item-has-children.is-open > .submenu-toggle svg{
    transform: rotate(180deg) !important;
  }
  body.asx-html-page .submenu-toggle .chev{
    display: inline-block !important;
    transition: transform .18s ease !important;
    font-size: 18px !important;
    line-height: 1 !important;
  }
}

/* === UI patches (merged from templates) === */

/* v38-ui-patch */
/* === v38 UI consistency patch (minimal, no layout break) === */
:root{ --card-radius: 16px; }

/* Center secondary subtitles where there are double subtitles */
.hero-kicker,.hero-subtitle,.page-subtitle,.section-subtitle,.subtitle{ text-align:center !important; }

/* Cards: consistent hover (minimal) */
.service-card,.pack-card,.card{ transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.service-card:hover,.pack-card:hover,.card:hover{ transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0,0,0,.08); }

/* Service lists: remove boxed look, keep simple dividers */
.service-items{ border:none !important; background:transparent !important; padding:0 !important; border-radius:0 !important; }
.service-items .service-item, .service-items li{ padding:10px 0 !important; border-bottom:1px solid rgba(0,0,0,.10) !important; }
.service-items .service-item:last-child, .service-items li:last-child{ border-bottom:none !important; }

/* Price blocks: consistent, placed below items */
.service-split{ display:flex !important; flex-direction:column !important; gap:12px !important; }
.service-split .service-items{ order:1; }
.service-split .service-price{ order:2; width:100%; text-align:center; padding:12px 14px; border:1px solid rgba(0,0,0,.10); border-radius:var(--card-radius); background:rgba(255,255,255,.65); }
.service-price .price-amount, .service-price .amount{ font-size:28px; font-weight:700; line-height:1.05; }
.service-price .price-note, .service-price .note{ font-size:13px; opacity:.8; margin-top:6px; }

/* Equal height grids */
.service-grid{ align-items:stretch; }
.service-grid .service-card{ height:100%; }
.service-grid.single-col{ max-width:720px; margin-left:auto; margin-right:auto; }

/* Video embeds: support portrait videos */
.video-embed .ratio{ position:relative; width:100%; padding-top:56.25%; }
.video-embed.portrait .ratio, .video-embed.vertical .ratio{ padding-top:177.78%; }
.video-embed iframe{ position:absolute; inset:0; width:100%; height:100%; }

/* Header/Footer logo: larger without changing container height */
.site-header .brand-logo{ height:min(88px, calc(var(--header-h, 90px) - 16px)) !important; width:auto !important; }
.footer-logo-img, .site-footer .brand-logo, .footer-logo img{ height:min(88px, 72px) !important; width:auto !important; }

/* Footer contact: compact layout */
.footer-contact-grid{ display:flex; flex-wrap:wrap; gap:18px; margin-top:10px; }
.footer-contact-block{ min-width:200px; }
.footer-contact-block strong{ display:block; margin-bottom:4px; }
.footer-contact-email{ margin-top:10px; }

/* v43-minimal-cards */
/* === v43 Minimal cards + unified pricing (client-approved clean style) === */
:root{ --divider-soft: rgba(0,0,0,.10); --card-border: rgba(0,0,0,.06); --card-radius: 18px; }

/* Card base (minimal, consistent hover) */
.service-card, .pack-card, .card, .info-card, .holding-section{
  border: 1px solid var(--card-border) !important;
  border-radius: var(--card-radius) !important;
  background: #FFFFFF !important;
}
.service-card, .pack-card, .holding-section{ overflow: hidden; }
.service-card, .pack-card, .card, .info-card, .holding-section{
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}
.service-card:hover, .pack-card:hover, .card:hover, .info-card:hover, .holding-section:hover{
  transform: translateY(-3px) !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.08) !important;
}

/* Service / pricing layout: keep everything centered + price below */
.service-title, .bundle-title, .section-title, .service-card h3{ text-align:center !important; }
.service-body{ display:flex !important; flex-direction:column !important; gap:12px !important; align-items:center !important; text-align:center !important; }
.service-body .service-items{ order: 1 !important; }
.service-body .service-price{ order: 2 !important; }

/* Also normalize split layouts used in packs (price should be below items) */
.service-split{ display:flex !important; flex-direction:column !important; gap:12px !important; }
.service-split .service-items{ order:1 !important; }
.service-split .service-price{ order:2 !important; }


/* Remove boxed look inside: use subtle dividers only */
.service-items{
  width:100% !important;
  border:none !important;
  background:transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
  text-align:center !important;
}
.service-item, .service-items li{
  padding: 10px 0 !important;
  border-bottom: 1px solid var(--divider-soft) !important;
  text-align:center !important;
}
.service-item:last-child, .service-items li:last-child{ border-bottom:none !important; }

/* Price block: no "square"; just a top divider and clean typography */
.service-price{
  width:100% !important;
  border:none !important;
  background:transparent !important;
  padding: 12px 0 0 !important;
  margin-top: 4px !important;
  border-top: 1px solid var(--divider-soft) !important;
  text-align:center !important;
}
.service-price .big, .service-price .amount, .service-price .price-amount{ font-size: 28px !important; font-weight: 800 !important; line-height: 1.05 !important; }
.service-price .sub, .service-price .note, .service-price .price-note{ font-size: 13px !important; opacity: .78 !important; margin-top: 6px !important; }

/* Bundles (Plus PyME / Total / Legal): remove boxed columns; keep separators */
.service-bundle{ gap: 22px !important; }
.service-bundle .bundle-col{
  border:none !important;
  background:transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
}
.service-bundle .bundle-title{
  margin: 0 0 10px !important;
  padding: 0 0 10px !important;
  border-bottom: 1px solid var(--divider-soft) !important;
}

/* Single-card sections should be narrower and centered */
.service-wrap--narrow, .single-col, .service-grid.single-col{ max-width: 560px !important; margin-left:auto !important; margin-right:auto !important; }
@supports(selector(:has(*))){
  .service-wrap:has(> .service-card:only-child),
  .service-grid:has(> .service-card:only-child),
  .packs-grid:has(> .pack-card:only-child),
  .cards:has(> .card:only-child){
    max-width: 560px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .service-wrap:has(> .service-card:only-child) > .service-card,
  .service-grid:has(> .service-card:only-child) > .service-card,
  .packs-grid:has(> .pack-card:only-child) > .pack-card,
  .cards:has(> .card:only-child) > .card{
    width: 100% !important;
  }
}

/* Holding: center text + lists, keep the same clean card rhythm */
.holding-sections{ max-width: 980px !important; margin: 0 auto !important; display:grid !important; gap: 22px !important; }
.holding-section{ text-align:center !important; padding: 18px 18px !important; }
.holding-section p{ max-width: 780px !important; margin: 0 auto 10px !important; }
.holding-section .service-items{ padding:0 !important; }

/* Reduce inner padding for cards so they don't feel "chunky" */
.service-card{ padding: 16px 16px !important; }
.service-card .service-cta{ padding-top: 12px !important; }



/* =============================
   PATCH v6 (2026-01-19)
   Objetivo: limpieza + coherencia en tarjetas/precios/listas
   Base: estilo minimalista (Pack Empresas / Asesoría laboral)
   ============================= */

:root{
  --card-radius: 16px;
  --card-border: rgba(0,0,0,0.10);
  --card-shadow: 0 10px 26px rgba(0,0,0,0.08);
  --divider: rgba(0,0,0,0.10);
}

/* ---- Unificar dinamismo (hover) sin perder minimalismo ---- */
.service-card,
.pack-card,
.info-card,
.llc-price,
.holding-section{
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease;
}

.service-card:hover,
.pack-card:hover,
.llc-price:hover{
  transform: translateY(-2px);
  box-shadow: var(--card-shadow);
}

/* Info/descripción: dinamismo MUY sutil */
.info-card:hover,
.holding-section:hover{
  transform: translateY(-1px);
}

/* ---- Listas de ítems: sin “cuadro” externo, solo renglones ---- */
.service-items{
  border: none !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin-top: 10px !important;
}

.service-item,
.service-items li{
  padding: 10px 0 !important;
  border-bottom: 1px solid var(--divider) !important;
  text-align: center !important;
}

.service-item:last-child,
.service-items li:last-child{ border-bottom: none !important; }

/* En Pack Empresas, mantenemos ítems a la izquierda (más legible) */
.service-items.white .service-item,
.service-items.white li{ text-align: left !important; }

/* ---- Precios: abajo, limpios, sin caja oscura ---- */
.service-split .service-price,
.service-body .service-price,
.service-price,
.llc-price{
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 14px 0 0 !important;
  margin-top: 10px !important;
  border-top: 1px solid var(--divider) !important;
  text-align: center !important;
  max-width: 420px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Evitar botones de precio a full width */
.service-price .btn-block,
.llc-price .btn,
.llc-price .btn-primary{
  width: auto !important;
  display: inline-flex !important;
  justify-content: center;
}

/* ---- Tarjeta única: más angosta y centrada ---- */
.service-wrap > .service-card:not(.pack-card){
  width: 100% !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.service-wrap > .service-card:only-child:not(.pack-card){
  max-width: 560px !important;
}

/* Contenedor de servicios: centra y mantiene respiración */
.service-wrap,
.packs-section .service-wrap{
  justify-items: center;
}

.packs-section .service-wrap{ margin-top: 18px !important; }

/* ---- LLC: “tarjetas” descriptivas sin recuadro, tipo lista ---- */
.info-grid{
  max-width: 860px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.info-card{
  border: none !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding: 18px 0 !important;
  box-shadow: none !important;
  border-bottom: 1px solid var(--divider) !important;
}

.info-card:last-child{ border-bottom: none !important; }

.info-card ul{
  list-style: none !important;
  padding-left: 0 !important;
  margin-top: 8px !important;
}

.info-card ul li{
  padding: 8px 0 !important;
  border-bottom: 1px solid rgba(0,0,0,0.08) !important;
}

.info-card ul li:last-child{ border-bottom: none !important; }

/* ---- Holding: secciones limpias, con divisores y listas angostas ---- */
.holding-sections{
  max-width: 860px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.holding-section{
  border: none !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding: 20px 0 !important;
  box-shadow: none !important;
  border-bottom: 1px solid var(--divider) !important;
}

.holding-section:last-child{ border-bottom: none !important; }

.holding-section .service-items{ max-width: 560px !important; margin-left: auto !important; margin-right: auto !important; }

/* ---- CTA final: centrado, botón no a full width ---- */
.contact-cta,
.contact-cta .container,
.contact-cta-inner{ text-align: center !important; }

.contact-cta a.btn,
.contact-cta a.btn-primary,
.contact-cta a.btn-block,
.contact-cta a.btn-primary.btn-block,
.contact-cta a.btn-primary.btn-block{
  width: auto !important;
  max-width: 320px !important;
}

/* ---- Ajuste leve: más espacio entre título y primeras tarjetas (autónomos) ---- */
.page-hero + .packs-section .service-wrap{ margin-top: 22px !important; }


/* =============================
   PATCH v6.1 (ajustes)
   - Hover sutil en descripciones
   - Logos más grandes sin aumentar header/footer
   ============================= */

.info-card:hover,
.holding-section:hover{
  background: rgba(0,0,0,0.015) !important;
}

/* Logos: +presencia, respetando la altura del header/footer */
.site-header .brand-logo{
  height: min(96px, calc(var(--header-h, 90px) - 10px)) !important;
  width: auto !important;
}

.site-footer .footer-logo-img,
.site-footer .footer-logo img,
.site-footer .footer-logo-img,
.footer-logo-img{
  height: 76px !important;
  width: auto !important;
}

/* =============================
   PATCH v6.2
   - Forzar layout apilado en módulos específicos
   ============================= */

.service-split.is-stacked{
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
}

.service-split.is-stacked .service-items{
  margin-top: 0 !important;
}

/* =============================
   PATCH v6.3
   - Listado limpio para bloques descriptivos (LLC)
   ============================= */

.info-grid.info-list{
  display: block !important;
}

.info-grid.info-list .info-card{
  padding: 16px 0 !important;
}

.info-grid.info-list .info-card ul{
  list-style: none !important;
  padding-left: 0 !important;
  margin: 10px 0 0 !important;
}

.info-grid.info-list .info-card ul li{
  padding: 10px 0 !important;
  border-bottom: 1px solid rgba(0,0,0,0.10) !important;
}

.info-grid.info-list .info-card ul li:last-child{
  border-bottom: none !important;
}

