/*
Theme Name: HGC — Hugo Gómez Crespo
Theme URI: https://hugogomezcrespo.com/
Author: Berta
Description: Tema a medida para Hugo Gómez Crespo, consultor independiente de Facility Management. Implementa el Manual de Marca HGC v1.0 y la arquitectura SEO/GEO de la auditoría de septiembre de 2026.
Version: 1.8.3
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: hgc
Tags: business, one-column, custom-menu, translation-ready
*/

/* ============================================================
   1. TOKENS — Manual de marca HGC v1.0 §3
   ============================================================ */
:root{
  --negro:#0D0D0D;      /* Fondo principal */
  --grafito:#121212;    /* Tarjetas sobre negro */
  --carbon:#262626;     /* Hover, divisores */
  --blanco:#F2F2F2;     /* Texto principal */
  --gris:#A6A6A6;       /* Texto secundario */
  --dorado:#C8AA6F;     /* Acento firma */
  --bronce:#9A8050;     /* Acento sobre claro */
  --marfil:#FAF9F5;     /* Fondo claro */

  /* Retícula de 8 px §3.7 */
  --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s5:48px; --s6:64px; --s7:96px; --s8:128px;

  --wrap:1280px;
  --gutter:clamp(24px,5vw,64px);
  --header-h:100px;

  --font:'Plus Jakarta Sans','Inter','Segoe UI',-apple-system,BlinkMacSystemFont,sans-serif;
  --mono:'JetBrains Mono','SFMono-Regular',Consolas,monospace;

  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ============================================================
   2. FUENTE — Plus Jakarta Sans autoalojada (sin Google Fonts)
   ============================================================ */
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400;font-display:swap;
  src:url('assets/fonts/plus-jakarta-sans-latin-400-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:600;font-display:swap;
  src:url('assets/fonts/plus-jakarta-sans-latin-600-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:700;font-display:swap;
  src:url('assets/fonts/plus-jakarta-sans-latin-700-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* ============================================================
   3. BASE
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--header-h);}
body{
  margin:0;background:var(--negro);color:var(--blanco);
  font-family:var(--font);font-weight:400;font-size:17px;line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;transition:color .3s var(--ease);}
h1,h2,h3,h4{margin:0;font-weight:700;line-height:1.1;letter-spacing:-.02em;}
p{margin:0 0 var(--s3);}
ul{margin:0;padding:0;list-style:none;}
::selection{background:var(--dorado);color:var(--negro);}
:focus-visible{outline:2px solid var(--dorado);outline-offset:3px;}

.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--gutter);}
.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--dorado);color:var(--negro);padding:12px 20px;font-weight:700;}
.skip-link:focus{left:0;}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;}

/* El punto dorado: recurso identitario §3.4 */
.dot{color:var(--dorado);}

/* ============================================================
   4. CABECERA
   ============================================================ */
.site-header{
  position:fixed;inset:0 0 auto 0;z-index:100;height:var(--header-h);
  display:flex;align-items:center;
  background:rgba(13,13,13,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  transition:background .4s var(--ease),height .4s var(--ease),border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
.site-header.is-stuck{background:rgba(13,13,13,.96);height:76px;border-bottom-color:var(--carbon);}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;width:100%;gap:var(--s4);}

.brand{font-weight:700;font-size:26px;letter-spacing:-.04em;line-height:1;white-space:nowrap;}
.brand .b-hg{color:var(--blanco);} .brand .b-c{color:var(--gris);} .brand .b-d{color:var(--dorado);}

.nav-main ul{display:flex;align-items:center;gap:clamp(18px,2.4vw,38px);}
.nav-main a{
  font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gris);
  position:relative;padding-block:6px;
}
.nav-main a:hover,.nav-main a:focus,.nav-main .current-menu-item>a{color:var(--blanco);}
.nav-main a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--dorado);transition:width .3s var(--ease);}
.nav-main a:hover::after,.nav-main .current-menu-item>a::after{width:100%;}

.nav-toggle{display:none;background:none;border:0;padding:10px;cursor:pointer;}
.nav-toggle span{display:block;width:24px;height:1.5px;background:var(--blanco);transition:transform .3s var(--ease),opacity .3s var(--ease);}
.nav-toggle span+span{margin-top:6px;}
.nav-open .nav-toggle span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
.nav-open .nav-toggle span:nth-child(2){opacity:0;}
.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}

/* ============================================================
   5. HERO
   ============================================================ */
.hero{
  position:relative;min-height:100svh;display:flex;align-items:center;
  padding-block:calc(var(--header-h) + var(--s6)) var(--s6);overflow:hidden;
}
.hero__bg{position:absolute;inset:0;z-index:0;}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center right;filter:grayscale(100%) contrast(1.08) brightness(.74);}
.hero__bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,var(--negro) 0%,rgba(13,13,13,.92) 38%,rgba(13,13,13,.55) 70%,rgba(13,13,13,.75) 100%);
}
.hero .wrap{position:relative;z-index:1;width:100%;}
.hero h1{font-size:clamp(52px,8.6vw,124px);letter-spacing:-.035em;line-height:.98;margin-bottom:var(--s5);}
.hero h1 .l2{color:var(--gris);display:block;}
.hero__lead{font-size:clamp(20px,2.4vw,32px);font-weight:600;line-height:1.3;letter-spacing:-.02em;max-width:17ch;margin-bottom:var(--s3);}
.hero__sub{color:var(--dorado);font-size:clamp(15px,1.5vw,18px);font-weight:600;margin-bottom:var(--s5);}
.hero__scroll{position:absolute;left:var(--gutter);bottom:var(--s5);z-index:1;color:var(--gris);font-size:11px;letter-spacing:.18em;text-transform:uppercase;display:flex;align-items:center;gap:12px;}
.hero__scroll::after{content:"";width:56px;height:1px;background:linear-gradient(90deg,var(--dorado),transparent);}

/* ============================================================
   6. BOTONES
   ============================================================ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  padding:19px 40px;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid var(--dorado);background:var(--dorado);color:var(--negro);
  transition:background .3s var(--ease),color .3s var(--ease),transform .3s var(--ease);
  cursor:pointer;text-align:center;
}
.btn:hover{background:transparent;color:var(--dorado);}
.btn--ghost{background:transparent;color:var(--dorado);}
.btn--ghost:hover{background:var(--dorado);color:var(--negro);}
.btn--block{width:100%;}

/* ============================================================
   7. SECCIONES — patrón título pegajoso + contenido
   ============================================================ */
.section{position:relative;padding-block:clamp(80px,11vw,150px);}
.section--alt{background:var(--grafito);}
.section__grid{display:grid;grid-template-columns:minmax(240px,1fr) 2.2fr;gap:clamp(32px,6vw,96px);align-items:start;}
.section__title{font-size:clamp(34px,4.6vw,60px);letter-spacing:-.03em;}
.section__grid>.section__title{position:sticky;top:calc(var(--header-h) + 24px);}
.section__intro{color:var(--gris);max-width:62ch;margin-top:var(--s3);font-size:16px;}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gris);margin-bottom:var(--s2);}

/* Fondo de imagen para secciones §3.5 */
.section--bg{position:relative;isolation:isolate;}
.section--bg>.bgimg{position:absolute;inset:0;z-index:-1;}
.section--bg>.bgimg img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%) brightness(.3);}
.section--bg>.bgimg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--negro),rgba(13,13,13,.78) 30%,rgba(13,13,13,.9));}

/* ============================================================
   8. SOBRE MÍ
   ============================================================ */
.about__layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(32px,6vw,88px);align-items:start;}
.portrait{position:relative;}
.portrait img{filter:grayscale(100%) contrast(1.05);width:100%;}
.portrait::after{
  content:"";position:absolute;right:-22px;bottom:-22px;width:56%;height:42%;
  border-right:1px solid var(--dorado);border-bottom:1px solid var(--dorado);z-index:-1;
}
.facts li{
  position:relative;padding-left:28px;margin-bottom:var(--s3);color:var(--blanco);
  font-size:clamp(15px,1.15vw,17px);line-height:1.55;
}
.facts li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;background:var(--dorado);}
.facts li strong{font-weight:700;}

/* ============================================================
   9. SERVICIOS
   ============================================================ */
.services{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;background:var(--carbon);border:1px solid var(--carbon);}
.service{
  position:relative;background:rgba(18,18,18,.94);padding:clamp(32px,3.6vw,52px);
  display:flex;flex-direction:column;transition:background .35s var(--ease);
}
.service:hover{background:rgba(38,38,38,.92);}
.service__num{
  display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
  border:1px solid var(--dorado);color:var(--dorado);font-size:14px;font-weight:700;
  margin-bottom:var(--s5);flex:none;
}
.service h3{font-size:clamp(21px,2vw,27px);margin-bottom:var(--s2);letter-spacing:-.02em;}
.service p{color:var(--gris);font-size:16px;margin-bottom:var(--s3);}
.service__link{margin-top:auto;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--dorado);display:inline-flex;align-items:center;gap:10px;}
.service__link::after{content:"→";transition:transform .3s var(--ease);}
.service:hover .service__link::after{transform:translateX(6px);}

/* ============================================================
   10. METODOLOGÍA
   ============================================================ */
.method{border-top:1px solid var(--carbon);}
.method__row{
  display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,4vw,64px);
  padding-block:clamp(28px,3.4vw,44px);border-bottom:1px solid var(--carbon);
  transition:background .35s var(--ease);
}
.method__row:hover{background:rgba(38,38,38,.35);}
.method__row h3{font-size:clamp(18px,1.7vw,23px);line-height:1.25;}
.method__row p{color:var(--gris);margin:0;font-size:16px;}

/* ============================================================
   11. CASOS
   ============================================================ */
.cases{display:grid;gap:2px;background:var(--carbon);border:1px solid var(--carbon);}
.case{background:rgba(18,18,18,.94);padding:clamp(28px,3.4vw,48px);transition:background .35s var(--ease);}
.case:hover{background:rgba(38,38,38,.9);}
.case h3{font-size:clamp(19px,1.9vw,26px);margin-bottom:var(--s2);}
.case__stats{
  font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--dorado);margin-bottom:var(--s3);
}
.case p{color:var(--gris);margin:0;font-size:16px;}
.case__link{display:inline-flex;gap:10px;margin-top:var(--s3);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--dorado);}

/* ============================================================
   12. CIFRAS
   ============================================================ */
.figures{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--carbon);border-block:1px solid var(--carbon);}
.figure{background:var(--negro);padding:clamp(24px,3vw,40px) var(--s3);text-align:center;}
.figure__n{font-size:clamp(30px,3.6vw,46px);font-weight:700;letter-spacing:-.02em;color:var(--blanco);line-height:1;}
.figure__l{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gris);margin-top:var(--s2);}

/* ============================================================
   13. CONTACTO Y FORMULARIO
   ============================================================ */
.contact{text-align:center;max-width:840px;margin-inline:auto;}
.contact h2{font-size:clamp(40px,6vw,82px);margin-bottom:var(--s3);}
.contact__lead{color:var(--gris);font-size:clamp(17px,1.6vw,20px);margin-bottom:var(--s5);}
.divider{display:flex;align-items:center;gap:var(--s3);margin-block:var(--s6);color:var(--gris);font-size:11px;letter-spacing:.2em;text-transform:uppercase;}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--carbon);}
.form{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2);text-align:left;}
.form .full{grid-column:1/-1;}
.form input,.form textarea,.form select{
  width:100%;padding:19px 20px;background:var(--grafito);border:1px solid var(--carbon);
  color:var(--blanco);font-family:var(--font);font-size:16px;border-radius:0;
  transition:border-color .3s var(--ease),background .3s var(--ease);
}
.form input::placeholder,.form textarea::placeholder{color:var(--gris);opacity:.75;}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--dorado);background:var(--carbon);}
.form textarea{min-height:180px;resize:vertical;}
.form__note{grid-column:1/-1;color:var(--gris);font-size:13px;line-height:1.5;}
.form__note a{color:var(--dorado);text-decoration:underline;text-underline-offset:3px;}
.form__msg{grid-column:1/-1;padding:16px 20px;border:1px solid var(--dorado);color:var(--dorado);font-size:15px;}
.form__msg--err{border-color:#c86f6f;color:#c86f6f;}
.hp{position:absolute!important;left:-9999px;}

/* ============================================================
   14. PIE
   ============================================================ */
.site-footer{border-top:1px solid var(--carbon);padding-block:var(--s5);font-size:14px;color:var(--gris);}
.site-footer .wrap{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s5);align-items:center;justify-content:space-between;}
.footer__nav{display:flex;flex-wrap:wrap;gap:var(--s3);}
.footer__nav a:hover{color:var(--dorado);}
.footer__legal{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s3);font-size:13px;}
.footer__social{display:inline-flex;align-items:center;gap:10px;}
.footer__social:hover{color:var(--dorado);}

/* ============================================================
   15. PÁGINAS INTERIORES
   ============================================================ */
.page-hero{position:relative;padding-block:calc(var(--header-h) + clamp(56px,7vw,104px)) clamp(48px,6vw,88px);border-bottom:1px solid var(--carbon);overflow:hidden;}
.page-hero__bg{position:absolute;inset:0;z-index:-1;}
.page-hero__bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%) brightness(.28);}
.page-hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--negro) 15%,rgba(13,13,13,.72));}
.page-hero h1{font-size:clamp(34px,5.4vw,68px);max-width:20ch;letter-spacing:-.03em;}
.page-hero__sub{color:var(--gris);font-size:clamp(17px,1.7vw,21px);max-width:62ch;margin-top:var(--s3);}
.page-hero__cta{margin-top:var(--s5);display:flex;flex-wrap:wrap;gap:var(--s2);}

.breadcrumbs{font-size:12px;letter-spacing:.08em;color:var(--gris);margin-bottom:var(--s3);}
.breadcrumbs a:hover{color:var(--dorado);}
.breadcrumbs .sep{color:var(--carbon);margin-inline:8px;}

.entry{max-width:820px;}
.entry--wide{max-width:none;}
.entry h2{font-size:clamp(26px,3vw,38px);margin:var(--s7) 0 var(--s3);letter-spacing:-.025em;}
.entry h2:first-child{margin-top:0;}
.entry h3{font-size:clamp(19px,2vw,24px);margin:var(--s5) 0 var(--s2);}
.entry h4{font-size:17px;margin:var(--s4) 0 var(--s1);color:var(--dorado);}
.entry p{color:#D8D8D8;}
.entry a{color:var(--dorado);text-decoration:underline;text-underline-offset:3px;}
.entry ul,.entry ol{margin:0 0 var(--s3);padding-left:0;}
.entry ol{counter-reset:n;list-style:none;padding-left:0;}
.entry ul li{position:relative;padding-left:26px;margin-bottom:var(--s2);color:#D8D8D8;}
.entry ul li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;background:var(--dorado);}
.entry ol li{counter-increment:n;position:relative;padding-left:36px;margin-bottom:var(--s2);color:#D8D8D8;}
.entry ol li::before{content:counter(n,decimal-leading-zero);position:absolute;left:0;top:0;color:var(--dorado);font-weight:700;font-size:13px;font-family:var(--mono);}
.entry strong{color:var(--blanco);font-weight:700;}
.entry blockquote{margin:var(--s5) 0;padding:var(--s4);background:var(--grafito);border-left:2px solid var(--dorado);}
.entry blockquote p:last-child{margin:0;}
.entry table{width:100%;border-collapse:collapse;margin:var(--s4) 0;font-size:15px;}
.entry th{background:rgba(200,170,111,.15);color:var(--blanco);text-align:left;font-weight:700;}
.entry th,.entry td{border:1px solid var(--carbon);padding:14px 16px;color:#D8D8D8;vertical-align:top;}
.entry figure{margin:var(--s4) 0;}
.entry .wp-block-image img{filter:grayscale(100%);}
.table-scroll{overflow-x:auto;}

/* Respuesta GEO destacada §4.3 */
.geo-answer{background:var(--grafito);border-left:2px solid var(--dorado);padding:var(--s4);margin:var(--s4) 0;}
.geo-answer p{color:var(--blanco);font-size:18px;font-weight:600;line-height:1.55;margin:0;}

/* Bloque FAQ */
.faq{border-top:1px solid var(--carbon);margin-top:var(--s5);}
.faq details{border-bottom:1px solid var(--carbon);padding-block:var(--s3);}
.faq summary{cursor:pointer;font-weight:700;font-size:18px;list-style:none;display:flex;justify-content:space-between;gap:var(--s3);align-items:center;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";color:var(--dorado);font-size:24px;font-weight:400;line-height:1;}
.faq details[open] summary::after{content:"–";}
.faq details p{margin:var(--s3) 0 0;color:var(--gris);}

/* CTA de cierre */
.cta-band{background:var(--grafito);border-block:1px solid var(--carbon);text-align:center;}
.cta-band h2{font-size:clamp(32px,4.6vw,56px);margin-bottom:var(--s3);}
.cta-band p{color:var(--gris);max-width:56ch;margin-inline:auto;margin-bottom:var(--s5);}

/* ============================================================
   16. LISTADOS (conocimiento, casos, recursos)
   ============================================================ */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2px;background:var(--carbon);border:1px solid var(--carbon);}
.card{background:var(--grafito);padding:clamp(28px,3vw,40px);display:flex;flex-direction:column;transition:background .35s var(--ease);}
.card:hover{background:var(--carbon);}
.card__meta{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dorado);margin-bottom:var(--s2);}
.card h3{font-size:21px;line-height:1.25;margin-bottom:var(--s2);}
.card p{color:var(--gris);font-size:15px;margin-bottom:var(--s3);}
.card__more{margin-top:auto;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--dorado);}

.post-meta{color:var(--gris);font-size:13px;letter-spacing:.06em;display:flex;flex-wrap:wrap;gap:var(--s2) var(--s3);margin-top:var(--s3);}
.author-box{display:flex;gap:var(--s3);align-items:flex-start;background:var(--grafito);padding:var(--s4);margin-top:var(--s6);border-left:2px solid var(--dorado);}
.author-box img{width:84px;height:84px;object-fit:cover;filter:grayscale(100%);flex:none;}
.author-box h3{font-size:18px;margin-bottom:6px;}
.author-box p{color:var(--gris);font-size:14px;margin:0;}

.pagination{display:flex;gap:var(--s1);margin-top:var(--s6);flex-wrap:wrap;}
.pagination .page-numbers{padding:12px 18px;border:1px solid var(--carbon);color:var(--gris);font-size:14px;}
.pagination .current,.pagination a:hover{border-color:var(--dorado);color:var(--dorado);}

/* 404 */
.err{min-height:70vh;display:flex;align-items:center;text-align:center;}
.err h1{font-size:clamp(72px,14vw,180px);color:var(--carbon);line-height:1;}
.err h2{font-size:clamp(24px,3vw,36px);margin-block:var(--s3);}
.err p{color:var(--gris);max-width:50ch;margin-inline:auto;}

/* ============================================================
   17. ANIMACIÓN DE ENTRADA
   ============================================================ */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal.is-in{opacity:1;transform:none;}

/* ============================================================
   18. RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  :root{--header-h:76px;}
  .section__grid{grid-template-columns:1fr;gap:var(--s4);}
  .section__grid>.section__title{position:static;}
  .about__layout{grid-template-columns:1fr;}
  .portrait{max-width:420px;}
  .figures{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:860px){
  body{font-size:16px;}
  .nav-toggle{display:block;}
  .nav-main{
    position:fixed;inset:var(--header-h) 0 auto 0;background:rgba(13,13,13,.985);
    backdrop-filter:blur(18px);border-bottom:1px solid var(--carbon);
    max-height:0;overflow:hidden;transition:max-height .45s var(--ease);
  }
  .nav-open .nav-main{max-height:calc(100svh - var(--header-h));overflow-y:auto;}
  .nav-main ul{flex-direction:column;align-items:stretch;gap:0;padding:var(--s2) var(--gutter) var(--s5);}
  .nav-main li{border-bottom:1px solid var(--carbon);}
  .nav-main a{display:block;padding:20px 0;font-size:15px;letter-spacing:.1em;}
  .nav-main a::after{display:none;}
  .services,.method__row,.form{grid-template-columns:1fr;}
  .services{gap:1px;}
  .hero{min-height:auto;padding-block:calc(var(--header-h) + 72px) 96px;}
  .hero__bg::after{background:linear-gradient(180deg,rgba(13,13,13,.72),rgba(13,13,13,.9));}
  .hero__scroll{display:none;}
  .site-footer .wrap{flex-direction:column;align-items:flex-start;text-align:left;}
  .author-box{flex-direction:column;}
}
@media (max-width:480px){
  .figures{grid-template-columns:1fr;}
  .btn{width:100%;}
  .page-hero__cta .btn{width:100%;}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
  .reveal{opacity:1;transform:none;}
}
@media print{
  .site-header,.site-footer,.hero__bg,.btn{display:none!important;}
  body{background:#fff;color:#000;}
}

/* ============================================================
   19. SUBMENÚ DE SERVICIOS
   ============================================================ */
.nav-main li{position:relative;}
.nav-main .sub-menu{
  position:absolute;top:calc(100% + 18px);left:50%;transform:translateX(-50%) translateY(-6px);
  min-width:270px;background:rgba(13,13,13,.97);backdrop-filter:blur(14px);
  border:1px solid var(--carbon);padding:var(--s1) 0;display:block;
  flex-direction:column;gap:0;opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .25s var(--ease),transform .25s var(--ease);z-index:10;
}
.nav-main li:hover>.sub-menu,.nav-main li:focus-within>.sub-menu{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);}
.nav-main .sub-menu li{border:0;}
.nav-main .sub-menu a{
  display:block;padding:13px 24px;font-size:12px;letter-spacing:.08em;text-transform:none;
  font-weight:600;color:var(--gris);white-space:nowrap;
}
.nav-main .sub-menu a:hover{color:var(--dorado);background:rgba(38,38,38,.6);}
.nav-main .sub-menu a::after{display:none;}
.nav-main .menu-item-has-children>a::before{content:"";}
@media (max-width:860px){
  .nav-main .sub-menu{
    position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;
    border:0;padding:0 0 var(--s2);background:transparent;min-width:0;
  }
  .nav-main .sub-menu a{padding:12px 0 12px 20px;border-left:1px solid var(--carbon);}
  .nav-main .menu-item-has-children>a{color:var(--dorado);}
}

/* Punto dorado en los títulos de sección del contenido (§3.4 del manual). */
/* Punto dorado solo en H1 (revisión web v2, punto 8) */
.entry h2 .dot{display:none;}

/* ============================================================
   20. INTEGRACIÓN CON EL EDITOR DE BLOQUES
   Las secciones de la portada son bloques nativos: estas reglas
   hacen que los bloques de WordPress adopten el sistema de marca.
   ============================================================ */
.entry--home{max-width:none;}
.entry--home>*{margin:0;}

/* Ancho completo y contenedor */
.alignfull{width:100%;margin-inline:0;}
.wp-block-group.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter);width:100%;}
.wp-block-group.section{padding-block:clamp(80px,11vw,150px);}
.wp-block-group.section--alt{background:var(--grafito);}

/* Portadas de sección (bloque Cover) */
.wp-block-cover.hero,.wp-block-cover.section--cover{
  padding:0;min-height:0;align-items:stretch;justify-content:flex-start;
}
.wp-block-cover.section--cover{padding-block:clamp(80px,11vw,150px);}
.wp-block-cover.hero{min-height:100svh;align-items:center;padding-block:calc(var(--header-h) + var(--s6)) var(--s6);}
.wp-block-cover .wp-block-cover__image-background{filter:grayscale(100%) contrast(1.08) brightness(.9);}
.wp-block-cover.hero .wp-block-cover__image-background{object-position:center right;}
.wp-block-cover__inner-container{width:100%;max-width:none;}

/* Hero */
.hero__title{font-size:clamp(52px,8.6vw,124px);letter-spacing:-.035em;line-height:.98;margin:0 0 var(--s5);font-weight:700;}
.hero__title .l2{color:var(--gris);display:block;}

/* Encabezados y párrafos dentro de los bloques */
.entry--home .section__title{font-size:clamp(34px,4.6vw,60px);letter-spacing:-.03em;margin:0 0 var(--s3);}
.entry--home .section__intro{color:var(--gris);max-width:62ch;margin-bottom:var(--s6);font-size:16px;}
.entry--home h3{font-size:clamp(18px,1.7vw,23px);line-height:1.25;margin:0 0 var(--s2);}
.entry--home p{margin:0 0 var(--s3);}
.entry--home p:last-child{margin-bottom:0;}

/* Cifras */
.wp-block-group.figures{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--carbon);border-block:1px solid var(--carbon);}
.wp-block-group.figure{background:var(--negro);padding:clamp(24px,3vw,40px) var(--s3);text-align:center;}

/* Sobre mí */
.wp-block-columns.about__layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(32px,6vw,88px);align-items:start;margin-bottom:0;}
.wp-block-columns.about__layout .wp-block-column{flex-basis:auto!important;}
.wp-block-image.portrait{margin:0;}
.wp-block-list.facts{padding-left:0;}

/* Servicios */
.wp-block-group.services{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;background:var(--carbon);border:1px solid var(--carbon);}
.wp-block-group.service{background:rgba(18,18,18,.94);padding:clamp(32px,3.6vw,52px);display:flex;flex-direction:column;transition:background .35s var(--ease);}
.wp-block-group.service:hover{background:rgba(38,38,38,.92);}
.entry--home p.service__num{
  display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
  border:1px solid var(--dorado);color:var(--dorado);font-size:14px;font-weight:700;margin-bottom:var(--s5);
}
.entry--home .service p:not(.service__num):not(.service__link){color:var(--gris);font-size:16px;}
.entry--home p.service__link{margin-top:auto;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;}
.entry--home p.service__link a{color:var(--dorado);text-decoration:none;}
.entry--home p.service__link a::after{content:" →";}

/* Metodología */
.wp-block-group.method{border-top:1px solid var(--carbon);}
.wp-block-group.method__row{
  display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,4vw,64px);align-items:start;
  padding-block:clamp(28px,3.4vw,44px);border-bottom:1px solid var(--carbon);
}
.entry--home .method__row p{color:var(--gris);margin:0;font-size:16px;}

/* Contacto */
.wp-block-group.contact{text-align:center;max-width:840px;margin-inline:auto;}
.entry--home .contact__lead{color:var(--gris);font-size:clamp(17px,1.6vw,20px);margin-bottom:var(--s5);}

/* Botones del editor con estilo de marca */
.wp-block-buttons{margin-block:var(--s4);}
.wp-block-button__link{
  display:inline-flex;align-items:center;justify-content:center;
  padding:19px 40px;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid var(--dorado);background:var(--dorado);color:var(--negro);border-radius:0;
  transition:background .3s var(--ease),color .3s var(--ease);text-decoration:none;
}
.wp-block-button__link:hover{background:transparent;color:var(--dorado);}
.wp-block-button.is-ghost .wp-block-button__link{background:transparent;color:var(--dorado);}
.wp-block-button.is-ghost .wp-block-button__link:hover{background:var(--dorado);color:var(--negro);}
.contact .wp-block-buttons{justify-content:center;}

/* Tablas del editor */
.wp-block-table.table-scroll{overflow-x:auto;margin-block:var(--s4);}
.wp-block-table table{width:100%;border-collapse:collapse;font-size:15px;}
.wp-block-table th{background:rgba(200,170,111,.15);color:var(--blanco);text-align:left;font-weight:700;}
.wp-block-table th,.wp-block-table td{border:1px solid var(--carbon);padding:14px 16px;color:#D8D8D8;vertical-align:top;}

/* Grupo de respuesta GEO creado como bloque */
.wp-block-group.geo-answer{background:var(--grafito);border-left:2px solid var(--dorado);padding:var(--s4);margin-block:var(--s4);}
.wp-block-group.geo-answer p{color:var(--blanco);font-size:18px;font-weight:600;line-height:1.55;margin:0;}

@media (max-width:1024px){
  .wp-block-columns.about__layout{grid-template-columns:1fr;}
  .wp-block-group.figures{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:860px){
  .wp-block-group.services,.wp-block-group.method__row{grid-template-columns:1fr;}
  .wp-block-cover.hero{min-height:auto;padding-block:calc(var(--header-h) + 72px) 96px;}
  .wp-block-button__link{width:100%;}
}
@media (max-width:480px){ .wp-block-group.figures{grid-template-columns:1fr;} }

/* ============================================================
   21. FORMULARIOS DE PLUGIN (Contact Form 7 y similares)
   ============================================================ */
.wpcf7 .form{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2);text-align:left;}
.wpcf7 .form .full{grid-column:1/-1;}
.wpcf7-form-control-wrap{display:block;width:100%;}
.wpcf7 input[type=text],.wpcf7 input[type=email],.wpcf7 input[type=tel],.wpcf7 textarea,.wpcf7 select{
  width:100%;padding:19px 20px;background:var(--grafito);border:1px solid var(--carbon);
  color:var(--blanco);font-family:var(--font);font-size:16px;border-radius:0;
}
.wpcf7 input:focus,.wpcf7 textarea:focus{outline:none;border-color:var(--dorado);background:var(--carbon);}
.wpcf7 textarea{min-height:180px;}
.wpcf7 input[type=submit],.wpcf7 .wpcf7-submit{
  width:100%;padding:19px 40px;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid var(--dorado);background:var(--dorado);color:var(--negro);cursor:pointer;transition:background .3s var(--ease),color .3s var(--ease);
}
.wpcf7 input[type=submit]:hover{background:transparent;color:var(--dorado);}
.wpcf7 .wpcf7-not-valid-tip{color:#c86f6f;font-size:13px;margin-top:6px;}
.wpcf7 form .wpcf7-response-output{border:1px solid var(--dorado);color:var(--dorado);padding:16px 20px;margin:var(--s3) 0 0;font-size:15px;}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.failed .wpcf7-response-output{border-color:#c86f6f;color:#c86f6f;}

/* ============================================================
   22. HUB DE PREGUNTAS GEO
   ============================================================ */
.entry h3 + .geo-answer,.entry h3 + .wp-block-group.geo-answer{margin-top:var(--s2);}
.entry .geo-fuente{font-size:13px;color:var(--gris);margin-top:calc(var(--s2) * -1 + 4px);margin-bottom:var(--s5);}
.entry .geo-fuente a{color:var(--gris);text-decoration:underline;text-underline-offset:3px;}
.entry .geo-fuente a:hover{color:var(--dorado);}
.entry h2{scroll-margin-top:calc(var(--header-h) + 24px);}
.entry h3{scroll-margin-top:calc(var(--header-h) + 24px);}

/* Índice de la página, generado por el tema */
.toc{background:var(--grafito);border-left:2px solid var(--dorado);padding:var(--s4);margin-block:var(--s5);}
.toc p{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gris);margin:0 0 var(--s2);}
.toc ol{counter-reset:t;margin:0;}
.toc li{margin-bottom:8px;padding-left:0;}
.toc li::before{display:none;}
.toc a{color:var(--blanco);text-decoration:none;font-weight:600;font-size:15px;}
.toc a:hover{color:var(--dorado);}

/* Casilla de consentimiento del formulario (revisión web v2, punto 31) */
.form__consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.5;color:#A6A6A6;cursor:pointer;}
.form__consent input{width:auto;flex:none;margin:3px 0 0;accent-color:var(--dorado);}
.form__consent a{color:inherit;text-decoration:underline;}

/* Tablas de 4+ columnas en móvil: desplazamiento horizontal en vez de celdas estrechas (revisión web v2, punto 71) */
@media (max-width:600px){ .table-scroll table:has(tr > :nth-child(4)){min-width:640px;} }

/* Formulario CF7: sin saltos extra y casilla alineada con el texto (revisión web v2) */
.wpcf7-form .form br{display:none;}
.wpcf7-form .form > p:not(.form__note),.wpcf7-form .form .full > p{margin:0;}
.form__consent p{margin:0;}
.form__consent .wpcf7-list-item{margin:0;display:block;}
.form__consent label{display:flex;gap:10px;align-items:flex-start;text-align:left;cursor:pointer;}
.form__consent input[type=checkbox]{width:16px;height:16px;min-height:0;padding:0;margin:3px 0 0;flex:none;accent-color:var(--dorado);}
.form__consent .wpcf7-list-item-label,.form__consent > span{font-size:13px;line-height:1.5;color:#A6A6A6;text-align:left;}
.form__consent small{display:block;font-size:11px;line-height:1.4;color:#8C8C8C;margin-top:2px;}

/* Aire entre el botón de cita y el separador del formulario */
.btn + .divider{margin-top:var(--s4);}


/* Revisión web v3, punto 7: el subtítulo del hero ocupa el mismo ancho que el nombre */
.hero__head{display:inline-block;max-width:100%;}
.hero__head .hero__lead{max-width:none;width:0;min-width:100%;}

/* Revisión web v3, punto 13: con Recursos en el menú, que ningún enlace parta en dos líneas en pantallas medias */
.nav-main a{white-space:nowrap;}
@media (min-width:861px) and (max-width:1180px){
  .nav-main ul{gap:14px;}
  .nav-main a{font-size:12px;letter-spacing:.06em;}
}
