/* =========================================================
   KETIN MODULES — Design System v3 (ZIHT / PTF) para Divi
   Prefijo kem- para no colisionar con el tema.
   La pestaña Design de Divi puede sobreescribir todo esto.
   ========================================================= */

:root{
  --kem-ink:#12131c; --kem-navy-950:#080b26; --kem-navy-900:#0b1140; --kem-navy-800:#141c5c;
  --kem-brand-600:#4800fe; --kem-brand-050:#eeecff; --kem-paper:#fff; --kem-surface:#f4f4f8;
  --kem-line:#dbdde6; --kem-line-soft:#e8e9f0;
  --kem-gray-700:#40424f; --kem-gray-600:#565968; --kem-gray-500:#797c8c;
  --kem-ptf-green-950:#0e2015; --kem-ptf-green-900:#16301f; --kem-ptf-green-700:#2f5233;
  --kem-ptf-cream:#f6f4ec; --kem-ptf-gold:#a9781f; --kem-ptf-gold-soft:#cfa955;
  --kem-serif:'Source Serif 4','Iowan Old Style',ui-serif,Georgia,serif;
  --kem-sans:'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --kem-mono:'JetBrains Mono',ui-monospace,monospace;
  --kem-ptf-serif:'Newsreader',ui-serif,Georgia,serif;
  --kem-ptf-sans:'Work Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}

/* ---------- helpers ---------- */
.kem-container{max-width:1360px;margin:0 auto;}
.kem-clearfix::after{content:"";display:table;clear:both;}

/* ---------- eyebrow ---------- */
.kem-eyebrow{display:flex;align-items:center;gap:10px;font-family:var(--kem-sans);font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--kem-brand-600);margin-bottom:14px;}
.kem-eyebrow::before{content:"";width:22px;height:1px;background:currentColor;display:inline-block;}
.kem-eyebrow.kem-on-dark{color:#b9b0ff;}
.kem-ptf .kem-eyebrow{color:var(--kem-ptf-gold);font-family:var(--kem-ptf-sans);}
.kem-ptf .kem-eyebrow.kem-on-dark{color:#d9c896;}

/* ---------- botones ---------- */
.kem-btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--kem-sans);font-weight:600;font-size:13.5px;letter-spacing:.02em;padding:13px 24px;border-radius:2px;border:1px solid transparent;cursor:pointer;text-decoration:none;}
.kem-btn-primary{background:var(--kem-brand-600);color:#fff !important;}
.kem-btn-primary:hover{background:#3800d1;}
.kem-btn-outline{border-color:rgba(255,255,255,.35);color:#fff !important;}
.kem-btn-outline:hover{border-color:#fff;}
.kem-ptf .kem-btn-primary{background:var(--kem-ptf-gold);color:#1c1c10 !important;}
.kem-ptf .kem-btn-primary:hover{background:var(--kem-ptf-gold-soft);}

/* =========================================================
   01 — HERO
   ========================================================= */
.kem-hero{background:linear-gradient(180deg,var(--kem-navy-950) 0%,var(--kem-navy-900) 62%,var(--kem-navy-800) 100%);color:#fff;position:relative;overflow:hidden;padding:88px 40px;}
.kem-hero.kem-ptf{background:linear-gradient(180deg,var(--kem-ptf-green-950) 0%,#1c3a24 60%,var(--kem-ptf-green-700) 100%);}
.kem-hero.kem-hero-small{padding:56px 40px;}
.kem-hero .kem-container{position:relative;z-index:2;}
.kem-hero-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:64px;align-items:center;}
.kem-hero-inner{position:relative;}
.kem-hero-has-seal .kem-hero-inner::before{content:"";position:absolute;left:-120px;top:-120px;width:420px;height:420px;background:radial-gradient(circle,rgba(255,255,255,.6),transparent 70%);opacity:.05;pointer-events:none;border-radius:50%;}
.kem-hero-title{font-family:var(--kem-serif);color:#fff;font-size:44px;font-weight:600;line-height:1.16;letter-spacing:-.008em;margin:0 0 .5em;}
.kem-hero.kem-hero-small .kem-hero-title{font-size:34px;}
.kem-ptf .kem-hero-title{font-family:var(--kem-ptf-serif);font-weight:500;}
.kem-hero-lede{font-size:19px;color:#c9cbe8;max-width:620px;font-family:var(--kem-serif);font-style:italic;font-weight:400;margin:0 0 1em;}
.kem-ptf .kem-hero-lede{color:#d7e6d5;font-family:var(--kem-ptf-serif);}
.kem-hero-sub{color:#8b8fc0;font-size:14.5px;max-width:620px;font-family:var(--kem-sans);margin:0 0 1em;}
.kem-ptf .kem-hero-sub{color:#9fbf9d;}
.kem-hero-actions{display:flex;gap:14px;margin-top:28px;flex-wrap:wrap;}
.kem-hero-media img{width:100%;height:auto;display:block;}

/* carrusel */
.kem-carousel{position:relative;}
.kem-carousel-slide{display:none;}
.kem-carousel-slide.is-active{display:block;}
.kem-carousel-dots{display:flex;gap:8px;justify-content:center;margin-top:14px;}
.kem-carousel-dots span{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.25);cursor:pointer;transition:all .25s;}
.kem-carousel-dots span.is-active{background:#fff;width:22px;border-radius:6px;}

/* =========================================================
   02 — TEXTO CON FOTO EDITORIAL
   ========================================================= */
.kem-editorial .kem-prose{font-family:var(--kem-sans);}
.kem-editorial .kem-prose p{color:var(--kem-gray-700);font-size:16.5px;line-height:1.65;margin:0 0 1.15em;}
.kem-editorial.kem-ptf .kem-prose{font-family:var(--kem-ptf-sans);}
.kem-editorial.kem-ptf .kem-prose p{color:#3c4a3e;}
.kem-img-float{margin:4px 0 18px 28px;float:right;}
.kem-img-float.kem-float-left{float:left;margin:4px 28px 18px 0;}
.kem-img-float img{width:100%;height:auto;display:block;}
.kem-figcaption{font-family:var(--kem-sans);font-size:12px;color:var(--kem-gray-500);margin-top:8px;}
@media (max-width:760px){ .kem-img-float{float:none !important;width:100% !important;margin:16px 0;} }

/* =========================================================
   03 / 04 — CARDS
   ========================================================= */
.kem-card-wrap{height:100%;}
.kem-card{display:block;background:var(--kem-paper);border:1px solid var(--kem-line);padding:28px 26px;border-radius:3px;height:100%;text-decoration:none;font-family:var(--kem-sans);}
.kem-card-dashed{border-style:dashed;}
.kem-card h3{font-family:var(--kem-serif);font-size:17px;font-weight:600;color:var(--kem-navy-950);margin:0 0 10px;line-height:1.16;}
.kem-card p{font-size:13.8px;color:var(--kem-gray-600);margin:0 0 .8em;line-height:1.65;}
.kem-card p:last-child{margin-bottom:0;}
.kem-tag{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--kem-brand-600);background:var(--kem-brand-050);padding:3px 8px;border-radius:2px;margin-bottom:12px;font-family:var(--kem-sans);}
.kem-ptf .kem-card{border-color:#d7ddca;font-family:var(--kem-ptf-sans);}
.kem-ptf .kem-card h3{font-family:var(--kem-ptf-serif);color:var(--kem-ptf-green-950);font-weight:500;}
.kem-ptf .kem-tag{color:var(--kem-ptf-green-700);background:#eaf1e9;}
/* media sangrada al borde */
.kem-card-media{margin:-28px -26px 18px;overflow:hidden;border-bottom:1px solid var(--kem-line);}
.kem-ptf .kem-card-media{border-bottom-color:#d7ddca;}
.kem-card-media img{width:100%;height:100%;object-fit:cover;display:block;}
.kem-ratio-square{aspect-ratio:1/1;}
.kem-ratio-wide{aspect-ratio:16/9;}
.kem-ratio-portrait{aspect-ratio:3/4;}

/* =========================================================
   05 — TIMELINE (vine-list)
   ========================================================= */
.kem-vine-list{position:relative;padding-left:48px;font-family:var(--kem-sans);}
.kem-timeline.kem-ptf .kem-vine-list{font-family:var(--kem-ptf-sans);}
.kem-vine-list::before{content:"";position:absolute;left:11px;top:6px;bottom:6px;width:1px;background:#cfd2e2;}
.kem-timeline.kem-ptf .kem-vine-list::before{background:#c7d3bd;}
.kem-vine-item{position:relative;padding:0 0 40px;}
.kem-vine-item:last-child{padding-bottom:0;}
.kem-vine-item::before{content:"";position:absolute;left:-48px;top:2px;width:23px;height:23px;border-radius:50%;background:var(--kem-paper);border:1px solid var(--kem-brand-600);}
.kem-timeline.kem-ptf .kem-vine-item::before{background:var(--kem-ptf-cream);border-color:var(--kem-ptf-gold);}
.kem-timeline.kem-vine-filled .kem-vine-item::before{background:var(--kem-brand-600);}
.kem-timeline.kem-ptf.kem-vine-filled .kem-vine-item::before{background:var(--kem-ptf-gold);}
.kem-vi-title{font-family:var(--kem-serif);font-size:19px;color:var(--kem-navy-950);margin-bottom:8px;font-weight:600;}
.kem-timeline.kem-ptf .kem-vi-title{font-family:var(--kem-ptf-serif);color:var(--kem-ptf-green-950);font-weight:500;}
.kem-vine-item p{color:var(--kem-gray-700);font-size:15px;margin:0 0 .6em;line-height:1.65;}
.kem-timeline.kem-ptf .kem-vine-item p{color:#3c4a3e;}
.kem-vine-item p:last-child{margin-bottom:0;}

/* =========================================================
   06 — NEWSLETTER
   ========================================================= */
.kem-newsletter-band{background:linear-gradient(120deg,var(--kem-brand-600),#2f00b8);position:relative;overflow:hidden;}
.kem-newsletter.kem-ptf .kem-newsletter-band{background:linear-gradient(120deg,var(--kem-ptf-green-700),var(--kem-ptf-green-950));}
.kem-newsletter-band::after{content:"";position:absolute;right:-80px;top:-80px;width:320px;height:320px;border:60px solid rgba(255,255,255,.06);border-radius:50%;}
.kem-newsletter-inner{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;padding:52px 40px;max-width:1360px;margin:0 auto;}
.kem-nl-compact .kem-newsletter-inner{padding-top:32px;padding-bottom:32px;}
.kem-newsletter-copy{max-width:480px;font-family:var(--kem-sans);}
.kem-newsletter-copy .kem-eyebrow{color:#d9d2ff;}
.kem-newsletter-inner h3{font-family:var(--kem-serif);color:#fff;font-size:26px;margin:0 0 10px;font-weight:600;line-height:1.16;}
.kem-newsletter.kem-ptf .kem-newsletter-inner h3{font-family:var(--kem-ptf-serif);font-weight:500;}
.kem-newsletter-copy p{color:#e3ddff;margin:0;font-size:14.5px;line-height:1.65;}
.kem-newsletter.kem-ptf .kem-newsletter-copy p{color:#d7e6d5;}
.kem-newsletter-media{flex:0 0 220px;align-self:stretch;}
.kem-newsletter-media img{width:100%;height:100%;object-fit:cover;display:block;min-height:110px;}
.kem-newsletter-form{display:flex;gap:10px;flex:none;flex-wrap:wrap;}
.kem-newsletter-form input{font-family:var(--kem-sans);padding:13px 16px;border:1px solid rgba(255,255,255,.4);background:rgba(255,255,255,.1);color:#fff;font-size:14px;min-width:250px;border-radius:2px;}
.kem-newsletter-form input::placeholder{color:#d9d2ff;}
.kem-newsletter-form button{background:var(--kem-navy-950);color:#fff;border:none;padding:13px 22px;font-weight:600;font-size:13.5px;cursor:pointer;border-radius:2px;font-family:var(--kem-sans);}
.kem-newsletter.kem-ptf .kem-newsletter-form button{background:var(--kem-ptf-gold);color:#1c1c10;}
/* tema claro */
.kem-nl-light{background:var(--kem-surface);border-top:1px solid var(--kem-line);border-bottom:1px solid var(--kem-line);}
.kem-nl-light::after{border-color:rgba(72,0,254,.06);}
.kem-nl-light .kem-newsletter-inner h3{color:var(--kem-navy-950);}
.kem-nl-light .kem-newsletter-copy p{color:var(--kem-gray-600);}
.kem-nl-light .kem-newsletter-copy .kem-eyebrow{color:var(--kem-brand-600);}
.kem-nl-light .kem-newsletter-form input{border:1px solid var(--kem-line);background:#fff;color:var(--kem-ink);}
.kem-nl-light .kem-newsletter-form input::placeholder{color:var(--kem-gray-500);}
.kem-nl-light .kem-newsletter-form button{background:var(--kem-brand-600);}
.kem-newsletter.kem-ptf .kem-nl-light{background:var(--kem-ptf-cream);border-color:#d7ddca;}
.kem-newsletter.kem-ptf .kem-nl-light .kem-newsletter-inner h3{color:var(--kem-ptf-green-950);}
.kem-newsletter.kem-ptf .kem-nl-light .kem-newsletter-copy .kem-eyebrow{color:var(--kem-ptf-gold);}

/* =========================================================
   07 — TABLA / SITEMAP
   ========================================================= */
.kem-dt-wrap{border:1px solid var(--kem-line);overflow-x:auto;background:var(--kem-paper);}
.kem-ptf .kem-dt-wrap{border-color:#d7ddca;}
table.kem-dt-table{width:100%;border-collapse:collapse;font-size:14px;font-family:var(--kem-sans);margin:0;}
.kem-ptf table.kem-dt-table{font-family:var(--kem-ptf-sans);}
table.kem-dt-table caption{caption-side:top;text-align:left;padding:18px 22px;border-bottom:1px solid var(--kem-line);}
.kem-dt-kicker{display:block;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--kem-brand-600);margin-bottom:4px;}
.kem-ptf .kem-dt-kicker{color:var(--kem-ptf-gold);}
.kem-dt-title{font-family:var(--kem-serif);font-size:19px;font-weight:600;color:var(--kem-navy-950);}
.kem-ptf .kem-dt-title{font-family:var(--kem-ptf-serif);color:var(--kem-ptf-green-950);font-weight:500;}
table.kem-dt-table thead th{background:var(--kem-navy-950);color:#e7e8f6;font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;text-align:left;padding:13px 22px;white-space:nowrap;border:none;}
.kem-ptf table.kem-dt-table thead th{background:var(--kem-ptf-green-950);color:#e7efe3;}
table.kem-dt-table.kem-dt-light thead th{background:var(--kem-surface);color:var(--kem-navy-900);border-bottom:2px solid var(--kem-navy-950);}
.kem-ptf table.kem-dt-table.kem-dt-light thead th{background:var(--kem-ptf-cream);color:var(--kem-ptf-green-950);border-bottom:2px solid var(--kem-ptf-green-950);}
table.kem-dt-table tbody td{padding:15px 22px;border:none;border-top:1px solid var(--kem-line-soft);color:var(--kem-gray-700);vertical-align:top;}
table.kem-dt-table tbody th[scope="row"]{padding:15px 22px;border:none;border-top:1px solid var(--kem-line-soft);text-align:left;font-weight:600;color:var(--kem-navy-950);vertical-align:top;background:transparent;}
.kem-ptf table.kem-dt-table tbody th[scope="row"]{color:var(--kem-ptf-green-950);}
.kem-ptf table.kem-dt-table tbody td,.kem-ptf table.kem-dt-table tbody th[scope="row"]{border-top-color:#e4e8da;}
table.kem-dt-table tbody tr:first-child td,table.kem-dt-table tbody tr:first-child th{border-top:none;}
table.kem-dt-table tbody th[scope="row"] small{display:block;font-weight:400;color:var(--kem-gray-500);font-size:12px;margin-top:2px;}
td.kem-dt-num{font-family:var(--kem-mono);font-size:13px;color:var(--kem-navy-900);text-align:right;white-space:nowrap;}
table.kem-dt-table tfoot td{padding:13px 22px;border-top:1px solid var(--kem-line);font-size:12px;color:var(--kem-gray-500);background:var(--kem-surface);}
table.kem-dt-table.kem-dt-zebra tbody tr:nth-child(even) td,
table.kem-dt-table.kem-dt-zebra tbody tr:nth-child(even) th[scope="row"]{background:var(--kem-surface);}
.kem-ptf table.kem-dt-table.kem-dt-zebra tbody tr:nth-child(even) td,
.kem-ptf table.kem-dt-table.kem-dt-zebra tbody tr:nth-child(even) th[scope="row"]{background:var(--kem-ptf-cream);}
table.kem-dt-table.kem-dt-hover tbody tr:hover td,
table.kem-dt-table.kem-dt-hover tbody tr:hover th[scope="row"]{background:var(--kem-brand-050);}
.kem-ptf table.kem-dt-table.kem-dt-hover tbody tr:hover td,
.kem-ptf table.kem-dt-table.kem-dt-hover tbody tr:hover th[scope="row"]{background:#f0ead6;}
table.kem-dt-table.kem-dt-compact tbody td,
table.kem-dt-table.kem-dt-compact tbody th[scope="row"]{padding:9px 22px;}
/* pills */
.kem-status-pill{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:4px 9px;border-radius:12px;text-align:center;}
.kem-status-pending{background:#fff3e0;color:#8a5a00;}
.kem-status-progress{background:var(--kem-brand-050);color:var(--kem-brand-600);}
.kem-status-ready{background:#e6f4ea;color:#1e6b34;}
/* sitemap de secciones */
.kem-sitemap{display:grid;background:var(--kem-navy-950);border-top:1px solid rgba(255,255,255,.15);border-left:1px solid rgba(255,255,255,.15);}
.kem-ptf .kem-sitemap{background:var(--kem-ptf-green-950);}
.kem-sitemap-cols-2{grid-template-columns:repeat(2,1fr);}
.kem-sitemap-cols-3{grid-template-columns:repeat(3,1fr);}
.kem-sitemap-cols-4{grid-template-columns:repeat(4,1fr);}
.kem-sitemap a{padding:26px 24px;border-right:1px solid rgba(255,255,255,.15);border-bottom:1px solid rgba(255,255,255,.15);font-family:var(--kem-serif);color:#e9e9f7;font-size:15.5px;text-decoration:none;}
.kem-ptf .kem-sitemap a{font-family:var(--kem-ptf-serif);color:#e7efe3;}
.kem-sitemap a:hover{background:rgba(255,255,255,.05);color:#b9b0ff;}
.kem-ptf .kem-sitemap a:hover{color:var(--kem-ptf-gold-soft);}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .kem-hero-grid{grid-template-columns:1fr;}
  .kem-hero-title{font-size:32px;}
}
@media (max-width:760px){
  .kem-hero{padding-left:24px;padding-right:24px;}
  .kem-hero-title{font-size:28px;}
  .kem-newsletter-inner{flex-direction:column;align-items:flex-start;padding-left:24px;padding-right:24px;}
  .kem-sitemap{grid-template-columns:1fr !important;}
}

/* =========================================================
   08 — LEAF PANELS (spread editorial alternado)
   ========================================================= */
.kem-leaf-wrap{border-top:1px solid var(--kem-line);}
.kem-leaf.kem-ptf .kem-leaf-wrap{border-top-color:#d7ddca;}
.kem-leaf-panel{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;border-bottom:1px solid var(--kem-line);}
.kem-leaf.kem-ptf .kem-leaf-panel{border-bottom-color:#d7ddca;}
.kem-lp-media{min-height:280px;background:var(--kem-surface);}
.kem-leaf.kem-ptf .kem-lp-media{background:#eef1e8;}
.kem-lp-media img{width:100%;height:100%;object-fit:cover;display:block;}
.kem-lp-text{padding:56px 60px;display:flex;flex-direction:column;justify-content:center;font-family:var(--kem-sans);}
.kem-leaf.kem-ptf .kem-lp-text{font-family:var(--kem-ptf-sans);}
.kem-lp-num{font-family:var(--kem-serif);font-style:italic;font-size:15px;color:var(--kem-brand-600);margin-bottom:14px;display:flex;align-items:center;gap:10px;}
.kem-leaf.kem-ptf .kem-lp-num{font-family:var(--kem-ptf-serif);color:var(--kem-ptf-gold);}
.kem-lp-num::after{content:"";width:34px;height:1px;background:currentColor;display:inline-block;}
.kem-leaf-no-num .kem-lp-num{display:none;}
.kem-leaf-panel h3{font-family:var(--kem-serif);font-size:23px;margin:0 0 14px;color:var(--kem-navy-950);font-weight:600;line-height:1.16;}
.kem-leaf.kem-ptf .kem-leaf-panel h3{font-family:var(--kem-ptf-serif);color:var(--kem-ptf-green-950);font-weight:500;}
.kem-lp-text p{color:var(--kem-gray-700);font-size:15px;margin:0 0 .8em;line-height:1.65;}
.kem-leaf.kem-ptf .kem-lp-text p{color:#3c4a3e;}
.kem-lp-text p:last-child{margin-bottom:0;}
.kem-leaf-alternate .kem-leaf-panel:nth-of-type(even) .kem-lp-media{order:2;}
.kem-leaf-alternate .kem-leaf-panel:nth-of-type(even) .kem-lp-text{order:1;}
@media (max-width:900px){
  .kem-leaf-panel{grid-template-columns:1fr;}
  .kem-leaf-alternate .kem-leaf-panel:nth-of-type(even) .kem-lp-media{order:1;}
  .kem-leaf-alternate .kem-leaf-panel:nth-of-type(even) .kem-lp-text{order:2;}
  .kem-lp-text{padding:40px 32px;}
}

/* =========================================================
   09 — DOC LIST
   ========================================================= */
.kem-doc-list{border:1px solid var(--kem-line);background:var(--kem-paper);font-family:var(--kem-sans);}
.kem-doc-module.kem-ptf .kem-doc-list{border-color:#d7ddca;font-family:var(--kem-ptf-sans);}
.kem-doc-row{display:grid;grid-template-columns:1fr 140px 150px;gap:16px;align-items:center;padding:18px 22px;border-top:1px solid var(--kem-line-soft);font-size:14px;text-decoration:none;color:inherit;}
.kem-doc-row:first-child{border-top:none;}
a.kem-doc-row:hover{background:var(--kem-surface);}
.kem-doc-name{font-weight:600;color:var(--kem-navy-950);}
.kem-doc-module.kem-ptf .kem-doc-name{color:var(--kem-ptf-green-950);}
.kem-doc-name small{display:block;font-weight:400;color:var(--kem-gray-500);font-size:12px;margin-top:2px;}
.kem-doc-note{font-size:12.5px;color:var(--kem-gray-500);}
@media (max-width:760px){ .kem-doc-row{grid-template-columns:1fr;gap:8px;} }

/* =========================================================
   10 — CITA INSTITUCIONAL
   ========================================================= */
.kem-charter-quote{margin:0;padding:40px 46px;background:var(--kem-navy-950);color:#fff;position:relative;border-left:3px solid var(--kem-brand-600);}
.kem-quote-module.kem-ptf .kem-charter-quote{background:var(--kem-ptf-green-950);border-left-color:var(--kem-ptf-gold);}
.kem-charter-quote p{font-family:var(--kem-serif);font-style:italic;font-size:22px;font-weight:400;color:#e9e9f7;margin:0 0 12px;line-height:1.5;}
.kem-quote-module.kem-ptf .kem-charter-quote p{font-family:var(--kem-ptf-serif);}
.kem-charter-quote cite{font-family:var(--kem-sans);font-size:12px;color:#8b8fc0;font-style:normal;letter-spacing:.05em;text-transform:uppercase;}
.kem-quote-module.kem-ptf .kem-charter-quote cite{color:#9fbf9d;}

/* =========================================================
   11 — LISTA NUMERADA (article)
   ========================================================= */
.kem-numbered{counter-reset:kemnum;font-family:var(--kem-sans);}
.kem-numbered-module.kem-ptf .kem-numbered{font-family:var(--kem-ptf-sans);}
.kem-article{counter-increment:kemnum;display:grid;grid-template-columns:72px 1fr;gap:22px;padding:30px 0;border-top:1px solid var(--kem-line-soft);}
.kem-article:first-child{border-top:1px solid var(--kem-line);}
.kem-numbered-module.kem-ptf .kem-article{border-top-color:#e4e8da;}
.kem-numbered-module.kem-ptf .kem-article:first-child{border-top-color:#d7ddca;}
.kem-article .kem-num{font-family:var(--kem-mono);font-size:13px;color:var(--kem-brand-600);padding-top:3px;}
.kem-numbered-module.kem-ptf .kem-article .kem-num{color:var(--kem-ptf-gold);}
.kem-prefix-section .kem-num::before{content:"§ " counter(kemnum,decimal-leading-zero);}
.kem-prefix-no .kem-num::before{content:"No. " counter(kemnum);}
.kem-prefix-plain .kem-num::before{content:counter(kemnum,decimal-leading-zero);}
.kem-article h3{font-family:var(--kem-serif);font-size:18px;margin:0 0 9px;color:var(--kem-navy-950);font-weight:600;line-height:1.16;}
.kem-numbered-module.kem-ptf .kem-article h3{font-family:var(--kem-ptf-serif);color:var(--kem-ptf-green-950);font-weight:500;}
.kem-article p{color:var(--kem-gray-700);font-size:15px;margin:0 0 .8em;line-height:1.65;}
.kem-numbered-module.kem-ptf .kem-article p{color:#3c4a3e;}
.kem-article p:last-child{margin-bottom:0;}

/* =========================================================
   12 — ÍNDICE con puntos conductores
   ========================================================= */
.kem-index{counter-reset:kemidx;border-top:1px solid var(--kem-line);max-width:820px;font-family:var(--kem-sans);}
.kem-index-module.kem-ptf .kem-index{border-top-color:#d7ddca;font-family:var(--kem-ptf-sans);}
.kem-index-item{counter-increment:kemidx;display:flex;align-items:baseline;gap:14px;padding:15px 0;border-bottom:1px solid var(--kem-line);}
.kem-index-module.kem-ptf .kem-index-item{border-bottom-color:#d7ddca;}
.kem-pi-num{font-family:var(--kem-serif);font-style:italic;color:var(--kem-brand-600);font-size:15px;flex:none;min-width:34px;}
.kem-index-module.kem-ptf .kem-pi-num{font-family:var(--kem-ptf-serif);color:var(--kem-ptf-gold);}
.kem-idx-roman .kem-pi-num::before{content:counter(kemidx,lower-roman) ".";}
.kem-idx-arabic .kem-pi-num::before{content:counter(kemidx) ".";}
.kem-idx-none .kem-pi-num{display:none;}
.kem-pi-title{font-family:var(--kem-serif);font-size:16.5px;color:var(--kem-navy-950);text-decoration:none;}
.kem-index-module.kem-ptf .kem-pi-title{font-family:var(--kem-ptf-serif);color:var(--kem-ptf-green-950);}
a.kem-pi-title:hover{color:var(--kem-brand-600);}
.kem-index-module.kem-ptf a.kem-pi-title:hover{color:var(--kem-ptf-gold);}
.kem-pi-dots{flex:1;border-bottom:1px dotted #b9bdd0;margin:0 4px 4px;min-width:20px;}
.kem-index-module.kem-ptf .kem-pi-dots{border-bottom-color:#b9c4a9;}
.kem-pi-ref{font-family:var(--kem-serif);font-style:italic;color:var(--kem-brand-600);font-size:15px;flex:none;}
.kem-index-module.kem-ptf .kem-pi-ref{font-family:var(--kem-ptf-serif);color:var(--kem-ptf-gold);}

/* =========================================================
   13 — PULL QUOTE + CAPITULAR
   ========================================================= */
.kem-pull{border-top:1px solid var(--kem-brand-600);border-bottom:1px solid var(--kem-brand-600);padding:26px 0;margin:36px 0;text-align:center;}
.kem-pull-module.kem-ptf .kem-pull{border-color:var(--kem-ptf-gold);}
.kem-pull p{font-family:var(--kem-serif);font-style:italic;font-size:22px;color:var(--kem-navy-900);margin:0;line-height:1.5;}
.kem-pull-module.kem-ptf .kem-pull p{font-family:var(--kem-ptf-serif);color:var(--kem-ptf-green-900);}
/* capitular (módulo editorial) */
.kem-dropcap > p:first-of-type::first-letter{font-family:var(--kem-serif);font-size:64px;line-height:.78;float:left;padding:6px 8px 0 0;color:var(--kem-brand-600);font-weight:600;}
.kem-ptf .kem-dropcap > p:first-of-type::first-letter{font-family:var(--kem-ptf-serif);color:var(--kem-ptf-gold);font-weight:500;}

/* =========================================================
   14 — MOSAICO DE ENLACES
   ========================================================= */
.kem-mosaic-module.kem-mosaic-dark{background:var(--kem-navy-950);padding:44px 40px;}
.kem-mosaic-module.kem-mosaic-dark.kem-ptf{background:var(--kem-ptf-green-950);}
.kem-mosaic{display:grid;gap:12px;}
.kem-mosaic-cols-4{grid-template-columns:repeat(4,1fr);}
.kem-mosaic-cols-6{grid-template-columns:repeat(6,1fr);}
.kem-mosaic a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px 8px;border:1px solid #262c66;border-radius:2px;text-align:center;text-decoration:none;font-family:var(--kem-sans);}
.kem-mosaic-module.kem-ptf .kem-mosaic a{border-color:#2c4a32;font-family:var(--kem-ptf-sans);}
.kem-mosaic a:hover{border-color:#4a4fa0;background:#0e1550;}
.kem-mosaic-module.kem-ptf .kem-mosaic a:hover{border-color:#4c7a52;background:#142c1a;}
.kem-m-icon{width:34px;height:34px;border-radius:50%;background:#161c52;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#c7c9e6;}
.kem-mosaic-module.kem-ptf .kem-m-icon{background:#1c351f;color:#cfe0cf;}
.kem-m-label{font-size:10.5px;color:#c7c9e6;}
.kem-mosaic-module.kem-ptf .kem-m-label{color:#cfe0cf;}
/* tema claro */
.kem-mosaic-light .kem-mosaic a{border-color:var(--kem-line);}
.kem-mosaic-light .kem-mosaic a:hover{border-color:var(--kem-brand-600);background:var(--kem-brand-050);}
.kem-mosaic-light .kem-m-icon{background:var(--kem-surface);color:var(--kem-navy-900);}
.kem-mosaic-light .kem-m-label{color:var(--kem-gray-600);}
.kem-mosaic-light.kem-ptf .kem-mosaic a:hover{border-color:var(--kem-ptf-gold);background:#f0ead6;}
.kem-mosaic-light.kem-ptf .kem-m-icon{background:var(--kem-ptf-cream);color:var(--kem-ptf-green-950);}
@media (max-width:1100px){ .kem-mosaic-cols-6{grid-template-columns:repeat(4,1fr);} }
@media (max-width:760px){ .kem-mosaic{grid-template-columns:repeat(3,1fr) !important;} .kem-mosaic-module.kem-mosaic-dark{padding:28px 20px;} }

/* =========================================================
   15 — BLOQUE DE ALIANZA
   ========================================================= */
.kem-alliance{display:grid;grid-template-columns:180px 1fr;gap:32px;padding:44px 0;border-top:1px solid var(--kem-line);font-family:var(--kem-sans);}
.kem-alliance-module.kem-ptf .kem-alliance{border-top-color:#d7ddca;font-family:var(--kem-ptf-sans);}
.kem-alliance.kem-alliance-first{border-top:none;padding-top:0;}
.kem-alliance-media{background:var(--kem-surface);aspect-ratio:1/1;}
.kem-alliance-module.kem-ptf .kem-alliance-media{background:#eef1e8;}
.kem-alliance-media img{width:100%;height:100%;object-fit:contain;display:block;}
.kem-alliance h3{font-family:var(--kem-serif);font-size:19px;margin:0 0 4px;color:var(--kem-navy-950);font-weight:600;line-height:1.16;}
.kem-alliance-module.kem-ptf .kem-alliance h3{font-family:var(--kem-ptf-serif);color:var(--kem-ptf-green-950);font-weight:500;}
.kem-alliance h3 a{color:inherit;text-decoration:none;}
.kem-alliance h3 a:hover{color:var(--kem-brand-600);}
.kem-alliance-role{font-size:12px;color:var(--kem-brand-600);font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:14px;}
.kem-alliance-module.kem-ptf .kem-alliance-role{color:var(--kem-ptf-gold);}
.kem-alliance .kem-prose p{font-size:15px;color:var(--kem-gray-700);margin:0 0 .8em;line-height:1.65;}
.kem-alliance-module.kem-ptf .kem-alliance .kem-prose p{color:#3c4a3e;}
.kem-alliance .kem-prose p:last-child{margin-bottom:0;}
@media (max-width:1100px){ .kem-alliance{grid-template-columns:120px 1fr;} }
@media (max-width:760px){ .kem-alliance{grid-template-columns:1fr;} }

/* =========================================================
   16 — STAMP
   ========================================================= */
.kem-stamp{display:inline-flex;align-items:center;gap:18px;border:1px solid var(--kem-line);padding:16px 22px;background:var(--kem-surface);font-family:var(--kem-sans);}
.kem-stamp-module.kem-ptf .kem-stamp{border-color:#d7ddca;background:var(--kem-ptf-cream);font-family:var(--kem-ptf-sans);}
.kem-stamp img{width:74px;height:74px;object-fit:contain;flex:none;}
.kem-stamp-text{font-size:11px;color:var(--kem-gray-500);line-height:1.4;}
.kem-stamp-text b{color:var(--kem-navy-900);display:block;font-size:12.5px;}
.kem-stamp-module.kem-ptf .kem-stamp-text b{color:var(--kem-ptf-green-950);}

/* =========================================================
   17 — EYEBROW standalone
   ========================================================= */
.kem-section-title{font-family:var(--kem-serif);font-size:31px;font-weight:600;color:var(--kem-navy-950);margin:0;line-height:1.16;letter-spacing:-.008em;}
.kem-eyebrow-module.kem-ptf .kem-section-title{font-family:var(--kem-ptf-serif);color:var(--kem-ptf-green-950);font-weight:500;}
.kem-section-title.kem-on-dark{color:#fff;}
