
:root{--bg:#101010;--panel:#151515;--panel2:#1a1a1a;--text:#f0efeb;--muted:#ababab;--line:#303030;--accent:#f0efeb;--dark:#111111;--header-h:92px;--topbar-h:36px;--gutter:48px;--max:1280px;--ease:cubic-bezier(.22,.61,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55;overflow-x:hidden;padding-top:calc(var(--topbar-h) + var(--header-h))}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{color:inherit}.shell{width:min(calc(100% - (var(--gutter)*2)),var(--max));margin-inline:auto}.topbar{position:fixed;inset:0 0 auto;z-index:120;height:var(--topbar-h);background:#0d0d0d;border-bottom:1px solid #292929;transition:transform .24s var(--ease),opacity .2s}.topbar-inner{height:100%;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#b3b3b3}.topbar-locations{white-space:nowrap}.topbar .sep{opacity:.35;margin-inline:.6rem}.desktop-language{font-weight:700;color:#dddddd}.site-header{position:fixed;left:0;right:0;top:var(--topbar-h);z-index:110;height:var(--header-h);background:rgba(15,15,15,.98);border-bottom:1px solid var(--line);transition:top .24s var(--ease);backdrop-filter:blur(18px)}html.scrolled .topbar{transform:translateY(-100%);opacity:0;pointer-events:none}html.scrolled .site-header{top:0}.nav-shell{height:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:30px}.brand{display:inline-flex;align-items:center;gap:12px;min-width:max-content}.brand-mark{width:34px;height:34px;border-radius:3.5px;background:#f0efeb;color:#111111;display:grid;place-items:center;font-size:13px;font-weight:900}.brand-copy{display:grid;line-height:1}.brand-copy strong{font-size:15px;letter-spacing:.08em}.brand-copy small{font-size:8px;letter-spacing:.22em;color:#9f9f9f;margin-top:5px}.desktop-nav{display:flex;justify-content:center;align-items:stretch;height:100%;gap:0}.desktop-nav>a,.nav-trigger{display:flex;align-items:center;height:100%;padding:0 16px;color:#d9d9d9;font-size:14px;border:0;background:transparent;cursor:pointer}.desktop-nav>a:hover,.nav-trigger:hover,.nav-parent:focus-within>.nav-trigger,.nav-parent:hover>.nav-trigger{background:#181818;color:#fff}.nav-parent{position:relative;height:100%}.nav-trigger{gap:8px}.dropdown{position:absolute;top:100%;left:0;min-width:340px;background:#181818;border:1px solid #363636;border-top:0;border-radius:0 0 5px 5px;padding:12px;display:grid;gap:4px;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .18s,transform .18s,visibility .18s;box-shadow:0 24px 50px rgba(0,0,0,.3)}.nav-parent:hover>.dropdown,.nav-parent:focus-within>.dropdown,.nav-parent.open>.dropdown{opacity:1;visibility:visible;transform:none}.dropdown a{display:grid;gap:4px;padding:13px 14px;border-radius:4px}.dropdown a:hover{background:#242424}.dropdown strong{font-size:14px}.dropdown small{font-size:12px;color:#a4a4a4}.nav-actions{display:flex;align-items:center;gap:10px;justify-self:end}.portal-btn,.header-cta,.btn{min-height:46px;border-radius:4.5px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #353535;font-weight:700;font-size:13px;transition:background .18s,border-color .18s,opacity .18s}.portal-btn:hover{background:#1a1a1a}.header-cta,.btn.primary{background:#f0efeb;color:#111111;border-color:#f0efeb}.header-cta:hover,.btn.primary:hover{opacity:.9}.btn.secondary{background:rgba(18,18,18,.45);backdrop-filter:blur(8px);border-color:rgba(255,255,255,.22)}.mobile-lang,.menu-toggle{display:none}.mobile-menu{display:none}.hero{position:relative;min-height:610px;display:flex;align-items:center;background-size:cover;background-position:center;isolation:isolate;overflow:hidden}.hero-home{background-image:none}.hero-web,.hero-cases,.hero-contact{background-image:var(--hero-image,none)}.hero-apps,.hero-sme,.hero-enterprise,.hero-portal{background-image:var(--hero-image,none)}.hero-crm,.hero-coverage,.hero-location,.hero-legal{background-image:var(--hero-image,none)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,8,8,.93) 0%,rgba(8,8,8,.72) 48%,rgba(8,8,8,.42)),linear-gradient(0deg,rgba(8,8,8,.28),transparent 60%);z-index:-1;pointer-events:none}.hero-content{padding-block:76px;user-select:none;-webkit-user-select:none;touch-action:pan-y}.breadcrumb{display:flex;gap:10px;color:#969696;font-size:12px;margin-bottom:22px}.eyebrow{display:flex;align-items:center;gap:12px;color:#c6c6c6;font-size:12px;letter-spacing:.15em;text-transform:uppercase;margin-bottom:20px}.eyebrow>span{width:26px;height:1px;background:#cbcbcb}.hero h1{font-size:clamp(46px,5.1vw,76px);line-height:.98;letter-spacing:-.055em;max-width:1040px;margin:0 0 30px}.hero-lead{font-size:18px;color:#d3d3d3;max-width:800px;margin:0}.hero-actions{display:flex;gap:12px;margin-top:34px}.section{padding:92px 0;border-top:1px solid #272727}.section.alt{background:#131313}.section-head{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(250px,.6fr);gap:40px;align-items:end;margin-bottom:42px}.section-head h2,.form-copy h2,.cta-panel h2,.portal-overview h2{font-size:clamp(36px,4vw,58px);line-height:1.02;letter-spacing:-.045em;margin:0}.section-head>p,.form-copy>p,.cta-panel>p,.portal-overview>p{color:var(--muted);font-size:17px;margin:0;max-width:650px}.metrics{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr)}.metrics-grid>div{min-height:150px;padding:30px;border-right:1px solid var(--line);display:grid;align-content:center;gap:8px}.metrics-grid>div:last-child{border:0}.metrics strong{font-size:42px;line-height:1}.metrics span{font-size:13px;color:var(--muted)}.cards{display:grid;gap:22px}.cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}.cards.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card{border:1px solid #363636;background:#181818;border-radius:5px;padding:28px;min-width:0}.card>span{display:block;font-size:11px;color:#969696;letter-spacing:.12em;text-transform:uppercase;margin-bottom:28px}.card h3{font-size:21px;line-height:1.18;margin:0 0 12px}.card p{color:var(--muted);margin:0 0 18px}.card a{font-weight:700;font-size:13px}.compact .card{padding:22px}.location-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:5px;overflow:hidden}.location-grid a{min-height:150px;padding:28px;display:grid;align-content:center;gap:8px;border-right:1px solid var(--line);background:#171717}.location-grid a:last-child{border:0}.location-grid a:hover{background:#1e1e1e}.location-grid strong{font-size:24px}.location-grid span{color:var(--muted);font-size:13px}.form-shell,.portal-shell{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);border:1px solid #363636;border-radius:6px;overflow:hidden;background:#181818}.form-copy,.portal-overview{padding:42px;border-right:1px solid #363636}.form-copy dl{margin:35px 0 0;display:grid;gap:16px}.form-copy dt{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#969696}.form-copy dd{margin:3px 0 0}.consult-form,.portal-login{padding:42px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid label,.portal-login label{display:grid;gap:8px;color:#d0d0d0;font-size:12px}.form-grid .full{grid-column:1/-1}input,select,textarea{width:100%;border:1px solid #3b3b3b;background:#111111;color:#f0efeb;border-radius:4px;padding:14px 15px;outline:none}input,select{min-height:54px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:#737373}.form-submit{width:100%;margin-top:18px}.secure-note{display:flex;gap:10px;align-items:flex-start;margin-top:12px;color:#ababab;font-size:12px}.secure-note svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;flex:0 0 16px}.secure-note a{text-decoration:underline;text-underline-offset:3px}.form-status{font-size:12px;color:#d0d0d0;min-height:18px}.process-list{display:grid}.process-list>div{display:grid;grid-template-columns:74px minmax(0,.6fr) minmax(0,1fr);gap:24px;padding:30px 0;border-bottom:1px solid var(--line);align-items:start}.process-list b{color:#838383;font-weight:500}.process-list h3{margin:0;font-size:23px}.process-list p{margin:0;color:var(--muted);font-size:17px}.section-cta{margin-top:32px}.capability-accordion{border:0}.capability-accordion>summary{list-style:none;position:relative;cursor:pointer;padding-right:50px;margin-bottom:34px}.capability-accordion>summary::-webkit-details-marker{display:none}.capability-accordion h2{font-size:clamp(36px,4vw,58px);line-height:1.02;letter-spacing:-.045em;margin:0}.plus{position:absolute;right:0;top:50%;font-size:32px;font-weight:300}.capability-accordion[open] .plus{transform:rotate(45deg)}.cta-panel{max-width:920px}.cta-panel p{font-size:22px;line-height:1.6;margin-top:28px}.filters{display:flex;gap:8px;margin-bottom:30px;flex-wrap:wrap}.filters button{border:1px solid var(--line);background:transparent;color:#d0d0d0;border-radius:4px;padding:10px 14px}.filters .active{background:#f0efeb;color:#111111}.portal-login{display:flex;flex-direction:column;justify-content:center}.portal-login h3{font-size:28px;margin:10px 0}.portal-login>p{color:var(--muted)}.portal-login form{display:grid;gap:16px;margin-top:22px}.password{position:relative}.password button{position:absolute;right:8px;top:8px;bottom:8px;background:transparent;border:0;color:#bbbbbb}.signal{font-size:13px;color:#cacaca}.legal{max-width:850px}.legal h2{font-size:42px}.legal h3{margin-top:40px}.legal p{color:var(--muted);font-size:18px}.footer{border-top:1px solid var(--line);background:#0c0c0c;padding-top:58px}.footer-grid{display:grid;grid-template-columns:1.45fr repeat(3,1fr);gap:42px}.footer-brand p{color:#a2a2a2;max-width:440px}.footer-logo{margin-bottom:20px}.chips{display:flex;gap:10px;flex-wrap:wrap}.chips span{border:1px solid var(--line);border-radius:4px;padding:9px 12px;color:#b0b0b0}.footer-col{border:0}.footer-col summary{list-style:none;font-size:12px;letter-spacing:.16em;font-weight:800;margin-bottom:20px}.footer-col summary span{display:none}.footer-col>div{display:grid;gap:10px;color:#a3a3a3;font-size:13px}.footer-bottom{border-top:1px solid var(--line);margin-top:48px;padding:25px 0 40px;color:#7a7a7a;font-size:12px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,20px);background:#f0efeb;color:#111111;padding:12px 16px;border-radius:4px;font-size:13px;font-weight:700;opacity:0;pointer-events:none;z-index:400;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.page-leaving #page-main{opacity:.1;transform:translateY(5px)}#page-main{transition:opacity .16s ease,transform .16s ease}.page-entering #page-main{animation:pagein .28s var(--ease)}@keyframes pagein{from{opacity:.15;transform:translateY(7px)}to{opacity:1;transform:none}}
@media(max-width:1180px){:root{--gutter:24px;--header-h:108px;--topbar-h:0px}.topbar{display:none}.site-header{top:0}.desktop-nav,.header-cta{display:none}.mobile-lang,.menu-toggle{display:inline-flex}.nav-shell{grid-template-columns:auto 1fr auto;gap:18px}.nav-actions{gap:12px}.portal-btn{display:inline-flex}.mobile-lang{height:44px;align-items:center;font-weight:800;font-size:14px}.menu-toggle{width:44px;height:44px;border:1px solid #393939;border-radius:5px;background:transparent;position:relative;align-items:center;justify-content:center}.menu-toggle span,.menu-toggle::before,.menu-toggle::after{content:"";position:absolute;width:18px;height:1px;background:#eeeeee;transition:.2s}.menu-toggle::before{transform:translateY(-6px)}.menu-toggle::after{transform:translateY(6px)}.menu-toggle[aria-expanded="true"] span{opacity:0}.menu-toggle[aria-expanded="true"]::before{transform:rotate(45deg)}.menu-toggle[aria-expanded="true"]::after{transform:rotate(-45deg)}body{padding-top:var(--header-h)}.mobile-menu{display:block;position:fixed;top:var(--header-h);left:0;right:0;bottom:0;z-index:105;background:#101010;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:none}.mobile-menu::-webkit-scrollbar{display:none}.mobile-menu[hidden]{display:none}.mobile-menu-inner{padding-bottom:40px}.mobile-nav{display:grid}.mobile-nav>a,.mobile-nav summary{min-height:62px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:16px;list-style:none}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav details>summary span{font-size:20px}.mobile-nav details[open]>summary span{transform:rotate(45deg)}.mobile-sub{padding:6px 0 13px;display:grid;gap:2px}.mobile-sub a{padding:11px 14px;color:#bbbbbb;font-size:14px;border:0}.mobile-actions{display:grid;gap:10px;padding-top:18px}.mobile-actions a{width:100%}.hero{min-height:560px}.hero h1{font-size:clamp(44px,7vw,66px)}.cards.three{grid-template-columns:repeat(2,minmax(0,1fr))}.location-grid{grid-template-columns:repeat(2,1fr)}.location-grid a:nth-child(2){border-right:0}.location-grid a:nth-child(-n+2){border-bottom:1px solid var(--line)}.form-shell,.portal-shell{grid-template-columns:1fr}.form-copy,.portal-overview{border-right:0;border-bottom:1px solid #363636}.footer-grid{grid-template-columns:1fr;gap:22px}.footer-brand{padding-bottom:10px}.footer-col,.footer-col:last-child{grid-column:auto;border-top:1px solid var(--line)}.footer-col summary{display:flex;align-items:center;justify-content:space-between;min-height:68px;margin:0;font-size:14px;cursor:pointer;pointer-events:auto}.footer-col summary span{display:block;font-size:25px;font-weight:300}.footer-col:not([open])>div{display:none}.footer-col[open]>div{padding-bottom:18px;display:grid}.section-cta,.cta-panel .btn,.hero-actions .btn{width:100%}.hero-actions{display:grid}.hero-content,.hero *{touch-action:pan-y}.hero-overlay{pointer-events:none}.hero img,[data-no-drag] img{pointer-events:none;-webkit-user-drag:none;user-drag:none}.hero-content{user-select:none;-webkit-user-select:none}}
@media(max-width:767px){:root{--gutter:16px;--header-h:108px}.nav-actions>.portal-btn{display:none}.mobile-actions .portal-btn{display:flex}.hero{min-height:610px}.hero-content{padding-block:54px}.hero h1{font-size:clamp(44px,11vw,62px)}.hero-lead{font-size:17px}.section{padding:68px 0}.section-head{grid-template-columns:1fr;gap:16px}.section-head h2,.form-copy h2,.cta-panel h2,.portal-overview h2{font-size:38px}.metrics-grid{grid-template-columns:1fr 1fr}.metrics-grid>div{min-height:125px;padding:20px}.metrics-grid>div:nth-child(2){border-right:0}.metrics-grid>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.metrics strong{font-size:31px}.cards.two,.cards.three{grid-template-columns:1fr}.location-grid{grid-template-columns:1fr}.location-grid a{border-right:0;border-bottom:1px solid var(--line)}.location-grid a:last-child{border-bottom:0}.form-copy,.portal-overview,.consult-form,.portal-login{padding:28px 22px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.process-list>div{grid-template-columns:46px 1fr;gap:16px}.process-list p{grid-column:2}.footer{padding-top:40px}.footer-grid{grid-template-columns:1fr;gap:22px}.footer-brand{padding-bottom:10px}.footer-col,.footer-col:last-child{grid-column:auto;border-top:1px solid var(--line)}.footer-col summary{display:flex;align-items:center;justify-content:space-between;min-height:68px;margin:0;font-size:14px}.footer-col summary span{display:block;font-size:25px;font-weight:300}.footer-col:not([open])>div{display:none}.footer-col[open]>div{padding-bottom:18px}.footer-bottom{display:grid;margin-top:20px}.nav-actions{gap:10px}.brand-copy strong{font-size:16px}.brand-mark{width:36px;height:36px}.mobile-lang{font-size:15px}.section-cta,.btn.primary,.btn.secondary{min-height:52px}.capability-grid{grid-template-columns:1fr}.capability-accordion>summary{padding-right:34px}.cta-panel p{font-size:18px}.toast{max-width:calc(100% - 32px);text-align:center}}
@media(max-width:390px){.brand{gap:9px}.brand-copy strong{font-size:14px}.nav-shell{gap:10px}.nav-actions{gap:7px}.mobile-lang{font-size:14px}.menu-toggle{width:42px;height:42px}}
html.menu-open{overflow:hidden;touch-action:none}html.menu-open body{overflow:hidden}.no-drag{-webkit-user-drag:none;user-drag:none}.hero,.hero-content,.site-header,.footer{overscroll-behavior-x:none}body,main,#page-main,.section,.hero,.footer{max-width:100%;overflow-x:hidden}a,button{touch-action:manipulation}


/* =========================================================
   XIRIZ — FINAL ALIGNMENT PASS
   ========================================================= */

/* One shared horizontal grid everywhere */
.shell{
  width:min(calc(100% - (var(--gutter) * 2)),var(--max)) !important;
  max-width:var(--max) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  min-width:0 !important;
}

/* Header controls align to one optical baseline */
.nav-shell{align-items:center !important;}
.nav-actions{align-items:center !important;}
.portal-btn,.header-cta,.mobile-lang,.menu-toggle{box-sizing:border-box !important;}

/* Replace the text-glyph chevron with a geometrically aligned arrow */
.nav-trigger>span{
  width:7px !important;
  height:7px !important;
  display:inline-block !important;
  flex:0 0 7px !important;
  border-right:1px solid currentColor !important;
  border-bottom:1px solid currentColor !important;
  font-size:0 !important;
  line-height:0 !important;
  transform:rotate(45deg) translate(-1px,-1px) !important;
  transform-origin:center !important;
  margin-left:1px !important;
}
.nav-parent.open>.nav-trigger>span,
.nav-parent:hover>.nav-trigger>span,
.nav-parent:focus-within>.nav-trigger>span{
  transform:rotate(225deg) translate(-1px,-1px) !important;
}

/* Form controls: identical box model and arrow inset */
input,select,textarea{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}
select{
  appearance:none !important;
  -webkit-appearance:none !important;
  padding-right:46px !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23d5d9dc' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 16px center !important;
  background-size:11px 8px !important;
}
textarea{vertical-align:top !important;}
.form-grid{align-items:start !important;}
.form-grid label,.portal-login label{min-width:0 !important;}

/* Portal cards: equal rows and aligned internal content */
.portal-overview .cards.two{
  align-items:stretch !important;
  grid-auto-rows:1fr !important;
}
.portal-overview .card{
  height:100% !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
}
.portal-overview .card h3{width:100% !important;}
.portal-overview .card p{margin-bottom:0 !important;}
.portal-shell,.form-shell{width:100% !important;min-width:0 !important;}

/* Footer columns and bottom line share exact grid/baseline */
.footer-grid{align-items:start !important;}
.footer-grid>*{min-width:0 !important;}
.footer-bottom{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) !important;
  align-items:center !important;
  column-gap:32px !important;
  row-gap:12px !important;
}
.footer-bottom>p,.footer-bottom>div{margin:0 !important;}
.footer-bottom>p:nth-child(2){justify-self:center !important;text-align:center !important;}
.footer-bottom>div{justify-self:end !important;text-align:right !important;}

@media(max-width:1180px){
  .portal-btn,.mobile-lang,.menu-toggle{height:46px !important;min-height:46px !important;}
  .mobile-lang{display:inline-flex !important;align-items:center !important;justify-content:center !important;}
  .menu-toggle{width:46px !important;flex:0 0 46px !important;}
  .nav-actions{gap:12px !important;}
  .mobile-menu-inner{width:min(calc(100% - (var(--gutter) * 2)),var(--max)) !important;margin-inline:auto !important;}
}

@media(max-width:1180px){
  /* Keep page and bordered shells on exactly the same 16px gutter */
  .shell{width:calc(100% - 32px) !important;}
  .form-shell,.portal-shell{margin:0 !important;}
  .form-copy,.portal-overview,.consult-form,.portal-login{padding:26px 20px !important;}
  .portal-overview .cards.two{gap:14px !important;}
  .portal-overview .card{padding:20px !important;}
  .portal-overview .card h3{font-size:19px !important;}
  .portal-overview .card p{font-size:15px !important;line-height:1.55 !important;}

  .footer-bottom{
    grid-template-columns:1fr !important;
    align-items:start !important;
    gap:10px !important;
    padding-top:24px !important;
  }
  .footer-bottom>p:nth-child(2),.footer-bottom>div{
    justify-self:start !important;
    text-align:left !important;
  }

  .nav-actions{gap:10px !important;}
  .mobile-lang,.menu-toggle{height:44px !important;min-height:44px !important;}
  .menu-toggle{width:44px !important;flex-basis:44px !important;}
}

@media(max-width:520px){
  /* Avoid cramped two-column cards on narrow phones */
  .portal-overview .cards.two{grid-template-columns:1fr !important;}
}


/* =========================================================
   XIRIZ — margen simétrico logo / hamburguesa
   ========================================================= */
@media (max-width:1180px){
  .site-header .nav-shell,
  .site-header .shell.nav-shell{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding-left:var(--gutter) !important;
    padding-right:var(--gutter) !important;
    box-sizing:border-box !important;
  }

  .site-header .brand{
    margin-left:0 !important;
    justify-self:start !important;
  }

  .site-header .nav-actions{
    margin-left:auto !important;
    margin-right:0 !important;
    justify-self:end !important;
  }

  .site-header .menu-toggle{
    margin-right:0 !important;
    position:relative !important;
    right:auto !important;
  }
}


/* =========================================================
   XIRIZ — margen lateral EXACTO logo / hamburguesa
   ========================================================= */
@media (max-width:1180px){

  .site-header{
    left:0 !important;
    right:0 !important;
    width:100% !important;
  }

  /* El header usa TODO el viewport y aplica el gutter como padding.
     Así el logo y la hamburguesa quedan exactamente simétricos. */
  .site-header .nav-shell,
  .site-header .nav-shell.shell{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding-left:var(--gutter) !important;
    padding-right:var(--gutter) !important;
    box-sizing:border-box !important;
    grid-template-columns:auto 1fr auto !important;
  }

  .site-header .brand{
    justify-self:start !important;
    margin:0 !important;
  }

  .site-header .nav-actions{
    justify-self:end !important;
    margin:0 !important;
    display:flex !important;
    align-items:center !important;
  }

  .site-header .menu-toggle{
    margin:0 !important;
    right:auto !important;
    left:auto !important;
    position:relative !important;
    justify-self:end !important;
  }
}

@media (max-width:767px){
  .site-header .nav-shell,
  .site-header .nav-shell.shell{
    padding-left:16px !important;
    padding-right:16px !important;
  }
}

@media (min-width:768px) and (max-width:1180px){
  .site-header .nav-shell,
  .site-header .nav-shell.shell{
    padding-left:24px !important;
    padding-right:24px !important;
  }
}


/* =========================================================
   XIRIZ — hamburguesa con margen lateral forzado
   ========================================================= */
@media (max-width:1180px){
  .site-header .nav-shell{
    position:relative !important;
  }

  .site-header .nav-actions{
    padding-right:56px !important;
  }

  .site-header .menu-toggle{
    position:absolute !important;
    top:50% !important;
    transform:translateY(-50%) !important;
    margin:0 !important;
    left:auto !important;
  }
}

@media (max-width:767px){
  .site-header .menu-toggle{
    right:16px !important;
  }

  .site-header .nav-actions{
    padding-right:54px !important;
  }
}

@media (min-width:768px) and (max-width:1180px){
  .site-header .menu-toggle{
    right:24px !important;
  }

  .site-header .nav-actions{
    padding-right:58px !important;
  }
}


/* =========================================================
   XIRIZ — footer desktop siempre abierto / no interactivo
   ========================================================= */
@media (min-width:1181px){
  .footer-col > summary{
    pointer-events:none !important;
    cursor:default !important;
    user-select:none !important;
    -webkit-user-select:none !important;
  }

  .footer-col > summary span{
    display:none !important;
  }

  /* Aunque alguien cambie el atributo open, el contenido no desaparece. */
  .footer-col > div,
  .footer-col:not([open]) > div,
  .footer-col[open] > div{
    display:grid !important;
    visibility:visible !important;
    opacity:1 !important;
    height:auto !important;
    max-height:none !important;
  }
}


/* =========================================================
   XIRIZ — centrar selector ES/EN en tabletas y celulares
   ========================================================= */
@media (max-width:1180px){
  .site-header .nav-actions{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:12px !important;
  }

  .site-header .mobile-lang{
    width:46px !important;
    min-width:46px !important;
    height:46px !important;
    padding:0 !important;
    margin:0 !important;
    display:grid !important;
    place-items:center !important;
    line-height:1 !important;
    text-align:center !important;
    font-size:14px !important;
    font-weight:800 !important;
    flex:0 0 46px !important;
  }

  .site-header .menu-toggle{
    width:46px !important;
    height:46px !important;
    min-width:46px !important;
    flex:0 0 46px !important;
    margin:0 !important;
  }
}

@media (max-width:767px){
  .site-header .nav-actions{
    gap:10px !important;
  }

  .site-header .mobile-lang{
    width:44px !important;
    min-width:44px !important;
    height:44px !important;
    flex-basis:44px !important;
    font-size:14px !important;
  }

  .site-header .menu-toggle{
    width:44px !important;
    height:44px !important;
    min-width:44px !important;
    flex-basis:44px !important;
  }
}


/* =========================================================
   XIRIZ — restaurar login corporativo compacto 50/50
   ========================================================= */
@media (min-width:1181px){
  .portal-shell{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    align-items:stretch !important;
  }
  .portal-login{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:48px !important;
    min-width:0 !important;
  }
  .portal-login-card{
    width:min(100%,520px) !important;
    margin-inline:auto !important;
    padding:34px !important;
    border:1px solid #3a3a3a !important;
    border-radius:6px !important;
    background:#141414 !important;
    box-shadow:0 18px 44px rgba(0,0,0,.16) !important;
  }
  .portal-login-card .signal{margin-bottom:12px !important;}
  .portal-login-card h3{font-size:30px !important;margin:0 0 10px !important;}
  .portal-login-card>p{margin:0 !important;color:var(--muted) !important;}
  .portal-login-card form{display:grid !important;gap:17px !important;margin-top:28px !important;}
  .portal-login-card .form-submit{margin-top:4px !important;min-height:54px !important;}
  .portal-login-card .secure-note{margin-top:2px !important;}
}
@media (max-width:1180px){
  .portal-login{padding:28px 24px !important;}
  .portal-login-card{
    width:100% !important;
    max-width:620px !important;
    margin-inline:auto !important;
    padding:28px !important;
    border:1px solid #3a3a3a !important;
    border-radius:6px !important;
    background:#141414 !important;
  }
}
@media (max-width:767px){
  .portal-login{padding:20px !important;}
  .portal-login-card{max-width:none !important;padding:22px 18px !important;}
  .portal-login-card h3{font-size:26px !important;}
}


/* =========================================================
   XIRIZ — EN centrado definitivamente entre Portal y menú
   ========================================================= */
@media (max-width:1180px){
  .site-header .nav-actions{
    display:grid !important;
    grid-template-columns:auto 46px 46px !important;
    align-items:center !important;
    justify-content:end !important;
    column-gap:12px !important;
    padding-right:0 !important;
    margin:0 !important;
  }

  .site-header .portal-link{
    grid-column:1 !important;
    margin:0 !important;
  }

  .site-header .mobile-lang{
    grid-column:2 !important;
    width:46px !important;
    min-width:46px !important;
    height:46px !important;
    padding:0 !important;
    margin:0 !important;
    display:grid !important;
    place-items:center !important;
    text-align:center !important;
    line-height:1 !important;
    justify-self:center !important;
    align-self:center !important;
    font-size:14px !important;
    font-weight:800 !important;
  }

  .site-header .menu-toggle{
    grid-column:3 !important;
    position:relative !important;
    inset:auto !important;
    transform:none !important;
    width:46px !important;
    min-width:46px !important;
    height:46px !important;
    margin:0 !important;
    justify-self:end !important;
    align-self:center !important;
  }
}

@media (max-width:767px){
  .site-header .nav-actions{
    grid-template-columns:44px 44px !important;
    column-gap:10px !important;
  }

  .site-header .portal-link{
    display:none !important;
  }

  .site-header .mobile-lang{
    grid-column:1 !important;
    width:44px !important;
    min-width:44px !important;
    height:44px !important;
  }

  .site-header .menu-toggle{
    grid-column:2 !important;
    width:44px !important;
    min-width:44px !important;
    height:44px !important;
  }
}


/* =========================================================
   XIRIZ — hamburguesa centrada verticalmente con ES/EN
   ========================================================= */
@media (max-width:1180px){
  .site-header .nav-shell,
  .site-header .nav-shell.shell{
    align-items:center !important;
  }

  .site-header .nav-actions{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:12px !important;
    height:100% !important;
    padding-right:0 !important;
  }

  .site-header .mobile-lang{
    position:static !important;
    inset:auto !important;
    transform:none !important;
    align-self:center !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    height:46px !important;
    min-height:46px !important;
    line-height:1 !important;
    margin:0 !important;
  }

  .site-header .menu-toggle{
    position:relative !important;
    inset:auto !important;
    top:auto !important;
    right:auto !important;
    bottom:auto !important;
    left:auto !important;
    transform:none !important;
    translate:none !important;
    align-self:center !important;
    justify-self:auto !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:46px !important;
    height:46px !important;
    min-width:46px !important;
    min-height:46px !important;
    margin:0 !important;
    flex:0 0 46px !important;
    vertical-align:middle !important;
  }
}

@media (max-width:767px){
  .site-header .nav-actions{
    gap:10px !important;
  }

  .site-header .mobile-lang,
  .site-header .menu-toggle{
    width:44px !important;
    height:44px !important;
    min-width:44px !important;
    min-height:44px !important;
    flex-basis:44px !important;
  }
}


/* =========================================================
   XIRIZ — más espacio entre intro y tarjetas del Portal
   ========================================================= */
.portal-overview > p{
  margin-bottom:30px !important;
}

.portal-overview .cards.two{
  margin-top:0 !important;
}

@media (max-width:767px){
  .portal-overview > p{
    margin-bottom:26px !important;
  }
}


/* Mobile menu: add separator line above next item after an expanded accordion */
@media(max-width:1180px){
  .mobile-nav details[open] + details > summary,
  .mobile-nav details[open] + a{
    border-top:1px solid var(--line);
  }
}


@media (max-width:1180px){
  .footer-bottom{display:grid !important;margin-top:20px !important;}
  .footer-bottom>p:nth-child(2), .footer-bottom>div{justify-self:start !important;text-align:left !important;}
}


/* =========================================================
   XIRIZ — ajuste footer acordeones tabletas/celulares
   reduce altura, centra verticalmente icono y centra textos
   ========================================================= */
@media (max-width:1180px){
  .footer-col summary{
    min-height:54px !important;
    padding:0 !important;
    margin:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    line-height:1.15 !important;
  }

  .footer-col summary span{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:24px !important;
    height:24px !important;
    flex:0 0 24px !important;
    font-size:24px !important;
    line-height:1 !important;
  }

  .footer-bottom{
    grid-template-columns:1fr !important;
    justify-items:center !important;
    align-items:center !important;
    text-align:center !important;
    gap:12px !important;
    padding-top:24px !important;
  }

  .footer-bottom > p,
  .footer-bottom > div,
  .footer-bottom > p:nth-child(2),
  .footer-bottom > div{
    justify-self:center !important;
    text-align:center !important;
    margin:0 auto !important;
  }
}


/* =========================================================
   XIRIZ — FIX FINAL margen hamburguesa simétrico logo
   ========================================================= */
@media (max-width:1180px){
  .site-header{
    left:0 !important;
    right:0 !important;
    width:100% !important;
  }

  .site-header .nav-shell,
  .site-header .nav-shell.shell{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    box-sizing:border-box !important;
    grid-template-columns:auto 1fr auto !important;
    align-items:center !important;
    column-gap:16px !important;
  }

  .site-header .brand{
    margin:0 !important;
    justify-self:start !important;
  }

  .site-header .nav-actions{
    margin:0 !important;
    padding:0 !important;
    justify-self:end !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:10px !important;
    height:100% !important;
  }

  .site-header .portal-btn{
    margin:0 !important;
  }

  .site-header .mobile-lang{
    margin:0 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    line-height:1 !important;
    flex:0 0 44px !important;
  }

  .site-header .menu-toggle{
    position:relative !important;
    inset:auto !important;
    top:auto !important;
    right:auto !important;
    bottom:auto !important;
    left:auto !important;
    transform:none !important;
    translate:none !important;
    margin:0 !important;
    justify-self:end !important;
    align-self:center !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 44px !important;
  }
}

@media (max-width:767px){
  .site-header .nav-shell,
  .site-header .nav-shell.shell{
    padding-left:16px !important;
    padding-right:16px !important;
  }
}

@media (min-width:768px) and (max-width:1180px){
  .site-header .nav-shell,
  .site-header .nav-shell.shell{
    padding-left:24px !important;
    padding-right:24px !important;
  }
}


/* =========================================================
   XIRIZ — FIX DEFINITIVO: hamburguesa al borde del gutter
   ========================================================= */
@media (max-width:1180px){
  .site-header .nav-shell,
  .site-header .nav-shell.shell{
    position:relative !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    box-sizing:border-box !important;
  }

  .site-header .nav-actions{
    margin-left:auto !important;
    margin-right:0 !important;
    padding-right:56px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:10px !important;
  }

  .site-header .menu-toggle{
    position:absolute !important;
    top:50% !important;
    bottom:auto !important;
    left:auto !important;
    transform:translateY(-50%) !important;
    translate:none !important;
    margin:0 !important;
    width:44px !important;
    height:44px !important;
    min-width:44px !important;
    min-height:44px !important;
    flex:none !important;
  }
}

@media (max-width:767px){
  .site-header .nav-shell,
  .site-header .nav-shell.shell{
    padding-left:16px !important;
    padding-right:16px !important;
  }
  .site-header .menu-toggle{right:16px !important;}
}

@media (min-width:768px) and (max-width:1180px){
  .site-header .nav-shell,
  .site-header .nav-shell.shell{
    padding-left:24px !important;
    padding-right:24px !important;
  }
  .site-header .menu-toggle{right:24px !important;}
}


/* =========================================================
   XIRIZ — HEADER TABLET/MOBILE FINAL
   tablet: Portal + EN + hamburguesa
   mobile: EN + hamburguesa
   ========================================================= */
@media (max-width:1180px){
  .site-header .nav-shell,
  .site-header .nav-shell.shell{
    position:relative !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    box-sizing:border-box !important;
    grid-template-columns:auto 1fr auto !important;
    align-items:center !important;
  }

  .site-header .brand{
    justify-self:start !important;
    margin:0 !important;
  }

  .site-header .nav-actions{
    position:static !important;
    justify-self:end !important;
    margin:0 !important;
    padding:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:8px !important;
    height:100% !important;
  }

  .site-header .mobile-lang{
    position:static !important;
    inset:auto !important;
    transform:none !important;
    translate:none !important;
    width:auto !important;
    min-width:auto !important;
    height:44px !important;
    min-height:44px !important;
    padding:0 4px !important;
    margin:0 !important;
    flex:0 0 auto !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    align-self:center !important;
    line-height:1 !important;
  }

  .site-header .menu-toggle{
    position:relative !important;
    inset:auto !important;
    top:auto !important;
    right:auto !important;
    bottom:auto !important;
    left:auto !important;
    transform:none !important;
    translate:none !important;
    width:44px !important;
    min-width:44px !important;
    height:44px !important;
    min-height:44px !important;
    margin:0 !important;
    flex:0 0 44px !important;
    align-self:center !important;
    justify-self:auto !important;
  }
}

/* Tablet: Portal visible and exact 24px side gutters */
@media (min-width:768px) and (max-width:1180px){
  .site-header .nav-shell,
  .site-header .nav-shell.shell{
    padding-left:24px !important;
    padding-right:24px !important;
  }

  .site-header .nav-actions > .portal-btn{
    display:inline-flex !important;
    height:46px !important;
    min-height:46px !important;
    margin:0 4px 0 0 !important;
  }

  .site-header .mobile-lang{
    margin-left:2px !important;
    margin-right:2px !important;
  }
}

/* Mobile: hide Portal in header, keep EN + hamburger at 16px gutter */
@media (max-width:767px){
  .site-header .nav-shell,
  .site-header .nav-shell.shell{
    padding-left:16px !important;
    padding-right:16px !important;
  }

  .site-header .nav-actions > .portal-btn{
    display:none !important;
  }

  .site-header .nav-actions{
    gap:8px !important;
  }
}

/* keep footer accordions compact on tablet/mobile */
@media (max-width:1180px){
  .footer-col > summary{
    height:52px !important;
    min-height:52px !important;
    padding:0 !important;
    margin:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    line-height:1 !important;
  }
  .footer-col > summary span{
    width:20px !important;
    min-width:20px !important;
    height:20px !important;
    min-height:20px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    font-size:22px !important;
    line-height:1 !important;
    margin:0 !important;
  }
}


/* =========================================================
   XIRIZ — HAMBURGUESA: MARGEN DERECHO FIJO Y SIMÉTRICO
   ========================================================= */
@media (max-width:1180px){
  .site-header{--header-edge:24px;}

  .site-header .nav-shell,
  .site-header .nav-shell.shell{
    position:relative !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding-left:var(--header-edge) !important;
    padding-right:var(--header-edge) !important;
    box-sizing:border-box !important;
  }

  /* Reserva el espacio del botón absoluto para que EN/Portal no se encimen */
  .site-header .nav-actions{
    padding-right:54px !important;
    margin-right:0 !important;
  }

  /* La hamburguesa queda anclada al borde del viewport/header */
  .site-header .menu-toggle{
    position:absolute !important;
    right:var(--header-edge) !important;
    left:auto !important;
    top:50% !important;
    bottom:auto !important;
    transform:translateY(-50%) !important;
    translate:none !important;
    margin:0 !important;
    width:44px !important;
    min-width:44px !important;
    height:44px !important;
    min-height:44px !important;
    flex:none !important;
    z-index:2 !important;
  }
}

@media (max-width:767px){
  .site-header{--header-edge:16px;}
}

/* =========================================================
   XIRIZ — footer acordeones más compactos y centrados
   ========================================================= */
@media (max-width:1180px){
  .footer-col > summary{
    min-height:46px !important;
    height:46px !important;
    padding:0 !important;
    margin:0 !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 20px !important;
    align-items:center !important;
    column-gap:12px !important;
    line-height:1 !important;
  }

  .footer-col > summary span{
    width:20px !important;
    min-width:20px !important;
    height:20px !important;
    min-height:20px !important;
    display:grid !important;
    place-items:center !important;
    align-self:center !important;
    justify-self:end !important;
    font-size:22px !important;
    line-height:1 !important;
    margin:0 !important;
    transform-origin:center center !important;
  }
}


/* 2026-10-07: footer accordion tabs shorter and vertically centered */
@media (max-width:1180px){
  .footer-col > summary{
    min-height:40px !important;
    height:40px !important;
    padding:0 !important;
    margin:0 !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 18px !important;
    align-items:center !important;
    align-content:center !important;
    column-gap:12px !important;
    font-size:13px !important;
    line-height:1 !important;
  }

  .footer-col > summary span{
    width:18px !important;
    min-width:18px !important;
    height:18px !important;
    min-height:18px !important;
    display:grid !important;
    place-items:center !important;
    align-self:center !important;
    justify-self:end !important;
    font-size:20px !important;
    line-height:1 !important;
    margin:0 !important;
    transform-origin:center center !important;
  }

  .footer-col[open] > div{
    padding-top:4px !important;
    padding-bottom:14px !important;
  }
}


/* =========================================================
   XIRIZ — breakpoint tablet corregido: Portal + EN + menú
   ========================================================= */
@media (min-width:768px) and (max-width:1180px){
  .site-header{--header-edge:24px !important;}
  .site-header .nav-shell,
  .site-header .nav-shell.shell{
    padding-left:24px !important;
    padding-right:24px !important;
  }
  .site-header .nav-actions > .portal-btn{
    display:inline-flex !important;
    min-height:46px !important;
    height:46px !important;
    padding-inline:18px !important;
  }
  .site-header .mobile-lang{
    display:inline-flex !important;
  }
  .site-header .menu-toggle{
    right:24px !important;
  }
}

@media (max-width:767px){
  .site-header{--header-edge:16px !important;}
  .site-header .nav-actions > .portal-btn{display:none !important;}
  .site-header .menu-toggle{right:16px !important;}
}

/* =========================================================
   XIRIZ — footer accordion final compact height
   ========================================================= */
@media (max-width:1180px){
  .footer-col > summary{
    height:36px !important;
    min-height:36px !important;
    padding:0 !important;
    margin:0 !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 18px !important;
    align-items:center !important;
    align-content:center !important;
    column-gap:10px !important;
    line-height:1 !important;
  }

  .footer-col > summary span{
    width:18px !important;
    min-width:18px !important;
    height:18px !important;
    min-height:18px !important;
    display:grid !important;
    place-items:center !important;
    align-self:center !important;
    justify-self:end !important;
    margin:0 !important;
    padding:0 !important;
    font-size:20px !important;
    line-height:1 !important;
  }
}

/* =========================================================
   XIRIZ — footer: centrado REAL entre líneas
   ========================================================= */
@media (max-width:1180px){
  /* Elimina el espacio externo que descentraba visualmente las pestañas */
  .footer-grid{
    row-gap:0 !important;
    gap:0 !important;
  }

  .footer-brand{
    margin-bottom:22px !important;
    padding-bottom:0 !important;
  }

  .footer-col,
  .footer-col:last-child{
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
  }

  /* Cada línea pasa a ser el límite real de la pestaña */
  .footer-col > summary{
    height:42px !important;
    min-height:42px !important;
    margin:0 !important;
    padding:0 !important;
    border-top:1px solid var(--line) !important;
    border-bottom:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
    font-size:13px !important;
    line-height:1 !important;
  }

  .footer-col:last-of-type > summary{
    border-bottom:1px solid var(--line) !important;
  }

  .footer-col > summary span{
    width:18px !important;
    height:18px !important;
    min-width:18px !important;
    min-height:18px !important;
    margin:0 !important;
    padding:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 18px !important;
    font-size:20px !important;
    line-height:1 !important;
  }

  .footer-col[open] > div{
    padding-top:8px !important;
    padding-bottom:14px !important;
  }
}


/* =========================================================
   XIRIZ — TABLET header: espacios visuales uniformes
   NO mueve la hamburguesa
   ========================================================= */
@media (min-width:768px) and (max-width:1180px){
  .site-header{--header-edge:24px !important;}

  /* La hamburguesa conserva exactamente su posición actual */
  .site-header .menu-toggle{
    right:24px !important;
  }

  /* EN se posiciona a 14px visuales de la hamburguesa */
  .site-header .mobile-lang{
    position:absolute !important;
    right:82px !important; /* 24 gutter + 44 botón + 14 separación */
    top:50% !important;
    transform:translateY(-50%) !important;
    width:24px !important;
    min-width:24px !important;
    height:44px !important;
    min-height:44px !important;
    margin:0 !important;
    padding:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    line-height:1 !important;
    z-index:2 !important;
  }

  /* Reserva exactamente el espacio de EN + separaciones + hamburguesa */
  .site-header .nav-actions{
    padding-right:96px !important;
    gap:0 !important;
  }

  .site-header .nav-actions > .portal-btn{
    margin:0 !important;
  }
}

/* =========================================================
   XIRIZ — HEADER SPACING FORCE
   EN/ES a 20px de la hamburguesa
   Portal a 20px de EN/ES
   Mantiene fija la hamburguesa
   ========================================================= */
@media (min-width:768px) and (max-width:1180px){
  .site-header{
    --header-edge:24px !important;
  }

  .site-header .nav-actions{
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    min-width:360px !important;
    width:360px !important;
    padding-right:0 !important;
    gap:0 !important;
  }

  /* hamburguesa fija en su borde derecho actual */
  .site-header .menu-toggle{
    position:absolute !important;
    right:24px !important;
    top:50% !important;
    transform:translateY(-50%) !important;
    margin:0 !important;
  }

  /* EN / ES exactamente a 20px de la hamburguesa */
  .site-header .mobile-lang{
    position:absolute !important;
    right:88px !important; /* 24 + 44 + 20 */
    top:50% !important;
    transform:translateY(-50%) !important;
    width:24px !important;
    min-width:24px !important;
    height:44px !important;
    min-height:44px !important;
    margin:0 !important;
    padding:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    line-height:1 !important;
    z-index:2 !important;
  }

  /* Portal exactamente a 20px de EN / ES */
  .site-header .nav-actions > .portal-btn{
    position:absolute !important;
    right:132px !important; /* 24 + 44 + 20 + 24 + 20 */
    top:50% !important;
    transform:translateY(-50%) !important;
    margin:0 !important;
    z-index:1 !important;
    display:inline-flex !important;
  }

  .site-header .nav-actions > .header-cta{
    display:none !important;
  }
}

@media (max-width:767px){
  .site-header{
    --header-edge:16px !important;
  }

  .site-header .nav-actions{
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    min-width:120px !important;
    width:120px !important;
    padding-right:0 !important;
    gap:0 !important;
  }

  .site-header .nav-actions > .portal-btn,
  .site-header .nav-actions > .header-cta{
    display:none !important;
  }

  /* hamburguesa fija en móvil */
  .site-header .menu-toggle{
    position:absolute !important;
    right:16px !important;
    top:50% !important;
    transform:translateY(-50%) !important;
    margin:0 !important;
  }

  /* EN / ES exactamente a 20px de la hamburguesa */
  .site-header .mobile-lang{
    position:absolute !important;
    right:80px !important; /* 16 + 44 + 20 */
    top:50% !important;
    transform:translateY(-50%) !important;
    width:24px !important;
    min-width:24px !important;
    height:44px !important;
    min-height:44px !important;
    margin:0 !important;
    padding:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    line-height:1 !important;
  }
}

/* =========================================================
   XIRIZ — HEADER RESPONSIVE FINAL
   Tablet: Portal —20px— EN/ES —20px— menu
   Mobile: EN/ES —20px— menu
   Hamburger stays on the header right gutter.
   ========================================================= */
@media (max-width:1180px){
  .site-header .nav-shell,
  .site-header .nav-shell.shell{
    position:relative !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    box-sizing:border-box !important;
    grid-template-columns:auto minmax(0,1fr) auto !important;
    align-items:center !important;
  }

  .site-header .brand{
    position:relative !important;
    inset:auto !important;
    transform:none !important;
    margin:0 !important;
    justify-self:start !important;
  }

  .site-header .nav-actions{
    position:relative !important;
    inset:auto !important;
    transform:none !important;
    width:auto !important;
    min-width:0 !important;
    height:auto !important;
    margin:0 !important;
    padding:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:20px !important;
    justify-self:end !important;
  }

  .site-header .mobile-lang,
  .site-header .menu-toggle,
  .site-header .nav-actions > .portal-btn{
    position:relative !important;
    inset:auto !important;
    top:auto !important;
    right:auto !important;
    bottom:auto !important;
    left:auto !important;
    transform:none !important;
    translate:none !important;
    margin:0 !important;
    align-self:center !important;
  }

  .site-header .mobile-lang{
    width:auto !important;
    min-width:0 !important;
    height:44px !important;
    min-height:44px !important;
    padding:0 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    line-height:1 !important;
    flex:0 0 auto !important;
  }

  .site-header .menu-toggle{
    width:44px !important;
    min-width:44px !important;
    height:44px !important;
    min-height:44px !important;
    flex:0 0 44px !important;
  }

  .site-header .nav-actions > .header-cta{
    display:none !important;
  }
}

@media (min-width:768px) and (max-width:1180px){
  .site-header .nav-shell,
  .site-header .nav-shell.shell{
    padding-left:24px !important;
    padding-right:24px !important;
  }

  .site-header .nav-actions > .portal-btn{
    display:inline-flex !important;
    min-height:46px !important;
    height:46px !important;
    flex:0 0 auto !important;
  }
}

@media (max-width:767px){
  .site-header .nav-shell,
  .site-header .nav-shell.shell{
    padding-left:16px !important;
    padding-right:16px !important;
  }

  .site-header .nav-actions > .portal-btn{
    display:none !important;
  }
}

/* Place responsive action group explicitly in the third grid column.
   Desktop nav is hidden at this breakpoint, so auto-placement would otherwise
   put actions in column 2 and leave an extra gap at the right. */
@media (max-width:1180px){
  .site-header .nav-actions{
    grid-column:3 !important;
  }
}

/* =========================================================
   XIRIZ — BOTONES DEEP INDIGO VIOLET
   Referencia: #3C2080 / rgb(60, 32, 128)
   ========================================================= */
:root{
  --button-taupe:#3C2080;
  --button-taupe-hover:#4a299b;
  --button-taupe-border:#5536a2;
  --button-text:#f4f2ef;
}

/* Botones principales y Portal */
.portal-btn,
.header-cta,
.btn,
.form-submit,
.mobile-actions .portal-btn,
.mobile-actions .header-cta{
  background:var(--button-taupe) !important;
  border-color:var(--button-taupe-border) !important;
  color:var(--button-text) !important;
  box-shadow:none !important;
}

.portal-btn:hover,
.header-cta:hover,
.btn:hover,
.form-submit:hover,
.mobile-actions .portal-btn:hover,
.mobile-actions .header-cta:hover{
  background:var(--button-taupe-hover) !important;
  border-color:var(--button-taupe-hover) !important;
  color:#fff !important;
  opacity:1 !important;
}

/* Botones secundarios: mismo tono, ligeramente translúcido */
.btn.secondary{
  background:rgba(91,82,74,.78) !important;
  border-color:rgba(112,102,93,.9) !important;
  color:var(--button-text) !important;
  backdrop-filter:blur(8px);
}

.btn.secondary:hover{
  background:var(--button-taupe-hover) !important;
}

/* Estados seleccionados que se comportan como botones */
.filters .active{
  background:var(--button-taupe) !important;
  border-color:var(--button-taupe-border) !important;
  color:var(--button-text) !important;
}


/* =========================================================
   XIRIZ — RUTAS ABSOLUTAS DE IMÁGENES YA SUBIDAS
   ========================================================= */
/* Inicio: slide de 3 imágenes */
body[data-lang="es"] .hero-home .home-slide:nth-child(1){background-image:url('/img/headers/inicio/1.webp') !important;}
body[data-lang="es"] .hero-home .home-slide:nth-child(2){background-image:url('/img/headers/inicio/2.webp') !important;}
body[data-lang="es"] .hero-home .home-slide:nth-child(3){background-image:url('/img/headers/inicio/3.webp') !important;}

/* Soluciones */
body[data-route="/soluciones/desarrollo-web/"] .hero{background-image:url('/img/headers/soluciones/desarrollo-web.webp') !important;}
body[data-route="/soluciones/aplicaciones-moviles/"] .hero{background-image:url('/img/headers/soluciones/aplicaciones-moviles.webp') !important;}
body[data-route="/soluciones/crm-automatizacion/"] .hero{background-image:url('/img/headers/soluciones/crm-automatizacion.webp') !important;}

/* Tipo de empresa */
body[data-route="/empresas/pymes/"] .hero{background-image:url('/img/headers/empresa/pymes.webp') !important;}
body[data-route="/empresas/enterprise/"] .hero{background-image:url('/img/headers/empresa/enterprise.webp') !important;}

/* Cobertura */
/* Bloque de cobertura en Inicio: utiliza imagen local ya existente */
body[data-route="/"] .location-grid{
  position:relative !important;
  min-height:180px !important;
  isolation:isolate !important;
  background:#111 !important;
}
body[data-route="/"] .location-grid > a{
  position:relative !important;
  z-index:1 !important;
  min-height:180px !important;
  background:rgba(20,20,20,.78) !important;
}


/* =========================================================
   XIRIZ — RESTAURACIÓN FINAL SLIDE INICIO · 3 IMÁGENES · 60VH
   ========================================================= */
.hero-home{
  position:relative !important;
  height:60vh !important;
  min-height:620px !important;
  max-height:none !important;
  background-image:none !important;
  overflow:hidden !important;
  isolation:isolate !important;
}

.hero-home .home-slider{
  position:absolute !important;
  inset:0 !important;
  z-index:-2 !important;
  pointer-events:none !important;
}

.hero-home .home-slide{
  position:absolute !important;
  inset:0 !important;
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
  opacity:0;
  transform:scale(1.035);
  animation:xirizHomeSlide 18s infinite;
  will-change:opacity,transform;
}

.hero-home .home-slide:nth-child(1){
  background-image:url('/img/headers/inicio/1.webp') !important;
  animation-delay:0s;
}
.hero-home .home-slide:nth-child(2){
  background-image:url('/img/headers/inicio/2.webp') !important;
  animation-delay:6s;
}
.hero-home .home-slide:nth-child(3){
  background-image:url('/img/headers/inicio/3.webp') !important;
  animation-delay:12s;
}

@keyframes xirizHomeSlide{
  0%{opacity:0;transform:scale(1.035)}
  5%{opacity:1}
  28%{opacity:1;transform:scale(1)}
  33.333%{opacity:0}
  100%{opacity:0;transform:scale(1)}
}

.hero-home .hero-overlay{z-index:-1 !important;}
.hero-home .hero-content{position:relative !important;z-index:1 !important;}

@media (max-width:1180px){
  .hero-home{
    height:60vh !important;
    min-height:580px !important;
  }
}
@media (max-width:767px){
  .hero-home{
    height:60vh !important;
    min-height:560px !important;
  }
}
@media (prefers-reduced-motion:reduce){
  .hero-home .home-slide{
    animation:none !important;
    transform:none !important;
    opacity:0 !important;
  }
  .hero-home .home-slide:first-child{opacity:1 !important;}
}

/* =========================================================
   XIRIZ — BOTONES GRIS TRANSLÚCIDO + BLUR
   ========================================================= */
:root{
  --glass-gray-bg:rgba(122,122,122,.20);
  --glass-gray-bg-hover:rgba(148,148,148,.28);
  --glass-gray-border:rgba(235,235,235,.20);
  --glass-gray-border-hover:rgba(245,245,245,.30);
  --glass-gray-text:#f2f2f2;
}

.portal-btn,
.mobile-actions .portal-btn,
.btn.secondary{
  background:var(--glass-gray-bg) !important;
  border-color:var(--glass-gray-border) !important;
  color:var(--glass-gray-text) !important;
  backdrop-filter:blur(16px) !important;
  -webkit-backdrop-filter:blur(16px) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.07),
    0 8px 24px rgba(0,0,0,.15) !important;
  opacity:1 !important;
}

.portal-btn:hover,
.mobile-actions .portal-btn:hover,
.btn.secondary:hover{
  background:var(--glass-gray-bg-hover) !important;
  border-color:var(--glass-gray-border-hover) !important;
  color:#fff !important;
  opacity:1 !important;
}


/* =========================================================
   XIRIZ — HEADERS INTERNOS 40% MÁS BAJOS
   Inicio conserva su slide a 60vh.
   ========================================================= */
.hero:not(.hero-home){
  min-height:366px !important;
  height:auto !important;
}
.hero:not(.hero-home) .hero-content{
  padding-top:42px !important;
  padding-bottom:42px !important;
}
.hero h1{
  font-size:clamp(36px,4.15vw,60px) !important;
  line-height:1.02 !important;
  max-width:980px !important;
  margin-bottom:22px !important;
}
.hero .breadcrumb{
  margin-bottom:16px !important;
  font-size:11px !important;
}
.hero .eyebrow{
  margin-bottom:15px !important;
  font-size:11px !important;
}
.hero .hero-lead{
  font-size:16px !important;
  max-width:760px !important;
}
.hero .hero-actions{
  margin-top:26px !important;
}
@media (max-width:1180px){
  .hero:not(.hero-home){
    min-height:336px !important;
  }
  .hero:not(.hero-home) .hero-content{
    padding-top:36px !important;
    padding-bottom:36px !important;
  }
  .hero h1{
    font-size:clamp(34px,5.6vw,52px) !important;
  }
}
@media (max-width:767px){
  .hero:not(.hero-home){
    min-height:366px !important;
  }
  .hero:not(.hero-home) .hero-content{
    padding-top:30px !important;
    padding-bottom:30px !important;
  }
  .hero h1{
    font-size:clamp(32px,8.6vw,46px) !important;
    line-height:1.04 !important;
    margin-bottom:18px !important;
  }
  .hero .hero-lead{
    font-size:15px !important;
  }
  .hero .hero-actions{
    margin-top:22px !important;
  }
}


/* =========================================================
   XIRIZ — PORTAL: SOLO LOGIN CENTRADO
   ========================================================= */
.portal-shell.portal-shell-login-only{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  width:100% !important;
  max-width:none !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  overflow:visible !important;
}

.portal-shell-login-only .portal-login{
  width:100% !important;
  max-width:560px !important;
  padding:0 !important;
  margin:0 auto !important;
  display:block !important;
}

.portal-shell-login-only .portal-login-card{
  width:100% !important;
  padding:34px !important;
  border:1px solid #363636 !important;
  border-radius:6px !important;
  background:#151515 !important;
  box-shadow:0 18px 42px rgba(0,0,0,.16) !important;
}

.portal-shell-login-only .portal-login-card h3{
  margin-top:12px !important;
}

.portal-shell-login-only .portal-login-card form{
  margin-top:24px !important;
}

@media (max-width:767px){
  .portal-shell-login-only .portal-login-card{
    padding:28px 22px !important;
  }
}


/* =========================================================
   XIRIZ — H2 MÁS PEQUEÑOS Y MENOS BOLD
   ========================================================= */
h2,
.section-head h2,
.form-copy h2,
.cta-panel h2,
.portal-overview h2,
.capability-accordion h2{
  font-size:clamp(30px,3.15vw,46px) !important;
  font-weight:600 !important;
  line-height:1.08 !important;
  letter-spacing:-.035em !important;
}

@media (max-width:1180px){
  h2,
  .section-head h2,
  .form-copy h2,
  .cta-panel h2,
  .portal-overview h2,
  .capability-accordion h2{
    font-size:clamp(28px,4.2vw,40px) !important;
  }
}

@media (max-width:767px){
  h2,
  .section-head h2,
  .form-copy h2,
  .cta-panel h2,
  .portal-overview h2,
  .capability-accordion h2{
    font-size:30px !important;
    font-weight:600 !important;
  }
}


/* =========================================================
   XIRIZ — DISCOVERY → PROTOTIPO → DESARROLLO → SOPORTE
   Mantener en una sola línea en escritorio/tableta.
   ========================================================= */
@media (min-width:768px){
  h2.discovery-flow,
  .discovery-flow h2,
  [data-discovery-flow] h2{
    white-space:nowrap !important;
    font-size:clamp(24px,2.65vw,40px) !important;
    letter-spacing:-.03em !important;
  }
}


/* =========================================================
   XIRIZ — METODOLOGÍA EN UNA SOLA LÍNEA · ESCRITORIO
   ========================================================= */
@media (min-width:1181px){
  .methodology-title{
    white-space:nowrap !important;
    font-size:clamp(30px,2.65vw,42px) !important;
    line-height:1.05 !important;
    letter-spacing:-.035em !important;
    max-width:none !important;
    width:max-content !important;
  }

  .methodology-title + *{
    clear:both;
  }
}


/* =========================================================
   XIRIZ — CAPACIDADES SIEMPRE VISIBLES · SIN ACORDEÓN
   ========================================================= */
.capability-static{
  display:block !important;
}

.capability-static-head{
  margin-bottom:34px !important;
}

.capability-static-head .eyebrow{
  margin-bottom:20px;
}

.capability-static-head h2{
  margin:0 !important;
}

@media (max-width:767px){
  .capability-static-head{
    margin-bottom:26px !important;
  }
}


/* =========================================================
   XIRIZ — FOOTER ACORDEONES MINIMALISTAS
   Tablet y móvil · estilo limpio con chevron
   ========================================================= */
@media (max-width:1180px){

  .footer{
    padding-top:34px !important;
  }

  .footer-grid{
    gap:0 !important;
    row-gap:0 !important;
  }

  .footer-col,
  .footer-col:last-child{
    border:0 !important;
    margin:0 !important;
    padding:0 !important;
  }

  .footer-col summary{
    min-height:54px !important;
    height:54px !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:18px !important;
    cursor:pointer !important;

    font-size:12px !important;
    font-weight:650 !important;
    letter-spacing:.04em !important;
    line-height:1.2 !important;
    text-transform:none !important;
    color:#e5e5e5 !important;
  }

  /* Quitar el + y usar chevron discreto */
  .footer-col summary span{
    position:relative !important;
    width:18px !important;
    height:18px !important;
    min-width:18px !important;
    display:block !important;
    font-size:0 !important;
    line-height:0 !important;
    transform:none !important;
  }

  .footer-col summary span::before{
    content:"" !important;
    position:absolute !important;
    left:50% !important;
    top:45% !important;
    width:6px !important;
    height:6px !important;
    border-right:1.5px solid #a9a9a9 !important;
    border-bottom:1.5px solid #a9a9a9 !important;
    transform:translate(-50%,-50%) rotate(45deg) !important;
    transition:transform .2s ease, top .2s ease !important;
  }

  .footer-col[open] summary span::before{
    top:57% !important;
    transform:translate(-50%,-50%) rotate(225deg) !important;
  }

  .footer-col > div,
  .footer-col[open] > div{
    padding:2px 0 18px !important;
    gap:0 !important;
    border:0 !important;
  }

  .footer-col > div a{
    min-height:36px !important;
    display:flex !important;
    align-items:center !important;
    padding:5px 0 !important;
    font-size:12px !important;
    font-weight:400 !important;
    color:#9f9f9f !important;
    border:0 !important;
  }

  .footer-col > div a:hover{
    color:#ffffff !important;
  }

  .footer-bottom{
    margin-top:24px !important;
  }
}

@media (max-width:767px){
  .footer{
    padding-top:28px !important;
  }

  .footer-col summary{
    min-height:50px !important;
    height:50px !important;
    font-size:12px !important;
  }

  .footer-col > div,
  .footer-col[open] > div{
    padding-bottom:15px !important;
  }

  .footer-col > div a{
    min-height:34px !important;
    font-size:12px !important;
  }
}


/* =========================================================
   XIRIZ — ANIMACIONES SUAVES
   Footer acordeones + menú tablet/móvil
   ========================================================= */

/* MENÚ RESPONSIVE: slide suave de arriba hacia abajo */
@media (max-width:1180px){
  .mobile-menu{
    display:block !important;
    visibility:hidden;
    opacity:0;
    transform:translateY(-18px);
    pointer-events:none;
    transition:
      opacity .32s ease,
      transform .38s cubic-bezier(.22,.61,.36,1),
      visibility 0s linear .38s !important;
    will-change:opacity,transform;
  }

  .mobile-menu.is-opening,
  .mobile-menu.is-open{
    visibility:visible;
    opacity:1;
    transform:translateY(0);
    pointer-events:auto;
    transition:
      opacity .32s ease,
      transform .38s cubic-bezier(.22,.61,.36,1),
      visibility 0s !important;
  }

  .mobile-menu.is-closing{
    visibility:visible;
    opacity:0;
    transform:translateY(-18px);
    pointer-events:none;
  }

  /* El atributo hidden ya no debe cortar la animación */
  .mobile-menu[hidden]{
    display:block !important;
  }

  .mobile-menu-inner{
    opacity:0;
    transform:translateY(-10px);
    transition:
      opacity .26s ease .06s,
      transform .34s cubic-bezier(.22,.61,.36,1) .04s;
  }

  .mobile-menu.is-opening .mobile-menu-inner,
  .mobile-menu.is-open .mobile-menu-inner{
    opacity:1;
    transform:translateY(0);
  }

  .mobile-menu.is-closing .mobile-menu-inner{
    opacity:0;
    transform:translateY(-10px);
    transition-delay:0s;
  }
}

/* FOOTER: apertura/cierre con slide suave */
@media (max-width:1180px){
  .footer-col > div{
    display:grid !important;
    grid-template-rows:0fr;
    opacity:0;
    overflow:hidden;
    padding-top:0 !important;
    padding-bottom:0 !important;
    transition:
      grid-template-rows .34s cubic-bezier(.22,.61,.36,1),
      opacity .24s ease,
      padding-bottom .34s ease !important;
  }

  .footer-col > div > *{
    min-height:0;
  }

  .footer-col[open] > div{
    grid-template-rows:1fr;
    opacity:1;
    padding-bottom:18px !important;
  }

  .footer-col summary span::before{
    transition:
      transform .28s ease,
      top .28s ease !important;
  }
}

@media (max-width:767px){
  .footer-col[open] > div{
    padding-bottom:15px !important;
  }
}

@media (prefers-reduced-motion:reduce){
  .mobile-menu,
  .mobile-menu-inner,
  .footer-col > div,
  .footer-col summary span::before{
    transition:none !important;
  }
}


/* =========================================================
   XIRIZ — FOOTER SIN LÍNEA HORIZONTAL INTERNA
   ========================================================= */
@media (max-width:1180px){
  .footer-col > div,
  .footer-col[open] > div,
  .footer-col > div::before,
  .footer-col > div::after{
    border-top:0 !important;
    border-bottom:0 !important;
    box-shadow:none !important;
  }

  .footer-col > div a,
  .footer-col > div p,
  .footer-col > div span{
    border-top:0 !important;
    border-bottom:0 !important;
  }
}


/* =========================================================
   XIRIZ — FIX ANIMACIONES SIN BRINCOS
   Un solo sistema controla menú + details
   ========================================================= */
@media (max-width:1180px){
  /* Menú: no usar display:none durante la transición */
  .mobile-menu{
    display:block !important;
    visibility:hidden !important;
    opacity:0 !important;
    transform:translateY(-14px) !important;
    pointer-events:none !important;
    transition:
      opacity .30s ease,
      transform .36s cubic-bezier(.22,.61,.36,1),
      visibility 0s linear .36s !important;
  }

  .mobile-menu[hidden]{
    display:none !important;
  }

  .mobile-menu.is-preopen,
  .mobile-menu.is-open,
  .mobile-menu.is-closing{
    display:block !important;
  }

  .mobile-menu.is-preopen{
    visibility:visible !important;
    opacity:0 !important;
    transform:translateY(-14px) !important;
  }

  .mobile-menu.is-open{
    visibility:visible !important;
    opacity:1 !important;
    transform:translateY(0) !important;
    pointer-events:auto !important;
    transition:
      opacity .30s ease,
      transform .36s cubic-bezier(.22,.61,.36,1),
      visibility 0s !important;
  }

  .mobile-menu.is-closing{
    visibility:visible !important;
    opacity:0 !important;
    transform:translateY(-14px) !important;
    pointer-events:none !important;
  }

  .mobile-menu-inner{
    transform:none !important;
    opacity:1 !important;
    transition:none !important;
  }

  /* Desactivar reglas de grid/height antiguas que causaban saltos */
  .footer-col > div,
  .footer-col[open] > div,
  .mobile-nav details > .mobile-sub{
    grid-template-rows:none !important;
    transition:none !important;
    animation:none !important;
  }

  .footer-col:not([open]) > div{
    display:none !important;
  }

  .footer-col[open] > div{
    display:grid !important;
  }

  .mobile-nav details:not([open]) > .mobile-sub{
    display:none !important;
  }

  .mobile-nav details[open] > .mobile-sub{
    display:grid !important;
  }
}

@media (prefers-reduced-motion:reduce){
  .mobile-menu{
    transition:none !important;
  }
}


/* =========================================================
   XIRIZ — ACORDEONES SIN LÍNEA HORIZONTAL
   ========================================================= */
@media (max-width:1180px){
  .footer-col,
  .footer-col summary,
  .footer-col > div,
  .footer-col[open] > div,
  .mobile-nav details,
  .mobile-nav details > summary,
  .mobile-nav details > .mobile-sub{
    border-top:0 !important;
    border-bottom:0 !important;
    box-shadow:none !important;
  }

  .footer-col summary::before,
  .footer-col summary::after,
  .mobile-nav details > summary::before,
  .mobile-nav details > summary::after{
    border:0 !important;
    box-shadow:none !important;
  }
}


/* =========================================================
   XIRIZ — ACORDEONES ESTABLES · SIN BRINCOS / PAUSAS
   ========================================================= */
@media (max-width:1180px){

  /* El navegador nunca debe ocultar el panel por [open]. */
  .mobile-nav details > .mobile-sub,
  .footer-col > div{
    display:grid !important;
    min-height:0 !important;
    overflow:hidden;
    transition:none !important;
    animation:none !important;
    border:0 !important;
    box-shadow:none !important;
  }

  .mobile-nav details:not([open]) > .mobile-sub,
  .footer-col:not([open]) > div{
    display:grid !important;
  }

  /* El espacio vertical vive dentro de los enlaces, no en el contenedor animado. */
  .mobile-nav .mobile-sub{
    padding-top:0 !important;
    padding-bottom:0 !important;
  }

  .footer-col > div,
  .footer-col[open] > div{
    padding-top:0 !important;
    padding-bottom:0 !important;
  }

  /* Flecha según estado visual real, no según atributo open. */
  .footer-col summary span::before{
    top:57% !important;
    transform:translate(-50%,-50%) rotate(225deg) !important;
    transition:transform .24s ease,top .24s ease !important;
  }

  .footer-col.is-collapsed summary span::before,
  .footer-col.is-collapsing summary span::before{
    top:45% !important;
    transform:translate(-50%,-50%) rotate(45deg) !important;
  }

  .mobile-nav details > summary span{
    transform:rotate(45deg) !important;
    transition:transform .24s ease !important;
  }

  .mobile-nav details.is-collapsed > summary span,
  .mobile-nav details.is-collapsing > summary span{
    transform:rotate(0deg) !important;
  }

  /* Evitar cualquier reflow animado heredado. */
  details.is-expanding,
  details.is-collapsing,
  details.is-collapsed{
    contain:layout style !important;
  }
}

@media (prefers-reduced-motion:reduce){
  .mobile-nav details > .mobile-sub,
  .footer-col > div{
    transition:none !important;
  }
}


/* =========================================================
   XIRIZ — FOOTER SIN LÍNEAS · MENÚ MÓVIL CON DIVISORES
   ========================================================= */
@media (max-width:1180px){

  /* FOOTER: sin ninguna línea horizontal */
  .footer-col,
  .footer-col summary,
  .footer-col > div,
  .footer-col[open] > div,
  .footer-col > div a,
  .footer-col > div p,
  .footer-col > div span{
    border-top:0 !important;
    border-bottom:0 !important;
    box-shadow:none !important;
  }

  .footer-col summary::before,
  .footer-col summary::after,
  .footer-col > div::before,
  .footer-col > div::after{
    border:0 !important;
    box-shadow:none !important;
  }

  /* MENÚ TABLETA / MÓVIL: restaurar líneas divisorias */
  .mobile-nav > a,
  .mobile-nav > details > summary{
    border-bottom:1px solid var(--line) !important;
  }

  /* Sin línea extra dentro de los submenús */
  .mobile-nav .mobile-sub,
  .mobile-nav .mobile-sub a{
    border-top:0 !important;
    border-bottom:0 !important;
  }

  /* Evitar doble línea después de un acordeón abierto */
  .mobile-nav details[open] + details > summary,
  .mobile-nav details[open] + a{
    border-top:0 !important;
  }
}


/* =========================================================
   XIRIZ — HERO TABLETA / MÓVIL: CONTENIDO AL BOTTOM 20PX
   ========================================================= */
@media (max-width:1180px){
  .hero{
    align-items:flex-end !important;
  }

  .hero .hero-content{
    width:100% !important;
    padding-top:28px !important;
    padding-bottom:20px !important;
    margin-top:auto !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-end !important;
    align-self:flex-end !important;
  }

  .hero-home .hero-content{
    min-height:100% !important;
  }

  .hero .hero-actions{
    width:100% !important;
    margin-top:22px !important;
    margin-bottom:0 !important;
  }
}

@media (max-width:767px){
  .hero .hero-content{
    padding-top:22px !important;
    padding-bottom:20px !important;
  }

  .hero .hero-actions{
    margin-top:20px !important;
  }
}


/* =========================================================
   XIRIZ — MENÚ TABLETA / MÓVIL ALINEADO A LA DERECHA
   Líneas solo en items principales; submenús sin líneas
   ========================================================= */
@media (max-width:1180px){

  .mobile-nav{
    text-align:right !important;
  }

  /* Items principales */
  .mobile-nav > a,
  .mobile-nav > details > summary{
    width:100% !important;
    min-height:62px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:14px !important;
    text-align:right !important;
    border-top:1px solid var(--line) !important;
    border-bottom:1px solid var(--line) !important;
  }

  /* Evitar doble grosor visual entre items consecutivos */
  .mobile-nav > a + a,
  .mobile-nav > details + a,
  .mobile-nav > a + details > summary,
  .mobile-nav > details + details > summary{
    border-top:0 !important;
  }

  /* Texto y control del summary agrupados a la derecha */
  .mobile-nav > details > summary span{
    position:relative !important;
    margin-left:4px !important;
    flex:0 0 auto !important;
  }

  /* Submenús alineados a la derecha y sin líneas */
  .mobile-nav .mobile-sub{
    width:100% !important;
    text-align:right !important;
    border:0 !important;
    box-shadow:none !important;
  }

  .mobile-nav .mobile-sub a{
    width:100% !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    text-align:right !important;
    padding-left:14px !important;
    padding-right:0 !important;
    border:0 !important;
    box-shadow:none !important;
  }

  .mobile-nav .mobile-sub::before,
  .mobile-nav .mobile-sub::after,
  .mobile-nav .mobile-sub a::before,
  .mobile-nav .mobile-sub a::after{
    border:0 !important;
    box-shadow:none !important;
  }

  /* Acciones del menú también cargadas a la derecha */
  .mobile-actions{
    justify-items:end !important;
    text-align:right !important;
  }
}


/* =========================================================
   XIRIZ — HERO RESPONSIVE REALMENTE PEGADO AL BOTTOM 20PX
   ========================================================= */
@media (max-width:1180px){

  .hero{
    position:relative !important;
    display:block !important;
  }

  .hero .hero-content{
    position:absolute !important;
    left:var(--gutter) !important;
    right:var(--gutter) !important;
    bottom:20px !important;
    width:auto !important;
    margin:0 !important;
    padding:0 !important;
    display:block !important;
    min-height:0 !important;
    max-width:none !important;
    z-index:2 !important;
  }

  .hero-home .hero-content{
    min-height:0 !important;
  }

  .hero .hero-actions{
    margin-top:20px !important;
    margin-bottom:0 !important;
  }
}

@media (max-width:767px){
  .hero .hero-content{
    left:16px !important;
    right:16px !important;
    bottom:20px !important;
  }
}


/* =========================================================
   XIRIZ — MENÚ RESPONSIVE ALINEADO A LA IZQUIERDA
   Empresas y Cobertura con línea superior
   ========================================================= */
@media (max-width:1180px){

  .mobile-nav{
    text-align:left !important;
  }

  .mobile-nav > a,
  .mobile-nav > details > summary{
    justify-content:space-between !important;
    text-align:left !important;
  }

  .mobile-nav > details > summary{
    gap:14px !important;
  }

  /* Submenús a la izquierda, sin líneas */
  .mobile-nav .mobile-sub{
    text-align:left !important;
    border:0 !important;
  }

  .mobile-nav .mobile-sub a{
    justify-content:flex-start !important;
    text-align:left !important;
    padding-left:14px !important;
    padding-right:14px !important;
    border:0 !important;
  }

  /* Línea superior para Empresas */
  .mobile-nav > details:nth-of-type(2) > summary{
    border-top:1px solid var(--line) !important;
  }

  /* Línea superior para Cobertura */
  .mobile-nav > a[href="/cobertura/"],
  .mobile-nav > a[href="/en/coverage/"]{
    border-top:1px solid var(--line) !important;
  }

  /* Mantener divisores principales */
  .mobile-nav > a,
  .mobile-nav > details > summary{
    border-bottom:1px solid var(--line) !important;
  }

  /* Acciones */
  .mobile-actions{
    justify-items:stretch !important;
    text-align:left !important;
  }
}


/* =========================================================
   XIRIZ — HERO RESPONSIVE: MÁRGENES LATERALES CORREGIDOS
   ========================================================= */
@media (min-width:768px) and (max-width:1180px){
  .hero .hero-content{
    left:24px !important;
    right:24px !important;
    width:auto !important;
    max-width:none !important;
    box-sizing:border-box !important;
  }
}

@media (max-width:767px){
  .hero .hero-content{
    left:16px !important;
    right:16px !important;
    width:auto !important;
    max-width:none !important;
    box-sizing:border-box !important;
  }

  .hero .hero-actions{
    width:100% !important;
  }

  .hero .hero-actions .btn{
    width:100% !important;
  }
}


/* =========================================================
   XIRIZ — LÍNEA SUPERIOR FORZADA EN EMPRESAS Y COBERTURA
   ========================================================= */
@media (max-width:1180px){

  /* EMPRESAS: segunda agrupación <details> del menú */
  .mobile-nav > details:nth-of-type(2) > summary{
    position:relative !important;
    border-top:0 !important;
    box-shadow:inset 0 1px 0 var(--line) !important;
  }

  /* COBERTURA */
  .mobile-nav > a[href="/cobertura/"],
  .mobile-nav > a[href="/en/coverage/"]{
    position:relative !important;
    border-top:0 !important;
    box-shadow:inset 0 1px 0 var(--line) !important;
  }

  /* Submenús permanecen sin líneas */
  .mobile-nav .mobile-sub,
  .mobile-nav .mobile-sub a{
    border-top:0 !important;
    border-bottom:0 !important;
    box-shadow:none !important;
  }
}


/* =========================================================
   XIRIZ — FOOTER: QUITAR LÍNEA BAJO ESTÁNDARES TECNOLÓGICOS
   ========================================================= */
@media (max-width:1180px){
  .footer-col,
  .footer-col summary,
  .footer-col[open] summary,
  .footer-col > div,
  .footer-col[open] > div{
    border-top:0 !important;
    border-bottom:0 !important;
    box-shadow:none !important;
  }

  .footer-col summary::before,
  .footer-col summary::after,
  .footer-col > div::before,
  .footer-col > div::after{
    border:0 !important;
    box-shadow:none !important;
  }
}


/* =========================================================
   XIRIZ — COBERTURA: ANCLAS AL RAS DE LA SECCIÓN
   Evita que el header fijo cubra el inicio de cada hub.
   ========================================================= */
#cdmx,
#guadalajara,
#monterrey,
#tijuana,
#mexico-city{
  scroll-margin-top:var(--header-h) !important;
}

/* En escritorio, al hacer scroll el topbar desaparece y queda solo el header */
@media (min-width:1181px){
  #cdmx,
  #guadalajara,
  #monterrey,
  #tijuana,
  #mexico-city{
    scroll-margin-top:var(--header-h) !important;
  }
}


/* =========================================================
   XIRIZ — HERO MÓVIL: TEXTOS MÁS COMPACTOS Y LEGIBLES
   ========================================================= */
@media (max-width:767px){

  .hero h1{
    font-size:clamp(28px,8vw,38px) !important;
    line-height:1.03 !important;
    letter-spacing:-.04em !important;
    margin-bottom:16px !important;
    max-width:100% !important;
  }

  .hero .hero-lead{
    font-size:14px !important;
    line-height:1.48 !important;
    max-width:100% !important;
  }

  .hero .eyebrow{
    font-size:9.5px !important;
    letter-spacing:.13em !important;
    margin-bottom:12px !important;
    line-height:1.35 !important;
  }

  .hero .breadcrumb{
    font-size:10px !important;
    margin-bottom:12px !important;
  }

  .hero .hero-actions{
    margin-top:16px !important;
    gap:10px !important;
  }

  .hero .hero-actions .btn{
    min-height:48px !important;
    font-size:12px !important;
  }
}

/* En las páginas de Soluciones, un solo CTA ocupa todo el ancho */
@media (max-width:1180px){
  .hero .hero-actions .btn:only-child{
    width:100% !important;
  }
}


/* =========================================================
   XIRIZ — PESTAÑA BREADCRUMB BAJO EL MENÚ
   ========================================================= */
.page-breadcrumb-bar{
  width:100%;
  min-height:38px;
  background:#101010;
  border-top:0;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  position:relative;
  z-index:20;
}

.page-breadcrumb-bar .shell{
  min-height:38px;
  display:flex;
  align-items:center;
}

.page-breadcrumb-bar .breadcrumb{
  margin:0 !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  gap:9px !important;
  font-size:11px !important;
  line-height:1 !important;
  color:#8f8f8f !important;
  white-space:nowrap;
}

.page-breadcrumb-bar .breadcrumb a{
  color:#a8a8a8 !important;
}

.page-breadcrumb-bar .breadcrumb span:last-child{
  color:#8f8f8f !important;
}

/* Ocultar el breadcrumb original dentro del hero */
.hero .hero-content > .breadcrumb{
  display:none !important;
}

@media (max-width:1180px){
  .page-breadcrumb-bar{
    min-height:36px;
  }

  .page-breadcrumb-bar .shell{
    min-height:36px;
  }

  .page-breadcrumb-bar .breadcrumb{
    font-size:10.5px !important;
  }
}

@media (max-width:767px){
  .page-breadcrumb-bar{
    min-height:34px;
  }

  .page-breadcrumb-bar .shell{
    min-height:34px;
  }

  .page-breadcrumb-bar .breadcrumb{
    gap:8px !important;
    font-size:10px !important;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .page-breadcrumb-bar .breadcrumb span:last-child{
    overflow:hidden;
    text-overflow:ellipsis;
  }
}


/* =========================================================
   XIRIZ — HEADERS INTERNOS +10% ALTURA
   Inicio (.hero-home) permanece sin cambios
   ========================================================= */

/* Escritorio */
@media (min-width:1181px){
  .hero:not(.hero-home){
    min-height:403px !important; /* 366px + 10% */
  }
}

/* Tabletas */
@media (min-width:768px) and (max-width:1180px){
  .hero:not(.hero-home){
    min-height:370px !important; /* 336px + 10% */
  }
}

/* Celulares */
@media (max-width:767px){
  .hero:not(.hero-home){
    min-height:403px !important; /* 366px + 10% */
  }
}


/* =========================================================
   XIRIZ — QUITAR "EXPLORAR SOLUCIONES" DE TODOS LOS HEADERS
   ========================================================= */
.hero .hero-actions .btn.secondary{
  display:none !important;
}

/* Si queda un solo CTA, mantenerlo correctamente alineado */
.hero .hero-actions .btn:only-child{
  margin:0 !important;
}

@media (max-width:1180px){
  .hero .hero-actions .btn:only-child{
    width:100% !important;
  }
}


/* =========================================================
   XIRIZ — SOLICITAR CONSULTORÍA
   Solo visible en hero de Inicio.
   En páginas internas se oculta.
   ========================================================= */
.hero:not(.hero-home) .hero-actions .btn.primary{
  display:none !important;
}

/* CTA de Consultoría dentro del menú responsive */
@media (max-width:1180px){
  .mobile-actions .mobile-consulting-btn{
    width:100% !important;
    min-height:52px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    margin:0 !important;
  }
}


/* =========================================================
   XIRIZ — COBERTURA SIN IMAGEN DE FONDO
   ========================================================= */
.location-grid::before{
  display:none !important;
  background:none !important;
  opacity:0 !important;
}


/* =========================================================
   XIRIZ — INICIO: ACORDEONES SOLO TABLETA / MÓVIL
   ========================================================= */
.home-section-accordion{
  border:0;
}

.home-section-accordion > summary{
  list-style:none;
}

.home-section-accordion > summary::-webkit-details-marker{
  display:none;
}

/* Escritorio: conservar secciones abiertas y apariencia normal */
@media (min-width:1181px){
  .home-section-accordion{
    display:block;
  }

  .home-section-accordion > summary{
    pointer-events:none;
    cursor:default;
  }

  .home-section-accordion .home-accordion-chevron{
    display:none !important;
  }

  .home-section-accordion .home-accordion-panel{
    height:auto !important;
    opacity:1 !important;
    overflow:visible !important;
  }
}

/* Tablet y móvil: encabezado = pestaña del acordeón */
@media (max-width:1180px){
  .home-accordion-section{
    padding-top:0 !important;
    padding-bottom:0 !important;
  }

  .home-section-accordion{
    width:100%;
  }

  .home-section-accordion > summary{
    position:relative;
    min-height:118px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;
    cursor:pointer;
    padding:28px 0;
    border-bottom:1px solid var(--line);
  }

  .home-section-accordion > summary .section-head{
    flex:1;
    grid-template-columns:1fr !important;
    gap:10px !important;
    margin:0 !important;
  }

  .home-section-accordion > summary .section-head > p{
    margin-top:2px !important;
  }

  .home-section-accordion > summary .eyebrow{
    margin-bottom:10px !important;
  }

  .home-section-accordion > summary h2{
    margin:0 !important;
  }

  .home-accordion-chevron{
    position:relative;
    width:20px;
    height:20px;
    flex:0 0 20px;
  }

  .home-accordion-chevron::before,
  .home-accordion-chevron::after{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    width:12px;
    height:1px;
    background:#bdbdbd;
    transform:translate(-50%,-50%);
    transition:transform .28s ease, opacity .28s ease;
  }

  .home-accordion-chevron::after{
    transform:translate(-50%,-50%) rotate(90deg);
  }

  .home-section-accordion.is-expanded .home-accordion-chevron::after{
    transform:translate(-50%,-50%) rotate(0deg);
    opacity:0;
  }

  .home-accordion-panel{
    height:0;
    opacity:0;
    overflow:hidden;
    will-change:height,opacity;
  }

  .home-section-accordion.is-expanded .home-accordion-panel{
    opacity:1;
  }

  .home-accordion-panel > .cards,
  .home-accordion-panel > .location-grid{
    margin-top:24px;
    margin-bottom:28px;
  }
}

@media (max-width:767px){
  .home-section-accordion > summary{
    min-height:104px;
    padding:24px 0;
    gap:16px;
  }

  .home-section-accordion > summary .section-head > p{
    font-size:14px !important;
    line-height:1.45 !important;
  }

  .home-accordion-panel > .cards,
  .home-accordion-panel > .location-grid{
    margin-top:20px;
    margin-bottom:24px;
  }
}


/* XIRIZ — textos descriptivos dentro del acordeón */
@media (max-width:1180px){
  .home-accordion-description{
    margin:20px 0 0 !important;
  }
  .home-accordion-description p{
    margin:0 !important;
    color:var(--muted) !important;
    font-size:16px !important;
    line-height:1.55 !important;
  }
}
@media (max-width:767px){
  .home-accordion-description{
    margin-top:16px !important;
  }
  .home-accordion-description p{
    font-size:14px !important;
    line-height:1.5 !important;
  }
}
@media (min-width:1181px){
  .home-accordion-description{
    display:none !important;
  }
}


/* =========================================================
   XIRIZ — ETIQUETAS / EYEBROW EN MORADO
   Mismo tono que los botones
   ========================================================= */
:root{
  --xiriz-purple:#7234E6;
}

.eyebrow{
  color:var(--xiriz-purple) !important;
}

.eyebrow > span{
  background:var(--xiriz-purple) !important;
}


/* =========================================================
   XIRIZ — COBERTURA: HOVER DE BOTÓN EN CADA HUB
   ========================================================= */
.location-grid a{
  transition:
    background-color .24s ease,
    border-color .24s ease,
    transform .24s ease !important;
  cursor:pointer !important;
}

.location-grid a:hover{
  background:#202020 !important;
  border-color:rgba(255,255,255,.14) !important;
}

.location-grid a:focus-visible{
  outline:2px solid #7234E6 !important;
  outline-offset:-2px !important;
  background:#202020 !important;
}

.location-grid a:active{
  background:#242424 !important;
}

@media (hover:hover) and (pointer:fine){
  .location-grid a:hover{
    transform:translateY(-1px);
  }
}


/* =========================================================
   XIRIZ — HUBS DE INICIO IGUALES A LOS DE COBERTURA
   ========================================================= */

/* Misma tarjeta en cualquier location-grid */
.location-grid{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  border:1px solid var(--line) !important;
  border-radius:5px !important;
  overflow:hidden !important;
  background:#141414 !important;
}

.location-grid a{
  min-height:150px !important;
  padding:28px !important;
  display:grid !important;
  align-content:center !important;
  gap:8px !important;
  background:#181818 !important;
  border-right:1px solid var(--line) !important;
  border-top:0 !important;
  border-bottom:0 !important;
  border-left:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  transform:none !important;
}

.location-grid a:last-child{
  border-right:0 !important;
}

.location-grid a strong{
  font-size:24px !important;
  line-height:1.1 !important;
}

.location-grid a span{
  font-size:13px !important;
  line-height:1.4 !important;
  color:var(--muted) !important;
}

.location-grid a:hover,
.location-grid a:focus-visible{
  background:#222222 !important;
  transform:none !important;
}

.location-grid a:active{
  background:#252525 !important;
}

/* En Inicio, anula cualquier variante previa del grid */
.home-accordion-panel .location-grid,
.home-accordion-section .location-grid{
  background:#141414 !important;
}

@media (max-width:1180px){
  .location-grid{
    grid-template-columns:1fr !important;
  }

  .location-grid a{
    min-height:132px !important;
    border-right:0 !important;
    border-bottom:1px solid var(--line) !important;
  }

  .location-grid a:last-child{
    border-bottom:0 !important;
  }
}

@media (max-width:767px){
  .location-grid a{
    min-height:118px !important;
    padding:24px !important;
  }

  .location-grid a strong{
    font-size:22px !important;
  }
}




/* =========================================================
   XIRIZ — COBERTURA CIUDADES · FIX DEFINITIVO
   Escritorio siempre visible / Responsive acordeón
   ========================================================= */
.coverage-city-accordion{
  width:100%;
}

.coverage-city-toggle{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  padding:0;
  margin:0;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
}

.coverage-city-chevron{
  display:none;
}

/* ESCRITORIO: información completa siempre visible */
@media (min-width:1181px){
  .coverage-city-accordion{
    display:grid;
    grid-template-columns:minmax(0,1.75fr) minmax(280px,.7fr);
    column-gap:72px;
    align-items:end;
  }

  .coverage-city-toggle{
    grid-column:1;
    pointer-events:none;
    cursor:default;
    display:block;
  }

  .coverage-city-summary-copy .eyebrow{
    margin-bottom:22px !important;
  }

  .coverage-city-summary-copy h2{
    margin:0 !important;
  }

  .coverage-city-panel{
    display:contents !important;
    height:auto !important;
    opacity:1 !important;
    overflow:visible !important;
  }

  .coverage-city-description{
    grid-column:2;
    align-self:end;
    margin:0 0 2px !important;
    max-width:360px !important;
    color:var(--muted) !important;
    font-size:16px !important;
    line-height:1.6 !important;
  }

  .coverage-city-panel .cards{
    grid-column:1 / -1;
    margin-top:42px !important;
    margin-bottom:0 !important;
  }
}

/* TABLETAS / CELULARES: acordeón real */
@media (max-width:1180px){
  .coverage-city-section{
    padding-top:0 !important;
    padding-bottom:0 !important;
  }

  .coverage-city-toggle{
    min-height:132px;
    padding:28px 0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    cursor:pointer;
    border-bottom:1px solid var(--line);
  }

  .coverage-city-summary-copy{
    flex:1;
    min-width:0;
  }

  .coverage-city-summary-copy .eyebrow{
    margin-bottom:16px !important;
  }

  .coverage-city-summary-copy h2{
    margin:0 !important;
  }

  .coverage-city-chevron{
    position:relative;
    display:block;
    width:20px;
    height:20px;
    flex:0 0 20px;
  }

  .coverage-city-chevron::before,
  .coverage-city-chevron::after{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    width:12px;
    height:1px;
    background:#aaa;
    transform:translate(-50%,-50%);
    transition:transform .25s ease, opacity .25s ease;
  }

  .coverage-city-chevron::after{
    transform:translate(-50%,-50%) rotate(90deg);
  }

  .coverage-city-accordion.is-expanded .coverage-city-chevron::after{
    opacity:0;
    transform:translate(-50%,-50%) rotate(0deg);
  }

  .coverage-city-panel{
    height:0;
    opacity:0;
    overflow:hidden;
  }

  .coverage-city-description{
    margin:22px 0 24px !important;
    color:var(--muted) !important;
    font-size:16px !important;
    line-height:1.55 !important;
    max-width:760px !important;
  }

  .coverage-city-panel .cards{
    margin-bottom:30px !important;
  }
}

@media (max-width:767px){
  .coverage-city-toggle{
    min-height:118px;
    padding:24px 0;
    gap:14px;
  }

  .coverage-city-summary-copy .eyebrow{
    margin-bottom:12px !important;
  }

  .coverage-city-summary-copy h2{
    font-size:clamp(27px,7.4vw,36px) !important;
    line-height:1.05 !important;
  }

  .coverage-city-description{
    margin:18px 0 20px !important;
    font-size:14px !important;
    line-height:1.5 !important;
  }

  .coverage-city-panel .cards{
    margin-bottom:24px !important;
  }
}


/* =========================================================
   XIRIZ — FIX ENCABEZADOS ACORDEÓN COBERTURA
   Evita fondo blanco heredado de estilos globales de button
   ========================================================= */
.coverage-city-toggle,
.coverage-city-toggle:hover,
.coverage-city-toggle:focus,
.coverage-city-toggle:focus-visible,
.coverage-city-toggle:active{
  -webkit-appearance:none !important;
  appearance:none !important;
  background:transparent !important;
  background-color:transparent !important;
  background-image:none !important;
  color:inherit !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  outline:none !important;
}

.coverage-city-toggle .coverage-city-summary-copy,
.coverage-city-toggle .coverage-city-summary-copy h2{
  color:var(--text) !important;
}

.coverage-city-toggle .eyebrow{
  color:#7234E6 !important;
}

.coverage-city-toggle .eyebrow > span{
  background:#7234E6 !important;
}


/* =========================================================
   XIRIZ — FOOTER ACORDEONES ESTABLES · OVERRIDE FINAL
   ========================================================= */
@media (max-width:1180px){
  .footer-col{
    overflow:visible !important;
  }

  .footer-col > summary{
    cursor:pointer !important;
    user-select:none !important;
    -webkit-tap-highlight-color:transparent !important;
  }

  .footer-col > summary + *{
    display:block !important;
    min-height:0 !important;
    overflow:hidden;
    transition:none;
    animation:none !important;
  }

  /* Evita que [open] o reglas viejas cambien display durante la animación */
  .footer-col:not([open]) > *,
  .footer-col[open] > *{
    display:block !important;
  }

  .footer-col > summary{
    display:flex !important;
  }

  /* Estado del chevron basado solo en nuestras clases */
  .footer-col summary span::before{
    transition:transform .24s ease, top .24s ease !important;
  }

  .footer-col.footer-collapsed summary span::before{
    top:45% !important;
    transform:translate(-50%,-50%) rotate(45deg) !important;
  }

  .footer-col.footer-expanded summary span::before{
    top:57% !important;
    transform:translate(-50%,-50%) rotate(225deg) !important;
  }
}

@media (min-width:1181px){
  .footer-col > summary + *{
    height:auto !important;
    opacity:1 !important;
    overflow:visible !important;
  }
}


/* =========================================================
   XIRIZ — FOOTER ACORDEÓN · FIX FINAL
   Un solo motor + flecha alineada a la derecha
   ========================================================= */
@media (max-width:1180px){

  .footer-col > summary{
    width:100% !important;
    min-height:52px !important;
    height:auto !important;
    padding:0 !important;
    margin:0 !important;

    display:grid !important;
    grid-template-columns:minmax(0,1fr) 20px !important;
    align-items:center !important;
    column-gap:14px !important;

    text-align:left !important;
    line-height:1.2 !important;
    border:0 !important;
    box-shadow:none !important;
  }

  .footer-col > summary > span{
    position:relative !important;
    width:20px !important;
    height:20px !important;
    min-width:20px !important;
    margin:0 !important;
    padding:0 !important;
    justify-self:end !important;
    align-self:center !important;
    display:block !important;

    font-size:0 !important;
    line-height:0 !important;
    transform:none !important;
  }

  /* Limpiar cualquier símbolo + / x anterior */
  .footer-col > summary > span::after{
    content:none !important;
    display:none !important;
  }

  /* Chevron único */
  .footer-col > summary > span::before{
    content:"" !important;
    position:absolute !important;
    left:50% !important;
    top:50% !important;

    width:7px !important;
    height:7px !important;

    border:0 !important;
    border-right:1.5px solid #a8a8a8 !important;
    border-bottom:1.5px solid #a8a8a8 !important;
    background:transparent !important;

    transform:translate(-50%,-65%) rotate(45deg) !important;
    transform-origin:center !important;
    transition:transform .24s ease !important;
  }

  .footer-col.footer-expanded > summary > span::before{
    transform:translate(-50%,-35%) rotate(225deg) !important;
  }

  .footer-col.footer-collapsed > summary > span::before{
    transform:translate(-50%,-65%) rotate(45deg) !important;
  }

  /* El panel nunca cambia de display durante la animación */
  .footer-col > summary + *{
    display:block !important;
    min-height:0 !important;
    margin:0 !important;
    border:0 !important;
    box-shadow:none !important;
  }

  .footer-col:not([open]) > summary + *,
  .footer-col[open] > summary + *{
    display:block !important;
  }
}


/* =========================================================
   XIRIZ — FOOTER FINAL: CONTENIDO VERTICAL Y FLECHA CORRECTA
   ========================================================= */
@media (max-width:1180px){

  .footer-col > summary{
    width:100% !important;
    min-height:52px !important;
    padding:0 !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 20px !important;
    align-items:center !important;
    column-gap:14px !important;
    border:0 !important;
    box-shadow:none !important;
  }

  .footer-col > summary > span{
    grid-column:2 !important;
    justify-self:end !important;
    align-self:center !important;
    width:20px !important;
    height:20px !important;
    margin:0 !important;
    position:relative !important;
    display:block !important;
    font-size:0 !important;
    line-height:0 !important;
  }

  .footer-col > summary > span::after{
    display:none !important;
    content:none !important;
  }

  .footer-col > summary > span::before{
    content:"" !important;
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    width:7px !important;
    height:7px !important;
    background:transparent !important;
    border:0 !important;
    border-right:1.5px solid #aaa !important;
    border-bottom:1.5px solid #aaa !important;
    transform:translate(-50%,-65%) rotate(45deg) !important;
    transition:transform .22s ease !important;
  }

  .footer-col.footer-expanded > summary > span::before{
    transform:translate(-50%,-35%) rotate(225deg) !important;
  }

  /* Panel de enlaces: SIEMPRE vertical */
  .footer-col > summary + *{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:0 !important;
    min-height:0 !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    box-shadow:none !important;
  }

  .footer-col > summary + * > a,
  .footer-col > summary + * > p,
  .footer-col > summary + * > span{
    display:block !important;
    width:100% !important;
    margin:0 !important;
    padding:7px 0 !important;
    white-space:normal !important;
    line-height:1.45 !important;
  }

  .footer-col > summary + * > a{
    color:#a8a8a8 !important;
  }

  .footer-col > summary + * > a:hover{
    color:#fff !important;
  }
}

@media (min-width:1181px){
  .footer-col > summary + *{
    display:flex !important;
    flex-direction:column !important;
  }
}


/* =========================================================
   XIRIZ — FOOTER ACCORDION ÚNICO · ALINEACIÓN FINAL
   ========================================================= */
@media (max-width:1180px){

  .footer-col{
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    box-shadow:none !important;
  }

  .footer-col > summary{
    box-sizing:border-box !important;
    width:100% !important;
    min-height:52px !important;
    margin:0 !important;
    padding:0 !important;

    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:16px !important;

    color:#f2f2f2 !important;
    text-align:left !important;
    line-height:1.2 !important;

    border:0 !important;
    box-shadow:none !important;
    background:transparent !important;
    list-style:none !important;
  }

  .footer-col > summary::-webkit-details-marker{
    display:none !important;
  }

  .footer-col > summary > span{
    position:relative !important;
    display:block !important;
    flex:0 0 18px !important;
    width:18px !important;
    height:18px !important;
    margin:0 !important;
    padding:0 !important;
    align-self:center !important;

    font-size:0 !important;
    line-height:0 !important;
    color:transparent !important;
  }

  .footer-col > summary > span::after{
    content:none !important;
    display:none !important;
  }

  .footer-col > summary > span::before{
    content:"" !important;
    position:absolute !important;
    left:50% !important;
    top:50% !important;

    width:7px !important;
    height:7px !important;
    margin:0 !important;

    background:transparent !important;
    border:0 !important;
    border-right:1.5px solid #9f9f9f !important;
    border-bottom:1.5px solid #9f9f9f !important;

    transform:translate(-50%,-65%) rotate(45deg) !important;
    transform-origin:center !important;
    transition:transform .22s ease !important;
  }

  .footer-col.footer-expanded > summary > span::before{
    transform:translate(-50%,-35%) rotate(225deg) !important;
  }

  .footer-col > summary + div{
    box-sizing:border-box !important;
    width:100% !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;

    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:0 !important;

    overflow:hidden;
    border:0 !important;
    box-shadow:none !important;
    background:transparent !important;
  }

  .footer-col > summary + div > a,
  .footer-col > summary + div > span,
  .footer-col > summary + div > p{
    display:block !important;
    width:100% !important;
    box-sizing:border-box !important;
    margin:0 !important;
    padding:7px 0 !important;
    line-height:1.45 !important;
    white-space:normal !important;
  }
}

@media (min-width:1181px){
  .footer-col > summary + div{
    height:auto !important;
    opacity:1 !important;
    overflow:visible !important;
  }
}


/* =========================================================
   XIRIZ — FOOTER: TEXTO Y FLECHA PERFECTAMENTE ALINEADOS
   Acordeones independientes
   ========================================================= */
@media (max-width:1180px){

  .footer-col > summary{
    width:100% !important;
    min-height:54px !important;
    margin:0 !important;
    padding:0 !important;

    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:16px !important;

    line-height:1 !important;
    text-align:left !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
  }

  /* El texto ocupa una sola línea base visual */
  .footer-col > summary{
    vertical-align:middle !important;
  }

  .footer-col > summary > span{
    position:relative !important;
    flex:0 0 18px !important;
    width:18px !important;
    height:18px !important;
    min-width:18px !important;

    margin:0 !important;
    padding:0 !important;

    display:block !important;
    align-self:center !important;
    transform:none !important;

    font-size:0 !important;
    line-height:0 !important;
  }

  .footer-col > summary > span::before{
    content:"" !important;
    position:absolute !important;
    left:50% !important;
    top:50% !important;

    width:7px !important;
    height:7px !important;

    border:0 !important;
    border-right:1.5px solid #9f9f9f !important;
    border-bottom:1.5px solid #9f9f9f !important;
    background:transparent !important;

    transform:translate(-50%,-62%) rotate(45deg) !important;
    transform-origin:center !important;
    transition:transform .22s ease !important;
  }

  .footer-col.footer-expanded > summary > span::before{
    transform:translate(-50%,-38%) rotate(225deg) !important;
  }

  .footer-col > summary > span::after{
    content:none !important;
    display:none !important;
  }

  /* Elimina cualquier línea decorativa heredada entre texto y flecha */
  .footer-col > summary::before,
  .footer-col > summary::after{
    content:none !important;
    display:none !important;
    border:0 !important;
    background:none !important;
    box-shadow:none !important;
  }
}


/* XIRIZ — texto global footer ES / EN */
.footer-brand > p{
  font-size:0 !important;
  line-height:0 !important;
}
.footer-brand > p::after{
  display:block;
  font-size:14px !important;
  line-height:1.65 !important;
  color:inherit;
  content:"Diseño y Desarrollo web, apps y CRM a medida para impulsar la operación de tu empresa en México y la región fronteriza.";
}
body[data-lang="en"] .footer-brand > p::after{
  content:"Custom web, app and CRM design and development to strengthen your company’s operations across Mexico and the border region.";
}
@media (max-width:767px){
  .footer-brand > p::after{
    font-size:13px !important;
    line-height:1.6 !important;
  }
}

/* XIRIZ — rutas locales definitivas para slider de Inicio ES */
body[data-lang="es"] .hero-home .home-slide:nth-child(1){background-image:url('/img/headers/inicio/1.webp') !important;}
body[data-lang="es"] .hero-home .home-slide:nth-child(2){background-image:url('/img/headers/inicio/2.webp') !important;}
body[data-lang="es"] .hero-home .home-slide:nth-child(3){background-image:url('/img/headers/inicio/3.webp') !important;}

/* XIRIZ — rutas locales definitivas para slider Home EN */
body[data-lang="en"] .hero-home .home-slide:nth-child(1){background-image:url('/img/headers/en/home/1.webp') !important;}
body[data-lang="en"] .hero-home .home-slide:nth-child(2){background-image:url('/img/headers/en/home/2.webp') !important;}
body[data-lang="en"] .hero-home .home-slide:nth-child(3){background-image:url('/img/headers/en/home/3.webp') !important;}


/* =========================================================
   XIRIZ — FOOTER: FLECHA FIJA A LA DERECHA Y CENTRADA
   Fix Safari/iPhone
   ========================================================= */
@media (max-width:1180px){

  .footer-col > summary{
    position:relative !important;
    display:block !important;
    width:100% !important;
    min-height:54px !important;
    height:auto !important;

    box-sizing:border-box !important;
    margin:0 !important;
    padding:18px 42px 18px 0 !important;

    line-height:18px !important;
    text-align:left !important;

    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    list-style:none !important;
  }

  .footer-col > summary::-webkit-details-marker{
    display:none !important;
  }

  .footer-col > summary::marker{
    content:"" !important;
    font-size:0 !important;
  }

  .footer-col > summary > span{
    position:absolute !important;
    top:50% !important;
    right:0 !important;
    left:auto !important;
    bottom:auto !important;

    width:20px !important;
    height:20px !important;
    min-width:20px !important;

    margin:0 !important;
    padding:0 !important;

    display:block !important;
    transform:translateY(-50%) !important;

    font-size:0 !important;
    line-height:0 !important;
    color:transparent !important;
  }

  .footer-col > summary > span::before{
    content:"" !important;
    position:absolute !important;
    left:50% !important;
    top:50% !important;

    width:7px !important;
    height:7px !important;

    background:transparent !important;
    border:0 !important;
    border-right:1.5px solid #9f9f9f !important;
    border-bottom:1.5px solid #9f9f9f !important;

    transform:translate(-50%,-65%) rotate(45deg) !important;
    transform-origin:center !important;
    transition:transform .22s ease !important;
  }

  .footer-col.footer-expanded > summary > span::before{
    transform:translate(-50%,-35%) rotate(225deg) !important;
  }

  .footer-col > summary > span::after{
    content:none !important;
    display:none !important;
  }

  .footer-col > summary::before,
  .footer-col > summary::after{
    content:none !important;
    display:none !important;
  }
}

/* XIRIZ — headers: utilizar exclusivamente imagen local declarada por página */
.hero:not(.hero-home){
  background-image:var(--hero-image, none) !important;
}


/* =========================================================
   XIRIZ — MENÚ MÓVIL: SUBMENÚS CON DESLIZAMIENTO SUAVE
   ========================================================= */
@media (max-width:1180px){

  .mobile-nav details > summary{
    cursor:pointer;
  }

  .mobile-nav details > :not(summary){
    overflow:hidden;
  }

  .mobile-nav details .mobile-submenu,
  .mobile-nav details > ul,
  .mobile-nav details > div:not(summary){
    overflow:hidden !important;
    max-height:0;
    opacity:0;
    transform:translateY(-8px);
    transition:
      max-height .42s cubic-bezier(.22,.61,.36,1),
      opacity .28s ease,
      transform .38s cubic-bezier(.22,.61,.36,1) !important;
    will-change:max-height, opacity, transform;
  }

  .mobile-nav details[open] .mobile-submenu,
  .mobile-nav details[open] > ul,
  .mobile-nav details[open] > div:not(summary){
    max-height:520px;
    opacity:1;
    transform:translateY(0);
  }
}


/* =========================================================
   XIRIZ — LOGOTIPO DE MENÚ · DIGITAL INNOVATION
   Punto morado con pulso suave
   ========================================================= */
.site-header .xiriz-menu-brand{
  display:inline-flex !important;
  align-items:center !important;
  width:auto !important;
  min-width:0 !important;
  gap:0 !important;
  overflow:visible !important;
}

.site-header .xiriz-menu-brand-visual{
  position:relative !important;
  display:block !important;
  width:222px !important;
  height:72px !important;
  flex:0 0 222px !important;
  overflow:hidden !important;
}

.site-header .xiriz-menu-brand-visual > img{
  display:block !important;
  width:222px !important;
  height:auto !important;
  max-width:none !important;
  transform:translateY(0) !important;
}

/* Se superpone sobre el punto morado de la referencia */
.site-header .xiriz-brand-pulse{
  position:absolute !important;
  left:127px !important;
  top:31px !important;
  width:10px !important;
  height:10px !important;
  border-radius:50% !important;
  background:#7234E6 !important;
  z-index:3 !important;
  pointer-events:none !important;
  animation:xirizBrandPulse 2.1s ease-in-out infinite !important;
  will-change:transform, box-shadow, opacity !important;
}

.site-header .xiriz-brand-pulse::after{
  content:"" !important;
  position:absolute !important;
  inset:-5px !important;
  border-radius:50% !important;
  border:1px solid rgba(114,52,230,.38) !important;
  opacity:0 !important;
  transform:scale(.65) !important;
  animation:xirizBrandRing 2.1s ease-out infinite !important;
}

@keyframes xirizBrandPulse{
  0%,100%{
    transform:scale(.92);
    opacity:.72;
    box-shadow:0 0 0 0 rgba(114,52,230,0);
  }
  50%{
    transform:scale(1.08);
    opacity:1;
    box-shadow:
      0 0 8px rgba(114,52,230,.75),
      0 0 18px rgba(114,52,230,.36);
  }
}

@keyframes xirizBrandRing{
  0%{
    opacity:0;
    transform:scale(.65);
  }
  35%{
    opacity:.58;
  }
  100%{
    opacity:0;
    transform:scale(1.6);
  }
}

@media (max-width:1180px){
  .site-header .xiriz-menu-brand-visual{
    width:205px !important;
    height:66px !important;
    flex-basis:205px !important;
  }

  .site-header .xiriz-menu-brand-visual > img{
    width:205px !important;
  }

  .site-header .xiriz-brand-pulse{
    left:117px !important;
    top:29px !important;
    width:9px !important;
    height:9px !important;
  }
}

@media (max-width:767px){
  .site-header .xiriz-menu-brand-visual{
    width:176px !important;
    height:57px !important;
    flex-basis:176px !important;
  }

  .site-header .xiriz-menu-brand-visual > img{
    width:176px !important;
  }

  .site-header .xiriz-brand-pulse{
    left:101px !important;
    top:25px !important;
    width:8px !important;
    height:8px !important;
  }
}

@media (prefers-reduced-motion:reduce){
  .site-header .xiriz-brand-pulse,
  .site-header .xiriz-brand-pulse::after{
    animation:none !important;
  }
}

/* =========================================================
   XIRIZ — MENÚ MÓVIL: SUBMENÚ FUNCIONAL Y SUAVE
   ========================================================= */
@media (max-width:1180px){
  .mobile-nav details{
    overflow:visible !important;
  }

  .mobile-nav details > summary{
    cursor:pointer !important;
    user-select:none !important;
    -webkit-user-select:none !important;
  }

  .mobile-nav details > .mobile-sub{
    display:block !important;
    height:0;
    opacity:0;
    overflow:hidden !important;
    transform:translateY(-6px);
    will-change:height,opacity,transform;
  }

  .mobile-nav details.is-expanded > .mobile-sub{
    height:auto;
    opacity:1;
    overflow:visible !important;
    transform:translateY(0);
  }
}


/* =========================================================
   XIRIZ — LOCKUP OFICIAL HEADER + FOOTER
   Símbolo SVG + divisor + punto animado + INNOVATION HUB
   ========================================================= */
.site-header .xiriz-lockup,
.site-footer .xiriz-lockup{
  display:inline-flex !important;
  align-items:center !important;
  gap:12px !important;
  width:max-content !important;
  min-width:0 !important;
  text-decoration:none !important;
  background:transparent !important;
  box-shadow:none !important;
  border:0 !important;
  padding:0 !important;
}

.xiriz-lockup-logo{
  display:block !important;
  width:88px !important;
  height:auto !important;
  flex:0 0 auto !important;
  background:transparent !important;
}

.xiriz-lockup-divider{
  display:block !important;
  width:1px !important;
  height:34px !important;
  background:rgba(255,255,255,.16) !important;
  flex:0 0 1px !important;
}

.xiriz-lockup-meta{
  display:flex !important;
  align-items:center !important;
  gap:9px !important;
  min-width:0 !important;
}

.xiriz-lockup-dot{
  position:relative !important;
  display:block !important;
  width:9px !important;
  height:9px !important;
  border-radius:50% !important;
  background:#7234E6 !important;
  flex:0 0 9px !important;
  animation:xirizLockupPulse 2.3s ease-in-out infinite !important;
  box-shadow:0 0 0 0 rgba(114,52,230,.35);
}

.xiriz-lockup-dot::after{
  content:"" !important;
  position:absolute !important;
  inset:-5px !important;
  border:1px solid rgba(114,52,230,.32) !important;
  border-radius:50% !important;
  opacity:0;
  transform:scale(.65);
  animation:xirizLockupRing 2.3s ease-out infinite !important;
}

.xiriz-lockup-text{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;
  line-height:1.05 !important;
  white-space:nowrap !important;
}

.xiriz-lockup-text strong{
  display:block !important;
  margin:0 !important;
  color:#fff !important;
  font-size:13px !important;
  line-height:1 !important;
  font-weight:700 !important;
  letter-spacing:.07em !important;
}

.xiriz-lockup-text > span{
  display:block !important;
  margin-top:3px !important;
  color:#8f8f95 !important;
  font-size:11px !important;
  line-height:1 !important;
  font-weight:400 !important;
  letter-spacing:0 !important;
}

@keyframes xirizLockupPulse{
  0%,100%{
    transform:scale(.9);
    opacity:.68;
    box-shadow:0 0 0 0 rgba(114,52,230,0);
  }
  50%{
    transform:scale(1.08);
    opacity:1;
    box-shadow:
      0 0 8px rgba(114,52,230,.72),
      0 0 18px rgba(114,52,230,.34);
  }
}

@keyframes xirizLockupRing{
  0%{opacity:0;transform:scale(.65)}
  35%{opacity:.58}
  100%{opacity:0;transform:scale(1.65)}
}

/* Footer: misma identidad visual, sin imagen con fondo */
.site-footer .xiriz-lockup-footer{
  margin:0 !important;
}

.site-footer .xiriz-lockup-logo{
  width:96px !important;
}

.site-footer .xiriz-lockup-divider{
  height:38px !important;
}

/* Tablet */
@media (max-width:1180px){
  .site-header .xiriz-lockup{
    gap:10px !important;
  }

  .site-header .xiriz-lockup-logo{
    width:76px !important;
  }

  .site-header .xiriz-lockup-divider{
    height:31px !important;
  }

  .site-header .xiriz-lockup-text strong{
    font-size:12px !important;
  }

  .site-header .xiriz-lockup-text > span{
    font-size:10px !important;
  }

  .site-footer .xiriz-lockup-footer{
    justify-content:flex-start !important;
  }
}

/* Móvil */
@media (max-width:767px){
  .site-header .xiriz-lockup{
    gap:8px !important;
  }

  .site-header .xiriz-lockup-logo{
    width:62px !important;
  }

  .site-header .xiriz-lockup-divider{
    height:27px !important;
  }

  .site-header .xiriz-lockup-meta{
    gap:7px !important;
  }

  .site-header .xiriz-lockup-dot{
    width:7px !important;
    height:7px !important;
    flex-basis:7px !important;
  }

  .site-header .xiriz-lockup-text strong{
    font-size:11px !important;
  }

  .site-header .xiriz-lockup-text > span{
    margin-top:2px !important;
    font-size:8.5px !important;
  }

  .site-footer .xiriz-lockup-logo{
    width:82px !important;
  }

  .site-footer .xiriz-lockup-text strong{
    font-size:12px !important;
  }

  .site-footer .xiriz-lockup-text > span{
    font-size:9px !important;
  }
}

@media (prefers-reduced-motion:reduce){
  .xiriz-lockup-dot,
  .xiriz-lockup-dot::after{
    animation:none !important;
  }
}

/* Footer brand lockup final */
.footer-brand > .xiriz-lockup-footer{
  margin-bottom:20px !important;
}

/* Portal button: icon only on all breakpoints */
.portal-btn{
  position:relative;
  min-width:54px !important;
  width:54px;
  height:46px;
  padding:0 !important;
  font-size:0 !important;
  line-height:0 !important;
  color:transparent !important;
  overflow:hidden;
  gap:0 !important;
}

.portal-btn::before{
  content:"";
  position:absolute;
  inset:0;
  margin:auto;
  width:20px;
  height:20px;
  background:#f0efeb;
  opacity:.96;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm0 2c-5.33 0-9 2.67-9 6v1.5c0 .83.67 1.5 1.5 1.5h15c.83 0 1.5-.67 1.5-1.5V20c0-3.33-3.67-6-9-6Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm0 2c-5.33 0-9 2.67-9 6v1.5c0 .83.67 1.5 1.5 1.5h15c.83 0 1.5-.67 1.5-1.5V20c0-3.33-3.67-6-9-6Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.portal-btn:hover::before{
  opacity:1;
}

.mobile-actions .portal-btn,
.nav-actions .portal-btn{
  flex:0 0 auto;
}

/* =========================================================
   XIRIZ — FOOTER LOGO FIX REAL
   El footer real usa .footer, no .site-footer
   ========================================================= */

.footer .footer-brand{
  display:block !important;
  flex-direction:initial !important;
  align-items:initial !important;
  justify-content:initial !important;
  text-align:left !important;
}

.footer .footer-brand > .xiriz-lockup-footer{
  display:inline-flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  flex-wrap:nowrap !important;

  gap:12px !important;
  width:max-content !important;
  max-width:100% !important;
  min-width:0 !important;

  margin:0 0 20px 0 !important;
  padding:0 !important;

  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  transform:none !important;
  position:relative !important;
}

.footer .xiriz-lockup-footer .xiriz-lockup-logo{
  display:block !important;
  width:88px !important;
  height:auto !important;
  max-width:88px !important;
  min-width:88px !important;
  flex:0 0 88px !important;

  margin:0 !important;
  padding:0 !important;
  position:static !important;
  transform:none !important;
}

.footer .xiriz-lockup-footer .xiriz-lockup-divider{
  display:block !important;
  width:1px !important;
  height:36px !important;
  min-width:1px !important;
  flex:0 0 1px !important;

  margin:0 !important;
  padding:0 !important;
  position:static !important;
  background:rgba(255,255,255,.16) !important;
}

.footer .xiriz-lockup-footer .xiriz-lockup-meta{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  flex-wrap:nowrap !important;

  gap:9px !important;
  width:auto !important;
  min-width:0 !important;

  margin:0 !important;
  padding:0 !important;
  position:static !important;
}

.footer .xiriz-lockup-footer .xiriz-lockup-dot{
  display:block !important;
  width:8px !important;
  height:8px !important;
  min-width:8px !important;
  flex:0 0 8px !important;

  margin:0 !important;
  padding:0 !important;
  position:relative !important;
}

.footer .xiriz-lockup-footer .xiriz-lockup-text{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;

  width:auto !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;

  line-height:1 !important;
  white-space:nowrap !important;
  position:static !important;
}

.footer .xiriz-lockup-footer .xiriz-lockup-text strong{
  display:block !important;
  margin:0 !important;
  padding:0 !important;

  font-size:13px !important;
  line-height:13px !important;
  font-weight:700 !important;
  letter-spacing:.06em !important;
  color:#fff !important;
}

.footer .xiriz-lockup-footer .xiriz-lockup-text > span{
  display:block !important;
  margin:3px 0 0 !important;
  padding:0 !important;

  font-size:10px !important;
  line-height:10px !important;
  font-weight:400 !important;
  letter-spacing:0 !important;
  color:#8f8f95 !important;
  white-space:nowrap !important;
}

/* Evita que reglas antiguas del footer conviertan elementos del lockup en bloques verticales */
.footer .footer-brand .xiriz-lockup-footer > *{
  align-self:center !important;
}

@media (max-width:1180px){
  .footer .footer-brand{
    display:block !important;
    text-align:left !important;
  }

  .footer .footer-brand > .xiriz-lockup-footer{
    display:inline-flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:flex-start !important;
    flex-wrap:nowrap !important;
    gap:10px !important;
    width:max-content !important;
    margin:0 0 18px 0 !important;
  }

  .footer .xiriz-lockup-footer .xiriz-lockup-logo{
    width:78px !important;
    min-width:78px !important;
    max-width:78px !important;
    flex-basis:78px !important;
  }

  .footer .xiriz-lockup-footer .xiriz-lockup-divider{
    height:32px !important;
  }

  .footer .xiriz-lockup-footer .xiriz-lockup-text strong{
    font-size:12px !important;
    line-height:12px !important;
  }

  .footer .xiriz-lockup-footer .xiriz-lockup-text > span{
    font-size:9px !important;
    line-height:9px !important;
  }
}

@media (max-width:767px){
  .footer .footer-brand > .xiriz-lockup-footer{
    gap:9px !important;
  }

  .footer .xiriz-lockup-footer .xiriz-lockup-logo{
    width:72px !important;
    min-width:72px !important;
    max-width:72px !important;
    flex-basis:72px !important;
  }

  .footer .xiriz-lockup-footer .xiriz-lockup-divider{
    height:30px !important;
  }

  .footer .xiriz-lockup-footer .xiriz-lockup-dot{
    width:7px !important;
    height:7px !important;
    min-width:7px !important;
    flex-basis:7px !important;
  }

  .footer .xiriz-lockup-footer .xiriz-lockup-text strong{
    font-size:11px !important;
    line-height:11px !important;
  }

  .footer .xiriz-lockup-footer .xiriz-lockup-text > span{
    font-size:8.5px !important;
    line-height:9px !important;
  }
}


/* Protección final: logo del footer siempre horizontal */
.footer .footer-brand > .xiriz-lockup-footer{
  display:inline-flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  justify-content:flex-start !important;
  width:max-content !important;
  max-width:100% !important;
}
.footer .xiriz-lockup-footer .xiriz-lockup-logo{
  position:static !important;
  transform:none !important;
  margin:0 !important;
}
.footer .xiriz-lockup-footer .xiriz-lockup-divider,
.footer .xiriz-lockup-footer .xiriz-lockup-meta{
  position:static !important;
  transform:none !important;
  margin:0 !important;
  align-self:center !important;
}

/* =========================================================
   XIRIZ — PORTAL VISIBLE TAMBIÉN EN CELULARES
   ========================================================= */
@media (max-width:767px){
  .site-header .nav-actions > .portal-btn{
    display:inline-flex !important;
    width:44px !important;
    min-width:44px !important;
    height:44px !important;
    min-height:44px !important;
    padding:0 !important;
    flex:0 0 44px !important;
    align-items:center !important;
    justify-content:center !important;
  }

  .site-header .nav-actions{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
  }

  .site-header .portal-btn::before{
    width:18px !important;
    height:18px !important;
  }
}

/* =========================================================
   XIRIZ — MENÚ MÓVIL
   Ocultar únicamente el botón de Portal / Soporte inferior.
   Mantener visible el botón superior del header.
   ========================================================= */
@media (max-width:1180px){
  .mobile-menu .mobile-actions .portal-btn{
    display:none !important;
  }
}


/* =========================================================
   XIRIZ — botón portal más oscuro
   Fondo, contorno e ícono ligeramente más oscuros
   ========================================================= */
.portal-btn{
  background:#141414 !important;
  border-color:#2a2a2a !important;
  box-shadow:none !important;
}

.portal-btn::before{
  background:#d8d8d8 !important;
  opacity:1 !important;
}

.portal-btn:hover{
  background:#1a1a1a !important;
  border-color:#343434 !important;
}

/* =========================================================
   XIRIZ — PORTAL DE CLIENTES
   Hero 40% más bajo · ES + EN
   ========================================================= */
body[data-route="/portal-clientes/"] .hero-portal,
body[data-route="/en/client-portal/"] .hero-portal{
  min-height:245px !important; /* 60px menos */
}

@media (max-width:1180px){
  body[data-route="/portal-clientes/"] .hero-portal,
  body[data-route="/en/client-portal/"] .hero-portal{
    min-height:220px !important; /* 60px menos */
  }
}

@media (max-width:767px){
  body[data-route="/portal-clientes/"] .hero-portal,
  body[data-route="/en/client-portal/"] .hero-portal{
    min-height:245px !important; /* 60px menos */
  }
}



.portal-inline-crumb{
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08);
  background:#0d0f12;
}

.portal-inline-crumb-nav{
  min-height:42px;
  display:flex;
  align-items:center;
  gap:12px;
  font-size:13px;
  color:#d7d7d7;
}

.portal-inline-crumb-nav a{
  color:#f0f0f0;
}

.portal-inline-crumb-nav span:last-child{
  color:#b9b9b9;
}

.portal-inline-crumb-nav span[aria-hidden="true"],
.portal-inline-crumb-nav span:not(:last-child):not(:first-child){
  color:#8a8a8a;
}

@media (max-width:767px){
  .portal-inline-crumb-nav{
    min-height:40px;
    font-size:12px;
    gap:10px;
    overflow:auto;
    white-space:nowrap;
    scrollbar-width:none;
  }
  .portal-inline-crumb-nav::-webkit-scrollbar{display:none;}
}

/* =========================================================
   XIRIZ — PORTAL DE CLIENTES / CLIENT PORTAL
   Sin hero superior, login centrado sobre imagen de fondo
   ========================================================= */
body[data-route="/portal-clientes/"],
body[data-route="/en/client-portal/"]{
  background:#0c0c0c;
}

.portal-landing{
  position:relative;
  min-height:760px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:88px 0 92px;
  background-image:var(--portal-bg);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  overflow:hidden;
}

.portal-landing-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(10,10,12,.42) 0%,rgba(10,10,12,.16) 38%,rgba(10,10,12,.34) 100%),linear-gradient(90deg,rgba(28,10,66,.28) 0%,rgba(46,18,116,.12) 46%,rgba(26,10,70,.28) 100%);
  pointer-events:none;
}

.portal-landing-shell{
  position:relative;
  z-index:1;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}

body[data-route="/portal-clientes/"] .section-portal-footer-gap,
body[data-route="/en/client-portal/"] .section-portal-footer-gap{
  display:none !important;
}

body[data-route="/portal-clientes/"] .portal-shell.portal-shell-login-only,
body[data-route="/en/client-portal/"] .portal-shell.portal-shell-login-only{
  max-width:100% !important;
}

body[data-route="/portal-clientes/"] .portal-shell-login-only .portal-login,
body[data-route="/en/client-portal/"] .portal-shell-login-only .portal-login{
  max-width:560px !important;
}

body[data-route="/portal-clientes/"] .portal-shell-login-only .portal-login-card,
body[data-route="/en/client-portal/"] .portal-shell-login-only .portal-login-card{
  border:1px solid rgba(255,255,255,.08) !important;
  border-radius:7px !important;
  background:linear-gradient(180deg,rgba(12,12,14,.96) 0%,rgba(12,12,14,.92) 100%) !important;
  box-shadow:0 22px 60px rgba(0,0,0,.34) !important;
  backdrop-filter:blur(6px);
}

@media (max-width:1180px){
  .portal-landing{
    min-height:680px;
    padding:74px 0 78px;
    background-position:center;
  }
}

@media (max-width:767px){
  .portal-landing{
    min-height:560px;
    padding:42px 0 52px;
  }

  body[data-route="/portal-clientes/"] .portal-shell-login-only .portal-login,
  body[data-route="/en/client-portal/"] .portal-shell-login-only .portal-login{
    max-width:100% !important;
  }
}


/* XIRIZ — Ocultar exclusivamente las líneas decorativas
   delante de los textos tipo eyebrow (ES / EN). */
.eyebrow > span {
  display: none !important;
}

/* Portada ES/EN: reducir únicamente los títulos grandes de los cuatro cuadros. */
body[data-route="/"] .metrics-grid strong,
body[data-route="/en/"] .metrics-grid strong{font-size:32px !important;}
@media(max-width:767px){
  body[data-route="/"] .metrics-grid strong,
  body[data-route="/en/"] .metrics-grid strong{font-size:25px !important;}
}

/* XIRIZ | Regional landing pages – styles isolated to each location */
.location-hero{position:relative;min-height:615px;display:flex;align-items:center;overflow:hidden;isolation:isolate;background-color:#120e23;background-image:radial-gradient(ellipse at 76% 36%,rgba(122,61,213,.48),transparent 46%),linear-gradient(115deg,#101014 6%,#24104f 64%,#0b0b10 100%)}
.location-hero::after{content:"";position:absolute;z-index:-1;inset:0;opacity:.32;background:repeating-linear-gradient(105deg,transparent 0 34px,rgba(189,145,255,.11) 36px,transparent 38px 72px);mask-image:linear-gradient(90deg,transparent 22%,black 100%);pointer-events:none}
.location-hero--tijuana{background-image:radial-gradient(ellipse at 78% 25%,rgba(117,69,208,.46),transparent 50%),linear-gradient(110deg,#101015,#31145d 66%,#101016)}
.location-hero--monterrey{background-image:radial-gradient(ellipse at 80% 30%,rgba(71,70,183,.48),transparent 50%),linear-gradient(110deg,#101016,#1f2050 68%,#101016)}
.location-hero--guadalajara{background-image:radial-gradient(ellipse at 83% 25%,rgba(133,55,179,.48),transparent 50%),linear-gradient(110deg,#101016,#36104a 68%,#111017)}
.location-hero--cdmx{background-image:radial-gradient(ellipse at 80% 25%,rgba(75,56,186,.50),transparent 50%),linear-gradient(110deg,#101016,#251548 68%,#101016)}
.location-hero-inner{padding:70px 0 80px;position:relative;z-index:1}.location-hero h1{font-size:clamp(42px,5.15vw,70px);line-height:1.05;letter-spacing:-.052em;max-width:900px;margin:16px 0 23px}.location-lead{font-size:clamp(17px,1.45vw,21px);max-width:760px;color:#ded8e8;margin:0}.location-hero .breadcrumb{margin-bottom:55px}.location-hero .eyebrow{color:#bba0fd;letter-spacing:.14em}.location-hero .hero-actions{display:flex;flex-wrap:wrap;margin-top:30px}.location-tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:52px}.location-tags span{font-size:12px;color:#dcd3f5;padding:9px 13px;border:1px solid rgba(220,210,244,.3);border-radius:4px;background:rgba(17,13,30,.4)}.location-intro-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:50px;align-items:end}.location-intro h2,.location-solutions h2{font-size:clamp(32px,3.5vw,48px);line-height:1.12;letter-spacing:-.04em;max-width:850px;margin:15px 0 0}.location-intro-grid>p{color:#b9b9b9;font-size:17px;line-height:1.7;margin:0}.location-solutions h2{margin-bottom:35px}.location-features .card{display:flex;flex-direction:column;min-height:265px;padding:30px}.location-features .card>span{font-size:11px;color:#9e80de;letter-spacing:.14em;margin-bottom:35px}.location-features .card h3{font-size:23px}.location-features .card p{font-size:15px;line-height:1.65}.location-cta .cta-panel h2{font-size:clamp(34px,3.7vw,48px)}
@media(max-width:1180px){.location-hero{min-height:565px}.location-hero-inner{padding:55px 0 65px}.location-intro-grid{grid-template-columns:1fr;gap:22px}}
@media(max-width:767px){.location-hero{min-height:610px;align-items:flex-end}.location-hero-inner{padding:38px 0 45px}.location-hero h1{font-size:clamp(37px,10vw,54px)}.location-hero .breadcrumb{margin-bottom:32px}.location-hero .hero-actions{display:grid}.location-tags{margin-top:30px}.location-intro-grid>p{font-size:16px}.location-features .card{min-height:0;padding:25px}.location-features .card>span{margin-bottom:23px}}


/* =========================================================
   XIRIZ — INICIO VISUAL: Tipo de empresa + Núcleo tecnológico
   ========================================================= */
.home-showcase-section{
  padding-top:48px !important;
  padding-bottom:56px !important;
}

.home-showcase-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
  align-items:start;
}

.home-showcase-card{
  border:1px solid rgba(255,255,255,.05);
  border-radius:7px;
  background:linear-gradient(180deg,rgba(16,16,18,.96) 0%,rgba(11,11,12,.98) 100%);
  overflow:hidden;
  padding:18px 18px 10px;
}

.home-showcase-card .eyebrow{
  margin-bottom:12px !important;
}

.home-showcase-card h2{
  font-size:clamp(34px,3.4vw,50px);
  line-height:1.04;
  letter-spacing:-.05em;
  margin:0 0 18px;
  max-width:12ch;
}

.home-showcase-media{
  position:relative;
  min-height:220px;
  border-radius:6px;
  overflow:hidden;
  background-size:cover;
  background-position:center;
  border:1px solid rgba(255,255,255,.035);
  margin-bottom:12px;
}
.home-showcase-media-company{
  background-image:linear-gradient(180deg,rgba(7,7,8,.08) 0%,rgba(7,7,8,.22) 100%), url('/img/inicio/tipo-empresa.webp');
}
.home-showcase-media-tech{
  background-image:linear-gradient(180deg,rgba(7,7,8,.08) 0%,rgba(7,7,8,.22) 100%), url('/img/inicio/nucleo-tecnologico.webp');
}
.home-showcase-media-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(6,6,8,.12) 0%,rgba(6,6,8,.24) 100%);
}
.home-showcase-media-copy{
  position:absolute;
  left:20px; right:20px; bottom:18px;
  z-index:1;
  display:grid; gap:7px;
}
.home-showcase-media-copy strong{
  font-size:18px;
  line-height:1.2;
}
.home-showcase-media-copy span{
  font-size:14px;
  color:#d4d4d4;
  max-width:48ch;
}

.home-showcase-accordion{
  display:grid;
}
.home-showcase-accordion details{
  border-top:1px solid rgba(255,255,255,.045);
}
.home-showcase-accordion details:first-child{
  border-top:0;
}
.home-showcase-accordion summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  cursor:pointer;
  padding:18px 2px;
  font-size:18px;
  font-weight:700;
}
.home-showcase-accordion summary::-webkit-details-marker{display:none;}
.home-showcase-accordion summary i{
  position:relative;
  width:14px; height:14px; flex:0 0 14px;
  opacity:.75;
}
.home-showcase-accordion summary i::before,
.home-showcase-accordion summary i::after{
  content:"";
  position:absolute;
  left:50%; top:50%;
  width:12px; height:1px;
  background:#bfbfbf;
  transform:translate(-50%,-50%);
  transition:transform .22s ease, opacity .22s ease;
}
.home-showcase-accordion summary i::after{
  transform:translate(-50%,-50%) rotate(90deg);
}
.home-showcase-accordion details[open] summary i::after{
  opacity:0;
}
.home-showcase-body{
  padding:0 2px 18px;
}
.home-showcase-body p{
  margin:0;
  color:var(--muted);
  font-size:15px;
  line-height:1.55;
  max-width:52ch;
}
.home-showcase-body a{
  margin-top:14px;
  display:inline-flex;
  font-weight:700;
  font-size:14px;
}

@media (max-width:1180px){
  .home-showcase-grid{
    grid-template-columns:1fr;
  }
  .home-showcase-card{
    padding:16px 16px 8px;
  }
  .home-showcase-card h2{
    max-width:none;
    font-size:clamp(32px,5.6vw,44px);
  }
  .home-showcase-media{
    min-height:200px;
  }
}

@media (max-width:767px){
  .home-showcase-section{
    padding-top:22px !important;
    padding-bottom:30px !important;
  }
  .home-showcase-grid{
    gap:16px;
  }
  .home-showcase-card{
    border-radius:6px;
    padding:14px 14px 6px;
  }
  .home-showcase-card h2{
    font-size:clamp(30px,9vw,40px);
    margin-bottom:14px;
  }
  .home-showcase-media{
    min-height:168px;
    margin-bottom:8px;
  }
  .home-showcase-media-copy{
    left:14px; right:14px; bottom:14px;
  }
  .home-showcase-media-copy strong{font-size:16px;}
  .home-showcase-media-copy span{font-size:13px;}
  .home-showcase-accordion summary{
    padding:16px 2px;
    font-size:17px;
  }
  .home-showcase-body{
    padding-bottom:16px;
  }
  .home-showcase-body p{
    font-size:14px;
  }
}


/* Inicio: paneles parejos, titulos en dos lineas y acordeones cerrados */
@media (min-width:1181px){
 .home-showcase-grid{align-items:stretch !important;}
 .home-showcase-card{display:flex;flex-direction:column;min-width:0;}
 .home-showcase-card h2{font-size:clamp(25px,2.1vw,31px) !important;line-height:1.13 !important;letter-spacing:-.035em !important;max-width:none !important;min-height:2.26em;margin-bottom:16px !important;text-wrap:balance;}
 .home-showcase-media{height:220px;min-height:220px;flex-shrink:0;}
 .home-showcase-accordion{flex:1;}
}
@media (min-width:768px) and (max-width:1180px){
 .home-showcase-card h2{font-size:clamp(25px,3.2vw,32px) !important;line-height:1.13 !important;max-width:none !important;text-wrap:balance;}
}
@media (max-width:767px){
 .home-showcase-card h2{font-size:clamp(20px,5.6vw,28px) !important;line-height:1.16 !important;max-width:none !important;text-wrap:balance;}
}


/* =========================================================
   XIRIZ — COBERTURA HOME INTERACTIVA CON MAPA
   ========================================================= */
.home-coverage-map-section{
  padding-top:38px !important;
  padding-bottom:58px !important;
}
.coverage-map-head{
  display:grid;
  gap:12px;
  margin-bottom:22px;
}
.coverage-map-head h2{
  margin:0;
  font-size:clamp(38px,4vw,58px);
  line-height:1.03;
  letter-spacing:-.05em;
  max-width:14ch;
}
.coverage-map-head p{
  margin:0;
  max-width:62ch;
  color:var(--muted);
}
.coverage-map-shell{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
  gap:18px;
  align-items:stretch;
}
.coverage-map-stage,
.coverage-city-list{
  border:1px solid rgba(255,255,255,.04);
  border-radius:8px;
  background:linear-gradient(180deg,rgba(14,14,16,.96),rgba(9,9,11,.98));
}
.coverage-map-stage{
  padding:10px;
  min-height:440px;
  overflow:hidden;
}
.coverage-map-viewport{
  position:relative;
  overflow:hidden;
  border-radius:7px;
  height:100%;
  min-height:420px;
  background:#090b10;
}
.coverage-map-inner{
  position:relative;
  width:100%;
  height:100%;
  min-height:420px;
  transition:transform .55s cubic-bezier(.2,.75,.25,1);
  transform-origin:50% 50%;
}
.coverage-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.coverage-city-list{
  padding:10px;
  display:grid;
  gap:10px;
}
.coverage-city-card{
  display:grid;
  gap:10px;
  padding:18px 18px 16px;
  min-height:96px;
  border:1px solid rgba(255,255,255,.035);
  border-radius:7px;
  background:linear-gradient(180deg,rgba(23,24,28,.98),rgba(15,16,18,.98));
  transition:transform .22s ease,border-color .22s ease, box-shadow .22s ease, background-color .22s ease;
}
.coverage-city-card strong{
  font-size:18px;
  line-height:1.1;
}
.coverage-city-card span{
  color:var(--muted);
  font-size:14px;
  line-height:1.45;
}
.coverage-city-card em{
  font-style:normal;
  font-weight:700;
  font-size:14px;
  color:#fff;
}
.coverage-city-card.is-active,
.coverage-city-card:hover,
.coverage-city-card:focus-visible{
  border-color:rgba(123,80,255,.38);
  box-shadow:0 0 0 1px rgba(123,80,255,.18), 0 0 28px rgba(87,67,190,.18);
  transform:translateY(-1px);
}
.coverage-city-card:hover em,
.coverage-city-card.is-active em{color:#fff;}

.coverage-marker{
  position:absolute;
  transform:translate(-50%,-50%);
  z-index:2;
}
.coverage-marker-hit{
  position:absolute;
  inset:-16px;
  border:0;
  background:transparent;
  cursor:pointer;
}
.coverage-marker-dot{
  width:14px; height:14px; display:block; border-radius:50%;
  background:#b793ff;
  box-shadow:0 0 0 7px rgba(131,95,255,.17),0 0 18px rgba(131,95,255,.55);
}
.coverage-marker::after{
  content:"";
  position:absolute;
  left:50%; top:50%;
  width:30px; height:30px;
  border-radius:50%;
  border:1px solid rgba(141,118,255,.36);
  transform:translate(-50%,-50%);
  opacity:.45;
}
.coverage-marker-label{
  position:absolute;
  top:-6px;
  left:22px;
  min-width:126px;
  padding:10px 12px 9px;
  border-radius:6px;
  background:rgba(17,18,22,.86);
  backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.055);
  box-shadow:0 14px 22px rgba(0,0,0,.24);
}
.coverage-marker-label strong{
  display:block;
  font-size:16px;
  line-height:1.05;
}
.coverage-marker-label span{
  display:block;
  margin-top:4px;
  font-size:13px;
  line-height:1.2;
  color:#d7d7d7;
}
.marker-tijuana{left:15.3%; top:27.8%;}
.marker-monterrey{left:59.4%; top:44.4%;}
.marker-guadalajara{left:49.3%; top:70.3%;}
.marker-cdmx{left:62.8%; top:74.6%;}

.coverage-map-shell[data-active-city="tijuana"] .coverage-map-inner{transform:scale(1.16) translate(7%, 3%);}
.coverage-map-shell[data-active-city="monterrey"] .coverage-map-inner{transform:scale(1.16) translate(-4%, 1%);}
.coverage-map-shell[data-active-city="guadalajara"] .coverage-map-inner{transform:scale(1.16) translate(2%, -6%);}
.coverage-map-shell[data-active-city="cdmx"] .coverage-map-inner{transform:scale(1.18) translate(-8%, -8%);}

.coverage-map-shell[data-active-city="tijuana"] .marker-tijuana,
.coverage-map-shell[data-active-city="monterrey"] .marker-monterrey,
.coverage-map-shell[data-active-city="guadalajara"] .marker-guadalajara,
.coverage-map-shell[data-active-city="cdmx"] .marker-cdmx{z-index:4;}
.coverage-map-shell[data-active-city="tijuana"] .marker-tijuana .coverage-marker-dot,
.coverage-map-shell[data-active-city="monterrey"] .marker-monterrey .coverage-marker-dot,
.coverage-map-shell[data-active-city="guadalajara"] .marker-guadalajara .coverage-marker-dot,
.coverage-map-shell[data-active-city="cdmx"] .marker-cdmx .coverage-marker-dot{
  background:#fff;
  box-shadow:0 0 0 8px rgba(123,80,255,.23),0 0 28px rgba(123,80,255,.75);
}
.coverage-map-shell[data-active-city="tijuana"] .marker-tijuana::after,
.coverage-map-shell[data-active-city="monterrey"] .marker-monterrey::after,
.coverage-map-shell[data-active-city="guadalajara"] .marker-guadalajara::after,
.coverage-map-shell[data-active-city="cdmx"] .marker-cdmx::after{
  opacity:.9;
}
.coverage-map-shell[data-active-city="tijuana"] .marker-tijuana .coverage-marker-label,
.coverage-map-shell[data-active-city="monterrey"] .marker-monterrey .coverage-marker-label,
.coverage-map-shell[data-active-city="guadalajara"] .marker-guadalajara .coverage-marker-label,
.coverage-map-shell[data-active-city="cdmx"] .marker-cdmx .coverage-marker-label{
  border-color:rgba(123,80,255,.33);
  box-shadow:0 0 0 1px rgba(123,80,255,.12),0 20px 32px rgba(0,0,0,.28);
}

@media (max-width:1180px){
  .coverage-map-shell{
    grid-template-columns:1fr;
  }
  .coverage-map-stage{min-height:380px;}
  .coverage-map-viewport,.coverage-map-inner{min-height:360px;}
  .coverage-city-list{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:767px){
  .home-coverage-map-section{padding-top:26px !important; padding-bottom:34px !important;}
  .coverage-map-head h2{font-size:clamp(32px,10vw,44px);}
  .coverage-map-head p{font-size:14px;}
  .coverage-map-stage{padding:8px; min-height:300px;}
  .coverage-map-viewport,.coverage-map-inner{min-height:284px;}
  .coverage-city-list{grid-template-columns:1fr; padding:8px;}
  .coverage-city-card{min-height:auto; padding:16px 16px 14px;}
  .coverage-marker-label{min-width:104px; padding:8px 10px 7px; left:18px;}
  .coverage-marker-label strong{font-size:14px;}
  .coverage-marker-label span{font-size:11px;}
  .coverage-map-shell[data-active-city="tijuana"] .coverage-map-inner{transform:scale(1.12) translate(6%, 2%);}
  .coverage-map-shell[data-active-city="monterrey"] .coverage-map-inner{transform:scale(1.12) translate(-3%, 1%);}
  .coverage-map-shell[data-active-city="guadalajara"] .coverage-map-inner{transform:scale(1.12) translate(1%, -5%);}
  .coverage-map-shell[data-active-city="cdmx"] .coverage-map-inner{transform:scale(1.14) translate(-7%, -6%);}
}


/* Cobertura: la tarjeta selecciona una ciudad; solo el enlace abre la sede. */
.coverage-city-card{cursor:pointer;}
.coverage-city-card .coverage-city-link{
  display:inline-flex;
  width:max-content;
  font-size:14px;
  font-weight:700;
  font-style:normal;
  color:#fff;
  text-decoration:none;
  position:relative;
  z-index:1;
}
.coverage-city-card .coverage-city-link:hover{text-decoration:underline;text-underline-offset:3px;}
.coverage-city-card:focus-visible{outline:1px solid rgba(130,95,255,.65);outline-offset:2px;}
.coverage-map-shell .coverage-map-inner{
  transform:translate(var(--map-pan-x,0px),var(--map-pan-y,0px)) scale(var(--map-scale,1.12)) !important;
  transform-origin:50% 50%;
}


/* XIRIZ — CTA: solo el boton navega */
body[data-route="/"] .home-consultation-strip,
body[data-route="/en/"] .home-consultation-strip {
  padding:0 !important;
  border:0 !important;
  background:#3e2180;
}
.home-consultation-inner {
  min-height:164px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:44px;
  padding-block:28px;
}
.home-consultation-copy {
  display:flex;
  flex-direction:column;
  min-width:0;
}
.home-consultation-label {
  font-size:21px;
  font-weight:800;
  line-height:1.2;
}
.home-consultation-heading {
  font-size:clamp(26px, 2.5vw, 36px);
  line-height:1.15;
  font-weight:800;
  letter-spacing:-.025em;
  margin-bottom:10px;
}
.home-consultation-description {
  font-size:16px;
  line-height:1.5;
  font-weight:400;
}
.home-consultation-cta {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  flex:0 0 310px;
  min-height:58px;
  padding:14px 22px;
  border-radius:5px;
  background:#151515;
  color:#fff;
  font-size:16px;
  font-weight:500;
  white-space:nowrap;
  text-decoration:none;
  cursor:pointer;
  transition:background-color .25s ease;
}
.home-consultation-cta:hover,
.home-consultation-cta:focus-visible {
  background:#2b1755;
}
.home-consultation-cta:focus-visible {outline:2px solid #b99cfb;outline-offset:3px;}
@media (max-width:1180px) {
  .home-consultation-inner {gap:24px;}
  .home-consultation-cta {flex-basis:245px;}
  .home-consultation-heading {font-size:28px;}
  .home-consultation-description {font-size:15px;}
}
@media (max-width:767px) {
  .home-consultation-inner {
    min-height:0;
    padding-block:30px;
    flex-direction:column;
    align-items:stretch;
    gap:24px;
  }
  .home-consultation-label {font-size:17px;}
  .home-consultation-heading {font-size:26px;line-height:1.2;}
  .home-consultation-description {font-size:15px;line-height:1.5;}
  .home-consultation-cta {
    width:100%;
    min-height:54px;
    flex:0 0 auto;
  }
}
@media (prefers-reduced-motion:reduce) {
  .home-consultation-cta {transition:none;}
}



.home-consultation-strip {cursor:default;}
.home-consultation-strip .home-consultation-inner {cursor:default;}
/* Inicio: ventana de detalle plana y fotografías sin capas superpuestas. */
.home-showcase-section .home-detail-popup{
  background:transparent !important;
  box-shadow:none !important;
  border:0 !important;
  cursor:pointer;
}
.home-showcase-section .home-detail-popup-close{
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  color:#bcbcbc !important;
  width:26px;
  height:26px;
  font-size:24px;
}
.home-showcase-section .home-detail-popup-close:hover{color:#fff !important;background:transparent !important;}
.home-showcase-section .home-showcase-media-company{background-image:url('/img/inicio/tipo-empresa.webp') !important;}
.home-showcase-section .home-showcase-media-tech{background-image:url('/img/inicio/nucleo-tecnologico.webp') !important;}
.home-showcase-section .home-showcase-media-overlay{display:none !important;}

/* Inicio ES/EN: detalle alineado con la lista de opciones. */
.home-showcase-section .home-detail-popup{
  padding:16px 2px 20px !important;
}
@media (max-width:767px){
  .home-showcase-section .home-detail-popup{
    padding:15px 2px 18px !important;
  }
}


/* Inicio ES/EN: alinear inicio, ancho y altura de las dos imagenes. */
.home-showcase-section .home-showcase-card{
  min-width:0;
}
.home-showcase-section .home-showcase-media{
  display:block;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  flex:0 0 220px;
  height:220px;
  min-height:220px;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  overflow:hidden;
}
@media (min-width:1181px){
  .home-showcase-section .home-showcase-card h2{
    height:2.26em;
    min-height:2.26em;
    max-height:2.26em;
    overflow:visible;
  }
}
@media (min-width:768px) and (max-width:1180px){
  .home-showcase-section .home-showcase-media{
    height:200px;
    min-height:200px;
    flex-basis:200px;
  }
}
@media (max-width:767px){
  .home-showcase-section .home-showcase-media{
    height:168px;
    min-height:168px;
    flex-basis:168px;
  }
}

/* Corrección final de alineación: dos imágenes en la misma fila en escritorio. */
@media(min-width:1181px){
  .home-showcase-section .home-showcase-card h2{
    line-height:1.08 !important;
    height:2.16em !important;
    min-height:2.16em !important;
    margin-bottom:18px !important;
  }
  .home-showcase-section .home-showcase-grid{align-items:stretch !important;}
}
.home-showcase-section .home-showcase-media{
  height:220px !important; min-height:220px !important;
  background-size:cover !important; background-position:center !important;
}
@media(min-width:768px) and (max-width:1180px){.home-showcase-section .home-showcase-media{height:200px !important;min-height:200px !important;}}
@media(max-width:767px){.home-showcase-section .home-showcase-media{height:168px !important;min-height:168px !important;}}


/* XIRIZ — Enlaces directos en Tipo de Empresa y Núcleo Tecnológico (ES / EN). */
.home-showcase-direct-links{display:grid;margin-top:6px;}
.home-showcase-direct-link{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px;padding:16px 2px;border-bottom:1px solid rgba(255,255,255,.045);color:#f2f2f2;font-size:18px;font-weight:700;text-decoration:none;transition:color .2s ease,background-color .2s ease;}
.home-showcase-direct-link:last-child{border-bottom:0;}
.home-showcase-direct-link:hover,.home-showcase-direct-link:focus-visible{color:#b49aff;background-color:rgba(255,255,255,.015);}
.home-showcase-direct-link:focus-visible{outline:1px solid rgba(150,105,255,.4);outline-offset:-1px;}
.home-showcase-direct-arrow{color:#858585;font-size:18px;font-weight:400;transition:color .2s ease,transform .2s ease;}
.home-showcase-direct-link:hover .home-showcase-direct-arrow,.home-showcase-direct-link:focus-visible .home-showcase-direct-arrow{color:#b49aff;transform:translateX(3px);}
@media(max-width:767px){.home-showcase-direct-link{min-height:60px;padding:14px 2px;font-size:16px;}}
@media(prefers-reduced-motion:reduce){.home-showcase-direct-link,.home-showcase-direct-arrow{transition:none;}}


/* Inicio ES/EN — Imágenes ligeramente más altas; enlaces más discretos con flecha. */
@media (min-width:1181px){
  .home-showcase-section .home-showcase-media{
    height:260px !important;
    min-height:260px !important;
    flex-basis:260px !important;
  }
}
@media (min-width:768px) and (max-width:1180px){
  .home-showcase-section .home-showcase-media{
    height:235px !important;
    min-height:235px !important;
    flex-basis:235px !important;
  }
}
@media (max-width:767px){
  .home-showcase-section .home-showcase-media{
    height:195px !important;
    min-height:195px !important;
    flex-basis:195px !important;
  }
}
.home-showcase-section .home-showcase-direct-link{
  font-size:15px !important;
  font-weight:650 !important;
  min-height:56px !important;
  padding:12px 2px !important;
}
.home-showcase-section .home-showcase-direct-arrow{
  font-size:17px !important;
  flex-shrink:0;
}
@media (max-width:767px){
  .home-showcase-section .home-showcase-direct-link{
    font-size:14px !important;
    min-height:52px !important;
    padding:10px 2px !important;
  }
}


/* Corrección final: headers sin superposición de opacidad/degradado.
   Se preservan las rutas exclusivas de imágenes del Inicio. */
#page-main .hero .hero-overlay,
#page-main .hero > .hero-overlay,
#page-main .hero::before,
#page-main .hero::after,
#page-main .location-hero::before,
#page-main .location-hero::after,
#page-main .portal-landing > .portal-landing-overlay {
  display:none !important;
  background:none !important;
  opacity:0 !important;
  box-shadow:none !important;
}

/* Pie de página — textos finales más juntos en tablets y celulares (ES/EN) */
@media (max-width:1180px){
  .footer-bottom{
    gap:5px !important;
    row-gap:5px !important;
  }
  .footer-bottom > p,
  .footer-bottom > div{
    margin-block:0 !important;
    line-height:1.35 !important;
  }
}
@media (max-width:767px){
  .footer-bottom{
    gap:3px !important;
    row-gap:3px !important;
  }
}


/* XIRIZ — Solo formulario de Contacto: contornos más discretos ES/EN */
body:is([data-route="/contacto/"],[data-route="/en/contact/"]) .form-shell {
  border-color:rgba(255,255,255,.045) !important;
  box-shadow:none !important;
}
body:is([data-route="/contacto/"],[data-route="/en/contact/"]) .form-shell .form-copy {
  border-right-color:rgba(255,255,255,.045) !important;
}
body:is([data-route="/contacto/"],[data-route="/en/contact/"]) .consult-form input,
body:is([data-route="/contacto/"],[data-route="/en/contact/"]) .consult-form select,
body:is([data-route="/contacto/"],[data-route="/en/contact/"]) .consult-form textarea {
  border-color:rgba(255,255,255,.085) !important;
  box-shadow:none !important;
}
body:is([data-route="/contacto/"],[data-route="/en/contact/"]) .consult-form :is(input,select,textarea):focus-visible {
  border-color:rgba(170,141,245,.52) !important;
  outline:1px solid rgba(170,141,245,.25) !important;
  outline-offset:0;
}


/* Contacto ES/EN — fondo gris más oscuro, sin alterar bordes ni composición */
body:is([data-route="/contacto/"],[data-route="/en/contact/"]) .form-shell {
  background:#111113 !important;
}
body:is([data-route="/contacto/"],[data-route="/en/contact/"]) .consult-form :is(input,select,textarea) {
  background-color:#0c0c0e !important;
}


/* XIRIZ — Casos de Éxito ES/EN: tarjetas y filtros flat,
   mismo gris oscuro del formulario de Contacto */
body:is([data-route="/casos-de-exito/"],[data-route="/en/case-studies/"]) .case-card {
  background:#111113 !important;
  border-color:rgba(255,255,255,.045) !important;
  box-shadow:none !important;
}
body:is([data-route="/casos-de-exito/"],[data-route="/en/case-studies/"]) .filters button {
  background:#111113;
  border-color:rgba(255,255,255,.065) !important;
  box-shadow:none !important;
  transition:background-color .18s ease,border-color .18s ease;
}
body:is([data-route="/casos-de-exito/"],[data-route="/en/case-studies/"]) .filters button:not(.active):hover {
  background:#19191c !important;
}
body:is([data-route="/casos-de-exito/"],[data-route="/en/case-studies/"]) .filters button.active {
  background:#3e2180 !important;
  color:#fff !important;
  border-color:rgba(255,255,255,.065) !important;
}


/* XIRIZ — Fondo flat uniforme de los bloques de contenido, en toda la web.
   No afecta imágenes, headers, botones, campos ni fondos de secciones. */
:root {
  --xiriz-block-flat:#111113;
  --xiriz-block-border:rgba(255,255,255,.045);
}
#page-main .cards > .card,
#page-main .case-card,
#page-main .capability-static,
#page-main .home-showcase-card,
#page-main .coverage-city-card,
#page-main .location-grid > a,
#page-main .chips > span {
  background-color:var(--xiriz-block-flat) !important;
  background-image:none !important;
  border-color:var(--xiriz-block-border) !important;
  box-shadow:none !important;
}
/* El hover mantiene una variación discreta sin cambiar el color base en reposo. */
#page-main .location-grid > a:hover,
#page-main .coverage-city-card:hover {
  background-color:#19191c !important;
}
/* Mantener identificable la ciudad seleccionada. */
#page-main .coverage-city-card.is-active {
  background-color:#19191c !important;
}


/* XIRIZ — fondos exclusivos para encabezados de Cobertura, ES / EN.
   Misma imagen suministrada por el usuario, con archivo individual por ruta. */
#page-main .hero.hero-location.location-hero--cdmx {
  background-image:url('/img/headers/cobertura/cdmx.webp') !important;
}
#page-main .hero.hero-location.location-hero--guadalajara {
  background-image:url('/img/headers/cobertura/guadalajara.webp') !important;
}
#page-main .hero.hero-location.location-hero--monterrey {
  background-image:url('/img/headers/cobertura/monterrey.webp') !important;
}
#page-main .hero.hero-location.location-hero--tijuana {
  background-image:url('/img/headers/cobertura/tijuana.webp') !important;
}
body[data-lang="en"] #page-main .hero.hero-location.location-hero--cdmx {
  background-image:url('/img/headers/en/coverage/mexico-city.webp') !important;
}
body[data-lang="en"] #page-main .hero.hero-location.location-hero--guadalajara {
  background-image:url('/img/headers/en/coverage/guadalajara.webp') !important;
}
body[data-lang="en"] #page-main .hero.hero-location.location-hero--monterrey {
  background-image:url('/img/headers/en/coverage/monterrey.webp') !important;
}
body[data-lang="en"] #page-main .hero.hero-location.location-hero--tijuana {
  background-image:url('/img/headers/en/coverage/tijuana.webp') !important;
}
#page-main .hero.hero-coverage {
  background-image:url('/img/headers/cobertura/cobertura.webp') !important;
}
body[data-lang="en"] #page-main .hero.hero-coverage {
  background-image:url('/img/headers/en/coverage/coverage.webp') !important;
}
/* Sin capas superpuestas en los headers de Cobertura. */
#page-main .hero.hero-coverage > .hero-overlay,
#page-main .hero.hero-location > .hero-overlay,
#page-main .hero.hero-location::before,
#page-main .hero.hero-location::after,
#page-main .hero.hero-coverage::before,
#page-main .hero.hero-coverage::after {
  display:none !important;
  content:none !important;
}


/* XIRIZ 2026-10 — Navegación móvil y tabletas estilo corporativo, con accesos al pie. */
@media (max-width:1180px){
  html.menu-open .site-header{background:#191919 !important;border-bottom:0 !important;}
  html.menu-open .site-header .portal-btn,
  html.menu-open .site-header .mobile-lang{display:none !important;}
  html.menu-open .site-header .nav-shell{min-height:80px !important;}
  html.menu-open .site-header .menu-toggle{border:0 !important;background:none !important;}
  .mobile-menu{background:#191919 !important;}
  .mobile-menu-inner{min-height:100%;display:flex !important;flex-direction:column;padding-bottom:0 !important;width:100% !important;max-width:none !important;}
  .mobile-nav{display:flex !important;flex:1;flex-direction:column;min-height:100%;width:100%;}
  .mobile-nav > a:not(.mobile-consult-link),
  .mobile-nav > details > summary{
    width:100%;padding:0 max(var(--gutter),20px) !important;
    min-height:64px !important;font-size:22px !important;font-weight:400 !important;
    border-bottom:1px solid rgba(255,255,255,.28) !important;
    color:#f3f3f7 !important;
  }
  .mobile-nav > details{border:0 !important;}
  .mobile-nav > details > summary span{font-size:23px !important;font-weight:300 !important;}
  .mobile-nav > details > .mobile-sub{padding:4px max(var(--gutter),20px) 12px !important;background:#1d1d1d !important;}
  .mobile-nav > details > .mobile-sub a{font-size:17px !important;padding:12px 8px !important;color:#e4e4e7 !important;}
  .mobile-nav > .mobile-consult-link{font-size:16px !important;margin:10px max(var(--gutter),20px) 20px;width:auto !important;min-height:52px !important;display:flex;justify-content:center;align-items:center;background:#41238b;border:1px solid rgba(255,255,255,.1) !important;border-radius:2px;font-weight:700;color:white;}
  .mobile-actions{margin-top:auto !important;padding:0 !important;gap:0 !important;display:grid !important;width:100%;background:#191919;}
  .mobile-menu .mobile-actions a.mobile-footer-lang,
  .mobile-menu .mobile-actions a.mobile-footer-portal{display:flex !important;align-items:center;gap:16px;min-height:62px;padding:12px max(var(--gutter),20px) !important;border-top:1px solid rgba(0,0,0,.28);font-size:16px;font-weight:500;background:transparent !important;color:#fff !important;border-radius:0 !important;}
  .mobile-footer-symbol{width:25px;text-align:center;font-size:24px;font-weight:300;line-height:1;}
  .mobile-footer-lang small{font-size:13px;font-weight:400;margin-left:4px;}
  .mobile-footer-chevron{margin-left:0;font-size:17px;}
  .mobile-menu .mobile-actions .mobile-footer-portal{border-bottom:0 !important;}
}
@media(max-width:600px){
  .mobile-nav > a:not(.mobile-consult-link), .mobile-nav > details > summary{font-size:21px !important;min-height:64px !important;}
}

/* Barra compacta de tabletas y móviles: Portal e idioma solo dentro del menú. */
@media (max-width:1180px){
  .site-header .nav-actions > .portal-btn,
  .site-header .nav-actions > .mobile-lang { display:none !important; }
}

/* Ocultar la solicitud de diagnóstico únicamente dentro del menú para tabletas y celulares. */
@media (max-width: 1180px) {
  .mobile-menu .header-cta,
  .mobile-menu .mobile-diagnostic-cta {
    display: none !important;
  }
}

/* XIRIZ — Menú responsive con composición de referencia: cabecera, lista y pie. */
@media (max-width:1180px){
  html.menu-open .site-header{
    height:80px !important;
    background:#2d2c36 !important;
    border:0 !important;
    box-shadow:none !important;
  }
  html.menu-open .site-header .nav-shell{
    height:80px !important;
    min-height:80px !important;
  }
  html.menu-open .site-header .site-search-toggle{
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
  }
  html.menu-open .site-header .menu-toggle{
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }
  .mobile-menu{
    top:80px !important;
    background:#2d2c36 !important;
    border:0 !important;
  }
  .mobile-menu-inner{
    min-height:100% !important;
    padding:0 !important;
    display:flex !important;
    flex-direction:column !important;
  }
  .mobile-menu .mobile-nav{
    flex:1 0 auto !important;
    min-height:100% !important;
    display:flex !important;
    flex-direction:column !important;
    text-align:left !important;
  }
  .mobile-menu .mobile-nav > a:not(.mobile-consult-link),
  .mobile-menu .mobile-nav > details > summary{
    position:relative;
    min-height:64px !important;
    padding:0 20px !important;
    margin:0 !important;
    display:flex !important;
    justify-content:space-between !important;
    text-align:left !important;
    font-size:22px !important;
    font-weight:400 !important;
    line-height:1.3 !important;
    border-top:0 !important;
    border-bottom:1px solid #777580 !important;
    background:transparent !important;
    color:#fafafa !important;
  }
  .mobile-menu .mobile-nav > details{
    background:transparent !important;
    border:0 !important;
  }
  .mobile-menu .mobile-nav > details > summary span{
    margin-left:auto !important;
  }
  .mobile-menu .mobile-nav > details > .mobile-sub{
    background:#272630 !important;
    padding:8px 20px 14px !important;
  }
  .mobile-menu .mobile-nav .mobile-sub a{
    justify-content:flex-start !important;
    text-align:left !important;
    padding:12px 8px !important;
    font-size:17px !important;
    border:0 !important;
  }
  .mobile-menu .mobile-actions{
    margin-top:auto !important;
    background:#2d2c36 !important;
    display:flex !important;
    flex-direction:column !important;
    gap:0 !important;
    padding:0 !important;
    width:100% !important;
    justify-items:stretch !important;
  }
  .mobile-menu .mobile-actions a.mobile-footer-lang,
  .mobile-menu .mobile-actions a.mobile-footer-portal{
    display:flex !important;
    align-items:center !important;
    min-height:61px !important;
    padding:12px 20px !important;
    gap:15px !important;
    background:#2d2c36 !important;
    border:0 !important;
    border-top:1px solid #17171d !important;
    color:#fff !important;
    font-size:16px !important;
    text-align:left !important;
    font-weight:400 !important;
  }
  .mobile-menu .mobile-footer-chevron{margin-left:auto !important;}
  .mobile-menu .mobile-nav > .mobile-consult-link,
  .mobile-menu .mobile-nav > .mobile-diagnostic-cta{display:none !important;}
}

/* Menú tablet/móvil: divisores iguales y pestaña amarilla de página activa. */
@media (max-width:1180px){
  .mobile-menu .mobile-nav > a:not(.mobile-consult-link),
  .mobile-menu .mobile-nav > details > summary{
    border-bottom:0 !important;
    position:relative;
  }
  .mobile-menu .mobile-nav > a:not(.mobile-consult-link)::after,
  .mobile-menu .mobile-nav > details > summary::after{
    content:"" !important;
    position:absolute;
    left:20px;
    right:20px;
    bottom:0;
    height:1px;
    background:#777580;
    pointer-events:none;
  }
  .mobile-menu .mobile-nav > a.is-current-page::before,
  .mobile-menu .mobile-nav > details.has-current-page > summary::before{
    content:"" !important;
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:3px;
    background:#5329a3;
    border:0 !important;
    opacity:1 !important;
    transform:none !important;
  }
  .mobile-menu .mobile-nav > details.has-current-page > summary,
  .mobile-menu .mobile-nav > a.is-current-page{background:#1b1a24 !important;}
  .mobile-menu .mobile-nav .mobile-sub a.is-current-page{
    border-left:3px solid #5329a3 !important;
    padding-left:13px !important;
  }
  .mobile-menu .mobile-actions a.mobile-footer-lang,
  .mobile-menu .mobile-actions a.mobile-footer-portal{
    border-top:1px solid #777580 !important;
  }
}


/* XIRIZ — altura uniforme de enlaces principales en menú tabletas y celulares. */
@media (max-width:1180px){
  .mobile-menu .mobile-nav > details{
    flex:0 0 auto !important;
    margin:0 !important;
    padding:0 !important;
    min-height:0 !important;
    box-shadow:none !important;
  }
  .mobile-menu .mobile-nav > a:not(.mobile-consult-link),
  .mobile-menu .mobile-nav > details > summary{
    box-sizing:border-box !important;
    flex:0 0 64px !important;
    height:64px !important;
    min-height:64px !important;
    max-height:64px !important;
    margin:0 !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    align-items:center !important;
    border-top:0 !important;
    border-bottom:0 !important;
    box-shadow:none !important;
  }
  .mobile-menu .mobile-nav > details > summary{
    display:flex !important;
  }
  .mobile-menu .mobile-nav > a:not(.mobile-consult-link)::after,
  .mobile-menu .mobile-nav > details > summary::after{
    bottom:0 !important;
  }
}

/* XIRIZ — filas principales idénticas: 64px exactos, incluido el separador. */
@media (max-width:1180px){
  .mobile-menu .mobile-nav {
    gap:0 !important;
    row-gap:0 !important;
    justify-content:flex-start !important;
    align-content:flex-start !important;
  }
  .mobile-menu .mobile-nav > a:not(.mobile-consult-link):not(.mobile-diagnostic-cta),
  .mobile-menu .mobile-nav > details > summary {
    box-sizing:border-box !important;
    display:flex !important;
    flex:0 0 64px !important;
    height:64px !important;
    min-height:64px !important;
    max-height:64px !important;
    padding:0 20px !important;
    margin:0 !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    align-items:center !important;
    justify-content:space-between !important;
    line-height:1.2 !important;
  }
  .mobile-menu .mobile-nav > a:not(.mobile-consult-link):not(.mobile-diagnostic-cta)::after,
  .mobile-menu .mobile-nav > details > summary::after {
    left:20px !important;
    right:20px !important;
    bottom:0 !important;
    height:1px !important;
  }
  .mobile-menu .mobile-nav > details {
    box-sizing:border-box !important;
    display:block !important;
    flex:0 0 auto !important;
    align-self:stretch !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    box-shadow:none !important;
    min-height:0 !important;
  }
  /* El acordeón JS conserva details[open] incluso al estar cerrado.
     El estado visual real lo determinan is-collapsed / is-expanded. */
  .mobile-menu .mobile-nav > details.is-collapsed {
    height:64px !important;
    min-height:64px !important;
    max-height:64px !important;
    overflow:hidden !important;
  }
  .mobile-menu .mobile-nav > details.is-expanded,
  .mobile-menu .mobile-nav > details.is-expanding,
  .mobile-menu .mobile-nav > details.is-collapsing {
    height:auto !important;
    max-height:none !important;
  }
  /* No imponer height:auto al panel: JS anima su altura inline. */
  .mobile-menu .mobile-nav > details.is-collapsed > .mobile-sub {
    opacity:0 !important;
    pointer-events:none !important;
  }
  .mobile-menu .mobile-nav > .mobile-actions {
    flex:0 0 auto !important;
  }
}

/* XIRIZ: fondo uniforme en todo el menú responsive. */
@media (max-width:1180px) {
  html.menu-open .site-header,
  .mobile-menu,
  .mobile-menu-inner,
  .mobile-menu .mobile-nav,
  .mobile-menu .mobile-nav > details,
  .mobile-menu .mobile-nav > details > summary,
  .mobile-menu .mobile-nav > details > .mobile-sub,
  .mobile-menu .mobile-nav .mobile-sub a,
  .mobile-menu .mobile-actions,
  .mobile-menu .mobile-actions a.mobile-footer-lang,
  .mobile-menu .mobile-actions a.mobile-footer-portal,
  .mobile-menu .mobile-nav > a.is-current-page,
  .mobile-menu .mobile-nav > details.has-current-page > summary {
    background-color:#0f0f0f !important;
  }
}

/* XIRIZ — fondo de opción activa en el menú de tabletas y celulares. */
@media (max-width:1180px) {
  .mobile-menu .mobile-nav > a.is-current-page,
  .mobile-menu .mobile-nav > details.has-current-page > summary,
  .mobile-menu .mobile-nav .mobile-sub a.is-current-page {
    background-color:#131313 !important;
  }
}

/* XIRIZ — líneas horizontales del menú responsive: #1d1d1d. */
@media (max-width:1180px) {
  .mobile-menu .mobile-nav > a:not(.mobile-consult-link)::after,
  .mobile-menu .mobile-nav > details > summary::after {
    background-color:#1d1d1d !important;
  }
  .mobile-menu .mobile-nav > a:not(.mobile-consult-link),
  .mobile-menu .mobile-nav > details > summary,
  .mobile-menu .mobile-nav .mobile-sub a {
    border-bottom-color:#1d1d1d !important;
  }
  .mobile-menu .mobile-actions a.mobile-footer-lang,
  .mobile-menu .mobile-actions a.mobile-footer-portal {
    border-top-color:#1d1d1d !important;
  }
}

/* XIRIZ — navbar responsive: mismo fondo que el menú, abierto o cerrado. */
@media (max-width:1180px) {
  html .site-header,
  html.menu-open .site-header,
  body .site-header,
  html .site-header .nav-shell,
  html.menu-open .site-header .nav-shell {
    background-color:#0f0f0f !important;
  }
}

/* XIRIZ — Portal de Clientes: fondo morado solo en tabletas y celulares. */
@media (max-width:1180px) {
  .mobile-menu .mobile-actions a.mobile-footer-portal,
  .mobile-menu .mobile-actions a.mobile-footer-portal:hover,
  .mobile-menu .mobile-actions a.mobile-footer-portal:focus-visible {
    background:#5329a3 !important;
    background-color:#5329a3 !important;
  }
}

/* Corrección de transición de submenús móviles/tabletas: prevalece sobre reglas antiguas. */
@media (max-width:1180px) {
  .mobile-menu .mobile-nav > details.is-expanding > .mobile-sub,
  .mobile-menu .mobile-nav > details.is-collapsing > .mobile-sub {
    display:grid !important;
    min-height:0 !important;
    overflow:hidden !important;
    transition:height 420ms cubic-bezier(.4,0,.2,1), opacity 320ms ease !important;
  }
  .mobile-menu .mobile-nav > details.is-expanding,
  .mobile-menu .mobile-nav > details.is-collapsing {
    overflow:visible !important;
    max-height:none !important;
    height:auto !important;
  }
}

/* XIRIZ: el acordeón usa Web Animations API, sin transiciones CSS competidoras. */
@media (max-width:1180px){
  .mobile-menu .mobile-nav > details > .mobile-sub,
  .mobile-menu .mobile-nav > details.is-expanding > .mobile-sub,
  .mobile-menu .mobile-nav > details.is-collapsing > .mobile-sub {
    display:grid !important;
    box-sizing:border-box !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    margin:0 !important;
    min-height:0 !important;
    overflow:hidden !important;
    transition:none !important;
    transform:none !important;
    will-change:height;
  }
  .mobile-menu .mobile-nav > details.is-expanded > .mobile-sub{overflow:visible !important;}
  .mobile-menu .mobile-nav > details.is-collapsed{height:64px !important;overflow:hidden !important;}
  .mobile-menu .mobile-nav > details.is-expanding,
  .mobile-menu .mobile-nav > details.is-collapsing{height:auto !important;overflow:visible !important;}
  .mobile-nav details > summary span{transition:transform 320ms ease !important;}
  .mobile-nav details.is-collapsed > summary span,
  .mobile-nav details.is-collapsing > summary span{transform:rotate(0deg) !important;}
  .mobile-nav details.is-expanded > summary span,
  .mobile-nav details.is-expanding > summary span{transform:rotate(45deg) !important;}
}

/* XIRIZ · Inicio: copy y botones abajo a la izquierda; degradado sobre el slide.
   Solo afecta al hero de la portada, en ambos idiomas y tamaños. */
.hero.hero-home {
  display:flex !important;
  align-items:flex-end !important;
  justify-content:flex-start !important;
}
.hero.hero-home .hero-content {
  position:relative !important;
  z-index:2 !important;
  align-self:flex-end !important;
  margin-top:auto !important;
  margin-bottom:0 !important;
  padding-top:24px !important;
  padding-bottom:24px !important;
}
.hero.hero-home .hero-overlay {
  position:absolute !important;
  inset:0 !important;
  z-index:-1 !important;
  pointer-events:none !important;
  background:linear-gradient(0deg, rgba(6,6,8,.88) 0%, rgba(6,6,8,.53) 34%, rgba(6,6,8,.15) 70%, rgba(6,6,8,.06) 100%),
             linear-gradient(90deg, rgba(6,6,8,.45) 0%, rgba(6,6,8,.12) 65%, transparent 100%) !important;
}
@media(max-width:1180px) {
  .hero.hero-home .hero-content {
    position:absolute !important;
    left:var(--gutter) !important;
    right:var(--gutter) !important;
    bottom:20px !important;
    width:auto !important;
    margin:0 !important;
    padding:0 !important;
    align-self:auto !important;
  }
}
@media(max-width:767px) {
  .hero.hero-home .hero-content {left:16px !important;right:16px !important;bottom:20px !important;}
  .hero.hero-home .hero-overlay {
    background:linear-gradient(0deg, rgba(6,6,8,.93) 0%, rgba(6,6,8,.70) 37%, rgba(6,6,8,.20) 83%, rgba(6,6,8,.08) 100%) !important;
  }
}

/* Inicio: degradado visible por encima de las diapositivas.
   La regla global anterior oculta los overlays de otras páginas; este
   restablecimiento se limita al hero de la portada. */
#page-main .hero.hero-home > .hero-overlay {
  display:block !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:none !important;
  background:linear-gradient(to top,
    rgba(5,5,7,.90) 0%,
    rgba(5,5,7,.68) 22%,
    rgba(5,5,7,.38) 50%,
    rgba(5,5,7,.10) 78%,
    rgba(5,5,7,.02) 100%) !important;
}
#page-main .hero.hero-home > .home-slider { z-index:0 !important; }
#page-main .hero.hero-home > .hero-content { z-index:2 !important; }
@media (max-width:767px) {
  #page-main .hero.hero-home > .hero-overlay {
    background:linear-gradient(to top,
      rgba(5,5,7,.94) 0%,
      rgba(5,5,7,.76) 28%,
      rgba(5,5,7,.40) 60%,
      rgba(5,5,7,.06) 100%) !important;
  }
}

/* Menú móvil: mantener colores y diseño corporativo frente a estilos heredados. */
@media(max-width:1180px){
  .mobile-menu,.mobile-menu-inner,.mobile-menu .mobile-nav,.mobile-menu .mobile-actions{background-color:#0f0f0f!important;}
  .mobile-menu .mobile-actions a.mobile-footer-portal{background:#5329a3!important;}
  .mobile-menu .mobile-nav > a.is-current-page,.mobile-menu .mobile-nav > details.has-current-page > summary{background:#131313!important;}
}

/* Cotizar mi proyecto: texto morado únicamente en menú de tabletas y celulares. */
@media (max-width: 1180px) {
  .mobile-menu .mobile-nav > a[href="/cotizaciones/"],
  .mobile-menu .mobile-nav > a[href="/en/quotes/"] {
    color: #5329a3 !important;
  }
}


/* Cotizaciones ES/EN — unificar el estilo flat con Contacto sin cambiar la estructura */
body:is([data-route="/cotizaciones/"],[data-route="/en/quotes/"]) .form-shell {
  background:#111113 !important;
  border-color:#222225 !important;
  box-shadow:none !important;
}
body:is([data-route="/cotizaciones/"],[data-route="/en/quotes/"]) .form-copy {
  border-right-color:#222225 !important;
}
body:is([data-route="/cotizaciones/"],[data-route="/en/quotes/"]) .consult-form :is(input,select,textarea) {
  background-color:#0c0c0e !important;
  border-color:#252528 !important;
  box-shadow:none !important;
}
body:is([data-route="/cotizaciones/"],[data-route="/en/quotes/"]) .consult-form :is(input,select,textarea):focus {
  border-color:#5329a3 !important;
}

/* iPad mini (744 CSS px en vertical): conservar las dos tarjetas de Inicio
   en una fila. Solo afecta a la franja tablet compacta; móviles <700px
   siguen usando una columna. Esta regla va después de los media queries
   históricos para evitar que sus estilos de max-width:767px la anulen. */
@media (min-width:700px) and (max-width:767px) {
  #page-main .home-showcase-section .home-showcase-grid {
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    align-items:stretch !important;
    gap:16px !important;
  }
  #page-main .home-showcase-section .home-showcase-card {
    min-width:0 !important;
    display:flex !important;
    flex-direction:column !important;
  }
  #page-main .home-showcase-section .home-showcase-card h2 {
    font-size:clamp(21px,3.4vw,26px) !important;
    line-height:1.13 !important;
    max-width:none !important;
  }
  #page-main .home-showcase-section .home-showcase-media {
    height:170px !important;
    min-height:170px !important;
    flex-basis:170px !important;
  }
  #page-main .home-showcase-section .home-showcase-direct-link {
    font-size:13px !important;
    min-height:52px !important;
  }
}

/* Inicio: imágenes de Núcleo Tecnológico y Tipo de Empresa sin textos superpuestos. */
.home-showcase-section .home-showcase-media-copy {
  display: none !important;
}

/* Inicio: divisores flat y discretos para las cuatro métricas. */
#page-main .metrics {
  border-top: 1px solid #1d1d1d;
  border-bottom: 1px solid #1d1d1d;
  box-shadow: none;
}
#page-main .metrics-grid > div {
  border-right: 1px solid #1d1d1d;
  box-shadow: none;
}
#page-main .metrics-grid > div:last-child {
  border-right: 0;
}
@media (max-width: 767px) {
  #page-main .metrics-grid > div:nth-child(2) {
    border-right: 0;
  }
  #page-main .metrics-grid > div:nth-child(-n+2) {
    border-bottom: 1px solid #1d1d1d;
  }
}

/* Inicio: evitar dos separadores adyacentes entre métricas y contenido. */
#page-main .metrics { border-bottom: 0 !important; }
#page-main .metrics + .section { border-top: 1px solid #1d1d1d !important; }

/* Language labels: regular descriptor, bold destination language */
.desktop-language{font-weight:400;}
.desktop-language strong{font-weight:700;}
.mobile-footer-lang{font-weight:400;}
.mobile-footer-lang strong{font-weight:700;}

/* Home slides: only header images, isolated from the Inicio cards. */
body[data-lang="es"] #page-main .hero-home .home-slider .home-slide:nth-child(1){background-image:url("/img/headers/inicio/1.webp") !important;}
body[data-lang="es"] #page-main .hero-home .home-slider .home-slide:nth-child(2){background-image:url("/img/headers/inicio/2.webp") !important;}
body[data-lang="es"] #page-main .hero-home .home-slider .home-slide:nth-child(3){background-image:url("/img/headers/inicio/3.webp") !important;}
body[data-lang="en"] #page-main .hero-home .home-slider .home-slide:nth-child(1){background-image:url("/img/headers/en/home/1.webp") !important;}
body[data-lang="en"] #page-main .hero-home .home-slider .home-slide:nth-child(2){background-image:url("/img/headers/en/home/2.webp") !important;}
body[data-lang="en"] #page-main .hero-home .home-slider .home-slide:nth-child(3){background-image:url("/img/headers/en/home/3.webp") !important;}


/* Global page CTA above footer */
.site-consultation-strip{background:#131313;border-top:1px solid #191919;border-bottom:1px solid #191919;padding:0;}
.site-consultation-inner{min-height:164px;display:flex;align-items:center;justify-content:space-between;gap:44px;padding-block:28px;}
.site-consultation-copy{display:flex;flex-direction:column;min-width:0;}
.site-consultation-heading{font-size:clamp(26px,2.5vw,36px);line-height:1.15;font-weight:800;letter-spacing:-.025em;margin-bottom:10px;color:#fff;}
.site-consultation-description{font-size:16px;line-height:1.5;font-weight:400;color:rgba(255,255,255,.88);}
.site-consultation-cta{display:flex;align-items:center;justify-content:center;gap:8px;flex:0 0 310px;min-height:58px;padding:14px 22px;border-radius:5px;background:#5329a3;color:#fff;font-size:16px;font-weight:600;white-space:nowrap;text-decoration:none;cursor:pointer;transition:background-color .25s ease, transform .25s ease;}
.site-consultation-cta:hover,.site-consultation-cta:focus-visible{background:#6a39c0;}
.site-consultation-cta:focus-visible{outline:2px solid #b99cfb;outline-offset:3px;}
.site-consultation-cta span{display:inline-flex;align-items:center;}
@media (max-width:1180px){.site-consultation-inner{gap:24px;}.site-consultation-cta{flex-basis:245px;}.site-consultation-heading{font-size:28px;}.site-consultation-description{font-size:15px;}}
@media (max-width:767px){.site-consultation-inner{min-height:0;padding-block:30px;flex-direction:column;align-items:stretch;gap:24px;}.site-consultation-heading{font-size:26px;line-height:1.2;}.site-consultation-description{font-size:15px;line-height:1.5;}.site-consultation-cta{width:100%;min-height:54px;flex:0 0 auto;}}
@media (prefers-reduced-motion:reduce){.site-consultation-cta{transition:none;}}


/* Footer: línea superior uniforme y sutil en todas las páginas. */
.footer { border-top: 1px solid #191919 !important; }
/* Evitar una doble línea cuando el bloque CTA va justo encima. */
.site-consultation-strip + .footer { border-top: 0 !important; }

/* CTA antes del footer: mismas dimensiones y morado que el botón del navbar. */
.site-consultation-strip .site-consultation-cta{
  box-sizing:border-box;
  flex:0 0 25%;
  width:25%;
  height:46px;
  min-height:46px;
  padding:0 12px;
  border:1px solid #5536a2;
  border-radius:4.5px;
  background:var(--button-taupe,#3C2080);
  color:#fff;
  font-size:13px;
  font-weight:700;
  line-height:1.2;
}
.site-consultation-strip .site-consultation-cta:hover,
.site-consultation-strip .site-consultation-cta:focus-visible{
  background:var(--button-taupe-hover,#4a299b);
  border-color:var(--button-taupe-hover,#4a299b);
}
@media(max-width:767px){
  .site-consultation-strip .site-consultation-cta{flex:0 0 46px;width:100%;min-height:46px;height:46px;}
}

/* Inicio: igualar exclusivamente dimensiones y tipografía del botón con las franjas internas.
   No alterar colores, bordes ni estilos de interacción del botón original. */
body[data-route="/"] .home-consultation-strip .home-consultation-cta,
body[data-route="/en/"] .home-consultation-strip .home-consultation-cta{
  box-sizing:border-box;
  flex:0 0 25%;
  width:25%;
  height:46px;
  min-height:46px;
  padding:0 12px;
  font-size:13px;
  font-weight:700;
  line-height:1.2;
}
@media(max-width:767px){
  body[data-route="/"] .home-consultation-strip .home-consultation-cta,
  body[data-route="/en/"] .home-consultation-strip .home-consultation-cta{
    flex:0 0 46px;
    width:100%;
    height:46px;
    min-height:46px;
  }
}


/* Todos los botones: sin línea de contorno, conservando colores, tamaños y radios. */
button,
input:is([type="button"],[type="submit"],[type="reset"]),
a:is(.btn,.portal-btn,.header-cta,.mobile-footer-portal,.site-consultation-cta,.home-consultation-cta,.form-submit),
.form-submit {
  border:0 !important;
  outline:0 !important;
}
/* Mantener una señal de foco accesible sin dibujar un contorno. */
button:focus-visible,
input:is([type="button"],[type="submit"],[type="reset"]):focus-visible,
a:is(.btn,.portal-btn,.header-cta,.mobile-footer-portal,.site-consultation-cta,.home-consultation-cta,.form-submit):focus-visible,
.form-submit:focus-visible {
  border:0 !important;
  outline:0 !important;
  filter:brightness(1.15);
}

/* Navegación escritorio: columnas estables entre rutas, independientemente
   de la longitud del breadcrumb y del texto de cada página. */
@media (min-width:1181px) {
  .site-header .nav-shell,
  .site-header .nav-shell.shell {
    grid-template-columns:250px minmax(0,1fr) 310px !important;
    column-gap:12px !important;
  }
  .site-header .brand { min-width:0 !important; justify-self:start !important; }
  .site-header .desktop-nav {
    min-width:0 !important;
    width:100% !important;
    justify-content:center !important;
    white-space:nowrap !important;
  }
  .site-header .desktop-nav > a,
  .site-header .desktop-nav > .nav-parent > .nav-trigger {
    white-space:nowrap !important;
    padding-left:clamp(7px,1vw,16px) !important;
    padding-right:clamp(7px,1vw,16px) !important;
  }
  .site-header .nav-actions {
    justify-self:end !important;
    width:310px !important;
    min-width:310px !important;
    justify-content:flex-end !important;
  }
  .page-breadcrumb-bar .shell { min-width:0 !important; }
  .page-breadcrumb-bar .breadcrumb { min-width:0 !important; max-width:100% !important; overflow:hidden !important; }
  .page-breadcrumb-bar .breadcrumb > :last-child { overflow:hidden !important; text-overflow:ellipsis !important; white-space:nowrap !important; }
}
@media (min-width:1181px) and (max-width:1350px) {
  .site-header .nav-shell,
  .site-header .nav-shell.shell { grid-template-columns:225px minmax(0,1fr) 295px !important; column-gap:6px !important; }
  .site-header .nav-actions {width:295px !important; min-width:295px !important;}
  .site-header .desktop-nav > a,
  .site-header .desktop-nav > .nav-parent > .nav-trigger {padding-left:7px !important;padding-right:7px !important;font-size:13px !important;}
}


/* 2026-10-09: espaciado legible y uniforme en títulos grandes de todos los headers (ES/EN). */
#page-main .hero h1,
#page-main .hero-location h1,
#page-main .location-hero h1 {
  letter-spacing: -0.012em !important;
}
@media (max-width: 767px) {
  #page-main .hero h1,
  #page-main .hero-location h1,
  #page-main .location-hero h1 {
    letter-spacing: 0 !important;
  }
}

/* Contact and quote page titles without visual headers */
body:is([data-route="/contacto/"],[data-route="/cotizaciones/"],[data-route="/en/contact/"],[data-route="/en/quotes/"],[data-route="/en/cotizaciones/"]) .form-copy h1 {font-size:clamp(30px,3.15vw,46px);font-weight:600;line-height:1.08;letter-spacing:-.035em;margin:0;}
@media(max-width:1180px){body:is([data-route="/contacto/"],[data-route="/cotizaciones/"],[data-route="/en/contact/"],[data-route="/en/quotes/"],[data-route="/en/cotizaciones/"]) .form-copy h1{font-size:clamp(28px,4.2vw,40px);}}
@media(max-width:767px){body:is([data-route="/contacto/"],[data-route="/cotizaciones/"],[data-route="/en/contact/"],[data-route="/en/quotes/"],[data-route="/en/cotizaciones/"]) .form-copy h1{font-size:30px;}}


/* XIRIZ: headers interiores 50vh, contenidos a la izquierda y al bottom.
   Inicio mantiene su hero; Contacto y Cotizaciones no tienen hero. */
#page-main .hero:not(.hero-home) {
  height:50vh !important;
  min-height:0 !important;
  max-height:none !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-end !important;
  align-items:stretch !important;
}
#page-main .hero:not(.hero-home) .hero-content {
  position:relative !important;
  top:auto !important;
  right:auto !important;
  bottom:auto !important;
  left:auto !important;
  width:100% !important;
  max-width:var(--shell, 1320px);
  box-sizing:border-box !important;
  margin-inline:auto !important;
  padding-top:0 !important;
  padding-bottom:20px !important;
  text-align:left !important;
  transform:none !important;
}
@media (max-width:1180px) {
  #page-main .hero:not(.hero-home) .hero-content {padding-bottom:20px !important;}
}
@media (max-width:767px) {
  #page-main .hero:not(.hero-home) .hero-content {padding-bottom:20px !important;}
}

/* Inicio: altura del header en todas las versiones de idioma y dispositivo. */
#page-main .hero.hero-home {height:65vh !important;min-height:0 !important;max-height:none !important;}
@media (max-width:1180px) {
  #page-main .hero.hero-home {height:80vh !important;}
}


/* Degradado uniforme en headers interiores, igual al slide de Inicio. */
#page-main .hero:not(.hero-home) { position:relative !important; isolation:isolate; }
#page-main .hero:not(.hero-home)::before {
  content:"" !important; display:block !important; visibility:visible !important;
  position:absolute !important; inset:0 !important; opacity:1 !important;
  z-index:0 !important; pointer-events:none !important; box-shadow:none !important;
  background:linear-gradient(to top, rgba(5,5,7,.90) 0%, rgba(5,5,7,.68) 22%, rgba(5,5,7,.38) 50%, rgba(5,5,7,.10) 78%, rgba(5,5,7,.02) 100%) !important;
}
#page-main .hero:not(.hero-home) > .hero-content {position:relative !important; z-index:1 !important;}
@media (max-width:767px) {
  #page-main .hero:not(.hero-home)::before {
    background:linear-gradient(to top, rgba(5,5,7,.94) 0%, rgba(5,5,7,.76) 28%, rgba(5,5,7,.40) 60%, rgba(5,5,7,.06) 100%) !important;
  }
}


/* Headers: margen interior izquierdo consistente dentro del grid.
   Respeta los gutters existentes y no modifica alturas, imágenes ni degradados. */
#page-main .hero .hero-content {
  padding-left:24px !important;
  box-sizing:border-box !important;
}
@media (max-width:1180px) {
  #page-main .hero .hero-content { padding-left:20px !important; }
}
@media (max-width:767px) {
  #page-main .hero .hero-content { padding-left:16px !important; }
}

/* Headers interiores: mismo borde de grid que Inicio, sin padding adicional. */
#page-main .hero:not(.hero-home) .hero-content.shell {
  padding-left:0 !important;
  padding-right:0 !important;
}

/* Headers interiores: alinear el texto con el grid móvil sin afectar Inicio.
   Corrige el width:100% de .hero-content que anulaba el gutter del shell. */
@media (max-width:767px) {
  #page-main .hero:not(.hero-home) .hero-content.shell {
    width:calc(100% - 32px) !important;
    max-width:calc(100% - 32px) !important;
    margin-inline:auto !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }
}


/* XIRIZ — alineación definitiva de headers interiores con el grid global.
   Mismo ancho y gutters que .shell en cualquier viewport. */
#page-main .hero:not(.hero-home) > .hero-content.shell {
  width:min(calc(100% - (var(--gutter) * 2)),var(--max)) !important;
  max-width:var(--max) !important;
  min-width:0 !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:0 !important;
  padding-right:0 !important;
  box-sizing:border-box !important;
}

/* Portfolio / Case Studies */
.portfolio-section{padding-top:40px;padding-bottom:72px}
.portfolio-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:end;margin-bottom:34px}
.portfolio-intro h2{margin:8px 0 0;font-size:clamp(28px,3.4vw,42px);line-height:1.08;letter-spacing:-.02em}
.portfolio-intro p{margin:0;max-width:640px;color:#b8b8b8;font-size:17px;line-height:1.7}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.portfolio-card{background:#161616;border:1px solid #252525;border-radius:0;overflow:hidden;display:flex;flex-direction:column;min-height:100%;position:relative}
.portfolio-card::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:#5e31bc;z-index:2}
.portfolio-card-media{display:block;position:relative;aspect-ratio:16/10;overflow:hidden;background:#141414}
.portfolio-card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s var(--ease),opacity .24s var(--ease)}
.portfolio-card:hover .portfolio-card-media img{transform:scale(1.03)}
.portfolio-card-body{display:flex;flex-direction:column;gap:14px;padding:22px 22px 24px;background:#161622}
.portfolio-card h3{margin:0;font-size:34px;line-height:1.08;letter-spacing:-.03em;color:#eceae6}
.portfolio-card-subtitle{margin:0;color:#9f7cff;font-size:13px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.portfolio-card-copy{display:grid;gap:12px}
.portfolio-card-copy p{margin:0;color:#cecece;font-size:15px;line-height:1.72}
.portfolio-card-copy strong{color:#f0efeb;font-weight:700}
.portfolio-card-link{margin-top:auto;display:inline-flex;align-items:center;gap:8px;color:#d1b7ff;font-weight:700;padding-top:4px}
.portfolio-card-link span{transition:transform .24s var(--ease)}
.portfolio-card:hover .portfolio-card-link span{transform:translateX(4px)}
@media (max-width: 1100px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-card h3{font-size:30px}}
@media (max-width: 820px){.portfolio-intro{grid-template-columns:1fr;gap:16px;margin-bottom:24px}.portfolio-intro p{font-size:16px}.portfolio-grid{grid-template-columns:1fr}.portfolio-card h3{font-size:28px}}
@media (max-width: 560px){.portfolio-section{padding-top:28px;padding-bottom:56px}.portfolio-card-body{padding:18px 16px 20px}.portfolio-card h3{font-size:22px;line-height:1.14}.portfolio-card-copy p{font-size:14px;line-height:1.65}}

/* Portfolio cards — flat contact-form treatment */
.portfolio-section .portfolio-card{background:#111113;border:1px solid #222225;box-shadow:none}
.portfolio-section .portfolio-card-body{background:#111113;gap:12px}
.portfolio-section .portfolio-card h3{font-size:clamp(22px,2.1vw,30px);letter-spacing:-.018em;line-height:1.17}
.portfolio-section .portfolio-card-copy{display:block;border-top:1px solid #262629;margin-top:3px}
.portfolio-section .portfolio-detail{padding:15px 0 16px;border-bottom:1px solid #262629}
.portfolio-section .portfolio-detail h4{font-size:14px;color:#ededed;font-weight:700;margin:0 0 7px;line-height:1.35}
.portfolio-section .portfolio-detail p{font-size:14px;line-height:1.65;color:#a2a2a2;margin:0;font-weight:400}
.portfolio-section .portfolio-project-link{margin-top:auto;padding-top:11px;display:flex;flex-direction:column;gap:5px;min-width:0}
.portfolio-section .portfolio-card-link{padding:0;margin:0;font-size:15px;color:#e9e8e6;font-weight:700}
.portfolio-section .portfolio-project-url{font-size:12px;line-height:1.45;color:#a2a2a2;overflow-wrap:anywhere;text-decoration:none}
.portfolio-section .portfolio-project-url:hover{color:#c4a6ff;text-decoration:underline}
@media(max-width:560px){.portfolio-section .portfolio-detail{padding:12px 0 13px}.portfolio-section .portfolio-card h3{font-size:22px}}


/* Portfolio cards — horizontal full-width layout */
.portfolio-grid{grid-template-columns:1fr !important;gap:22px !important}
.portfolio-card{display:grid !important;grid-template-columns:minmax(320px, 32%) minmax(0,1fr);align-items:stretch;width:100%}
.portfolio-card-media{aspect-ratio:auto !important;min-height:100%;height:100%}
.portfolio-card-media img{height:100% !important}
.portfolio-card-body{padding:24px 26px 24px !important;gap:12px !important}
.portfolio-card h3{max-width:760px}
.portfolio-project-link{padding-top:14px !important}
@media (max-width: 980px){
  .portfolio-card{grid-template-columns:minmax(260px, 36%) minmax(0,1fr)}
  .portfolio-card-body{padding:22px 22px 22px !important}
}
@media (max-width: 760px){
  .portfolio-grid{gap:18px !important}
  .portfolio-card{grid-template-columns:1fr !important}
  .portfolio-card-media{min-height:240px}
}
@media (max-width: 560px){
  .portfolio-card-media{min-height:210px}
  .portfolio-card-body{padding:18px 16px 18px !important}
}

/* Purple accent exclusively above the portfolio image */
.portfolio-section .portfolio-card::before{display:none !important;content:none !important}
.portfolio-section .portfolio-card-media::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:#5e31bc;z-index:3;pointer-events:none}

/* Portfolio — tighter vertical rhythm */
.portfolio-section .portfolio-card-body{gap:6px !important;padding-top:17px !important;padding-bottom:17px !important}
.portfolio-section .portfolio-card h3{margin:0;line-height:1.12}
.portfolio-section .portfolio-card-subtitle{margin:0;line-height:1.3}
.portfolio-section .portfolio-card-copy{margin-top:0}
.portfolio-section .portfolio-detail{padding:9px 0 10px}
.portfolio-section .portfolio-detail h4{margin:0 0 3px;line-height:1.25}
.portfolio-section .portfolio-detail p{line-height:1.48}
.portfolio-section .portfolio-project-link{padding-top:6px !important;gap:2px}
@media(max-width:560px){.portfolio-section .portfolio-card-body{padding-top:14px !important;padding-bottom:14px !important}.portfolio-section .portfolio-detail{padding:8px 0 9px}}


/* Portfolio: image and content in equal-width columns */
@media (min-width: 761px){
  .portfolio-section .portfolio-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;}
  .portfolio-section .portfolio-card-media{width:100%;min-width:0;}
  .portfolio-section .portfolio-card-body{min-width:0;}
}

/* Separación uniforme de 40px entre proyectos */
.portfolio-section .portfolio-grid{row-gap:40px !important;gap:40px !important;}

/* Progressive disclosure for the six portfolio projects */
.portfolio-grid > .portfolio-is-hidden{display:none !important}
.portfolio-more-wrap{text-align:center;margin-top:32px}
.portfolio-more-wrap[hidden]{display:none !important}
.portfolio-more-button{appearance:none;background:#512a9c;color:#f5f4f7;border:1px solid #6940b4;border-radius:0;padding:14px 28px;cursor:pointer;font:inherit;font-weight:700;transition:background .2s ease}
.portfolio-more-button:hover,.portfolio-more-button:focus-visible{background:#693cb8}
.portfolio-pending-label{font-size:14px;line-height:1.35;color:#ededed;font-weight:700;margin:0 0 6px}
.portfolio-project-pending{font-size:12px;line-height:1.45;color:#969696}
@media(max-width:560px){.portfolio-more-button{width:100%}.portfolio-more-wrap{margin-top:26px}}



/* Portfolio: full-width dark disclosure control with downward arrow */
.portfolio-section .portfolio-more-wrap{width:100%;margin-top:24px;text-align:initial}
.portfolio-section .portfolio-more-button{
  box-sizing:border-box;display:flex;width:100%;min-height:48px;align-items:center;justify-content:center;
  gap:10px;padding:12px 18px;background:#202023;border:1px solid #303034;border-radius:0;
  color:#bdbdc0;font-family:inherit;font-size:13px;font-weight:600;letter-spacing:.015em;
  line-height:1.25;text-align:center;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease;
}
.portfolio-section .portfolio-more-button:hover,
.portfolio-section .portfolio-more-button:focus-visible{background:#2b2b30;border-color:#414147;color:#f1f1f2}
.portfolio-section .portfolio-more-button svg{width:15px;height:15px;flex:none;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.portfolio-section .portfolio-card.portfolio-revealing{animation:portfolio-reveal .42s ease both}
@keyframes portfolio-reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.portfolio-section .portfolio-card.portfolio-revealing{animation:none}}



/* Ver más proyectos: mismo fondo que la franja CTA previa al footer. */
.portfolio-section .portfolio-more-button{
  background:#131313;
  border-color:#191919;
  border-radius:0 0 5px 5px;
}
.portfolio-section .portfolio-more-button:hover,
.portfolio-section .portfolio-more-button:focus-visible{
  background:#191919;
  border-color:#252525;
}




/* Cotizaciones: bordes idénticos a los de Contacto (ES / EN). */
body:is([data-route="/cotizaciones/"],[data-route="/en/quotes/"],[data-route="/en/cotizaciones/"]) .form-shell {
  border-color:rgba(255,255,255,.045) !important;
}
body:is([data-route="/cotizaciones/"],[data-route="/en/quotes/"],[data-route="/en/cotizaciones/"]) .form-shell .form-copy {
  border-right-color:rgba(255,255,255,.045) !important;
  border-bottom-color:rgba(255,255,255,.045) !important;
}
body:is([data-route="/cotizaciones/"],[data-route="/en/quotes/"],[data-route="/en/cotizaciones/"]) .consult-form :is(input,select,textarea) {
  border-color:rgba(255,255,255,.085) !important;
}
body:is([data-route="/cotizaciones/"],[data-route="/en/quotes/"],[data-route="/en/cotizaciones/"]) .consult-form :is(input,select,textarea):focus,
body:is([data-route="/cotizaciones/"],[data-route="/en/quotes/"],[data-route="/en/cotizaciones/"]) .consult-form :is(input,select,textarea):focus-visible {
  border-color:rgba(170,141,245,.52) !important;
  outline:1px solid rgba(170,141,245,.25) !important;
  outline-offset:0;
}

/* Barra de ruta: eliminar la línea inferior añadida por el pseudoelemento.
   No añadir otro borde ni sombra; conservar el separador superior del navbar. */
.page-breadcrumb-bar {
  border-bottom: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
}
.page-breadcrumb-bar::after,
.page-breadcrumb-bar::before {
  content: none !important;
  display: none !important;
  border: 0 !important;
  box-shadow: none !important;
}


/* Breadcrumb + formulario: una sola línea; quitar borde superior de la sección inferior. */
.page-breadcrumb-bar {
  border-bottom:1px solid #1d1d1d !important;
  box-shadow:none !important;
  background-image:none !important;
}
/* El borde de .section era la segunda línea pegada debajo del breadcrumb. */
#page-main > .portal-source-breadcrumb + .section {
  border-top:0 !important;
}


/* Action cards — Contact / Quotes */
.form-copy .contact-action-list{display:grid;gap:10px;margin:30px 0 0}
.form-copy .contact-action-card{box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;width:100%;min-width:0;padding:13px 15px;background:#171719;border:1px solid rgba(255,255,255,.085);border-radius:3px;color:#eee;text-decoration:none;text-align:left;font:inherit;line-height:1.35;cursor:pointer;transition:background .2s ease,border-color .2s ease}
.form-copy a.contact-action-card:hover,.form-copy a.contact-action-card:focus-visible{background:#202023;border-color:rgba(255,255,255,.18)}
.form-copy .contact-action-card .contact-action-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#a2a2a2}
.form-copy .contact-action-card .contact-action-value{font-size:15px;color:#f0f0f0;overflow-wrap:anywhere}
.form-copy .contact-action-card .contact-action-hint{margin-top:2px;font-size:12px;color:#b6a1e7;text-decoration:underline;text-underline-offset:3px}
.form-copy button.contact-action-card--static{cursor:default;appearance:none;-webkit-appearance:none}
@media(max-width:560px){.form-copy .contact-action-list{margin-top:22px;gap:9px}.form-copy .contact-action-card{padding:12px 13px}}


/* Contacto y Cotizaciones: botones planos, sin subrayado y con gris discreto */
.form-copy .contact-action-list .contact-action-card{
  background:#222224;
  border-color:rgba(255,255,255,.075);
  text-decoration:none !important;
}
.form-copy .contact-action-list .contact-action-card :is(.contact-action-label,.contact-action-value,.contact-action-hint){
  text-decoration:none !important;
}
.form-copy .contact-action-list .contact-action-card .contact-action-hint{color:#b9b9bc;}
.form-copy .contact-action-list a.contact-action-card:hover,
.form-copy .contact-action-list a.contact-action-card:focus-visible{background:#2a2a2d;border-color:rgba(255,255,255,.14);}
/* Tabletas (vertical y horizontal): dos tarjetas y dos campos por fila. */
@media (min-width:600px) and (max-width:1180px){
  .form-copy .contact-action-list{grid-template-columns:repeat(2,minmax(0,1fr));}
  .form-copy .contact-action-card{min-width:0;}
  .form-shell .consult-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .form-shell .consult-form .form-grid > label.full{grid-column:auto !important;}
  .form-shell .consult-form .form-grid > label:has(textarea){grid-column:1/-1 !important;}
}

/* Botones de contacto: gris más oscuro y sin contorno */
.form-copy .contact-action-list .contact-action-card{
  background:#19191b !important;
  border:0 !important;
  box-shadow:none !important;
  outline:0;
}
.form-copy .contact-action-list a.contact-action-card:hover,
.form-copy .contact-action-list a.contact-action-card:focus-visible{
  background:#202022 !important;
  border:0 !important;
  box-shadow:none !important;
}
.form-copy .contact-action-list a.contact-action-card:focus-visible{outline:2px solid #6947ac;outline-offset:2px}



/* Mensaje / Necesidades: campo visible con altura amplia. */
.consult-form .form-grid > label:has(> textarea[name="message"]),
.consult-form .form-grid > label:has(> textarea[name="need"]){
  display:grid !important;
  visibility:visible !important;
  grid-column:1/-1 !important;
  min-height:0 !important;
  overflow:visible !important;
}
.consult-form textarea[name="message"],
.consult-form textarea[name="need"]{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  position:static !important;
  width:100% !important;
  height:150px !important;
  min-height:150px !important;
  max-height:150px !important;
  padding:14px 15px !important;
  margin:0 !important;
  resize:vertical !important;
  overflow-y:auto !important;
  line-height:24px !important;
}


/* XIRIZ — aceptación de privacidad en Contacto y Cotizaciones (ES/EN).
   Aísla el checkbox de los estilos generales de inputs y labels. */
.form-shell .consult-form > label.intake-consent {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  flex-wrap: nowrap !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  gap: 10px !important;
  margin: 16px 0 0 !important;
  padding: 0 !important;
  color: #c6c6c6;
  font-size: 13px !important;
  line-height: 1.5 !important;
  text-align: left !important;
}
.form-shell .consult-form > label.intake-consent > input[type="checkbox"] {
  box-sizing: border-box !important;
  display: block !important;
  position: static !important;
  flex: 0 0 17px !important;
  width: 17px !important;
  min-width: 17px !important;
  max-width: 17px !important;
  height: 17px !important;
  min-height: 17px !important;
  max-height: 17px !important;
  padding: 0 !important;
  margin: 2px 0 0 !important;
  border-radius: 1.5px;
  accent-color: #67429e;
  cursor: pointer;
}
.form-shell .consult-form > label.intake-consent > span {
  display: block !important;
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
}
.form-shell .consult-form > label.intake-consent a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}


/* Desarrollo web visual */
.dw-overview{padding:44px 0 18px;}
.dw-intro-block{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:28px;align-items:end;}
.dw-intro-block h2{margin:14px 0 0;font-size:clamp(36px,4.6vw,62px);line-height:1.02;letter-spacing:-.05em;max-width:12ch;}
.dw-intro-block p{margin:0;color:var(--muted);font-size:18px;line-height:1.8;max-width:640px;}
.dw-section-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:26px;}
.dw-section-nav a{display:flex;align-items:center;justify-content:center;min-height:56px;padding:12px 16px;border-radius:999px;background:#161616;border:1px solid var(--line);font-size:14px;font-weight:700;letter-spacing:.02em;color:#f4f4f0;text-align:center;transition:.18s ease all;}
.dw-section-nav a:hover{border-color:#A781EF;color:#fff;background:#1a1a1d;}
.service-immersive{padding:22px 0 28px;}
.service-immersive-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,560px);gap:28px;align-items:stretch;}
.service-immersive.alt .service-immersive-grid{grid-template-columns:minmax(420px,560px) minmax(0,1fr);}
.service-immersive-copy{display:flex;flex-direction:column;justify-content:center;padding:14px 0;}
.service-immersive-copy h2{margin:14px 0 14px;font-size:clamp(32px,4vw,54px);line-height:1.04;letter-spacing:-.05em;max-width:13ch;}
.service-immersive-copy > p{margin:0 0 20px;color:var(--muted);font-size:17px;line-height:1.78;max-width:760px;}
.service-immersive-media{position:relative;overflow:hidden;border-radius:12px;min-height:520px;background:#101010;border:1px solid var(--line);}
.service-immersive-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.service-immersive-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.04) 0%,rgba(0,0,0,.18) 100%);} 
.service-immersive-accordion{display:grid;gap:14px;}
.service-immersive-accordion details{background:#151515;border:1px solid var(--line);border-radius:9px;padding:0 22px;overflow:hidden;}
.service-immersive-accordion summary{list-style:none;cursor:pointer;padding:18px 34px 18px 0;font-size:18px;font-weight:700;position:relative;}
.service-immersive-accordion summary::-webkit-details-marker{display:none;}
.service-immersive-accordion summary::after{content:'+';position:absolute;right:0;top:15px;width:24px;height:24px;border-radius:999px;display:grid;place-items:center;color:#A781EF;font-size:22px;font-weight:500;}
.service-immersive-accordion details[open] summary::after{content:'–';}
.service-immersive-accordion details p{margin:0 0 12px;color:#f0efeb;font-size:15px;line-height:1.74;}
.service-immersive-accordion details ul{margin:0 0 18px 18px;padding:0;color:var(--muted);display:grid;gap:8px;font-size:14px;line-height:1.7;}
.service-immersive-cta{margin-top:20px;}
@media (max-width: 1120px){
  .dw-section-nav{grid-template-columns:repeat(2,minmax(0,1fr));}
  .service-immersive-grid,
  .service-immersive.alt .service-immersive-grid{grid-template-columns:1fr;}
  .service-immersive-media{min-height:360px;order:-1;}
}
@media (max-width: 780px){
  .dw-overview{padding:30px 0 8px;}
  .dw-intro-block{grid-template-columns:1fr;gap:12px;}
  .dw-intro-block h2{font-size:clamp(30px,10vw,44px);max-width:14ch;}
  .dw-intro-block p{font-size:15px;line-height:1.72;}
  .dw-section-nav{grid-template-columns:1fr;gap:10px;}
  .dw-section-nav a{justify-content:flex-start;border-radius:8px;min-height:auto;padding:14px 16px;}
  .service-immersive{padding:16px 0 20px;}
  .service-immersive-copy h2{font-size:clamp(28px,9vw,38px);max-width:none;}
  .service-immersive-copy>p{font-size:15px;line-height:1.72;margin-bottom:16px;}
  .service-immersive-media{min-height:240px;border-radius:9px;}
  .service-immersive-accordion details{padding:0 16px;border-radius:8px;}
  .service-immersive-accordion summary{padding:15px 28px 15px 0;font-size:16px;}
  .service-immersive-accordion summary::after{top:12px;}
  .service-immersive-accordion details p{font-size:14px;}
  .service-immersive-accordion details ul{font-size:13px;gap:7px;}
}

/* Web development: four selectable service panels; only one visible. */
.dw-tab-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:26px;}
.dw-tab-nav .dw-tab-button{display:flex;justify-content:center;align-items:center;width:100%;min-height:56px;padding:12px 16px;border:1px solid #363636;border-radius:999px;background:#161616;color:#f4f4f0;font-family:inherit;font-weight:700;font-size:14px;line-height:1.35;cursor:pointer;transition:background-color .18s,border-color .18s,color .18s;}
.dw-tab-nav .dw-tab-button:hover{border-color:#A781EF;}
.dw-tab-nav .dw-tab-button[aria-selected="true"]{border-color:#A781EF;background:#271d3a;color:#fff;}
.dw-tab-nav .dw-tab-button:focus-visible{outline:2px solid #A781EF;outline-offset:3px;}
.dw-tab-panel[hidden]{display:none!important;}
.dw-tab-panel .service-immersive-grid{grid-template-columns:minmax(0,1fr) minmax(420px,560px);}
.dw-tab-panel{padding-top:22px;}
@media(max-width:1120px){
 .dw-tab-nav{grid-template-columns:repeat(2,minmax(0,1fr));}
 .dw-tab-panel .service-immersive-grid{grid-template-columns:1fr;}
 .dw-tab-panel .service-immersive-media{order:-1;}
}
@media(max-width:780px){
 .dw-tab-nav{grid-template-columns:1fr;gap:10px;}
 .dw-tab-nav .dw-tab-button{justify-content:flex-start;border-radius:8px;min-height:48px;padding:12px 16px;}
}

/* Desarrollo Web: distribución 50/50 y fotografía a toda la altura del panel activo. */
@media (min-width: 781px){
  .dw-tab-panel .service-immersive-grid{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    align-items:stretch;
    gap:28px;
  }
  .dw-tab-panel .service-immersive-copy{
    min-width:0;
  }
  .dw-tab-panel .service-immersive-media{
    min-width:0;
    min-height:0;
    height:100%;
    align-self:stretch;
    order:initial;
  }
  .dw-tab-panel .service-immersive-media img{
    width:100%;height:100%;object-fit:cover;
  }
}
@media (max-width:780px){
  .dw-tab-panel .service-immersive-grid{grid-template-columns:minmax(0,1fr)!important;}
  .dw-tab-panel .service-immersive-media{height:auto;min-height:240px;aspect-ratio:16/9;order:-1;}
}


/* Desarrollo Web: imagen a sangre hasta el borde derecho del viewport.
   El contenido izquierdo permanece alineado con el grid de la página. */
@media (min-width: 781px){
  .dw-tab-panel .service-immersive-grid{
    width:calc(100% + (100vw - 100%)/2)!important;
    max-width:none!important;
    grid-template-columns:minmax(0,1fr) 50vw!important;
    gap:0!important;
    align-items:stretch!important;
  }
  .dw-tab-panel .service-immersive-copy{
    min-width:0;
    padding:26px clamp(22px,3vw,48px) 26px 0;
  }
  .dw-tab-panel .service-immersive-media{
    position:relative;
    width:100%;
    min-width:0;
    min-height:0;
    height:100%;
    align-self:stretch;
    border-radius:0!important;
    border-right:0;
  }
  .dw-tab-panel .service-immersive-media img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
  }
}
@media (max-width:780px){
  .dw-tab-panel .service-immersive-grid{
    width:100%!important;
    grid-template-columns:minmax(0,1fr)!important;
  }
}


/* Desarrollo Web — referencia final: dos mitades exactas del viewport. */
@media (min-width: 781px) {
  .dw-tab-panel{padding:0!important;}
  .dw-tab-panel .service-immersive-grid{
    width:100vw!important;
    max-width:none!important;
    margin-left:calc(50% - 50vw)!important;
    grid-template-columns:minmax(0,50vw) minmax(0,50vw)!important;
    gap:0!important;
    align-items:stretch!important;
  }
  .dw-tab-panel .service-immersive-copy{
    box-sizing:border-box;
    min-width:0;
    padding:36px clamp(26px,2.8vw,46px) 36px max(var(--gutter),calc((100vw - var(--max))/2))!important;
    align-self:stretch;
  }
  .dw-tab-panel .service-immersive-media{
    position:relative!important;
    min-height:100%!important;
    height:auto!important;
    width:100%!important;
    align-self:stretch!important;
    overflow:hidden!important;
    border:0!important;
    border-radius:0!important;
    margin:0!important;
  }
  .dw-tab-panel .service-immersive-media img{
    position:absolute!important;
    inset:0!important;
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
  }
}
@media (min-width:781px) and (max-width:1100px){
  .dw-tab-panel .service-immersive-copy{padding-left:32px!important;padding-right:24px!important;}
}
@media (max-width:780px){
  .dw-tab-panel .service-immersive-grid{margin-left:0!important;width:100%!important;}
  .dw-tab-panel .service-immersive-media{min-height:240px!important;height:auto!important;}
}


/* Ajuste final: imagen contenida en el grid central (sin desbordamiento). */
@media (min-width:781px){
  .dw-tab-panel .service-immersive-grid,
  .dw-tab-panel.alt .service-immersive-grid{
    width:min(calc(100% - (var(--gutter)*2)),var(--max))!important;
    max-width:var(--max)!important;
    margin-inline:auto!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:28px!important;
    align-items:stretch!important;
  }
  .dw-tab-panel .service-immersive-copy{
    padding:26px 0!important;
    min-width:0;
  }
  .dw-tab-panel .service-immersive-media{
    position:relative!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    align-self:stretch!important;
    border-radius:9px!important;
    overflow:hidden!important;
  }
  .dw-tab-panel .service-immersive-media img{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
  }
}

/* Coverage hubs grid */
.coverage-hubs-section{
  padding-top:48px;
  padding-bottom:72px;
}
.coverage-hubs-head{max-width:860px;margin-bottom:26px;}
.coverage-hubs-head h2{margin:12px 0 10px;font-size:clamp(34px,4vw,52px);line-height:1.04;letter-spacing:-.04em;}
.coverage-hubs-head p{margin:0;color:var(--muted);font-size:18px;line-height:1.7;max-width:760px;}
.coverage-hubs-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:26px;
}
.coverage-hub-card{
  display:grid;
  grid-template-rows:auto 1fr;
  background:#151515;
  border:1px solid var(--line);
  border-radius:9px;
  overflow:hidden;
  transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease;
}
.coverage-hub-card:hover{
  transform:translateY(-3px);
  border-color:#3c3c3c;
  background:#181818;
  box-shadow:0 18px 40px rgba(0,0,0,.22);
}
.coverage-hub-media{aspect-ratio:80/27; overflow:hidden; background:#111; position:relative;}
.coverage-hub-media img{width:100%;height:100%;display:block;object-fit:cover;}
.coverage-hub-body{padding:22px 22px 24px; display:grid; gap:12px; align-content:start;}
.coverage-hub-body h3{margin:0;font-size:28px;line-height:1.1;letter-spacing:-.03em;}
.coverage-hub-body strong{font-size:17px;line-height:1.45;color:#f0efeb;}
.coverage-hub-body p{margin:0;color:var(--muted);font-size:15px;line-height:1.72;}
.coverage-hub-link{display:inline-flex;align-items:center;gap:8px;margin-top:2px;color:#A781EF;font-weight:700;font-size:14px;}
@media (max-width: 980px){
  .coverage-hubs-grid{grid-template-columns:1fr;gap:22px;}
}
@media (max-width: 720px){
  .coverage-hubs-section{padding-top:32px;padding-bottom:42px;}
  .coverage-hubs-head h2{font-size:clamp(30px,10vw,40px);}
  .coverage-hubs-head p{font-size:15px;line-height:1.65;}
  .coverage-hub-body{padding:18px 18px 20px;gap:10px;}
  .coverage-hub-body h3{font-size:24px;}
  .coverage-hub-body strong{font-size:16px;}
  .coverage-hub-body p{font-size:14px;}
}

/* Cobertura: título sobre imagen, altura 60% de la original */
.coverage-hub-media::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 20%,rgba(0,0,0,.70) 100%);}
.coverage-hub-media h3{position:absolute;bottom:18px;left:22px;right:22px;z-index:1;color:#fff;font-size:28px;line-height:1.1;letter-spacing:-.03em;margin:0;text-shadow:0 1px 12px rgba(0,0,0,.45);}
@media(max-width:720px){.coverage-hub-media h3{left:18px;right:18px;bottom:14px;font-size:24px;}}


/* Cobertura nacional: encabezado vertical alineado, sin columnas heredadas. */
#page-main .coverage-hubs-section .coverage-hubs-head{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:0 !important;
  width:100% !important;
  max-width:100% !important;
  margin:0 0 30px !important;
  text-align:left !important;
}
#page-main .coverage-hubs-section .coverage-hubs-head .eyebrow{
  width:auto !important;
  margin:0 0 12px !important;
}
#page-main .coverage-hubs-section .coverage-hubs-head h2{
  width:100% !important;
  max-width:none !important;
  margin:0 0 14px !important;
  font-size:clamp(30px,3.15vw,46px) !important;
  line-height:1.13 !important;
}
#page-main .coverage-hubs-section .coverage-hubs-head > p{
  width:100% !important;
  max-width:760px !important;
  margin:0 !important;
  line-height:1.6 !important;
}
@media(max-width:720px){
  #page-main .coverage-hubs-section .coverage-hubs-head{margin-bottom:24px !important;}
  #page-main .coverage-hubs-section .coverage-hubs-head h2{font-size:30px !important;}
  #page-main .coverage-hubs-section .coverage-hubs-head > p{font-size:15px !important;}
}

/* Cobertura: dos columnas en escritorio y tabletas, una en celulares. */
#page-main .coverage-hubs-section .coverage-hubs-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:24px !important;
}
#page-main .coverage-hubs-section .coverage-hub-card{min-width:0;}
@media(max-width:640px){
  #page-main .coverage-hubs-section .coverage-hubs-grid{
    grid-template-columns:minmax(0,1fr) !important;
    gap:20px !important;
  }
}



/* Inicio: restaurar copy alineado al borde izquierdo del grid. */
#page-main .hero.hero-home > .hero-content.shell {
  text-align:left !important;
  align-items:flex-start !important;
  justify-items:start !important;
  width:min(calc(100% - (var(--gutter) * 2)),var(--max)) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:0 !important;
  padding-right:0 !important;
  box-sizing:border-box !important;
}
#page-main .hero.hero-home .breadcrumb,
#page-main .hero.hero-home .eyebrow,
#page-main .hero.hero-home h1,
#page-main .hero.hero-home .hero-lead {
  text-align:left !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
#page-main .hero.hero-home .hero-actions {
  justify-content:flex-start !important;
}
@media(max-width:1180px) {
  #page-main .hero.hero-home > .hero-content.shell {
    left:var(--gutter) !important;
    right:var(--gutter) !important;
    width:auto !important;
    margin:0 !important;
  }
}
@media(max-width:767px) {
  #page-main .hero.hero-home > .hero-content.shell {
    left:16px !important;
    right:16px !important;
  }
}

/* Web development: additional overview, process and FAQ; scoped to avoid other pages */
body[data-route="/soluciones/desarrollo-web/"] .xw-build-section,body[data-route="/en/solutions/web-development/"] .xw-build-section{padding:76px 0 72px;background:#141414}
.xw-build-head{max-width:940px;margin-bottom:38px}.xw-build-head h2,.xw-section-heading h2{font-size:clamp(30px,4vw,52px);letter-spacing:-.045em;line-height:1.08;margin:14px 0 18px}.xw-build-head p,.xw-section-heading p{font-size:17px;line-height:1.8;color:#b8b8b8;max-width:850px;margin:0}.xw-included-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.xw-included-grid article{padding:28px 23px;background:#1b1b1b;border:1px solid #343434;border-radius:10px}.xw-included-symbol{color:#A781EF;font-size:13px;letter-spacing:.15em}.xw-included-grid h3{font-size:19px;line-height:1.3;margin:20px 0 10px}.xw-included-grid p{font-size:14px;line-height:1.7;color:#aaa;margin:0}.xw-process-section,.xw-faq-section{padding:76px 0}.xw-section-heading{margin-bottom:34px}.xw-process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.xw-process-grid article{background:#181818;border:1px solid #333;border-radius:10px;padding:30px 26px;display:flex;flex-direction:column;align-items:flex-start}.xw-step{font-size:36px;line-height:1;color:#A781EF;font-weight:650}.xw-process-grid h3{font-size:23px;line-height:1.24;margin:24px 0 12px}.xw-process-grid p{font-size:15px;line-height:1.75;color:#b4b4b4;margin:0 0 22px}.xw-process-grid small{font-size:12px;color:#A781EF;margin-top:auto}.xw-faq-section{background:#141414}.xw-faq-list{max-width:960px}.xw-faq-list details{border-bottom:1px solid #393939;padding:0}.xw-faq-list summary{cursor:pointer;list-style:none;font-size:17px;font-weight:650;padding:22px 36px 22px 0;position:relative}.xw-faq-list summary::-webkit-details-marker{display:none}.xw-faq-list summary::after{content:'+';position:absolute;right:7px;color:#A781EF;font-size:24px;top:16px}.xw-faq-list details[open] summary::after{content:'−'}.xw-faq-list details p{font-size:15px;line-height:1.75;color:#b8b8b8;max-width:780px;margin:0 0 22px}.xw-faq-cta{display:inline-flex;margin-top:34px;padding:15px 20px;border-radius:6px;background:#2b2141;color:#fff;font-weight:650;gap:12px}
@media(max-width:950px){.xw-included-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.xw-process-grid{grid-template-columns:1fr}.xw-process-grid article{padding:24px}.xw-process-grid h3{margin-top:16px}}
@media(max-width:620px){body[data-route="/soluciones/desarrollo-web/"] .xw-build-section,body[data-route="/en/solutions/web-development/"] .xw-build-section,.xw-process-section,.xw-faq-section{padding:46px 0}.xw-included-grid{grid-template-columns:1fr;gap:12px}.xw-included-grid article{padding:22px}.xw-build-head p,.xw-section-heading p{font-size:15px}.xw-faq-list summary{font-size:16px}}

/* Desarrollo Web: preguntas frecuentes al 50% del grid, adaptables a móviles. */
body[data-route="/soluciones/desarrollo-web/"] .xw-faq-list,
body[data-route="/en/solutions/web-development/"] .xw-faq-list {
  width:50%;
  max-width:none;
  min-width:0;
}
@media (max-width:800px){
 body[data-route="/soluciones/desarrollo-web/"] .xw-faq-list,
 body[data-route="/en/solutions/web-development/"] .xw-faq-list {width:100%;}
}

/* Ajuste aislado: metodología de cuatro etapas, sin modificar otras cuadrículas */
@media (min-width: 1101px) {
  body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid,
  body[data-route="/en/solutions/web-development/"] .xw-process-grid {grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;}
}
@media (min-width: 701px) and (max-width: 1100px) {
  body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid,
  body[data-route="/en/solutions/web-development/"] .xw-process-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 700px) {
  body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid,
  body[data-route="/en/solutions/web-development/"] .xw-process-grid {grid-template-columns:1fr;}
}
body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article,
body[data-route="/en/solutions/web-development/"] .xw-process-grid article {min-width:0;}

/* Metodología: números, títulos, descripciones y pies alineados por filas. */
@media (min-width:1101px) {
 body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article,
 body[data-route="/en/solutions/web-development/"] .xw-process-grid article {
  display:grid;
  grid-template-rows:44px minmax(68px,auto) minmax(0,1fr) auto;
  align-items:start;
  row-gap:14px;
 }
 body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article h3,
 body[data-route="/en/solutions/web-development/"] .xw-process-grid article h3 {margin:0;}
 body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article p,
 body[data-route="/en/solutions/web-development/"] .xw-process-grid article p {margin:0;}
 body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article small,
 body[data-route="/en/solutions/web-development/"] .xw-process-grid article small {margin-top:0;align-self:end;}
}


/* Desarrollo web — FAQ a la izquierda e imagen a la derecha, sin alterar otras páginas */
body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-layout,
body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-layout{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:stretch;
}
body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-content,
body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-content{min-width:0;padding:0 0 12px;}
body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-list,
body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-list{width:100%;max-width:none;}
body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media,
body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media{
  position:relative;min-width:0;min-height:450px;overflow:hidden;border-radius:7px;
}
body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media img,
body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media img{
  position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;
}
@media(max-width:800px){
  body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-layout,
  body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-layout{grid-template-columns:1fr;gap:20px;}
  body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media,
  body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media{min-height:260px;aspect-ratio:16/9;}
}


/* FAQ Desarrollo Web: imagen izquierda, panel estable y respuestas animadas */
body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-layout,
body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-layout{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:32px!important;align-items:stretch!important;
  height:580px;min-height:0!important;
}
body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media,
body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media{
  grid-column:1;grid-row:1;position:relative!important;min-height:0!important;
  height:100%!important;border-radius:7px;overflow:hidden;
}
body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-content,
body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-content{
  grid-column:2;grid-row:1;display:flex;flex-direction:column;min-height:0;
  overflow:hidden;padding:0!important;
}
body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-list,
body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-list{
  flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;
  scrollbar-width:thin;scrollbar-color:#444 transparent;width:100%!important;
}
.xw-faq-section .xw-faq-item{border-bottom:1px solid #353535;}
.xw-faq-section .xw-faq-question{
  appearance:none;display:flex;justify-content:space-between;align-items:center;gap:16px;
  width:100%;margin:0;border:0;background:transparent;padding:20px 8px 20px 0;
  min-height:68px;text-align:left;color:#f4f4f4;font:inherit;font-weight:700;
  cursor:pointer;
}
.xw-faq-section .xw-faq-question:focus-visible{outline:2px solid #A781EF;outline-offset:-2px;}
.xw-faq-section .xw-faq-icon{flex:0 0 20px;color:#A781EF;font-size:25px;font-weight:500;line-height:1;text-align:center;transition:transform .3s ease;}
.xw-faq-section .xw-faq-item.is-open .xw-faq-icon{transform:rotate(45deg);}
.xw-faq-section .xw-faq-answer-wrap{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .38s cubic-bezier(.2,.7,.2,1),opacity .28s ease;}
.xw-faq-section .xw-faq-item.is-open .xw-faq-answer-wrap{grid-template-rows:1fr;opacity:1;}
.xw-faq-section .xw-faq-answer{min-height:0;overflow:hidden;}
.xw-faq-section .xw-faq-answer p{margin:0;padding:0 18px 20px 0;color:#b9b9b9;line-height:1.7;font-size:15px;}
@media(max-width:800px){
 body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-layout,
 body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-layout{grid-template-columns:1fr!important;height:auto;gap:22px!important;}
 body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media,
 body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media{
   grid-column:1;grid-row:1;height:auto!important;min-height:0!important;aspect-ratio:16/9;
 }
 body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-content,
 body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-content{
   grid-column:1;grid-row:2;overflow:visible;
 }
 body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-list,
 body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-list{overflow:visible;}
 .xw-faq-section .xw-faq-question{padding:16px 8px 16px 0;min-height:60px;}
}
@media(prefers-reduced-motion:reduce){.xw-faq-section .xw-faq-answer-wrap,.xw-faq-section .xw-faq-icon{transition:none!important;}}

/* Metodología: icono centrado, número junto al título y texto alineado */
body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article,
body[data-route="/en/solutions/web-development/"] .xw-process-grid article{
 display:flex;flex-direction:column;align-items:stretch;gap:0;grid-template-rows:none;min-width:0;
}
body[data-route="/soluciones/desarrollo-web/"] .xw-process-icon,
body[data-route="/en/solutions/web-development/"] .xw-process-icon{
 height:88px;display:flex;align-items:center;justify-content:center;color:#A781EF;margin:0 0 20px;
}
body[data-route="/soluciones/desarrollo-web/"] .xw-process-icon svg,
body[data-route="/en/solutions/web-development/"] .xw-process-icon svg{width:54px;height:54px;display:block;}
body[data-route="/soluciones/desarrollo-web/"] .xw-process-heading-row,
body[data-route="/en/solutions/web-development/"] .xw-process-heading-row{
 display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:start;min-height:83px;margin-bottom:10px;
}
body[data-route="/soluciones/desarrollo-web/"] .xw-process-heading-row .xw-step,
body[data-route="/en/solutions/web-development/"] .xw-process-heading-row .xw-step{font-size:28px;line-height:1.18;white-space:nowrap;}
body[data-route="/soluciones/desarrollo-web/"] .xw-process-heading-row h3,
body[data-route="/en/solutions/web-development/"] .xw-process-heading-row h3{font-size:20px;line-height:1.28;margin:0;}
body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article p,
body[data-route="/en/solutions/web-development/"] .xw-process-grid article p{margin:0;}
@media(max-width:700px){
 body[data-route="/soluciones/desarrollo-web/"] .xw-process-heading-row,
 body[data-route="/en/solutions/web-development/"] .xw-process-heading-row{min-height:0;margin-bottom:14px;}
}

/* Metodología: numeración del mismo tamaño que los títulos */
body[data-route="/soluciones/desarrollo-web/"] .xw-process-heading-row .xw-step,
body[data-route="/en/solutions/web-development/"] .xw-process-heading-row .xw-step {
  font-size:20px !important;
  line-height:1.28 !important;
}

/* Metodología: iconos más grandes y numeración gris claro */
body[data-route="/soluciones/desarrollo-web/"] .xw-process-icon,
body[data-route="/en/solutions/web-development/"] .xw-process-icon {
  color:#c8c8ce !important;
  height:112px;
  margin-bottom:20px;
}
body[data-route="/soluciones/desarrollo-web/"] .xw-process-icon svg,
body[data-route="/en/solutions/web-development/"] .xw-process-icon svg {
  width:78px !important;
  height:78px !important;
  stroke:currentColor;
}
body[data-route="/soluciones/desarrollo-web/"] .xw-process-heading-row .xw-step,
body[data-route="/en/solutions/web-development/"] .xw-process-heading-row .xw-step {
  color:#c8c8ce !important;
}

/* FAQ: fotografía proporcionada, encajada sin recortar ni estirar */
body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media,
body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media{
 background:#101010!important;
}
body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media img,
body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media img{
 object-fit:contain!important;
 object-position:center bottom!important;
}
@media(max-width:800px){
 body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media,
 body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media{
  aspect-ratio:auto!important;height:320px!important;min-height:320px!important;
 }
}

/* Desarrollo a medida: medio ancho y acordeones con animación FAQ */
body[data-route="/soluciones/desarrollo-web/"] .xw-build-section > .shell,
body[data-route="/en/solutions/web-development/"] .xw-build-section > .shell{
  width:min(calc(100% - (var(--gutter)*2)),var(--max));
}
body[data-route="/soluciones/desarrollo-web/"] .xw-build-head,
body[data-route="/en/solutions/web-development/"] .xw-build-head,
body[data-route="/soluciones/desarrollo-web/"] .xw-included-accordion,
body[data-route="/en/solutions/web-development/"] .xw-included-accordion{
  width:50%;max-width:none;min-width:0;
}
.xw-included-accordion{border-top:1px solid #393939;}
.xw-included-item{border-bottom:1px solid #393939;}
.xw-included-question{display:flex;align-items:center;gap:12px;width:100%;background:transparent;border:0;color:#f5f5f5;text-align:left;cursor:pointer;padding:20px 6px 20px 0;min-height:68px;font-weight:700;font-size:17px;}
.xw-included-question:focus-visible{outline:2px solid #A781EF;outline-offset:-2px;}
.xw-included-number{font-size:15px;font-weight:600;color:#c8c8ce;min-width:24px;}
.xw-included-name{flex:1;}
.xw-included-plus{font-size:25px;font-weight:400;color:#A781EF;line-height:1;transition:transform .35s ease;}
.xw-included-item.is-open .xw-included-plus{transform:rotate(45deg);}
.xw-included-answer-wrap{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .38s cubic-bezier(.2,.7,.2,1),opacity .28s ease;}
.xw-included-item.is-open .xw-included-answer-wrap{grid-template-rows:1fr;opacity:1;}
.xw-included-answer{min-height:0;overflow:hidden;}
.xw-included-answer p{margin:0;padding:0 22px 22px 36px;color:#b8b8b8;font-size:15px;line-height:1.75;}
@media(max-width:800px){
 body[data-route="/soluciones/desarrollo-web/"] .xw-build-head,
 body[data-route="/en/solutions/web-development/"] .xw-build-head,
 body[data-route="/soluciones/desarrollo-web/"] .xw-included-accordion,
 body[data-route="/en/solutions/web-development/"] .xw-included-accordion{width:100%;}
 .xw-included-question{font-size:16px;}
}
@media(prefers-reduced-motion:reduce){.xw-included-answer-wrap,.xw-included-plus{transition:none!important;}}

/* FAQ: altura calculada con la respuesta más extensa; imagen estable y sin scroll interior. */
@media(min-width:801px){
  body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-layout,
  body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-layout{
    height:var(--xw-faq-fit-height,740px)!important;
    align-items:stretch!important;
  }
  body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-list,
  body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-list{
    flex:0 0 auto!important;
    overflow:visible!important;
    min-height:0;
    scrollbar-width:none;
  }
  body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-content,
  body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-content{
    overflow:visible!important;
  }
}

/* Desarrollo a medida: espacio reservado para la respuesta más larga, sin saltos ni scroll interior */
body[data-route="/soluciones/desarrollo-web/"] .xw-included-accordion,
body[data-route="/en/solutions/web-development/"] .xw-included-accordion {
  height:var(--xw-included-fit-height,auto);
  overflow:visible;
}

/* FAQ - imagen PNG sin ningún fondo de color, integrada al fondo de la sección */
body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media,
body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media{
  background:transparent!important; background-color:transparent!important;
  border:0!important; box-shadow:none!important; border-radius:0!important;
}
body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media::before,
body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media::after,
body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media::before,
body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media::after{
  content:none!important; background:none!important;
}


/* FAQ: retrato ajustado a la altura real de su sección, sin fondo ni deformación. */
@media (min-width:801px){
  body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media,
  body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media{
    align-self:stretch!important;
    height:100%!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media img,
  body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media img{
    position:absolute!important;
    inset:auto 0 0 0!important;
    height:100%!important;
    width:100%!important;
    object-fit:contain!important;
    object-position:center bottom!important;
  }
}
@media(max-width:800px){
  body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media,
  body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media{
    height:clamp(320px,68vw,520px)!important;
    min-height:0!important;
  }
}

/* FAQ: retrato alineado al borde derecho de su mitad, ocupando toda la altura estable. */
@media (min-width:801px){
 body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media,
 body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media{
   position:relative!important;
   align-self:stretch!important;
   height:100%!important;
   min-height:0!important;
   overflow:hidden!important;
 }
 body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media img,
 body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media img{
   position:absolute!important;
   inset:auto 0 0 auto!important;
   width:auto!important;
   max-width:none!important;
   height:100%!important;
   object-fit:contain!important;
   object-position:right bottom!important;
 }
}
@media (max-width:800px){
 body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media img,
 body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media img{
   object-position:right bottom!important;
 }
}


/* FAQ: retrato a la altura completa de la sección, sin franjas superior/inferior. */
@media (min-width:801px){
  body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section,
  body[data-route="/en/solutions/web-development/"] .xw-faq-section{
    padding-top:0!important;
    padding-bottom:0!important;
  }
  body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-layout,
  body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-layout{
    position:relative;
    height:var(--xw-faq-fit-height,740px)!important;
    align-items:stretch!important;
  }
  body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media,
  body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media{
    height:100%!important;
    min-height:0!important;
    align-self:stretch!important;
    overflow:hidden!important;
  }
  body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media img,
  body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media img{
    position:absolute!important;
    top:0!important;
    right:0!important;
    bottom:0!important;
    left:auto!important;
    height:100%!important;
    width:auto!important;
    max-width:none!important;
    object-fit:contain!important;
    object-position:right bottom!important;
  }
  body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-content,
  body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-content{
    padding-top:52px!important;
    padding-bottom:40px!important;
    box-sizing:border-box;
  }
}


/* XIRIZ: Desarrollo a medida — retrato en mitad derecha, a la altura de la sección. */
@media (min-width:801px){
  body[data-route="/soluciones/desarrollo-web/"] .xw-build-section,
  body[data-route="/en/solutions/web-development/"] .xw-build-section{
    padding-block:0!important;
  }
  body[data-route="/soluciones/desarrollo-web/"] .xw-build-layout,
  body[data-route="/en/solutions/web-development/"] .xw-build-layout{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    align-items:stretch;
    gap:clamp(22px,3vw,48px);
  }
  .xw-build-layout>.xw-build-copy{
    min-width:0;
    padding-block:76px 72px;
  }
  .xw-build-layout .xw-build-head{
    width:100%;max-width:none;
  }
  body[data-route="/soluciones/desarrollo-web/"] .xw-build-layout .xw-included-accordion,
  body[data-route="/en/solutions/web-development/"] .xw-build-layout .xw-included-accordion{
    width:100%!important;
    max-width:none!important;
  }
  .xw-build-layout>.xw-build-media{
    align-self:stretch;
    min-height:0;
    position:relative;
    background:transparent;
    overflow:hidden;
  }
  .xw-build-layout>.xw-build-media>img{
    position:absolute;
    left:0;
    bottom:0;
    height:100%;
    width:auto;
    max-width:none;
    object-fit:contain;
    object-position:left bottom;
    display:block;
  }
}
@media (max-width:800px){
  .xw-build-layout>.xw-build-media{display:none;}
}

/* FAQ: evitar scroll interno y reservar la altura real para la respuesta más larga */
@media(min-width:801px){
body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-layout,
body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-layout{height:var(--xw-faq-fit-height,800px)!important;min-height:800px!important;}
body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-content,
body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-content{height:100%!important;min-height:0!important;overflow:visible!important;}
body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-list,
body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-list{height:auto!important;max-height:none!important;overflow:visible!important;flex:none!important;}
}


/* Desarrollo a medida: titulo y parrafo ocupan toda la columna izquierda. */
@media (min-width:801px){
  body[data-route="/soluciones/desarrollo-web/"] .xw-build-layout > .xw-build-copy,
  body[data-route="/en/solutions/web-development/"] .xw-build-layout > .xw-build-copy{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
  }
  body[data-route="/soluciones/desarrollo-web/"] .xw-build-layout .xw-build-copy > .xw-build-head,
  body[data-route="/en/solutions/web-development/"] .xw-build-layout .xw-build-copy > .xw-build-head{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
  }
  body[data-route="/soluciones/desarrollo-web/"] .xw-build-layout .xw-build-head > h2,
  body[data-route="/en/solutions/web-development/"] .xw-build-layout .xw-build-head > h2,
  body[data-route="/soluciones/desarrollo-web/"] .xw-build-layout .xw-build-head > p,
  body[data-route="/en/solutions/web-development/"] .xw-build-layout .xw-build-head > p{
    width:100%;max-width:none!important;
  }
}


/* Desarrollo Web: retratos pueden rebasar el grid en escritorio.
   Se ocultan completamente en tabletas y celulares. */
@media (min-width:1025px){
  body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-layout,
  body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-layout,
  body[data-route="/soluciones/desarrollo-web/"] .xw-build-layout,
  body[data-route="/en/solutions/web-development/"] .xw-build-layout{
    overflow:visible!important;
  }
  body[data-route="/soluciones/desarrollo-web/"] .xw-faq-media,
  body[data-route="/en/solutions/web-development/"] .xw-faq-media,
  body[data-route="/soluciones/desarrollo-web/"] .xw-build-media,
  body[data-route="/en/solutions/web-development/"] .xw-build-media{
    overflow:visible!important;
    background:none!important;
    border:0!important;
    box-shadow:none!important;
  }
  /* La imagen izquierda puede extenderse sobre el margen exterior del grid. */
  body[data-route="/soluciones/desarrollo-web/"] .xw-faq-media img,
  body[data-route="/en/solutions/web-development/"] .xw-faq-media img{
    right:-clamp(0px,1.2vw,24px)!important;
    width:auto!important;
    max-width:none!important;
    object-fit:contain!important;
  }
  /* La imagen derecha también puede ocupar el espacio del gutter. */
  body[data-route="/soluciones/desarrollo-web/"] .xw-build-layout>.xw-build-media>img,
  body[data-route="/en/solutions/web-development/"] .xw-build-layout>.xw-build-media>img{
    left:-clamp(0px,2vw,38px)!important;
    width:auto!important;
    max-width:none!important;
    object-fit:contain!important;
  }
}
@media (max-width:1024px){
  body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-media,
  body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-media,
  body[data-route="/soluciones/desarrollo-web/"] .xw-build-layout>.xw-build-media,
  body[data-route="/en/solutions/web-development/"] .xw-build-layout>.xw-build-media{
    display:none!important;
  }
  body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-layout,
  body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-layout,
  body[data-route="/soluciones/desarrollo-web/"] .xw-build-layout,
  body[data-route="/en/solutions/web-development/"] .xw-build-layout{
    display:block!important;
    height:auto!important;
    min-height:0!important;
  }
  body[data-route="/soluciones/desarrollo-web/"] .xw-faq-section .xw-faq-content,
  body[data-route="/en/solutions/web-development/"] .xw-faq-section .xw-faq-content,
  body[data-route="/soluciones/desarrollo-web/"] .xw-build-layout>.xw-build-copy,
  body[data-route="/en/solutions/web-development/"] .xw-build-layout>.xw-build-copy{
    width:100%!important;
    max-width:none!important;
  }
}


/* Metodologia XIRIZ: numero superior, icono centrado, titulo y descripcion. */
body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article,
body[data-route="/en/solutions/web-development/"] .xw-process-grid article {
  position:relative!important;
  display:grid!important;
  grid-template-rows:145px auto 1fr!important;
  align-content:start!important;
  gap:0!important;
  padding:28px 25px 30px!important;
  min-width:0!important;
  overflow:hidden;
}
body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article .xw-step,
body[data-route="/en/solutions/web-development/"] .xw-process-grid article .xw-step {
  position:absolute!important;
  top:22px!important;
  left:24px!important;
  margin:0!important;
  color:#C8C8CE!important;
  font-size:18px!important;
  line-height:1.2!important;
  font-weight:700!important;
}
body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article .xw-process-icon,
body[data-route="/en/solutions/web-development/"] .xw-process-grid article .xw-process-icon {
  grid-row:1!important;
  width:100%!important;
  height:145px!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:17px 0 0!important;
}
body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article .xw-process-icon img,
body[data-route="/en/solutions/web-development/"] .xw-process-grid article .xw-process-icon img {
  display:block!important;
  width:140px!important;
  height:120px!important;
  max-width:95%!important;
  object-fit:contain!important;
}
body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article .xw-process-heading-row,
body[data-route="/en/solutions/web-development/"] .xw-process-grid article .xw-process-heading-row {
  grid-row:2!important;
  display:block!important;
  min-height:76px!important;
  margin:14px 0 12px!important;
  padding:0!important;
}
body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article .xw-process-heading-row h3,
body[data-route="/en/solutions/web-development/"] .xw-process-grid article .xw-process-heading-row h3 {
  margin:0!important;
  font-size:20px!important;
  line-height:1.32!important;
  white-space:normal!important;
}
body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article > p,
body[data-route="/en/solutions/web-development/"] .xw-process-grid article > p {
  grid-row:3!important;
  margin:0!important;
  padding:0!important;
  align-self:start!important;
  font-size:15px;
  line-height:1.7;
}
@media(max-width:950px){
  body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article,
  body[data-route="/en/solutions/web-development/"] .xw-process-grid article {padding:24px 22px 28px!important;}
}
@media(max-width:700px){
  body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article,
  body[data-route="/en/solutions/web-development/"] .xw-process-grid article {grid-template-rows:125px auto 1fr!important;}
  body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article .xw-process-icon,
  body[data-route="/en/solutions/web-development/"] .xw-process-grid article .xw-process-icon {height:125px!important;}
  body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article .xw-process-icon img,
  body[data-route="/en/solutions/web-development/"] .xw-process-grid article .xw-process-icon img {height:106px!important;width:120px!important;}
  body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article .xw-process-heading-row,
  body[data-route="/en/solutions/web-development/"] .xw-process-grid article .xw-process-heading-row {min-height:0!important;margin:10px 0 15px!important;}
  body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article .xw-process-heading-row h3,
  body[data-route="/en/solutions/web-development/"] .xw-process-grid article .xw-process-heading-row h3 {font-size:18px!important;white-space:normal!important;}
}


/* Metodología: títulos en una sola línea en tabletas y celulares. */
@media (max-width: 1100px) {
  body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article .xw-process-heading-row h3 br,
  body[data-route="/en/solutions/web-development/"] .xw-process-grid article .xw-process-heading-row h3 br {display:none!important;}
  body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article .xw-process-heading-row h3,
  body[data-route="/en/solutions/web-development/"] .xw-process-grid article .xw-process-heading-row h3 {font-size:clamp(15px,1.55vw,18px)!important;white-space:nowrap!important;letter-spacing:-.025em!important;}
  body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article .xw-process-heading-row,
  body[data-route="/en/solutions/web-development/"] .xw-process-grid article .xw-process-heading-row {min-height:0!important;}
}
@media (max-width: 700px) {
  body[data-route="/soluciones/desarrollo-web/"] .xw-process-grid article .xw-process-heading-row h3,
  body[data-route="/en/solutions/web-development/"] .xw-process-grid article .xw-process-heading-row h3 {font-size:clamp(13px,3.75vw,17px)!important;}
}


/* Unificar la franja final de consultoría con la franja de beneficios de Desarrollo Web.
   Cambios acotados a este bloque, sin afectar las demás secciones. */
.site-consultation-strip {
  background: #3f207c;
  border-top: 0;
  border-bottom: 0;
}
.site-consultation-strip > .site-consultation-inner {
  background: linear-gradient(100deg, #4b2597, #381778);
}
.site-consultation-strip .site-consultation-heading,
.site-consultation-strip .site-consultation-description {
  color: #fff;
}

/* Franja de consultoría: respiro interior y sombreado lateral como la banda de beneficios. */
.site-consultation-strip > .site-consultation-inner {
  box-sizing: border-box;
  padding-left: clamp(24px, 3.5vw, 64px);
  padding-right: clamp(24px, 3.5vw, 64px);
  box-shadow: -30px 0 48px -25px rgba(10, 4, 28, .40),
               30px 0 48px -25px rgba(10, 4, 28, .40);
}
.site-consultation-strip .site-consultation-copy { min-width: 0; }
.site-consultation-strip .site-consultation-cta { margin-left: 16px; }
@media (max-width:767px) {
  .site-consultation-strip > .site-consultation-inner {
    padding-left: 22px;
    padding-right: 22px;
  }
  .site-consultation-strip .site-consultation-cta { margin-left: 0; }
}


/* Botón en franjas de consultoría: negro y hover gris oscuro. */
.site-consultation-strip .site-consultation-cta,
.home-consultation-strip .home-consultation-cta {
  background: #0c0c0c !important;
  color: #ffffff !important;
  transition: background-color .25s ease !important;
}
.site-consultation-strip .site-consultation-cta:hover,
.site-consultation-strip .site-consultation-cta:focus-visible,
.home-consultation-strip .home-consultation-cta:hover,
.home-consultation-strip .home-consultation-cta:focus-visible {
  background: #533ba5 !important;
}
@media (prefers-reduced-motion: reduce) {
  .site-consultation-strip .site-consultation-cta,
  .home-consultation-strip .home-consultation-cta { transition: none !important; }
}

/* Franja final: sombra EXTERIOR, nunca sobre el contenido morado. */
.site-consultation-strip { overflow: visible !important; }
.site-consultation-strip > .site-consultation-inner {
  position: relative;
  box-shadow: -34px 0 38px -20px rgba(10,4,28,.54),
               34px 0 38px -20px rgba(10,4,28,.54) !important;
}
.site-consultation-strip > .site-consultation-inner::before,
.site-consultation-strip > .site-consultation-inner::after {
  content: none !important;
}

/* XIRIZ | Sombreado lateral exterior RECTO, de altura completa. */
.site-consultation-strip > .site-consultation-inner {
  box-shadow: none !important;
  isolation: isolate;
}
.site-consultation-strip > .site-consultation-inner::before,
.site-consultation-strip > .site-consultation-inner::after {
  content: "" !important;
  display: block !important;
  position: absolute;
  top: 0;
  bottom: 0;
  height: 100%;
  width: clamp(24px, 3.5vw, 56px);
  border: 0;
  border-radius: 0;
  pointer-events: none;
  z-index: 0;
}
.site-consultation-strip > .site-consultation-inner::before {
  right: 100%;
  left: auto;
  background: linear-gradient(to left, rgba(12, 5, 35, .258), transparent);
}
.site-consultation-strip > .site-consultation-inner::after {
  left: 100%;
  right: auto;
  background: linear-gradient(to right, rgba(12, 5, 35, .258), transparent);
}
@media (max-width: 767px) {
  .site-consultation-strip > .site-consultation-inner::before,
  .site-consultation-strip > .site-consultation-inner::after { width: 0; }
}


/* INICIO: franja de consulta, aislada de las demas paginas */
body[data-route="/"] .home-consultation-strip,
body[data-route="/en/"] .home-consultation-strip {background:#3f207c !important;border:0 !important;padding:0 !important;overflow:visible !important;}
body[data-route="/"] .home-consultation-inner,
body[data-route="/en/"] .home-consultation-inner {background:linear-gradient(100deg,#4b2597,#381778) !important;position:relative;isolation:isolate;padding-inline:clamp(24px,3.5vw,64px);}
body[data-route="/"] .home-consultation-inner::before,
body[data-route="/"] .home-consultation-inner::after,
body[data-route="/en/"] .home-consultation-inner::before,
body[data-route="/en/"] .home-consultation-inner::after {content:"";position:absolute;top:0;bottom:0;width:clamp(24px,3.5vw,56px);pointer-events:none;border-radius:0;}
body[data-route="/"] .home-consultation-inner::before,
body[data-route="/en/"] .home-consultation-inner::before {right:100%;background:linear-gradient(to left,rgba(12,5,35,.258),transparent);}
body[data-route="/"] .home-consultation-inner::after,
body[data-route="/en/"] .home-consultation-inner::after {left:100%;background:linear-gradient(to right,rgba(12,5,35,.258),transparent);}
body[data-route="/"] .home-consultation-inner .home-consultation-cta,
body[data-route="/en/"] .home-consultation-inner .home-consultation-cta {margin-left:16px;background:#0c0c0c !important;color:#fff !important;}
body[data-route="/"] .home-consultation-inner .home-consultation-cta:hover,
body[data-route="/en/"] .home-consultation-inner .home-consultation-cta:hover {background:#533ba5 !important;}
@media(max-width:767px){
body[data-route="/"] .home-consultation-inner,body[data-route="/en/"] .home-consultation-inner{padding-inline:22px;}
body[data-route="/"] .home-consultation-inner .home-consultation-cta,body[data-route="/en/"] .home-consultation-inner .home-consultation-cta{margin-left:0;}
body[data-route="/"] .home-consultation-inner::before,body[data-route="/"] .home-consultation-inner::after,body[data-route="/en/"] .home-consultation-inner::before,body[data-route="/en/"] .home-consultation-inner::after{display:none;}
}

/* Inicio — una sola sombra exterior para el panel de métricas.
   Se eliminaron las reglas anteriores que producían capas dobles. */
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics {
  position:relative !important;
  background:#0c0c0c !important;
  box-shadow:none !important;
  isolation:auto !important;
  overflow:visible !important;
}
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics::before,
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics::after {
  content:none !important;
  display:none !important;
}
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics > .metrics-grid {
  background:#111113 !important;
  position:relative !important;
  isolation:isolate !important;
  box-shadow:none !important;
}
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics > .metrics-grid::before,
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics > .metrics-grid::after {
  content:"" !important;
  display:block !important;
  position:absolute !important;
  top:0 !important;
  bottom:0 !important;
  width:clamp(24px,3.5vw,56px) !important;
  height:100% !important;
  border:0 !important;
  border-radius:0 !important;
  pointer-events:none !important;
  z-index:0 !important;
}
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics > .metrics-grid::before {
  right:100% !important;
  left:auto !important;
  background:linear-gradient(to left, rgba(0,0,0,.42),transparent) !important;
}
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics > .metrics-grid::after {
  left:100% !important;
  right:auto !important;
  background:linear-gradient(to right, rgba(0,0,0,.42),transparent) !important;
}
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics > .metrics-grid > div {
  position:relative;
  z-index:1;
}
@media(max-width:767px){
  body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics > .metrics-grid::before,
  body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics > .metrics-grid::after {
    display:none !important;
    content:none !important;
  }
}


/* Corrección definitiva Inicio: quitar bandas laterales originadas por
   pseudo-elementos, conservar únicamente una sombra muy sutil del panel. */
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics,
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics::before,
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics::after {
  background-color:#0c0c0c !important;
}
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics::before,
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics::after,
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics > .metrics-grid::before,
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics > .metrics-grid::after {
  content:none !important;
  display:none !important;
  background:none !important;
}
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics > .metrics-grid {
  background:#111113 !important;
  box-shadow:none !important;
}

/* Inicio: el fondo a todo el ancho coincide con el panel de métricas. */
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics {
  background:#111113 !important;
  background-color:#111113 !important;
}


/* XIRIZ — Separación entre la descripción del footer y sus etiquetas técnicas. */
.footer .footer-brand .chips { margin-top: 22px; }


/* Inicio: sombra lateral RECTANGULAR, a toda la altura del panel.
   Sin box-shadow (produce halos circulares en los extremos). */
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics > .metrics-grid {
  box-shadow:none !important;
  overflow:visible !important;
}
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics > .metrics-grid::before,
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics > .metrics-grid::after {
  content:"" !important;
  display:block !important;
  position:absolute !important;
  top:0 !important;
  bottom:0 !important;
  height:auto !important;
  width:clamp(24px,3.5vw,56px) !important;
  border-radius:0 !important;
  pointer-events:none !important;
  z-index:0 !important;
}
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics > .metrics-grid::before {
  right:100% !important;
  left:auto !important;
  background:linear-gradient(to left,rgba(0,0,0,.24),transparent) !important;
}
body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics > .metrics-grid::after {
  left:100% !important;
  right:auto !important;
  background:linear-gradient(to right,rgba(0,0,0,.24),transparent) !important;
}
@media(max-width:767px){
  body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics > .metrics-grid::before,
  body:is([data-route="/"],[data-route="/en/"]) #page-main .metrics > .metrics-grid::after {
    display:none !important;
    content:none !important;
  }
}


/* Inicio: CTA de hero al ancho disponible en tabletas y celulares. */
@media (max-width:1180px) {
  body:is([data-route="/"],[data-route="/en/"]) #page-main .hero.hero-home .hero-content .hero-actions {
    display:flex !important;
    width:100% !important;
    max-width:100% !important;
    flex-direction:column !important;
    align-items:stretch !important;
  }
  body:is([data-route="/"],[data-route="/en/"]) #page-main .hero.hero-home .hero-content .hero-actions > .btn {
    display:flex !important;
    box-sizing:border-box !important;
    width:100% !important;
    max-width:100% !important;
    flex:0 0 auto !important;
    justify-content:center !important;
  }
}


/* Contacto y Cotizaciones ES/EN: Mensaje/Necesidades abarca todo el formulario.
   Mayor especificidad que la regla de tabletas para label.full. */
body .form-shell .consult-form .form-grid > label.full:has(> textarea[name="message"]),
body .form-shell .consult-form .form-grid > label.full:has(> textarea[name="need"]) {
  grid-column:1 / -1 !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
}
body .form-shell .consult-form .form-grid > label.full > textarea[name="message"],
body .form-shell .consult-form .form-grid > label.full > textarea[name="need"] {
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}

/* Cobertura: altura responsive del header visual; sin afectar otras rutas. */
@media (min-width:768px) and (max-width:1180px) and (orientation:portrait) {
  body:is([data-route="/cobertura/"],[data-route="/en/coverage/"]) #page-main .hero.hero-coverage {
    height:60vh !important;
    min-height:0 !important;
  }
}
@media (min-width:768px) and (max-width:1180px) and (orientation:landscape) {
  body:is([data-route="/cobertura/"],[data-route="/en/coverage/"]) #page-main .hero.hero-coverage {
    height:80vh !important;
    min-height:0 !important;
  }
}
@media (max-width:767px) {
  body:is([data-route="/cobertura/"],[data-route="/en/coverage/"]) #page-main .hero.hero-coverage {
    height:90vh !important;
    min-height:0 !important;
  }
}

/* Opciones de contacto: selector de detalle después del método */
.consult-form .xiriz-contact-choice{grid-column:1/-1;min-width:0;margin:0;padding:0;border:0;color:#d0d0d0}
.consult-form .xiriz-contact-choice legend{padding:0;margin-bottom:10px;font-size:12px}
.consult-form .xiriz-contact-choice-row{display:flex;flex-wrap:wrap;gap:12px 24px}
.consult-form .xiriz-contact-choice-row label{display:flex;align-items:center;gap:9px;font-size:13px;cursor:pointer}
.consult-form .xiriz-contact-choice-row input[type="radio"]{width:17px;min-height:17px;height:17px;margin:0;accent-color:#6c3bb6}
@media(max-width:600px){.consult-form .xiriz-contact-choice-row{flex-direction:column;gap:13px}}

/* Contacto y Cotizaciones (ES/EN): cada selector principal ocupa una fila
   completa, en escritorio, tabletas y celulares. */
body .form-shell .consult-form .form-grid > label:has(> select[name="contact_method"]),
body .form-shell .consult-form .form-grid > label.xiriz-form-second-selector {
  grid-column:1 / -1 !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
}
body .form-shell .consult-form .form-grid > label:has(> select[name="contact_method"]) > select,
body .form-shell .consult-form .form-grid > label.xiriz-form-second-selector > select {
  display:block;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}

/* Contacto y Cotizaciones: radio a la izquierda y etiqueta en una sola línea. */
body .form-shell .consult-form .xiriz-contact-choice-row {
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:12px 24px !important;
}
body .form-shell .consult-form .xiriz-contact-choice-row > label {
  display:inline-flex !important;
  grid-template-columns:none !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:9px !important;
  width:auto !important;
  max-width:100% !important;
  white-space:nowrap !important;
  line-height:1.4 !important;
  cursor:pointer;
}
body .form-shell .consult-form .xiriz-contact-choice-row > label > input[type="radio"] {
  appearance:auto;
  flex:0 0 17px !important;
  width:17px !important;
  min-width:17px !important;
  height:17px !important;
  min-height:17px !important;
  margin:0 !important;
  padding:0 !important;
}
body .form-shell .consult-form .xiriz-contact-choice-row > label > span {
  display:inline !important;
  width:auto !important;
  white-space:nowrap !important;
}
@media(max-width:600px) {
  body .form-shell .consult-form .xiriz-contact-choice-row {
    flex-direction:column !important;
    align-items:flex-start !important;
  }
}


/* Franjas de consultoría: fondo exterior igual al panel central. */
.site-consultation-strip,
.home-consultation-strip,
body[data-route="/"] .home-consultation-strip,
body[data-route="/en/"] .home-consultation-strip {
  background: #595F7F !important;
  background-color: #595F7F !important;
}
.site-consultation-strip > .site-consultation-inner,
.home-consultation-strip > .home-consultation-inner,
body[data-route="/"] .home-consultation-inner,
body[data-route="/en/"] .home-consultation-inner {
  background: #595F7F !important;
  background-color: #595F7F !important;
}


/* Headers: etiquetas anteriormente moradas en el nuevo tono corporativo.
   No se alteran colores de botones ni etiquetas fuera del encabezado. */
#page-main .hero .eyebrow,
#page-main .hero-location .eyebrow,
#page-main .location-hero .eyebrow {
  color:#70789B !important;
}

/* Casos de Éxito: acentos de proyectos en gris azulado corporativo. */
.portfolio-section .portfolio-card::before,
.portfolio-section .portfolio-card-media::before {
  background:#70789B !important;
}
.portfolio-section .portfolio-card-subtitle,
.portfolio-section .portfolio-card-link {
  color:#70789B !important;
}
.portfolio-section .portfolio-project-url:hover {
  color:#70789B !important;
}

/* XIRIZ: alineación uniforme del footer corporativo (escritorio).
   Mantiene el comportamiento de acordeones existente en tabletas y celulares. */
@media (min-width:1181px){
  .footer .footer-grid{
    display:grid !important;
    grid-template-columns:minmax(0,1.45fr) repeat(3,minmax(0,1fr)) !important;
    align-items:start !important;
    column-gap:42px !important;
  }
  .footer .footer-grid > .footer-brand{padding-top:0 !important;}
  .footer .footer-grid > .footer-col{
    align-self:start !important;
    padding-top:0 !important;
    margin-top:0 !important;
  }
  .footer .footer-grid > .footer-col > summary{margin-top:0 !important;}
}

/* Footer escritorio: títulos alineados con el borde superior del logotipo. */
@media (min-width:1181px){
 .footer .footer-grid > .footer-col > summary{padding-top:0 !important; transform:none !important;}
}

/* Footer escritorio: 40 px desde el borde superior hasta el logo.
   Columnas y enlaces compactos, sin los offsets acumulados anteriores. */
@media (min-width:1181px) {
  .footer { padding-top:40px !important; }
  .footer .footer-grid > .footer-brand { padding-top:0 !important; }
  .footer .footer-grid > .footer-brand > .xiriz-lockup-footer {
    margin-top:0 !important;
    margin-bottom:12px !important;
  }
  .footer .footer-grid > .footer-brand > p { margin-top:0 !important; }
  .footer .footer-grid > .footer-col {
    padding-top:20px !important;
    margin-top:0 !important;
  }
  .footer .footer-grid > .footer-col > summary {
    padding:0 !important;
    margin:0 0 10px !important;
    min-height:0 !important;
    height:auto !important;
    line-height:1.4 !important;
    transform:none !important;
  }
  .footer .footer-grid > .footer-col > div { gap:6px !important; }
}

/* Footer de escritorio: mismo ritmo vertical en la descripcion y enlaces.
   Mantener alineacion superior de las cuatro columnas de la referencia. */
@media (min-width:1181px) {
  .footer .footer-grid > .footer-brand > p::after {
    line-height:24px !important;
  }
  .footer .footer-grid > .footer-col > div {
    row-gap:6px !important;
  }
  .footer .footer-grid > .footer-col > div > a {
    line-height:18px !important;
  }
}

/* Footer escritorio: el pie de cada titulo coincide con el pie del logo;
   las primeras lineas de texto/enlaces comienzan en el mismo eje. */
@media (min-width:1181px) {
  .footer .footer-grid > .footer-brand > .xiriz-lockup-footer {
    height:40px !important;
    min-height:40px !important;
    margin-bottom:18px !important;
  }
  .footer .footer-grid > .footer-col {
    padding-top:23px !important;
  }
  .footer .footer-grid > .footer-col > summary {
    height:17px !important;
    min-height:17px !important;
    line-height:17px !important;
    margin:0 0 18px !important;
  }
  .footer .footer-grid > .footer-brand > p { margin-top:0 !important; }
  .footer .footer-grid > .footer-col > div { margin-top:0 !important; }
}

/* Hover de los botones de las franjas de consultoria (ES/EN). */
.site-consultation-strip .site-consultation-cta:hover,
.site-consultation-strip .site-consultation-cta:focus-visible,
.home-consultation-strip .home-consultation-cta:hover,
.home-consultation-strip .home-consultation-cta:focus-visible,
body[data-route="/"] .home-consultation-inner .home-consultation-cta:hover,
body[data-route="/en/"] .home-consultation-inner .home-consultation-cta:hover {
  background: #41238E !important;
  background-color: #41238E !important;
}


/* Bandas de consultoria: bordes como la franja de metricas.
   El unico enlace activo es el boton CTA de cada banda. */
.site-consultation-strip,
body[data-route="/"] .home-consultation-strip,
body[data-route="/en/"] .home-consultation-strip {
  border-top:1px solid #1d1d1d !important;
  border-bottom:1px solid #1d1d1d !important;
}
body[data-route="/"] .home-consultation-link,
body[data-route="/en/"] .home-consultation-link {
  display:block;
  width:100%;
  cursor:default !important;
}
body[data-route="/"] .home-consultation-cta,
body[data-route="/en/"] .home-consultation-cta {
  text-decoration:none;
  cursor:pointer !important;
}

/* Color normal de los botones en las bandas de consultoría (ES/EN). */
.site-consultation-strip .site-consultation-cta,
.home-consultation-strip .home-consultation-cta,
body[data-route="/"] .home-consultation-inner .home-consultation-cta,
body[data-route="/en/"] .home-consultation-inner .home-consultation-cta {
  background:#3C2080 !important;
  background-color:#3C2080 !important;
}
.site-consultation-strip .site-consultation-cta:hover,
.site-consultation-strip .site-consultation-cta:focus-visible,
.home-consultation-strip .home-consultation-cta:hover,
.home-consultation-strip .home-consultation-cta:focus-visible,
body[data-route="/"] .home-consultation-inner .home-consultation-cta:hover,
body[data-route="/"] .home-consultation-inner .home-consultation-cta:focus-visible,
body[data-route="/en/"] .home-consultation-inner .home-consultation-cta:hover,
body[data-route="/en/"] .home-consultation-inner .home-consultation-cta:focus-visible {
  background:#41238E !important;
  background-color:#41238E !important;
}


/* Headers de todas las páginas ES/EN: eyebrow blanco; hero-lead con el
   anterior tono del eyebrow (#70789B). Solo afecta los headers. */
#page-main .hero .eyebrow,
#page-main .hero-location .eyebrow,
#page-main .location-hero .eyebrow,
#page-main .hero-content > .eyebrow,
#page-main .hero-content .eyebrow {
  color: #FFFFFF !important;
}
#page-main .hero .hero-lead,
#page-main .hero-location .hero-lead,
#page-main .location-hero .hero-lead,
#page-main .hero-content .hero-lead {
  color: #70789B !important;
}

/* Footer escritorio: posiciones coherentes de las cuatro columnas.
   Logo a 40px desde el inicio, títulos alineados con el pie del logo;
   las primeras líneas de descripción y enlaces al mismo nivel. */
@media (min-width:1181px) {
  .footer { padding-top:40px !important; }
  .footer .footer-grid { align-items:start !important; }
  .footer .footer-grid > .footer-brand { padding-top:0 !important; margin-top:0 !important; }
  .footer .footer-grid > .footer-brand > .xiriz-lockup-footer {
    display:flex !important;
    height:40px !important;
    min-height:40px !important;
    margin:0 0 18px !important;
  }
  .footer .footer-grid > .footer-brand > p {
    margin:0 !important;
    line-height:24px !important;
  }
  .footer .footer-grid > .footer-col {
    padding-top:23px !important;
    margin-top:0 !important;
    align-self:start !important;
  }
  .footer .footer-grid > .footer-col > summary {
    box-sizing:border-box !important;
    height:17px !important;
    line-height:17px !important;
    padding:0 !important;
    margin:0 0 18px !important;
    transform:none !important;
  }
  .footer .footer-grid > .footer-col > div { margin:0 !important; gap:6px !important; }
  .footer .footer-grid > .footer-col > div > a {
    line-height:18px !important;
  }
}

/* Footer escritorio: la descripcion y los primeros enlaces comparten la
   misma linea visual. Se elimina el hueco acumulado bajo el logotipo. */
@media (min-width:1181px) {
  .footer .footer-grid > .footer-brand > .xiriz-lockup-footer {
    margin-bottom:0 !important;
  }
  .footer .footer-grid > .footer-col > summary {
    margin-bottom:24px !important;
  }
  .footer .footer-grid > .footer-brand > p::after {
    line-height:24px !important;
  }
}


/* XIRIZ — Altura unificada de todos los headers visuales: 75vh.
   Se aplica a Inicio, Cobertura, Soluciones, Empresas, Nosotros y demás
   páginas con hero, en todos los tamaños y orientaciones. */
#page-main .hero,
#page-main .hero.hero-home,
#page-main .hero.hero-coverage,
#page-main .hero.hero-portal,
body:is([data-route="/cobertura/"],[data-route="/en/coverage/"]) #page-main .hero.hero-coverage,
body:is([data-route="/portal-clientes/"],[data-route="/en/client-portal/"]) #page-main .hero.hero-portal {
  height:75vh !important;
  min-height:75vh !important;
  max-height:none !important;
}

/* Corrección: la regla previa .hero:not(.hero-home) tenía mayor especificidad
   que .hero y mantenía los headers interiores en 50vh. */
#page-main .hero:not(.hero-home) {
  height: 75vh !important;
  min-height: 75vh !important;
  max-height: none !important;
}
