/*
Theme Name: JMH Advisory
Theme URI: https://jmerchanhaz.com
Author: JMH Advisory
Author URI: https://jmerchanhaz.com
Description: Tema editorial para JMH Advisory. Estrategia regulatoria, incentivos y poder. Diseño limpio en negro, gris acero y royal blue, con retrato circular, formulario de inscripción y último análisis destacado.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
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: jmh-advisory
Tags: editorial, blog, one-column, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/

:root{
  --ink:        #0a0a0a;
  --ink-soft:   #1a1a1a;
  --steel:      #4a5562;
  --steel-2:    #6b7480;
  --steel-3:    #c9cdd3;
  --steel-4:    #e6e7ea;
  --royal:      #1d3fb5;
  --royal-deep: #15308a;
  --paper:      #f7f5ef;
  --paper-2:    #efece4;

  --serif: "Newsreader", "Times New Roman", Times, serif;
  --sans:  "Geist", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --mono:  "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; height:auto; display:block; }

/* WP a11y */
.screen-reader-text{
  border:0; clip:rect(1px,1px,1px,1px); -webkit-clip-path:inset(50%); clip-path:inset(50%);
  height:1px; margin:-1px; overflow:hidden; padding:0; position:absolute; width:1px; word-wrap:normal !important;
}
.skip-link{
  position:absolute; left:-9999px; top:0; background:var(--ink); color:var(--paper);
  padding:10px 14px; font-family:var(--mono); font-size:12px; z-index:9999;
}
.skip-link:focus{ left:8px; top:8px; }

/* ---------- layout shell ---------- */
.shell{
  max-width:1280px;
  margin:0 auto;
  padding:0 56px;
}
@media (max-width:780px){ .shell{ padding:0 22px; } }

.rule{ border:0; border-top:1px solid var(--steel-3); margin:0; }
.rule-soft{ border:0; border-top:1px solid var(--steel-4); margin:0; }
.rule-ink{ border:0; border-top:1px solid var(--ink); margin:0; }

/* ---------- top nav ---------- */
.topbar{
  display:flex; align-items:center; justify-content:center;
  gap:36px;
  padding:14px 0;
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--steel);
  flex-wrap:wrap;
}
.topbar a{ transition: color .18s ease; }
.topbar a:hover, .topbar a:focus, .topbar .current-menu-item > a{ color:var(--royal); }
.topbar ul.menu{ list-style:none; padding:0; margin:0; display:flex; gap:36px; flex-wrap:wrap; justify-content:center; }

/* ---------- masthead ---------- */
.masthead{
  padding:32px 0 18px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0;
  text-align:center;
}
.wordmark{
  font-family:var(--serif);
  font-weight:400;
  font-size:64px;
  line-height:.95;
  letter-spacing:-0.02em;
  color:var(--ink);
  margin:0;
}
.wordmark .dot{ color:var(--royal); }
.wordmark .it{ font-style:italic; font-weight:400; }
.tagline{
  margin-top:-4px;
  font-family:var(--serif);
  font-style:italic;
  font-size:16px;
  color:var(--steel);
}

/* ---------- hero ---------- */
.hero{
  display:grid;
  grid-template-columns: 1.05fr 1fr;
  gap:72px;
  padding:56px 0 72px;
  align-items:start;
}
@media (max-width:980px){
  .hero{ grid-template-columns:1fr; gap:48px; padding:36px 0 48px; }
}

/* portrait column */
.portrait-col{ position:relative; }
.portrait-wrap{
  position:relative;
  aspect-ratio:1/1;
  max-width:520px;
  margin:0 auto;
}
.portrait-ring{
  position:absolute; inset:-14px;
  border:1px solid var(--steel-3);
  border-radius:50%;
  pointer-events:none;
}
.portrait-ring.inner{ inset:6px; border:1px dashed transparent; }
.portrait-img,
.portrait-fallback{
  width:100%; height:100%;
  border-radius:50%;
  object-fit:cover;
  background:var(--paper-2);
  display:block;
}
.portrait-fallback{
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif);
  font-style:italic;
  color:var(--steel-2);
  font-size:14px;
  text-align:center;
  padding:24px;
}
.portrait-meta{
  margin-top:22px;
  display:flex;
  align-items:flex-start;
  gap:18px;
  max-width:520px;
  margin-left:auto; margin-right:auto;
}
.portrait-meta .sigil{
  font-family:var(--serif);
  font-style:italic;
  font-size:32px;
  line-height:1;
  color:var(--royal);
  margin-top:-4px;
}
.portrait-meta .cap{
  font-family:var(--serif);
  font-size:15px;
  line-height:1.45;
  color:var(--ink);
}
.portrait-meta .cap .role{
  display:block;
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--steel-2);
  margin-top:6px;
}

/* form column */
.eyebrow{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--royal);
  display:flex; align-items:center; gap:10px;
  margin-bottom:18px;
}
.eyebrow::before{ content:""; width:22px; height:1px; background:var(--royal); }

.headline{
  font-family:var(--serif);
  font-weight:400;
  font-size:58px;
  line-height:1.02;
  letter-spacing:-0.02em;
  color:var(--ink);
  margin:0 0 18px;
}
.headline em{ font-style:italic; color:var(--royal); font-weight:400; }
.lede{
  font-family:var(--serif);
  font-size:19px;
  line-height:1.5;
  color:var(--steel);
  margin:0 0 30px;
  max-width:46ch;
}
.lede b{ color:var(--ink); font-weight:500; }

.form{
  border-top:1px solid var(--ink);
  padding-top:22px;
  max-width:520px;
}
.form .row{ display:grid; grid-template-columns: 1fr 1fr; gap:14px; }
.field{ display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.field label{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--steel-2);
}
.field input{
  appearance:none;
  border:0;
  border-bottom:1px solid var(--steel-3);
  background:transparent;
  padding:8px 0 9px;
  font-family:var(--sans);
  font-size:15px;
  color:var(--ink);
  outline:none;
  transition: border-color .2s ease;
  border-radius:0;
}
.field input::placeholder{ color:#a7adb6; }
.field input:focus{ border-color:var(--royal); }

.consent{
  margin:22px 0 24px;
  padding:16px 0 0;
  border-top:1px solid var(--steel-4);
}
.opt{
  display:flex; gap:10px; align-items:flex-start;
  cursor:pointer;
  font-size:13px;
  color:var(--ink);
  line-height:1.35;
  position:relative;
}
.opt input{ position:absolute; opacity:0; pointer-events:none; }
.opt .box{
  width:14px; height:14px; border:1px solid var(--steel); border-radius:2px;
  display:inline-flex; align-items:center; justify-content:center;
  margin-top:2px; flex:0 0 14px;
  background:var(--paper);
  transition: all .15s ease;
}
.opt input:checked + .box{ background:var(--royal); border-color:var(--royal); }
.opt input:checked + .box::after{
  content:""; width:7px; height:4px;
  border-left:1.5px solid var(--paper);
  border-bottom:1.5px solid var(--paper);
  transform: translateY(-1px) rotate(-45deg);
}
.opt-consent .lbl{
  font-family:var(--serif);
  font-size:14px;
  line-height:1.45;
  color:var(--ink);
  max-width:48ch;
}
.opt .lbl small{
  display:block;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.06em;
  color:var(--steel-2);
  text-transform:uppercase;
  margin-top:1px;
}

.cta-row{ display:flex; align-items:center; gap:22px; margin-top:8px; }
.btn{
  appearance:none; border:0; cursor:pointer;
  font-family:var(--sans);
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--paper);
  background:var(--ink);
  padding:16px 26px;
  display:inline-flex; align-items:center; gap:10px;
  transition: background .18s ease, transform .18s ease;
  border-radius:0;
}
.btn:hover, .btn:focus{ background:var(--royal); }
.btn .arr{ display:inline-block; transition: transform .2s ease; }
.btn:hover .arr{ transform: translateX(4px); }

.form-notice{
  margin:0 0 16px;
  padding:12px 14px;
  border-left:2px solid var(--royal);
  background:var(--paper-2);
  font-family:var(--serif);
  font-size:14px;
  color:var(--ink);
}
.form-notice.is-error{ border-color:#a8341f; }

/* ---------- latest post ---------- */
.section-hd{
  display:flex; align-items:baseline; justify-content:space-between;
  margin-bottom:22px;
  gap:24px;
  flex-wrap:wrap;
}
.section-hd .t{
  font-family:var(--serif);
  font-size:13px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink);
}
.section-hd .t::before{ content:"§ "; color:var(--royal); font-style:italic; }
.section-hd .a{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--steel-2);
}
.section-hd .a:hover{ color:var(--royal); }

.post{
  display:block;
  padding:34px 0 64px;
  border-top:2px solid var(--ink);
}
.post-body{ max-width:78ch; margin:0 auto; }

/* Último análisis destacado: doble ancho respecto al cuerpo editorial estándar.
   Se aplica solo en portada para no alterar entradas individuales ni páginas internas. */
.latest-post .post-body{
  max-width:min(156ch, 100%);
}
.latest-post .post-deck{
  max-width:108ch;
}
.latest-post .dropcap{
  max-width:116ch;
}
@media (max-width:780px){
  .latest-post .post-body,
  .latest-post .post-deck,
  .latest-post .dropcap{
    max-width:100%;
  }
}

.post-meta{
  display:flex; gap:18px; align-items:center;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--steel-2);
  margin-bottom:18px;
  flex-wrap:wrap;
}
.post-meta .kicker{
  color:var(--royal);
  border-bottom:1px solid var(--royal);
  padding-bottom:1px;
}
.post-title{
  font-family:var(--serif);
  font-weight:400;
  font-size:46px;
  line-height:1.03;
  letter-spacing:-0.015em;
  margin:0 0 16px;
  color:var(--ink);
  text-wrap:balance;
}
.post-title a{ color:inherit; }
.post-title a:hover{ color:var(--royal); }
.post-title em{ font-style:italic; color:var(--royal); font-weight:400; }
.post-deck{
  font-family:var(--serif);
  font-size:18px;
  line-height:1.5;
  color:var(--steel);
  margin:0 0 22px;
  max-width:54ch;
}

.dropcap{
  font-family:var(--serif);
  color:var(--ink);
  font-size:15px;
  line-height:1.65;
  margin:0 0 14px;
  max-width:58ch;
}
.dropcap::first-letter{
  font-family:var(--serif);
  font-style:italic;
  font-weight:400;
  color:var(--royal);
  float:left;
  font-size:62px;
  line-height:.85;
  padding:6px 10px 0 0;
}

.pull{
  border-left:2px solid var(--royal);
  padding:8px 0 8px 22px;
  margin:18px 0 22px;
  font-family:var(--serif);
  font-style:italic;
  font-size:22px;
  line-height:1.35;
  color:var(--ink);
  max-width:50ch;
}
.pull cite{
  display:block;
  margin-top:10px;
  font-style:normal;
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--steel-2);
}

.post-cta{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono);
  font-size:11.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink);
  border-bottom:1px solid var(--ink);
  padding-bottom:3px;
  margin-top:6px;
  transition: color .2s ease, border-color .2s ease;
}
.post-cta:hover{ color:var(--royal); border-color:var(--royal); }

/* archive list */
.archive{
  border-top:1px solid var(--steel-3);
  padding:24px 0 80px;
}
.archive .hd{
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--steel-2);
  margin-bottom:14px;
}
.archive ul{ list-style:none; padding:0; margin:0; }
.archive li{
  display:grid;
  grid-template-columns: 90px 1fr auto;
  gap:24px;
  align-items:baseline;
  padding:14px 0;
  border-bottom:1px solid var(--steel-4);
}
.archive li:hover .a-title{ color:var(--royal); }
.a-date{
  font-family:var(--mono);
  font-size:11px;
  color:var(--steel-2);
  letter-spacing:.06em;
}
.a-title{
  font-family:var(--serif);
  font-size:19px;
  line-height:1.3;
  color:var(--ink);
  transition: color .2s ease;
}
.a-title em{ font-style:italic; color:var(--royal); }
.a-tag{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--steel-2);
}
@media (max-width:680px){
  .archive li{ grid-template-columns: 1fr; gap:4px; }
  .a-tag{ justify-self:start; }
}

/* ---------- footer ---------- */
footer.site-footer{
  border-top:1px solid var(--ink);
  padding:38px 0 56px;
  color:var(--steel);
  font-size:12.5px;
}
.ft-grid{
  display:grid;
  grid-template-columns: 2fr 1fr;
  gap:48px;
}
@media (max-width:780px){ .ft-grid{ grid-template-columns:1fr; gap:28px; } }

.site-footer h5{
  margin:0 0 12px;
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--steel-2);
  font-weight:500;
}
.ft-mark{
  font-family:var(--serif);
  font-size:28px;
  line-height:1;
  color:var(--ink);
  letter-spacing:-0.01em;
  margin-bottom:10px;
}
.ft-mark .dot{ color:var(--royal); }
.site-footer ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px; }
.site-footer a:hover{ color:var(--royal); }
.legal{
  margin-top:36px;
  display:flex; justify-content:space-between; gap:24px;
  flex-wrap:wrap;
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--steel-2);
}

/* singular post / page */
.entry{ max-width:78ch; margin:36px auto 80px; padding:0 12px; }
.entry .post-title{ font-size:54px; margin-bottom:18px; }
.entry-content{
  font-family:var(--serif);
  font-size:17px;
  line-height:1.7;
  color:var(--ink);
}
.entry-content h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:30px;
  letter-spacing:-0.01em;
  margin:38px 0 12px;
}
.entry-content h3{
  font-family:var(--serif);
  font-weight:500;
  font-size:22px;
  margin:30px 0 8px;
}
.entry-content a{ color:var(--royal); border-bottom:1px solid var(--royal); }
.entry-content blockquote{
  border-left:2px solid var(--royal);
  padding:6px 0 6px 22px;
  margin:18px 0;
  font-style:italic;
  color:var(--steel);
}
.entry-content img{ margin:24px 0; }

/* 404 */
.notfound{
  text-align:center;
  padding:140px 0 160px;
}
.notfound .big{
  font-family:var(--serif);
  font-size:120px;
  line-height:1;
  color:var(--royal);
  font-style:italic;
}
.notfound h1{
  font-family:var(--serif);
  font-weight:400;
  font-size:32px;
  margin:6px 0 12px;
}

/* pagination */
.pagination{
  margin:30px 0 60px;
  display:flex; gap:10px; justify-content:center;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.pagination a, .pagination span{
  padding:8px 12px; border:1px solid var(--steel-3); color:var(--ink);
}
.pagination .current{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
