/* XP Development — errores de formulario, CTA móvil, aviso de cookies, datos de contacto y enlaces legales */
[data-xp-live][hidden],[data-xp-demo][hidden],[data-cfg-show][hidden],[data-cfg-hide][hidden],.xp-form-alert[hidden]{display:none!important}

/* ---------- Formularios ---------- */
.is-invalid input:not([type=checkbox]),.is-invalid select,.is-invalid textarea{border-color:#b4442f!important;box-shadow:0 0 0 1px #b4442f!important}
.is-invalid>label,.is-invalid>span:first-child{color:#b4442f!important}
.ct-consent.is-invalid,.consent.is-invalid{outline:1px solid #b4442f;outline-offset:6px}
span.xp-field-error.xp-field-error{display:block;margin:5px 0 0;font:500 11px/1.35 Inter,Arial,sans-serif!important;color:#b4442f!important;letter-spacing:0!important;text-transform:none!important}
.xp-field-error:empty{display:none}
.ct-consent .xp-field-error,.consent .xp-field-error{flex-basis:100%;order:9}
.xp-form-alert{grid-column:1/-1;width:100%;margin-top:14px;border-left:2px solid #b4442f;background:#fbefec;color:#7d2b1c;padding:10px 12px;font:500 12px/1.45 Inter,Arial,sans-serif}
.xp-form-alert a{text-decoration:underline}
.xp-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
.xp-btn.is-loading{opacity:.8;cursor:progress;transform:none!important}
.xp-spin{display:inline-block;width:12px;height:12px;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:xp-spin .7s linear infinite;vertical-align:-2px;margin-left:6px}
@keyframes xp-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.xp-spin{animation-duration:2s}}
[data-xp-live] a,.ct-note a{text-decoration:underline;text-underline-offset:2px}

/* ---------- Inicio: botones de acción ---------- */
.xp-hero-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px;pointer-events:auto}
.xp-hero-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;min-height:48px;padding:0 20px;border:1px solid rgba(255,255,255,.55);color:#fff!important;text-decoration:none!important;
  font:600 10px Inter,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;backdrop-filter:blur(4px);background:rgba(23,25,26,.25);transition:background .25s,color .25s,transform .25s}
.xp-hero-btn:hover{transform:translateY(-2px);background:rgba(23,25,26,.5)}
.xp-hero-btn--solid{background:#f6f5f1;color:#17191a!important;border-color:#f6f5f1}
.xp-hero-btn--solid:hover{background:#fff}
@media (max-width:760px){.xp-hero-ctas{margin-top:20px;gap:10px}.xp-hero-btn{min-height:44px;padding:0 14px;gap:12px;font-size:9.5px}}

/* ---------- Datos de contacto ---------- */
.xp-contact-list{list-style:none;margin:22px 0 0;padding:16px 0 0;border-top:1px solid currentColor;border-top-color:rgba(127,127,127,.35);display:grid;gap:9px;max-width:460px}
.xp-contact-list li{display:grid;grid-template-columns:82px 1fr;gap:12px;align-items:baseline;font:400 13px/1.5 Inter,Arial,sans-serif}
.xp-contact-list span{font:600 9px Inter,Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;opacity:.7}
.xp-contact-list a{text-decoration:underline;text-underline-offset:2px}

/* ---------- Pie y menús: enlaces legales ---------- */
.xp-foot-legal{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:center;justify-content:center;font:500 10px/1.5 Inter,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;opacity:.75}
.xp-foot-legal a{text-decoration:none}
.xp-foot-legal a:hover{opacity:1;text-decoration:underline}
.xp-foot-legal [data-cfg]{text-transform:none;letter-spacing:.04em}
@media (max-width:850px){.xp-foot{flex-wrap:wrap!important;height:auto!important;min-height:var(--xp-foot);padding-block:22px!important}.xp-foot .xp-foot-legal{order:3;width:100%;justify-content:flex-start;font-size:9px}}
.xp-mnav-legal{display:flex!important;gap:18px;flex-wrap:wrap;padding-top:20px;font:500 10px Inter,Arial,sans-serif!important;letter-spacing:.14em;text-transform:uppercase;border:0!important}
.xp-mnav-legal a{font:inherit!important;opacity:.7;border:0!important;padding:0!important;min-height:0!important}
.footer-right .xp-legal-inline{display:inline-flex;gap:18px}

/* ---------- CTA fijo en móvil ---------- */
.xp-sticky-cta{display:none}
@media (max-width:760px){
  .xp-sticky-cta{display:flex;position:fixed;z-index:80;left:16px;right:16px;bottom:calc(12px + env(safe-area-inset-bottom,0px));
    align-items:center;justify-content:space-between;gap:16px;min-height:52px;padding:0 20px;background:#17191a;color:#fff!important;text-decoration:none!important;
    font:600 11px Inter,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;box-shadow:0 10px 30px rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.18);transition:opacity .25s,transform .25s}
  .xp-sticky-cta span{color:#bac6b4}
  .xp-sticky-cta.xp-cta-away{opacity:0;transform:translateY(130%);pointer-events:none}
  /* Sitio principal: solo en Nosotros, Servicios, Insights y Proyectos */
  body:not(.about-mode):not(.service-mode):not(.insights-mode):not(.project-mode) .xp-sticky-cta[data-main],
  body.contact-mode .xp-sticky-cta,body.project-detail-mode .xp-sticky-cta,
  body:has(.open[role=dialog],[role=dialog].open,.ab-mob-links.open,.ct-mob-links.open,.ix-mob-links.open,.mobile-nav.open,.service-mobile-menu.open,.pj-mobile-menu.open,.site-nav.open,.modal.open) .xp-sticky-cta{display:none}
  body:has(.xp-sticky-cta) .xp-foot{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))!important}
  body:has(.xp-sticky-cta) footer.shell{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
}

/* ---------- Aviso de cookies ---------- */
.xp-cookie{position:fixed;z-index:200;left:16px;bottom:16px;max-width:440px;display:flex;align-items:center;gap:16px;padding:14px 16px 14px 18px;
  background:#17191a;color:#e7eae8;border:1px solid rgba(186,198,180,.35);box-shadow:0 14px 40px rgba(0,0,0,.35);font:400 12px/1.5 Inter,Arial,sans-serif}
.xp-cookie p{margin:0}
.xp-cookie b{color:#fff;font-weight:600}
.xp-cookie a{color:#bac6b4;text-decoration:underline;text-underline-offset:2px}
.xp-cookie-ok{flex:none;background:#bac6b4;color:#17191a;border:0;padding:10px 14px;font:600 10px Inter,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
@media (max-width:760px){
  .xp-cookie{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));max-width:none;font-size:11.5px}
  body:has(.xp-sticky-cta) .xp-cookie{bottom:calc(76px + env(safe-area-inset-bottom,0px))}
}
