/* Hábitat Sano · formulario de solicitud
   Todos los selectores van dentro de .hsf para no tocar el resto del tema. */

.hsf{
  --ink:#0E2420;--ink2:#33443F;--ink3:#6B7C77;--paper:#F1F4F2;--card:#FFFFFF;--line:#D3DCD7;
  --soft:#E6EBE8;--pine:#16564A;--sea:#1C6E7E;--brick:#A93C2B;--pine-soft:#E2EDE8;--btntext:#FFFFFF;
  max-width:720px;margin:0 auto;color:var(--ink);
  font-family:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  font-size:16px;line-height:1.55;
}
.hsf *{box-sizing:border-box}
.hsf h2{font-size:1.35rem;margin:0 0 6px;line-height:1.2;color:var(--ink);font-weight:600}
.hsf p{margin:0 0 14px;color:var(--ink2)}
.hsf .hs-brand{display:flex;align-items:center;gap:9px;color:var(--pine);font-weight:600;font-size:.78rem;margin-bottom:18px}
.hsf .hs-brand i{width:8px;height:8px;border-radius:50%;background:var(--pine);display:block}
.hsf .hs-steps{display:flex;gap:6px;margin-bottom:24px}
.hsf .hs-steps div{flex:1;height:3px;background:var(--soft);border-radius:2px}
.hsf .hs-steps div.on{background:var(--pine)}
.hsf .hs-n{font-size:.75rem;color:var(--ink3);margin-bottom:6px;letter-spacing:.02em}
.hsf .hs-card{background:var(--card);border:1px solid var(--line);padding:22px;margin-bottom:18px}
.hsf .hs-sub{color:var(--ink3);font-size:.92rem;margin-bottom:22px}
.hsf label{display:block;font-weight:600;font-size:.88rem;margin:16px 0 5px;color:var(--ink)}
.hsf .hs-hint{font-weight:400;color:var(--ink3);font-size:.82rem;margin:-2px 0 6px}
.hsf input[type=text],.hsf input[type=number],.hsf input[type=email],.hsf select,.hsf textarea{
  width:100%;padding:10px 12px;border:1px solid var(--line);background:var(--paper);color:var(--ink);
  font:inherit;font-size:.95rem;border-radius:2px;margin:0}
.hsf input:focus,.hsf select:focus,.hsf textarea:focus{outline:2px solid var(--sea);outline-offset:1px}
.hsf textarea{min-height:66px;resize:vertical}
.hsf .hs-opts{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.hsf .hs-opts button{font:inherit;font-size:.86rem;padding:8px 14px;border:1px solid var(--line);
  background:transparent;color:var(--ink2);cursor:pointer;border-radius:2px}
.hsf .hs-opts button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.hsf .hs-tiers{display:grid;gap:12px;margin-top:6px}
.hsf .hs-tier{border:1px solid var(--line);padding:16px 18px;background:var(--paper);cursor:pointer;
  text-align:left;font:inherit;border-radius:2px;display:block;width:100%}
.hsf .hs-tier[aria-pressed="true"]{border-color:var(--pine);border-width:2px;padding:15px 17px;background:var(--pine-soft)}
.hsf .hs-tier .t{font-weight:600;font-size:1rem;color:var(--ink);display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.hsf .hs-tier .pr{color:var(--pine);white-space:nowrap}
.hsf .hs-tier ul{margin:8px 0 0;padding-left:16px;font-size:.86rem;color:var(--ink2)}
.hsf .hs-tier li{margin-bottom:2px}
.hsf .hs-nav{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.hsf .hs-btn{font:inherit;font-weight:600;font-size:.95rem;padding:11px 20px;border:1px solid var(--pine);
  background:var(--pine);color:var(--btntext);cursor:pointer;border-radius:2px}
.hsf .hs-btn.ghost{background:transparent;color:var(--ink2);border-color:var(--line)}
.hsf .hs-btn[disabled]{opacity:.5;cursor:not-allowed}
.hsf .hs-drop{border:1px dashed var(--line);padding:22px;text-align:center;color:var(--ink3);
  cursor:pointer;background:var(--paper);font-size:.92rem}
.hsf .hs-drop:hover{border-color:var(--sea);color:var(--ink2)}
.hsf .hs-planwrap{position:relative;margin-top:16px;display:none}
.hsf .hs-planwrap img{width:100%;display:block;border:1px solid var(--line)}
.hsf .hs-compass{position:absolute;top:12px;right:12px;width:96px;height:96px;pointer-events:none}
.hsf .hs-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.hsf .hs-thumbs img{width:78px;height:78px;object-fit:cover;border:1px solid var(--line)}
.hsf table.hs-rooms{width:100%;border-collapse:collapse;font-size:.88rem;margin-top:8px}
.hsf table.hs-rooms th{text-align:left;font-size:.72rem;color:var(--ink3);padding:6px 6px 6px 0;border-bottom:1px solid var(--line)}
.hsf table.hs-rooms td{padding:5px 6px 5px 0;border-bottom:1px solid var(--soft);vertical-align:middle}
.hsf table.hs-rooms input,.hsf table.hs-rooms select{padding:6px 8px;font-size:.86rem}
.hsf .hs-del{background:none;border:none;color:var(--brick);cursor:pointer;font-size:1.1rem;padding:4px}
.hsf .hs-azi{font-size:.8rem;color:var(--sea);white-space:nowrap}
.hsf .hs-check{display:flex;gap:10px;align-items:flex-start;margin:12px 0;font-size:.88rem;color:var(--ink2)}
.hsf .hs-check input{width:18px;height:18px;margin:2px 0 0;flex:none;accent-color:var(--pine)}
.hsf .hs-check label{margin:0;font-weight:400;font-size:.88rem;color:var(--ink2)}
.hsf .hs-note{background:var(--pine-soft);border-left:3px solid var(--pine);padding:12px 14px;
  font-size:.88rem;margin:16px 0;color:var(--ink2)}
.hsf .hs-note strong{color:var(--ink)}
.hsf .hs-err{color:var(--brick);font-size:.86rem;margin-top:10px;display:none}
.hsf .hs-sum dt{font-size:.74rem;color:var(--ink3);margin-top:12px}
.hsf .hs-sum dd{margin:2px 0 0;font-weight:600;font-size:.92rem;color:var(--ink)}
.hsf .hs-pays{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.hsf .hs-pays span{border:1px solid var(--line);padding:5px 11px;font-size:.8rem;color:var(--ink3);border-radius:2px}
.hsf .hs-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.hsf .hs-ok{background:var(--pine-soft);border:1px solid var(--pine);padding:22px;text-align:center}
.hsf .hs-ok h2{color:var(--pine)}
@media (prefers-reduced-motion:reduce){.hsf *{transition:none!important}}

/* fichas de fotos */
.hsf .hs-foto{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);
  padding:10px;margin-bottom:10px;background:var(--paper)}
.hsf .hs-foto img{width:84px;height:84px;object-fit:cover;flex:none;border:1px solid var(--line)}
.hsf .hs-foto .f{flex:1;min-width:0}
.hsf .hs-foto input,.hsf .hs-foto select{margin-bottom:6px;font-size:.88rem;padding:7px 9px}
.hsf .hs-foto .q{background:none;border:none;color:var(--brick);cursor:pointer;font-size:1.1rem;padding:2px 6px;flex:none}
