/* Optimus Vita Content System v2 — page-scoped. Home and evaluator are excluded by PHP. */
body.ovcs-enabled {
  --ov-navy:#071c55; --ov-blue:#1368e8; --ov-blue-dark:#0b4fb8; --ov-teal:#0c9b9b;
  --ov-teal-text:#087a7a; --ov-orange:#f28a18; --ov-ink:#17213b; --ov-muted:#59657d;
  --ov-line:#dce4f2; --ov-soft:#f5f8fd; --ov-white:#fff; --ov-success:#16744a;
  --ov-warning:#8a4b08; --ov-danger:#a22b2b; --ov-shadow:0 18px 48px rgba(7,28,85,.10);
  background:#f7f9fc; color:var(--ov-ink);
}
body.ovcs-enabled .site-content { max-width:1240px; padding-inline:clamp(18px,3vw,42px); }
body.ovcs-enabled #primary { width:100%; }
body.ovcs-enabled #right-sidebar, body.ovcs-enabled .widget-area { display:none!important; }
body.ovcs-enabled .comments-area, body.ovcs-enabled .comment-respond, body.ovcs-enabled .comments-link { display:none!important; }
body.ovcs-enabled .site-main { margin:0; }
body.ovcs-enabled .ovcs-reading-progress { background:rgba(19,104,232,.13); height:4px; left:0; pointer-events:none; position:fixed; right:0; top:0; z-index:99990; }
body.ovcs-enabled .ovcs-reading-progress > span { background:linear-gradient(90deg,var(--ov-blue),var(--ov-teal)); display:block; height:100%; transform:scaleX(0); transform-origin:left center; width:100%; }
body.admin-bar.ovcs-enabled .ovcs-reading-progress { top:32px; }
body.ovcs-enabled .inside-article, body.ovcs-enabled .page-header {
  border:1px solid var(--ov-line); border-radius:24px; box-shadow:0 12px 34px rgba(7,28,85,.07);
  background:var(--ov-white); padding:clamp(24px,4vw,58px); margin-bottom:28px;
}
body.ovcs-enabled.single-post .entry-header, body.ovcs-enabled.page .entry-header { max-width:820px; margin:0 auto 26px; }
body.ovcs-enabled .entry-title { color:var(--ov-navy); font-size:clamp(2rem,1.55rem + 2vw,3.65rem); line-height:1.06; letter-spacing:-.035em; }
body.ovcs-enabled .entry-meta { color:var(--ov-muted); display:flex; flex-wrap:wrap; gap:.4rem .8rem; font-size:.88rem; margin-top:16px; }
body.ovcs-enabled .entry-meta a { color:var(--ov-teal-text); font-weight:700; }
body.ovcs-enabled .entry-meta .posted-on .updated::before { content:"Actualizado "; }
body.ovcs-enabled .entry-meta .posted-on .entry-date.published::before { content:" · Publicado "; }
body.ovcs-enabled .entry-content, body.ovcs-enabled .ov-content-v2, body.ovcs-enabled .ov-content-v1 {
  color:var(--ov-ink); font-size:clamp(1rem,.97rem + .13vw,1.075rem); line-height:1.75;
}
body.ovcs-enabled.single-post .entry-content > *, body.ovcs-enabled .ov-content-v2 > *, body.ovcs-enabled .ov-content-v1 > * { max-width:760px; margin-inline:auto; }
body.ovcs-enabled .entry-content > .alignwide, body.ovcs-enabled .entry-content > .alignfull,
body.ovcs-enabled .ov-content-v2 > :is(.ov-grid,.ov-route-grid,.ov-metrics,.ov-case,.ov-rubric,.ov-template,.ov-download,.ov-next,.ov-table-wrap,figure,.wp-block-image,.wp-block-gallery),
body.ovcs-enabled .ov-content-v1 > :is(.ov-grid,.ov-route-grid,.ov-metrics,.ov-case,.ov-rubric,.ov-template,.ov-download,.ov-next,.ov-table-wrap,figure,.wp-block-image,.wp-block-gallery) { max-width:1120px; }
body.ovcs-enabled :is(.entry-content,.ov-content-v2,.ov-content-v1) h2 { color:var(--ov-navy); font-size:clamp(1.55rem,1.25rem + 1vw,2.25rem); line-height:1.18; margin-top:3.4rem; scroll-margin-top:6rem; }
body.ovcs-enabled :is(.entry-content,.ov-content-v2,.ov-content-v1) h3 { color:var(--ov-navy); font-size:clamp(1.18rem,1.05rem + .45vw,1.48rem); line-height:1.25; margin-top:2.2rem; scroll-margin-top:6rem; }
body.ovcs-enabled :is(.entry-content,.ov-content-v2,.ov-content-v1) p,
body.ovcs-enabled :is(.entry-content,.ov-content-v2,.ov-content-v1) li { max-width:76ch; }
body.ovcs-enabled :is(.entry-content,.ov-content-v2,.ov-content-v1) a { color:var(--ov-blue-dark); text-decoration-thickness:.1em; text-underline-offset:.16em; }
body.ovcs-enabled :is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid var(--ov-orange); outline-offset:3px; }
body.ovcs-enabled .entry-content > p:first-of-type { font-size:clamp(1.12rem,1.05rem + .25vw,1.24rem); color:#35415a; }
body.ovcs-enabled :is(blockquote,.wp-block-quote) { background:#f1fbfa; border:0; border-left:6px solid var(--ov-teal); border-radius:16px; color:#27404c; padding:1.25rem 1.4rem; }
body.ovcs-enabled :is(pre,code) { border-radius:8px; }
body.ovcs-enabled pre { background:#081b4a; color:#eef4ff; overflow:auto; padding:1.1rem; }
body.ovcs-enabled :is(.wp-block-button__link,.button,.ov-button) { background:var(--ov-blue); border:2px solid var(--ov-blue); border-radius:999px; color:#fff; font-weight:800; min-height:44px; padding:.75rem 1.1rem; text-decoration:none; }
body.ovcs-enabled :is(.wp-block-button__link,.button,.ov-button):hover { background:#fff; color:var(--ov-navy); }
body.ovcs-enabled figure img, body.ovcs-enabled .entry-content img { border-radius:18px; height:auto; max-width:100%; }
body.ovcs-enabled figcaption, body.ovcs-enabled .wp-caption-text { color:var(--ov-muted); font-size:.86rem; line-height:1.45; }
body.ovcs-enabled .ov-table-wrap { border:1px solid var(--ov-line); border-radius:16px; margin:1.7rem auto; overflow:auto; -webkit-overflow-scrolling:touch; }
body.ovcs-enabled .ov-table-wrap table { margin:0; min-width:660px; width:100%; }
body.ovcs-enabled .ovcs-table-hint { color:var(--ov-muted); display:none; font-size:.8rem; font-weight:700; margin:.15rem 0 .55rem; text-align:right; }
body.ovcs-enabled table { border-collapse:collapse; font-size:.94rem; }
body.ovcs-enabled th, body.ovcs-enabled td { border:1px solid var(--ov-line); padding:.82rem .95rem; text-align:left; vertical-align:top; }
body.ovcs-enabled th { background:var(--ov-navy); color:#fff; }
body.ovcs-enabled details { background:var(--ov-soft); border:1px solid var(--ov-line); border-radius:14px; margin:1rem auto; padding:1rem 1.15rem; }
body.ovcs-enabled summary { color:var(--ov-navy); cursor:pointer; font-weight:800; }
body.ovcs-enabled .ovcs-toc { max-width:760px!important; }
body.ovcs-enabled .ovcs-toc ol { columns:2; gap:2rem; margin-bottom:0; }
body.ovcs-enabled .ovcs-heading-anchor { color:var(--ov-muted); font-size:.75em; margin-left:.35rem; opacity:0; text-decoration:none; }
body.ovcs-enabled h2:hover .ovcs-heading-anchor, body.ovcs-enabled h3:hover .ovcs-heading-anchor, body.ovcs-enabled .ovcs-heading-anchor:focus { opacity:1; }

/* Existing semantic wrappers become product-like components. */
body.ovcs-enabled :is(.ov-route-grid,.ov-grid,.ov-metrics) { display:grid; gap:1rem; grid-template-columns:repeat(2,minmax(0,1fr)); margin-block:1.6rem; }
body.ovcs-enabled :is(.ov-route-grid,.ov-grid,.ov-metrics) > * { background:#fff; border:1px solid var(--ov-line); border-radius:18px; box-shadow:0 10px 28px rgba(7,28,85,.06); padding:1.25rem; }
body.ovcs-enabled :is(.ov-case,.ov-rubric,.ov-template,.ov-download,.ov-next,.ov-callout,.ov-quick-answer) { background:linear-gradient(135deg,#eef5ff,#f3fbfb); border:1px solid #cdddf5; border-left:6px solid var(--ov-blue); border-radius:20px; box-shadow:var(--ov-shadow); margin:1.6rem auto; padding:clamp(1.2rem,3vw,2rem); }
body.ovcs-enabled :is(.ov-download,.ov-next) { background:var(--ov-navy); border:0; color:#eef4ff; }
body.ovcs-enabled :is(.ov-download,.ov-next) :is(h2,h3,strong) { color:#fff; }
body.ovcs-enabled .ov-kicker, body.ovcs-enabled .ovcs-kicker { color:var(--ov-teal-text); font-size:.78rem; font-weight:850; letter-spacing:.09em; margin:0 0 .55rem; text-transform:uppercase; }

/* Trust, authorship and contextual actions. */
body.ovcs-enabled .ovcs-entry-context { background:linear-gradient(135deg,#f7faff,#f3fbfb); border:1px solid var(--ov-line); border-radius:18px; margin:0 auto 2rem; max-width:760px; padding:1rem 1.1rem; }
body.ovcs-enabled .ovcs-entry-facts { color:#46536b; display:flex; flex-wrap:wrap; font-size:.8rem; font-weight:800; gap:.45rem .7rem; }
body.ovcs-enabled .ovcs-entry-facts span { align-items:center; display:inline-flex; }
body.ovcs-enabled .ovcs-entry-facts span:not(:last-child)::after { color:#a2aec3; content:"·"; margin-left:.7rem; }
body.ovcs-enabled .ovcs-method-note { background:transparent; border:0; border-top:1px solid var(--ov-line); border-radius:0; box-shadow:none; margin:.8rem 0 0; padding:.8rem 0 0; }
body.ovcs-enabled .ovcs-method-note p { color:#46536b; font-size:.9rem; margin:.7rem 0; }
body.ovcs-enabled .ovcs-method-note a { font-size:.88rem; font-weight:800; }
body.ovcs-enabled .ovcs-social { align-items:center; display:flex; flex-wrap:wrap; gap:.75rem 1rem; margin-top:1.1rem; }
body.ovcs-enabled .ovcs-social-label { color:#46536b; font-size:.82rem; font-weight:800; }
body.ovcs-enabled .ovcs-social-list { display:flex; flex-wrap:wrap; gap:.5rem; }
body.ovcs-enabled .ovcs-social-link { align-items:center; background:#fff; border:1px solid var(--ov-line); border-radius:999px; color:var(--ov-navy)!important; display:inline-flex; font-size:.82rem; font-weight:850; min-height:44px; padding:.58rem .82rem; text-decoration:none!important; }
body.ovcs-enabled .ovcs-social-link:hover { border-color:#8eafe2; box-shadow:0 7px 20px rgba(7,28,85,.08); transform:translateY(-1px); }
body.ovcs-enabled .ovcs-participate { background:linear-gradient(135deg,#071c55,#0d327f); border-radius:24px; box-shadow:0 20px 48px rgba(7,28,85,.18); color:#eef4ff; margin:3rem auto 0; max-width:1120px; padding:clamp(1.4rem,4vw,2.5rem); }
body.ovcs-enabled .ovcs-participate .ovcs-kicker { color:#71e0d9; }
body.ovcs-enabled .ovcs-participate-title { color:#fff; font-size:clamp(1.45rem,1.15rem + 1vw,2.2rem); font-weight:850; line-height:1.15; margin:.2rem 0 .8rem; max-width:30ch; }
body.ovcs-enabled .ovcs-participate > p:not(.ovcs-kicker):not(.ovcs-participate-title) { color:#d8e3f8; max-width:68ch; }
body.ovcs-enabled .ovcs-participate .ovcs-social-label { color:#d8e3f8; }
body.ovcs-enabled .ovcs-participate .ovcs-social-link { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.28); color:#fff!important; }
body.ovcs-enabled .ovcs-utility-links { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1rem; }
body.ovcs-enabled .ovcs-utility-links a { align-items:center; background:#fff; border:2px solid #fff; border-radius:999px; color:var(--ov-navy)!important; display:inline-flex; font-size:.86rem; font-weight:850; min-height:44px; padding:.65rem .92rem; text-decoration:none!important; }
body.ovcs-enabled .ovcs-utility-links a:hover { background:transparent; color:#fff!important; }

/* Blog archive as a library. */
body.ovcs-blog-library .ovcs-library-head { background:linear-gradient(135deg,#eef5ff,#f3fbfb); border:1px solid #cdddf5; border-radius:28px; box-shadow:var(--ov-shadow); grid-column:1/-1; margin:0 0 30px; padding:clamp(28px,5vw,58px); }
body.ovcs-blog-library .ovcs-library-head h1 { color:var(--ov-navy); font-size:clamp(2.15rem,1.6rem + 2vw,3.7rem); line-height:1.05; margin:.2rem 0 1rem; max-width:900px; }
body.ovcs-blog-library .ovcs-library-head > p { color:#35415a; font-size:1.08rem; max-width:760px; }
body.ovcs-blog-library .ovcs-filter { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1.4rem; }
body.ovcs-blog-library .ovcs-filter button { background:#fff; border:1px solid var(--ov-line); border-radius:999px; color:var(--ov-navy); cursor:pointer; font-weight:750; min-height:44px; padding:.65rem .9rem; }
body.ovcs-blog-library .ovcs-filter button[aria-pressed="true"] { background:var(--ov-navy); border-color:var(--ov-navy); color:#fff; }
body.ovcs-blog-library .site-main { display:grid; gap:22px; grid-template-columns:repeat(2,minmax(0,1fr)); }
body.ovcs-blog-library .site-main > .page-header, body.ovcs-blog-library .site-main > .paging-navigation { grid-column:1/-1; }
body.ovcs-blog-library article.ovcs-card { display:flex; flex-direction:column; margin:0; min-width:0; }
body.ovcs-blog-library article.ovcs-card .inside-article { display:flex; flex:1; flex-direction:column; padding:clamp(22px,3vw,36px); }
body.ovcs-blog-library article.ovcs-card .entry-title { font-size:clamp(1.35rem,1.18rem + .55vw,1.8rem); line-height:1.16; }
body.ovcs-blog-library article.ovcs-card .entry-summary { color:#44506a; }
body.ovcs-blog-library article.ovcs-card .entry-meta { margin-top:auto; padding-top:1rem; }
body.ovcs-blog-library article.ovcs-card .post-image img { aspect-ratio:16/9; object-fit:cover; width:100%; }
body.ovcs-blog-library article[hidden] { display:none!important; }
body.ovcs-blog-library .tags-links { display:none; }

/* Related navigation. */
body.ovcs-enabled .ovcs-related { border-top:1px solid var(--ov-line); margin:3.5rem auto 0; max-width:1120px; padding-top:2rem; }
body.ovcs-enabled .ovcs-related h2 { margin-top:.15rem; }
body.ovcs-enabled .ovcs-related-grid { display:grid; gap:1rem; grid-template-columns:repeat(3,minmax(0,1fr)); }
body.ovcs-enabled .ovcs-related-card { background:#fff; border:1px solid var(--ov-line); border-radius:18px; color:var(--ov-navy); display:flex; flex-direction:column; gap:.65rem; min-height:170px; padding:1.15rem; text-decoration:none; }
body.ovcs-enabled .ovcs-related-card:hover { border-color:#9ab8e8; box-shadow:0 10px 28px rgba(7,28,85,.08); transform:translateY(-2px); }
body.ovcs-enabled .ovcs-related-type { color:var(--ov-teal-text); font-size:.75rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
body.ovcs-enabled .ovcs-related-card > span:last-child { color:var(--ov-blue-dark); margin-top:auto; font-weight:750; }

@media (max-width:860px) {
  body.ovcs-blog-library .site-main, body.ovcs-enabled :is(.ov-route-grid,.ov-grid,.ov-metrics), body.ovcs-enabled .ovcs-related-grid { grid-template-columns:minmax(0,1fr); }
  body.ovcs-blog-library .site-main > *,
  body.ovcs-blog-library .ovcs-library-head,
  body.ovcs-blog-library .ovcs-library-head > *,
  body.ovcs-blog-library article.ovcs-card,
  body.ovcs-blog-library article.ovcs-card .inside-article {
    box-sizing:border-box;
    max-width:100%;
    min-width:0;
  }
  body.ovcs-enabled .ovcs-toc ol { columns:1; }
}
@media (max-width:600px) {
  body.admin-bar.ovcs-enabled .ovcs-reading-progress { top:46px; }
  body.ovcs-enabled .site-content { padding-inline:14px; }
  body.ovcs-enabled .inside-article { border-radius:18px; padding:22px 18px; }
  body.ovcs-enabled .entry-title { font-size:clamp(1.8rem,10vw,2.5rem); }
  body.ovcs-blog-library .ovcs-library-head { border-radius:20px; padding:26px 20px; }
  body.ovcs-blog-library .ovcs-library-head h1 { font-size:clamp(1.9rem,9vw,2.6rem); }
  body.ovcs-blog-library .ovcs-filter {
    display:flex; flex-wrap:nowrap; gap:.5rem; margin-inline:-20px; overflow-x:auto;
    padding:0 20px .55rem; scroll-padding-inline:20px; scroll-snap-type:x proximity;
    scrollbar-width:thin; -webkit-overflow-scrolling:touch;
  }
  body.ovcs-blog-library .ovcs-filter button {
    flex:0 0 auto; min-height:44px; padding:.58rem .8rem; scroll-snap-align:start;
  }
  body.ovcs-blog-library .ovcs-filter button:first-child { grid-column:auto; }
  body.ovcs-enabled .ovcs-entry-facts span:not(:last-child)::after { display:none; }
  body.ovcs-enabled .ovcs-entry-facts { gap:.45rem .8rem; }
  body.ovcs-enabled .ovcs-social { align-items:flex-start; flex-direction:column; }
  body.ovcs-enabled .ovcs-social-list { width:100%; }
  body.ovcs-enabled .ovcs-social-link { justify-content:center; text-align:center; }
  body.ovcs-enabled .ovcs-table-hint { display:block; }
}
@media (prefers-reduced-motion:reduce) {
  body.ovcs-enabled *, body.ovcs-enabled *::before, body.ovcs-enabled *::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; }
}
@media print {
  body.ovcs-enabled { background:#fff; }
  body.ovcs-enabled .site-header, body.ovcs-enabled .main-navigation, body.ovcs-enabled .ovcs-filter, body.ovcs-enabled .ovcs-related, body.ovcs-enabled .site-footer { display:none!important; }
  body.ovcs-enabled .inside-article { border:0; box-shadow:none; padding:0; }
  body.ovcs-enabled a { color:#000; text-decoration:underline; }
}
