/* Calculadora de presupuestos paso a paso (experiencia de uso inspirada en reformadisimo.es, adaptada a Grupo Conerys) */
.calc-page{background:var(--cream)}
.cz-head{background:var(--deep);color:#fff;padding:clamp(2.2rem,5vw,3.4rem) 0 clamp(4.5rem,8vw,6rem)}
.cz-head .crumbs{color:rgba(255,255,255,.8)}
.cz-head .eyebrow{color:var(--yellow)}
.cz-head h1{font-size:clamp(1.9rem,4vw,3rem);font-weight:500;max-width:900px}
.cz-head p.lead{color:rgba(255,255,255,.85);margin-top:.9rem;max-width:760px}
.cz-how{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;padding:0;margin:1.4rem 0 0;font-size:.92rem;color:rgba(255,255,255,.9)}
.cz-how li{display:flex;align-items:center;gap:.5rem}
.cz-how b{width:24px;height:24px;border-radius:50%;background:var(--yellow);color:var(--ink);display:grid;place-items:center;font-size:.75rem}
.cz{margin-top:clamp(-4rem,-6vw,-3rem);padding-bottom:4rem}
.cz-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:1.4rem;align-items:start}
.cz-card{background:#fff;border-radius:24px;box-shadow:0 30px 70px -40px rgba(26,61,71,.55);border:1px solid var(--line);overflow:hidden}
.cz-prog{padding:1.2rem clamp(1.2rem,3vw,2rem) 1rem;border-bottom:1px solid var(--line);background:var(--paper)}
.cz-prog-top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}
.cz-prog-top b{font-size:1.5rem;color:var(--ink);letter-spacing:-.02em}
.cz-prog-top b span{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);margin-left:.5rem}
.cz-prog-top small{color:var(--muted);font-size:.85rem}
.cz-bar{height:8px;background:#E3ECF0;border-radius:99px;margin-top:.8rem;overflow:hidden}
.cz-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--brand),var(--sky));border-radius:99px;transition:width .4s ease}
.cz-steps{display:flex;gap:4px;margin-top:.8rem;flex-wrap:wrap}
.cz-steps button{flex:1;min-width:22px;height:6px;border:0;border-radius:3px;background:#E3ECF0;padding:0}
.cz-steps button.done{background:var(--brand)}
.cz-steps button.cur{background:var(--yellow)}
.cz-steps button:disabled{cursor:default}
.cz-body{padding:clamp(1.4rem,3vw,2.2rem)}
.cz-body h2{font-size:clamp(1.4rem,2.6vw,1.9rem);color:var(--ink)}
.cz-intro{color:var(--muted);margin-top:.5rem}
.q{margin-top:1.8rem}
.q-lab{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;font-weight:700;color:var(--ink);font-size:1.02rem}
.q-lab small{font-weight:600;font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.q-lab .req{color:#B42318;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}
.q-lab .ok{color:#1BA36B;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}
.q-help{font-size:.88rem;color:var(--muted);margin-top:.35rem}
.opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.6rem;margin-top:.8rem}
.opts.wide{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.opt{position:relative;text-align:left;border:1.5px solid var(--line);background:var(--paper);border-radius:14px;padding:.85rem 2.2rem .85rem 1rem;color:var(--ink);font-weight:700;font-size:.95rem;line-height:1.3;transition:border-color .15s,background .15s,box-shadow .15s}
.opt small{display:block;font-weight:500;color:var(--muted);font-size:.8rem;margin-top:.25rem;line-height:1.4}
.opt::after{content:"";position:absolute;right:.8rem;top:.95rem;width:18px;height:18px;border-radius:50%;border:2px solid #C9D6DB;background:#fff}
.opt:hover{border-color:var(--brand)}
.opt[aria-pressed="true"]{border-color:var(--brand);background:#EEF6F8;box-shadow:inset 0 0 0 1px var(--brand)}
.opt[aria-pressed="true"]::after{border-color:var(--brand);background:var(--brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round' d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center/12px no-repeat}
.opts.check .opt::after{border-radius:5px}
.q.missing .q-lab{color:#B42318}
.q.missing .opt,.q.missing .cz-in{border-color:#F3B2AC}
.cz-in{border:1.5px solid var(--line);border-radius:12px;padding:.8rem 1rem;font:inherit;font-size:1rem;color:var(--ink);background:var(--paper);width:100%;max-width:260px;margin-top:.8rem}
.cz-in:focus{outline:none;border-color:var(--brand);background:#fff}
select.cz-in{max-width:420px}
.presets{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}
.presets button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.35rem .8rem;font-size:.85rem;font-weight:600;color:var(--ink)}
.presets button:hover{border-color:var(--brand)}
.stepper{display:inline-flex;align-items:center;border:1.5px solid var(--line);border-radius:12px;overflow:hidden;margin-top:.8rem;background:var(--paper)}
.stepper button{width:44px;height:44px;border:0;background:transparent;font-size:1.3rem;font-weight:700;color:var(--ink)}
.stepper button:hover{background:#EEF6F8}
.stepper output{min-width:48px;text-align:center;font-weight:800;font-size:1.1rem;color:var(--ink)}
.q-row{display:flex;flex-wrap:wrap;gap:1.2rem 2.4rem}
.q-row .q{margin-top:1.4rem}
.cz-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:1.1rem clamp(1.2rem,3vw,2rem);border-top:1px solid var(--line);background:var(--paper)}
.cz-nav .btn{padding:.85rem 1.4rem}
.cz-back{background:transparent;border:1.5px solid var(--line);color:var(--ink)}
.cz-back:hover{border-color:var(--ink)}
.cz-miss{flex-basis:100%;display:none;background:#FEF3F2;color:#B42318;border-radius:10px;padding:.6rem .9rem;font-size:.88rem;font-weight:600}
.cz-miss.show{display:block}
/* Resumen lateral */
.cz-side{position:sticky;top:calc(var(--header-h) + 16px);display:grid;gap:1rem}
.cz-est{background:var(--ink);color:#fff;border-radius:22px;padding:1.4rem 1.4rem 1.5rem}
.cz-est small{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow)}
.cz-est .price{font-size:clamp(1.5rem,2.6vw,1.9rem);font-weight:800;letter-spacing:-.02em;margin-top:.4rem;line-height:1.15}
.cz-est .price.muted{font-size:1rem;font-weight:600;color:rgba(255,255,255,.7)}
.cz-est .per{font-size:.88rem;color:rgba(255,255,255,.75);margin-top:.3rem}
.cz-prec{margin-top:1rem}
.cz-prec div{display:flex;justify-content:space-between;font-size:.8rem;color:rgba(255,255,255,.75)}
.cz-prec .cz-bar{background:rgba(255,255,255,.15);height:6px;margin-top:.4rem}
.cz-prec .cz-bar i{background:var(--yellow)}
.cz-sum{background:#fff;border:1px solid var(--line);border-radius:22px;padding:1.2rem 1.3rem}
.cz-sum h3{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);font-weight:800}
.cz-sum ul{list-style:none;margin:.8rem 0 0;padding:0;display:grid;gap:.45rem;font-size:.9rem}
.cz-sum li{display:flex;justify-content:space-between;gap:.8rem;border-bottom:1px dashed var(--line);padding-bottom:.4rem}
.cz-sum li span{color:var(--muted)}
.cz-sum li b{color:var(--ink);text-align:right}
.cz-sum .empty{color:var(--muted);font-size:.9rem;margin-top:.6rem}
.cz-reset{background:none;border:0;color:var(--muted);font-size:.85rem;text-decoration:underline;padding:0;margin-top:.8rem;display:inline-flex;gap:.35rem;align-items:center}
.cz-reset svg{width:14px;height:14px}
.cz-help{background:#fff;border:1px solid var(--line);border-radius:22px;padding:1.2rem 1.3rem;font-size:.9rem;color:var(--muted)}
.cz-help b{color:var(--ink);display:block;margin-bottom:.3rem}
.cz-help a{color:var(--ink);font-weight:700}
/* Resultado */
.res-top{display:grid;grid-template-columns:1.2fr 1fr;gap:1rem;margin-top:1.4rem}
.res-box{border-radius:18px;padding:1.4rem;background:var(--ink);color:#fff}
.res-box small{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow)}
.res-box .big{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;letter-spacing:-.03em;line-height:1.1;margin-top:.4rem}
.res-box p{color:rgba(255,255,255,.78);font-size:.9rem;margin-top:.4rem}
.res-box.light{background:var(--cream);color:var(--ink);border:1px solid var(--line)}
.res-box.light small{color:var(--brand)}
.res-box.light p{color:var(--muted)}
.res-box.light .big{font-size:clamp(1.5rem,3vw,2rem)}
.res-h{font-size:1.2rem;color:var(--ink);margin-top:2.2rem}
.phases{list-style:none;margin:.9rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}
.phases li{background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:.8rem .9rem;font-size:.86rem;color:var(--ink);font-weight:600;line-height:1.35}
.phases li b{display:block;color:var(--brand);font-size:.75rem;letter-spacing:.1em;margin-bottom:.25rem}
.res-note{margin-top:1.6rem;font-size:.86rem;color:var(--muted);font-style:italic}
.res-actions{display:flex;flex-wrap:wrap;gap:.8rem 1.4rem;align-items:center;margin-top:1.6rem}
.res-form{margin-top:2.4rem;padding-top:2rem;border-top:1px solid var(--line)}
.res-form h3{font-size:1.3rem;color:var(--ink)}
.res-form .row2{margin-top:1rem}
.res-form .form-ok{text-align:left;padding:1.4rem 0}
.res-form .form-ok svg{margin:0 0 .8rem}
.res-form.sent form{display:none}
.res-form.sent .form-ok{display:block}
.restore{display:none;margin-bottom:1rem;background:#FFF6CC;color:#5B4A00;border-radius:14px;padding:.8rem 1rem;font-size:.9rem;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.restore.show{display:flex}
.restore button{border:0;background:var(--ink);color:#fff;border-radius:999px;padding:.45rem 1rem;font-weight:700;font-size:.85rem}
.restore button.l{background:transparent;color:#5B4A00;text-decoration:underline;padding:0}
@media (max-width:1020px){
  .cz-grid{grid-template-columns:minmax(0,1fr)}
  .cz-side{position:static;grid-template-columns:1fr 1fr}
  .cz-help{display:none}
}
@media (max-width:640px){
  .cz-side{grid-template-columns:1fr}
  .res-top{grid-template-columns:1fr}
  .phases{grid-template-columns:1fr 1fr}
  .opts{grid-template-columns:1fr 1fr}
  .opts.wide{grid-template-columns:1fr}
  .cz-nav .btn{flex:1}
}

/* Respuestas numéricas con su unidad, error de cada pregunta, mensajes de Vero, aviso de calidad y acabado de cada baño */
.cz-num{display:flex;align-items:center;gap:0 .7rem;flex-wrap:wrap}
.cz-num .cz-in{max-width:180px}
.cz-unit{margin-top:.8rem;color:var(--muted);font-weight:600;font-size:.95rem}
.q-err{margin-top:.6rem;color:#B42318;font-weight:600;font-size:.88rem}
.cz-vero,.cz-aviso{margin-top:1rem;border-radius:16px;padding:1rem 1.2rem;font-size:.93rem;line-height:1.6;color:var(--ink)}
.cz-vero{background:#EAF4F1;border:1px solid #CFE6DF}
.cz-aviso{background:#FFF8D6;border:1px solid #F3E39A}
.cz-vero p+p,.cz-aviso p+p{margin-top:.6rem}
.cz-sub{margin-top:1rem}
.cz-sub>span{display:block;font-weight:700;font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.cz-sub .opts{margin-top:.5rem}
.res-form [data-form-slot]{margin-top:1.2rem}
.res-form .fluentform .ff-btn-submit{white-space:normal;text-align:center}
.fluentform .gc-campo-oculto{display:none}

/* Desglose del presupuesto: capítulos que se abren para ver sus partidas (medición × precio = importe) */
.res-h-row{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem 1rem;flex-wrap:wrap;margin-top:2.2rem}
.res-h-row .res-h{margin-top:0}
.res-toggle{border:0;background:none;padding:0;font:inherit;font-size:.88rem;font-weight:700;color:var(--brand);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.res-sub{margin-top:.4rem;font-size:.88rem;color:var(--muted)}
.res-caps{margin-top:.9rem;border-top:1px solid var(--line)}
.res-cap{border-bottom:1px solid var(--line)}
.res-cap summary{display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;align-items:center;padding:.75rem .2rem;cursor:pointer;list-style:none}
.res-cap summary::-webkit-details-marker{display:none}
.res-cap summary::after{content:"";grid-column:3;grid-row:1;justify-self:end;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);margin:0 .2rem -.1rem 0;transition:transform .3s}
.res-cap[open]:not(.cerrando) summary::after{transform:rotate(-135deg)}
.res-cap summary b{grid-column:3;grid-row:1;margin-right:1.4rem;font-weight:800;color:var(--ink);white-space:nowrap}
.res-cap-n{font-size:.75rem;font-weight:800;letter-spacing:.1em;color:var(--brand)}
.res-cap-t{font-weight:700;color:var(--ink);font-size:.95rem;min-width:0}
.res-cap .bar{display:block;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--brand),var(--sky));margin-top:.35rem;min-width:4px}
.res-lineas{width:100%;border-collapse:collapse;margin:0 0 .9rem;font-size:.88rem}
.res-lineas td{padding:.5rem .2rem .5rem 0;border-top:1px dashed var(--line);vertical-align:top;color:var(--ink)}
.res-lineas td:first-child{padding-left:2.1rem}
.res-lineas td small{display:block;color:var(--muted);font-size:.8rem;margin-top:.15rem}
.res-lineas td:last-child{text-align:right;white-space:nowrap;font-weight:600;padding-right:1.6rem}
.res-lineas tr.consultar td{color:var(--muted)}
.res-total{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:1rem .2rem 0;font-weight:800;color:var(--ink)}
.res-total b{font-size:1.25rem;margin-right:1.4rem}
.res-consultar{margin-top:.8rem;font-size:.86rem;color:#8A5300;background:#FFF8D6;border:1px solid #F3E39A;border-radius:12px;padding:.7rem .9rem}
@media (max-width:640px){
  .res-lineas td:first-child{padding-left:0}
  .res-lineas td:last-child,.res-cap summary b,.res-total b{padding-right:0;margin-right:1.2rem}
}

/* Impresión y PDF: solo la estimación. Sale el membrete (logo, fecha y contacto; solo existe en papel), las cifras,
   el desglose con todas sus partidas (calculadora.js abre los capítulos antes de imprimir), las fases y la nota.
   Todo lo que no contiene el resultado (cabecera, migas, pasos, resumen lateral, banda de llamada, pie, WhatsApp…)
   no se imprime, y dentro del resultado tampoco los botones ni el formulario. */
.cz-membrete{display:none}
@media print{
  @page{margin:14mm 13mm}
  html{font-size:12.5px}
  body *:not(:has(.cz-body)):not(.cz-body,.cz-body *,.cz-membrete,.cz-membrete *){display:none!important}
  .lgd2-header,.lgd2-footer,.whatsapp-flotante,.cz-head,.cz~*,.cz-prog,.cz-nav,.cz-side,.restore{display:none!important} /* por si el navegador no admite :has() */
  .res-actions,.res-form,.res-toggle,.res-sub,.res-cap summary::after{display:none!important}
  body,.calc-page,.lgd2-main,.cz,.cz .container,.cz-card,.cz-body{margin:0;padding:0;max-width:none;background:none;border:0;border-radius:0;box-shadow:none;overflow:visible}
  .cz-grid{display:block}
  #calc :focus{outline:none}
  .cz-membrete{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding-bottom:1rem;margin-bottom:1.6rem;border-bottom:2px solid var(--ink)}
  .cz-membrete img{display:block;width:auto;height:46px}
  .cz-membrete p{text-align:right;font-size:.9rem;line-height:1.55;color:var(--muted)}
  .cz-membrete b{color:var(--ink)}
  .cz-membrete a{color:inherit;text-decoration:none}
  .cz-body h2{font-size:1.75rem}
  .res-top{break-inside:avoid}
  .res-box,.res-box.light{background:none;color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:1rem 1.2rem}
  .res-box:not(.light){border:2px solid var(--brand)}
  .res-box small{color:var(--brand)}
  .res-box p,.res-box.light p{color:var(--muted)}
  .res-cap .bar{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .res-h,.res-h-row,.res-cap summary{break-after:avoid}
  .res-cap summary{padding:.55rem .2rem}
  .res-lineas{margin-bottom:.6rem}
  .res-lineas td{padding:.32rem .2rem .32rem 0}
  .res-lineas td small{display:inline;margin:0 0 0 .7rem}
  .res-cap,.res-total,.res-consultar,.phases{break-inside:avoid}
  .phases li{background:none}
}

/* Último paso: datos de contacto en el formulario de Fluent Forms. La estimación no sale en pantalla: se envía por email. */
.cz-est .cz-est-txt{font-size:.92rem;line-height:1.55;color:rgba(255,255,255,.82);margin-top:.45rem}
.cz-body .res-form.form-card{margin-top:1.4rem;padding:clamp(1.3rem,3vw,2rem);border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:none}
.cz-body .res-form.form-card .fluentform .ff-el-form-control{background:#fff}
.cz-body .res-form.form-card .ff-message-success{margin:0}
.cz-body .res-note{margin-top:1.2rem}
.cz-body .res-actions{margin-top:1rem}
