/* Lashadas Lux · pasos de reserva + paso final (oconfirm). Colores y tipografías del sitio. */
:root{--lxo-ink:#083A50;--lxo-text:#3A515B;--lxo-muted:#6B7C84;--lxo-line:#DCD8D3;--lxo-band:#E3EAED;--lxo-surface:#fff;--lxo-warn:#A5532C;
  --lxo-head:"Josefin Sans",system-ui,sans-serif;--lxo-body:"EB Garamond",Georgia,serif}

/* barra de pasos (todas las pantallas del flujo) */
.vbstepsbarcont{display:block;width:100%;margin:0 0 26px}
ol.vbo-stepbar{display:flex;gap:0;margin:0;padding:0;list-style:none;border-bottom:1px solid var(--lxo-line)}
ol.vbo-stepbar li.vbo-step,ol.vbo-stepbar li{display:block;float:none;width:auto!important;min-width:0;margin:0 26px 0 0!important;padding:10px 0;line-height:1.3!important;text-align:left;border:0!important;position:relative;
  font:600 11px var(--lxo-head);letter-spacing:.14em;text-transform:uppercase;color:var(--lxo-muted)}
ol.vbo-stepbar li:before{content:none!important;display:none!important}
ol.vbo-stepbar li:after{content:none!important}
ol.vbo-stepbar li a,ol.vbo-stepbar li span{color:inherit;text-decoration:none!important;font:inherit;letter-spacing:inherit}
ol.vbo-stepbar li.vbo-step-complete{color:var(--lxo-ink)}
ol.vbo-stepbar li.vbo-step-complete::before{content:"✓ "!important;display:inline!important;position:static;float:none;background:none;width:auto;height:auto;border:0;color:var(--lxo-ink);font-size:11px}
ol.vbo-stepbar li.vbo-step-current{color:var(--lxo-ink);font-weight:600}
ol.vbo-stepbar li.vbo-step-current::after{content:""!important;position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--lxo-ink)}
@media(max-width:520px){ol.vbo-stepbar li.vbo-step,ol.vbo-stepbar li{margin-right:14px!important;font-size:10px;letter-spacing:.1em}}

/* paso final */
.lux-oc-hidden{display:none!important}
.lux-oc{font-family:var(--lxo-body);color:var(--lxo-text);font-size:18px;line-height:1.5}
.lux-oc *{box-sizing:border-box}
.lux-oc__layout{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:36px;align-items:start;width:100%}
@media(max-width:920px){.lux-oc__layout{grid-template-columns:minmax(0,1fr)}.lux-oc__side{order:-1;position:static!important}}
.lux-oc__layout>form{min-width:0;width:100%;margin:0}
.lux-oc__form{display:grid;gap:26px;min-width:0}
.lux-oc__block{background:#fff;border:1px solid var(--lxo-line);padding:24px;display:grid;gap:18px;min-width:0}
@media(max-width:620px){.lux-oc__block{padding:18px}}
.lux-oc__block>h2{margin:0;font:600 12px var(--lxo-head);letter-spacing:.16em;text-transform:uppercase;color:var(--lxo-ink)}
.lux-oc__grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;min-width:0}
@media(max-width:620px){.lux-oc__grid2{grid-template-columns:minmax(0,1fr)}}
.lux-oc__leftovers{display:none!important}

/* campos de VikBooking */
.lux-oc .vbo-oconfirm-cfield-entry{display:grid;gap:6px;margin:0;padding:0;min-width:0;float:none;width:auto}
.lux-oc .vbo-oconfirm-cfield-label{display:flex;flex-direction:row-reverse;justify-content:flex-end;align-items:baseline;gap:4px;width:auto;float:none;padding:0;margin:0}
.lux-oc .vbo-oconfirm-cfield-label label{margin:0;font:600 11px var(--lxo-head);letter-spacing:.14em;text-transform:uppercase;color:var(--lxo-ink)}
.lux-oc .vbrequired{color:var(--lxo-warn);font-size:14px}
.lux-oc .vbo-oconfirm-cfield-input{width:auto;float:none;padding:0;margin:0;min-width:0}
.lux-oc input.vbinput,.lux-oc select,.lux-oc textarea.vbtextarea,.lux-oc .vbinputcoupon{width:100%!important;max-width:100%;border:1px solid var(--lxo-line);background:#fff;padding:12px 14px;font:400 18px var(--lxo-body);color:var(--lxo-text);border-radius:0;box-shadow:none;height:auto;min-height:48px;margin:0}
.lux-oc select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--lxo-ink) 50%),linear-gradient(135deg,var(--lxo-ink) 50%,transparent 50%);background-position:calc(100% - 20px) 55%,calc(100% - 14px) 55%;background-size:6px 6px;background-repeat:no-repeat;padding-right:36px}
.lux-oc textarea.vbtextarea{min-height:110px;resize:vertical}
.lux-oc input.vbinput:hover,.lux-oc select:hover,.lux-oc textarea:hover{border-color:var(--lxo-ink)}
.lux-oc input.vbinput:focus,.lux-oc select:focus,.lux-oc textarea:focus,.lux-oc .vbinputcoupon:focus{outline:2px solid var(--lxo-ink);outline-offset:-1px;border-color:var(--lxo-ink)}
.lux-oc .iti{width:100%;display:block}
.lux-oc .iti input.vbinput{padding-left:58px}

/* facturación plegada */
.lux-oc__opt{border-top:1px solid var(--lxo-line);padding-top:14px}
.lux-oc__opt summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;font:600 12px var(--lxo-head);letter-spacing:.14em;text-transform:uppercase;color:var(--lxo-ink)}
.lux-oc__opt summary::-webkit-details-marker{display:none}
.lux-oc__opt summary::after{content:"+";font:400 22px var(--lxo-head);line-height:1}
.lux-oc__opt[open] summary::after{content:"−"}
.lux-oc__opt summary small{font:400 15px var(--lxo-body);text-transform:none;letter-spacing:0;color:var(--lxo-muted);margin-left:8px}
.lux-oc__opt summary:focus-visible{outline:2px solid var(--lxo-ink);outline-offset:4px}
.lux-oc__inner{margin-top:16px}

/* pago */
.lux-oc .vbo-oconfirm-paymentopts{display:block;margin:0;padding:0}
.lux-oc ul.vbo-oconfirm-paymethods-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:520px){.lux-oc ul.vbo-oconfirm-paymethods-list{grid-template-columns:minmax(0,1fr)}}
.lux-oc li.vbo-oconfirm-paymethod-item{display:flex;align-items:center;gap:12px;margin:0;padding:0;border:1px solid var(--lxo-line);background:#fff;position:relative}
.lux-oc li.vbo-oconfirm-paymethod-item-active{border-color:var(--lxo-ink);background:var(--lxo-band)}
.lux-oc li.vbo-oconfirm-paymethod-item input[type=radio]{accent-color:var(--lxo-ink);width:18px;height:18px;margin:0 0 0 16px;flex:none}
.lux-oc li.vbo-oconfirm-paymethod-item label{flex:1;margin:0;padding:14px 16px 14px 0;cursor:pointer;font:600 12px var(--lxo-head);letter-spacing:.12em;text-transform:uppercase;color:var(--lxo-ink)}
.lux-oc li.vbo-oconfirm-paymethod-item:has(input:focus-visible){outline:2px solid var(--lxo-ink);outline-offset:2px}
.lux-oc__accept{display:flex!important;flex-direction:row-reverse;justify-content:flex-end;align-items:flex-start;gap:12px}
.lux-oc__accept .vbo-oconfirm-cfield-label{align-items:flex-start}
.lux-oc__accept .vbo-oconfirm-cfield-label label{font:400 17px var(--lxo-body);letter-spacing:0;text-transform:none;color:var(--lxo-text)}
.lux-oc__accept input[type=checkbox]{accent-color:var(--lxo-ink);width:20px;height:20px;margin:3px 0 0}

/* pie del formulario: solo "Volver" (el submit real queda oculto y lo dispara el botón del resumen) */
.lux-oc__bottom{display:flex;align-items:center;margin:0;padding:0}
.lux-oc__bottom input[name="saveorder"]{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.lux-oc__bottom .goback{margin:0;float:none}
.lux-oc__bottom .vbo-goback-link,.lux-oc__bottom .vbo-goback-link:hover,.lux-oc__bottom .vbo-goback-link:focus{background:none!important;border:0!important;box-shadow:none!important;padding:0!important;color:var(--lxo-muted)!important;text-decoration:underline!important;font:400 16px var(--lxo-body)!important}
.lux-oc__bottom .vbo-goback-link:hover{color:var(--lxo-ink)!important}

/* resumen */
.lux-oc__side{position:sticky;top:20px;background:#fff;border:1px solid var(--lxo-line);box-shadow:0 24px 50px -26px rgba(8,58,80,.45);display:grid;min-width:0}
.lux-oc__thumb{aspect-ratio:16/9;overflow:hidden;background:var(--lxo-band)}
.lux-oc__thumb img{width:100%;height:100%;object-fit:cover;display:block;max-width:100%}
.lux-oc__sbody{padding:22px;display:grid;gap:16px;min-width:0}
.lux-oc__titles{display:grid;gap:8px;justify-items:start}
.lux-oc__titles h2{margin:0;font:300 24px/1.15 var(--lxo-head);letter-spacing:.04em;text-transform:uppercase;color:var(--lxo-ink)}
.lux-oc__tag{display:inline-block;border:1px solid var(--lxo-ink);color:var(--lxo-ink);padding:3px 9px;font:600 10.5px var(--lxo-head);letter-spacing:.12em;text-transform:uppercase}
.lux-oc__dates{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--lxo-ink)}
.lux-oc__f{padding:12px 14px;display:grid;gap:2px;min-width:0}
.lux-oc__f+.lux-oc__f{border-left:1px solid var(--lxo-ink)}
.lux-oc__f small{font:600 10.5px var(--lxo-head);letter-spacing:.14em;text-transform:uppercase;color:var(--lxo-muted)}
.lux-oc__f b{font:500 20px/1.2 var(--lxo-body);color:var(--lxo-ink)}
.lux-oc__f i{font-style:normal;font-size:15px;color:var(--lxo-muted)}
.lux-oc__rows{display:grid;gap:8px;font-size:17px}
.lux-oc__rows div{display:flex;justify-content:space-between;gap:12px}
.lux-oc__rows span{color:var(--lxo-muted)}
.lux-oc__rows b{font-weight:500;color:var(--lxo-ink);font-variant-numeric:tabular-nums;text-align:right}
.lux-oc__total{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-top:1px solid var(--lxo-line);padding-top:14px}
.lux-oc__total span{font:600 12px var(--lxo-head);letter-spacing:.16em;text-transform:uppercase;color:var(--lxo-ink)}
.lux-oc__total b{font:300 clamp(34px,5vw,42px)/1 var(--lxo-head);color:var(--lxo-ink);font-variant-numeric:tabular-nums}
.lux-oc__total sup{font-size:.45em;vertical-align:.9em;margin-right:2px}
.lux-oc__total i{font-style:normal}
.lux-oc__fine{margin:0;font-size:14px;color:var(--lxo-muted);text-align:center}

/* cupón dentro del resumen */
.lux-oc__coupon summary{cursor:pointer;color:var(--lxo-ink);text-decoration:underline;font-size:16px;list-style:none}
.lux-oc__coupon summary::-webkit-details-marker{display:none}
.lux-oc__coupon summary:focus-visible{outline:2px solid var(--lxo-ink);outline-offset:3px}
.lux-oc__coupon .vbo-oconfirm-middlep,.lux-oc__coupon .vbo-coupon-outer{margin:10px 0 0;padding:0;border:0;background:none;width:auto}
.lux-oc__coupon .vbentercoupon{border:0!important;background:none!important;padding:0!important;margin:0!important;text-align:left}
.lux-oc__coupon .vbhaveacoupon{display:none}
.lux-oc__coupon .vbentercoupon-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.lux-oc__coupon input.vbsubmitcoupon,.lux-oc__coupon input.vbsubmitcoupon:hover,.lux-oc__coupon input.vbsubmitcoupon:focus{background:transparent!important;color:var(--lxo-ink)!important;border:1px solid var(--lxo-ink)!important;border-radius:0;padding:0 16px;font:600 11px var(--lxo-head);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;box-shadow:none}
.lux-oc__coupon input.vbsubmitcoupon:hover{background:var(--lxo-band)!important}

/* botones principales */
.lux-oc__cta,.lux-oc__cta:hover,.lux-oc__cta:focus,.lux-oc__cta:active{all:unset;box-sizing:border-box;display:block;text-align:center;background:var(--lxo-ink);color:#fff;padding:15px 18px;cursor:pointer;font:600 13px var(--lxo-head);letter-spacing:.2em;text-transform:uppercase}
.lux-oc__cta:hover{filter:brightness(1.12)}
.lux-oc__cta:focus-visible{outline:2px solid var(--lxo-ink);outline-offset:3px}

/* aviso de campos obligatorios */
.vbo-alert-container-confirm{position:fixed!important;left:50%;transform:translateX(-50%);bottom:96px;z-index:99998;background:var(--lxo-ink)!important;color:#fff!important;border:0!important;padding:12px 40px 12px 18px!important;font:400 16px var(--lxo-body)!important;max-width:calc(100vw - 32px);box-shadow:0 14px 30px -14px rgba(8,58,80,.6)}
.vbo-alert-close{position:absolute;right:12px;top:8px;cursor:pointer;color:#fff}

/* barra fija móvil */
.lux-oc__dock{display:none}
@media(max-width:920px){
  .lux-oc__dock{display:block;position:fixed;left:0;right:0;bottom:0;z-index:9990;background:#fff;border-top:1px solid var(--lxo-ink);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));box-shadow:0 -14px 30px -20px rgba(8,58,80,.5)}
  .lux-oc__dock-in{display:flex;align-items:center;justify-content:space-between;gap:14px}
  .lux-oc__dock-t small{display:block;font:600 10.5px var(--lxo-head);letter-spacing:.14em;text-transform:uppercase;color:var(--lxo-muted)}
  .lux-oc__dock-t b{font:300 28px/1 var(--lxo-head);color:var(--lxo-ink);font-variant-numeric:tabular-nums}
  .lux-oc__dock .lux-oc__cta{padding:15px 22px}
  .lux-oc__side .lux-oc__cta{display:none}
  body.lux-oc-on{padding-bottom:84px}
}

/* retoques */
.lux-oc li.vbo-oconfirm-paymethod-item::before,.lux-oc li.vbo-oconfirm-paymethod-item::after,.lux-oc ul.vbo-oconfirm-paymethods-list::before,.lux-oc ul.vbo-oconfirm-paymethods-list::after{display:none!important;content:none!important}
.lux-oc .vbo-oconfirm-paymentopts .vbo-oconfirm-paymethods-list{border:0}
@media(max-width:920px){
  .lux-oc__thumb{aspect-ratio:2/1}
  body.lux-oc-on .swb-button{display:none!important}
}

.lux-oc li.vbo-oconfirm-paymethod-item label{border:0!important;box-shadow:none!important}
.lux-oc li.vbo-oconfirm-paymethod-item{box-shadow:none!important}
.lux-oc__grid2{align-items:start}
.lux-oc .vbo-oconfirm-cfield-label{min-height:20px;line-height:1.2}
.lux-oc .vbrequired sup{line-height:0}
@media(max-width:920px){
  .lux-oc__dock-t small{white-space:nowrap}
  .lux-oc__dock .lux-oc__cta{padding:15px 16px;letter-spacing:.14em;white-space:nowrap}
}

/* aire entre el encabezado, los pasos, el contenido y el pie (todas las pantallas de /reservar/) */
body.page-id-492 .elementor-shortcode{padding-top:44px;padding-bottom:88px}
body.page-id-492 .vbstepsbarcont{margin-bottom:32px}
body.page-id-492 .lux-oc__bottom,body.page-id-492 .lux-rm__info{padding-bottom:8px}
@media(max-width:920px){body.page-id-492 .elementor-shortcode{padding-top:28px;padding-bottom:72px}body.page-id-492 .vbstepsbarcont{margin-bottom:24px}}

/* un solo apartamento: no se muestra el aviso "Último 1 disponible" */
body.page-id-492 .vblastavail{display:none!important}

/* factura (CFDI) */
.lux-oc__inv .lux-oc__q{margin:-6px 0 0;font-size:19px}
.lux-oc__seg{display:inline-grid;grid-template-columns:1fr 1fr;border:1px solid var(--lxo-ink);width:max-content;max-width:100%}
.lux-oc .lux-oc__seg button,.lux-oc .lux-oc__seg button:hover,.lux-oc .lux-oc__seg button:focus{all:unset;box-sizing:border-box;cursor:pointer;padding:11px 30px;text-align:center;font:600 12px "Josefin Sans",system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--lxo-ink);background:transparent}
.lux-oc .lux-oc__seg button[aria-pressed="true"],.lux-oc .lux-oc__seg button[aria-pressed="true"]:hover{background:var(--lxo-ink);color:#fff}
.lux-oc .lux-oc__seg button:hover:not([aria-pressed="true"]){background:var(--lxo-band)}
.lux-oc .lux-oc__seg button:focus-visible{outline:2px solid var(--lxo-ink);outline-offset:3px}
.lux-oc__invf{display:grid;gap:16px}
.lux-oc__invf[hidden]{display:none}
.lux-oc__hint{margin:0;font-size:15px;color:var(--lxo-muted)}
.lux-oc__err{display:block;min-height:0;font-size:15px;color:var(--lxo-warn)}
.lux-oc input.lux-oc__bad,.lux-oc select.lux-oc__bad{border-color:var(--lxo-warn)!important}
/* forma de pago: un método por renglón, tarjeta primero (estilo Flexostay con la paleta de Lux) */
.lux-oc ul.vbo-oconfirm-paymethods-list{grid-template-columns:minmax(0,1fr);gap:10px}
.lux-oc li.vbo-oconfirm-paymethod-item{border-radius:10px;border-width:1.5px;min-height:64px}
.lux-oc li.vbo-oconfirm-paymethod-item{background:#fff}
.lux-oc li.vbo-oconfirm-paymethod-item.vbo-oconfirm-paymethod-item-active{border-color:var(--lxo-ink);background:#F6F9FA;box-shadow:0 0 0 3px rgba(8,58,80,.12)!important}
.lux-oc li.vbo-oconfirm-paymethod-item label{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:16px 16px 16px 0;font-size:13px}
.lux-oc li.vbo-oconfirm-paymethod-item .vbo-paymeth-info{flex:1 1 auto;min-width:0}
.lux-pm__brands{display:flex;gap:6px;align-items:center;margin-left:auto}
.lux-pm__note{flex:1 0 100%;order:3;margin:0;font:400 14px/1.4 var(--lxo-body);letter-spacing:0;text-transform:none;color:var(--lxo-muted)}
.lux-pm__b{display:inline-flex;align-items:center;justify-content:center;height:26px;min-width:44px;padding:0 8px;border-radius:5px;font:700 11px/1 Arial,Helvetica,sans-serif;letter-spacing:.02em;text-transform:none}
.lux-pm__b--visa{background:#1A1F71;color:#fff;font-style:italic;font-size:12px}
.lux-pm__b--mc{background:#F2F2F2;gap:0}
.lux-pm__b--mc i{width:14px;height:14px;border-radius:50%;background:#EB001B;display:block}
.lux-pm__b--mc i+i{background:#F79E1B;margin-left:-5px;opacity:.95}
.lux-pm__b--amex{background:#3B73B9;color:#fff;font-size:10px}
.lux-pm__b--pp{background:#F2F2F2;font-style:italic;font-size:13px}
.lux-pm__b--pp b{color:#003087}.lux-pm__b--pp em{color:#009CDE;font-style:italic}
.lux-pm__sub{margin:-6px 0 0;font:400 17px var(--lxo-body);color:var(--lxo-text)}
.lux-pm__trust{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:14px;font:400 15px var(--lxo-body);color:var(--lxo-muted)}
.lux-pm__trust span::before{content:'✓ ';color:var(--lxo-ink)}
@media(max-width:520px){.lux-pm__brands{margin-left:0;flex:1 0 100%}}
/* iconos de tarjeta siempre a la derecha del texto (escritorio y móvil); la leyenda de PayPal queda debajo del nombre */
.lux-oc li.vbo-oconfirm-paymethod-item label{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;row-gap:4px}
.lux-oc li.vbo-oconfirm-paymethod-item .vbo-paymeth-info{grid-column:1;grid-row:1}
.lux-oc li.vbo-oconfirm-paymethod-item .lux-pm__note{grid-column:1;grid-row:2;order:0}
.lux-oc li.vbo-oconfirm-paymethod-item .lux-pm__brands{grid-column:2;grid-row:1 / span 2;margin:0;flex:none;justify-self:end}
@media(max-width:520px){
 .lux-oc li.vbo-oconfirm-paymethod-item .lux-pm__brands{margin:0;flex:none;gap:4px}
 .lux-pm__b{height:22px;min-width:34px;padding:0 5px;font-size:10px}
 .lux-pm__b--visa{font-size:11px}
 .lux-pm__b--mc i{width:11px;height:11px}.lux-pm__b--mc i+i{margin-left:-4px}
 .lux-oc li.vbo-oconfirm-paymethod-item label{padding-right:12px}
}
.lux-oc li.vbo-oconfirm-paymethod-item .lux-pm__brands{grid-row:1;align-self:center}
/* aviso de campos faltantes: se oculta el cuadro azul de VikBooking y se usa la barra breve + campos marcados */
#vbo-alert-container-confirm{display:none!important}
.lux-toast{position:fixed;top:14px;left:50%;transform:translate(-50%,-160%);z-index:100000;display:flex;align-items:center;gap:14px;max-width:calc(100% - 32px);padding:12px 16px 12px 18px;background:var(--lxo-ink);color:#fff;box-shadow:0 12px 30px rgba(8,58,80,.3);transition:transform .28s ease}
.lux-toast.on{transform:translate(-50%,0)}
.lux-toast b{font:600 12px var(--lxo-head);letter-spacing:.12em;text-transform:uppercase}
.lux-toast button{all:unset;cursor:pointer;color:#fff;opacity:.8;padding:2px 6px;font-size:14px}
.lux-toast button:hover,.lux-toast button:focus-visible{opacity:1}
.lux-oc .lux-need input[type=text],.lux-oc .lux-need input[type=email],.lux-oc .lux-need input[type=tel],.lux-oc .lux-need select{border-color:var(--lxo-warn)!important;box-shadow:0 0 0 1px var(--lxo-warn)}
.lux-need__msg{display:block;margin-top:6px;font:400 15px var(--lxo-body);letter-spacing:0;text-transform:none;color:var(--lxo-warn)}
.lux-oc__accept.lux-need{outline:1px solid var(--lxo-warn);outline-offset:6px}
.lux-oc__accept .lux-need__msg{flex:1 0 100%}
@media(prefers-reduced-motion:reduce){.lux-toast{transition:none}}
