/* Cartilla paginada del plan exequial familiar. Misma hoja blanca, header y footer en morado de marca. */
:root{
  --brand:#1D0938;
  --brand-2:#3A1262;
  --brand-3:#5B3391;
  --brand-tint:#F4F1F9;
  --brand-tint-2:#EAE4F3;
  --accent:#7DBF01;
  --accent-ink:#15803D;
  --accent-tint:#F0FDF4;
  --warn-tint:#FFF7ED;
  --warn-ink:#9A3412;
  --white:#FFFFFF;
  --ink:#1D0938;
  --body:#4A4257;
  --muted:#776E86;
  --line:#E4DFEC;
  --edge:0 1px 2px rgba(29,9,56,.06), 0 14px 40px rgba(29,9,56,.08);
  --font:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color-scheme:light;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--white);color:var(--body);
  font-family:var(--font);font-size:16px;line-height:1.6;font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
h1,h2,h3,h4{margin:0;line-height:1.16;font-weight:800;color:var(--ink);letter-spacing:-.015em;text-wrap:balance}
p{margin:0}
svg{flex:0 0 auto}
a{color:var(--brand-3)}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}

.gut{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.logo-cipres{max-width:200px}
.sprite{position:absolute;width:0;height:0;overflow:hidden}

/* ================= BARRA DE ÍNDICE/PROGRESO ================= */
.topbar{position:relative;background:var(--brand);color:var(--white)}
.topbar-in{max-width:1020px;margin-inline:auto;height:52px;display:flex;align-items:center;gap:.7rem}
.topbar .spacer{flex:1 1 auto}
.topbar-label{font-size:.78rem;font-weight:700;color:rgba(255,255,255,.75)}
.tbtn{
  font:inherit;font-size:.82rem;font-weight:700;cursor:pointer;color:var(--white);
  border:1px solid rgba(255,255,255,.34);background:transparent;
  border-radius:999px;padding:.46rem .95rem;display:inline-flex;align-items:center;gap:.42rem;
}
.tbtn:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.6)}
.tbtn svg{width:15px;height:15px}
.progress{position:absolute;left:0;bottom:0;height:3px;background:var(--accent);width:0;transition:width .35s ease}

/* ================= HOJA ================= */
.book{max-width:1020px;margin-inline:auto;padding-block:clamp(18px,3vw,34px)}
.page{
  background:var(--white);border:1px solid var(--line);border-radius:6px;box-shadow:var(--edge);
  padding:clamp(24px,4.4vw,54px);
  min-height:min(70vh,620px);
  display:flex;flex-direction:column;position:relative;overflow:hidden;
}
.page[hidden]{display:none}
.turn{animation:turn .36s cubic-bezier(.22,.68,.36,1) both}
@keyframes turn{from{opacity:0;transform:translateX(var(--dx,14px))}to{opacity:1;transform:none}}
.folio{
  position:absolute;top:clamp(16px,2.6vw,26px);right:clamp(16px,2.6vw,26px);
  font-size:.7rem;letter-spacing:.16em;font-weight:700;color:var(--muted);
  font-variant-numeric:tabular-nums;
}
.kicker{
  font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:800;
  color:var(--accent-ink);margin-bottom:.7rem;display:flex;align-items:center;gap:.5rem;
}
.kicker svg{width:15px;height:15px}
.page h2{font-size:clamp(1.5rem,3.5vw,2.2rem)}
.page .dek{color:var(--muted);margin-top:.8rem;max-width:62ch;font-size:1rem}
.page .dek strong{color:var(--ink)}
.rule{height:1px;background:var(--line);margin:clamp(18px,2.6vw,28px) 0}

/* ================= PORTADA ================= */
.cover{
  align-items:center;justify-content:center;text-align:center;gap:1rem;
  background:linear-gradient(170deg,var(--brand) 0%,var(--brand-2) 58%,var(--brand-3) 140%);
  border-color:var(--brand);min-height:min(78vh,680px);
}
.cover > *:not(.folio){position:relative;z-index:1}
.cover.portada-hero::before{
  content:"";position:absolute;inset:0;
  background-image:url('../img/portada-familia.jpg');
  background-size:cover;background-position:center;background-repeat:no-repeat;
  filter:grayscale(100%);
}
.cover.portada-hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(170deg,rgba(29,9,56,.62) 0%,rgba(58,18,98,.55) 58%,rgba(91,51,145,.55) 140%);
}
.cover h1,.cover h2{color:var(--white);font-weight:800}
.cover .mark img{height:58px;margin-inline:auto}
.cover .mark .fb{display:none;font-weight:800;font-size:1.5rem;color:var(--white)}
.cover .mark.noimg img{display:none}
.cover .mark.noimg .fb{display:block}
.cover .label{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;font-weight:800;color:var(--accent)}
.cover h1{font-size:clamp(2rem,5.6vw,3.3rem);max-width:17ch}
.cover h1 em{font-style:normal;color:var(--accent)}
.cover .sub{color:rgba(255,255,255,.8);max-width:50ch}
.cover .from{
  margin-top:.5rem;display:inline-flex;align-items:baseline;gap:.5rem;
  border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:.52rem 1.2rem;
}
.cover .from b{font-size:1.3rem;font-weight:800;color:var(--white);font-variant-numeric:tabular-nums}
.cover .from span{font-size:.82rem;color:rgba(255,255,255,.75);font-weight:600}
.cover .paws{display:flex;gap:.7rem;color:rgba(255,255,255,.35)}
.cover .paws svg{width:26px;height:26px}
.cover .folio{color:rgba(255,255,255,.5)}
.noimg img{display:none}

/* ================= ÍNDICE ================= */
.toc{list-style:none;margin:0;padding:0}
.toc button{
  width:100%;font:inherit;text-align:left;cursor:pointer;background:transparent;border:0;
  border-bottom:1px solid var(--line);padding:.85rem .3rem;
  display:grid;grid-template-columns:2.3rem 2rem 1fr auto;gap:.85rem;align-items:center;color:var(--ink);
}
.toc button:hover{background:var(--brand-tint)}
.toc .n{font-weight:800;color:var(--brand-3);font-variant-numeric:tabular-nums;font-size:.92rem}
.toc .ti{width:30px;height:30px;border-radius:8px;background:var(--brand-tint);color:var(--brand);display:grid;place-items:center}
.toc .ti svg{width:16px;height:16px}
.toc .t{font-weight:700;min-width:0;font-size:.95rem}
.toc .t small{display:block;font-weight:500;color:var(--muted);font-size:.8rem;margin-top:.05rem}
.toc .pg{font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums;font-weight:700}

/* ================= BLOQUES ================= */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:auto}
.stat{background:var(--brand-tint);border-radius:12px;padding:1.2rem;min-width:0}
.stat .big{font-size:clamp(1.7rem,4.2vw,2.4rem);font-weight:800;color:var(--brand);font-variant-numeric:tabular-nums;line-height:1}
.stat .cap{font-size:.83rem;color:var(--muted);margin-top:.45rem}

.incl{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.incl li{display:grid;grid-template-columns:36px 1fr;gap:.8rem;align-items:start;min-width:0}
.ico{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--brand-tint);color:var(--brand)}
.ico svg{width:19px;height:19px}
li.no .ico{background:#F3F1F5;color:var(--muted)}
.incl strong{display:block;font-size:.94rem;color:var(--ink);font-weight:700}
.incl .d{color:var(--muted);font-size:.86rem}

.pills{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.9rem}
.pill{
  display:inline-flex;align-items:center;gap:.4rem;background:var(--brand-tint);
  color:var(--brand);border-radius:999px;padding:.4rem .85rem;font-size:.79rem;font-weight:700;
}
.pill svg{width:14px;height:14px}
.pill.warm{background:var(--accent-tint);color:var(--accent-ink)}

/* ================= ARMADOR DE GRUPO FAMILIAR ================= */
.builder{
  margin-top:clamp(18px,2.6vw,26px);border:1px solid var(--line);border-radius:14px;
  padding:clamp(16px,2.4vw,22px);background:var(--white);
}
.builder-title{display:flex;align-items:center;gap:.5rem;font-weight:800;color:var(--ink);font-size:1rem}
.builder-title svg{width:18px;height:18px;color:var(--brand-3)}
.builder-dek{color:var(--muted);font-size:.86rem;margin-top:.25rem}
.count-row{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  border-top:1px solid var(--line);padding:.8rem 0;
}
.count-row:first-of-type{margin-top:.8rem}
.count-row .cn strong{display:block;font-size:.92rem;color:var(--ink);font-weight:700}
.count-row .cn .d{color:var(--muted);font-size:.8rem}
.counter{display:inline-flex;align-items:center;gap:.45rem}
.cbtn{
  font:inherit;font-size:1.1rem;line-height:1;cursor:pointer;width:34px;height:34px;
  border-radius:50%;border:1px solid var(--line);background:var(--white);color:var(--brand);font-weight:700;
}
.cbtn:hover:not(:disabled){background:var(--brand-tint);border-color:var(--brand-3)}
.cbtn:disabled{opacity:.35;cursor:not-allowed}
.cval{min-width:2rem;text-align:center;font-weight:800;color:var(--brand);font-variant-numeric:tabular-nums}
.builder-sum{border-top:1px solid var(--line);padding-top:.9rem;margin-top:.2rem}
.sum-line{font-size:.9rem;color:var(--muted)}
.sum-line b{color:var(--brand);font-variant-numeric:tabular-nums}
.meter{background:var(--brand-tint);border-radius:999px;height:12px;overflow:hidden;margin:.55rem 0}
.meter-fill{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--brand) 0%,var(--brand-3) 100%);transition:width .35s cubic-bezier(.2,.7,.3,1)}
.builder-sum .why{color:var(--muted);font-size:.85rem;margin-bottom:.6rem}

/* ================= PESTAÑAS ================= */
.tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.3rem}
.tab{
  font:inherit;font-size:.87rem;font-weight:700;cursor:pointer;
  border:1px solid var(--line);background:var(--white);color:var(--ink);
  border-radius:999px;padding:.6rem 1.1rem;display:inline-flex;align-items:center;gap:.45rem;
}
.tab svg{width:16px;height:16px}
.tab:hover{border-color:var(--brand-3)}
.tab[aria-selected="true"]{background:var(--brand);border-color:var(--brand);color:var(--white)}
.tabpanel[hidden]{display:none}
.tabpanel{animation:fade .25s ease both}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ================= TARJETAS DE COBERTURA ================= */
.cov{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.cov-card{background:var(--brand-tint);border-radius:14px;padding:1.3rem;min-width:0}
.cov-card h3{font-size:1.05rem;margin:.6rem 0 .45rem}
.cov-card p{color:var(--muted);font-size:.89rem}
.cov-card p strong{color:var(--ink)}
.cov-card + .cov-card{margin:0}
.cov-ico{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--white);color:var(--brand)}
.cov-ico svg{width:21px;height:21px}
.cov-tag{
  margin-top:.8rem;display:inline-block;background:var(--white);border-radius:999px;
  padding:.4rem .85rem;font-size:.8rem;font-weight:600;color:var(--brand)
}
.cov-card.ok{background:var(--accent-tint)}
.cov-card.ok .cov-ico{color:var(--accent-ink)}
.cov-card.warn{background:var(--warn-tint)}
.cov-card.warn .cov-ico{color:var(--warn-ink)}

.note{
  margin-top:1.2rem;display:grid;grid-template-columns:38px 1fr;gap:.9rem;align-items:center;
  background:var(--brand);color:var(--white);border-radius:14px;padding:1.05rem 1.2rem;
}
.note p{font-size:.88rem;color:rgba(255,255,255,.85)}
.note p strong{color:var(--white)}
.note a{color:var(--accent);font-weight:700}
.note-ico{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:rgba(255,255,255,.12);color:var(--accent)}
.note-ico svg{width:20px;height:20px}
.note.alert{background:var(--warn-tint);color:var(--warn-ink)}
.note.alert p{color:var(--warn-ink)}
.note.alert p strong{color:#7C2D12}
.note.alert .note-ico{background:rgba(154,52,18,.1);color:var(--warn-ink)}

/* ================= BARRAS / SIMULADOR ================= */
.bars{display:grid;gap:.85rem;margin-bottom:1.5rem}
.bar-row{display:grid;grid-template-columns:9.5rem 1fr 5.6rem;gap:.8rem;align-items:center}
.bar-row .lbl{font-weight:700;font-size:.86rem;color:var(--ink)}
.bar-track{background:var(--brand-tint);border-radius:999px;height:26px;overflow:hidden}
.bar-fill{height:100%;background:linear-gradient(90deg,var(--brand) 0%,var(--brand-3) 100%);border-radius:999px;width:0;transition:width .7s cubic-bezier(.2,.7,.3,1)}
.bar-row .val{text-align:right;font-weight:800;font-variant-numeric:tabular-nums;font-size:.85rem;color:var(--brand)}

.q{margin-bottom:1.2rem}
.q > p,.fld-label{font-weight:700;margin-bottom:.65rem;color:var(--ink);display:block;font-size:.95rem}
.opts{display:flex;gap:.5rem;flex-wrap:wrap}
.opt{
  font:inherit;font-size:.88rem;font-weight:600;cursor:pointer;
  border:1px solid var(--line);background:var(--white);color:var(--ink);
  border-radius:10px;padding:.6rem 1.05rem;
}
.opt:hover{border-color:var(--brand-3)}
.opt[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:var(--white)}
.fld{
  font:inherit;font-size:.92rem;color:var(--ink);background:var(--white);
  border:1px solid var(--line);border-radius:10px;padding:.6rem .9rem;max-width:260px;width:100%;
}
.fld:focus{outline:2px solid var(--accent);outline-offset:1px}
.result{
  margin-top:auto;padding:1.25rem;border-radius:14px;background:var(--brand-tint);
  border:1px solid var(--line);display:flex;gap:1rem;justify-content:space-between;
  align-items:center;flex-wrap:wrap;
}
.result .k{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:var(--accent-ink)}
.result .v{font-size:1.4rem;font-weight:800;color:var(--brand);margin-top:.1rem}
.result .why{color:var(--muted);font-size:.86rem;margin-top:.25rem;max-width:52ch}

/* ================= CIUDADES ================= */
.city-tools{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}
.search{
  flex:1 1 240px;min-width:0;display:flex;align-items:center;gap:.6rem;
  background:var(--white);border:1px solid var(--line);border-radius:999px;padding:.56rem 1.05rem;
}
.search svg{width:16px;height:16px;color:var(--muted)}
.search input{border:0;background:transparent;color:var(--ink);font:inherit;font-size:.92rem;width:100%;min-width:0;outline:none}
.city-count{font-size:.81rem;color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}
.cities{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem}
.cities li{
  background:var(--brand-tint);border-radius:9px;padding:.58rem .8rem;min-width:0;
  display:grid;grid-template-columns:16px 1fr;gap:.55rem;align-items:center;
}
.cities svg{width:15px;height:15px;color:var(--brand-3)}
.cities .nm{font-weight:700;font-size:.87rem;color:var(--ink)}
.cities .dp{display:block;font-size:.72rem;color:var(--muted);font-weight:500}
.cities li.hidden{display:none}
.empty{color:var(--muted);font-size:.88rem;padding:.9rem 0}
.aside{
  margin-top:1.2rem;font-size:.85rem;color:var(--muted);
  border-left:3px solid var(--accent);padding-left:1rem;max-width:68ch;
}
.aside strong{color:var(--ink)}

/* ================= PAGOS ================= */
.pay-logos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:.7rem}
.pay-logo{
  background:var(--white);border:1px solid var(--line);border-radius:10px;
  display:flex;align-items:center;justify-content:center;padding:.55rem;height:60px;
}
.pay-logo img{max-height:32px;max-width:100%;object-fit:contain}
.payroll{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:1.3rem}
.payroll div{
  background:var(--brand);color:var(--white);border-radius:12px;padding:1.05rem;min-width:0;
  display:grid;grid-template-columns:34px 1fr;gap:.8rem;align-items:center;
}
.payroll svg{width:22px;height:22px;color:var(--accent)}
.payroll strong{display:block;font-weight:700;font-size:.92rem}
.payroll span{font-size:.8rem;color:rgba(255,255,255,.7)}

/* ================= FAQ ================= */
.faq{display:grid;gap:.5rem}
details{background:var(--brand-tint);border-radius:10px;padding:0 1.05rem}
summary{cursor:pointer;list-style:none;padding:.9rem 0;font-weight:700;font-size:.92rem;color:var(--ink);display:flex;justify-content:space-between;gap:1rem;align-items:center}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:1.3rem;font-weight:600;color:var(--brand-3);line-height:1}
details[open] summary::after{content:"–"}
details .ans{padding:0 0 .95rem;color:var(--muted);font-size:.87rem;max-width:64ch}

/* ================= CONTRAPORTADA ================= */
.closing{gap:1rem}
.closing p{color:rgba(255,255,255,.8);max-width:52ch}
.closing .kicker{color:var(--accent);justify-content:center}
.cbtns{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;margin-top:.3rem}
.btn{
  display:inline-flex;align-items:center;gap:.45rem;text-decoration:none;font-family:var(--font);
  font-weight:700;font-size:.9rem;padding:.75rem 1.3rem;border-radius:999px;border:1px solid transparent;
}
.btn svg{width:16px;height:16px}
.btn-solid{background:var(--accent);color:#111}
.btn-solid:hover{background:#6AAB01}
.btn-line{border-color:rgba(255,255,255,.45);color:var(--white)}
.btn-line:hover{border-color:var(--white);background:rgba(255,255,255,.1)}
.closing .phone{color:var(--white);font-weight:800;font-variant-numeric:tabular-nums;font-size:1.05rem}
.closing .site{font-size:.82rem;color:rgba(255,255,255,.62)}

/* ================= NAVEGACIÓN DE PÁGINAS ================= */
.navbar{position:relative;background:var(--brand);color:var(--white)}
.navbar-in{max-width:1020px;margin-inline:auto;height:76px;display:flex;align-items:center;gap:1rem}
.nbtn{
  font:inherit;font-size:.85rem;font-weight:700;cursor:pointer;color:var(--white);
  border:1px solid rgba(255,255,255,.34);background:transparent;
  border-radius:999px;padding:.58rem 1.1rem;display:inline-flex;align-items:center;gap:.42rem;
}
.nbtn:hover:not(:disabled){background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.6)}
.nbtn:disabled{opacity:.3;cursor:not-allowed}
.nbtn svg{width:14px;height:14px}
.dots{display:flex;gap:.32rem;margin-inline:auto;flex-wrap:wrap;justify-content:center;min-width:0}
.dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.3);border:0;padding:0;cursor:pointer}
.dot[aria-current="true"]{background:var(--accent);transform:scale(1.4)}
.dot:hover{background:rgba(255,255,255,.65)}
@media (max-width:640px){.dots{display:none}.navbar-in{justify-content:space-between}}

/* ================= PANEL DE ÍNDICE ================= */
.scrim{position:fixed;inset:0;background:rgba(29,9,56,.55);z-index:60;opacity:0;pointer-events:none;transition:opacity .22s ease}
.scrim.open{opacity:1;pointer-events:auto}
.drawer{
  position:fixed;top:0;bottom:0;right:0;width:min(400px,92vw);z-index:70;
  background:var(--white);transform:translateX(100%);
  transition:transform .26s cubic-bezier(.3,.7,.3,1);
  display:flex;flex-direction:column;box-shadow:-12px 0 40px rgba(29,9,56,.18);
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
}
.drawer.open{transform:none}
.drawer-head{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.05rem 1.25rem;background:var(--brand);color:var(--white);
}
.drawer-head h2{font-size:1.1rem;color:var(--white)}
.drawer-body{overflow-y:auto;padding:.3rem 1.25rem 1.5rem}
.xbtn{font:inherit;font-size:1.4rem;line-height:1;cursor:pointer;background:transparent;border:0;color:rgba(255,255,255,.75);padding:.2rem .45rem}
.xbtn:hover{color:var(--white)}
.drawer .toc button{grid-template-columns:2rem 1.9rem 1fr;padding:.75rem .1rem}
.drawer .toc .pg{display:none}
.drawer .toc button[aria-current="true"]{background:var(--brand-tint)}
.drawer .toc button[aria-current="true"] .ti{background:var(--brand);color:var(--white)}

:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}

@media (max-width:760px){
  .stats{grid-template-columns:1fr}
  .incl{grid-template-columns:1fr}
  .cov{grid-template-columns:1fr}
  .payroll{grid-template-columns:1fr}
  .tabs{gap:.4rem}
  .tab{font-size:.8rem;padding:.55rem .85rem}
  .bar-row{grid-template-columns:7rem 1fr 4.8rem;gap:.5rem}
  .bar-row .lbl{font-size:.8rem}
}