/* Capital Hotel · demo v2 · estilos de todo lo que está debajo del primer pantallazo. Concepto «La Capital» (docs/DIRECCION.md).
   Tokens, fuentes, base, encabezado, hero, barra de reserva y dock viven en el <style> crítico de index.html: este archivo carga sin bloquear. */
:root{--ul-indigo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 8' preserveAspectRatio='none'%3E%3Cpath d='M1 1.5Q50 9 99 1.5' fill='none' stroke='%232e3099' stroke-width='1.6' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");--seam-h:clamp(40px,6.5vw,104px)}
.s-light :focus-visible,.s-light2 :focus-visible{outline-color:var(--indigo)}
section[id],[id="reservar"]{scroll-margin-top:var(--hdr-h)}
.s{padding-block:clamp(88px,12vw,160px)}
main>section,main>div,.ft{overflow-x:clip}
.s-light{background:var(--stone);color:var(--ink)}
.s-light2{background:var(--stone-2);color:var(--ink)}
.s-dark{background:var(--night);color:var(--ivory)}

/* Costura entre secciones: la siguiente sube con el arco de la marca (un domo del color que viene) */
[data-seam]{position:relative;padding-bottom:calc(clamp(88px,12vw,160px) + var(--seam-h) * .6)}
[data-seam]::after{content:"";position:absolute;z-index:1;left:-2%;right:-2%;bottom:-1px;height:var(--seam-h);background:var(--seam);border-radius:50% 50% 0 0/100% 100% 0 0;pointer-events:none}
[data-seam]+.s,.spaces+.s{padding-top:clamp(48px,6vw,96px)}
[data-seam="night"]{--seam:var(--night)}[data-seam="stone"]{--seam:var(--stone)}[data-seam="stone2"]{--seam:var(--stone-2)}
[data-seam="night"]::before{content:"";position:absolute;z-index:2;left:50%;bottom:calc(var(--seam-h) - 1px);width:clamp(120px,16vw,220px);height:1px;margin-left:calc(clamp(120px,16vw,220px) / -2);background:linear-gradient(90deg,transparent,var(--amber),transparent);opacity:.75;pointer-events:none}

/* Tipografía */
.h2{font-family:var(--serif);font-weight:350;font-size:clamp(2.25rem,4.6vw,4rem);line-height:1.04;letter-spacing:-.018em;text-wrap:balance;margin-bottom:24px}
.h3{font-family:var(--serif);font-weight:420;font-size:1.5rem;line-height:1.2;letter-spacing:-.005em}
.lead{font-size:clamp(1.0625rem,1.25vw,1.1875rem);line-height:1.65;max-width:54ch;color:var(--ivory-2);text-wrap:pretty}
.s-light .lead,.s-light2 .lead{color:var(--ink-2)}

/* Botones (los básicos están en el CSS crítico) */
.btn-line{color:var(--ivory);border-color:rgba(243,239,230,.3);background:transparent}
.btn-line:hover{border-color:var(--ivory)}
.btn-ink{background:var(--night-2);color:var(--ivory)}
.btn-ink:hover{background:var(--indigo)}
.btn-line-ink{color:var(--ink);border-color:rgba(20,23,58,.32);background:transparent}
.btn-line-ink:hover{border-color:var(--ink)}
.btn:disabled,.btn[aria-disabled="true"]{cursor:not-allowed}
.btn-amber:disabled,.btn-amber:disabled:hover{background:rgba(232,182,76,.1);color:rgba(232,182,76,.82);border:1px dashed rgba(232,182,76,.55)}
.icon-btn{width:48px;height:48px;border-radius:50%;display:inline-grid;place-items:center;background:transparent;border:1px solid currentColor;border-color:rgba(20,23,58,.28);color:inherit;cursor:pointer;transition:border-color .3s,background-color .3s}
.icon-btn:hover{border-color:currentColor}
.s-dark .icon-btn,.dlg .icon-btn{border-color:rgba(243,239,230,.28)}

/* Subrayado con arco */
.ul{text-decoration:none;background-image:var(--ul-amber),linear-gradient(currentColor,currentColor);background-size:0% 7px,100% 1px;background-position:0 100%,0 calc(100% - 2px);background-repeat:no-repeat;padding-bottom:5px;transition:background-size .5s var(--ease)}
.s-light .ul,.s-light2 .ul{background-image:var(--ul-indigo),linear-gradient(currentColor,currentColor)}
.ul:hover,.ul:focus-visible{background-size:100% 7px,0% 1px}
.hdr-nav .ul,.ft .ul,.br-dl .ul{background-size:0% 7px,0% 1px}
.hdr-nav .ul:hover,.hdr-nav .ul:focus-visible,.ft .ul:hover,.ft .ul:focus-visible,.br-dl .ul:hover,.br-dl .ul:focus-visible{background-size:100% 7px,0% 1px}

/* Marcador [POR CONFIRMAR] */
.pc{position:relative;display:inline-flex;align-items:center;vertical-align:.12em;font:600 .6875rem/1 var(--sans);letter-spacing:.03em;color:#d8b46a;border:1px dashed currentColor;border-radius:999px;padding:4px 9px 3px;white-space:nowrap;cursor:help;text-transform:none}
.s-light .pc,.s-light2 .pc{color:#7a5a12}
.pc::after{content:attr(data-tip);position:absolute;z-index:20;left:0;bottom:calc(100% + 8px);width:max-content;max-width:210px;background:var(--night-2);color:var(--ivory);border:1px solid rgba(243,239,230,.16);font:500 .75rem/1.35 var(--sans);letter-spacing:0;padding:7px 10px;border-radius:6px;opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .25s,transform .25s var(--ease)}
.pc:hover::after,.pc:focus-visible::after{opacity:1;transform:none}
.no-pc .pc,.no-pc .br-photo-pc{display:none!important}

/* Menú móvil */
.menu{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0 var(--gut) calc(24px + env(safe-area-inset-bottom));border:0;background:var(--night);color:var(--ivory);overflow-y:auto}
.menu[open]{display:flex;flex-direction:column;animation:menuIn .75s var(--ease) both}
.menu.is-closing{animation:menuOut .4s var(--ease-io) both}
.menu::backdrop{background:transparent}
@keyframes menuIn{from{clip-path:circle(0% at calc(100% - 44px) 34px)}to{clip-path:circle(150% at calc(100% - 44px) 34px)}}
@keyframes menuOut{from{clip-path:circle(150% at calc(100% - 44px) 34px)}to{clip-path:circle(0% at calc(100% - 44px) 34px)}}
.menu-top{height:var(--hdr-h);display:flex;align-items:center;justify-content:space-between;flex:none}
.menu-logo{height:46px;width:auto}
.menu-close{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:transparent;border:1px solid rgba(243,239,230,.3);cursor:pointer}
.menu-nav{display:flex;flex-direction:column;margin-top:clamp(24px,6vh,56px)}
.menu-nav a{font-family:var(--serif);font-weight:340;font-size:clamp(2.2rem,9vw,3rem);line-height:1.1;text-decoration:none;padding:10px 0;border-bottom:1px solid var(--line-d)}
.menu[open] .menu-nav a{animation:up .8s var(--ease) both}
.menu-nav a:nth-child(1){animation-delay:.12s!important}.menu-nav a:nth-child(2){animation-delay:.17s!important}.menu-nav a:nth-child(3){animation-delay:.22s!important}.menu-nav a:nth-child(4){animation-delay:.27s!important}.menu-nav a:nth-child(5){animation-delay:.32s!important}
@keyframes up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.menu-foot{margin-top:auto;padding-top:32px;display:grid;gap:16px}
.sel-menu{flex-direction:column;gap:8px}
.sel-lbl{font-size:.8125rem;color:var(--ivory-2)}
.sel-menu select{width:100%;min-height:52px}
.menu-contact{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* Fotos */
.ph{position:relative;overflow:hidden;border-radius:2px;background:var(--stone-2) center/cover no-repeat;width:100%}
.ph img{width:100%;height:100%;object-fit:cover}
.ph img[data-parallax]{position:absolute;left:0;top:-8%;height:116%}
figcaption{font-size:.8125rem;line-height:1.4;margin-top:10px;color:var(--ink-2)}
.s-dark figcaption{color:var(--ivory-2)}
.arco{position:relative}
.arco::before{content:"";position:absolute;z-index:2;right:-22px;top:-22px;width:clamp(96px,14vw,168px);aspect-ratio:1;border:1px solid var(--amber);border-left-color:transparent;border-bottom-color:transparent;border-radius:50%;transform:translate(35%,-35%) rotate(0deg);pointer-events:none}
@media (max-width:719px){.arco::before{display:none}}
.s-light .arco::before{border-color:var(--indigo);border-left-color:transparent;border-bottom-color:transparent}

/* Bienvenida */
.welcome-grid{display:grid;gap:56px}
.welcome-text .lead{max-width:46ch}
.sign{margin-top:28px;font-family:var(--serif);font-size:clamp(1.3rem,1.9vw,1.6rem);font-weight:400;line-height:1.3;color:var(--indigo)}
.since{margin-top:12px;font-size:.875rem;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.welcome-photos{display:grid;grid-template-columns:repeat(12,1fr);column-gap:12px;row-gap:0}
.wp{margin:0}
.wp .ph{aspect-ratio:var(--ar)}
.wp-1{grid-column:1/12;grid-row:1;--ar:16/10}
.wp-2{grid-column:6/13;grid-row:2;--ar:4/3;margin-top:-14%}
.wp-3{grid-column:1/6;grid-row:2;--ar:3/4;margin-top:28px}
.wp-2 figcaption{text-align:right}
.facts{list-style:none;margin-top:clamp(72px,9vw,128px);display:grid;grid-template-columns:repeat(2,1fr);gap:40px 20px;border-top:1px solid var(--line-l);padding-top:36px}
.fact-n{font-family:var(--serif);font-weight:300;font-size:clamp(2.75rem,5vw,4.25rem);line-height:1;color:var(--indigo);font-variant-numeric:lining-nums tabular-nums;letter-spacing:-.02em;white-space:nowrap}
.fact-n small{font-family:var(--sans);font-size:.34em;font-weight:500;color:var(--ink-2);letter-spacing:0;margin-left:3px}
.fact-l{margin-top:12px;font-weight:600;font-size:.9375rem;line-height:1.35}
.fact-s{margin-top:6px;font-size:.75rem;line-height:1.4;color:var(--ink-2)}
@media (min-width:1024px){
  .welcome-grid{grid-template-columns:5fr 7fr;gap:72px;align-items:start}
  .welcome-text{position:sticky;top:calc(var(--hdr-h) + 72px);padding-top:24px}
  .welcome-photos{column-gap:20px}
  .wp-1{grid-column:1/12}
  .wp-2{grid-column:7/13;margin-top:-16%}
  .wp-3{grid-column:2/7;margin-top:40px}
  .facts{grid-template-columns:repeat(4,1fr);gap:24px}
}

/* Habitaciones */
.rooms{background:var(--night);color:var(--ivory);padding-block:clamp(88px,12vw,140px);overflow:hidden}
.rooms-intro{padding-inline:var(--gut);max-width:680px}
.rooms-count{margin-top:20px;font-size:.9375rem;color:var(--ivory-2);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rooms-note{margin-top:12px;font-size:.875rem;color:var(--ivory-2);max-width:46ch}
.rooms-note a{color:var(--ivory)}
.rooms-hint{display:none}
.rooms-vp{margin-top:40px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;padding-inline:var(--gut);scroll-padding-inline:var(--gut);overscroll-behavior-x:contain}
.rooms-vp::-webkit-scrollbar{display:none}
.rooms-track{display:flex;gap:16px;list-style:none;width:max-content}
.room{width:min(82vw,380px);scroll-snap-align:start;background:var(--night-2);border-radius:4px;overflow:hidden;display:flex;flex-direction:column}
.room-ph{margin:0;aspect-ratio:4/3;background:var(--night-3) center/cover no-repeat;overflow:hidden;flex:none}
.room-ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.room:hover .room-ph img{transform:scale(1.04)}
.room-b{padding:24px;display:flex;flex-direction:column;gap:6px;flex:1;position:relative}
.room-p{color:var(--ivory-2);font-size:.9375rem;margin-top:4px}
.room-n{font-family:var(--serif);font-weight:340;font-size:2.4rem;line-height:1;color:var(--amber);margin-right:6px;font-variant-numeric:lining-nums tabular-nums;letter-spacing:-.01em}
.room-d{color:var(--ivory-2);font-size:.9375rem;line-height:1.5;margin-top:4px}
.room-m{margin-top:auto;padding-top:14px;border-top:1px solid var(--line-d);font-size:.8125rem;color:var(--ivory-2);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.room-d+.room-m{margin-top:auto}
.room-list{background:linear-gradient(160deg,var(--night-3),var(--night-2) 60%)}
.room-list .room-b{padding:32px 28px}
.room-arc{position:absolute;right:-30px;top:-30px;width:150px;height:150px;fill:none;stroke:var(--amber);stroke-width:.8;opacity:.55}
.amen{list-style:none;margin:18px 0 26px;display:grid;gap:11px}
.amen li{display:flex;gap:12px;align-items:baseline;font-size:.9375rem;line-height:1.35}
.amen li::before{content:"";flex:none;width:9px;height:9px;border:1.5px solid var(--amber);border-right-color:transparent;border-radius:50%;transform:translateY(-1px) rotate(-30deg)}
.room-list .btn{align-self:flex-start;margin-top:auto}
.rooms-dots{display:flex;justify-content:center;margin-top:20px}
.rooms-dots button{width:44px;height:44px;display:grid;place-items:center;background:none;border:0;cursor:pointer}
.rooms-dots i{display:block;width:16px;height:2px;border-radius:2px;background:rgba(243,239,230,.3);transition:width .4s var(--ease),background-color .3s}
.rooms-dots .is-on i{width:30px;background:var(--amber)}
@media (min-width:1024px){
  .rooms{padding:0}
  .rooms-in{min-height:100vh;display:grid;grid-template-columns:minmax(380px,34vw) 1fr;align-items:center}
  .rooms-intro{padding-left:max(var(--gut),calc((100vw - 1240px)/2));padding-right:56px;max-width:none;position:relative;z-index:2;background:var(--night);height:100%;display:flex;flex-direction:column;justify-content:center}
  .rooms-hint{display:block;margin-top:40px;font-size:.8125rem;color:var(--ivory-2)}
  .rooms-vp{margin:0;height:100vh;display:flex;align-items:center;padding:0 var(--gut) 0 0;scroll-snap-type:none}
  .rooms-vp.is-pinned{overflow:hidden}
  .rooms-track{gap:24px}
  .room{width:clamp(340px,29vw,440px);height:min(74vh,640px)}
  .room-ph{flex:1 1 auto;aspect-ratio:auto;min-height:0}
  .room-b{flex:none;min-height:228px}
  .room-list{width:clamp(320px,26vw,400px)}
  .rooms-dots{display:none}
}

/* Espacios: zoom parallax */
.spaces{background:var(--night)}
.zp{position:relative;height:300vh;background:var(--night)}
.zp-sticky{position:sticky;top:0;height:100vh;overflow:hidden}
.zp-sticky::after{content:"";position:absolute;inset:auto 0 0;height:50vh;background:linear-gradient(180deg,rgba(12,14,36,0),rgba(12,14,36,.82) 55%,rgba(12,14,36,.94));z-index:4;pointer-events:none;opacity:var(--g,1)}
.zp-el{position:absolute;inset:0;display:grid;place-items:center;will-change:transform;pointer-events:none}
.zp-el .box{position:relative;overflow:hidden;border-radius:2px;background:var(--night-2)}
.zp-el img{width:100%;height:100%;object-fit:cover}
.zp-el:nth-child(1) .box{width:25vw;height:25vh}
.zp-el:nth-child(2) .box{width:35vw;height:30vh;top:-30vh;left:5vw}
.zp-el:nth-child(3) .box{width:20vw;height:45vh;top:-10vh;left:-25vw}
.zp-el:nth-child(4) .box{width:25vw;height:25vh;left:27.5vw}
.zp-el:nth-child(5) .box{width:20vw;height:25vh;top:27.5vh;left:5vw}
.zp-el:nth-child(6) .box{width:30vw;height:25vh;top:27.5vh;left:-22.5vw}
.zp-el:nth-child(7) .box{width:15vw;height:15vh;top:22.5vh;left:25vw}
.zp-title{position:absolute;z-index:5;inset:auto var(--gut) 9vh;text-align:center;color:var(--ivory);text-shadow:0 2px 40px rgba(12,14,36,.6)}
.zp-cap{position:absolute;z-index:5;left:var(--gut);bottom:28px;font-size:.8125rem;color:rgba(243,239,230,.9);opacity:0}
@media (max-width:720px){
  .zp{height:220vh}
  .zp-el:nth-child(n+5){display:none}
  .zp-el:nth-child(1) .box{width:52vw;height:30vh}
  .zp-el:nth-child(2) .box{width:46vw;height:20vh;top:-30vh;left:22vw}
  .zp-el:nth-child(3) .box{width:28vw;height:24vh;top:-4vh;left:-33vw}
  .zp-el:nth-child(4) .box{width:30vw;height:22vh;top:20vh;left:34vw}
  .zp-title{bottom:12vh}
}
html:not(.js) .zp{height:100vh}

/* Espacios: acordeón de imágenes */
.spaces-acc{padding-top:clamp(72px,9vw,120px)}
.acc-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;margin-bottom:32px}
.acc-head p{color:var(--ivory-2);font-size:.9375rem}
.acc{display:flex;gap:10px;height:clamp(420px,66vh,620px)}
.acc-item{color:var(--ivory);text-align:left;font:inherit;padding:0;position:relative;flex:1;min-width:0;border-radius:3px;overflow:hidden;border:0;cursor:pointer;transition:flex-grow .8s var(--ease);background:var(--night-2)}
.acc-item.on{flex-grow:6}
.acc-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.acc-item.on img{transform:scale(1.03)}
.acc-item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,14,36,.1),rgba(12,14,36,.35) 50%,rgba(12,14,36,.88));transition:opacity .5s}
.acc-vt{position:absolute;z-index:1;left:50%;bottom:20px;transform:translateX(-50%) rotate(180deg);writing-mode:vertical-rl;font:500 .9375rem/1 var(--sans);letter-spacing:.02em;white-space:nowrap;transition:opacity .3s;max-height:80%;overflow:hidden}
.acc-item.on .acc-vt{opacity:0}
.acc-item:not(.on)::after{background:linear-gradient(180deg,rgba(12,14,36,.5),rgba(12,14,36,.72))}
.acc-tx{position:absolute;z-index:1;left:0;right:0;bottom:0;padding:24px 28px;opacity:0;transform:translateY(14px);transition:opacity .5s var(--ease) .2s,transform .7s var(--ease) .2s;pointer-events:none}
.acc-item.on .acc-tx{opacity:1;transform:none}
.acc-h{display:block;font-family:var(--serif);font-weight:380;font-size:clamp(1.6rem,2.6vw,2.4rem);line-height:1.1}
.acc-p{display:block;margin-top:8px;font-size:.9375rem;line-height:1.5;color:rgba(243,239,230,.88);max-width:44ch}
.acc-p .pc{margin-left:4px}
@media (max-width:720px){
  .acc{flex-direction:column;height:auto;gap:8px}
  .acc-item{flex:none;height:64px;transition:height .7s var(--ease)}
  .acc-item.on{height:min(64vh,460px)}
  .acc-vt{writing-mode:horizontal-tb;left:20px;bottom:auto;top:50%;transform:translateY(-50%);font-size:1rem}
  .acc-tx{padding:20px}
}

/* Servicios */
.svc-grid{display:grid;gap:48px}
.svc-ph{margin-top:40px}
.svc-ph .ph{aspect-ratio:3/2}
.svc-list{list-style:none;display:grid;grid-template-columns:1fr}
.svc-list li{display:flex;gap:18px;padding:22px 0;border-top:1px solid var(--line-l)}
.svc-i{width:32px;height:32px;flex:none;fill:none;stroke:var(--indigo);stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;margin-top:1px}
.svc-list h3{font-family:var(--serif);font-weight:440;font-size:1.3125rem;line-height:1.25}
.svc-list p{margin-top:4px;color:var(--ink-2);font-size:.9375rem;line-height:1.5;display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
@media (min-width:720px){.svc-list{grid-template-columns:1fr 1fr;column-gap:40px}}
@media (min-width:1024px){
  .svc-grid{grid-template-columns:4.5fr 7.5fr;gap:88px;align-items:start}
  .svc-aside{position:sticky;top:calc(var(--hdr-h) + 40px)}
}

/* Sucursales */
.br-head{display:grid;gap:8px;margin-bottom:40px}
.br-head .h2{margin-bottom:8px}
@media (min-width:1024px){.br-head{grid-template-columns:1fr 1fr;align-items:end;gap:64px}.br-head .lead{justify-self:end;max-width:42ch}}
.seg{position:relative;display:flex;gap:4px;padding:6px;border:1px solid rgba(243,239,230,.16);border-radius:999px;margin-bottom:36px;width:100%;max-width:460px}
.seg button{position:relative;z-index:1;flex:1;min-height:50px;padding:0 18px;border-radius:999px;background:none;border:0;color:var(--ivory-2);font:600 1rem var(--sans);cursor:pointer;transition:color .3s}
.seg button[aria-selected="true"]{color:var(--ivory);background:rgba(243,239,230,.06)}
.seg button:hover{color:var(--ivory)}
.seg-arc{position:absolute;left:0;bottom:3px;width:100px;height:12px;fill:none;stroke:var(--amber);stroke-width:1.8;stroke-linecap:round;transform:translateX(var(--x,20px)) scaleX(var(--sx,1));transform-origin:0 0;transition:transform .7s var(--ease);pointer-events:none}
.seg-arc path{vector-effect:non-scaling-stroke}
.br-panel{display:grid;gap:36px}
.br-photo{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden;border-radius:2px;background:var(--night-2)}
.br-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.br-photo img.is-in{clip-path:circle(0% at 50% 100%);animation:brIn 1.1s var(--ease-io) forwards}
@keyframes brIn{to{clip-path:circle(150% at 50% 100%)}}
.br-photo-pc{position:absolute;z-index:3;left:12px;bottom:12px;margin:0;display:flex;align-items:center;gap:8px;background:rgba(12,14,36,.78);color:var(--ivory);padding:6px 6px 6px 12px;border-radius:999px;font-size:.75rem}
.br-photo-pc[hidden]{display:none}
.br-name{margin-bottom:16px;font-size:clamp(1.6rem,2.3vw,2rem)}
.br-dl>div{display:grid;grid-template-columns:104px 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--line-d)}
.br-dl dt{color:var(--ivory-2);font-size:.8125rem;padding-top:3px}
.br-dl dd{font-size:.9375rem;line-height:1.5;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.br-dl a{text-decoration:none}
.br-rates{margin-top:8px;border-top:1px solid var(--line-d);padding-top:14px}
.br-rates-t{font-size:.8125rem;color:var(--ivory-2)}
.br-rates ul{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:10px}
.br-rates li{display:flex;flex-direction:column;gap:2px;font-size:.8125rem;color:var(--ivory-2)}
.br-rates b{font-family:var(--serif);font-weight:380;font-size:1.75rem;line-height:1.1;color:var(--amber);font-variant-numeric:lining-nums tabular-nums}
.br-note{margin-top:16px;font-size:.9375rem;line-height:1.55;color:var(--ivory);font-family:var(--serif);font-size:1.125rem}
.br-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.br-map{display:grid;gap:16px;justify-items:start}
/* Ruta de las sucursales: el arco de la C como trazo, de norte (arriba) a sur (abajo). Esquema honesto, sin silueta del estado. */
.map-box{position:relative;width:100%;max-width:300px;aspect-ratio:300/540;border-left:1px solid var(--line-d);padding-left:4px}
.route{width:100%;height:100%;overflow:visible}
.rt-dir{fill:rgba(243,239,230,.5);font:600 13px var(--sans);letter-spacing:.08em}
.rt-echo{fill:none;stroke:rgba(243,239,230,.1);stroke-width:14;stroke-linecap:round}
.rt-arc{fill:none;stroke:var(--amber);stroke-width:2;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset 2.2s var(--ease-io)}
html.js .br-map:not(.is-in) .rt-arc{stroke-dashoffset:1}
.rt-km{fill:var(--ivory);font:400 22px var(--serif);font-variant-numeric:lining-nums tabular-nums}
.rt-km-l{fill:var(--amber);font-size:44px;font-weight:330;letter-spacing:-.01em}
.rt-sub{fill:var(--ivory-2);font:500 14px var(--sans)}
.rt-sub tspan{fill:var(--ivory)}
.map-pt{cursor:pointer}
.map-dot{fill:var(--night);stroke:var(--ivory);stroke-width:2;transition:fill .3s,stroke .3s}
.map-halo{fill:rgba(232,182,76,0);stroke:none}
.map-pt text{fill:var(--ivory-2);font:600 17px var(--sans);transition:fill .3s}
.map-pt.is-on .map-dot{fill:var(--amber);stroke:var(--amber)}
.map-pt.is-on .map-halo{fill:rgba(232,182,76,.16);stroke:var(--amber);stroke-width:1;animation:halo 2.6s var(--ease) infinite;transform-box:fill-box;transform-origin:center}
.map-pt.is-on text{fill:var(--ivory)}
@keyframes halo{0%{transform:scale(.6);opacity:1}100%{transform:scale(1.7);opacity:0}}
.map-frame{position:absolute;inset:0;border-radius:4px;overflow:hidden;background:var(--night-2)}
.map-frame iframe{width:100%;height:100%;border:0;display:block}
.br-dist{font-size:.8125rem;line-height:1.5;color:var(--ivory-2);max-width:40ch}
@media (max-width:719px){.map-box{max-width:256px}.br-dl>div{grid-template-columns:1fr;gap:2px}}
@media (min-width:720px){.br-photo{aspect-ratio:16/10}}
@media (min-width:1024px){
  .br-panel{grid-template-columns:1.1fr 1fr .72fr;gap:44px;align-items:start}
  .br-photo{aspect-ratio:4/5}
  .map-box{max-width:none}
}

/* Opiniones */
.ratings{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:28px 16px;margin:40px 0 72px}
.ratings li{border-top:1px solid var(--line-l);padding-top:16px}
.rt-n{font-family:var(--serif);font-weight:300;font-size:clamp(2.25rem,4vw,3.25rem);line-height:1;color:var(--indigo);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.rt-n small{font-family:var(--sans);font-size:.36em;font-weight:500;color:var(--ink-2);margin-left:2px}
.rt-s{margin-top:10px;font-weight:600;font-size:.9375rem}
.rt-c{font-size:.8125rem;color:var(--ink-2)}
@media (min-width:900px){.ratings{grid-template-columns:repeat(5,1fr);gap:24px}}
.rv{position:relative}
.rv-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.rv-track::-webkit-scrollbar{display:none}
.rv-item{flex:0 0 100%;scroll-snap-align:start;margin:0}
.rv-item blockquote{position:relative;padding-top:clamp(64px,8vw,104px)}
.rv-item blockquote::before{content:"\201C";position:absolute;left:-.04em;top:0;font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(7rem,12vw,11rem);line-height:.9;color:var(--indigo)}
.rv-item blockquote p{font-family:var(--serif);font-weight:320;font-size:clamp(1.75rem,3.6vw,3.15rem);line-height:1.18;letter-spacing:-.012em;max-width:28ch;text-wrap:pretty}
.rv-by{margin-top:28px;display:flex;flex-direction:column;gap:2px;font-size:.9375rem;color:var(--ink-2)}
.rv-by b{color:var(--ink);font-weight:600}
.rv-ctrl{display:flex;align-items:center;gap:10px;margin-top:40px}
.rv-count{min-width:64px;text-align:center;font-size:.9375rem;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.rv-ctrl [data-rv-toggle]{margin-left:8px}
.rv-note{margin-top:40px;font-size:.8125rem;line-height:1.5;color:var(--ink-2);max-width:64ch}

/* Reserva */
.bk-grid{display:grid;gap:40px}
/* Móvil: el sello va chico junto al título. Escritorio: título + texto + foto, con el sello encimado a la esquina de la foto. */
.bk-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"t s" "l l" "p p";column-gap:16px;align-items:start}
.bk-intro .h2{grid-area:t}
.bk-intro .lead{grid-area:l}
.seal{grid-area:s;width:84px;aspect-ratio:1;margin-top:-6px}
.seal svg{width:100%;height:100%;overflow:visible}
.seal-bg{fill:var(--night);stroke:rgba(232,182,76,.35);stroke-width:1}
.seal text{font:600 12px var(--sans);letter-spacing:.16em;fill:var(--amber)}
.seal-arc{fill:none;stroke:var(--ivory);stroke-width:2.2;stroke-linecap:round}
.seal svg text{transform-origin:100px 100px;animation:spin 40s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.bk-ph{grid-area:p;margin-top:44px;display:none}
.bk-ph .ph{aspect-ratio:5/4;background-color:var(--night-2)}
@media (min-width:1024px){
  .bk-intro{grid-template-columns:minmax(0,1fr);grid-template-areas:"t" "l" "p"}
  .bk-ph{display:block}
  .seal{grid-area:p;z-index:3;justify-self:end;align-self:start;width:clamp(124px,10vw,148px);margin:44px 0 0;transform:translate(34%,-40%)}
}
.bk{background:var(--night-2);border:1px solid var(--line-d);border-radius:6px;padding:clamp(20px,3vw,36px);display:grid;gap:20px;color:var(--ivory);color-scheme:dark}
.bk-demo{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:.875rem;color:var(--ivory-2)}
.bk-tag{border:1px dashed var(--amber);color:var(--amber);border-radius:999px;padding:5px 12px 4px;font-weight:600;font-size:.75rem;letter-spacing:.06em;white-space:nowrap}
.bk-row{display:grid;gap:12px}
.bk-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.fld{display:flex;flex-direction:column;gap:8px;min-width:0}
.fld-l{font-size:.8125rem;font-weight:500;color:var(--ivory-2)}
.bk select,.bk input[type="date"]{appearance:none;-webkit-appearance:none;width:100%;min-height:52px;padding:0 14px;background:rgba(243,239,230,.045);border:1px solid rgba(243,239,230,.2);border-radius:4px;color:var(--ivory);font:500 1rem var(--sans);transition:border-color .3s}
.bk select{background:rgba(243,239,230,.045) var(--chev) no-repeat right 12px center/18px;padding-right:40px}
.bk input[type="date"]::-webkit-calendar-picker-indicator{filter:invert(.85);cursor:pointer}
.bk select:focus,.bk input:focus{border-color:var(--amber);outline:none}
.bk select:focus-visible,.bk input:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.bk input[aria-invalid="true"]{border-color:#f0a594}
.bk-err{margin-top:-8px;font-size:.875rem;color:#f5b4a6}
.bk-err[hidden]{display:none}
.bk-3{grid-template-columns:1fr;gap:4px}
.bk-3 .fld{flex-direction:row;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--line-d)}
.step{display:flex;align-items:center;gap:2px;border:1px solid rgba(243,239,230,.2);border-radius:999px;padding:3px}
.step button{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:none;border:0;cursor:pointer;color:var(--ivory);transition:background-color .2s}
.step button:hover{background:rgba(243,239,230,.08)}
.step button:disabled{opacity:.3;cursor:not-allowed}
.step input{width:40px;min-height:44px;border:0;background:none;text-align:center;font:600 1.0625rem var(--sans);color:var(--ivory);padding:0;-moz-appearance:textfield;appearance:textfield}
.step input::-webkit-outer-spin-button,.step input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.step input:focus-visible{outline:2px solid var(--amber);border-radius:4px}
@media (min-width:640px){.bk-3{grid-template-columns:repeat(3,1fr);gap:12px}.bk-3 .fld{flex-direction:column;align-items:flex-start;padding:0;border:0}}
.bk-room{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}
.bk-room legend{padding:0;margin-bottom:8px;grid-column:1/-1}
.opt{position:relative;display:block;cursor:pointer}
.opt input{position:absolute;opacity:0;width:1px;height:1px}
.opt-b{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:0 8px;min-height:60px;padding:8px 14px;border:1px solid rgba(243,239,230,.2);border-radius:4px;transition:border-color .3s,background-color .3s}
.opt-n{font-weight:600}
.opt-p{font-family:var(--serif);font-size:1.3rem;color:var(--amber);font-variant-numeric:tabular-nums}
.opt input:checked+.opt-b{border-color:var(--amber);background:rgba(232,182,76,.08)}
.opt input:focus-visible+.opt-b{outline:2px solid var(--amber);outline-offset:2px}
.bk-sum{border-top:1px solid var(--line-d);padding-top:16px}
.bk-lines{list-style:none;display:grid;gap:4px}
.bk-lines li{display:flex;justify-content:space-between;gap:16px;padding:4px 0;font-size:.9375rem;color:var(--ivory-2)}
.bk-lines b{color:var(--ivory);font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}
.bk-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:12px;padding-top:12px;border-top:1px dashed rgba(243,239,230,.2)}
.bk-total span{font-weight:600}
.bk-total output{font-family:var(--serif);font-weight:350;font-size:clamp(2.2rem,4vw,2.8rem);line-height:1;color:var(--amber);font-variant-numeric:lining-nums tabular-nums}
.bk-total output small{font-family:var(--sans);font-size:.36em;color:var(--ivory-2);margin-left:6px;font-weight:500}
.bk-fine{margin-top:10px;font-size:.8125rem;color:var(--ivory-2);display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.bk-actions{display:grid;gap:12px}
.bk-pay-note{font-size:.8125rem;line-height:1.45;color:var(--ivory-2);margin:-2px 0 6px}
.bk-actions .btn{white-space:normal;text-align:center;line-height:1.25}
@media (min-width:1024px){.bk-grid{grid-template-columns:4fr 6fr;gap:clamp(56px,6vw,96px);align-items:start}.bk-intro{position:sticky;top:calc(var(--hdr-h) + 32px)}}

/* Diálogo de reserva */
.dlg{width:min(640px,100% - 24px);max-height:calc(100dvh - 24px);padding:0;border:1px solid var(--line-d);border-radius:6px;background:var(--night);color:var(--ivory);overflow:hidden}
.dlg::backdrop{background:rgba(6,7,20,.74);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.dlg[open]{animation:dlgIn .55s var(--ease) both}
@keyframes dlgIn{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
.dlg-in{max-height:calc(100dvh - 24px);overflow-y:auto;padding:0 16px 20px;overscroll-behavior:contain}
.dlg-top{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;background:var(--night)}
.dlg-title{font-family:var(--serif);font-weight:380;font-size:1.75rem;line-height:1.1}
@media (max-width:640px){.dlg{width:100%;max-width:100%;height:100%;max-height:100%;margin:0;border:0;border-radius:0}.dlg-in{max-height:100%;height:100%;padding-bottom:calc(20px + env(safe-area-inset-bottom))}}

/* Ubicación */
.loc-grid{display:grid;gap:48px}
.loc-addr{display:flex;gap:10px;align-items:flex-start;margin-top:20px;font-size:.9375rem;color:var(--ink)}
.loc-addr .ico{color:var(--indigo);margin-top:2px}
.loc-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.map-frame-loc{position:relative;margin-top:24px;aspect-ratio:16/11;inset:auto}
.near{list-style:none}
.near li{display:grid;grid-template-columns:1fr auto;grid-template-areas:"p t" "b b";gap:12px 16px;padding:18px 0;border-top:1px solid var(--line-l)}
.near li:last-child{border-bottom:1px solid var(--line-l)}
.near-p{grid-area:p;font-family:var(--serif);font-weight:400;font-size:clamp(1.15rem,1.6vw,1.4rem);line-height:1.25}
.near-t{grid-area:t;font-weight:600;color:var(--indigo);font-variant-numeric:tabular-nums;white-space:nowrap;align-self:center}
.near-bar{grid-area:b;position:relative;height:2px;background:rgba(20,23,58,.08);border-radius:2px}
.near-bar::after{content:"";position:absolute;left:0;top:0;height:100%;width:calc(var(--m) / 14 * 100%);background:var(--indigo);border-radius:2px;transform-origin:left;transition:transform 1.3s var(--ease)}
.near-bar::before{content:"";position:absolute;top:50%;left:calc(var(--m) / 14 * 100%);width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;background:var(--indigo);transition:opacity .4s 1s}
html.js .near:not(.is-in) .near-bar::after{transform:scaleX(0)}
html.js .near:not(.is-in) .near-bar::before{opacity:0;transition-delay:0s}
.near li:nth-child(2) .near-bar::after{transition-delay:.08s}.near li:nth-child(3) .near-bar::after{transition-delay:.16s}.near li:nth-child(4) .near-bar::after{transition-delay:.24s}.near li:nth-child(5) .near-bar::after{transition-delay:.32s}.near li:nth-child(6) .near-bar::after{transition-delay:.4s}.near li:nth-child(7) .near-bar::after{transition-delay:.48s}
.near-src{margin-top:16px;font-size:.8125rem;color:var(--ink-2)}
@media (min-width:1024px){.loc-grid{grid-template-columns:5fr 7fr;gap:96px;align-items:start}}

/* Información útil */
.info-grid{display:grid;gap:32px}
.info-aside .lead{margin-bottom:24px;max-width:36ch}
.loc-ph{margin-top:40px}
.loc-ph .ph{aspect-ratio:4/3}
.faq details{border-top:1px solid var(--line-l)}
.faq details:last-child{border-bottom:1px solid var(--line-l)}
.faq summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px;cursor:pointer;font-family:var(--serif);font-weight:400;font-size:clamp(1.25rem,1.8vw,1.5rem)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:14px;height:14px;border:1.5px solid var(--indigo);border-right-color:transparent;border-radius:50%;transform:rotate(-45deg);transition:transform .5s var(--ease)}
.faq details[open] summary::after{transform:rotate(135deg)}
.faq details p{margin:0 0 18px;color:var(--ink-2);max-width:60ch;display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.faq details::details-content{block-size:0;overflow-y:clip;transition:block-size .5s var(--ease),content-visibility .5s allow-discrete}
.faq details[open]::details-content{block-size:auto}
@media (min-width:1024px){.info-grid{grid-template-columns:5fr 7fr;gap:96px;align-items:start}}

/* Pie */
.ft{background:var(--night);color:var(--ivory);padding:96px 0 calc(112px + env(safe-area-inset-bottom))}
.ft-top{display:flex;align-items:center;gap:24px;padding-bottom:40px;border-bottom:1px solid var(--line-d)}
.ft-logo{height:88px;width:auto;flex:none}
.ft-claim{font-family:var(--serif);font-weight:350;font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.2;max-width:22ch}
.ft-cols{display:grid;gap:40px;padding:48px 0}
.ft-col h3{font:600 1rem var(--sans);margin-bottom:12px}
.ft-col p{color:var(--ivory-2);font-size:.9375rem;line-height:1.5;margin-bottom:8px;display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.ft-col a{text-decoration:none;color:var(--ivory)}
.ft-bot{display:flex;flex-wrap:wrap;gap:8px 32px;padding-top:28px;border-top:1px solid var(--line-d);font-size:.875rem;color:var(--ivory-2)}
.ft-bot a{color:var(--ivory);text-decoration:none}
.ft-demo{flex-basis:100%;order:3}
@media (min-width:720px){.ft-cols{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1024px){.ft{padding-bottom:64px}.ft-demo{flex-basis:auto;order:0}}

/* Movimiento reducido: todo visible, sin Ken Burns, sin pin, sin parallax */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .hero-slide img{animation:none!important;transform:none!important}
  .zp{height:100vh}
  .seal svg text{animation:none}
}
