/* Upfront Sites price calculator — everything scoped under .ufs-calc so Elementor and the theme don't clash */
.ufs-calc{--harbour:#0F3D3E;--harbour-tx:#B9D3CF;--paper:#fff;--mist:#EEF3F1;--line:#D3DCD9;--line-strong:#6F7C79;--ink:#111418;--muted:#4E5A5C;--tag:#FFD23F;--kelp:#0B6E69;--kelp-dark:#08524E;--success:#1E7A45;--err:#B42318;
  --f-d:"Archivo Expanded","Archivo",ui-sans-serif,system-ui,sans-serif;--f-t:"Atkinson Hyperlegible Next",ui-sans-serif,system-ui,sans-serif;
  display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:48px;align-items:start;font-family:var(--f-t);color:var(--ink);font-size:17px;line-height:1.6;text-align:left}
.ufs-calc *,.ufs-calc *::before,.ufs-calc *::after{box-sizing:border-box}
.ufs-calc [hidden]{display:none!important}
.ufs-calc p{margin:0}
.ufs-calc h3{font-family:var(--f-d);font-weight:800;line-height:1.1;margin:0;color:var(--ink)}
.ufs-calc a{color:var(--kelp);text-underline-offset:3px}
.ufs-calc .ufs-num{font-variant-numeric:tabular-nums}
.ufs-calc :focus-visible{outline:3px solid var(--kelp)!important;outline-offset:3px}
.ufs-calc .ufs-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* Buttons declare every state: the theme paints <button> by default */
.ufs-calc .ufs-btn,.ufs-calc .ufs-btn:focus,.ufs-calc .ufs-btn:active{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border-radius:12px;border:0;font:700 17px/1.2 var(--f-t);text-decoration:none;cursor:pointer;text-transform:none;letter-spacing:0;box-shadow:none}
.ufs-calc .ufs-btn-kelp,.ufs-calc .ufs-btn-kelp:focus,.ufs-calc .ufs-btn-kelp:active{background:var(--kelp);color:#fff}
.ufs-calc .ufs-btn-kelp:hover{background:var(--kelp-dark);color:#fff}
.ufs-calc .ufs-btn-tag,.ufs-calc .ufs-btn-tag:focus{background:var(--tag);color:var(--ink)}
.ufs-calc .ufs-btn-tag:hover{background:#FFE07A;color:var(--ink)}
.ufs-calc .ufs-btn[disabled]{opacity:.7;cursor:wait}

/* Steps */
.ufs-form{display:grid;gap:20px}
.ufs-paso{background:#fff;border-radius:16px;padding:32px;border:0;margin:0;min-width:0}
.ufs-paso legend{display:flex;align-items:center;gap:14px;font-family:var(--f-d);font-size:22px;font-weight:800;line-height:1.2;padding:0;margin:0 0 6px;float:left;width:100%;color:var(--ink)}
.ufs-paso legend i{font-style:normal;width:34px;height:34px;flex:none;border-radius:50%;background:var(--harbour);color:#fff;display:grid;place-items:center;font-size:16px;font-family:var(--f-t);font-weight:700}
.ufs-ayuda{clear:both;color:var(--muted);font-size:16px;margin:0 0 20px 48px!important}
.ufs-opciones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ufs-opcion{position:relative;display:block;cursor:pointer;margin:0}
.ufs-opcion input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.ufs-caja{display:flex;flex-direction:column;gap:4px;height:100%;padding:18px 18px 16px;border-radius:12px;box-shadow:inset 0 0 0 2px var(--line);transition:box-shadow .12s,background .12s;position:relative;background:#fff}
.ufs-opcion:hover .ufs-caja{box-shadow:inset 0 0 0 2px var(--line-strong)}
.ufs-opcion input:checked+.ufs-caja{box-shadow:inset 0 0 0 3px var(--harbour);background:var(--mist)}
.ufs-opcion input:focus-visible+.ufs-caja{outline:3px solid var(--kelp);outline-offset:2px}
.ufs-caja b{font-size:17px;line-height:1.3;padding-right:24px}
.ufs-caja small{font-size:15px;color:var(--muted);line-height:1.45}
.ufs-caja .ufs-precio{margin-top:auto;padding-top:10px;font-family:var(--f-d);font-size:22px;font-weight:800;line-height:1.2}
.ufs-caja .ufs-precio small{font-family:var(--f-t);font-weight:700;font-size:14px;color:var(--muted)}
.ufs-opcion input:checked+.ufs-caja::after{content:"";position:absolute;right:16px;top:18px;width:14px;height:14px;border-radius:50%;background:var(--tag);box-shadow:0 0 0 2px var(--harbour)}
.ufs-chips{display:flex;flex-wrap:wrap;gap:10px}
.ufs-chips .ufs-caja{flex-direction:row;align-items:center;padding:12px 18px;border-radius:999px;font-weight:700;font-size:16px;min-height:48px}
.ufs-chips .ufs-opcion input:checked+.ufs-caja::after{display:none}
.ufs-chips .ufs-opcion input:checked+.ufs-caja{background:var(--harbour);color:#fff;box-shadow:none}
.ufs-sub{margin-top:18px;padding-top:18px;border-top:1px solid var(--line);display:grid;gap:14px}
.ufs-productos{display:grid;grid-template-columns:1fr 120px;gap:16px;align-items:center}
.ufs-calc input[type=range]{width:100%;accent-color:var(--kelp);padding:0;border:0;min-height:0;background:none}

/* Fields */
.ufs-campo{display:grid;gap:7px;font-size:16px;font-weight:700;line-height:1.4;margin:0}
.ufs-etq{margin-top:4px}
.ufs-campo .ufs-opc{font-weight:400;color:var(--muted)}
.ufs-calc .ufs-campo input,.ufs-calc .ufs-campo textarea,.ufs-calc .ufs-num-input{font:400 17px/1.4 var(--f-t);min-height:52px;width:100%;padding:12px 14px;border-radius:10px;border:2px solid var(--line-strong);background:#fff;color:var(--ink);box-shadow:none;margin:0}
.ufs-calc .ufs-num-input{font-weight:700;font-size:18px;text-align:center;padding:0 10px}
.ufs-calc .ufs-campo input:focus,.ufs-calc .ufs-campo textarea:focus,.ufs-calc .ufs-num-input:focus{border-color:var(--kelp);outline:none;box-shadow:0 0 0 3px rgba(11,110,105,.25)}
.ufs-calc .ufs-campo textarea{min-height:110px;resize:none}
.ufs-nota{font-weight:400;font-size:15px;color:var(--muted)}
.ufs-campo.ufs-mal input{border-color:var(--err)}
.ufs-err{font-weight:400;font-size:15px;color:var(--err);line-height:1.4}
.ufs-campos{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.ufs-paso>.ufs-campo{margin-top:16px}
.ufs-extra{display:flex;gap:14px;align-items:flex-start;padding:18px;border-radius:12px;box-shadow:inset 0 0 0 2px var(--line);cursor:pointer;margin:0 0 12px;line-height:1.45}
.ufs-extra:hover{box-shadow:inset 0 0 0 2px var(--line-strong)}
.ufs-calc .ufs-extra input,.ufs-calc .ufs-acepto input{width:22px;height:22px;margin:3px 0 0;accent-color:var(--kelp);flex:none}
.ufs-extra b{display:block;font-size:17px}
.ufs-extra small{color:var(--muted);font-size:15px}
.ufs-extra .ufs-p{margin-left:auto;font-family:var(--f-d);font-weight:800;font-size:19px;white-space:nowrap;line-height:1.3}
.ufs-aviso-dom{font-size:15px;color:var(--muted);background:var(--mist);border-radius:10px;padding:12px 14px;line-height:1.5}
.ufs-acepto{display:flex;gap:12px;align-items:flex-start;font-size:16px;line-height:1.5;color:var(--ink);margin:22px 0 8px;cursor:pointer}
.ufs-acepto.ufs-mal input{outline:2px solid var(--err);outline-offset:2px}
.ufs-legal{font-size:14px!important;line-height:1.5;color:var(--muted);margin:14px 0 0!important}
.ufs-enviar{display:grid;gap:12px;margin-top:22px}
.ufs-calc .ufs-enviar .ufs-btn{width:100%;min-height:60px;font-size:18px}
.ufs-enviar p{font-size:15px;color:var(--muted);text-align:center}
.ufs-enviar .ufs-err-envio{text-align:left;background:#FEF3F2;border-radius:10px;padding:12px 14px;color:var(--err)}

/* Summary: a hanging price tag (the brand's element) */
.ufs-lado{position:sticky;top:96px;display:grid;gap:14px}
.ufs-ticket{background:var(--tag);color:var(--ink);padding:62px 30px 28px;border-radius:0 0 18px 18px;position:relative;transform:rotate(-1.5deg);transform-origin:50% 0;
  clip-path:polygon(0 46px,46px 0,calc(100% - 46px) 0,100% 46px,100% 100%,0 100%);
  -webkit-mask:radial-gradient(circle 9px at 50% 26px,#0000 98%,#000);mask:radial-gradient(circle 9px at 50% 26px,#0000 98%,#000)}
.ufs-ticket-cab{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 12px;padding-bottom:16px;border-bottom:2px dashed rgba(17,20,24,.28)}
.ufs-ticket-cab h3{font-size:22px}
.ufs-ticket-cab span{font-size:15px}
.ufs-lineas{list-style:none;margin:0;padding:16px 0;display:grid;gap:12px;border-bottom:2px dashed rgba(17,20,24,.28)}
.ufs-lineas li{display:flex;justify-content:space-between;gap:16px;font-size:16px;line-height:1.4;margin:0}
.ufs-lineas li span:last-child{white-space:nowrap;font-weight:700}
.ufs-lineas .ufs-incl span:last-child{color:var(--success)}
.ufs-total{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:18px 0 4px}
.ufs-total b{font-family:var(--f-d);font-size:19px;font-weight:800}
.ufs-total strong{font-family:var(--f-d);font-size:42px;line-height:1;font-weight:800;text-align:right}
.ufs-gst{font-size:14px;text-align:right}
.ufs-pagos{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}
.ufs-pagos div{background:rgba(255,255,255,.6);border-radius:10px;padding:12px 14px;line-height:1.3}
.ufs-pagos small{display:block;font-size:14px}
.ufs-pagos b{font-size:19px}
.ufs-plazo{font-size:15px;display:grid;gap:5px;line-height:1.45}
.ufs-acciones{display:flex;justify-content:center}
.ufs-calc .ufs-link-btn,.ufs-calc .ufs-link-btn:hover,.ufs-calc .ufs-link-btn:focus{background:none;border:0;font:700 16px var(--f-t);color:var(--kelp);text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:10px;min-height:44px;box-shadow:none}

/* Confirmation */
.ufs-ok{background:#fff;border-radius:16px;padding:44px 36px}
.ufs-ok:focus{outline:none}
.ufs-ok-tag{width:76px;height:48px;background:var(--tag);margin-bottom:24px;transform:rotate(-6deg);clip-path:polygon(26% 0,100% 0,100% 100%,26% 100%,0 50%);-webkit-mask:radial-gradient(circle 6px at 22% 50%,#0000 98%,#000);mask:radial-gradient(circle 6px at 22% 50%,#0000 98%,#000)}
.ufs-ok h3{font-size:32px}
.ufs-ok p{margin-top:14px;font-size:18px;color:var(--muted);max-width:560px}
.ufs-ok ol{margin:22px 0 0;padding-left:22px;display:grid;gap:8px}

/* Fixed bar on phones */
.ufs-barra{display:none}

@media (min-width:1600px){.ufs-calc{grid-template-columns:minmax(0,1fr) 440px}}
@media (max-width:1180px){.ufs-calc{grid-template-columns:minmax(0,1fr) 340px;gap:32px}.ufs-ticket{padding:58px 24px 24px}.ufs-total strong{font-size:36px}.ufs-opciones{grid-template-columns:1fr}}
@media (max-width:1024px){
  .ufs-calc{grid-template-columns:1fr}
  .ufs-opciones{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ufs-lado{position:static;max-width:520px;width:100%;margin:8px auto 0}
}
@media (max-width:767px){
  .ufs-calc{font-size:17px}
  .ufs-paso{padding:24px 20px}
  .ufs-ayuda{margin-left:0!important}
  .ufs-opciones,.ufs-campos{grid-template-columns:1fr}
  .ufs-productos{grid-template-columns:1fr 96px}
  .ufs-ticket{transform:none;padding:58px 22px 24px}
  .ufs-ok{padding:32px 22px}
  .ufs-ok h3{font-size:28px}
  .ufs-barra{position:fixed;left:0;right:0;bottom:0;z-index:9990;align-items:center;justify-content:space-between;gap:12px;background:var(--harbour);color:#fff;padding:12px 16px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -10px 30px -12px rgba(0,0,0,.4)}
  .ufs-barra.ufs-barra-on{display:flex}
  .ufs-barra small{display:block;font-size:14px;color:var(--harbour-tx);line-height:1.2}
  .ufs-barra b{font-family:var(--f-d);font-size:24px;line-height:1.1;font-weight:800}
  .ufs-calc .ufs-barra .ufs-btn{min-height:48px;font-size:16px;padding:0 18px}
}
@media (max-width:480px){
  .ufs-extra{flex-wrap:wrap}
  .ufs-extra>span:nth-of-type(1){flex:1 1 140px}
  .ufs-extra .ufs-p{margin-left:36px;width:100%}
  .ufs-paso legend{font-size:20px}
  .ufs-total strong{font-size:34px}
}
body.ufs-con-barra{padding-bottom:76px}
@media (prefers-reduced-motion:reduce){.ufs-calc *{transition:none!important}}

/* Save as PDF: a document of its own; only that gets printed */
#ufs-impresion{display:none}
@media print{
  @page{size:A4;margin:16mm 16mm 14mm}
  body.ufs-imprimiendo{padding:0!important;margin:0!important;background:#fff!important}
  body.ufs-imprimiendo > *:not(#ufs-impresion){display:none!important}
  body.ufs-imprimiendo #ufs-impresion{display:block!important;font-family:"Atkinson Hyperlegible Next",Arial,sans-serif;color:#111418;font-size:11pt;line-height:1.5}
  #ufs-impresion *{box-sizing:border-box;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  #ufs-impresion .pg{position:relative;min-height:262mm;padding-bottom:12mm}
  #ufs-impresion .pg1{page-break-after:always;break-after:page}
  #ufs-impresion header{display:flex;justify-content:space-between;align-items:center;padding-bottom:8mm;border-bottom:2px solid #0F3D3E;margin-bottom:9mm}
  #ufs-impresion header img{height:10mm;width:auto}
  #ufs-impresion header div{text-align:right;display:grid}
  #ufs-impresion header b{font:800 13pt "Archivo Expanded",Arial,sans-serif}
  #ufs-impresion header span{color:#4E5A5C;font-size:10pt}
  #ufs-impresion h1{font:800 22pt/1.1 "Archivo Expanded",Arial,sans-serif;margin:0 0 7mm}
  #ufs-impresion .dos{display:grid;grid-template-columns:1fr 1fr;gap:5mm;margin-bottom:8mm}
  #ufs-impresion .caja{background:#EEF3F1;border:1px solid #D3DCD9;border-radius:3mm;padding:4mm 5mm;font-size:10.5pt}
  #ufs-impresion .caja small{display:block;color:#4E5A5C;font-size:9pt;margin-bottom:1mm}
  #ufs-impresion .caja em{color:#4E5A5C;font-size:9pt}
  #ufs-impresion table.lin{width:100%;border-collapse:collapse;margin-bottom:4mm;border:0!important}
  #ufs-impresion table.lin th,#ufs-impresion table.lin td{border:0!important;background:transparent!important}
  #ufs-impresion table.lin th{text-align:left;font-size:9pt;color:#4E5A5C;font-weight:700;border-bottom:1.5px solid #111418!important;padding:2mm 0}
  #ufs-impresion table.lin th:last-child,#ufs-impresion table.lin td:last-child{text-align:right}
  #ufs-impresion table.lin td{padding:3mm 0;border-bottom:1px dashed #C3CECA!important;font-weight:700}
  #ufs-impresion table.lin tr.inc td{color:#4E5A5C;font-weight:400}
  #ufs-impresion table.lin tr.inc td:last-child{color:#1E7A45;font-weight:700}
  #ufs-impresion .total{display:flex;justify-content:space-between;align-items:baseline;padding-top:3mm}
  #ufs-impresion .total span{font:800 14pt "Archivo Expanded",Arial,sans-serif}
  #ufs-impresion .total strong{font:800 30pt/1 "Archivo Expanded",Arial,sans-serif}
  #ufs-impresion .gst{text-align:right;color:#4E5A5C;font-size:9pt;margin:1mm 0 7mm}
  #ufs-impresion .tres{display:grid;grid-template-columns:repeat(3,1fr);gap:4mm;margin-bottom:7mm}
  #ufs-impresion .tres div{border:1px solid #D3DCD9;border-radius:3mm;padding:3.5mm 4mm}
  #ufs-impresion .tres small{display:block;color:#4E5A5C;font-size:9pt}
  #ufs-impresion .tres b{font-size:13pt}
  #ufs-impresion ul{margin:0;padding-left:5mm}
  #ufs-impresion .datos{list-style:none;padding:0;display:grid;gap:1.5mm;font-size:10.5pt}
  #ufs-impresion .aviso{margin-top:8mm;padding:4mm 5mm;border-left:3px solid #0F3D3E;background:#FFF6D6;font-size:10pt}
  #ufs-impresion footer{position:absolute;left:0;right:0;bottom:0;font-size:8.5pt;color:#4E5A5C;border-top:1px solid #D3DCD9;padding-top:2mm}
  #ufs-impresion h2{font:800 16pt/1.15 "Archivo Expanded",Arial,sans-serif;margin:0 0 4mm}
  #ufs-impresion h2+h3{margin-top:0}
  #ufs-impresion h3{font:800 11.5pt "Archivo Expanded",Arial,sans-serif;margin:5mm 0 2mm}
  #ufs-impresion .chk li,#ufs-impresion .cond li{margin-bottom:1.8mm;font-size:10.5pt}
  #ufs-impresion .no{font-size:9.5pt;color:#4E5A5C;margin:4mm 0 9mm}
  #ufs-impresion .leg{font-size:9pt;color:#4E5A5C;margin-top:5mm}
}
