/* ═══════════════════════════════════════════════════════════════════════════
   Jakomi · hoja pública compartida (cartas.jakomi.mx) · v20260914
   Fuentes de marca self-hosted + tokens + navegación y pie comunes.
   Una sola hoja para todas las páginas públicas: si cambia el horario o un
   link, se cambia aquí y no en ocho archivos.
   ═══════════════════════════════════════════════════════════════════════════ */
@font-face{font-family:'Fredoka';font-weight:600;font-style:normal;font-display:swap;src:url('/static/fredoka-600.woff2') format('woff2')}
@font-face{font-family:'Fredoka';font-weight:700;font-style:normal;font-display:swap;src:url('/static/fredoka-700.woff2') format('woff2')}
@font-face{font-family:'Nunito';font-weight:400;font-style:normal;font-display:swap;src:url('/static/nunito-400.woff2') format('woff2')}
@font-face{font-family:'Nunito';font-weight:700;font-style:normal;font-display:swap;src:url('/static/nunito-700.woff2') format('woff2')}
@font-face{font-family:'Nunito';font-weight:800;font-style:normal;font-display:swap;src:url('/static/nunito-800.woff2') format('woff2')}
@font-face{font-family:'Poppins';font-weight:600;font-style:normal;font-display:swap;src:url('/static/poppins-600.woff2') format('woff2')}
@font-face{font-family:'Gowun Dodum';font-weight:400;font-style:normal;font-display:swap;src:url('/static/gowun-ko.woff2') format('woff2')}

:root{
  --bg:#F6EDDF;--surface:#FCF8F0;--s2:#F0E4D2;--text:#2E1E14;--muted:#7A5C44;--subtle:#A98D72;
  --border:#E7D8C0;--border-strong:#D9C3A5;--primary:#A37955;--primary-press:#8A6342;--on-primary:#FFF8EE;
  --accent:#E9B0A9;--pop:#E16B73;--on-pop:#FFF6F2;--matcha:#9CAE84;--cacao:#7B4B25;
  --ring:rgba(163,121,85,.5);
  --sh-xs:0 1px 2px rgba(74,48,30,.06);
  --sh-sm:0 1px 2px rgba(74,48,30,.05),0 2px 6px rgba(74,48,30,.06);
  --sh:0 1px 2px rgba(74,48,30,.04),0 6px 16px rgba(74,48,30,.08),0 12px 28px rgba(74,48,30,.06);
  --sh-lg:0 2px 6px rgba(74,48,30,.05),0 12px 28px rgba(74,48,30,.10),0 30px 60px rgba(74,48,30,.10);
  --hi:inset 0 1px 0 rgba(255,255,255,.5);
  --r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:22px;--r-2xl:28px;--r:16px;
  --ease:cubic-bezier(.22,1,.36,1);--ease-expo:cubic-bezier(.16,1,.3,1);--ease-back:cubic-bezier(.34,1.56,.64,1);
  --dur-fast:140ms;--dur:220ms;--dur-slow:360ms;
  --font:'Nunito',ui-rounded,'Segoe UI',system-ui,-apple-system,sans-serif;
  --display:'Fredoka',ui-rounded,'Segoe UI',system-ui,sans-serif;
  --ui:'Poppins','Nunito',system-ui,sans-serif;
  --ko:'Gowun Dodum','Nunito',system-ui,sans-serif;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#1E140E;--surface:#271A12;--s2:#33231A;--text:#F3E7D6;--muted:#C7AD92;--subtle:#8C7359;
  --border:#3D2B1F;--border-strong:#4F3826;--primary:#CBA67E;--primary-press:#B58E63;--on-primary:#1E140E;
  --accent:#E9B0A9;--pop:#E8767D;--on-pop:#1E140E;--cacao:#F3E7D6;--ring:rgba(203,166,126,.55);
  --sh-xs:0 1px 2px rgba(0,0,0,.4);--sh-sm:0 1px 2px rgba(0,0,0,.4),0 2px 6px rgba(0,0,0,.35);
  --sh:0 2px 6px rgba(0,0,0,.4),0 10px 24px rgba(0,0,0,.45);--sh-lg:0 4px 10px rgba(0,0,0,.45),0 24px 60px rgba(0,0,0,.55);
  --hi:inset 0 1px 0 rgba(255,255,255,.04);
}}

html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}
body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}
:lang(ko),.ko{font-family:var(--ko);font-weight:400}
::selection{background:var(--accent);color:#2E1E14}
:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring);border-radius:var(--r-sm)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.jk-skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--text);color:var(--bg);padding:10px 14px;border-radius:var(--r-md);font-weight:800;text-decoration:none;transition:top var(--dur) var(--ease)}
.jk-skip:focus{top:12px}

/* ── Navegación pública ─────────────────────────────────────────────────── */
.jk-nav{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 84%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.jk-nav-in{max-width:1120px;margin:0 auto;padding:8px 16px;display:flex;align-items:center;gap:12px}
.jk-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);flex:none;padding:4px 6px 4px 0;border-radius:var(--r-md)}
.jk-brand img{width:34px;height:34px;border-radius:10px;background:var(--s2);object-fit:cover}
.jk-brand b{font-family:var(--display);font-weight:700;font-size:1.15rem;letter-spacing:-.02em;line-height:1;display:block}
.jk-brand small{display:block;font-family:var(--ko);font-size:.7rem;color:var(--muted);line-height:1.1;margin-top:2px}
.jk-links{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0;padding:2px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
.jk-links::-webkit-scrollbar{display:none}
.jk-links a{flex:none;font-family:var(--ui);font-weight:600;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-decoration:none;padding:9px 12px;border-radius:var(--r-md);transition:background var(--dur) var(--ease),color var(--dur) var(--ease),transform var(--dur) var(--ease)}
.jk-links a:hover{background:var(--s2);color:var(--text);transform:translateY(-1px)}
.jk-links a[aria-current="page"]{background:var(--surface);color:var(--text);box-shadow:inset 0 0 0 1.5px var(--primary)}
.jk-nav-cta{flex:none;font-family:var(--ui);font-weight:600;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;color:var(--on-primary);background:var(--primary);padding:10px 14px;border-radius:var(--r-md);box-shadow:var(--sh-sm),var(--hi);transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.jk-nav-cta:hover{transform:translateY(-2px);box-shadow:var(--sh),var(--hi);color:var(--on-primary)}
.jk-nav-cta:active{transform:scale(.985)}
@media(max-width:640px){.jk-nav-in{flex-wrap:wrap;gap:6px 10px;padding:8px 12px}.jk-brand{order:1}.jk-nav-cta{order:2;margin-left:auto;padding:9px 12px}.jk-links{order:3;width:100%;flex:1 0 100%}}

/* ── Pie de página ──────────────────────────────────────────────────────── */
.jk-foot{margin-top:64px;border-top:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:.9rem}
.jk-foot-in{max-width:1120px;margin:0 auto;padding:40px 16px 28px}
.jk-foot-brand{display:flex;align-items:center;gap:14px;margin-bottom:28px}
.jk-foot-brand img{width:48px;height:48px;border-radius:14px;background:var(--s2)}
.jk-foot-brand b{font-family:var(--display);font-size:1.25rem;color:var(--text);letter-spacing:-.02em}
.jk-foot-brand .ko{margin-left:6px}
.jk-foot-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px 32px}
.jk-foot h3{font-family:var(--ui);font-weight:600;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--primary);margin:0 0 10px}
.jk-foot p,.jk-foot address{margin:0;font-style:normal;line-height:1.6}
.jk-foot ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.jk-foot a{color:var(--text);text-decoration:none;font-weight:700;transition:color var(--dur-fast) var(--ease)}
.jk-foot a:hover{color:var(--primary)}
.jk-foot-legal{margin-top:28px;padding-top:16px;border-top:1px dashed var(--border);display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;font-size:.8rem}
.jk-foot-legal a{font-weight:600;color:var(--muted)}

/* ── Utilidades compartidas ─────────────────────────────────────────────── */
.jk-wrap{max-width:1120px;margin:0 auto;padding:0 16px}
.jk-eyebrow{font-family:var(--ui);font-weight:600;text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;color:var(--pop)}
.jk-h1{font-family:var(--display);font-weight:700;letter-spacing:-.02em;line-height:1.05;font-size:clamp(2rem,6vw,3.4rem);margin:8px 0 0}
.jk-h2{font-family:var(--display);font-weight:700;letter-spacing:-.02em;line-height:1.1;font-size:clamp(1.5rem,3.6vw,2.1rem);margin:6px 0 0}
.jk-lead{color:var(--muted);font-size:1.05rem;line-height:1.6;max-width:56ch}
.jk-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:800;font-size:.95rem;line-height:1;cursor:pointer;border:0;text-decoration:none;color:var(--on-primary);background:var(--primary);padding:14px 20px;border-radius:var(--r-md);box-shadow:var(--sh-sm),var(--hi);transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background var(--dur-fast) var(--ease);will-change:transform}
.jk-btn:hover{transform:translateY(-2px);box-shadow:var(--sh),var(--hi);color:var(--on-primary)}
.jk-btn:active{transform:translateY(0) scale(.985);box-shadow:var(--sh-xs);transition-duration:90ms}
.jk-btn--pop{background:var(--pop);color:var(--on-pop)}.jk-btn--pop:hover{color:var(--on-pop);box-shadow:0 8px 22px rgba(225,107,115,.28),var(--hi)}
.jk-btn--ghost{background:transparent;color:var(--primary);box-shadow:inset 0 0 0 1.5px var(--border-strong)}
.jk-btn--ghost:hover{background:var(--s2);color:var(--primary-press);box-shadow:inset 0 0 0 1.5px var(--primary)}
.jk-btn:disabled{opacity:.55;cursor:progress;transform:none}
.jk-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:20px;box-shadow:var(--sh);transition:transform var(--dur-slow) var(--ease),box-shadow var(--dur-slow) var(--ease)}
.jk-card--link{display:block;text-decoration:none;color:inherit}
.jk-card--link:hover{transform:translateY(-3px);box-shadow:var(--sh-lg)}
.jk-chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--ui);font-weight:600;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--s2);border-radius:999px;padding:5px 11px;white-space:nowrap}
.jk-chip--accent{background:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--text)}
.jk-chip--pop{background:color-mix(in srgb,var(--pop) 18%,transparent);color:var(--pop)}
.jk-chip--ok{background:color-mix(in srgb,var(--matcha) 30%,transparent);color:var(--text)}
.jk-field{display:block;margin-top:12px}
.jk-field span{display:block;font-weight:800;font-size:.86rem;margin-bottom:6px}
.jk-field small{display:block;color:var(--muted);font-size:.78rem;margin-top:4px;font-weight:600}
.jk-input{width:100%;font:inherit;background:var(--bg);color:var(--text);border:1.5px solid var(--border);border-radius:var(--r-md);padding:12px 14px;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}
.jk-input::placeholder{color:var(--subtle)}
.jk-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.jk-skel{position:relative;overflow:hidden;background:var(--s2);border-radius:var(--r-md);animation:jk-pulse 1.8s cubic-bezier(.65,.05,.36,1) infinite}
.jk-skel::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,248,238,.45),transparent);animation:jk-shimmer 1.8s cubic-bezier(.65,.05,.36,1) infinite}
.jk-empty{text-align:center;color:var(--muted);padding:36px 16px;line-height:1.6}
.jk-empty .komi{width:72px;height:72px;border-radius:22px;background:var(--s2);margin:0 auto 12px;display:block}
.jk-rise{animation:jk-rise var(--dur-slow) var(--ease-expo) both}
.jk-toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);background:var(--text);color:var(--bg);padding:10px 18px;border-radius:999px;font-weight:700;font-size:.85rem;opacity:0;transition:all .3s var(--ease);z-index:50;pointer-events:none;max-width:calc(100vw - 32px)}
.jk-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@keyframes jk-pulse{0%,100%{opacity:1}50%{opacity:.6}}
@keyframes jk-shimmer{100%{transform:translateX(100%)}}
@keyframes jk-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.jk-btn:hover,.jk-card--link:hover,.jk-links a:hover,.jk-nav-cta:hover{transform:none}}
