:root{
      --bg:#F7F5EF;
      --bg-soft:#F1EDE4;
      --ink:#0A0A0A;
      --blue:#1D3FB5;
      --muted:#6B7480;
      --line:#D8CFC0;
      --white:#FFFDF8;
      --max:1380px;
      --pad:clamp(20px,4vw,72px);
      --section:clamp(96px,12vw,190px);
      --ease:cubic-bezier(.22,.61,.36,1);
      --header-h:82px;
      --grid-size:48px;
    }

    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      background:var(--bg);
      color:var(--ink);
      font-family:"Jost",sans-serif;
      font-weight:300;
      line-height:1.55;
      text-rendering:optimizeLegibility;
      -webkit-font-smoothing:antialiased;
      overflow-x:hidden;
    }

    body::before{
      content:"";
      position:fixed;
      inset:0;
      z-index:-3;
      pointer-events:none;
      background:
        linear-gradient(rgba(10,10,10,.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(10,10,10,.045) 1px, transparent 1px);
      background-size:var(--grid-size) var(--grid-size);
      mask-image:linear-gradient(to bottom, #000 0%, rgba(0,0,0,.78) 62%, transparent 100%);
    }

    body::after{
      content:"";
      position:fixed;
      width:42vw;
      aspect-ratio:1;
      left:var(--pointer-x,70vw);
      top:var(--pointer-y,22vh);
      transform:translate(-50%,-50%);
      border-radius:50%;
      z-index:-2;
      pointer-events:none;
      background:radial-gradient(circle, rgba(29,63,181,.075) 0%, rgba(29,63,181,.025) 32%, transparent 68%);
      transition:left .18s linear, top .18s linear;
    }

    ::selection{background:rgba(29,63,181,.18)}
    a{color:inherit;text-decoration:none}
    button,input,textarea{font:inherit}
    button{color:inherit}
    img{max-width:100%;display:block}

    .shell{
      width:min(calc(100% - (var(--pad) * 2)), var(--max));
      margin-inline:auto;
    }

    .eyebrow,
    .index,
    .mono{
      font-family:"IBM Plex Mono",monospace;
      text-transform:uppercase;
    }

    .eyebrow{
      font-size:.68rem;
      letter-spacing:.18em;
      color:var(--blue);
    }

    .index{
      font-size:.68rem;
      letter-spacing:.14em;
      color:var(--muted);
    }

    .display{
      margin:0;
      font-family:"Newsreader",serif;
      font-weight:300;
      letter-spacing:-.046em;
      line-height:.91;
      text-wrap:balance;
    }

    .muted{color:var(--muted)}

    .screen-noise{
      position:fixed;
      inset:0;
      z-index:100;
      pointer-events:none;
      opacity:.12;
      mix-blend-mode:multiply;
      background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E");
    }

    .progress{
      position:fixed;
      inset:0 auto auto 0;
      width:var(--scroll-progress,0%);
      height:2px;
      background:var(--blue);
      z-index:101;
    }

    .site-header{
      position:fixed;
      inset:0 0 auto;
      z-index:80;
      background:rgba(247,245,239,.76);
      backdrop-filter:blur(18px) saturate(1.1);
      border-bottom:1px solid rgba(216,207,192,.84);
    }

    .header-grid{
      min-height:var(--header-h);
      display:grid;
      grid-template-columns:auto 1fr auto;
      align-items:center;
      gap:30px;
    }

    .brand{
      display:inline-flex;
      align-items:center;
      gap:11px;
      white-space:nowrap;
      font-family:"Newsreader",serif;
      font-size:1.26rem;
      letter-spacing:-.02em;
    }

    .newsreader-italic{
      font-family:"Newsreader",serif;
      font-style:italic;
      font-weight:300;
    }

    .brand-mark{
      position:relative;
      width:13px;
      height:13px;
      border:1px solid var(--blue);
      border-radius:50%;
    }

    .brand-mark::before,
    .brand-mark::after{
      content:"";
      position:absolute;
      background:var(--blue);
    }

    .brand-mark::before{width:1px;height:21px;left:5px;top:-5px}
    .brand-mark::after{height:1px;width:21px;top:5px;left:-5px}

    .nav-wrap{display:flex;align-items:center;gap:20px}

    .nav-links{
      display:flex;
      align-items:center;
      gap:clamp(16px,2vw,34px);
      font-family:"IBM Plex Mono",monospace;
      font-size:.64rem;
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    .nav-links a{
      position:relative;
      padding:9px 0;
      color:#2e3035;
    }

    .nav-links a::after{
      content:"";
      position:absolute;
      left:0;
      right:0;
      bottom:4px;
      height:1px;
      background:var(--blue);
      transform:scaleX(0);
      transform-origin:right;
      transition:transform .3s var(--ease);
    }

    .nav-links a:hover::after,
    .nav-links a.active::after{
      transform:scaleX(1);
      transform-origin:left;
    }

    .menu-btn{
      display:none;
      border:0;
      background:transparent;
      width:42px;
      height:42px;
      padding:8px;
      cursor:pointer;
    }

    .menu-btn span{
      display:block;
      width:25px;
      height:1px;
      background:var(--ink);
      margin:6px auto;
      transition:transform .25s var(--ease), opacity .25s var(--ease);
    }

    .menu-btn[aria-expanded="true"] span:first-child{transform:translateY(3.5px) rotate(45deg)}
    .menu-btn[aria-expanded="true"] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}

    main{padding-top:var(--header-h)}

    .hero{
      position:relative;
      min-height:calc(100svh - var(--header-h));
      display:grid;
      align-items:stretch;
      overflow:hidden;
      border-bottom:1px solid var(--line);
    }

    .hero::before{
      content:"";
      position:absolute;
      inset:0;
      pointer-events:none;
      background:
        linear-gradient(90deg, transparent 0 49.95%, rgba(10,10,10,.075) 50%, transparent 50.05%),
        linear-gradient(180deg, transparent 0 72%, rgba(10,10,10,.075) 72.05%, transparent 72.1%);
    }

    .hero-grid{
      min-height:inherit;
      display:grid;
      grid-template-columns:minmax(0,1.12fr) minmax(390px,.88fr);
      gap:0;
      position:relative;
    }

    .hero-copy{
      display:flex;
      flex-direction:column;
      justify-content:center;
      padding:clamp(70px,9vw,140px) clamp(44px,7vw,110px) clamp(60px,8vw,108px) 0;
      border-right:1px solid var(--line);
    }

    .hero-kicker{
      display:flex;
      align-items:center;
      gap:18px;
      margin-bottom:clamp(28px,4vw,54px);
    }

    .hero-kicker::after{
      content:"";
      height:1px;
      width:min(180px,18vw);
      background:var(--blue);
    }

    .hero h1{
      max-width:940px;
      font-size:clamp(4.35rem,8.2vw,9rem);
    }

    .hero h1 .signal{
      position:relative;
      color:var(--blue);
      font-family:"Newsreader",serif;
      font-style:italic;
      font-weight:300;
    }

    .hero h1 .signal::after{
      content:"";
      position:absolute;
      left:0;
      right:0;
      bottom:.06em;
      height:1px;
      background:currentColor;
      opacity:.5;
    }

    .hero-lead{
      max-width:690px;
      margin:clamp(30px,4vw,54px) 0 0;
      display:grid;
      grid-template-columns:auto 1fr;
      gap:14px;
      align-items:start;
      font-size:clamp(1rem,1.3vw,1.22rem);
      color:#34363b;
    }

    .hero-lead::before{
      content:"↳";
      margin-top:.02em;
      color:var(--blue);
      font-family:"IBM Plex Mono",monospace;
      font-size:1.02em;
      line-height:1.55;
    }

    .actions{
      display:flex;
      flex-wrap:wrap;
      gap:12px;
      margin-top:clamp(32px,4vw,50px);
    }

    .btn{
      position:relative;
      isolation:isolate;
      min-height:52px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:12px;
      padding:0 22px;
      border:1px solid var(--ink);
      overflow:hidden;
      font-family:"IBM Plex Mono",monospace;
      font-size:.66rem;
      letter-spacing:.13em;
      text-transform:uppercase;
      cursor:pointer;
      transition:color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
    }

    .btn::before{
      content:"";
      position:absolute;
      inset:0;
      z-index:-1;
      background:var(--blue);
      transform:translateX(-102%);
      transition:transform .35s var(--ease);
    }

    .btn::after{
      content:"↗";
      font-size:.82rem;
      transition:transform .3s var(--ease);
    }

    .btn:hover{color:var(--bg);border-color:var(--blue);transform:translateY(-2px)}
    .btn:hover::before{transform:none}
    .btn:hover::after{transform:translate(2px,-2px)}

    .btn.primary{background:var(--ink);color:var(--bg)}
    .btn.primary::before{background:var(--blue)}
    .btn.secondary::before{background:var(--ink)}

    .hero-visual{
      position:relative;
      min-height:670px;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      padding:clamp(54px,6vw,92px) 0 clamp(52px,6vw,88px) clamp(42px,5vw,80px);
    }

    .coordinate{
      position:absolute;
      font-family:"IBM Plex Mono",monospace;
      font-size:.59rem;
      color:var(--muted);
      letter-spacing:.08em;
      text-transform:uppercase;
    }

    .coordinate.top{top:32px;left:36px}
    .coordinate.bottom{bottom:28px;right:0}

    .decision-system{
      position:relative;
      width:min(100%,560px);
      aspect-ratio:1;
    }

    .decision-caption{
      margin-top:clamp(22px,3vw,38px);
      font-family:"IBM Plex Mono",monospace;
      font-size:.64rem;
      letter-spacing:.18em;
      text-transform:uppercase;
      color:var(--blue);
      text-align:center;
    }

    .orbit{
      position:absolute;
      border:1px solid rgba(10,10,10,.17);
      border-radius:50%;
      transform:rotate(-12deg);
    }

    .orbit.o1{inset:3%;animation:spin 34s linear infinite}
    .orbit.o2{inset:19%;border-color:rgba(29,63,181,.35);animation:spin-reverse 24s linear infinite}
    .orbit.o3{inset:35%;border-style:dashed;border-color:rgba(10,10,10,.25);animation:spin 17s linear infinite}

    .orbit.o1::after,
    .orbit.o2::after,
    .orbit.o3::after{
      content:"";
      position:absolute;
      width:10px;
      height:10px;
      border:1px solid var(--blue);
      background:var(--bg);
      border-radius:50%;
      top:50%;
      right:-5px;
    }

    .orbit.o2::after{width:7px;height:7px;right:auto;left:-4px;top:25%;background:var(--blue)}
    .orbit.o3::after{width:5px;height:5px;top:auto;bottom:0;right:28%;background:var(--ink);border-color:var(--ink)}

    @keyframes spin{to{transform:rotate(348deg)}}
    @keyframes spin-reverse{to{transform:rotate(-372deg)}}

    .axis-line{
      position:absolute;
      left:7%;
      right:7%;
      top:50%;
      height:1px;
      background:rgba(10,10,10,.14);
      transform-origin:center;
    }

    .axis-line.a1{transform:rotate(0)}
    .axis-line.a2{transform:rotate(45deg)}
    .axis-line.a3{transform:rotate(90deg)}
    .axis-line.a4{transform:rotate(135deg)}

    .core{
      position:absolute;
      inset:42%;
      border-radius:50%;
      background:var(--blue);
      box-shadow:0 0 0 14px rgba(29,63,181,.08), 0 0 0 28px rgba(29,63,181,.035);
      display:grid;
      place-items:center;
      font-family:"IBM Plex Mono",monospace;
      font-size:.58rem;
      letter-spacing:.08em;
      color:var(--bg);
      text-transform:uppercase;
      text-align:center;
      animation:corePulse 3.6s ease-in-out infinite;
    }

    @keyframes corePulse{50%{box-shadow:0 0 0 20px rgba(29,63,181,.05),0 0 0 40px rgba(29,63,181,.018)}}

    .system-label{
      position:absolute;
      max-width:145px;
      font-family:"IBM Plex Mono",monospace;
      font-size:.57rem;
      letter-spacing:.09em;
      text-transform:uppercase;
      color:var(--muted);
      line-height:1.5;
    }

    .system-label::before{
      content:"";
      display:block;
      width:28px;
      height:1px;
      margin-bottom:8px;
      background:var(--blue);
    }

    .sl1{top:7%;left:0}
    .sl2{top:27%;right:-4%}
    .sl3{bottom:6%;right:8%}
    .sl4{bottom:18%;left:-1%}

    section.content-section{
      position:relative;
      padding-block:var(--section);
      border-bottom:1px solid var(--line);
    }

    .section-number{
      position:absolute;
      top:calc(var(--section) * .34);
      right:var(--pad);
      font-family:"Newsreader",serif;
      font-size:clamp(8rem,18vw,19rem);
      font-weight:300;
      line-height:.7;
      letter-spacing:-.08em;
      color:transparent;
      -webkit-text-stroke:1px rgba(29,63,181,.12);
      pointer-events:none;
      user-select:none;
    }

    .section-head{
      position:relative;
      z-index:1;
      display:grid;
      grid-template-columns:minmax(110px,.23fr) minmax(0,1.77fr);
      gap:clamp(26px,4vw,70px);
      align-items:start;
      margin-bottom:clamp(60px,8vw,114px);
    }

    .section-head h2{
      font-size:clamp(3.4rem,6.6vw,7.4rem);
      max-width:1080px;
    }

    .section-intro{
      grid-column:2;
      max-width:760px;
      margin:18px 0 0;
      display:grid;
      grid-template-columns:72px 1fr;
      gap:18px;
      color:var(--muted);
      font-size:clamp(1rem,1.25vw,1.15rem);
    }

    .section-intro::before{
      content:"";
      height:1px;
      margin-top:.75em;
      background:var(--blue);
    }

    .frictions{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      border-top:1px solid var(--ink);
      border-bottom:1px solid var(--ink);
    }

    .friction{
      position:relative;
      min-height:390px;
      padding:30px clamp(26px,3vw,44px) 38px;
      border-right:1px solid var(--ink);
      overflow:hidden;
      transition:background .35s var(--ease), color .35s var(--ease);
    }

    .friction:last-child{border-right:0}

    .friction::before{
      content:"";
      position:absolute;
      width:200px;
      height:200px;
      border:1px solid rgba(29,63,181,.24);
      border-radius:50%;
      right:-110px;
      bottom:-105px;
      transition:transform .5s var(--ease), border-color .35s var(--ease);
    }

    .friction:hover{background:var(--ink);color:var(--bg)}
    .friction:hover::before{transform:scale(1.65);border-color:rgba(156,176,255,.4)}
    .friction:hover .muted{color:rgba(247,245,239,.68)}
    .friction:hover .eyebrow{color:#9CB0FF}

    .friction h3{
      max-width:320px;
      margin:clamp(70px,8vw,124px) 0 17px;
      font-family:"Newsreader",serif;
      font-size:clamp(2rem,3vw,3.25rem);
      font-weight:300;
      line-height:1;
      letter-spacing:-.035em;
    }

    .friction p{max-width:360px;margin:0}

    .products-grid{
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:16px;
      align-items:stretch;
    }

    .product{
      position:relative;
      min-height:590px;
      height:100%;
      display:flex;
      flex-direction:column;
      padding:clamp(28px,3vw,44px);
      border:1px solid var(--ink);
      background:rgba(247,245,239,.62);
      overflow:hidden;
      transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease);
    }

    .product:nth-child(1),
    .product:nth-child(2),
    .product:nth-child(3){grid-column:auto;margin-top:0}

    .product::after{
      content:"";
      position:absolute;
      width:280px;
      height:280px;
      border:1px solid rgba(29,63,181,.16);
      border-radius:50%;
      top:-150px;
      right:-140px;
      transition:transform .6s var(--ease), background .5s var(--ease);
    }

    .product:hover{
      transform:translateY(-9px);
      background:var(--white);
      box-shadow:0 28px 80px rgba(10,10,10,.08);
    }

    .product:hover::after{transform:scale(1.75);background:rgba(29,63,181,.035)}

    .product-code{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:20px;
      padding-bottom:20px;
      border-bottom:1px solid var(--line);
    }

    .product-glyph{
      width:34px;
      height:34px;
      position:relative;
    }

    .product-glyph::before,
    .product-glyph::after{
      content:"";
      position:absolute;
      border:1px solid var(--blue);
    }

    .product-glyph::before{inset:0;border-radius:50%}
    .product-glyph::after{inset:8px;transform:rotate(45deg)}

    .product h3{
      margin:clamp(78px,9vw,140px) 0 19px;
      font-family:"Newsreader",serif;
      font-size:clamp(2.25rem,3.4vw,4rem);
      line-height:.98;
      font-weight:300;
      letter-spacing:-.04em;
    }

    .product p{margin:0;color:var(--muted);max-width:440px}

    .product ul{
      list-style:none;
      padding:0;
      margin:auto 0 0;
      border-top:1px solid var(--line);
    }

    .product li{
      position:relative;
      padding:13px 0 13px 22px;
      border-bottom:1px solid rgba(216,207,192,.75);
      font-size:.9rem;
    }

    .product li::before{
      content:"↳";
      position:absolute;
      left:0;
      top:13px;
      color:var(--blue);
      font-family:"IBM Plex Mono",monospace;
      font-size:.82rem;
      line-height:1.4;
    }

    .method{
      position:relative;
      padding-block:var(--section);
      background:var(--ink);
      color:var(--bg);
      overflow:hidden;
      border-bottom:1px solid var(--ink);
    }

    .method::before{
      content:"";
      position:absolute;
      inset:0;
      background:
        linear-gradient(rgba(247,245,239,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(247,245,239,.04) 1px, transparent 1px);
      background-size:48px 48px;
      mask-image:linear-gradient(90deg, transparent, #000 35%, #000 100%);
    }

    .method::after{
      content:"";
      position:absolute;
      width:min(68vw,980px);
      aspect-ratio:1;
      border:1px solid rgba(156,176,255,.16);
      border-radius:50%;
      left:-26vw;
      bottom:-70%;
    }

    .method-grid{
      position:relative;
      z-index:1;
      display:grid;
      grid-template-columns:minmax(300px,.74fr) minmax(0,1.26fr);
      gap:clamp(52px,8vw,138px);
      align-items:start;
    }

    .method-intro{position:sticky;top:calc(var(--header-h) + 44px)}
    .method .eyebrow{color:#9CB0FF}
    .method h2{font-size:clamp(4rem,7.2vw,8rem);margin-top:24px}

    .method-note{
      max-width:390px;
      margin:34px 0 0;
      padding-top:24px;
      border-top:1px solid rgba(247,245,239,.25);
      color:rgba(247,245,239,.55);
      font-family:"IBM Plex Mono",monospace;
      font-size:.62rem;
      letter-spacing:.08em;
      text-transform:uppercase;
    }

    .steps{counter-reset:step;border-top:1px solid rgba(247,245,239,.26)}

    .step{
      position:relative;
      display:grid;
      grid-template-columns:92px minmax(0,1fr) 18px;
      gap:24px;
      align-items:start;
      padding:34px 0 40px;
      border-bottom:1px solid rgba(247,245,239,.22);
      transition:padding-left .3s var(--ease), background .3s var(--ease);
    }

    .step:hover{padding-left:18px;background:linear-gradient(90deg,rgba(29,63,181,.18),transparent 60%)}

    .step-index{
      font-family:"IBM Plex Mono",monospace;
      font-size:.66rem;
      letter-spacing:.1em;
      color:#9CB0FF;
      padding-top:8px;
    }

    .step strong{
      display:block;
      margin-bottom:10px;
      font-family:"Newsreader",serif;
      font-size:clamp(2rem,3.3vw,3.7rem);
      line-height:1;
      font-weight:300;
      letter-spacing:-.035em;
    }

    .step p{max-width:700px;margin:0;color:rgba(247,245,239,.62)}

    .step-arrow{
      width:11px;
      height:11px;
      margin-top:10px;
      border-top:1px solid #9CB0FF;
      border-right:1px solid #9CB0FF;
      transform:rotate(45deg);
    }

    .sectors-layout{
      display:grid;
      grid-template-columns:minmax(0,1.12fr) minmax(300px,.58fr);
      gap:clamp(72px,10vw,180px);
      align-items:start;
    }

    .sector-intro{
      position:sticky;
      top:calc(var(--header-h) + 42px);
      min-width:0;
    }
    .sector-intro h2{
      max-width:100%;
      margin:27px 0 28px;
      font-size:clamp(3.65rem,5.8vw,6.55rem);
      text-wrap:balance;
    }
    .sector-intro p{max-width:460px;margin:0}

    .sector-list{
      position:relative;
      display:grid;
      grid-template-columns:minmax(0,1fr);
      row-gap:4px;
      width:min(100%,460px);
      margin-left:auto;
      justify-self:end;
      align-content:start;
    }

    .sector{
      min-height:auto;
      display:grid;
      grid-template-columns:auto minmax(0,1fr) auto;
      align-items:center;
      gap:11px;
      padding:9px 0;
      position:relative;
      transition:color .25s var(--ease), transform .25s var(--ease);
    }

    .sector::before{
      content:"↳";
      color:var(--blue);
      font-family:"IBM Plex Mono",monospace;
      font-size:.8rem;
      line-height:1;
    }

    .sector:hover{color:var(--blue);transform:translateX(4px)}

    .sector span{position:relative;z-index:1}
    .sector span:first-child{
      max-width:none;
      font-family:"Newsreader",serif;
      font-size:clamp(1.25rem,1.65vw,1.75rem);
      line-height:1.08;
      letter-spacing:-.02em;
    }
    .sector span:last-child{
      font-family:"IBM Plex Mono",monospace;
      font-size:.59rem;
      color:var(--muted);
    }
    .sector:hover span:last-child{color:var(--blue)}

    .editorial-grid{
      display:grid;
      grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);
      gap:clamp(28px,5vw,78px);
      align-items:start;
    }

    .featured{position:relative}

    .featured-visual{
      position:relative;
      min-height:clamp(440px,52vw,700px);
      overflow:hidden;
      background:var(--bg-soft);
      border:1px solid var(--ink);
    }

    .featured-visual::before{
      content:"";
      position:absolute;
      inset:0;
      background:
        linear-gradient(rgba(10,10,10,.075) 1px, transparent 1px),
        linear-gradient(90deg, rgba(10,10,10,.075) 1px, transparent 1px);
      background-size:40px 40px;
    }

    .scan{
      position:absolute;
      left:0;
      right:0;
      height:1px;
      top:8%;
      background:var(--blue);
      box-shadow:0 0 18px rgba(29,63,181,.42);
      animation:scan 5.8s ease-in-out infinite alternate;
    }

    @keyframes scan{to{top:91%}}

    .radar{
      position:absolute;
      width:72%;
      aspect-ratio:1;
      right:-18%;
      top:7%;
      border:1px solid var(--blue);
      border-radius:50%;
    }

    .radar::before,
    .radar::after{
      content:"";
      position:absolute;
      border:1px solid rgba(29,63,181,.42);
      border-radius:50%;
    }

    .radar::before{inset:17%}
    .radar::after{inset:35%;background:rgba(29,63,181,.05)}

    .radar-axis{
      position:absolute;
      left:14%;
      right:14%;
      top:50%;
      height:1px;
      background:rgba(29,63,181,.4);
      transform-origin:center;
    }

    .radar-axis.r1{transform:rotate(0)}
    .radar-axis.r2{transform:rotate(60deg)}
    .radar-axis.r3{transform:rotate(120deg)}

    .visual-code{
      position:absolute;
      left:28px;
      bottom:26px;
      right:28px;
      display:flex;
      justify-content:space-between;
      gap:20px;
      padding-top:16px;
      border-top:1px solid rgba(10,10,10,.3);
      font-family:"IBM Plex Mono",monospace;
      font-size:.59rem;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:var(--muted);
    }

    .featured-copy{
      position:relative;
      z-index:2;
      max-width:92%;
      margin:-78px 0 0 38px;
      padding:30px 34px 8px;
      background:var(--bg);
      border-top:1px solid var(--ink);
      border-left:1px solid var(--ink);
    }

    .featured h3{
      margin:16px 0 20px;
      font-family:"Newsreader",serif;
      font-size:clamp(2.5rem,4.3vw,5.2rem);
      font-weight:300;
      line-height:.95;
      letter-spacing:-.045em;
    }

    .featured p{max-width:660px;margin:0}

    .article-list{border-top:1px solid var(--ink)}

    .article{
      position:relative;
      padding:29px 26px 34px 0;
      border-bottom:1px solid var(--ink);
      overflow:hidden;
    }

    .article::before{
      content:"";
      position:absolute;
      left:0;
      top:0;
      bottom:0;
      width:0;
      background:rgba(29,63,181,.055);
      transition:width .35s var(--ease);
    }

    .article:hover::before{width:100%}
    .article > *{position:relative;z-index:1}

    .article h4{
      margin:14px 0 13px;
      font-family:"Newsreader",serif;
      font-size:clamp(1.7rem,2.55vw,2.85rem);
      line-height:1.02;
      letter-spacing:-.03em;
      font-weight:300;
    }

    .article p{margin:0}

    .article .article-cta{
      display:inline-flex;
      align-items:center;
      gap:8px;
      margin-top:18px;
      font-family:"IBM Plex Mono",monospace;
      font-size:.62rem;
      letter-spacing:.1em;
      text-transform:uppercase;
      color:var(--blue);
    }

    .article .article-title-link{
      display:block;
      margin:0;
      font-family:"Newsreader",serif;
      font-size:inherit;
      font-weight:300;
      line-height:inherit;
      letter-spacing:inherit;
      text-transform:none;
      color:inherit;
    }

    footer{
      padding:44px 0 34px;
      background:var(--ink);
      color:var(--bg);
      border-top:1px solid var(--ink);
    }

    .footer-grid{
      display:grid;
      grid-template-columns:1fr auto auto;
      gap:34px;
      align-items:end;
    }

    footer .brand{color:var(--bg)}
    footer .brand-mark{border-color:#9CB0FF}
    footer .brand-mark::before,
    footer .brand-mark::after{background:#9CB0FF}
    footer p{max-width:360px;margin:15px 0 0;color:rgba(247,245,239,.55)}

    .footer-links{
      display:flex;
      flex-wrap:wrap;
      gap:24px;
      font-family:"IBM Plex Mono",monospace;
      font-size:.62rem;
      letter-spacing:.1em;
      text-transform:uppercase;
      color:rgba(247,245,239,.68);
    }

    .footer-links a:hover{color:#9CB0FF}
    .footer-mono{
      font-family:"IBM Plex Mono",monospace;
      font-size:.61rem;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:rgba(247,245,239,.48);
    }

    .reveal{
      opacity:0;
      transform:translateY(26px);
      transition:opacity .82s var(--ease), transform .82s var(--ease);
    }

    .reveal.visible{opacity:1;transform:none}
    .stagger > *{transition-delay:calc(var(--i,0) * 70ms)}

    @media (max-width:1120px){
      .header-grid{grid-template-columns:auto 1fr}
      .nav-wrap{justify-self:end}
      .hero-grid{grid-template-columns:1fr minmax(350px,.78fr)}
      .hero h1{font-size:clamp(4rem,8vw,7.3rem)}
      .products-grid{grid-template-columns:repeat(2,1fr)}
      .product:nth-child(1),.product:nth-child(2),.product:nth-child(3){grid-column:auto;margin-top:0;min-height:500px}
    }

    @media (max-width:900px){
      :root{--header-h:76px}
      .nav-links{
        position:fixed;
        inset:var(--header-h) 0 auto;
        display:grid;
        gap:0;
        background:rgba(247,245,239,.97);
        backdrop-filter:blur(18px);
        border-bottom:1px solid var(--ink);
        transform:translateY(-130%);
        transition:transform .35s var(--ease);
      }
      .nav-links.open{transform:none}
      .nav-links a{padding:18px var(--pad);border-top:1px solid var(--line)}
      .menu-btn{display:block}
      .hero-grid{grid-template-columns:1fr}
      .hero-copy{min-height:calc(100svh - var(--header-h));padding-right:0;border-right:0}
      .hero-visual{min-height:620px;padding:70px 0;border-top:1px solid var(--line)}
      .section-head{grid-template-columns:1fr}
      .section-intro{grid-column:auto}
      .frictions{grid-template-columns:1fr}
      .friction{min-height:280px;border-right:0;border-bottom:1px solid var(--ink)}
      .friction:last-child{border-bottom:0}
      .friction h3{margin-top:62px}
      .method-grid,
      .sectors-layout,
      .editorial-grid{grid-template-columns:1fr}
      .method-intro,
      .sector-intro{position:static}
      .featured-copy{max-width:calc(100% - 28px);margin-left:28px}
    }

    @media (max-width:680px){
      :root{--grid-size:34px;--pad:20px}
      body::after{display:none}
      .hero-copy{padding-top:68px;padding-bottom:64px}
      .hero-kicker::after{width:52px}
      .hero h1{font-size:clamp(3.7rem,17vw,6rem)}
      .hero-lead{grid-template-columns:6px 1fr}
      .actions{display:grid}
      .btn{width:100%}
      .hero-visual{min-height:490px;padding:56px 0}
      .decision-system{width:min(100%,430px)}
      .system-label{font-size:.49rem;max-width:105px}
      .sl2{right:0}
      .section-number{display:none}
      .section-head h2{font-size:clamp(3.15rem,14vw,5rem)}
      .section-intro{grid-template-columns:36px 1fr}
      .products-grid{grid-template-columns:1fr}
      .product:nth-child(1),.product:nth-child(2),.product:nth-child(3){grid-column:auto;margin-top:0;min-height:510px}
      .method h2,.sector-intro h2{font-size:clamp(3.7rem,15vw,5.7rem)}
      .step{grid-template-columns:54px 1fr}
      .step-arrow{display:none}
      .sector-list{grid-template-columns:1fr}
      .sector{padding:8px 0}
      .featured-visual{min-height:430px}
      .featured-copy{max-width:100%;margin:-52px 0 0 16px;padding:24px 22px 8px}
      .visual-code{left:18px;right:18px;flex-direction:column;gap:6px}
      .footer-grid{grid-template-columns:1fr;align-items:start}
    }

    @media (prefers-reduced-motion:reduce){
      *,*::before,*::after{
        scroll-behavior:auto!important;
        animation-duration:.01ms!important;
        animation-iteration-count:1!important;
        transition-duration:.01ms!important;
      }
    }


    /* =========================================================
       LIQUID GLASS SYSTEM
       A single material language across navigation, cards,
       editorial modules, form and footer.
       ========================================================= */
    :root{
      --glass-bg:rgba(255,253,248,.46);
      --glass-bg-strong:rgba(255,253,248,.66);
      --glass-border:rgba(255,255,255,.74);
      --glass-edge:rgba(29,63,181,.13);
      --glass-shadow:0 24px 72px rgba(31,43,82,.10), 0 7px 22px rgba(10,10,10,.045);
      --glass-inset:inset 0 1px 0 rgba(255,255,255,.92), inset 0 -1px 0 rgba(29,63,181,.07);
      --glass-radius:32px;
      --glass-blur:blur(24px) saturate(145%);
    }

    body{
      background:
        radial-gradient(circle at 10% 5%, rgba(255,255,255,.98) 0, rgba(255,255,255,.34) 22%, transparent 42%),
        radial-gradient(circle at 88% 12%, rgba(29,63,181,.12) 0, rgba(29,63,181,.035) 25%, transparent 46%),
        radial-gradient(circle at 72% 78%, rgba(216,207,192,.52) 0, rgba(216,207,192,.16) 26%, transparent 49%),
        var(--bg);
      background-attachment:fixed;
    }

    body::before{opacity:.68}
    body::after{
      width:48vw;
      background:radial-gradient(circle, rgba(29,63,181,.11) 0%, rgba(29,63,181,.038) 30%, transparent 67%);
      filter:blur(6px);
    }

    .screen-noise{opacity:.055}

    .site-header{
      inset:0 0 auto;
      padding-top:12px;
      background:transparent;
      border:0;
      backdrop-filter:none;
      -webkit-backdrop-filter:none;
    }

    .header-grid{
      min-height:64px;
      grid-template-columns:auto 1fr;
      padding:0 clamp(17px,2vw,28px);
      border:1px solid var(--glass-border);
      border-radius:999px;
      background:
        linear-gradient(135deg, rgba(255,255,255,.78), rgba(255,255,255,.28) 48%, rgba(29,63,181,.055)),
        var(--glass-bg);
      backdrop-filter:var(--glass-blur);
      -webkit-backdrop-filter:var(--glass-blur);
      box-shadow:var(--glass-inset), 0 14px 42px rgba(31,43,82,.11);
    }

    .nav-wrap{justify-self:end}
    main{padding-top:calc(var(--header-h) + 8px)}

    .brand-mark{
      background:rgba(255,255,255,.28);
      box-shadow:0 0 0 5px rgba(29,63,181,.055), inset 0 0 10px rgba(255,255,255,.8);
    }

    .hero{
      padding:14px 0 34px;
      border-bottom:0;
      overflow:hidden;
      isolation:isolate;
    }

    .hero::before{
      inset:auto -11vw 1% auto;
      width:min(56vw,860px);
      height:min(56vw,860px);
      border-radius:43% 57% 63% 37% / 39% 42% 58% 61%;
      background:radial-gradient(circle at 34% 32%, rgba(255,255,255,.82), rgba(29,63,181,.13) 28%, rgba(29,63,181,.025) 55%, transparent 71%);
      filter:blur(18px);
      opacity:.72;
      animation:liquidDrift 15s ease-in-out infinite alternate;
      z-index:-1;
    }

    .hero::after{
      content:"";
      position:absolute;
      width:min(32vw,520px);
      aspect-ratio:1.12;
      left:-8vw;
      top:9%;
      border-radius:61% 39% 45% 55% / 52% 61% 39% 48%;
      background:radial-gradient(circle at 68% 38%, rgba(255,255,255,.72), rgba(216,207,192,.27) 40%, transparent 72%);
      filter:blur(22px);
      opacity:.64;
      animation:liquidDriftReverse 18s ease-in-out infinite alternate;
      z-index:-1;
      pointer-events:none;
    }

    @keyframes liquidDrift{
      from{transform:translate3d(0,0,0) rotate(-3deg) scale(1)}
      to{transform:translate3d(-4%,3%,0) rotate(8deg) scale(1.08)}
    }

    @keyframes liquidDriftReverse{
      from{transform:translate3d(0,0,0) rotate(4deg) scale(1.04)}
      to{transform:translate3d(5%,-4%,0) rotate(-7deg) scale(.96)}
    }

    .hero-grid{
      gap:clamp(14px,2vw,24px);
      padding-block:8px;
    }

    .hero-copy,
    .hero-visual{
      border:1px solid var(--glass-border);
      border-radius:clamp(27px,3vw,42px);
      background:
        radial-gradient(circle at 12% 4%, rgba(255,255,255,.92), transparent 34%),
        linear-gradient(145deg, rgba(255,255,255,.61), rgba(255,255,255,.18) 54%, rgba(29,63,181,.05)),
        var(--glass-bg);
      backdrop-filter:var(--glass-blur);
      -webkit-backdrop-filter:var(--glass-blur);
      box-shadow:var(--glass-inset), var(--glass-shadow);
    }

    .hero-copy{
      padding:clamp(58px,7.4vw,110px) clamp(34px,6vw,88px);
      border-right:1px solid var(--glass-border);
    }

    .hero-visual{
      padding:clamp(56px,6vw,92px) clamp(28px,4vw,64px);
      overflow:hidden;
    }

    .hero-visual::before{
      content:"";
      position:absolute;
      width:58%;
      aspect-ratio:1;
      top:-23%;
      right:-18%;
      border-radius:50%;
      background:radial-gradient(circle at 36% 36%, rgba(255,255,255,.72), rgba(29,63,181,.12) 34%, transparent 69%);
      filter:blur(14px);
      pointer-events:none;
    }

    .decision-system{filter:drop-shadow(0 18px 34px rgba(29,63,181,.10))}
    .orbit{border-color:rgba(10,10,10,.19);box-shadow:inset 0 0 28px rgba(255,255,255,.23)}
    .orbit.o2{border-color:rgba(29,63,181,.44)}
    .orbit.o1::after,.orbit.o2::after,.orbit.o3::after{
      background:rgba(255,253,248,.78);
      backdrop-filter:blur(8px);
      -webkit-backdrop-filter:blur(8px);
      box-shadow:0 5px 14px rgba(29,63,181,.16), inset 0 1px 0 rgba(255,255,255,.9);
    }
    .core{
      background:linear-gradient(145deg, #3154c9, var(--blue) 52%, #142d84);
      box-shadow:0 0 0 14px rgba(29,63,181,.08), 0 0 0 28px rgba(29,63,181,.035), inset 0 1px 1px rgba(255,255,255,.42), 0 18px 38px rgba(29,63,181,.26);
    }

    .btn{
      border-color:rgba(10,10,10,.56);
      border-radius:999px;
      background:
        linear-gradient(145deg, rgba(255,255,255,.58), rgba(255,255,255,.14)),
        rgba(255,253,248,.42);
      backdrop-filter:blur(16px) saturate(150%);
      -webkit-backdrop-filter:blur(16px) saturate(150%);
      box-shadow:inset 0 1px 0 rgba(255,255,255,.8), 0 9px 24px rgba(31,43,82,.075);
    }

    .btn.primary{
      background:linear-gradient(145deg, rgba(40,40,43,.95), rgba(10,10,10,.88));
      box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 12px 30px rgba(10,10,10,.15);
    }

    section.content-section{border-bottom:0;isolation:isolate}

    .frictions{
      gap:14px;
      border:0;
    }

    .friction{
      border:1px solid var(--glass-border);
      border-radius:var(--glass-radius);
      background:
        linear-gradient(145deg, rgba(255,255,255,.68), rgba(255,255,255,.20) 58%, rgba(29,63,181,.04)),
        var(--glass-bg);
      backdrop-filter:var(--glass-blur);
      -webkit-backdrop-filter:var(--glass-blur);
      box-shadow:var(--glass-inset), var(--glass-shadow);
    }

    .friction:last-child{border-right:1px solid var(--glass-border)}
    .friction:hover{
      color:var(--bg);
      background:
        radial-gradient(circle at 85% 5%, rgba(92,123,230,.48), transparent 37%),
        linear-gradient(145deg, rgba(35,53,120,.95), rgba(10,10,10,.93));
      transform:translateY(-6px);
      box-shadow:inset 0 1px 0 rgba(255,255,255,.20), 0 30px 80px rgba(16,26,67,.20);
    }

    .product{
      border:1px solid var(--glass-border);
      border-radius:var(--glass-radius);
      background:
        radial-gradient(circle at 12% 0%, rgba(255,255,255,.9), transparent 30%),
        linear-gradient(145deg, rgba(255,255,255,.66), rgba(255,255,255,.18) 58%, rgba(29,63,181,.045)),
        var(--glass-bg);
      backdrop-filter:var(--glass-blur);
      -webkit-backdrop-filter:var(--glass-blur);
      box-shadow:var(--glass-inset), var(--glass-shadow);
    }

    .product:hover{
      background:
        radial-gradient(circle at 16% 0%, rgba(255,255,255,.98), transparent 32%),
        linear-gradient(145deg, rgba(255,255,255,.78), rgba(255,255,255,.34) 56%, rgba(29,63,181,.075)),
        var(--glass-bg-strong);
      box-shadow:var(--glass-inset), 0 34px 90px rgba(31,43,82,.15);
    }

    .product-code,
    .product ul{border-color:rgba(107,116,128,.24)}
    .product li{border-color:rgba(107,116,128,.16)}

    .method{
      background:
        radial-gradient(circle at 8% 12%, rgba(29,63,181,.32), transparent 27%),
        radial-gradient(circle at 94% 88%, rgba(156,176,255,.15), transparent 30%),
        var(--ink);
    }

    .method-grid{gap:clamp(18px,3vw,34px)}

    .method-intro,
    .steps{
      border:1px solid rgba(255,255,255,.13);
      border-radius:var(--glass-radius);
      background:
        linear-gradient(145deg, rgba(255,255,255,.105), rgba(255,255,255,.028) 58%, rgba(29,63,181,.12)),
        rgba(255,255,255,.025);
      backdrop-filter:blur(28px) saturate(135%);
      -webkit-backdrop-filter:blur(28px) saturate(135%);
      box-shadow:inset 0 1px 0 rgba(255,255,255,.14), inset 0 -1px 0 rgba(156,176,255,.06), 0 28px 80px rgba(0,0,0,.24);
    }

    .method-intro{padding:clamp(30px,4vw,52px)}
    .steps{padding:0 clamp(24px,3vw,44px);border-top:1px solid rgba(255,255,255,.13)}
    .step:last-child{border-bottom:0}

    .sector-list{
      padding:clamp(20px,2.5vw,32px);
      border:1px solid var(--glass-border);
      border-radius:var(--glass-radius);
      background:
        radial-gradient(circle at 4% 0%, rgba(255,255,255,.9), transparent 34%),
        linear-gradient(145deg, rgba(255,255,255,.60), rgba(255,255,255,.17) 64%, rgba(29,63,181,.05)),
        var(--glass-bg);
      backdrop-filter:var(--glass-blur);
      -webkit-backdrop-filter:var(--glass-blur);
      box-shadow:var(--glass-inset), var(--glass-shadow);
    }

    .sector{
      padding:11px 12px;
      border-radius:16px;
    }
    .sector:hover{background:rgba(255,255,255,.42)}

    .featured-visual{
      border:1px solid var(--glass-border);
      border-radius:var(--glass-radius);
      background:
        linear-gradient(145deg, rgba(255,255,255,.55), rgba(255,255,255,.12)),
        rgba(241,237,228,.56);
      backdrop-filter:var(--glass-blur);
      -webkit-backdrop-filter:var(--glass-blur);
      box-shadow:var(--glass-inset), var(--glass-shadow);
    }

    .featured-copy{
      border:1px solid var(--glass-border);
      border-radius:26px;
      background:
        linear-gradient(145deg, rgba(255,255,255,.80), rgba(255,255,255,.30)),
        rgba(247,245,239,.62);
      backdrop-filter:blur(22px) saturate(145%);
      -webkit-backdrop-filter:blur(22px) saturate(145%);
      box-shadow:var(--glass-inset), 0 22px 58px rgba(31,43,82,.11);
    }

    .article-list{
      padding:10px clamp(20px,2.6vw,34px);
      border:1px solid var(--glass-border);
      border-radius:var(--glass-radius);
      background:
        linear-gradient(145deg, rgba(255,255,255,.61), rgba(255,255,255,.16) 64%, rgba(29,63,181,.04)),
        var(--glass-bg);
      backdrop-filter:var(--glass-blur);
      -webkit-backdrop-filter:var(--glass-blur);
      box-shadow:var(--glass-inset), var(--glass-shadow);
      overflow:hidden;
    }

    .article{padding-right:0;border-color:rgba(107,116,128,.24)}
    .article:last-child{border-bottom:0}
    .article::before{background:linear-gradient(90deg,rgba(29,63,181,.09),rgba(255,255,255,.20))}

    footer{
      padding:26px 0;
      background:
        radial-gradient(circle at 12% 0%, rgba(29,63,181,.35), transparent 30%),
        var(--ink);
      border-top:0;
    }

    footer .footer-grid{
      padding:clamp(24px,3vw,38px);
      border:1px solid rgba(255,255,255,.13);
      border-radius:var(--glass-radius);
      background:
        linear-gradient(145deg, rgba(255,255,255,.105), rgba(255,255,255,.025) 62%, rgba(29,63,181,.11)),
        rgba(255,255,255,.022);
      backdrop-filter:blur(26px) saturate(135%);
      -webkit-backdrop-filter:blur(26px) saturate(135%);
      box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 26px 68px rgba(0,0,0,.25);
    }

    @media (max-width:1120px){
      .header-grid{grid-template-columns:auto 1fr}
    }

    @media (max-width:900px){
      .site-header{padding-top:9px}
      .header-grid{min-height:60px}
      .nav-links{
        inset:calc(var(--header-h) + 4px) var(--pad) auto;
        border:1px solid var(--glass-border);
        border-radius:24px;
        background:
          linear-gradient(145deg, rgba(255,255,255,.84), rgba(255,255,255,.42)),
          rgba(247,245,239,.82);
        backdrop-filter:blur(26px) saturate(150%);
        -webkit-backdrop-filter:blur(26px) saturate(150%);
        box-shadow:var(--glass-inset), var(--glass-shadow);
        overflow:hidden;
      }
      .hero-copy{min-height:calc(100svh - var(--header-h) - 24px);border-right:1px solid var(--glass-border)}
      .hero-visual{border-top:1px solid var(--glass-border)}
      .friction{border-bottom:1px solid var(--glass-border)}
      .friction:last-child{border-bottom:1px solid var(--glass-border)}
      .method-intro{position:static}
    }

    @media (max-width:680px){
      :root{--glass-radius:25px}
      .site-header{padding-inline:4px}
      .header-grid{padding-inline:16px}
      .hero{padding-top:6px}
      .hero-grid{gap:12px}
      .hero-copy{padding:58px 25px 48px}
      .hero-visual{padding-inline:16px}
      .frictions{gap:12px}
      .product{border-radius:25px}
      .method-intro,.steps,.sector-list,.article-list,footer .footer-grid{border-radius:25px}
      .steps{padding-inline:20px}
      .featured-copy{border-radius:22px}
    }



    /* =========================================================
       FINAL CONTINUITY AND FIT CORRECTIONS
       ========================================================= */

    /* Sections 04 and 05 return to the same warm, light surface
       language used by sections 01 and 02. The opaque wash also
       prevents the fixed blue pointer glow from changing their tone. */
    #sectores,
    #analisis{
      background:
        radial-gradient(circle at 8% 4%, rgba(255,255,255,.78) 0, rgba(255,255,255,.30) 31%, transparent 52%),
        linear-gradient(180deg, rgba(247,245,239,.94), rgba(247,245,239,.97));
    }

    /* Keep the institutional-system card surface continuous.
       The previous pseudo-element could read as a rectangular
       blue gradient over the upper-right edge. */
    .hero-visual::before{
      content:none;
      display:none;
    }

    .hero-visual{
      isolation:isolate;
      overflow:hidden;
      background:
        radial-gradient(circle at 14% 5%, rgba(255,255,255,.92), transparent 35%),
        linear-gradient(145deg, rgba(255,255,255,.61), rgba(255,255,255,.18) 54%, rgba(29,63,181,.035)),
        var(--glass-bg);
      background-clip:padding-box;
    }

    /* Container-aware method title: no word can leave the glass card. */
    .method-intro{
      container-type:inline-size;
      overflow:hidden;
    }

    .method h2.method-title{
      max-width:100%;
      font-size:clamp(3rem,4.2vw,4.25rem);
      line-height:.92;
      letter-spacing:-.052em;
      text-wrap:initial;
      overflow-wrap:normal;
    }

    @supports (font-size:1cqi){
      .method h2.method-title{
        font-size:clamp(3rem,14cqi,4.25rem);
      }
    }

    .method-line{
      display:block;
      max-width:100%;
    }

    .method-fit{
      font-size:.78em;
      letter-spacing:-.055em;
      white-space:nowrap;
    }

    @media (max-width:900px){
      .method h2.method-title{
        font-size:clamp(3.15rem,10vw,4.4rem);
      }
      .method-fit{font-size:.88em}
    }

    @media (max-width:480px){
      .method h2.method-title{
        font-size:clamp(2.85rem,13.4vw,3.65rem);
      }
      .method-fit{font-size:.82em}
    }


    /* =========================================================
       UNIFIED HERO BACKGROUND
       All light sections share the same continuous backdrop as
       the hero. Section 03 / Método remains unchanged.
       ========================================================= */
    section.content-section{
      background:transparent;
    }

    #problema,
    #productos,
    #sectores,
    #analisis{
      background:transparent;
    }

    /* Remove the underline beneath “Certidumbre” in the hero. */
    .hero h1 .signal::after{
      content:none;
      display:none;
    }

    /* Keep the longer contact address readable in the footer. */
    .footer-links a[href^="mailto:"]{
      text-transform:none;
      letter-spacing:.04em;
      overflow-wrap:anywhere;
    }


    /* =========================================================
       FINAL BACKGROUND CONTINUITY + EDITORIAL CARD ALIGNMENT
       ========================================================= */

    /* Sections 04–06 use the exact same atmospheric surface as
       the hero. The fixed background coordinates prevent visible
       tonal resets between sections. Section 03 remains untouched. */
    #sectores,
    #analisis{
      background-color:var(--bg);
      background-image:
        radial-gradient(circle at 10% 5%, rgba(255,255,255,.98) 0, rgba(255,255,255,.34) 22%, transparent 42%),
        radial-gradient(circle at 88% 12%, rgba(29,63,181,.12) 0, rgba(29,63,181,.035) 25%, transparent 46%),
        radial-gradient(circle at 72% 78%, rgba(216,207,192,.52) 0, rgba(216,207,192,.16) 26%, transparent 49%);
      background-attachment:fixed;
      background-repeat:no-repeat;
    }

    /* The featured brief is now a single editorial glass card. */
    .editorial-grid{
      align-items:stretch;
    }

    .featured{
      display:flex;
      min-width:0;
      height:100%;
    }

    .featured-visual{
      display:none !important;
    }

    .featured-copy{
      width:100%;
      max-width:none;
      min-height:100%;
      margin:0;
      padding:clamp(34px,5vw,72px);
      display:flex;
      flex-direction:column;
      justify-content:flex-start;
      border-radius:var(--glass-radius);
    }

    .featured-copy .eyebrow{
      margin-bottom:auto;
      padding-bottom:clamp(54px,8vw,118px);
    }

    .featured-copy h3{
      max-width:13ch;
    }

    .featured-copy p{
      margin-top:clamp(24px,3vw,42px);
    }

    .article-list{
      height:100%;
    }

    @media (max-width:980px){
      #sectores,
      #analisis{
        background-attachment:scroll;
        background-position:center top;
      }

      .featured-copy{
        min-height:clamp(500px,72vw,700px);
      }
    }

    @media (max-width:680px){
      .featured-copy{
        min-height:auto;
        padding:32px 24px;
      }

      .featured-copy .eyebrow{
        margin-bottom:0;
        padding-bottom:52px;
      }
    }


    /* Centrado explícito del sistema institucional dentro de la tarjeta hero. */
    .hero-visual{
      align-items:center;
      padding-inline:clamp(28px,4vw,64px);
    }

    .decision-system,
    .decision-caption{
      align-self:center;
      margin-inline:auto;
    }

    .decision-system{
      width:min(calc(100% - 32px),560px);
    }

    @media (max-width:680px){
      .hero-visual{padding-inline:20px}
      .decision-system{width:min(calc(100% - 16px),430px)}
    }

    /* =========================================================
       WHITE ATMOSPHERIC FIELD + EXPANDED FEATURED PREVIEW
       Sections 04–06 share a continuous white surface with the
       hero's grid and restrained blue liquid-light gradients.
       Section 03 / Método remains untouched.
       ========================================================= */
    #sectores,
    #analisis{
      background-color:#FFFFFF;
      background-image:
        linear-gradient(rgba(10,10,10,.026) 1px, transparent 1px),
        linear-gradient(90deg, rgba(10,10,10,.026) 1px, transparent 1px),
        radial-gradient(circle at 8% 8%, rgba(255,255,255,1) 0%, rgba(255,255,255,.82) 25%, transparent 51%),
        radial-gradient(circle at 88% 14%, rgba(29,63,181,.115) 0%, rgba(29,63,181,.035) 25%, transparent 47%),
        radial-gradient(circle at 72% 82%, rgba(216,207,192,.20) 0%, rgba(216,207,192,.055) 28%, transparent 50%);
      background-size:
        var(--grid-size) var(--grid-size),
        var(--grid-size) var(--grid-size),
        auto,
        auto,
        auto;
      background-position:0 0,0 0,center top,center top,center top;
      background-repeat:repeat,repeat,no-repeat,no-repeat,no-repeat;
      background-attachment:fixed;
    }

    .featured-copy{
      justify-content:flex-start;
    }

    .featured-copy .eyebrow{
      margin-bottom:0;
      padding-bottom:clamp(30px,4vw,58px);
    }

    .featured-copy h3{
      max-width:14ch;
      margin-bottom:clamp(26px,3vw,42px);
    }

    .featured-preview{
      display:grid;
      gap:clamp(15px,1.8vw,24px);
      max-width:760px;
      font-size:clamp(.98rem,1.08vw,1.08rem);
      line-height:1.72;
    }

    .featured-preview p{
      max-width:none;
      margin:0;
    }

    .featured-topics{
      display:grid;
      gap:11px;
      margin-top:clamp(28px,4vw,50px);
      padding-top:clamp(22px,3vw,34px);
      border-top:1px solid rgba(107,116,128,.24);
      font-size:.88rem;
    }

    .featured-topics span{
      position:relative;
      padding-left:24px;
    }

    .featured-topics span::before{
      content:"↳";
      position:absolute;
      left:0;
      top:0;
      color:var(--blue);
      font-family:"IBM Plex Mono",monospace;
    }

    .featured-link{
      display:inline-flex;
      align-items:center;
      align-self:flex-start;
      gap:8px;
      margin-top:auto;
      padding-top:clamp(34px,5vw,68px);
      font-family:"IBM Plex Mono",monospace;
      font-size:.64rem;
      letter-spacing:.11em;
      text-transform:uppercase;
      color:var(--blue);
    }

    .featured-link:hover{
      text-decoration:underline;
      text-underline-offset:5px;
    }

    @media (max-width:980px){
      #sectores,
      #analisis{
        background-attachment:scroll;
        background-position:0 0,0 0,center top,center top,center top;
      }
    }

    @media (max-width:680px){
      .featured-preview{
        font-size:.96rem;
        line-height:1.65;
      }

      .featured-link{
        margin-top:34px;
        padding-top:0;
      }
    }

  

    /* Product cards reuse the exact JMH brand isotipo. */
    .product-brand-mark{
      flex:0 0 auto;
      width:13px;
      height:13px;
      margin-right:6px;
    }


/* =========================================================
   WORDPRESS INTEGRATION
   ========================================================= */
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.screen-reader-text:focus{clip:auto!important;width:auto;height:auto;display:block;top:10px;left:10px;z-index:100000;padding:12px 16px;background:#fff;color:#0A0A0A}
.admin-bar .site-header{top:32px}
.custom-logo-brand{display:flex;align-items:center}
.custom-logo-link{display:inline-flex;align-items:center}
.custom-logo{width:auto;max-height:40px}
.nav-links .nav-menu,.footer-menu{display:flex;align-items:center;gap:clamp(16px,2vw,34px);list-style:none;margin:0;padding:0}
.nav-links .nav-menu li,.footer-menu li{margin:0;padding:0}
.nav-links .nav-menu a{position:relative;display:block;padding:9px 0;color:#2e3035}
.nav-links .nav-menu a::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:right;transition:transform .3s var(--ease)}
.nav-links .nav-menu a:hover::after,.nav-links .nav-menu .current-menu-item>a::after,.nav-links .nav-menu a.active::after{transform:scaleX(1);transform-origin:left}
.footer-links{align-items:center}
.footer-links .footer-menu{gap:24px}
.footer-links .footer-menu a{text-transform:uppercase;letter-spacing:.1em}
.featured h3 a,.article h4 a{color:inherit}

/* Journal and archive views */
.journal-main,.single-main{padding-top:calc(var(--header-h) + 26px);min-height:70vh}
.journal-hero,.single-hero{padding:clamp(90px,10vw,150px) 0 clamp(62px,8vw,112px);border-bottom:1px solid rgba(216,207,192,.7)}
.journal-hero-grid{display:grid;grid-template-columns:minmax(110px,.23fr) minmax(0,1.77fr);gap:clamp(24px,4vw,70px);align-items:start}
.journal-hero h1{grid-column:2;font-size:clamp(4.2rem,8vw,9rem);max-width:1100px}
.journal-hero p,.archive-description{grid-column:2;max-width:720px;font-size:clamp(1rem,1.25vw,1.16rem)}
.archive-description p{margin:0}
.journal-section{padding:clamp(70px,9vw,130px) 0}
.journal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.journal-card{min-width:0;border:1px solid var(--glass-border);border-radius:var(--glass-radius);overflow:hidden;background:linear-gradient(145deg,rgba(255,255,255,.7),rgba(255,255,255,.18) 60%,rgba(29,63,181,.045)),var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--glass-inset),var(--glass-shadow);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.journal-card:hover{transform:translateY(-7px);box-shadow:var(--glass-inset),0 34px 90px rgba(31,43,82,.15)}
.journal-card-link{height:100%;display:flex;flex-direction:column;color:inherit}
.journal-card-media{aspect-ratio:16/9;overflow:hidden;border-bottom:1px solid rgba(107,116,128,.18)}
.journal-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.journal-card:hover .journal-card-media img{transform:scale(1.035)}
.journal-card-body{display:flex;flex:1;flex-direction:column;padding:clamp(27px,3vw,44px)}
.journal-card h2{margin:clamp(42px,6vw,78px) 0 18px;font-family:"Newsreader",serif;font-size:clamp(2rem,3vw,3.6rem);font-weight:300;line-height:.98;letter-spacing:-.04em}
.journal-card p{margin:0;max-width:600px}
.journal-card-action{margin-top:auto;padding-top:36px;font-family:"IBM Plex Mono",monospace;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--blue)}
.journal-pagination{margin-top:46px}
.navigation.pagination .nav-links{position:static;display:flex;transform:none;background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;gap:8px}
.navigation.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:42px;padding:0 12px;border:1px solid rgba(10,10,10,.28);border-radius:999px;font-family:"IBM Plex Mono",monospace;font-size:.62rem}
.navigation.pagination .current,.navigation.pagination a:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.empty-state{grid-column:1/-1;padding:clamp(42px,6vw,78px);border:1px solid var(--glass-border);border-radius:var(--glass-radius);background:var(--glass-bg);box-shadow:var(--glass-inset),var(--glass-shadow)}
.empty-state h2{font-family:"Newsreader",serif;font-size:clamp(2.5rem,5vw,5rem);font-weight:300;margin:28px 0 15px}

/* Single post and page */
.single-hero-grid{display:grid;grid-template-columns:minmax(170px,.35fr) minmax(0,1.65fr);gap:clamp(30px,6vw,110px)}
.single-meta{padding-top:14px}
.single-meta .index{margin-top:20px}
.single-hero h1{font-size:clamp(4rem,8.2vw,9rem);max-width:1180px}
.single-deck{grid-column:2;max-width:830px;margin:28px 0 0;font-size:clamp(1.12rem,1.5vw,1.42rem);line-height:1.55}
.single-featured{margin-top:clamp(46px,7vw,94px)}
.single-featured img{width:100%;max-height:780px;object-fit:cover;border:1px solid var(--glass-border);border-radius:var(--glass-radius);box-shadow:var(--glass-inset),var(--glass-shadow)}
.single-layout{display:grid;grid-template-columns:minmax(170px,.35fr) minmax(0,1.65fr);gap:clamp(30px,6vw,110px);padding-top:clamp(70px,9vw,130px);padding-bottom:clamp(70px,9vw,130px)}
.single-aside{position:sticky;top:calc(var(--header-h) + 46px);align-self:start;padding-top:10px;font-family:"IBM Plex Mono",monospace;font-size:.64rem;letter-spacing:.06em;text-transform:uppercase}
.single-aside p{margin:14px 0;color:var(--muted)}
.single-aside a{color:var(--blue)}
.single-content{max-width:820px;font-size:clamp(1.03rem,1.15vw,1.14rem);line-height:1.82}
.single-content>*:first-child{margin-top:0}
.single-content h2,.single-content h3,.single-content h4{font-family:"Newsreader",serif;font-weight:300;line-height:1.05;letter-spacing:-.035em;margin:2.2em 0 .7em}
.single-content h2{font-size:clamp(2.5rem,4vw,4.7rem)}
.single-content h3{font-size:clamp(2rem,3vw,3.4rem)}
.single-content p,.single-content ul,.single-content ol,.single-content blockquote{margin:0 0 1.55em}
.single-content a{text-decoration:underline;text-underline-offset:4px;color:var(--blue)}
.single-content blockquote{margin-inline:0;padding:22px 0 22px 28px;border-left:2px solid var(--blue);font-family:"Newsreader",serif;font-size:clamp(1.45rem,2.4vw,2.25rem);line-height:1.24}
.single-content img{border-radius:20px}
/* Low-specificity table foundation. Custom HTML tables keep the typography,
   widths and colors authored in their own code; the theme only supplies a
   neutral fallback when no table-specific rules exist. */
.single-content :where(table){width:100%;border-collapse:collapse;margin:2em 0}
.single-content :where(th,td){padding:14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;white-space:normal;word-break:normal;overflow-wrap:anywhere}
.single-content :where(thead th){font-family:"Jost",sans-serif;font-size:.78rem;font-weight:500;line-height:1.3;text-transform:uppercase;letter-spacing:.055em;color:var(--ink)}
.page-content{padding-top:clamp(70px,9vw,130px);padding-bottom:clamp(70px,9vw,130px);margin-inline:auto}
.single-footer{padding-bottom:clamp(70px,9vw,130px)}
.single-tags{display:flex;flex-wrap:wrap;gap:8px;padding-top:30px;border-top:1px solid var(--line)}
.single-tags a{padding:8px 12px;border:1px solid rgba(10,10,10,.24);border-radius:999px;font-family:"IBM Plex Mono",monospace;font-size:.58rem;text-transform:uppercase;letter-spacing:.08em}
.post-navigation-wrap{margin-top:44px}
.post-navigation .nav-links{position:static;display:grid;grid-template-columns:1fr 1fr;transform:none;background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;gap:18px}
.post-navigation a{display:block;padding:24px;border:1px solid var(--glass-border);border-radius:20px;background:var(--glass-bg);box-shadow:var(--glass-inset)}
.post-navigation span{display:block;margin-bottom:9px;font-family:"IBM Plex Mono",monospace;font-size:.58rem;text-transform:uppercase;letter-spacing:.08em;color:var(--blue)}
.nav-next{text-align:right}
.error-page{padding:clamp(140px,18vw,260px) 0}
.error-page h1{font-size:clamp(4rem,10vw,10rem);margin:30px 0}
.error-page p{max-width:580px;margin-bottom:34px}
.search-form{display:flex;gap:10px;max-width:760px}
.search-field{flex:1;min-height:52px;padding:0 18px;border:1px solid rgba(10,10,10,.35);border-radius:999px;background:rgba(255,255,255,.45)}

@media (max-width:900px){
  .admin-bar .site-header{top:46px}
  .nav-links .nav-menu{display:grid;gap:0}
  .nav-links .nav-menu a{padding:18px var(--pad);border-top:1px solid var(--line)}
  .journal-hero-grid,.single-hero-grid,.single-layout{grid-template-columns:1fr}
  .journal-hero h1,.journal-hero p,.archive-description,.single-deck{grid-column:1}
  .journal-grid{grid-template-columns:1fr}
  .single-aside{position:static}
  .post-navigation .nav-links{grid-template-columns:1fr}
  .nav-next{text-align:left}
}
@media (max-width:782px){.admin-bar .site-header{top:46px}}
@media (max-width:680px){
  .journal-main,.single-main{padding-top:calc(var(--header-h) + 12px)}
  .journal-hero,.single-hero{padding-top:74px}
  .journal-hero h1,.single-hero h1{font-size:clamp(3.5rem,15vw,5.8rem)}
  .journal-card h2{margin-top:42px}
  .single-content{font-size:1rem;line-height:1.72}
  .search-form{display:grid}
  .footer-links{align-items:flex-start}
  .footer-links .footer-menu{display:flex;flex-wrap:wrap;gap:16px}
}


/* =========================================================
   RELEASE 1.0.1 — SINGLE NAVIGATION + FEATURED TEXT FIT
   ========================================================= */

/* The previous/next module is an article component, not the site footer.
   It therefore keeps the page's light atmospheric field with no dark panel. */
.single-article > .single-footer{
  background:transparent;
  color:var(--ink);
  border:0;
  padding-top:0;
}

/* Let the featured brief use every available line before its action link. */
.featured-copy{
  height:100%;
  overflow:hidden;
}

.featured-preview{
  display:block;
  flex:1 1 0;
  min-height:0;
  max-width:none;
  overflow:hidden;
}

.featured-preview p{
  margin:0 !important;
}

.featured-link{
  flex:0 0 auto;
  margin-top:clamp(24px,3vw,40px);
  padding-top:0;
}

@media (max-width:900px){
  .featured-copy{
    height:auto;
  }

  .featured-preview{
    flex:0 0 auto;
    max-height:34rem;
  }
}

@media (max-width:680px){
  .featured-preview{
    max-height:30rem;
  }
}


/* =========================================================
   RELEASE 1.0.2 — ANALYSIS COLUMN TITLES
   ========================================================= */
#analisis .article-title,
#analisis .article-title-link{
  font-family:"Newsreader",serif;
  font-weight:300;
  font-style:normal;
  text-transform:none;
}

#analisis .article-title-link{
  display:block;
  margin:0;
  font-size:inherit;
  line-height:inherit;
  letter-spacing:inherit;
  color:inherit;
}

/* =========================================================
   RELEASE 1.0.3 — POST NAVIGATION FOCUS + RICH FEATURED PREVIEW
   ========================================================= */

/* The site-navigation underline must never be inherited by the article
   previous/next cards. Keyboard focus remains visible as a soft outline. */
.post-navigation .nav-links a::after{
  content:none !important;
  display:none !important;
}

.post-navigation a:focus,
.post-navigation a:active{
  text-decoration:none;
}

.post-navigation a:focus-visible{
  outline:2px solid rgba(29,63,181,.34);
  outline-offset:3px;
}

/* Preserve WordPress editorial structure inside the featured analysis card. */
.featured-preview{
  color:var(--muted);
}

.featured-preview > *:first-child{
  margin-top:0 !important;
}

.featured-preview > *:last-child{
  margin-bottom:0 !important;
}

.featured-preview p,
.featured-preview ul,
.featured-preview ol,
.featured-preview blockquote{
  margin:0 0 1.15em;
}

.featured-preview h1,
.featured-preview h2,
.featured-preview h3,
.featured-preview h4,
.featured-preview h5,
.featured-preview h6{
  margin:1.35em 0 .5em;
  color:var(--ink);
  font-family:"Newsreader",serif;
  font-weight:300;
  line-height:1.05;
  letter-spacing:-.032em;
  text-transform:none;
}

.featured-preview h1{font-size:clamp(2rem,3vw,3.45rem)}
.featured-preview h2{font-size:clamp(1.75rem,2.5vw,2.9rem)}
.featured-preview h3{font-size:clamp(1.48rem,2vw,2.35rem)}
.featured-preview h4,
.featured-preview h5,
.featured-preview h6{font-size:clamp(1.2rem,1.55vw,1.65rem)}

.featured-preview ul,
.featured-preview ol{
  padding-left:1.35em;
}

.featured-preview li{
  margin:.35em 0;
}

.featured-preview blockquote{
  padding:.15em 0 .15em 1.1em;
  border-left:2px solid var(--blue);
  color:#34363b;
  font-family:"Newsreader",serif;
  font-size:clamp(1.18rem,1.55vw,1.55rem);
  line-height:1.35;
}

.featured-preview strong{
  color:var(--ink);
  font-weight:500;
}

.featured-preview em{
  font-family:"Newsreader",serif;
}

.featured-preview a{
  color:var(--blue);
  text-decoration:underline;
  text-underline-offset:3px;
}

/* Media and complex interactive blocks belong to the full article, not to
   the compact homepage preview. Textual hierarchy remains visible. */
.featured-preview figure,
.featured-preview picture,
.featured-preview img,
.featured-preview iframe,
.featured-preview video,
.featured-preview audio,
.featured-preview table,
.featured-preview form,
.featured-preview .wp-block-embed,
.featured-preview .wp-block-gallery,
.featured-preview .wp-block-buttons,
.featured-preview .wp-block-spacer{
  display:none !important;
}

@media (max-width:680px){
  .featured-preview h1{font-size:2rem}
  .featured-preview h2{font-size:1.75rem}
  .featured-preview h3{font-size:1.48rem}
}

/* =========================================================
   RELEASE 1.0.5 — ANALYSIS MODULE RECOVERY
   ========================================================= */

/* Progressive enhancement: if the script is blocked or fails to load, every
   section remains visible. JavaScript only activates the reveal transition. */
.reveal{
  opacity:1;
  transform:none;
}

.jmh-js .reveal{
  opacity:0;
  transform:translateY(26px);
}

.jmh-js .reveal.visible{
  opacity:1;
  transform:none;
}

/* Keep the stable flex layout used before 1.0.4. It prevents circular grid
   sizing from collapsing the featured card and the analysis section. */
.featured-copy{
  display:flex !important;
  flex-direction:column;
  height:100%;
  min-height:100%;
  overflow:hidden;
}

.featured-preview{
  display:block !important;
  flex:1 1 0;
  min-height:0;
  max-width:none;
  overflow:hidden;
}

/* Explicit paragraph rhythm, including content produced by the Classic Editor. */
.featured-preview p{
  display:block;
  margin:0 0 1.2em !important;
}

.featured-preview p + p{
  margin-top:.15em !important;
}

.featured-preview > *:last-child{
  margin-bottom:0 !important;
}

.featured-link{
  flex:0 0 auto;
  margin-top:clamp(24px,3vw,40px);
}

@media (max-width:900px){
  .featured-copy{
    height:auto;
    min-height:clamp(500px,72vw,700px);
  }

  .featured-preview{
    flex:0 0 auto;
    max-height:34rem;
  }
}

@media (max-width:680px){
  .featured-copy{
    min-height:auto;
  }

  .featured-preview{
    max-height:30rem;
  }
}


/* =========================================================
   RELEASE 1.0.6 — VISIBLE SINGLE-POST BODY
   ========================================================= */

/* The article body can be much taller than the viewport. It must never depend
   on an intersection ratio to become visible. This also protects cached HTML
   that still includes the legacy .reveal class on .single-content. */
.single-content,
.jmh-js .single-content,
.jmh-js .single-content.reveal{
  opacity:1 !important;
  transform:none !important;
  visibility:visible !important;
}


/* =========================================================
   RELEASE 1.0.7 — INLINE TEXT COLOR
   ========================================================= */
/* Inline colors created with Gutenberg's Rich Text “Highlight” control must
   affect only the selected fragment, including bold or italic text inside it. */
.single-content mark.has-inline-color,
.featured-preview mark.has-inline-color{
  padding:0;
  background-color:transparent;
}

.single-content mark.has-inline-color strong,
.single-content mark.has-inline-color em,
.featured-preview mark.has-inline-color strong,
.featured-preview mark.has-inline-color em{
  color:inherit;
}

/* =========================================================
   RELEASE 1.0.8 — EDITORIAL TABLES + SQUARE CONTENT IMAGES
   ========================================================= */

/* Images inserted in the article body retain their native rectangular shape.
   The separate featured-image treatment remains unchanged. */
.single-content img,
.page-content img,
.single-content .wp-block-image img,
.page-content .wp-block-image img,
.single-content .wp-block-gallery img,
.page-content .wp-block-gallery img{
  border-radius:0;
}

/* Clean table foundation for all Gutenberg tables inside editorial content. */
.single-content .wp-block-table,
.page-content .wp-block-table{
  width:100%;
  margin:clamp(34px,5vw,64px) 0;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

.single-content .wp-block-table table,
.page-content .wp-block-table table{
  width:100%;
  margin:0;
  border-collapse:collapse;
  border-spacing:0;
  background:transparent;
  font-size:clamp(.94rem,1.05vw,1.08rem);
  line-height:1.48;
}

.single-content .wp-block-table th,
.single-content .wp-block-table td,
.page-content .wp-block-table th,
.page-content .wp-block-table td{
  padding:clamp(14px,1.8vw,22px) clamp(10px,1.5vw,18px);
  border:0;
  border-bottom:1px solid rgba(107,116,128,.24);
  background:transparent;
  text-align:left;
  vertical-align:top;
  overflow-wrap:anywhere;
}

.single-content .wp-block-table thead th,
.page-content .wp-block-table thead th{
  border-top:1px solid rgba(107,116,128,.72);
  border-bottom:1px solid rgba(107,116,128,.72);
  font-family:"Jost",sans-serif;
  font-size:clamp(.76rem,.9vw,.9rem);
  font-weight:500;
  line-height:1.25;
  letter-spacing:.055em;
  text-transform:uppercase;
  color:var(--ink);
}

.single-content .wp-block-table figcaption,
.page-content .wp-block-table figcaption{
  margin-top:12px;
  font-family:"IBM Plex Mono",monospace;
  font-size:.6rem;
  line-height:1.55;
  letter-spacing:.06em;
  color:var(--muted);
  text-align:left;
}

/* Select “Editorial JMH” in the Table block's Styles panel to reproduce the
   three-column hierarchy shown in the reference: route / explanation / risk. */
.single-content .wp-block-table.is-style-jmh-editorial table,
.page-content .wp-block-table.is-style-jmh-editorial table{
  min-width:720px;
  table-layout:fixed;
}

.single-content .wp-block-table.is-style-jmh-editorial th:first-child,
.single-content .wp-block-table.is-style-jmh-editorial td:first-child,
.page-content .wp-block-table.is-style-jmh-editorial th:first-child,
.page-content .wp-block-table.is-style-jmh-editorial td:first-child{
  width:27%;
  padding-left:10px;
  font-family:"IBM Plex Mono",monospace;
  font-size:clamp(.68rem,.82vw,.8rem);
  font-weight:400;
  line-height:1.5;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted);
}

.single-content .wp-block-table.is-style-jmh-editorial th:nth-child(2),
.single-content .wp-block-table.is-style-jmh-editorial td:nth-child(2),
.page-content .wp-block-table.is-style-jmh-editorial th:nth-child(2),
.page-content .wp-block-table.is-style-jmh-editorial td:nth-child(2){
  width:42%;
  color:var(--ink);
}

.single-content .wp-block-table.is-style-jmh-editorial th:nth-child(3),
.single-content .wp-block-table.is-style-jmh-editorial td:nth-child(3),
.page-content .wp-block-table.is-style-jmh-editorial th:nth-child(3),
.page-content .wp-block-table.is-style-jmh-editorial td:nth-child(3){
  width:31%;
  color:var(--blue);
}

.single-content .wp-block-table.is-style-jmh-editorial tbody td:nth-child(n+2),
.page-content .wp-block-table.is-style-jmh-editorial tbody td:nth-child(n+2){
  font-family:"Jost",sans-serif;
  font-weight:400;
}

.single-content .wp-block-table.is-style-jmh-editorial thead th:first-child,
.page-content .wp-block-table.is-style-jmh-editorial thead th:first-child{
  color:var(--muted);
}

.single-content .wp-block-table.is-style-jmh-editorial thead th:nth-child(3),
.page-content .wp-block-table.is-style-jmh-editorial thead th:nth-child(3){
  color:var(--blue);
}

/* Inline Rich Text colors always remain available for individual words or
   phrases inside cells and override the column defaults above. */
.single-content .wp-block-table mark.has-inline-color,
.page-content .wp-block-table mark.has-inline-color{
  padding:0;
  background-color:transparent;
}

@media (max-width:680px){
  .single-content .wp-block-table,
  .page-content .wp-block-table{
    margin-block:30px;
  }

  .single-content .wp-block-table.is-style-jmh-editorial table,
  .page-content .wp-block-table.is-style-jmh-editorial table{
    min-width:680px;
  }
}


/* =========================================================
   RELEASE 1.0.9 — SINGLE-PAGE FOOTER CONTAINMENT
   ========================================================= */

/* The global footer must remain a full-width body section. These resets
   protect it from inherited grid/flex placement and from third-party styles. */
body.single{
  display:block !important;
}

body.single .single-main,
body.single .single-article{
  display:block;
  width:100%;
  max-width:none;
  min-width:0;
}

.site-footer{
  display:block !important;
  position:relative !important;
  inset:auto !important;
  float:none !important;
  clear:both !important;
  width:100% !important;
  max-width:none !important;
  min-width:0;
  margin:0 !important;
  grid-column:1 / -1 !important;
  flex:0 0 100% !important;
  align-self:auto !important;
  justify-self:stretch !important;
  z-index:1;
}

.site-footer .footer-grid{
  width:min(calc(100% - (var(--pad) * 2)), var(--max));
  max-width:var(--max);
  margin-inline:auto;
}


/* =========================================================
   RELEASE 1.0.10 — SINGLE-POST HEADING HIERARCHY
   ========================================================= */

/* Restore a strict editorial hierarchy inside entries. Gutenberg H1 blocks
   previously fell back to the browser default and could therefore appear
   smaller than the theme's explicitly styled H2 blocks. */
.single-content h1,
.single-content h2,
.single-content h3,
.single-content h4,
.single-content h5,
.single-content h6,
.page-content h1,
.page-content h2,
.page-content h3,
.page-content h4,
.page-content h5,
.page-content h6{
  font-family:"Newsreader",serif;
  font-weight:300;
  line-height:1.02;
  letter-spacing:-.04em;
  text-wrap:balance;
}

.single-content h1,
.page-content h1{
  margin:1.75em 0 .62em;
  font-size:clamp(3.35rem,5.35vw,6.15rem);
  line-height:.94;
  letter-spacing:-.052em;
}

.single-content h2,
.page-content h2{
  margin:2.05em 0 .68em;
  font-size:clamp(2.55rem,3.85vw,4.45rem);
}

.single-content h3,
.page-content h3{
  margin:2em 0 .7em;
  font-size:clamp(2rem,2.85vw,3.25rem);
}

.single-content h4,
.page-content h4{
  margin:1.85em 0 .72em;
  font-size:clamp(1.58rem,2.05vw,2.3rem);
}

.single-content h5,
.page-content h5{
  margin:1.75em 0 .72em;
  font-size:clamp(1.3rem,1.55vw,1.72rem);
}

.single-content h6,
.page-content h6{
  margin:1.7em 0 .72em;
  font-family:"IBM Plex Mono",monospace;
  font-size:clamp(.76rem,.9vw,.9rem);
  font-weight:400;
  line-height:1.35;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--blue);
}

/* Every H1 in an entry, including the article title, is kept on one visual
   line. JavaScript adds a restrained horizontal fit only when the available
   width is insufficient, preserving the type hierarchy without wrapping. */
.single-hero h1,
.single-content h1,
.page-content h1{
  max-width:100%;
  white-space:nowrap;
  overflow:visible;
  overflow-wrap:normal;
  word-break:normal;
  text-wrap:nowrap;
  transform-origin:left center;
}

.single-hero h1{
  width:100%;
  font-size:clamp(4.25rem,8.2vw,9rem);
}

.jmh-one-line-heading{
  will-change:transform;
}

@media (max-width:900px){
  .single-hero h1{
    font-size:clamp(3.6rem,12.5vw,6.2rem);
  }

  .single-content h1,
  .page-content h1{
    font-size:clamp(3.05rem,9vw,4.9rem);
  }

  .single-content h2,
  .page-content h2{
    font-size:clamp(2.35rem,7vw,3.8rem);
  }
}

@media (max-width:680px){
  .single-hero h1{
    font-size:clamp(3.15rem,14vw,5.45rem);
  }

  .single-content h1,
  .page-content h1{
    font-size:clamp(2.85rem,12vw,4.25rem);
  }

  .single-content h2,
  .page-content h2{
    font-size:clamp(2.15rem,9.5vw,3.25rem);
  }

  .single-content h3,
  .page-content h3{
    font-size:clamp(1.8rem,7.8vw,2.7rem);
  }
}


/* =========================================================
   RELEASE 1.0.11 — FRONT-END / EDITOR TABLE PARITY
   ========================================================= */

/* A Custom HTML block may contain its own table stylesheet, colgroup and
   semantic use of TH cells. Do not impose the old article-level TH treatment
   (monospace, blue, uppercase) on every cell. These selectors deliberately use
   :where() so authored classes and inline declarations win the cascade. */
.single-content :where(.wp-block-html, .jmh-custom-html),
.page-content :where(.wp-block-html, .jmh-custom-html){
  max-width:100%;
}

.single-content :where(.wp-block-html table, table.jmh-html-table),
.page-content :where(.wp-block-html table, table.jmh-html-table){
  width:100%;
  max-width:100%;
  border-collapse:collapse;
  border-spacing:0;
}

.single-content :where(.wp-block-html th, .wp-block-html td, table.jmh-html-table th, table.jmh-html-table td),
.page-content :where(.wp-block-html th, .wp-block-html td, table.jmh-html-table th, table.jmh-html-table td){
  box-sizing:border-box;
  min-width:0;
  white-space:normal;
  word-break:normal;
  overflow-wrap:break-word;
}

/* Core Table blocks retain the exact column geometry used in Gutenberg.
   Colgroup and explicit width values are respected; cells are allowed to wrap
   instead of overlapping adjacent columns. */
.single-content .wp-block-table table,
.page-content .wp-block-table table{
  max-width:100%;
}

.single-content .wp-block-table th,
.single-content .wp-block-table td,
.page-content .wp-block-table th,
.page-content .wp-block-table td{
  min-width:0;
  white-space:normal;
  word-break:normal;
  overflow-wrap:break-word;
}

/* WordPress alignment classes can be used on tables and Custom HTML wrappers
   without changing the article text measure. */
.single-content > .alignwide,
.page-content > .alignwide{
  width:min(var(--max), calc(100vw - (var(--pad) * 2)));
  max-width:none;
  margin-left:50%;
  transform:translateX(-50%);
}

@media (max-width:900px){
  .single-content > .alignwide,
  .page-content > .alignwide{
    width:100%;
    margin-left:0;
    transform:none;
  }
}


/* Complete HTML documents pasted into Custom HTML blocks are isolated in a
   transparent, automatically sized frame. Their body/table selectors can no
   longer alter the article grid, navigation or footer. */
.jmh-embedded-document-wrap{
  width:100%;
  max-width:100%;
  margin:clamp(30px,4vw,54px) 0;
  overflow:hidden;
  background:transparent;
}

.jmh-embedded-document{
  display:block;
  width:100%;
  min-height:0;
  border:0;
  border-radius:0;
  background:transparent;
  overflow:hidden;
  transition:none;
  vertical-align:top;
}

/* =========================================================
   RELEASE 1.0.13 — MOBILE HEADER + RESPONSIVE ENTRIES
   ========================================================= */

/* All columns and authored blocks inside entries may shrink below their
   intrinsic desktop width. The shell width remains authoritative so the
   article preserves its side margins at every breakpoint. */
.jmh-inner-page,
.jmh-inner-page .single-main,
.jmh-inner-page .single-article,
.jmh-inner-page .single-hero{
  width:100%;
  max-width:100%;
  min-width:0;
}

.jmh-inner-page .single-hero-grid,
.jmh-inner-page .single-layout,
.jmh-inner-page .single-content,
.jmh-inner-page .page-content{
  min-width:0;
}

.jmh-inner-page .single-content,
.jmh-inner-page .page-content{
  width:100%;
}

.single-hero-grid > *,
.single-layout > *,
.single-content > *,
.page-content > *{
  min-width:0;
}

.single-content,
.page-content{
  overflow-wrap:anywhere;
}

.single-content :where(figure, video, audio, iframe, canvas, svg, pre),
.page-content :where(figure, video, audio, iframe, canvas, svg, pre),
.single-content :where(.wp-block-embed, .wp-block-embed__wrapper, .wp-block-group),
.page-content :where(.wp-block-embed, .wp-block-embed__wrapper, .wp-block-group){
  max-width:100%;
}

.single-content :where(iframe:not(.jmh-embedded-document), video),
.page-content :where(iframe:not(.jmh-embedded-document), video){
  width:100%;
}

.single-content :where(pre, code),
.page-content :where(pre, code){
  overflow-wrap:normal;
  word-break:normal;
}

.single-content pre,
.page-content pre{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

.jmh-embedded-document-wrap,
.jmh-embedded-document{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
}

@media (max-width:900px){
  /* The navigation is a closed dropdown by default. Unlike the previous
     translate-only implementation, it cannot remain visible over the header
     or receive taps while closed. */
  .site-header{
    z-index:100;
  }

  .header-grid{
    position:relative;
    width:min(calc(100% - 8px), var(--max));
    min-width:0;
  }

  .brand,
  .custom-logo-brand{
    min-width:0;
    max-width:calc(100vw - 104px);
  }

  .custom-logo-brand img{
    width:auto;
    max-width:100%;
    max-height:38px;
  }

  .nav-wrap{
    position:static;
    min-width:42px;
  }

  #menuBtn{
    position:relative;
    z-index:3;
    display:block;
    flex:0 0 42px;
  }

  #navLinks{
    position:fixed;
    top:calc(var(--header-h) + 8px);
    right:max(8px, var(--pad));
    left:max(8px, var(--pad));
    bottom:auto;
    z-index:99;
    display:block;
    max-height:0;
    margin:0;
    padding:0;
    overflow:hidden;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-12px) scale(.985);
    transform-origin:top center;
    transition:
      opacity .22s var(--ease),
      transform .28s var(--ease),
      visibility 0s linear .28s,
      max-height 0s linear .28s;
  }

  #navLinks.open{
    max-height:calc(100dvh - var(--header-h) - 24px);
    overflow-y:auto;
    overscroll-behavior:contain;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
    transition:
      opacity .22s var(--ease),
      transform .28s var(--ease),
      visibility 0s,
      max-height 0s;
  }

  #navLinks .nav-menu{
    display:grid;
    width:100%;
    gap:0;
  }

  #navLinks .nav-menu a{
    width:100%;
    padding:17px 22px;
  }

  body.jmh-menu-open{
    overflow:hidden;
    touch-action:none;
  }

  .single-hero-grid,
  .single-layout{
    gap:26px;
  }

  .single-hero h1,
  .single-content h1,
  .page-content h1{
    width:auto !important;
    max-width:100% !important;
    white-space:normal !important;
    text-wrap:balance !important;
    overflow-wrap:break-word;
    word-break:normal;
    transform:none !important;
  }

  .jmh-one-line-heading{
    will-change:auto;
  }

  .single-deck{
    max-width:100%;
  }

  .single-content > .alignfull,
  .page-content > .alignfull{
    width:100%;
    max-width:100%;
    margin-inline:0;
  }
}

@media (max-width:680px){
  .single-hero,
  .journal-hero{
    padding-top:58px;
    padding-bottom:54px;
  }

  .single-hero h1,
  .journal-hero h1{
    font-size:clamp(2.75rem,13vw,4.7rem);
    line-height:.96;
  }

  .single-layout{
    padding-top:52px;
    padding-bottom:62px;
  }

  .single-aside{
    padding-top:0;
  }

  .single-content,
  .page-content{
    font-size:1rem;
    line-height:1.7;
  }

  .jmh-embedded-document-wrap{
    margin-block:24px 36px;
  }
}

@media (min-width:901px){
  #navLinks{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
}
