/* Hoja global unica. Modificar reglas existentes; no agregar parches por pagina. */

/* 01. VARIABLES, BASE Y ACCESIBILIDAD */
:root { --dv-layout-width: 760px; --dv-hover-duration: 300ms; --dv-hover-easing: ease-in-out; --dv-font-content: system-ui, -apple-system, "Segoe UI", Arial, sans-serif; --dv-font-ui: Arial, Helvetica, sans-serif; --dv-text: #4b5563; --dv-text-body: #65707c; --dv-heading: #3e4857; --dv-accent: #c18a2c; }
.dv-hover, button, input[type="button"], input[type="submit"], input[type="reset"], [role="button"], .wp-element-button, .wp-block-button__link, .dv-nav a, .dv-mobile-nav nav a, .dv-menu-toggle, .dv-footer-bottom nav a, .dv-most-viewed a { transition-property: color, background-color, border-color; transition-duration: var(--dv-hover-duration); transition-timing-function: var(--dv-hover-easing); }
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #f1f4fa; color: var(--dv-text); font-family: var(--dv-font-ui); line-height: 1.6; }
a { color: inherit; }
img, svg { max-width: 100%; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip-path: inset(50%); word-wrap: normal !important; word-break: normal !important; }
.skip-link.screen-reader-text:focus { background: #eee; clip-path: none; color: #444; display: block; font-size: 1em; height: auto; left: 5px; line-height: normal; padding: 15px 23px 14px; text-decoration: none; top: 5px; width: auto; z-index: 100000; }
img:is([sizes=auto i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px; }
#wp-admin-bar-user-info .avatar { object-fit: cover; }

/* 02. CABECERA Y MENU */
.dv-header { position: sticky; top: 0; z-index: 50; background: #000; color: #aeb4ba; box-shadow: 0 2px 7px #0002; }
.dv-header-inner { width: min(100%, var(--dv-layout-width)); min-height: 55px; margin: auto; padding: 0 20px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.dv-brand, .dv-brand::before, .dv-footer-profile h2 { background: linear-gradient(105deg, #a4aeb8 38%, #fff 50%, #a4aeb8 62%) 100% 0 / 300% 100% no-repeat; animation: dv-marca-interior 3.8s ease-in-out infinite; }
.dv-brand { color: #c4c9ce; text-decoration: none; font: 700 20px/1 system-ui, sans-serif; white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.dv-brand::before { content: ""; flex: 0 0 33px; height: 33px; mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 360 360%22%3E%3Cpath fill=%22%23c4c9ce%22 fill-rule=%22evenodd%22 d=%22M286,15.7 L291.9,16 L294.8,20 L294.7,58 L297,65.8 L304,69.1 L337,70.6 L341,75.9 L339.6,83 L306.4,116 L285,132.6 L269,134.1 L243,131.4 L232.6,137 L183.2,185 L183.5,191 L193.5,194 L195.6,199 L189.5,211 L180,218.9 L162,221.7 L146,217.9 L137,209 L132,195 L132.2,183 L137.4,170 L149,159.4 L157,157.4 L161,158.2 L163,161 L163.2,167 L159.4,176 L151.7,184 L151.3,192 L154.4,197 L161,200.6 L168,200.4 L174.5,197 L175.7,192 L166.6,181 L165.3,174 L186,156.3 L223.9,119 L227.1,111 L226.1,81 L231,68.2 L249,48.3 L286,15.7Z M149,40.9 L181,41.4 L210,48.6 L213.4,51 L215,56 L209,67 L201,70.6 L174,64.3 L152,64.1 L124,70.7 L105,78.8 L81,96.1 L72,105.4 L55.9,128 L46.1,149 L41.1,169 L39.4,187 L42.5,219 L47.3,236 L56,253 L65.7,267 L81.2,284 L110,302.5 L127,309.6 L153,315.5 L169,315.7 L188,312.3 L199,309.7 L216,302.3 L234.6,291 L252.3,276 L261.5,265 L277,237 L284.2,215 L286.2,198 L285.1,176 L280.4,159 L281.3,154 L295.4,147 L300,147.8 L308.6,178 L308.4,205 L300.6,240 L291.1,263 L276,284.8 L252,308.3 L228.2,323 L205,332.8 L173,338.9 L150,338.5 L120,333 L96.8,323 L73,307.8 L49,283.5 L34,260.7 L24,239 L18.6,220 L15.5,200 L16.1,173 L24.5,141 L34.6,119 L48.7,97 L73,72.8 L96,57.6 L115,48.2 L149,40.9Z M271,56 L260,63.9 L246.7,78 L244.6,87 L248,95.5 L254,94.8 L275.5,72 L277.5,60 L275,56.3 L271,56Z M288,85.9 L281,88.5 L264.3,104 L260.4,111 L261.8,115 L270,117.5 L276,116.4 L301.3,95 L303,91 L300.7,87 L288,85.9Z M158,97.9 L174,98.4 L194,103.7 L198.7,107 L199.1,112 L195.4,118 L187,124.3 L174,121.7 L159,121.2 L135,127.2 L121,136.7 L111.9,146 L104.7,157 L96.6,178 L96.9,204 L105,225 L121.5,244 L136,253.1 L153,256.9 L169,257.3 L190,252.9 L202,245.2 L212,236 L222.4,222 L229.9,200 L229.9,174 L233.2,167 L240,160.2 L245,160.7 L250.9,172 L252.9,183 L252.5,203 L250.1,213 L243.8,229 L227.5,252 L204,269.8 L188,276.7 L167,280.1 L152,279.5 L133.6,276 L118,268.5 L99,253 L89,241.5 L80.2,226 L75.9,212 L73.8,192 L75.8,171 L80,156.5 L89,139 L98,128.2 L116.3,112 L132,104.4 L158,97.9Z%22/%3E%3C/svg%3E") center / contain no-repeat; }
.dv-nav { display: none; }
.dv-nav a, .dv-mobile-nav nav a { font: 400 12px/1.4 var(--dv-font-ui); text-decoration: none; text-transform: uppercase; }
.dv-nav a:hover, .dv-nav a:focus-visible { color: #fff; }
.dv-nav .dv-nav-featured, .dv-mobile-nav .dv-nav-featured { position: relative; isolation: isolate; overflow: hidden; border-radius: 5px; font-weight: 600; }
.dv-nav .dv-nav-featured { background: #d9e4ee; color: #070c12; display: inline-flex; align-items: center; justify-content: center; min-height: 28px; padding: 4px 12px; }
.dv-nav .dv-nav-featured:hover, .dv-nav .dv-nav-featured:focus-visible { background: #91a7bd; color: #070c12; }
.dv-menu-toggle { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; color: #e3e8ed; cursor: pointer; list-style: none; border-radius: 4px; }
.dv-menu-toggle:hover, .dv-menu-toggle:focus-visible { background: #242424; color: #fff; }
.dv-menu-toggle:focus-visible { outline: 2px solid #e3e8ed; outline-offset: 2px; }
.dv-menu-toggle:active { background: #383838; }
.dv-menu-icon-open, .dv-mobile-nav[open] .dv-menu-icon-close { display: flex; align-items: center; justify-content: center; }
.dv-menu-icon-close, .dv-mobile-nav[open] .dv-menu-icon-open { display: none; }
.dv-menu-toggle::-webkit-details-marker { display: none; }
.dv-mobile-nav[open] .dv-menu-toggle { position: fixed; z-index: 103; top: 6px; right: 20px; }
.dv-mobile-panel { position: fixed; z-index: 102; inset: 0; width: 100vw; height: 100dvh; overflow-y: auto; background: #000; color: #fff; animation: dv-menu-in .25s ease-out both; }
.dv-mobile-brand { height: 56px; padding: 0 24px; }
.dv-mobile-nav nav a { display: flex; align-items: center; min-height: 86px; padding: 0 34px; border-bottom: 1px solid #293243; }
.dv-mobile-nav nav a:hover, .dv-mobile-nav nav a:focus-visible, .dv-mobile-nav nav a:active { background: #242424; }
.dv-mobile-nav nav .dv-nav-featured { justify-content: center; margin: 16px 24px; min-height: 54px; padding: 12px 20px; border: 0; background: #111; }
.dv-mobile-nav nav .dv-nav-featured:hover, .dv-mobile-nav nav .dv-nav-featured:focus-visible { background: #3b3b3b; }
body.dv-menu-open { overflow: hidden; }

/* 03. PLANTILLA Y CONTENIDO EDITORIAL */
.wp-block-post-content { display: flow-root; }
.dv-main { display: flow-root; width: min(100%, var(--dv-layout-width)); margin: 0 auto; min-height: 0; padding: 22px 20px 36px; background: #fefcfb; box-shadow: none; }
.dv-box { width: 100%; margin: 0; background: #fefcfb; border: 1px solid #eee7df; border-radius: 24px; color: var(--dv-text); box-shadow: 0 10px 32px #45331b05; }
.dv-main > .dv-box + .dv-box { margin-top: 26px; }
.dv-box.dv-content-box { --dv-separador: linear-gradient(90deg, rgba(202,151,61,0), rgba(202,151,61,.47) 50%, rgba(202,151,61,0)); display: flow-root; counter-reset: dv-step; overflow-wrap: break-word; min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.dv-content-box > :first-child { margin-top: 0; }
.dv-content-box > :last-child { margin-bottom: 0; }
.dv-content-box > .dv-featured-image { width: 100%; margin: 0 0 24px; }
.dv-featured-image__img { display: block; width: 100%; max-width: 100%; height: auto; border-radius: 8px; object-fit: contain; }
.dv-entry-number { display: inline-flex; align-items: center; justify-content: center; min-width: 52px; height: 36px; margin: 0 0 19px; padding: 0 16px; border: 1px solid #ce9025; border-radius: 22px; background: #ce9025; color: #fff; font: 700 14px/1 var(--dv-font-content); }
.dv-content-box h1.wp-block-heading { margin: 0 0 20px; padding: 0; color: var(--dv-text); letter-spacing: -.35px; font: 600 30px/1.3 var(--dv-font-content); }
.dv-content-box p, .dv-content-box li { margin: 0 0 19px; color: var(--dv-text-body); text-align: justify; -webkit-hyphens: auto; hyphens: auto; font: 300 20px/1.55 var(--dv-font-content); }
.dv-content-box strong { color: #344050; font-weight: 700; }
.dv-content-box hr.wp-block-separator.dv-entry-divider { display: block; width: 100%; max-width: none; height: 1px; padding: 0; border: 0; opacity: 1; background: var(--dv-separador); margin: 28px 0 27px; }
.dv-content-box h2.wp-block-heading { position: relative; min-height: 30px; margin: 35px 0 15px; padding: 4px 0 4px 44px; border: 0; color: var(--dv-heading); letter-spacing: 0; scroll-margin-top: 76px; counter-increment: dv-step; font: 700 20px/1.35 var(--dv-font-content); }
.dv-content-box h2.wp-block-heading::before { content: counter(dv-step); position: absolute; top: 50%; left: 0; transform: translateY(-50%); display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--dv-accent); color: #fff; font: 700 13px/1 var(--dv-font-ui); }
.dv-content-box > h2.wp-block-heading { margin-top: 28px; }
.dv-content-box .dv-entry-divider + h2.wp-block-heading { margin-top: 0; }
.dv-content-box h3.wp-block-heading { margin: 24px 0 12px; color: var(--dv-heading); font: 700 20px/1.35 var(--dv-font-content); }
.dv-content-box ul, .dv-content-box ol { padding-left: 24px; margin: 0 0 19px; }
.dv-content-box li { margin-bottom: 10px; }
.dv-content-box h3.wp-block-heading.dv-style-subtitle { margin: 22px 0 10px; font-size: 18px; }
.dv-content-box ul.dv-style-bullets { margin: 0 0 18px; padding-left: 22px; list-style: disc; }
.dv-content-box ul.dv-style-bullets > li { margin: 0 0 7px; font-weight: 400; text-align: left; hyphens: none; font-size: 17px; line-height: 1.55; }
.dv-content-box ul.dv-style-bullets > li::marker { color: var(--dv-accent); }
.dv-content-box p.dv-style-when { margin-bottom: 20px; }
.dv-content-box .dv-example-box { margin: 21px 0 24px; padding: 17px 18px; background: #faf7f3; border: 1px solid #e7ded3; border-radius: 12px; }
.dv-content-box .dv-example-box h3.wp-block-heading.dv-style-subtitle { margin: 0 0 13px; }
.dv-content-box .dv-example-box p:last-child { margin-bottom: 0; }
.dv-content-box a { text-underline-offset: 3px; }
.dv-content-box a:hover { color: #354154; }
.dv-content-box :is(a, button):focus-visible,
.dv-most-viewed a:focus-visible { outline: 2px solid #596b80; outline-offset: 2px; }

/* 04. PAGINAS MAS VISTAS */
.dv-box.dv-most-viewed { border: 1px solid #e9e3dc; background: #fefcfa; box-shadow: 0 1px 2px #00000005, 0 8px 24px #0f172a09; padding: 20px 18px; border-radius: 16px; }
.dv-most-viewed h2 { margin: 0 0 16px; padding: 0; color: var(--dv-text); letter-spacing: normal; font: 800 20px/1.2 var(--dv-font-content); }
.dv-most-viewed ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.dv-most-viewed li { margin: 0; min-width: 0; }
.dv-most-viewed a { display: flex; align-items: center; justify-content: space-between; width: 100%; gap: 12px; min-height: 48px; border: 1px solid #ece7e1; border-radius: 12px; background: #fff; color: var(--dv-text); text-decoration: none; overflow-wrap: anywhere; transition-property: color, background-color, border-color, transform, box-shadow; padding: 10px 12px; font: 600 12.5px/1.4 var(--dv-font-content); }
.dv-most-viewed a:hover { background: #f7f2eb; border-color: #dcc7a3; transform: translateY(-1px); box-shadow: 0 4px 14px #0000000d; }
.dv-most-viewed a > span:last-child { flex: 0 0 auto; color: #77818e; font-size: 16px; font-weight: 400; line-height: 1; }

/* 05. PIE GLOBAL */
.dv-footer { background: #0d0f10; color: #c4c9ce; }
.dv-footer-inner { width: min(100%, var(--dv-layout-width)); margin: auto; padding: 36px 20px 28px; }
.dv-footer-top { display: grid; gap: 24px; }
.dv-footer-profile { text-align: center; }
.dv-footer-profile img { display: block; width: 110px; height: 110px; margin: 0 auto 16px; border: 2px solid #6a6e72; border-radius: 50%; object-fit: cover; }
.dv-footer-profile h2 { margin: 8px 0 0; color: #d6dade; font-size: 22px; line-height: 1.3; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.dv-footer-profile p { margin: 0; font-size: 10px; text-transform: uppercase; letter-spacing: .05em; }
.dv-footer-copy { min-width: 0; font-size: 14px; line-height: 1.8; text-align: center; }
.dv-footer-copy p { margin: 0 0 16px; }
.dv-footer-copy p:last-child { margin-bottom: 0; }
.dv-footer-copy svg { display: inline-block; width: 12px; height: 16px; vertical-align: -0.15em; margin-inline-end: 3px; }
.dv-footer-bottom { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; justify-content: center; margin-top: 32px; padding-top: 20px; border-top: 1px solid #34383d; }
.dv-footer-bottom nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; text-align: center; gap: 12px 20px; }
.dv-footer-bottom nav a { color: #a9afb5; text-decoration: none; font-size: 10px; }
.dv-footer-bottom nav a:hover, .dv-footer-bottom nav a:focus-visible { color: #fff; }

/* 06. BLOG: TARJETAS Y PAGINACION (CONSERVAR PARA NUEVAS ENTRADAS) */
.dv-blog-listado .wp-block-post-template { display: grid; grid-template-columns: minmax(0,1fr); gap: 18px; list-style: none; margin: 0; padding: 0; }
.dv-blog-listado .wp-block-post-template > li { min-width: 0; margin: 0; }
.dv-blog-listado .dv-blog-card { display: flex; flex-direction: column; gap: 12px; height: 100%; padding: 22px; border: 1px solid #dedede; border-radius: 14px; background: #f5f5f5; }
.dv-blog-listado .dv-blog-category { align-self: flex-start; max-width: 100%; margin: 0; padding: 5px 12px; border: 1px solid #d7d7d7; border-radius: 999px; background: #ebebeb; color: #505050; font-size: 12px; font-weight: 700; line-height: 1.5; }
.dv-blog-listado .dv-blog-category a, .dv-blog-listado .wp-block-post-title a { text-decoration: none; }
.dv-blog-listado .wp-block-post-title { margin: 0; color: #252525; font-size: clamp(19px,2vw,23px); line-height: 1.3; }
.dv-blog-listado .wp-block-post-excerpt { margin: 0; color: #4b4b4b; font-size: 15px; line-height: 1.65; }
.dv-blog-listado .wp-block-post-excerpt__excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; margin: 0; color: inherit; font: inherit; }
.dv-blog-listado .wp-block-read-more { display: inline-block; align-self: flex-start; margin-top: auto; color: #252525; font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.dv-blog-listado .wp-block-query-pagination { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px; margin-top: 30px; }
.dv-blog-listado .page-numbers { display: inline-block; padding: 6px 12px; border: 1px solid #ddd; border-radius: 6px; }
.dv-blog-listado .page-numbers.current { background: #555; color: #fff; }
.dv-blog-listado a:focus-visible { outline: 2px solid #666; outline-offset: 3px; }

/* 07. ANIMACIONES: NOMBRES, RECORRIDOS Y TIEMPOS CONSERVADOS */
:is(.dv-nav .dv-nav-featured, .dv-mobile-nav nav .dv-nav-featured)::after { content: ""; position: absolute; inset: 0 auto auto -100%; width: 50%; height: 100%; z-index: 1; pointer-events: none; background: linear-gradient(to right, transparent, rgba(255,255,255,.4), transparent); transform: skewX(-25deg); animation: dv-reflejo-suave 9.4s ease 1.3s infinite; }
@keyframes dv-marca-interior { 0% { background-position: 100% 0; } 65%, 100% { background-position: 0 0; } }
@keyframes dv-reflejo-suave { 0% { left: -100%; } 20%, 100% { left: 200%; } }
@keyframes dv-menu-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }

/* 08. ADAPTACION MOBILE FIRST; VARIANTES, NO DUPLICADOS */
@media (min-width: 601px) {
  .dv-blog-listado .wp-block-post-template { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
}
@media (min-width: 761px) {
  .dv-main { min-height: 70vh; padding: 18px 20px 36px; background: #fff; box-shadow: 0 0 16px #26304412; }
  .dv-box.dv-content-box { min-height: 240px; padding: 43px 46px; border: 1px solid #eee7df; border-radius: 24px; background: #fefcfb; box-shadow: 0 10px 32px #45331b05; }
  .dv-content-box h1.wp-block-heading { font-size: 32px; }
  .dv-content-box p, .dv-content-box li { line-height: 1.42; }
  .dv-content-box h2.wp-block-heading { font-size: 22px; }
  .dv-content-box > h2.wp-block-heading { margin-top: 35px; }
  .dv-content-box hr.wp-block-separator.dv-entry-divider { margin: 38px 0 36px; }
  .dv-content-box h3.wp-block-heading.dv-style-subtitle { font-size: 17px; }
  .dv-content-box ul.dv-style-bullets > li { font-size: 16px; line-height: 1.5; }
  .dv-box.dv-most-viewed { padding: 22px 26px; border-radius: 18px; }
  .dv-most-viewed h2 { font-size: 22px; }
  .dv-most-viewed a { padding: 10px 14px; font-size: 13px; }
}
@media (min-width: 782px) {
  .dv-header-inner { min-height: 40px; }
  .dv-main { padding: 26px 100px 36px; }
  .dv-nav { display: flex; align-items: center; gap: 40px; }
  .dv-mobile-nav { display: none; }
  .dv-footer-top { grid-template-columns: 200px minmax(0, 1fr); gap: 28px; align-items: center; }
  .dv-footer-profile { padding-right: 24px; border-right: 1px solid #34383d; }
  .dv-footer-profile img { width: 128px; height: 128px; }
  .dv-footer-copy { text-align: left; }
}
@media (min-width: 1101px) {
  .dv-content-box h3.wp-block-heading.dv-style-subtitle { font-size: 15px; }
  .dv-content-box ul.dv-style-bullets > li { font-size: 14px; }
  .dv-entry-number { height: 26px; }
  .dv-content-box h1.wp-block-heading { font-size: 26px; }
  .dv-content-box h2.wp-block-heading { font-size: 16px; }
  .dv-content-box p, .dv-content-box li { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .dv-most-viewed a { transition-property: color, background-color, border-color, box-shadow; }
  .dv-most-viewed a:hover { transform: none; }
  html { scroll-behavior: auto; }
  .dv-mobile-panel { animation: none; }
}

/* 09. FORMULARIOS DE SOLICITUDES */
.ce-form { display: grid; gap: 18px; margin-top: 24px; }
.ce-form label { display: grid; gap: 6px; font: 600 14px/1.5 var(--dv-font-content); }
.ce-form input, .ce-form textarea, .ce-form select { width: 100%; min-width: 0; padding: 12px; border: 1px solid #c4c9ce; border-radius: 6px; font: inherit; background: #fff; color: #344050; }
.ce-form button { padding: 12px 18px; border: 1px solid #344050; border-radius: 6px; background: #344050; color: #fff; cursor: pointer; font: 600 15px/1.5 var(--dv-font-content); }
.ce-form button:hover { background: #596b80; }
.ce-form :focus-visible { outline: 2px solid #596b80; outline-offset: 3px; }
