/* Χάνι Γρεβενιτίου, mosaic of full-bleed tiles (photo / paper / stone / night), condensed display type, one warm grade.
   Single committed look by choice: mixed light and dark bands, every color set explicitly. */
:root{
  --night:#0d0e0b;     /* black bands, loader, footer */
  --ink:#141511;       /* text on light */
  --paper:#ffffff;     /* text tiles */
  --stone:#e4e2dc;     /* secondary tiles */
  --smoke:#b9b6a8;     /* muted text on dark */
  --brown:#855434;     /* brand: roof */
  --olive:#828b2b;     /* brand: forest */
  --olive-lt:#c8cf7a;  /* olive on dark */
  --display:'Fira Sans Extra Condensed','Arial Narrow',Arial,sans-serif;
  --body:'Open Sans',Helvetica,Arial,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --row:clamp(300px,27vw,440px);
  --gx:max(16px,env(safe-area-inset-left,0px));
  --gxr:max(16px,env(safe-area-inset-right,0px));
  color-scheme:light;
}
*{box-sizing:border-box}
html{background:var(--night)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:90;background:var(--night)}
img{max-width:100%;display:block}
a{color:var(--brown)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--olive);outline-offset:3px}
h1,h2,h3{font-family:var(--display);font-weight:900;text-transform:uppercase;line-height:.88;letter-spacing:-.005em;margin:0;text-wrap:balance}
.label{font-family:var(--display);font-weight:700;font-size:15px;letter-spacing:.2em;text-transform:uppercase}
.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;font-family:var(--display);font-weight:600;font-size:17px;letter-spacing:.2em;text-transform:uppercase}
.m{display:block;overflow:hidden;padding-bottom:.04em}
.m>span{display:block}

/* ---------- loader & curtain ---------- */
.loader{position:fixed;inset:0;z-index:200;background:var(--night);display:grid;place-items:center;animation:failsafe 0s linear 4.5s forwards}
.loader svg{width:min(150px,36vw);height:auto;overflow:visible}
.loader .word{position:absolute;bottom:calc(10vh + env(safe-area-inset-bottom,0px));left:0;right:0;text-align:center;color:var(--smoke);font-family:var(--display);font-weight:700;letter-spacing:.4em;font-size:13px;text-transform:uppercase}
@keyframes failsafe{to{visibility:hidden;opacity:0}}
.curtain{position:fixed;inset:0;z-index:190;background:var(--night);display:grid;place-items:center;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility 0s linear .3s}
.curtain.on{opacity:1;visibility:visible;transition:opacity .22s ease}
.curtain img{width:72px;height:72px}
.grain{display:none}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-5%)}60%{transform:translate(-6%,1%)}80%{transform:translate(5%,4%)}100%{transform:translate(0,0)}}

/* ---------- cursor ---------- */
.cursor{position:fixed;left:0;top:0;z-index:180;width:92px;height:92px;margin:-46px 0 0 -46px;border-radius:50%;background:var(--paper);color:var(--ink);display:grid;place-items:center;font-family:var(--display);font-weight:800;letter-spacing:.14em;font-size:15px;pointer-events:none;transform:scale(0);mix-blend-mode:normal}

/* ---------- top bar & header ---------- */
.topbar{height:34px;align-items:center;white-space:nowrap;overflow:hidden;background:#000;color:#fff;font-family:var(--display);font-weight:700;font-size:14px;letter-spacing:.16em;text-transform:uppercase;padding-block:0;padding-left:var(--gx);padding-right:var(--gxr);display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;position:relative;z-index:60}
.topbar a{color:#fff;text-decoration:none}
.topbar .live{color:var(--smoke)}
.topbar .live b{color:#fff;font-weight:700;font-variant-numeric:tabular-nums}
.header{position:fixed;left:0;right:0;top:calc(env(safe-area-inset-top,0px) + 34px);z-index:160;padding-block:14px;padding-left:var(--gx);padding-right:var(--gxr);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;color:#fff;transition:transform .6s var(--ease),background-color .4s ease,padding .4s ease,top .4s ease}
.header.solid{top:env(safe-area-inset-top,0px);background:rgba(13,14,11,.92);padding-block:8px}
.header.away{transform:translateY(-110%)}
.header nav{display:flex;gap:34px;font-family:var(--display);font-weight:800;font-size:19px;letter-spacing:.06em;text-transform:uppercase}
.header nav.r{justify-content:flex-end;align-items:center}
.header a{color:#fff;text-decoration:none}
.header nav a{position:relative;padding-block:8px}
.header nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:3px;background:var(--brown);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.header nav a:hover::after,.header nav a[aria-current]::after{transform:scaleX(1);transform-origin:left}
.header .logo img{filter:drop-shadow(0 2px 10px rgba(0,0,0,.35));width:76px;height:76px;transition:width .4s ease,height .4s ease}
.header.solid .logo img{width:56px;height:56px}
.lang{font-size:15px;letter-spacing:.12em;opacity:.9}
.lang a{padding:8px 4px}
.lang a+a{opacity:.6}
.menu-btn{display:none;background:none;border:0;color:#fff;font-family:var(--display);font-weight:800;font-size:18px;letter-spacing:.14em;text-transform:uppercase;padding:12px 0;cursor:pointer}
.mnav{visibility:hidden;position:fixed;inset:0;z-index:155;background:var(--night);color:#fff;display:flex;flex-direction:column;justify-content:center;gap:6px;padding-left:var(--gx);padding-right:var(--gxr);padding-block:96px 40px;clip-path:inset(0 0 100% 0);transition:clip-path .8s var(--ease),visibility 0s linear .8s}
.mnav.open{visibility:visible;clip-path:inset(0 0 0 0);transition:clip-path .8s var(--ease),visibility 0s}
.mnav a{color:#fff;text-decoration:none;font-family:var(--display);font-weight:900;font-size:clamp(44px,13vw,72px);line-height:1;text-transform:uppercase}
@media (max-width:620px){.topbar a{display:none}}
@media (max-width:900px){
  .header{grid-template-columns:auto 1fr auto}
  .header nav{display:none}
  .menu-btn{display:block}
  .header .logo{order:-1}
  .header .lang{justify-self:end}
}

/* ---------- hero ---------- */
.hero{position:relative;min-height:calc(100svh - 34px);display:grid;place-items:center;text-align:center;color:#fff;overflow:hidden;background:#1d2329;padding-block:130px 90px;padding-left:var(--gx);padding-right:var(--gxr)}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform-origin:50% 60%}
.hero .shade{position:absolute;inset:0;background:rgba(8,12,16,.36)}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero .copy{position:relative;display:flex;flex-direction:column;align-items:center;gap:22px}
.hero h1{font-size:clamp(84px,14.5vw,230px);line-height:.84;display:flex;gap:.18em;flex-wrap:wrap;justify-content:center}
.hero h1 .m>span{display:flex}
.hero h1 .ch{display:inline-block}
.hero .tag{font-family:var(--display);font-weight:700;font-size:clamp(15px,1.5vw,21px);letter-spacing:.34em;text-transform:uppercase}
.hero .scroll{position:absolute;left:50%;bottom:28px;width:1px;height:64px;background:rgba(255,255,255,.3);overflow:hidden}
.hero .scroll::after{content:"";position:absolute;inset:0;background:#fff;animation:drip 2.2s var(--ease) infinite}
@keyframes drip{0%{transform:translateY(-100%)}60%,100%{transform:translateY(100%)}}

/* ---------- marquee ---------- */
.marquee{background:var(--night);color:#fff;overflow:hidden;padding-block:18px;border-block:1px solid #24251f}
.marquee .track{display:flex;width:max-content;font-family:var(--display);font-weight:900;font-size:clamp(34px,4.6vw,64px);text-transform:uppercase;line-height:1;white-space:nowrap}
.marquee span{padding-inline:.5em}
.marquee i{font-style:normal;color:var(--olive-lt)}
.marquee.light{background:var(--paper);color:var(--ink);border-color:#e6e4df}
.marquee.light i{color:var(--brown)}

/* ---------- tile grid ---------- */
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(var(--row),auto)}
@media (max-width:1100px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.grid{grid-template-columns:minmax(0,1fr)}.grid>.tall{grid-row:auto}}
.tall{grid-row:span 2}
.wide{grid-column:span 2}
@media (max-width:620px){.wide{grid-column:auto}}
.tile{position:relative;overflow:hidden;min-height:var(--row);background:#22231e}
.tile .zoom{position:absolute;inset:0;transition:transform 1.4s var(--ease)}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
a.tile:hover .zoom,.tile:hover .zoom{transform:scale(1.06)}
.txt{padding:clamp(32px,4vw,56px) clamp(24px,3.4vw,48px);display:flex;flex-direction:column;justify-content:center;gap:18px;min-width:0}
.txt.c{align-items:center;text-align:center}
.txt h2{font-size:clamp(52px,5.2vw,84px)}
.txt h3{font-size:clamp(46px,4.2vw,64px)}
.txt p{margin:0;max-width:44ch}
.txt .caps{font-family:var(--display);font-weight:600;font-size:16px;line-height:1.5;letter-spacing:.14em;text-transform:uppercase;max-width:30ch}
.bg-paper{background:var(--paper);color:var(--ink)}
.bg-stone{background:var(--stone);color:var(--ink)}
.bg-night{background:var(--night);color:#fff}
.bg-olive{background:var(--olive);color:#101109}
.stack{font-size:clamp(44px,4.4vw,66px)!important;line-height:.9!important}
.stack b{color:var(--brown);font-weight:900}

/* ---------- full-bleed band ---------- */
.band{position:relative;height:clamp(360px,44vw,640px);overflow:hidden;background:#2b2a20}
.band img{position:absolute;left:0;top:-15%;width:100%;height:130%;object-fit:cover}
.band .cap{position:absolute;left:var(--gx);bottom:24px;color:#fff;font-family:var(--display);font-weight:700;letter-spacing:.24em;font-size:14px;text-transform:uppercase;text-shadow:0 1px 12px rgba(0,0,0,.5)}

/* ---------- horizontal experiences ---------- */
.hs{background:var(--night);color:#fff;overflow:hidden}
.hs-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;padding-block:80px 40px;padding-left:var(--gx);padding-right:var(--gxr)}
.hs-head h2{font-size:clamp(56px,8vw,128px)}
.hs-head p{margin:0;max-width:44ch;color:#d9d6c8}
.hs-track{display:flex;gap:18px;padding-left:var(--gx);padding-right:var(--gxr);padding-bottom:80px;width:max-content}
.card{position:relative;width:clamp(280px,30vw,460px);flex:none;display:flex;flex-direction:column;gap:18px}
.card .tile{height:clamp(360px,36vw,560px);min-height:0}
.card .n{font-family:var(--display);font-weight:700;letter-spacing:.2em;font-size:14px;color:var(--olive-lt)}
.card h3{font-size:clamp(40px,3.4vw,56px)}
.card p{margin:0;color:#d9d6c8;max-width:38ch}
@media (max-width:900px){
  .hs-track{width:auto;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
  .card{scroll-snap-align:start;width:78vw}
}

/* ---------- distances ---------- */
.dist{list-style:none;margin:0;padding:0;font-family:var(--display);font-weight:600;font-size:17px;letter-spacing:.16em;text-transform:uppercase}
.dist li{display:flex;justify-content:space-between;gap:16px;padding-block:12px;border-bottom:1px solid #2e2f28}
.dist li:last-child{border-bottom:0}
.dist span+span{color:var(--olive-lt);font-variant-numeric:tabular-nums}

/* ---------- rooms split ---------- */
.spec{font-size:15px;line-height:1.8}
.spec h2{font-size:clamp(36px,3.2vw,46px);margin-bottom:6px}
.more{align-self:flex-start;font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);text-decoration:none;padding-block:10px;background:linear-gradient(var(--brown),var(--brown)) 0 100%/100% 3px no-repeat;transition:background-size .5s var(--ease)}
.more:hover{background-size:0 3px;background-position:100% 100%}

/* ---------- reviews ---------- */
.reviews{position:relative;background:var(--night);color:#fff;overflow:hidden}
.reviews canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.reviews .in{position:relative;max-width:1320px;margin:0 auto;padding-block:110px;padding-left:var(--gx);padding-right:var(--gxr);display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:48px}
.score{font-family:var(--display);font-weight:900;font-size:clamp(110px,12vw,170px);line-height:.82}
.reviews blockquote{margin:0;font-size:19px;line-height:1.6}
.reviews figure{margin:0;display:flex;flex-direction:column;gap:16px}
.reviews figcaption{color:var(--olive-lt)}

/* ---------- contact ---------- */
.contact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:860px){.contact{grid-template-columns:minmax(0,1fr)}}
.contact .txt{padding-block:80px}
dl.info{margin:0;display:grid;grid-template-columns:auto 1fr;gap:12px 24px}
dl.info dt{font-family:var(--display);font-weight:700;letter-spacing:.14em;text-transform:uppercase}
dl.info dd{margin:0}
form.req{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-content:center}
form.req label{display:flex;flex-direction:column;gap:6px;font-family:var(--display);font-weight:700;font-size:15px;letter-spacing:.14em;text-transform:uppercase}
form.req .full{grid-column:1/-1}
form.req input,form.req select,form.req textarea{font:400 16px var(--body);letter-spacing:0;padding:13px 14px;border:1px solid #8a877e;border-radius:0;background:#fff;color:var(--ink);width:100%}
form.req button{grid-column:1/-1;background:var(--brown);color:#fff;border:0;font:800 19px var(--display);letter-spacing:.16em;text-transform:uppercase;padding:18px;cursor:pointer;position:relative;overflow:hidden}
form.req button span{position:relative}
form.req button::before{content:"";position:absolute;inset:0;background:var(--night);transform:translateY(101%);transition:transform .6s var(--ease)}
form.req button:hover::before{transform:translateY(0)}
form.req .note{grid-column:1/-1;margin:0;font-size:13px;color:#5d5a52}
@media (max-width:520px){form.req{grid-template-columns:minmax(0,1fr)}}

/* ---------- footer ---------- */
.footer{background:#000;color:var(--smoke);font-size:12px}
.footer .in{max-width:1320px;margin:0 auto;padding-block:22px;padding-left:var(--gx);padding-right:var(--gxr);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 28px}
.footer nav{display:flex;flex-wrap:wrap;gap:22px;font-family:var(--display);font-weight:700;font-size:14px;letter-spacing:.14em;text-transform:uppercase}
.footer a{color:var(--smoke);text-decoration:none;padding-block:8px}
.footer a:hover{color:#fff}

@media (prefers-reduced-motion:reduce){
  .grain,.hero .scroll::after{animation:none}
  .tile .zoom{transition:none}
}

#zagori h2{font-size:clamp(44px,4vw,60px)}
@media (max-width:1100px){.stack{font-size:clamp(52px,8vw,80px)!important}#zagori h2{font-size:clamp(52px,8vw,84px)}}
.grid.split{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:620px){.grid.split{grid-template-columns:minmax(0,1fr)}}
.xh{font-size:clamp(52px,4.6vw,68px)}
@media (max-width:1100px){.xh{font-size:clamp(60px,10vw,96px)}}
.tcap{position:absolute;left:18px;bottom:16px;color:#fff;font-family:var(--display);font-weight:700;font-size:14px;letter-spacing:.22em;text-transform:uppercase;text-shadow:0 1px 10px rgba(0,0,0,.6);pointer-events:none}
.hero h1 .sub{flex-basis:100%;font-size:.42em;letter-spacing:.06em;margin-top:.04em}
.hero h1 .sub>span{justify-content:center;white-space:pre}
.hero h1{row-gap:.02em}
.loader,.curtain{pointer-events:none}

/* ---------- where: compass map ---------- */
.where{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);background:var(--night);color:#fff}
@media (max-width:860px){.where{grid-template-columns:minmax(0,1fr)}}
.where-map{position:relative;aspect-ratio:1/1;max-width:100%;margin:clamp(16px,3vw,48px);font-family:var(--display)}
.where-map svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.where-map .c{fill:none;stroke:rgba(200,207,122,.10);stroke-width:1.2}
.where-map .c.strong{stroke:rgba(200,207,122,.22)}
.where-map .ring{fill:none;stroke:rgba(255,255,255,.22);stroke-width:1;stroke-dasharray:2 6}
.where-map .ringlabel{fill:#9c998b;font-size:20px;font-weight:700;letter-spacing:.14em}
.where-map .cardinal{fill:#6f6d62;font-size:22px;font-weight:800;letter-spacing:.1em}
.where-map .trail{fill:none;stroke:#c8cf7a;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}
.where-map .traillabel{fill:#c8cf7a;font-size:20px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.where-map .ray{stroke:#fff;stroke-width:1.5;stroke-dasharray:4 5;transition:all .5s var(--ease)}
.pins{position:absolute;inset:0}
.pin{position:absolute;transform:translate(-7px,-50%);display:flex;align-items:center;gap:10px;background:none;border:0;padding:8px 0;color:#e8e5d8;font:700 clamp(12px,1.15vw,16px)/1 var(--display);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;white-space:nowrap}
.pin::before{content:"";width:14px;height:14px;border-radius:50%;background:var(--night);border:3px solid #c8cf7a;flex:none;transition:transform .4s var(--ease),background .3s}
.pin.l{flex-direction:row-reverse;transform:translate(calc(-100% + 7px),-50%)}
.pin:hover::before,.pin.on::before,.pin:focus-visible::before{transform:scale(1.5);background:#c8cf7a}
.pin.on{color:#fff}
.pin.home{transform:translate(-50%,-50%);flex-direction:column;gap:6px;cursor:default;color:#fff;font-size:clamp(13px,1.3vw,18px)}
.pin.home::before{display:none}
.pin.home img{width:clamp(44px,5vw,64px);height:auto;filter:drop-shadow(0 0 0 rgba(200,207,122,.6));animation:beacon 2.6s ease-out infinite;border-radius:50%}
@keyframes beacon{0%{box-shadow:0 0 0 0 rgba(200,207,122,.55)}100%{box-shadow:0 0 0 26px rgba(200,207,122,0)}}
.where-txt{padding-block:clamp(48px,6vw,96px)}
.where-txt h2{font-size:clamp(52px,5.2vw,84px)}
.where-info{font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:.12em;text-transform:uppercase;color:#c8cf7a;min-height:2.6em;margin:0}
.where-txt .more{color:#fff}
@media (prefers-reduced-motion:reduce){.pin.home img{animation:none}}
.where{overflow:hidden}
@media (max-width:520px){.pin{font-size:10px;letter-spacing:.1em;gap:6px}.pin::before{width:11px;height:11px;border-width:2px}}
/* experiences fit one screen while pinned (desktop) */
@media (min-width:901px){
  .hs{height:100svh;display:flex;flex-direction:column}
  .hs-head{flex:none;padding-block:clamp(28px,6vh,72px) clamp(16px,3vh,36px)}
  .hs-head h2{font-size:clamp(52px,10vh,128px)}
  .hs-track{flex:1 1 auto;min-height:0;padding-bottom:clamp(24px,5vh,64px);align-items:stretch}
  .card{height:100%;width:clamp(260px,min(30vw,52vh),460px);gap:14px}
  .card .tile{flex:1 1 auto;height:auto;min-height:0}
  .card h3{font-size:clamp(32px,5vh,56px)}
  .card p{font-size:14px;line-height:1.5;min-height:3em}
}

/* ---------- where: night relief + travel times ---------- */
.where{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);background:var(--night);color:#fff;overflow:hidden}
@media (max-width:980px){.where{grid-template-columns:minmax(0,1fr)}}
.relief{position:relative;align-self:center;font-family:var(--display)}
.relief>img{display:block;width:100%;height:auto}
.relief svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.relief .trail{fill:none;stroke:#c8cf7a;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:.85;transition:stroke-width .4s,opacity .4s}
.relief.trail-on .trail{stroke-width:9;opacity:1}
.relief .ray{stroke:#fff;stroke-width:3;stroke-dasharray:10 12;opacity:0;transition:opacity .4s}
.relief .ray.on{opacity:.9}
.mk{position:absolute;transform:translate(-6px,-50%);display:flex;align-items:center;gap:8px;color:rgba(232,229,216,.72);font-weight:700;font-size:clamp(10px,.95vw,14px);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;pointer-events:none;transition:color .3s}
.mk::before{content:"";width:9px;height:9px;border-radius:50%;background:#c8cf7a;box-shadow:0 0 0 3px rgba(13,14,11,.6);flex:none;transition:transform .4s var(--ease),box-shadow .4s}
.mk.l{flex-direction:row-reverse;transform:translate(calc(-100% + 6px),-50%)}
.mk.on{color:#fff}
.mk.on::before{transform:scale(1.6);box-shadow:0 0 0 6px rgba(200,207,122,.25)}
.mk.edge::before{background:transparent;box-shadow:none;width:0;height:0;border:6px solid transparent;border-right-color:#c8cf7a;border-left:0}
.mk.home{transform:translate(-50%,-50%);flex-direction:column;gap:6px;color:#fff;font-size:clamp(12px,1.1vw,16px)}
.mk.home::before{display:none}
.mk.home img{width:clamp(38px,3.6vw,54px);height:auto;border-radius:50%;animation:beacon 2.6s ease-out infinite}
.relief .credit{position:absolute;right:10px;bottom:8px;font-family:var(--body);font-size:10px;letter-spacing:0;text-transform:none;color:rgba(255,255,255,.5)}
.where-txt{padding-block:clamp(48px,6vw,88px)}
.times{list-style:none;margin:0;padding:0;border-top:1px solid #2e2f28}
.times button{all:unset;box-sizing:border-box;width:100%;display:grid;grid-template-columns:5.2ch 1fr auto;align-items:baseline;gap:16px;padding:10px 4px;border-bottom:1px solid #2e2f28;cursor:pointer;font-family:var(--display);text-transform:uppercase;transition:background .3s}
.times button:focus-visible{outline:2px solid var(--olive-lt);outline-offset:2px}
.times .t{font-weight:900;font-size:clamp(30px,3vw,46px);line-height:1;color:var(--olive-lt);font-variant-numeric:tabular-nums}
.times .n{font-weight:700;font-size:clamp(15px,1.25vw,19px);letter-spacing:.12em;color:#e8e5d8}
.times .k{font-weight:600;font-size:14px;letter-spacing:.12em;color:#8d8a7d;font-variant-numeric:tabular-nums}
.times button:hover,.times button.on{background:rgba(200,207,122,.07)}
.times button.on .n{color:#fff}
.where-txt .more{color:#fff}
.where-note{font-size:13px;color:#8d8a7d;margin:0}

/* ---------- where v3: black relief, map-first ---------- */
.where{position:relative;display:block;background:var(--night);color:#fff;overflow:hidden}
.relief{position:relative;font-family:var(--display)}
.relief-img{display:block;width:100%;height:auto}
.where-txt{position:absolute;left:0;top:0;width:min(38%,520px);padding:clamp(48px,6vw,96px) clamp(24px,3.4vw,56px);gap:20px;pointer-events:none}
.where-txt>*{pointer-events:auto}
.where-txt p{margin:0;color:#cfccbf;max-width:36ch}
.where-txt .more{color:#fff;align-self:flex-start}
@media (max-width:860px){.where-txt{position:static;width:auto;padding-bottom:8px}}
.mk{all:unset;box-sizing:border-box;position:absolute;transform:translate(-7px,-50%);display:flex;align-items:center;gap:9px;color:rgba(232,229,216,.78);font-family:var(--display);font-weight:700;font-size:clamp(11px,1vw,15px);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;cursor:pointer;padding:8px 4px;transition:color .3s}
.mk::before{content:"";width:10px;height:10px;border-radius:50%;background:#c8cf7a;box-shadow:0 0 0 4px rgba(13,14,11,.65);flex:none;transition:transform .4s var(--ease),box-shadow .4s}
.mk:hover,.mk.on,.mk:focus-visible{color:#fff}
.mk:hover::before,.mk.on::before,.mk:focus-visible::before{transform:scale(1.6);box-shadow:0 0 0 7px rgba(200,207,122,.22)}
.mk:focus-visible{outline:2px solid #c8cf7a;outline-offset:2px}
.mk.l{flex-direction:row-reverse;transform:translate(calc(-100% + 7px),-50%)}
.mk.home{transform:translate(-50%,-50%);flex-direction:column;gap:6px;color:#fff;font-size:clamp(12px,1.1vw,16px)}
.mk.home::before{display:none}
.mk.home img{width:clamp(40px,3.8vw,58px);height:auto;border-radius:50%;animation:beacon 2.6s ease-out infinite}
.pop{position:absolute;z-index:5;width:min(300px,80vw);background:#141511;border:1px solid #2e2f28;box-shadow:0 18px 50px rgba(0,0,0,.55);pointer-events:none;transform-origin:left top}
.pop img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.pop img[hidden]{display:none}
.pop-b{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px}
.pop h4{margin:0;font-family:var(--display);font-weight:900;font-size:26px;line-height:1;text-transform:uppercase}
.pop-m{margin:0;font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#c8cf7a}
.pop-t{margin:0;font-size:13.5px;line-height:1.55;color:#cfccbf}
@media (max-width:700px){.pop{position:relative;left:auto!important;top:auto!important;width:auto;margin:0 16px 24px;transform:none!important}}
.relief .credit{position:absolute;right:12px;bottom:8px;font-family:var(--body);font-size:10px;color:rgba(255,255,255,.4)}
@media (max-width:700px){.mk:not(.home){font-size:0;gap:0;padding:12px}.mk:not(.home)::before{width:12px;height:12px}.mk.l{transform:translate(-50%,-50%)}.mk:not(.home){transform:translate(-50%,-50%)}}
/* where v4: map fits one screen; off-map places sit on the edge with an arrow */
.relief{max-width:calc((100svh - 40px) * 1.605);margin-inline:auto}
.mk.edge::before{display:none}
.mk.edge{gap:10px;color:#c8cf7a}
.mk.edge .arr{font-style:normal;font-family:var(--body);font-size:1.5em;line-height:1;display:inline-block;transition:transform .4s var(--ease)}
.mk.edge:hover,.mk.edge.on{color:#fff}
@media (max-width:700px){.mk.edge{font-size:0}.mk.edge .arr{font-size:22px;color:#c8cf7a}}
.mk.edge .arr{width:34px;height:34px;padding:7px;box-sizing:border-box;border:1.5px solid rgba(200,207,122,.7);border-radius:50%;background:rgba(13,14,11,.55);color:#c8cf7a}
.mk.edge .arr svg{display:block}
.mk.edge:hover .arr,.mk.edge.on .arr{background:#c8cf7a;color:#0d0e0b;border-color:#c8cf7a}
@media (max-width:700px){.mk.edge .arr{width:30px;height:30px;padding:6px}}

/* form states */
form.req .hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
form.req .note.ok{color:#3f4a0c;font-weight:600;font-size:15px;background:#e9ecc9;border-left:4px solid #828B2B;padding:14px 16px}
form.req .note.bad{color:#7d2e14;font-weight:600;font-size:15px;background:#f4e1d8;border-left:4px solid #9a3b1c;padding:14px 16px}
form.req button[disabled]{opacity:.7;cursor:progress}

/* ---------- where: phones (pannable map + numbered places + cards) ---------- */
.relief-scroll{position:relative}
.places,.credit-m,.mk .n,.hint-m{display:none}
@media (max-width:700px){
  .where{display:flex;flex-direction:column}
  .where-txt{order:-1;padding-bottom:20px}
  .hint-d{display:none}.hint-m{display:inline}
  .relief-scroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  .relief-scroll::-webkit-scrollbar{display:none}
  .relief{width:185%;max-width:none}
  .relief .credit{display:none}
  .pop{display:none!important}
  .mk:not(.home){padding:6px;font-size:0;gap:0;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.9)}
  .mk:not(.home)::before{display:none}
  .mk .n{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#c8cf7a;color:#0d0e0b;font:800 12px/1 var(--display);font-style:normal;letter-spacing:0;text-shadow:none;box-shadow:0 0 0 3px rgba(13,14,11,.7);transition:transform .3s var(--ease),background .3s}
  .mk.on .n{background:#fff;transform:scale(1.2)}
  .mk.on:not(.home){z-index:3}
  .mk.edge .n{display:none}
  .mk.home img{width:36px}
  .mk.home b{font-size:10px}
  .places{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:22px 16px 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .places::-webkit-scrollbar{display:none}
  .pl{flex:0 0 80%;scroll-snap-align:start;scroll-margin-left:16px;background:#141511;border:1px solid #2e2f28;transition:border-color .3s}
  .pl.on{border-color:#c8cf7a}
  .pl-img img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
  .pl-b{position:relative;padding:16px 16px 18px;display:flex;flex-direction:column;gap:6px}
  .pl h4{margin:0;padding-right:36px;font-family:var(--display);font-weight:900;font-size:22px;line-height:1;text-transform:uppercase}
  .pl-n{position:absolute;top:-17px;right:14px;width:32px;height:32px;border-radius:50%;background:#c8cf7a;color:#0d0e0b;display:grid;place-items:center;font:800 14px/1 var(--display);box-shadow:0 0 0 4px #141511}
  .credit-m{display:block;padding:8px 16px 32px;font-size:10px;line-height:1.5;color:rgba(255,255,255,.4)}
}

/* reviews: Booking + Google */
.reviews .in{grid-template-columns:minmax(240px,1fr) minmax(0,2.7fr);gap:56px;align-items:start}
.rv-scores{display:flex;flex-direction:column;gap:30px}
.rv-s{display:flex;flex-direction:column;gap:10px}
.rv-scores .score{font-size:clamp(84px,8.5vw,128px);display:flex;align-items:flex-start;gap:6px}
.rv-scores .star{font-style:normal;font-family:var(--body);font-size:.32em;line-height:1;color:var(--olive-lt);margin-top:.18em}
.rv-award{color:var(--smoke)}
.rv-link{color:#fff;align-self:flex-start}
.rv-quotes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 52px}
@media (max-width:860px){.reviews .in{grid-template-columns:minmax(0,1fr);gap:44px}.rv-quotes{grid-template-columns:minmax(0,1fr)}.rv-scores{flex-direction:row;flex-wrap:wrap;gap:24px 40px}.rv-award,.rv-link{flex-basis:100%}}

form.req .note .note-link{color:inherit;text-decoration:underline;white-space:nowrap}

/* rooms: text-only "in every room" */
.inroom{gap:22px}
.inroom h2{font-size:clamp(48px,4.6vw,72px)}
.inroom-lead{margin:0;max-width:34ch;font-size:clamp(18px,1.5vw,21px);line-height:1.5;color:#3d3b35}
.inroom-list{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:14px 48px;font-size:15px;letter-spacing:.16em}
.inroom-list li{display:flex;align-items:center;gap:12px}
.inroom-list li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--olive);flex:none}
@media (max-width:620px){.inroom-list{grid-template-columns:minmax(0,1fr)}}
.dist span+span{white-space:nowrap;flex:none}

/* loading ring around the logo (curtain + page loader) */
.curtain::after,.loader::after{content:"";position:absolute;left:50%;top:50%;width:112px;height:112px;margin:-56px 0 0 -56px;border-radius:50%;border:2px solid rgba(200,207,122,.18);border-top-color:#c8cf7a;animation:spin .9s linear infinite}
.loader:has(svg)::after{display:none}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.curtain::after,.loader::after{animation:none}}
