@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,600;9..40,700;9..40,900&display=swap');
body.kai-locations-v1-active{--black:#050505;--red:#ed1c24;--white:#f7f6f1;--cream:#e7decc;--line:rgba(5,5,5,.22);--impact:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;--sans:'DM Sans',Arial,sans-serif;scroll-behavior:smooth;margin:0;background:var(--white);color:var(--black);font-family:var(--sans)}
body.kai-locations-v1-active .elementor-location-header,body.kai-locations-v1-active .elementor-location-footer{display:none!important}
body.kai-locations-v1-active .kai-locations-elementor-root,body.kai-locations-v1-active .kai-locations-elementor-root>.e-con-inner{display:block!important;width:100%;max-width:none!important;padding:0!important;margin:0!important}
body.kai-locations-v1-active .kai-locations-elementor-root .elementor-widget-shortcode{margin:0}
body.kai-locations-v1-active *{box-sizing:border-box}
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
a:focus-visible { outline:3px solid #ffcf00; outline-offset:4px; }
 .kai-location-button { display:inline-flex; min-height:48px; align-items:center; justify-content:center; padding:0 22px; border:2px solid currentColor; font-size:11px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; transition:transform .25s ease,background .25s ease,color .25s ease; }
 .kai-location-button:hover, .kai-location-button:focus-visible { transform:translateY(-3px); }
 .kai-location-button--red { border-color:var(--red); background:var(--red); color:white; }
 .kai-location-button--dark { border-color:var(--black); background:var(--black); color:white; }
 .kai-location-button--light { border-color:white; background:white; color:var(--black); }
 .kai-location-button--ghost { border-color:white; color:white; }
.kicker,.micro-label { margin:0 0 18px; font-size:10px; font-weight:900; letter-spacing:.17em; text-transform:uppercase; }

.site-header { position:absolute; z-index:20; top:0; left:0; display:grid; grid-template-columns:auto 1fr auto; align-items:center; width:100%; min-height:90px; padding:12px clamp(18px,4vw,62px); border-bottom:1px solid rgba(255,255,255,.22); color:white; }
.brand { width:96px; }
.brand img { width:100%; height:50px; object-fit:contain; }
.desktop-nav { display:flex; justify-content:center; gap:clamp(18px,3vw,48px); font-size:11px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.desktop-nav a,.text-cta { padding:12px 0; border-bottom:2px solid transparent; }
.desktop-nav a:hover,.desktop-nav a:focus-visible,.text-cta:hover,.text-cta:focus-visible { border-color:var(--red); }
.header-actions { display:flex; align-items:center; gap:16px; font-size:11px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }

.locations-hero { position:relative; display:flex; min-height:min(78svh,830px); flex-direction:column; justify-content:flex-end; overflow:hidden; isolation:isolate; padding:142px clamp(18px,4vw,64px) clamp(44px,5vw,76px); color:white; }
.locations-hero > img,.locations-hero__shade { position:absolute; z-index:-2; inset:0; width:100%; height:100%; }
.locations-hero > img { object-fit:cover; object-position:center 48%; }
.locations-hero__shade { z-index:-1; background:linear-gradient(90deg,rgba(0,0,0,.9),rgba(0,0,0,.15) 72%),linear-gradient(0deg,rgba(0,0,0,.76),transparent 58%); }
.locations-hero.is-cinematic-v2 > .locations-hero__poster,.locations-hero.is-cinematic-v2 > .locations-hero__video { position:absolute; z-index:-2; inset:0; width:100%; height:100%; }
.locations-hero.is-cinematic-v2 > .locations-hero__poster img,.locations-hero.is-cinematic-v2 > .locations-hero__video { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.locations-hero.is-cinematic-v2 > .locations-hero__video { opacity:0; transition:opacity .25s ease; }
.locations-hero.is-cinematic-v2 > .locations-hero__video.is-ready { opacity:1; }
.locations-hero.is-cinematic-v2 .locations-hero__shade { background:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.56) 47%,rgba(0,0,0,.08) 77%),linear-gradient(0deg,rgba(0,0,0,.58),transparent 58%); }
.locations-hero__eyebrow { margin:0 0 12px; font-size:11px; font-weight:900; letter-spacing:.2em; text-transform:uppercase; }
.locations-hero h1 { margin:0; font-family:var(--impact); font-size:clamp(82px,13vw,194px); font-weight:900; letter-spacing:-.05em; line-height:.74; text-transform:uppercase; }
.locations-hero h1 span,.locations-hero h1 strong { display:block; }
.locations-hero h1 strong { color:var(--red); font-weight:900; }
.locations-hero__intro { margin:28px 0 0; font-size:clamp(18px,2vw,27px); font-weight:700; }
.locations-hero__edition { position:absolute; right:clamp(18px,4vw,64px); bottom:28px; font-size:8px; font-weight:900; letter-spacing:.16em; opacity:.58; }

.location-nav { position:sticky; z-index:30; top:0; display:grid; grid-template-columns:190px minmax(0,1fr); min-height:72px; border-bottom:1px solid rgba(255,255,255,.18); background:var(--black); color:white; }
.location-nav > span { display:flex; align-items:center; padding:0 24px; border-right:1px solid rgba(255,255,255,.18); color:rgba(255,255,255,.55); font-size:9px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.location-nav > div { display:flex; min-width:0; }
.location-nav a { display:flex; flex:1; gap:12px; align-items:center; justify-content:center; min-width:170px; border-right:1px solid rgba(255,255,255,.18); font-size:12px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.location-nav b { color:var(--red); font-family:var(--impact); font-size:20px; }
.location-nav a:hover,.location-nav a:focus-visible { background:var(--red); }
.location-nav a:hover b,.location-nav a:focus-visible b { color:white; }

.locations-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,.42fr); gap:40px; align-items:end; padding:clamp(90px,11vw,170px) clamp(18px,4vw,64px); background:var(--cream); }
.locations-intro .kicker { grid-column:1/-1; }
.locations-intro h2,.map-overview h2,.closing h2 { margin:0; font-family:var(--impact); font-size:clamp(72px,11vw,168px); letter-spacing:-.045em; line-height:.78; text-transform:uppercase; }
.locations-intro > p:last-child { max-width:440px; margin:0 0 10px; font-size:clamp(18px,1.8vw,26px); font-weight:700; line-height:1.2; }

.location { padding:clamp(90px,11vw,170px) clamp(18px,4vw,64px); scroll-margin-top:72px; }
.location:nth-child(even) { background:var(--black); color:white; }
.location-heading { display:grid; grid-template-columns:120px minmax(0,1fr) auto; gap:clamp(20px,4vw,70px); align-items:end; margin-bottom:clamp(54px,7vw,100px); }
.location-heading p { margin:0 0 10px; font-size:9px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.location-heading h2 { margin:0; font-family:var(--impact); font-size:clamp(78px,11vw,164px); letter-spacing:-.045em; line-height:.74; text-transform:uppercase; }
.location-heading > span { padding-bottom:8px; font-size:12px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.location-editorial { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr); gap:clamp(40px,7vw,110px); align-items:center; }
.location--reverse .location-main-media { order:2; transform:rotate(1.7deg); }
.location--normal .location-main-media { transform:rotate(-1.4deg); }
.location-main-media { position:relative; min-height:min(67vw,850px); margin:0; overflow:hidden; border:clamp(8px,1vw,14px) solid currentColor; background:#111; }
.location-main-media img,.location-main-media video { display:block; width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .8s ease; }
.location-main-media:hover img,.location-main-media:hover video { transform:scale(1.035); }
.location-main-media figcaption,.location-gallery figcaption { position:absolute; left:14px; bottom:14px; padding:8px 10px; border:1px solid white; background:rgba(5,5,5,.72); color:white; font-size:8px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.location-copy { position:relative; }
.location-number { position:absolute; z-index:0; right:-4%; top:-120px; margin:0; color:transparent; font-family:var(--impact); font-size:clamp(180px,20vw,310px); line-height:.7; -webkit-text-stroke:2px rgba(237,28,36,.32); }
.location-details { position:relative; z-index:1; margin:0; }
.location-details > div { display:grid; grid-template-columns:150px minmax(0,1fr); gap:22px; padding:22px 0; border-top:1px solid currentColor; }
.location-details > div:last-child { border-bottom:1px solid currentColor; }
.location-details dt { font-size:10px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.location-details dd { margin:0; font-size:clamp(16px,1.5vw,22px); font-weight:700; line-height:1.3; }
.location-details dd span:not(.pending-value) { display:block; }
.pending-value { display:inline-block; padding:5px 7px; border:1px dashed var(--red); color:var(--red); font-size:9px; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.location-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:34px; }
.reservation-pending { max-width:260px; margin:0; padding:10px 12px; border-left:3px solid var(--red); font-size:10px; font-weight:900; letter-spacing:.06em; line-height:1.35; text-transform:uppercase; }

.location-gallery { display:grid; grid-auto-columns:minmax(290px,38vw); grid-auto-flow:column; gap:14px; margin-top:clamp(70px,9vw,130px); overflow-x:auto; padding-bottom:14px; scroll-snap-type:x mandatory; scrollbar-color:var(--red) transparent; }
.location-gallery figure { position:relative; aspect-ratio:4/3; margin:0; overflow:hidden; background:#151515; scroll-snap-align:start; }
.location-gallery img { width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.location-gallery figure:hover img { transform:scale(1.04); }
.gallery-placeholder { display:grid; place-items:center; border:2px dashed currentColor; color:currentColor; }
.gallery-placeholder div { display:grid; gap:5px; text-align:center; text-transform:uppercase; }
.gallery-placeholder strong { color:var(--red); font-family:var(--impact); font-size:70px; line-height:.7; }
.gallery-placeholder span { font-family:var(--impact); font-size:28px; }
.gallery-placeholder small { font-size:8px; font-weight:900; letter-spacing:.1em; }

.location-functional { display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,.82fr); gap:14px; margin-top:50px; }
.services,.location-map { min-height:350px; padding:clamp(28px,4vw,54px); border:2px solid currentColor; }
.services ul { margin:28px 0 0; padding:0; list-style:none; }
.services li { display:grid; grid-template-columns:26px minmax(0,1fr) auto; gap:8px; align-items:center; padding:16px 0; border-top:1px solid currentColor; font-family:var(--impact); font-size:clamp(24px,2.5vw,38px); text-transform:uppercase; }
.services li small { color:var(--red); font-family:var(--sans); font-size:8px; font-weight:900; letter-spacing:.1em; }
.location-map { position:relative; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; background:var(--red); color:white; }
.map-index { position:absolute; right:-20px; top:-44px; margin:0; color:transparent; font-family:var(--impact); font-size:250px; line-height:.8; -webkit-text-stroke:2px rgba(255,255,255,.34); }
.location-map > div { position:relative; z-index:1; display:grid; gap:10px; }
.location-map > div span,.location-map > div small { font-size:8px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.location-map > div strong { max-width:350px; font-family:var(--impact); font-size:clamp(42px,4.4vw,70px); line-height:.9; text-transform:uppercase; }
.location-map > a { position:relative; z-index:1; display:flex; justify-content:space-between; padding-top:16px; border-top:2px solid white; font-size:11px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }

.map-overview { display:grid; grid-template-columns:minmax(0,.85fr) minmax(380px,1.15fr); gap:clamp(50px,8vw,120px); align-items:end; padding:clamp(100px,12vw,190px) clamp(18px,4vw,64px); background:var(--cream); }
.map-overview .kicker { grid-column:1/-1; }
.map-overview h2 { font-size:clamp(70px,9vw,138px); }
.map-overview h2 em { color:var(--red); font-style:normal; }
.map-overview > div { border-top:3px solid; }
.map-overview a { display:grid; grid-template-columns:55px minmax(0,1fr) auto; gap:18px; align-items:center; padding:22px 0; border-bottom:1px solid; }
.map-overview a > b { color:var(--red); font-family:var(--impact); font-size:26px; }
.map-overview a > span { font-family:var(--impact); font-size:clamp(28px,3.2vw,48px); text-transform:uppercase; }
.map-overview a small { display:block; margin-top:5px; font-family:var(--sans); font-size:8px; font-weight:900; letter-spacing:.1em; }
.map-overview a > strong { font-size:24px; transition:transform .25s ease; }
.map-overview a:hover > strong,.map-overview a:focus-visible > strong { transform:translate(4px,-4px); }

.closing { padding:clamp(96px,12vw,180px) clamp(18px,4vw,64px); background:var(--red); color:white; }
.closing h2 { font-size:clamp(78px,12vw,186px); }
.closing h2 em { color:var(--black); font-style:normal; }
.closing > div { display:flex; flex-wrap:wrap; gap:12px 16px; align-items:center; margin-top:52px; }
.arrow-link { display:inline-flex; gap:18px; align-items:center; margin-left:auto; padding-bottom:7px; border-bottom:2px solid; font-size:11px; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.footer { padding:72px clamp(18px,4vw,64px) 24px; background:var(--black); color:white; }
.footer__top { display:flex; min-height:210px; align-items:end; justify-content:space-between; padding-bottom:44px; }
.footer__top img { width:min(420px,50vw); height:180px; object-fit:contain; object-position:left center; }
.footer__top p { margin:0; font-size:11px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.footer__legal { display:flex; flex-wrap:wrap; gap:16px 40px; justify-content:space-between; padding-top:20px; border-top:1px solid rgba(255,255,255,.22); color:rgba(255,255,255,.62); font-size:9px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }

@media (max-width:1050px) {
  .site-header { grid-template-columns:auto 1fr; }
  .desktop-nav { display:none; }
  .header-actions { justify-self:end; }
  .location-nav { grid-template-columns:150px minmax(0,1fr); }
  .location-nav > div { overflow-x:auto; scrollbar-width:none; }
  .location-nav a { flex:0 0 auto; padding-inline:32px; }
  .location-heading { grid-template-columns:90px minmax(0,1fr); }
  .location-heading > span { grid-column:2; }
  .location-editorial { grid-template-columns:minmax(0,1fr) minmax(290px,.9fr); }
  .location-functional { grid-template-columns:1fr 1fr; }
}

@media (max-width:760px) {
  .site-header { min-height:72px; padding:8px 16px; }
  .brand { width:76px; }
  .brand img { height:42px; }
  .header-actions { gap:9px; }
  .text-cta { display:none; }
   .kai-location-button { min-height:46px; padding:0 16px; }
  .locations-hero { min-height:70svh; padding:110px 18px 42px; }
  .locations-hero > img { object-position:57% center; }
  .locations-hero.is-cinematic-v2 .locations-hero__shade { background:linear-gradient(0deg,rgba(0,0,0,.86),rgba(0,0,0,.13) 50%,rgba(0,0,0,.30)); }
  .locations-hero h1 { font-size:clamp(82px,25vw,106px); }
  .locations-hero__intro { margin-top:20px; font-size:18px; }
  .locations-hero__edition { display:none; }
  .location-nav { grid-template-columns:1fr; min-height:62px; }
  .location-nav > span { display:none; }
  .location-nav > div { overflow-x:auto; }
  .location-nav a { min-height:62px; padding-inline:22px; font-size:10px; }
  .location-nav b { font-size:16px; }
  .locations-intro { display:block; padding-block:78px; }
  .locations-intro h2 { font-size:clamp(68px,21vw,86px); }
  .locations-intro > p:last-child { margin-top:26px; font-size:17px; }
  .location { padding-block:82px; scroll-margin-top:62px; }
  .location-heading { display:block; margin-bottom:48px; }
  .location-heading p { margin-bottom:16px; }
  .location-heading h2 { font-size:clamp(67px,20vw,82px); overflow-wrap:anywhere; }
  .location-heading > span { display:block; margin-top:20px; }
  .location-editorial { display:flex; flex-direction:column; gap:34px; align-items:stretch; }
  .location--reverse .location-main-media { order:0; }
  .location-main-media { min-height:auto; aspect-ratio:4/5; border-width:7px; }
  .location-number { top:-30px; right:0; font-size:150px; }
  .location-details > div { grid-template-columns:105px minmax(0,1fr); gap:12px; padding:18px 0; }
  .location-details dd { font-size:15px; }
  .location-actions { align-items:stretch; }
  .location-actions  .kai-location-button { flex:1; }
  .reservation-pending { max-width:none; width:100%; }
  .location-gallery { grid-auto-columns:82vw; margin-right:-18px; padding-right:18px; }
  .location-functional { grid-template-columns:1fr; margin-top:34px; }
  .services,.location-map { min-height:310px; padding:28px 22px; }
  .services li { font-size:27px; }
  .map-overview { display:block; padding-block:90px; }
  .map-overview h2 { font-size:clamp(62px,19vw,80px); }
  .map-overview > div { margin-top:48px; }
  .map-overview a { grid-template-columns:38px minmax(0,1fr) auto; gap:10px; }
  .map-overview a > span { font-size:30px; }
  .closing h2 { font-size:clamp(70px,21vw,88px); }
  .closing > div { align-items:stretch; }
  .closing  .kai-location-button { flex:1; }
  .closing .arrow-link { width:100%; margin:26px 0 0; }
  .footer { padding-top:50px; }
  .footer__top { display:block; min-height:180px; }
  .footer__top img { width:220px; height:110px; }
  .footer__top p { margin-top:18px; }
  .footer__legal { display:grid; justify-content:start; }
}

@media (prefers-reduced-motion:reduce) { body.kai-locations-v1-active { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms!important; animation-duration:.01ms!important; animation-iteration-count:1!important; } .location-main-media video { transform:none!important; } .locations-hero.is-cinematic-v2 > .locations-hero__video { display:none; } }
