
:root {
  --endo-ink: #163f4b;
  --endo-muted: #61767d;
  --endo-teal: #179c92;
  --endo-teal-dark: #087c76;
  --endo-coral: #ed7774;
  --endo-sand: #f8f4ee;
  --endo-mint: #eef8f6;
  --endo-border: #dbe8e5;
  --endo-white: #ffffff;
  --endo-shadow: 0 14px 40px rgba(25, 68, 76, .09);
}
html { scroll-behavior: smooth; }
body { color: var(--endo-ink); }
.endo-page { overflow: hidden; background: #fff; }
.endo-skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 10000; background:#fff; color:var(--endo-ink); padding:.75rem 1rem; border-radius:.4rem; box-shadow:var(--endo-shadow); }
.endo-skip-link:focus { top: 1rem; }
.endo-hero { position: relative; padding: 54px 0 72px; background: radial-gradient(circle at 88% 15%, rgba(91,193,152,.18), transparent 28%), linear-gradient(135deg,#fbfdfd 0%,#f4faf8 58%,#fbf5ef 100%); border-bottom: 1px solid var(--endo-border); }
.endo-hero:after { content:""; position:absolute; width:320px; height:320px; right:-160px; bottom:-180px; border:42px solid rgba(237,119,116,.08); border-radius:50%; }
.endo-breadcrumb { display:flex; gap:.55rem; align-items:center; margin-bottom:35px; font-size:.86rem; color:var(--endo-muted); }
.endo-breadcrumb a { color:var(--endo-teal-dark); }
.endo-eyebrow { display:block; color:var(--endo-teal-dark); font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:.78rem; margin-bottom:.55rem; }
.endo-hero h1 { max-width:760px; font-size:clamp(2.25rem,5vw,4rem); line-height:1.06; color:var(--endo-ink); margin-bottom:.7rem; }
.endo-lead { color:var(--endo-coral); font-size:clamp(1.2rem,2.3vw,1.65rem); font-weight:500; margin-bottom:1.15rem; }
.endo-copy { max-width:760px; font-size:1.02rem; line-height:1.75; color:#415d65; }
.endo-reference-inline { display:flex; gap:.75rem; align-items:center; max-width:710px; margin:1.35rem 0; padding:.85rem 1rem; background:rgba(255,255,255,.78); border:1px solid var(--endo-border); border-left:4px solid var(--endo-coral); border-radius:10px; }
.endo-reference-icon { display:grid; place-items:center; flex:0 0 38px; height:38px; border-radius:50%; color:var(--endo-teal-dark); background:var(--endo-mint); }
.endo-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.5rem; }
.endo-actions .btn, .endo-dialog footer .btn { min-height:48px; display:inline-flex; align-items:center; justify-content:center; border-radius:8px; padding:.7rem 1.25rem; font-weight:600; }
.endo-primary { background:var(--endo-teal-dark)!important; border-color:var(--endo-teal-dark)!important; }
.endo-primary:hover { background:#056d68!important; }
.endo-secondary { color:var(--endo-teal-dark)!important; background:#fff!important; border:1px solid var(--endo-teal-dark)!important; }
.endo-secondary:hover { color:#fff!important; background:var(--endo-teal-dark)!important; }
.endo-hero-panel { position:relative; z-index:1; padding:1.6rem; background:rgba(255,255,255,.9); border:1px solid rgba(255,255,255,.9); border-radius:18px; box-shadow:var(--endo-shadow); backdrop-filter:blur(6px); }
.endo-hero-panel > div { display:flex; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--endo-border); }
.endo-hero-panel > div:last-child { border:0; }
.endo-hero-panel i { display:grid; place-items:center; width:42px; height:42px; flex:0 0 42px; border-radius:12px; background:var(--endo-mint); color:var(--endo-teal-dark); }
.endo-hero-panel strong,.endo-hero-panel small { display:block; }
.endo-hero-panel small { margin-top:.2rem; color:var(--endo-muted); line-height:1.45; }
.endo-section { padding:78px 0; }
.endo-orientador { background:#fff; }
.endo-heading { max-width:800px; margin:0 auto 2.5rem; text-align:center; }
.endo-heading-left { margin-left:0; text-align:left; }
.endo-heading h2 { color:var(--endo-ink); font-size:clamp(1.8rem,3vw,2.65rem); margin-bottom:.7rem; }
.endo-heading p { color:var(--endo-muted); font-size:1rem; line-height:1.7; }
.endo-route-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.endo-route-card { min-height:270px; display:flex; flex-direction:column; padding:1.35rem; border:1px solid var(--endo-border); border-radius:16px; background:#fff; box-shadow:0 7px 22px rgba(30,72,79,.055); transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.endo-route-card:hover { transform:translateY(-4px); border-color:#a9d7d0; box-shadow:var(--endo-shadow); }
.endo-route-card-featured { background:linear-gradient(145deg,#fff,#f4eff8); }
.endo-route-card-help { background:linear-gradient(145deg,#fff,#fff7e9); }
.endo-route-icon { display:grid; place-items:center; width:58px; height:58px; border-radius:18px; margin-bottom:1rem; color:var(--endo-teal-dark); background:var(--endo-mint); font-size:1.35rem; }
.endo-route-card:nth-child(3n) .endo-route-icon { color:#c95e5b; background:#fff0ef; }
.endo-route-card:nth-child(4n) .endo-route-icon { color:#76568f; background:#f3edf8; }
.endo-route-card h3 { color:var(--endo-ink); font-size:1.05rem; line-height:1.35; margin-bottom:.65rem; }
.endo-route-card p { flex:1; color:var(--endo-muted); font-size:.89rem; line-height:1.55; }
.endo-route-button { display:flex; width:100%; align-items:center; justify-content:space-between; padding:.7rem 0 0; border:0; border-top:1px solid var(--endo-border); background:transparent; color:var(--endo-teal-dark); font-weight:700; cursor:pointer; }
.endo-route-button:focus-visible { outline:3px solid rgba(23,156,146,.25); outline-offset:5px; }
.endo-journey { background:var(--endo-sand); }
.endo-steps { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1rem; }
.endo-steps li { position:relative; padding:1.25rem; border-radius:14px; background:#fff; border:1px solid #ece5dd; }
.endo-steps li > span { display:grid; place-items:center; width:38px; height:38px; margin-bottom:.85rem; border-radius:50%; background:var(--endo-mint); color:var(--endo-teal-dark); font-weight:800; }
.endo-steps h3 { font-size:1rem; line-height:1.35; }
.endo-steps p { margin:0; color:var(--endo-muted); font-size:.86rem; line-height:1.55; }
.endo-priority-note { display:flex; gap:1rem; align-items:flex-start; margin-top:1.25rem; padding:1.2rem 1.35rem; border-radius:14px; background:#fff; border:1px solid #ece5dd; }
.endo-priority-note i { color:var(--endo-teal); font-size:1.35rem; margin-top:.15rem; }
.endo-priority-note p { margin:.25rem 0 0; color:var(--endo-muted); }
.endo-reference-card { height:100%; padding:2rem; border-radius:20px; background:linear-gradient(160deg,#f4faf8,#fff7ef); border:1px solid var(--endo-border); box-shadow:var(--endo-shadow); }
.endo-reference-card h2 { font-size:2.35rem; color:var(--endo-ink); }
.endo-role { color:var(--endo-teal-dark); font-weight:600; }
.endo-reference-card p { line-height:1.7; }
.endo-soft-note { margin-top:1.2rem; padding:1rem; border-radius:10px; background:#fff; color:var(--endo-muted); font-size:.9rem; line-height:1.55; }
.endo-team-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.endo-team-card { position:relative; display:flex; flex-direction:column; padding:1.25rem; border:1px solid var(--endo-border); border-radius:16px; background:#fff; box-shadow:0 7px 22px rgba(30,72,79,.05); }
.endo-team-card-reference { border-top:4px solid var(--endo-coral); }
.endo-team-card-support { border-top:4px solid var(--endo-teal); }
.endo-team-badge { align-self:flex-start; margin-bottom:.8rem; padding:.35rem .55rem; border-radius:999px; background:#fff0ef; color:#bd5552; font-size:.72rem; font-weight:700; }
.endo-team-card-support .endo-team-badge { background:var(--endo-mint); color:var(--endo-teal-dark); }
.endo-team-card h3 { font-size:1.15rem; margin-bottom:.15rem; }
.endo-team-card ul { padding-left:1.1rem; margin:.8rem 0; color:var(--endo-muted); font-size:.85rem; line-height:1.6; }
.endo-team-meta { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:auto; }
.endo-team-meta span { padding:.3rem .5rem; border-radius:6px; background:#f3f7f6; color:var(--endo-muted); font-size:.74rem; }
.endo-price { min-height:94px; margin:1rem 0; color:#516a71; font-size:.82rem; line-height:1.55; }
.endo-team-card .btn { margin-top:auto; border-radius:8px; }
.endo-boundaries { background:#f7faf9; }
.endo-boundary-card { height:100%; padding:1.6rem; border-radius:16px; background:#fff; border:1px solid var(--endo-border); }
.endo-boundary-card h3 { font-size:1.2rem; }
.endo-boundary-card h3 i { margin-right:.4rem; }
.endo-boundary-positive h3 { color:var(--endo-teal-dark); }
.endo-boundary-limit h3 { color:#b85d59; }
.endo-boundary-card ul { margin:1rem 0 0; padding-left:1.15rem; color:var(--endo-muted); line-height:1.7; }
.endo-urgent-note { margin-top:1.25rem; padding:1rem 1.2rem; border-radius:10px; border-left:4px solid var(--endo-coral); background:#fff5f4; color:#704b4a; }
.endo-admin-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.endo-admin-grid article { padding:1.35rem; border:1px solid var(--endo-border); border-radius:14px; background:#fff; }
.endo-admin-grid i { display:grid; place-items:center; width:42px; height:42px; margin-bottom:.8rem; border-radius:12px; background:var(--endo-mint); color:var(--endo-teal-dark); }
.endo-admin-grid h3 { font-size:1rem; line-height:1.35; }
.endo-admin-grid p { margin:0; color:var(--endo-muted); font-size:.86rem; line-height:1.55; }
.endo-final-cta { padding:50px 0; background:linear-gradient(135deg,#eef8f6,#fff4ec); }
.endo-final-cta .container { display:flex; justify-content:space-between; gap:2rem; align-items:center; }
.endo-final-cta h2 { color:var(--endo-ink); font-size:clamp(1.65rem,3vw,2.45rem); }
.endo-final-cta p { margin:0; color:var(--endo-muted); }
.endo-dialog { width:min(760px,calc(100vw - 2rem)); max-height:calc(100vh - 2rem); padding:0; border:0; border-radius:18px; color:var(--endo-ink); box-shadow:0 30px 100px rgba(15,45,52,.32); }
.endo-dialog::backdrop { background:rgba(12,35,42,.68); backdrop-filter:blur(3px); }
.endo-dialog-shell { display:flex; flex-direction:column; max-height:calc(100vh - 2rem); }
.endo-dialog header { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; padding:1.45rem 1.55rem 1rem; border-bottom:1px solid var(--endo-border); background:#fff; }
.endo-dialog header h2 { margin:0; font-size:clamp(1.45rem,3vw,2.1rem); color:var(--endo-ink); }
.endo-dialog-close { flex:0 0 38px; width:38px; height:38px; border:1px solid var(--endo-border); border-radius:50%; background:#fff; color:var(--endo-ink); font-size:1.6rem; line-height:1; cursor:pointer; }
.endo-dialog-close:hover { background:var(--endo-mint); }
.endo-dialog-body { overflow:auto; padding:1.4rem 1.55rem; background:#fff; }
.endo-dialog-body h3 { margin:1.15rem 0 .45rem; font-size:1.05rem; color:var(--endo-teal-dark); }
.endo-dialog-body ul { padding-left:1.2rem; line-height:1.7; color:#536c73; }
.endo-dialog-intro { font-size:1.02rem; line-height:1.7; color:#405c63; }
.endo-dialog-note { margin-top:1rem; padding:1rem; border-radius:10px; background:var(--endo-sand); color:#5f6868; line-height:1.6; }
.endo-reference-line { margin-top:1rem; color:var(--endo-teal-dark); }
.endo-dialog footer { display:flex; flex-wrap:wrap; gap:.75rem; padding:1rem 1.55rem 1.35rem; background:#fff; border-top:1px solid var(--endo-border); }
.endo-dialog-columns { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.endo-dialog-columns section,.endo-option-grid section { padding:1rem; border:1px solid var(--endo-border); border-radius:12px; background:#fbfdfc; }
.endo-option-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.8rem; margin:1rem 0; }
.endo-option-grid span { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--endo-mint); color:var(--endo-teal-dark); font-weight:800; }
.endo-option-grid h3 { margin:.65rem 0 .35rem; }
.endo-option-grid p { margin:0; color:var(--endo-muted); font-size:.88rem; line-height:1.55; }
body.endo-dialog-open { overflow:hidden; }
@media (max-width: 1199px) {
  .endo-route-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .endo-steps { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .endo-team-grid { grid-template-columns:1fr; }
  .endo-price { min-height:0; }
}
@media (max-width: 991px) {
  .endo-hero { padding-top:38px; }
  .endo-hero-panel { margin-top:1.5rem; }
  .endo-route-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .endo-admin-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .endo-final-cta .container { display:block; }
}
@media (max-width: 767px) {
  .endo-section { padding:58px 0; }
  .endo-hero h1 { font-size:2.35rem; }
  .endo-copy { font-size:.96rem; }
  .endo-route-grid,.endo-steps,.endo-admin-grid { grid-template-columns:1fr; }
  .endo-route-card { min-height:0; }
  .endo-dialog { width:100vw; max-width:none; max-height:100dvh; height:100dvh; border-radius:0; }
  .endo-dialog-shell { max-height:100dvh; height:100%; }
  .endo-dialog header { position:sticky; top:0; z-index:2; padding:1rem; }
  .endo-dialog-body { padding:1.15rem 1rem; }
  .endo-dialog footer { position:sticky; bottom:0; z-index:2; padding:.8rem 1rem calc(.8rem + env(safe-area-inset-bottom)); }
  .endo-dialog footer .btn { width:100%; }
  .endo-dialog-columns,.endo-option-grid { grid-template-columns:1fr; }
  .endo-reference-card { padding:1.45rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .endo-route-card { transition:none; }
}

/* Ajuste del menú heredado: evita que el desplegable de Blog se salga del viewport. */
@media (min-width: 992px) {
  .nav-big .dropdown-menu { max-width: calc(100vw - 32px); }
  .nav-big .dropdown-align-right .dropdown-menu { left: auto; right: 0; }
}
html, body { max-width: 100%; overflow-x: hidden; }
