/* Eden Apartments — clone of the passalacqua.it layout system, written fresh.
   Measurements taken from their stylesheet (container 1780, side padding 5.1vw/9vw/5vw,
   gutters 10/20/30, section spacing 80/100/120/130, type scale) — see docs/CLONE-BRIEF.md. */

@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-var.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-var-italic.woff2") format("woff2");font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:"Switzer";src:url("../fonts/switzer-300.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Switzer";src:url("../fonts/switzer-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Allison";src:url("../fonts/allison.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}

:root{
  --ink:#343434; --txt:#666; --rule:#cacaca; --gold:#e0a426; --gold-ink:#8f6410; --greige:#e6e4da;
  --land:#e5dbbb; --water:#cddae3;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Switzer",system-ui,-apple-system,"Segoe UI",sans-serif;
  --script:"Allison","Brush Script MT",cursive;
  /* Canela Thin / Light stand-ins: Fraunces at a high optical size keeps the narrow, sharp display cut */
  --thin:"opsz" 84,"SOFT" 0,"WONK" 0; --light:"opsz" 84,"SOFT" 0,"WONK" 0;
  --g:10px; --pad:5.1vw; --sec:80px; --sec-r:50px; --hdr:106px; --hdr-s:60px;
  --ease-expo:cubic-bezier(.87,0,.13,1); --ease-out4:cubic-bezier(.23,1,.32,1);
}
@media (min-width:768px){:root{--g:20px;--pad:9vw;--sec:100px;--hdr-s:80px}}
@media (min-width:1024px){:root{--g:30px;--pad:5vw;--sec:120px;--sec-r:60px}}
@media (min-width:1300px){:root{--sec:130px}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:#fff;color:var(--txt);font:300 16px/1.5 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
picture{display:block}
a{color:inherit}
a:hover{color:var(--gold-ink)}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:#fff;color:var(--ink);padding:10px 14px;font:400 13px/1 var(--sans);letter-spacing:1px;text-transform:uppercase}
.skip:focus{top:12px}
sup{font-size:.6em;line-height:0}

/* ---------- Type ---------- */
h1,.h1,h2,.h2,h3,.h3{color:var(--ink);font-family:var(--serif);margin:0 0 15px}
h1,.h1{font-weight:290;font-variation-settings:var(--thin);font-size:50px;line-height:1.1;margin-bottom:25px;letter-spacing:-.005em}
h2,.h2{font-weight:340;font-variation-settings:var(--light);font-size:22px;line-height:1.45}
h3,.h3{font-weight:340;font-variation-settings:var(--light);font-size:22px;line-height:1.45}
h1 em,h2 em,h3 em,.h1 em,.h2 em,.h3 em,h1 i,h2 i,.h3 i{font-style:italic}
@media (min-width:576px){h1,.h1{font-size:54px} h2,.h2,h3,.h3{font-size:26px}}
@media (min-width:768px){h2,.h2{font-size:36px;line-height:1.25;margin-bottom:25px;font-weight:290;font-variation-settings:var(--thin)}}
@media (min-width:1024px){h1,.h1{font-size:65px;margin-bottom:30px} h2,.h2{font-size:40px} h3,.h3{margin-bottom:20px}}
@media (min-width:1300px){h1,.h1{font-size:70px} h2,.h2{font-size:44px}}
h1:last-child,h2:last-child,h3:last-child,.h1:last-child,.h2:last-child,.h3:last-child,p:last-child{margin-bottom:0}
h1 a,h2 a,h3 a,.h2 a,.h3 a{color:inherit;text-decoration:none}
p{margin:0 0 1rem}
.caps{font:400 13px/1.6 var(--sans);text-transform:uppercase;letter-spacing:1px;color:var(--ink)}
.caps a{text-decoration:none}
.caps a:hover{color:var(--txt)}
.small{font-size:14px;line-height:1.5}
.script{font-family:var(--script);font-weight:400;color:var(--txt);font-size:34px;line-height:1.05}
@media (min-width:576px){.script{font-size:38px}}
@media (min-width:768px){.script{font-size:43px}}
@media (min-width:1024px){.script{font-size:48px}}
@media (min-width:1300px){.script{font-size:51px}}
.ph{background:rgba(224,164,38,.14);padding:0 .15em;border-radius:2px}   /* [[placeholder]] marker */

/* line + CAPS link (their p.link / h3.link) */
.cta{font:400 13px/1.6 var(--sans);text-transform:uppercase;letter-spacing:1px;color:var(--ink)}
.cta a,a.cta,.lnk>a{position:relative;display:inline-block;padding-left:74px;text-decoration:none;color:var(--ink)}
.cta a::before,a.cta::before,.lnk>a::before{content:"";position:absolute;left:0;top:.75em;width:54px;height:1px;background:var(--ink);transition:width .25s}
.cta a:hover::before,a.cta:hover::before,.lnk>a:hover::before{width:64px}
.cta a:hover,a.cta:hover{color:var(--txt)}
.lnk>a{font:inherit;color:var(--ink)}
.lnk>a:hover{color:var(--ink)}
/* outlined button (their btn-outline-primary-2) */
.btn{display:inline-block;font:400 13px/1.6 var(--sans);text-transform:uppercase;letter-spacing:1px;color:var(--ink);border:1px solid var(--txt);padding:.75em 1.5em;text-decoration:none;border-radius:0;transition:color .25s,border-color .25s,background-color .25s;margin-bottom:.5em}
.btn:hover{color:var(--gold-ink);border-color:var(--gold)}
.btn[disabled]{opacity:.4;cursor:default}

/* ---------- Grid ---------- */
.wrap{max-width:1780px;margin-inline:auto;padding-inline:var(--pad)}
.row{display:flex;flex-wrap:wrap;margin-inline:calc(var(--g) / -2)}
.row>*{padding-inline:calc(var(--g) / 2);flex:0 0 auto;width:100%;min-width:0}
main{background:#fff;padding-block:var(--sec)}
main>section{margin-bottom:var(--sec)}
main>section.m-red{margin-bottom:var(--sec-r)}
main>section.m-gut{margin-bottom:var(--g)}
main>section:last-child{margin-bottom:0}
.rule{border:0;border-top:1px solid var(--rule);margin:0}
.ratio-p{aspect-ratio:3/4} .ratio-l{aspect-ratio:3/2} .ratio-s{aspect-ratio:1}
.pic{display:block;position:relative;overflow:hidden;background:#f1efe9}
.pic img{width:100%;height:100%;object-fit:cover}
.pic a{display:block;height:100%}

/* section: big serif statement (their section01) */
@media (min-width:1024px){.s-text .col{width:75%}}
.s-text h1+h3,.s-text h2+h3{margin-top:0}

/* section: photo 2/3 + text 1/3 (section02) */
@media (min-width:1024px){
  .s-feat .c-pic{width:66.6667%} .s-feat .c-txt{width:33.3333%}
  .s-feat .c-txt>div{padding-left:30px;padding-bottom:40px}
  .s-feat.rev .row{flex-direction:row-reverse}
  .s-feat.rev .c-txt>div{padding-left:0;padding-right:30px}
  .s-feat.end .c-txt{display:flex;align-items:flex-end}
  .s-feat.c4 .row{justify-content:space-between}
  .s-feat.c4 .c-pic{width:33.3333%} .s-feat.c4 .c-txt{width:50%}
}
@media (max-width:1023.98px){.s-feat .c-txt{margin-top:22.5px}}

/* section: 1/3 portrait + 2/3 landscape pair (section03) */
@media (min-width:768px){
  .s-pair .row>:first-child{width:33.3333%} .s-pair .row>:last-child{width:66.6667%}
  .s-pair.rev .row{flex-direction:row-reverse}
  .s-pair .txt{margin-top:15px;padding-right:30px}
}
@media (max-width:767.98px){
  .s-pair .row>:not(:first-child){margin-top:15px}
  .s-pair .txt{margin:15px 0}
  .s-pair.rev .row{flex-direction:column-reverse}
  .s-pair.rev .row>:first-child{margin-top:var(--g)} .s-pair.rev .row>:last-child{margin-top:0}
  .s-pair.seq .row>:not(:first-child){margin-top:var(--g)}
}
.s-pair .txt h3{margin-bottom:15px}

/* section: three columns of portraits (section07) */
@media (min-width:768px){
  .s-three .row>*{width:33.3333%}
  .s-three .row>:nth-child(n+4){margin-top:30px}
  .s-three .cap{margin-top:15px;margin-bottom:30px}
}
@media (max-width:767.98px){
  .s-three .row>:not(:first-child){margin-top:15px}
  .s-three.seq .row>:not(:first-child){margin-top:var(--g)}
  .s-three .cap{margin:15px 0}
}
.s-three .cap h3{margin-bottom:0}
.s-three .cap h3+p,.s-three .cap .meta{padding-left:74px;margin:6px 0 0}
.meta{font-size:15px;line-height:1.5}

/* section: host / voices (section08) */
.s-voice .row{justify-content:space-between}
.s-voice .c-txt{text-align:center}
@media (min-width:768px){.s-voice .c-txt{width:41.6667%} .s-voice .c-pics{width:50%}}
@media (max-width:767.98px){.s-voice .c-pics{margin-top:30px}}
.s-voice .c-txt .h3{margin-bottom:20px}
.s-voice .script{margin:0 0 30px}
.collage{display:flex;flex-wrap:wrap;margin-inline:calc(var(--g) / -2)}
.collage>*{padding-inline:calc(var(--g) / 2)}
.collage>:first-child{width:66.6667%;margin-left:auto}
.collage>:last-child{width:50%;margin-top:-200px;position:relative;z-index:2}
@media (max-width:767.98px){.collage>:last-child{width:41.6667%;margin-top:-120px}}
.oct{clip-path:polygon(7% 0,93% 0,100% 7%,100% 93%,93% 100%,7% 100%,0 93%,0 7%)}

/* section: square photo 1/3 + text 2/3 (section18) */
@media (min-width:768px){
  .s-side .c-pic{width:33.3333%} .s-side .c-txt{width:66.6667%}
  .s-side .c-txt>div{padding-left:30px}
  .s-side.rev .row{flex-direction:row-reverse}
  .s-side.rev .c-txt>div{padding-left:0;padding-right:30px}
}
@media (max-width:767.98px){.s-side .c-txt{margin-top:15px}}
.s-side h2{margin-bottom:.1em}
.s-side .h3,.s-side .badges{margin-top:60px}
@media (max-width:767.98px){.s-side .h3,.s-side .badges{margin-top:30px}}
.s-side .btn{margin-top:25px}

/* section: features + lead (section10) */
.s-facts ul{list-style:none;margin:0;padding:0}
@media (min-width:768px){.s-facts .row>:first-child{width:33.3333%} .s-facts .row>:first-child>div{padding-right:30px} .s-facts .row>:last-child{width:66.6667%}}
@media (max-width:767.98px){.s-facts .row>:last-child{margin-top:30px}}

/* ---------- Header ---------- */
.hdr{position:absolute;top:0;left:0;right:0;z-index:30;height:var(--hdr)}
.hdr__bar{transition:all .75s}
.hdr__in{display:flex;justify-content:space-between;align-items:center;height:var(--hdr);position:relative;max-width:1780px;margin-inline:auto;padding-inline:var(--pad);transition:all .75s}
.hdr a,.hdr button{font:340 20px/1.2 var(--serif);font-variation-settings:var(--light);color:var(--ink);text-decoration:none}
.hdr a:hover,.hdr button:hover{color:var(--gold-ink)}
.logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--ink);transition:all .75s}
.logo b{font:270 44px/1 var(--serif);font-variation-settings:var(--thin);letter-spacing:.02em;transition:font-size .75s}
.logo small{font:400 8.5px/1 var(--sans);letter-spacing:3.2px;text-transform:uppercase;margin-top:7px;white-space:nowrap;transition:opacity .4s}
.hero-page .hdr:not(.is-sticky) a,.hero-page .hdr:not(.is-sticky) button{color:#fff}
.hero-page .hdr:not(.is-sticky) .logo{color:#fff}
.hdr.is-sticky .hdr__bar{height:var(--hdr-s)}
.hdr.is-sticky .hdr__in{position:fixed;top:0;left:0;right:0;height:var(--hdr-s);max-width:none;background:#fff;padding-inline:calc(var(--pad) + max(0px,(100vw - 1780px)/2))}
.hdr.is-sticky .logo{color:var(--gold-ink)}
.hdr.is-sticky .logo b{font-size:34px}
.hdr.is-sticky .logo small{opacity:0;height:0;margin:0}
@media (max-width:767.98px){
  .logo b{font-size:38px} .logo small{font-size:7.5px;letter-spacing:2.4px}
  .hdr.is-sticky .logo b{font-size:28px}
  .hdr a,.hdr button{font-size:20px}
  .logo,.logo b{transition:none}
}
.menu-open-btn{display:inline-flex;align-items:center}
.hdr .book-now{white-space:nowrap}

/* ---------- Hero (their #intro) ---------- */
.hero{position:absolute;inset:0 0 auto 0;height:100vh;height:100svh;z-index:1;overflow:hidden;background:#cfd8dc}
@media (min-width:768px){.hero{position:fixed;height:100vh}}
.hero::before,.hero::after{content:"";position:absolute;left:0;right:0;z-index:2;pointer-events:none}
.hero::before{top:0;height:20%;background:linear-gradient(to top,rgba(0,0,0,0),rgba(0,0,0,.3))}
.hero::after{bottom:0;height:36%;background:linear-gradient(to bottom,rgba(0,0,0,0),rgba(0,0,0,.62))}
.hero picture{position:relative;z-index:1;height:100%;width:100%;transform:scale(1.1);opacity:0;animation:heroIn 2.5s var(--ease-out4) forwards}
.hero img{width:100%;height:100%;object-fit:cover;transform-origin:50% 50%;will-change:transform}
.hero__txt{position:absolute;left:0;right:0;bottom:2rem;z-index:3;max-width:1780px;margin-inline:auto;padding-inline:var(--pad);display:flex;justify-content:space-between;align-items:flex-end;transform:translateY(50px);opacity:0;animation:heroTxt 1s var(--ease-out4) 1s forwards}
@media (max-width:767.98px){.hero__txt{bottom:70px}}
.hero h1{color:#fff;margin:0}
.hero h1 .h3{display:block;margin-top:10px;color:#fff;font-style:italic}
.viewgal{position:absolute;left:0;right:0;bottom:3rem;z-index:3;transform:translateY(100px);opacity:0;animation:heroTxt 1s var(--ease-out4) 1s forwards}
.viewgal>div{max-width:1780px;margin-inline:auto;padding-inline:var(--pad);display:flex;justify-content:flex-end}
.viewgal button{font:340 20px/1.2 var(--serif);font-variation-settings:var(--light);color:#fff}
@media (max-width:767.98px){.viewgal{bottom:30px}.viewgal>div{justify-content:flex-start}}
@keyframes heroIn{to{transform:scale(1);opacity:1}}
@keyframes heroTxt{to{transform:translateY(0);opacity:1}}
.page{position:relative;z-index:2}
.hero-page .page{padding-top:100vh;padding-top:100svh}
@media (min-width:768px){.hero-page .page{padding-top:100vh}}
.plain-page main>section:first-child{margin-top:var(--hdr)}

/* ---------- Reveal (their [data-animation] / .a1) ---------- */
[data-reveal]{opacity:0;transform:translateY(15px);transition:opacity .75s ease,transform .75s ease}
[data-reveal] .pic img{transform:scale(1.1);transition:transform .25s ease}
@media (min-width:768px){[data-reveal]{transform:translateY(50px)} [data-reveal] .pic img{transition:transform .75s ease}}
[data-reveal].in{opacity:1;transform:none}
[data-reveal].in .pic img{transform:scale(1)}
.no-js [data-reveal]{opacity:1;transform:none}
.no-js [data-reveal] .pic img{transform:none}

/* ---------- Menu panel (their #panel-menu) ---------- */
.menu{position:fixed;inset:0;z-index:60;background:#fff;transform:translateY(150%);visibility:hidden}
.menu.is-open{visibility:visible}
@media (min-width:768px){.menu{overflow:hidden}}
@media (max-width:767.98px){.menu{overflow:auto}}
.menu__top{position:fixed;top:0;left:0;right:0;z-index:2;background:#fff}
@media (min-width:768px){.menu__top{background:transparent}}
.menu__top .hdr__in{position:relative}
.menu__left{display:flex;align-items:center;gap:30px}
.menu__top a,.menu__top button,.menu__top select{font:340 20px/1.2 var(--serif);font-variation-settings:var(--light);color:var(--ink);text-decoration:none}
.menu__top .logo{color:var(--ink)}
.close{display:inline-flex;align-items:center;gap:10px}
.close svg{width:10px;height:10px}
.lang{display:inline-flex;align-items:center;gap:7px}
.lang select{border:0;background:transparent;text-transform:lowercase;cursor:pointer;-webkit-appearance:none;appearance:none;padding:0}
.lang svg{width:12px;height:8px}
.menu__body{position:relative;z-index:1;padding-top:120px;max-width:1780px;margin-inline:auto;padding-inline:var(--pad)}
@media (min-width:768px){
  .menu__body{position:fixed;inset:0;overflow:auto;padding-bottom:106px;max-width:none}
  .menu__body::before{content:"";position:fixed;top:120px;bottom:106px;left:50%;width:1px;background:var(--rule)}
  .menu__cols{display:flex}
  .menu__cols>div{width:50%}
}
.menu__cols>div{text-align:center}
.menu__cols p{font:340 26px/1.45 var(--serif);font-variation-settings:var(--light);color:var(--ink);margin:0}
@media (min-width:768px){.menu__cols p{font-size:36px;line-height:1.25;font-weight:290;font-variation-settings:var(--thin)}}
@media (min-width:1024px){.menu__cols p{font-size:40px}}
@media (min-width:1300px){.menu__cols p{font-size:44px}}
.menu__cols ul{list-style:none;margin:1rem 0 0;padding:0}
@media (min-width:768px){.menu__cols ul{display:inline-block}}
@media (min-width:1024px) and (max-width:1299.98px){.menu__cols ul{margin-top:0}}
.menu__cols li+li{margin-top:.75rem}
.menu__cols li a{display:inline-block;font:340 22px/1.45 var(--serif);font-variation-settings:var(--light);color:var(--ink);text-decoration:none;transition:all .3s}
@media (min-width:576px){.menu__cols li a{font-size:26px}}
@media (min-width:768px){.menu__cols li a{line-height:1.15}}
.menu__cols ul:hover li a{opacity:.5}
.menu__cols ul:hover li a:hover{opacity:1;padding:5px 0}
@media (max-width:767.98px){.menu__cols>div:last-child{margin-top:3rem}}
.menu__langm{text-align:center;margin-top:15px}
@media (min-width:768px){.menu__langm{display:none}}
@media (max-width:767.98px){.menu__left .lang{display:none}}
.menu__foot{height:106px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding-inline:var(--pad);gap:4px}
@media (min-width:768px){.menu__foot{position:fixed;left:0;right:0;bottom:0;z-index:2}}
.menu__foot .caps{color:var(--txt);font-size:12px}

/* ---------- Footer ---------- */
.ftr{padding-bottom:2.75rem;background:#fff;position:relative;z-index:2}
.ftr ul{list-style:none;margin:0;padding:0}
.ftr__links{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:2.75rem 0}
.ftr__links ul{display:flex;align-items:center;justify-content:space-between;gap:50px;flex:1}
.ftr__links a{text-decoration:none}
.ftr__info{padding-top:2.75rem;display:flex;justify-content:space-between;align-items:flex-start;gap:40px}
.ftr__info p{margin:0}
.ftr__brand{font:270 34px/1 var(--serif);font-variation-settings:var(--thin);color:var(--gold-ink);margin-bottom:12px!important}
.ftr__info .caps{color:var(--txt)}
.ftr__contact{text-align:right}
.ftr__badges{display:flex;gap:12px;flex-wrap:wrap}
@media (max-width:767.98px){
  .ftr__links{flex-direction:column;text-align:center;border-bottom:0;padding:0}
  .ftr__links ul{flex-direction:column;gap:0;width:100%}
  .ftr__links li{width:100%;padding:.75rem 0;border-bottom:1px solid var(--rule)}
  .ftr__info{flex-direction:column;align-items:center;text-align:center;padding-top:1.75rem;gap:1.75rem}
  .ftr__contact{text-align:center}
  .ftr__badges{justify-content:center}
}

/* ---------- Quick booking (their unused .quick-booking fieldset, made real) ---------- */
.qb{border:0;margin:0;padding:0;min-width:0}
.qb .row{align-items:flex-end}
.qb__f{position:relative}
.qb__f label,.qb__lbl{display:block;font:400 11px/1.6 var(--sans);letter-spacing:1px;text-transform:uppercase;color:var(--txt);margin-bottom:2px}
.qb__btn{display:flex;align-items:center;justify-content:space-between;width:100%;height:58px;border-bottom:1px solid var(--rule);font:340 22px/48px var(--serif);font-variation-settings:var(--light);color:var(--ink);text-align:left;padding:0 0 10px;white-space:nowrap}
@media (min-width:576px){.qb__btn{font-size:26px}}
.qb__btn svg{width:20px;height:20px;flex:none;color:var(--txt)}
.qb__btn .muted{color:#6b6b6b}
.qb__step{display:flex;align-items:center;justify-content:space-between;height:58px;border-bottom:1px solid var(--rule);padding-bottom:10px;font:340 26px/48px var(--serif);font-variation-settings:var(--light);color:var(--ink)}
.qb__step button{width:36px;height:36px;border:1px solid var(--rule);border-radius:50%;display:grid;place-items:center;font:300 20px/1 var(--sans);color:var(--ink)}
.qb__step button:hover{border-color:var(--gold);color:var(--gold-ink)}
.qb__go .btn{width:100%;text-align:center;margin:0;padding:1em 1.5em}
@media (min-width:768px){.qb .row>*{width:25%}}
@media (max-width:767.98px){.qb .row>*+*{margin-top:22px}}
/* date picker (their .ui-datepicker look) */
.dp{position:absolute;top:calc(100% + 8px);left:0;z-index:20;width:350px;max-width:calc(100vw - 2*var(--pad));background:#fff;border:1px solid var(--rule);padding:15px;font:300 17px/1 var(--sans);color:var(--txt);display:none}
.dp.open{display:block}
.dp--inline{position:static;display:block;width:auto;max-width:none;border:0;padding:0}
.dp__months{display:flex;gap:40px}
.dp__months>div{flex:1;min-width:0}
.dp__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}
.dp__title{font:400 13px/20px var(--sans);letter-spacing:1px;text-transform:uppercase;color:var(--ink);text-align:center;flex:1}
.dp__nav{width:28px;height:28px;display:grid;place-items:center;color:var(--ink)}
.dp__nav[disabled]{opacity:.2}
.dp table{width:100%;table-layout:fixed;border-collapse:collapse}
.dp th{font:400 12px/30px var(--sans);text-transform:uppercase;color:#6b6b6b;letter-spacing:.5px}
.dp td{text-align:center;padding:1px 0}
.dp td button{width:37px;height:37px;line-height:37px;border-radius:50%;color:var(--txt);font-size:16px;transition:background-color .15s,color .15s}
.dp td button:hover{background:var(--gold);color:#fff}
.dp td.range button{background:rgba(128,128,128,.18);border-radius:0;width:100%}
.dp td.start button,.dp td.end button{background:rgba(52,52,52,.85);color:#fff}
.dp td.past button{opacity:.3;pointer-events:none}
.dp td.today button{box-shadow:inset 0 0 0 1px var(--rule)}
.dp__foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font:400 12px/1.4 var(--sans);letter-spacing:.5px;color:var(--txt)}
@media (max-width:767.98px){.dp__months>div+div{display:none}}

/* ---------- Ratings ---------- */
.badge{display:inline-flex;align-items:center;gap:12px;border:1px solid var(--rule);padding:8px 14px 8px 12px;text-decoration:none}
.badge b{font:340 26px/1 var(--serif);font-variation-settings:var(--light);color:var(--ink)}
.badge span{font:400 11px/1.4 var(--sans);letter-spacing:1px;text-transform:uppercase;color:var(--txt)}
.badges{list-style:none;margin:0;padding:0}
.badges li{display:flex;align-items:baseline;gap:18px;padding:14px 0;border-bottom:1px solid var(--rule)}
.badges li:first-child{border-top:1px solid var(--rule)}
.badges b{font:270 40px/1 var(--serif);font-variation-settings:var(--thin);color:var(--ink);min-width:64px}
.badges .h3{margin:0!important;flex:1}
.badges .rv{font:400 12px/1.4 var(--sans);letter-spacing:1px;text-transform:uppercase;color:var(--txt);white-space:nowrap}
@media (max-width:575.98px){.badges li{flex-wrap:wrap;gap:4px 14px}.badges .rv{width:100%;padding-left:78px}}

/* ---------- Apartments overview map (their section09) ---------- */
.s-map .row{justify-content:space-between}
@media (min-width:1024px){.s-map .c-list{width:50%} .s-map .c-map{width:41.6667%}}
@media (max-width:1023.98px){.s-map .row{flex-direction:column-reverse}.s-map .c-map{margin-bottom:30px}}
.grp{display:flex;align-items:flex-start;margin-inline:calc(var(--g) / -2)}
.grp+.grp{margin-top:30px}
.grp>*{padding-inline:calc(var(--g) / 2)}
.grp>:first-child{width:33.3333%;flex:none}
.grp>:last-child{width:66.6667%}
@media (max-width:1023.98px){.grp>:last-child>div{padding-left:15px}}
.grp h3{margin-bottom:12px}
.grp h3 a{display:block;position:relative}
.grp h3 a::after{content:"";position:absolute;right:15px;top:50%;width:35px;height:1px;background:var(--ink);opacity:0;transition:all .25s}
.grp h3 a:hover::after,.grp.hl h3 a::after{right:0;opacity:1}
.grp p{margin-bottom:12px}
.map{position:relative}
.map svg{display:block;width:100%;height:auto}
.poi{position:absolute;transform:translate(-50%,-50%);z-index:2}
.poi>a,.poi>span{display:block;position:relative;text-decoration:none}
.poi i{display:block;width:26px;height:26px;border-radius:50%;background:var(--gold);border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.15);transition:transform .25s}
.poi .lbl{position:absolute;top:0;left:50%;transform:translateX(-50%);margin-top:36px;opacity:0;transition:opacity .25s;pointer-events:none;white-space:nowrap;background:#fff;border:1px solid var(--rule);padding:4px 14px;font:340 20px/1.45 var(--serif);font-variation-settings:var(--light);color:var(--ink)}
.poi .lbl small{display:block;font:400 11px/1.4 var(--sans);letter-spacing:1px;text-transform:uppercase;color:var(--txt)}
.poi.l .lbl{left:0;transform:none}.poi.r .lbl{left:auto;right:0;transform:none}
.poi.t .lbl{top:auto;bottom:0;margin:0 0 36px}
.poi:hover .lbl,.poi:focus-within .lbl,.poi.hl .lbl{opacity:1}
.poi:hover i,.poi.hl i{transform:scale(1.15)}
@media (max-width:1023.98px){.poi.always .lbl{opacity:1}}

/* ---------- Apartment page additions ---------- */
.price-line{font:340 26px/1.3 var(--serif);font-variation-settings:var(--light);color:var(--ink);margin:22px 0 14px}
.price-line small{font:400 12px/1 var(--sans);letter-spacing:1px;text-transform:uppercase;color:var(--txt)}
.crumbs{margin-bottom:28px}
.crumbs a{text-decoration:none}
.crumbs span{margin:0 8px;color:var(--rule)}
.s-reserve .row{align-items:flex-start}
@media (min-width:1024px){.s-reserve .c-a{width:33.3333%} .s-reserve .c-b{width:66.6667%}}
.s-reserve .c-a>div{padding-right:30px}
@media (max-width:1023.98px){.s-reserve .c-b{margin-top:30px}}
.rbox{display:grid;grid-template-columns:1fr;gap:30px}
@media (min-width:1024px){.rbox{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:50px}}
.sum{border-top:1px solid var(--rule)}
.sum div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--rule)}
.sum div.tot{font:340 26px/1.3 var(--serif);font-variation-settings:var(--light);color:var(--ink)}
.sum .caps{color:var(--txt)}
.reserve-btn{width:100%;text-align:center;margin-top:22px;padding:1em 1.5em}
.note{font-size:14px;margin-top:12px}
.cols2{columns:2;column-gap:30px}
.cols2 li{break-inside:avoid}
.list{list-style:none;margin:0;padding:0}
.list li{padding:9px 0;border-bottom:1px solid #e6e6e6}
.list li:first-child{border-top:1px solid #e6e6e6}
.cols2 li:first-child{border-top:0}
@media (max-width:575.98px){.cols2{columns:1}.cols2 li:first-child{border-top:1px solid #e6e6e6}}
.s-info .row{row-gap:40px}
@media (min-width:768px){.s-info .row>*{width:33.3333%} .s-info .row>.w2{width:66.6667%}}
.mini-map{max-width:420px}
/* "Discover all apartments" carousel (their section01.full + section20) */
.s-head .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px}
.s-head h2{margin:0}
.arrows{display:flex;gap:28px}
.arrows button{width:16px;height:36px;display:grid;place-items:center;color:var(--ink)}
.arrows button:hover{color:var(--gold-ink)}
.arrows svg{width:16px;height:36px}
.car{padding-inline:var(--pad);max-width:1780px;margin-inline:auto}
.car .swiper{overflow:visible}
.car .swiper-slide{width:78%}
@media (min-width:768px){.car .swiper-slide{width:calc((100% - 2*var(--g)) / 3)}}
.car .cap{margin-top:15px}
.car .cap h3{margin:0}
.car .meta{padding-left:74px;margin-top:6px}
.car__nav{display:flex;justify-content:space-between;align-items:flex-end;margin-top:30px}
.car__nav .caps button{font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--ink)}
.car__nav .caps button:hover{color:var(--txt)}
.car-wrap{overflow:hidden}
/* sticky mobile reserve bar */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;border-top:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px var(--pad) calc(10px + env(safe-area-inset-bottom));transform:translateY(110%);transition:transform .5s var(--ease-out4)}
.mbar.show{transform:none}
.mbar b{display:block;font:340 22px/1.2 var(--serif);font-variation-settings:var(--light);color:var(--ink)}
.mbar span{font:400 11px/1.3 var(--sans);letter-spacing:1px;text-transform:uppercase;color:var(--txt)}
.mbar .btn{margin:0;padding:.85em 1.4em}
@media (min-width:1024px){.mbar{display:none}}

/* ---------- Gallery overlay (their psk-gallery) ---------- */
.gal{position:fixed;inset:0;z-index:80;background:#fff;opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s .25s}
.gal.open{opacity:1;visibility:visible;transition:opacity .25s}
.gal .swiper{width:100%;height:100%}
.gal .swiper-slide{display:flex;align-items:center;justify-content:center;padding:60px 60px 80px;background:#fff}
.gal .swiper-slide img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.gal__close{position:absolute;top:1.5rem;left:50%;transform:translateX(-50%);z-index:3;display:inline-flex;align-items:center;gap:10px;font:340 20px/1.2 var(--serif);font-variation-settings:var(--light);color:var(--txt)}
.gal__prev,.gal__next{position:absolute;top:50%;margin-top:-25px;z-index:3;width:50px;height:50px;display:grid;place-items:center;color:var(--ink)}
.gal__prev{left:10px}.gal__next{right:10px}
.gal__prev svg,.gal__next svg{width:12px;height:22px}
.gal__count{position:absolute;bottom:28px;left:0;right:0;text-align:center;z-index:3}
@media (max-width:767.98px){.gal .swiper-slide{padding:60px 0 70px}.gal__prev,.gal__next{display:none}}

/* ---------- Book page ---------- */
.results{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.res{border-bottom:1px solid var(--rule);padding:30px 0}
.res .row{align-items:center}
@media (min-width:768px){.res .r-pic{width:25%} .res .r-txt{width:45%} .res .r-pr{width:30%;text-align:right}}
@media (max-width:767.98px){.res .r-txt{margin-top:15px}.res .r-pr{margin-top:12px}}
.res h3{margin-bottom:6px}
.res .meta{margin:0}
.res .from{font:340 26px/1.3 var(--serif);font-variation-settings:var(--light);color:var(--ink);margin:0 0 10px}
.res .from small{font:400 12px/1 var(--sans);letter-spacing:1px;text-transform:uppercase;color:var(--txt)}
.res .acts{display:flex;justify-content:flex-end;align-items:center;gap:26px;flex-wrap:wrap}
@media (max-width:767.98px){.res .acts{justify-content:flex-start}}
.res .acts .btn{margin:0}
.res.na{opacity:.5}
.tag{display:inline-block;font:400 11px/1.4 var(--sans);letter-spacing:1px;text-transform:uppercase;color:var(--gold-ink);margin-left:10px}
.faq dt{font:340 22px/1.45 var(--serif);font-variation-settings:var(--light);color:var(--ink);margin-top:26px}
@media (min-width:576px){.faq dt{font-size:26px}}
.faq dd{margin:6px 0 0}
.filters{display:flex;gap:28px;flex-wrap:wrap;margin:0 0 20px}
.filters button{font:400 13px/1.6 var(--sans);text-transform:uppercase;letter-spacing:1px;color:var(--txt);padding:4px 0;border-bottom:1px solid transparent}
.filters button[aria-pressed="true"]{color:var(--ink);border-color:var(--ink)}

/* ---------- Static mode (?static) for screenshots / reduced motion ---------- */
.is-static [data-reveal],.is-static [data-reveal] .pic img{opacity:1!important;transform:none!important;transition:none!important}
.is-static .hero picture,.is-static .hero__txt,.is-static .viewgal{animation:none!important;opacity:1!important;transform:none!important}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  [data-reveal],[data-reveal] .pic img{opacity:1;transform:none}
  .hero picture,.hero__txt,.viewgal{animation:none;opacity:1;transform:none}
}
.is-static .hdr,.is-static .hdr *{transition:none!important}
@media (max-width:575.98px){:root{--light:"opsz" 72,"SOFT" 0,"WONK" 0}}
.is-static .mbar{transition:none}
.hero-page .page{pointer-events:none}
.hero-page .page>*{pointer-events:auto}
@media (min-width:768px){.dp:not(.dp--inline){width:680px;max-width:calc(100vw - 2*var(--pad));padding:20px 22px}}
.qb .row>:nth-child(2) .dp{left:auto;right:0}

/* ---------- live booking (Uplisting): booked days, messages, states ---------- */
.dp td.na button{color:#b9b4ae;text-decoration:line-through;pointer-events:none}
.dp td.unknown button{opacity:.35;pointer-events:none}
.dp td.can-end button{box-shadow:inset 0 0 0 1px var(--gold)}
.dp.is-loading .dp__months{opacity:.45}
.dp__msg{font:400 13px/1.4 var(--sans);color:#9a3b2a;margin:10px 0 0;min-height:1.4em}
.sum-msg{font:400 14px/1.45 var(--sans);color:var(--txt);margin:12px 0 0;min-height:1.45em}
.sum-msg.err{color:#9a3b2a}
.reserve-btn.is-off{opacity:.45;pointer-events:none}
.res .live{font:400 13px/1.4 var(--sans);margin-top:6px;color:var(--ink)}
.res .live.no{color:#9a3b2a}
.res-note{font:400 15px/1.5 var(--sans);color:var(--txt);margin:0 0 24px}

/* ---------- home: Le Contretemps block heading ---------- */
.dining-head{margin:0 0 40px}
.dining-head .caps{margin-bottom:14px}
@media (max-width:767.98px){.dining-head{margin-bottom:24px}}

/* contacts: keep the e-mail address in its real case inside caps lines */
.caps a[href^="mailto:"]{text-transform:none;letter-spacing:.02em}
