/* UtilFácil — sistema visual
   Papel cálido, tinta profunda, verde petróleo, ámbar. Editorial, sin degradados genéricos. */
:root{
  --paper:#FAF6EF;
  --paper-2:#F3EDDF;
  --ink:#17211D;
  --ink-soft:#3E4A44;
  --green:#0C6B57;
  --green-deep:#083F33;
  --amber:#E9A13B;
  --amber-soft:#F7E3BE;
  --line:#E4DCCB;
  --card:#FFFDF8;
  --danger:#A33B2E;
  --radius:14px;
  --font-display:"Fraunces",Georgia,serif;
  --font-body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
/* Grano de papel sutil */
body::before{
  content:"";
  position:fixed; inset:0;
  pointer-events:none;
  z-index:0;
  opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='table' tableValues='0 0.045'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}
::selection{background:var(--amber); color:var(--ink)}
a{color:var(--green); text-decoration-thickness:1px; text-underline-offset:3px}
a:hover{color:var(--green-deep)}
:focus-visible{outline:3px solid var(--amber); outline-offset:2px; border-radius:4px}
img,svg{display:block}
.wrap{max-width:1120px; margin:0 auto; padding:0 22px; position:relative; z-index:1}
h1,h2,h3{font-family:var(--font-display); font-weight:600; line-height:1.12; letter-spacing:-.01em; margin:0}
h2{font-size:clamp(1.7rem,3.4vw,2.4rem); margin-bottom:.5em}
h3{font-size:1.25rem}
p{margin:0 0 1em}
.lede{font-size:1.16rem; color:var(--ink-soft); max-width:56ch}
.eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.78rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--green); margin-bottom:1rem;
}
.eyebrow::before{content:""; width:26px; height:2px; background:var(--amber)}

/* ---------- Encabezado ---------- */
.site-header{
  position:relative; z-index:2;
  border-bottom:1px solid var(--line);
  background:rgba(250,246,239,.92);
}
.site-header .wrap{display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top:14px; padding-bottom:14px}
.brand{display:flex; align-items:center; gap:.6rem; text-decoration:none; color:var(--ink)}
.brand .brand-name{font-family:var(--font-display); font-size:1.45rem; font-weight:700; letter-spacing:-.01em}
.brand .brand-name em{font-style:normal; color:var(--green)}
.brand small{display:block; font-family:var(--font-body); font-size:.68rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft)}
.main-nav{display:flex; gap:1.4rem; align-items:center; font-size:.95rem; font-weight:600}
.main-nav a{color:var(--ink); text-decoration:none; padding:.3rem 0; border-bottom:2px solid transparent; transition:border-color .18s ease, color .18s ease}
.main-nav a:hover{color:var(--green); border-bottom-color:var(--amber)}
.main-nav a[aria-current]{color:var(--green); border-bottom-color:var(--green)}
@media (max-width:640px){ .main-nav{gap:.9rem; font-size:.88rem} .brand small{display:none} }

/* ---------- Migas de pan ---------- */
.crumbs{font-size:.85rem; color:var(--ink-soft); padding:18px 0 0}
.crumbs a{color:var(--ink-soft); text-decoration:none}
.crumbs a:hover{color:var(--green); text-decoration:underline}
.crumbs span{margin:0 .35rem; color:var(--amber); font-weight:700}

/* ---------- Héroe ---------- */
.hero{padding:56px 0 30px; position:relative}
.hero-grid{display:grid; grid-template-columns:7fr 5fr; gap:3rem; align-items:start}
.hero h1{font-size:clamp(2.5rem,5.6vw,4.1rem); font-weight:640; margin-bottom:.35em}
.hero h1 .hl{color:var(--green); font-style:italic}
.hero-actions{display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.6rem}
.btn{
  display:inline-flex; align-items:center; gap:.55rem;
  font-weight:700; font-size:1rem; text-decoration:none;
  padding:.85rem 1.5rem; border-radius:999px; border:2px solid var(--green);
  transition:transform .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
}
.btn-primary{background:var(--green); color:#FFFDF8; box-shadow:0 10px 24px -12px rgba(8,63,51,.55)}
.btn-primary:hover{background:var(--green-deep); color:#FFFDF8; transform:translateY(-2px)}
.btn-ghost{background:transparent; color:var(--green)}
.btn-ghost:hover{background:var(--amber-soft); color:var(--green-deep); transform:translateY(-2px)}
.hero-meta{margin-top:1.4rem; font-size:.9rem; color:var(--ink-soft); display:flex; flex-wrap:wrap; gap:.4rem 1.4rem}
.hero-meta span{display:inline-flex; align-items:center; gap:.45rem}
.hero-meta svg{flex:none}

/* Tarjeta de ejemplo trabajado (se monta sobre el pliegue) */
.example-card{
  background:var(--green-deep); color:#F4EFE3;
  border-radius:var(--radius);
  padding:1.6rem 1.7rem 1.4rem;
  box-shadow:0 30px 50px -28px rgba(8,63,51,.6);
  transform:rotate(1.2deg);
  margin-top:2.2rem;
}
.example-card .ec-tag{font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--amber); margin-bottom:.7rem}
.example-card .ec-row{display:flex; justify-content:space-between; gap:1rem; padding:.42rem 0; border-bottom:1px dashed rgba(244,239,227,.25); font-size:.95rem}
.example-card .ec-row span:last-child{font-variant-numeric:tabular-nums; font-weight:600}
.example-card .ec-total{display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding-top:.9rem}
.example-card .ec-total .t-label{font-size:.85rem; letter-spacing:.08em; text-transform:uppercase; color:#CFE3DA}
.example-card .ec-total .t-value{font-family:var(--font-display); font-size:2.15rem; font-weight:700; color:#FFFDF8; font-variant-numeric:tabular-nums}
.example-card .ec-note{font-size:.8rem; color:#BFD4C9; margin-top:.6rem}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr; gap:1rem}
  .example-card{transform:none; margin-top:.6rem}
}

/* ---------- Secciones y tarjetas ---------- */
section{padding:52px 0}
.section-head{max-width:640px; margin-bottom:2rem}
.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem}
@media (max-width:900px){ .card-grid{grid-template-columns:1fr 1fr} }
@media (max-width:600px){ .card-grid{grid-template-columns:1fr} }
.tool-card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.5rem; text-decoration:none; color:var(--ink);
  display:flex; flex-direction:column; gap:.55rem;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.tool-card:hover{transform:translateY(-4px); box-shadow:0 18px 30px -20px rgba(23,33,29,.35); border-color:var(--amber); color:var(--ink)}
.tool-card .tc-icon{width:44px; height:44px; border-radius:12px; background:var(--paper-2); display:grid; place-items:center; color:var(--green)}
.tool-card h3{font-size:1.22rem}
.tool-card p{font-size:.94rem; color:var(--ink-soft); margin:0}
.tool-card .tc-link{margin-top:auto; font-weight:700; font-size:.92rem; color:var(--green); display:inline-flex; align-items:center; gap:.4rem}
.tool-card.soon{opacity:.85}
.tool-card.soon:hover{transform:none; box-shadow:none; border-color:var(--line)}
.soon-badge{
  align-self:flex-start; font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  background:var(--amber-soft); color:#7A5310; border:1px solid var(--amber);
  padding:.22rem .6rem; border-radius:999px;
}
.country-flag{font-family:var(--font-display); font-size:1.6rem; font-weight:700; color:var(--green);
  width:44px; height:44px; border-radius:12px; background:var(--paper-2); display:grid; place-items:center}

/* Banda de confianza */
.trust-band{background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.trust-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem}
@media (max-width:800px){ .trust-grid{grid-template-columns:1fr} }
.trust-item{display:flex; gap:.9rem; align-items:flex-start}
.trust-item .ti-icon{flex:none; width:42px; height:42px; border-radius:50%; background:var(--green); color:#FFFDF8; display:grid; place-items:center}
.trust-item h3{font-size:1.08rem; margin-bottom:.2rem}
.trust-item p{font-size:.92rem; color:var(--ink-soft); margin:0}

/* Datos oficiales */
.data-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem}
@media (max-width:900px){ .data-grid{grid-template-columns:1fr} }
.data-card{background:var(--card); border:1px solid var(--line); border-left:5px solid var(--amber); border-radius:10px; padding:1.25rem 1.4rem}
.data-card .d-label{font-size:.78rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft)}
.data-card .d-value{font-family:var(--font-display); font-size:2rem; font-weight:700; color:var(--green-deep); font-variant-numeric:tabular-nums; margin:.15rem 0}
.data-card .d-src{font-size:.82rem; color:var(--ink-soft); margin:0}

/* FAQ */
.faq-list{max-width:760px}
.faq-item{border:1px solid var(--line); border-radius:12px; background:var(--card); margin-bottom:.7rem; overflow:hidden}
.faq-item summary{
  cursor:pointer; list-style:none; padding:1.05rem 1.3rem;
  font-family:var(--font-display); font-size:1.08rem; font-weight:600;
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+"; font-family:var(--font-body); font-weight:700; color:var(--amber); font-size:1.4rem; line-height:1; transition:transform .2s ease}
.faq-item[open ] summary::after{transform:rotate(45deg)}
.faq-item .faq-body{padding:0 1.3rem 1.15rem; color:var(--ink-soft); font-size:.97rem}
.faq-item .faq-body p:last-child{margin-bottom:0}

/* Contenido editorial */
.prose{max-width:720px}
.prose h2{margin-top:1.2em}
.prose ul{padding-left:1.2rem}
.prose li{margin-bottom:.4rem}
.prose table{width:100%; max-width:560px; border-collapse:collapse; margin:1rem 0 1.4rem; font-size:.95rem}
.prose th,.prose td{border:1px solid var(--line); padding:.5rem .7rem; text-align:left}
.prose th{background:var(--paper-2); font-weight:700}
.prose td.num,.prose th.num{text-align:right; font-variant-numeric:tabular-nums}
.callout{
  border:1px solid var(--amber); background:#FBF3E2; border-radius:12px;
  padding:1.1rem 1.3rem; font-size:.95rem; margin:1.4rem 0;
}
.callout strong{color:#7A5310}
.disclaimer{
  border:1px solid var(--line); border-left:5px solid var(--green);
  background:var(--card); border-radius:10px; padding:1.1rem 1.3rem; font-size:.92rem; color:var(--ink-soft);
}

/* ---------- Calculadora ---------- */
.calc-shell{display:grid; grid-template-columns:5fr 6fr; gap:1.6rem; align-items:start; padding:26px 0 10px}
@media (max-width:940px){ .calc-shell{grid-template-columns:1fr} }
.calc-form{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem}
.calc-form h2{font-size:1.35rem; margin-bottom:1.1rem}
.field{margin-bottom:1.15rem}
.field label{display:block; font-weight:600; font-size:.93rem; margin-bottom:.35rem}
.field .hint{font-size:.82rem; color:var(--ink-soft); margin-top:.3rem}
.field input,.field select{
  width:100%; font:inherit; font-size:1rem; color:var(--ink);
  background:var(--paper); border:1.5px solid var(--line); border-radius:10px;
  padding:.68rem .85rem; transition:border-color .15s ease, box-shadow .15s ease;
}
.field input:hover,.field select:hover{border-color:#CBBE9C}
.field input:focus,.field select:focus{outline:none; border-color:var(--green); box-shadow:0 0 0 3px rgba(233,161,59,.35)}
.field .error{display:none; color:var(--danger); font-size:.85rem; font-weight:600; margin-top:.35rem}
.field.invalid input,.field.invalid select{border-color:var(--danger)}
.field.invalid .error{display:block}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:1rem}
@media (max-width:520px){ .field-row{grid-template-columns:1fr} }
.radio-group{display:grid; grid-template-columns:1fr 1fr; gap:.6rem}
.radio-card{position:relative}
.radio-card input{position:absolute; opacity:0; inset:0; cursor:pointer}
.radio-card .rc-body{
  display:block;
  border:1.5px solid var(--line); border-radius:10px; padding:.7rem .8rem; height:100%;
  font-weight:600; font-size:.93rem; transition:border-color .15s ease, background .15s ease;
}
.radio-card .rc-body small{display:block; font-weight:400; color:var(--ink-soft); font-size:.8rem; margin-top:.15rem}
.radio-card input:checked + .rc-body{border-color:var(--green); background:#EAF3EF; box-shadow:inset 0 0 0 1px var(--green)}
.radio-card input:focus-visible + .rc-body{outline:3px solid var(--amber); outline-offset:2px}
.calc-btn{
  width:100%; margin-top:.4rem; cursor:pointer;
  background:var(--green); color:#FFFDF8; border:2px solid var(--green);
  font:inherit; font-weight:700; font-size:1.05rem; padding:.85rem 1rem; border-radius:999px;
  transition:background .18s ease, transform .18s ease;
}
.calc-btn:hover{background:var(--green-deep); transform:translateY(-1px)}

/* Sello de actualización */
.updated-stamp{
  display:inline-flex; align-items:center; gap:.55rem;
  font-size:.82rem; font-weight:600; color:var(--ink-soft);
  background:var(--paper-2); border:1px solid var(--line); border-radius:999px;
  padding:.35rem .9rem; margin-top:1rem;
}
.updated-stamp::before{content:""; flex:none; width:8px; height:8px; border-radius:50%; background:var(--amber)}

/* Salario + periodo en una fila */
.salario-row{display:grid; grid-template-columns:1fr 132px; gap:.6rem}
@media (max-width:520px){ .salario-row{grid-template-columns:1fr 116px} }

/* Botón rápido (salario mínimo) */
.mini-btn{
  margin-top:.65rem; cursor:pointer;
  background:transparent; color:var(--green); border:1.5px solid var(--green);
  font:inherit; font-size:.85rem; font-weight:700; padding:.42rem .95rem; border-radius:999px;
  transition:background .15s ease, color .15s ease;
}
.mini-btn:hover{background:var(--green); color:#FFFDF8}

/* Casilla tipo tarjeta (20 días por año) — oculta salvo en modo Despido */
#field-20dias{display:none}
#field-20dias.visible{display:block}
/* Campo de fecha de salida (aguinaldo) — oculto mientras «sigo trabajando» */
#field-salida{display:none}
#field-salida.visible{display:block}
.check-card{position:relative; display:block; cursor:pointer}
.check-card input{position:absolute; opacity:0; inset:0; cursor:pointer}
.check-card .rc-body{
  display:block;
  border:1.5px solid var(--line); border-radius:10px; padding:.7rem .8rem;
  font-weight:600; font-size:.93rem; background:var(--paper);
  transition:border-color .15s ease, background .15s ease;
}
.check-card .rc-body small{display:block; font-weight:400; color:var(--ink-soft); font-size:.8rem; margin-top:.15rem}
.check-card input:checked + .rc-body{border-color:var(--green); background:#EAF3EF; box-shadow:inset 0 0 0 1px var(--green)}
.check-card input:focus-visible + .rc-body{outline:3px solid var(--amber); outline-offset:2px}

.results{
  background:var(--green-deep); color:#F4EFE3; border-radius:var(--radius);
  padding:1.7rem; position:sticky; top:18px;
  box-shadow:0 30px 50px -30px rgba(8,63,51,.65);
}
@media (max-width:940px){ .results{position:static} }
.results .r-tag{font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--amber)}
.results .r-total{font-family:var(--font-display); font-size:clamp(2.4rem,5vw,3.3rem); font-weight:700; color:#FFFDF8; font-variant-numeric:tabular-nums; line-height:1.05; margin:.3rem 0 .2rem}
.results .r-sub{font-size:.88rem; color:#BFD4C9; margin-bottom:1.1rem}
.r-line{padding:.75rem 0; border-top:1px dashed rgba(244,239,227,.25)}
.r-line .rl-head{display:flex; justify-content:space-between; align-items:baseline; gap:1rem}
.r-line .rl-name{font-weight:700; font-size:1rem; color:#FFFDF8}
.r-line .rl-amount{font-family:var(--font-display); font-size:1.28rem; font-weight:700; font-variant-numeric:tabular-nums; color:#FFFDF8; white-space:nowrap}
.r-line .rl-formula{font-size:.83rem; color:#BFD4C9; margin-top:.15rem}
.r-line.not-applies{opacity:.62}
.r-line.not-applies .rl-amount{font-size:1rem}
.r-facts{display:grid; grid-template-columns:1fr 1fr; gap:.6rem 1.2rem; margin:1rem 0 .4rem; font-size:.88rem}
.r-facts div{display:flex; justify-content:space-between; gap:.8rem; border-bottom:1px solid rgba(244,239,227,.14); padding-bottom:.35rem}
.r-facts dt{color:#BFD4C9}
.r-facts dd{margin:0; font-weight:700; font-variant-numeric:tabular-nums}
.print-btn{
  margin-top:1.2rem; width:100%; cursor:pointer;
  background:transparent; color:#FFFDF8; border:2px solid rgba(244,239,227,.5);
  font:inherit; font-weight:700; padding:.7rem 1rem; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  transition:border-color .18s ease, background .18s ease;
}
.print-btn:hover{border-color:var(--amber); background:rgba(233,161,59,.12)}
.wa-btn{margin-top:.6rem; text-decoration:none}
.results .r-note{font-size:.8rem; color:#9DBFA9; margin-top:.9rem}

/* Neto estimado */
.neto-box{border-top:1px dashed rgba(244,239,227,.25); margin-top:1rem; padding-top:1rem}
.neto-head{display:flex; justify-content:space-between; align-items:baseline; gap:1rem}
.neto-head span:first-child{font-size:.78rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#CFE3DA}
.neto-amount{font-family:var(--font-display); font-size:1.9rem; font-weight:700; color:var(--amber); font-variant-numeric:tabular-nums; white-space:nowrap}
.neto-details{margin-top:.45rem; font-size:.86rem; color:#BFD4C9}
.neto-details summary{cursor:pointer; font-weight:600; color:#F4EFE3}
.neto-details summary:hover{color:var(--amber)}
.neto-lines{margin-top:.6rem}
.neto-lines div{display:flex; justify-content:space-between; gap:1rem; padding:.28rem 0; border-bottom:1px solid rgba(244,239,227,.14)}
.neto-lines strong{color:#FFFDF8; font-variant-numeric:tabular-nums; white-space:nowrap}
.neto-note{font-size:.8rem; color:#9DBFA9; margin-top:.6rem}

/* Lista de verificación «Antes de firmar» */
.checklist-card{
  border:1px solid var(--line); border-left:5px solid var(--amber);
  background:var(--card); border-radius:10px; padding:1.1rem 1.3rem; margin:1.2rem 0 1.8rem;
}
.checklist{list-style:none; margin:0; padding:0}
.checklist li{position:relative; padding:.45rem 0 .45rem 2.1rem; font-size:.96rem}
.checklist li::before{
  content:"✓"; position:absolute; left:0; top:.42rem;
  width:1.35rem; height:1.35rem; border-radius:50%;
  background:var(--green); color:#FFFDF8; font-size:.82rem; font-weight:700;
  display:grid; place-items:center;
}

/* ---------- Pie ---------- */
.site-footer{border-top:1px solid var(--line); background:var(--paper-2); margin-top:20px; position:relative; z-index:1}
.site-footer .wrap{padding-top:38px; padding-bottom:38px}
.footer-grid{display:grid; grid-template-columns:2fr 1fr 1fr; gap:2rem}
@media (max-width:800px){ .footer-grid{grid-template-columns:1fr} }
.site-footer h3{font-size:1rem; margin-bottom:.6rem}
.site-footer ul{list-style:none; margin:0; padding:0; font-size:.93rem}
.site-footer li{margin-bottom:.35rem}
.site-footer a{color:var(--ink-soft); text-decoration:none}
.site-footer a:hover{color:var(--green); text-decoration:underline}
.footer-legal{margin-top:2rem; padding-top:1.1rem; border-top:1px solid var(--line); font-size:.82rem; color:var(--ink-soft); display:flex; flex-wrap:wrap; gap:.4rem 1.6rem; justify-content:space-between}

@media (max-width:520px){
  .r-facts{grid-template-columns:1fr}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none !important; animation:none !important}
  .tool-card:hover,.btn:hover,.calc-btn:hover{transform:none}
}

/* ---------- Impresión: solo el resultado ---------- */
@media print{
  body{background:#fff}
  body::before,.site-header,.site-footer,.calc-form,.crumbs,.tool-intro,.below-tool,.print-btn,.wa-btn,.hero-actions,.neto-details{display:none !important}
  .calc-shell{grid-template-columns:1fr; padding:0}
  .results{position:static; background:#fff; color:#000; box-shadow:none; border:1.5px solid #000}
  .results .r-total,.r-line .rl-name,.r-line .rl-amount{color:#000}
  .results .r-sub,.r-line .rl-formula,.results .r-note,.r-facts dt{color:#333}
  .results .r-tag{color:#000}
  .neto-head span:first-child,.neto-amount{color:#000}
  .neto-box{border-top-color:#000}
}
