/* ============================================================
   CDM Alquileres — sitio de reservas
   Reskin: mismas tipografías, colores y componentes que la web
   principal (ver cdm-reservas.css, cargada antes que esta hoja).
   Acá solo van el layout propio de la página y los pocos
   componentes que el módulo necesita y la guía no cubre
   (buscador en varias filas, calendario en popover, tarjeta de
   unidad con botón).
   ============================================================ */

@font-face{font-family:'Canela Deck';src:url('../fonts/CanelaDeck-Regular.otf') format('opentype');font-weight:300 500;font-style:normal;font-display:swap}
@font-face{font-family:'Canela';src:url('../fonts/Canela-LightItalic.ttf') format('truetype');font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:'Inter';src:url('../fonts/inter-var.woff2') format('woff2');font-weight:100 900;font-display:swap}

:root{
  /* tokens de color/tipografía/sombra vienen de cdm-reservas.css;
     acá solo sumamos las medidas de layout que el sitio define en styles.css */
  --pad:clamp(1.25rem,4.7vw,4.25rem);
  --max:74rem;
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;font-size:16px;font-size:clamp(16px, calc(16px + (100vw - 1440px) * .0045), 21px)}
body{
  /* el nav usa --bg (crema); el cuerpo usa --beige, un tono más oscuro,
     para que se note el mismo corte de color que en el sitio principal */
  margin:0;background:var(--beige);color:var(--body);
  font-family:var(--sans);font-weight:400;
  font-size:clamp(.9062rem,1.05vw,.9688rem);line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
h1,h2{font-family:var(--serif);font-weight:400;margin:0;letter-spacing:.002em}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
a,button{-webkit-tap-highlight-color:transparent}

.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--pad)}

/* ---------- nav (igual que el sitio principal, ver css/styles.css) ---------- */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.625rem calc(var(--pad) + max(0px,(100% - var(--max)) / 2));
  transition:background .45s ease,padding .45s ease,box-shadow .45s;
}
.nav.solid{background:var(--bg);box-shadow:0 1px 0 var(--line);padding-block:.875rem}
.nav a{font-family:var(--sans);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500}
.nav-logo{display:flex;align-items:center;gap:1.375rem}
.nav-logo img{width:5.25rem;height:5.25rem;transition:filter .45s,width .45s,height .45s}
.nav.solid .nav-logo img{width:2.75rem;height:2.75rem}
.nav-logo span{font-family:var(--serif);font-size:1.22rem;letter-spacing:.02em;text-transform:none;font-weight:400}
.nav-links{display:flex;align-items:center;gap:clamp(1.25rem,3vw,3.25rem)}
.nav-links a{position:relative;padding-bottom:.1875rem}
.nav-links a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:currentColor;transition:width .35s ease}
.nav-links a:hover::after{width:100%}
.nav.over{color:#fff}
.nav.over .nav-logo img{filter:brightness(0) invert(1)}
.nav-toggle{display:none;background:none;border:0;color:inherit;font-size:.72rem;
  letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:.375rem 0;font-family:var(--sans);font-weight:500}

@media (max-width:680px){
  .nav-links{position:fixed;inset:0;background:var(--bg);color:var(--ink);flex-direction:column;
    justify-content:center;gap:1.75rem;transform:translateY(-101%);transition:transform .5s cubic-bezier(.4,0,.1,1);text-shadow:none}
  .nav-links.open{transform:none}
  .nav-links a{font-size:.95rem}
  .nav-toggle{display:block;z-index:2;position:relative;width:1.875rem;height:1.875rem;padding:0;font-size:0}
  .nav-toggle span{position:absolute;left:0;right:0;height:1.5px;background:currentColor;transition:transform .4s cubic-bezier(.4,0,.1,1),top .4s cubic-bezier(.4,0,.1,1)}
  .nav-toggle span:first-child{top:.625rem}
  .nav-toggle span:last-child{top:1.1875rem}
  .nav-toggle.open{color:var(--ink)}
  .nav-toggle.open span:first-child{top:.9062rem;transform:rotate(45deg)}
  .nav-toggle.open span:last-child{top:.9062rem;transform:rotate(-45deg)}
  .nav{padding-block:1.375rem}
  .nav-logo{gap:1rem}
  .nav-logo span{font-size:1.05rem;white-space:nowrap}
  .nav-logo img{width:2.875rem;height:2.875rem}
}

/* ---------- pasos ---------- */
/* el nav acá arranca siempre "solid" (compacto, sin hero), así que alcanza con despejar esa altura */
.wizard{padding-top:clamp(6rem,10vw,7.5rem);padding-bottom:7.5rem}
.steps{
  display:flex;align-items:center;gap:.625rem;flex-wrap:wrap;
  margin-bottom:2rem;font-family:var(--sans);font-size:.78rem;letter-spacing:.09em;
  text-transform:uppercase;font-weight:500;color:var(--loc);
}
.steps .sep{color:var(--line);text-transform:none;letter-spacing:0}
.steps .step{padding-bottom:.25rem;border-bottom:2px solid transparent}
.steps .step.active{color:var(--ink);border-bottom-color:var(--ink)}
.steps .step.disabled{opacity:.55;display:flex;flex-direction:column;line-height:1.3;letter-spacing:.09em}
.steps .step.disabled em{font-style:normal;font-size:.68rem}

/* ---------- layout ---------- */
.wizard-body{display:grid;grid-template-columns:1fr 21.25rem;gap:3rem;align-items:start}
.view{display:none}
.view.active{display:block}
h1{font-size:clamp(1.8rem,3vw,2.3rem);color:var(--title);margin-bottom:1.6rem}
.muted{color:var(--loc);font-size:.9rem}

/* ---------- buscador ---------- */
.filters{display:flex;flex-direction:column;gap:.75rem}
.filters-row{display:flex;flex-wrap:wrap;align-items:end;gap:.875rem}

.field-edificio{flex:0 1 11.25rem;min-width:10rem}
.stepper-box{flex:0 0 auto;min-width:8.75rem}
.date-cell{flex:0 1 11.25rem;min-width:9.5rem;position:relative}

.cdm-stepper-btns{display:flex;gap:.4rem}

/* el botón-fecha se ve igual que un cdm-input */
.date-display{
  display:block;width:100%;text-align:left;font:inherit;font-size:.95rem;color:var(--loc);
  background:var(--white);height:3.25rem;padding:0 1.125rem;border:1px solid var(--line);
  border-radius:var(--radius-card);cursor:pointer;transition:border-color var(--t) ease;
}
.date-display:hover{border-color:var(--line-strong)}
.date-display.has-value{color:var(--ink)}

/* ---------- calendario (popover propio, mismos valores que .cdm-cal) ---------- */
.cal-popover{
  position:absolute;top:calc(100% + .5rem);left:0;z-index:200;
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-card);
  padding:1.25rem;box-shadow:var(--shadow-panel);width:17rem;font-family:var(--sans);color:var(--ink);
}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.cal-label{font-family:var(--serif);font-size:1.35rem;color:var(--title)}
.cal-nav{width:2.375rem;height:2.375rem;border-radius:50%;border:1px solid rgba(43,41,38,.32);background:transparent;
  font-size:1.1rem;color:var(--ink);cursor:pointer;transition:background var(--t) ease,color var(--t) ease}
.cal-nav:hover{background:var(--ink);color:var(--white)}
.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem 0;margin-bottom:.25rem}
.cal-weekdays span{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:var(--loc);text-align:center;padding:.5rem 0}
.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem 0}
.cal-day{height:2.75rem;display:grid;place-items:center;font-size:.9rem;border:0;background:transparent;color:var(--ink);cursor:pointer;border-radius:50%}
.cal-day.muted{color:var(--line);cursor:default}
.cal-day:not(.muted):not([disabled]):hover{background:var(--beige)}
.cal-day.today{font-weight:500;border-bottom:1px solid currentColor;border-radius:0}
.cal-day.sel{background:var(--ink);color:var(--white)}
.cal-day[disabled]{color:#C2B9AB;text-decoration:line-through;cursor:default}
.cal-foot{display:flex;justify-content:space-between;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--line)}
.cal-link{background:none;border:0;color:var(--ink);font-size:.8rem;cursor:pointer;padding:0}
.cal-link:hover{text-decoration:underline}

@media (max-width:680px){
  .filters-row{flex-direction:column;align-items:stretch}
  .field-edificio,.stepper-box,.date-cell{flex:1 1 auto;min-width:0}
}

/* ---------- listado de unidades ---------- */
.room-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}
.link-btn{background:none;border:0;color:var(--ink);text-decoration:underline;cursor:pointer;font-size:.85rem;padding:0;font-family:var(--sans)}

.units-list{display:flex;flex-direction:column;gap:1rem}
.unit-card{
  display:grid;grid-template-columns:9.375rem 1fr auto;gap:1.25rem;align-items:center;
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-card);padding:1rem;
  transition:border-color var(--t) ease,box-shadow var(--t) ease;
}
.unit-card:hover{border-color:var(--line-strong);box-shadow:0 .625rem 1.75rem rgba(43,41,38,.08)}
.unit-card.selected{border-color:var(--ink);box-shadow:0 0 0 2px var(--ink)}
.unit-card img{width:9.375rem;height:6.875rem;object-fit:cover;border-radius:.5rem}
.unit-name{font-family:var(--serif);font-size:1.25rem;color:var(--title);margin:0 0 .3rem}
.unit-price{font-size:.85rem;color:var(--loc);margin:0 0 .4rem}
.unit-price strong{font-family:var(--serif);font-size:.95rem;color:var(--ink);font-weight:400}
.unit-specs{font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;font-weight:500;color:var(--ink);margin:0}
.unit-desc{font-size:.85rem;color:var(--loc);margin:.4rem 0 0}
.unit-select{white-space:nowrap}
.unit-select-btn{border-color:var(--ink)}
.units-empty{color:var(--loc);padding:1.5rem 0;font-size:.92rem}

/* ---------- resumen ---------- */
.summary{position:sticky;top:1.5rem}
.summary h2{font-size:1.4rem;color:var(--title);margin-bottom:1.2rem}
.summary-empty{display:flex;align-items:center;gap:.875rem;color:var(--loc);font-size:.88rem}
.summary-thumb{width:3.25rem;height:3.25rem;object-fit:cover;flex-shrink:0;border-radius:var(--radius-card)}
.summary-thumb.ph{background:var(--beige);border:1px solid var(--line)}
.summary-filled{display:flex;flex-wrap:wrap;gap:.875rem}
.summary-info{flex:1;min-width:8.75rem}
.summary-info strong{display:block;font-family:var(--serif);font-size:1.1rem;color:var(--title);font-weight:400;margin-bottom:.3rem}
.summary-info p{margin:.15rem 0;font-size:.84rem}
.summary-note{margin-top:1.1rem;padding-top:.875rem;border-top:1px solid var(--line)}

/* ---------- footer fijo ---------- */
.wizard-footer{
  position:fixed;left:0;right:0;bottom:0;background:var(--white);
  border-top:1px solid var(--line);padding:1rem var(--pad);
}
.footer-inner{display:flex;justify-content:space-between;align-items:center}
#continueBtn{border-color:var(--ink)}

@media (max-width:960px){
  .wizard-body{grid-template-columns:1fr}
  .summary{position:static}
}
@media (max-width:680px){
  .unit-card{grid-template-columns:1fr;text-align:left}
  .unit-card img{width:100%;height:10rem}
}
