/* ============================================================
   Lispa at 23 Boutique — page stylesheet

   Same construction as private-charters.css: a sticky, layered
   opening that plays as a short film, then chapters that reveal
   on scroll. Where the charter page speaks water — waterlight,
   wake, glints — this one speaks undercroft: warm lamplight
   behind stone, dust in a shaft of it, and a descent.

   There is no 23 Boutique film yet (Photographer A shoots the
   room 25 Oct 2026). The hero is a three-frame dissolve that
   behaves like one: the street at night, the hotel, the door.
   Swap .b23-frame for a <video> when the footage lands — the
   surrounding layers do not change.
   ============================================================ */

:root{
  --b23-vault:#17120e;          /* the undercroft, unlit */
  --b23-vault-deep:#0f0c09;
  --b23-lamp:#e8c88d;           /* the LED behind the arch soffits */
  --b23-ease:cubic-bezier(.23,1,.32,1);
  --b23-gutter:clamp(24px,4.5vw,72px);
}

.b23-page{background:var(--limestone-light);color:var(--olive)}
.b23-page ::selection{background:var(--travertine);color:var(--b23-vault)}

/* ─────────────────────────────────────────────────────────────
   THE OPENING
   ───────────────────────────────────────────────────────────── */

.b23-hero{position:relative;height:152svh;color:var(--limestone);background:var(--b23-vault)}
.b23-hero-stage{position:sticky;top:0;height:100svh;min-height:640px;overflow:hidden;isolation:isolate}

/* Frames. Each sits on top of the last; .is-on fades it in and the
   one beneath keeps drifting, so the dissolve never shows a seam. */
.b23-film{position:absolute;z-index:-5;inset:-3%;background:var(--b23-vault);overflow:hidden}
.b23-frame{position:absolute;inset:0;opacity:0;transition:opacity 2.6s ease;will-change:opacity}
.b23-frame img,.b23-frame video{
  width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 50%;
  transform:translate3d(var(--hero-x,0px),var(--hero-y,0px),0) scale(var(--hero-scale,1.08));
  transform-origin:50% 54%;
  animation:b23-breathe 22s ease-in-out infinite alternate;
  will-change:transform
}
/* The film is a video now, so the breathe keyframes would fight the
   clip's own slow push. Scroll parallax still applies. */
.b23-frame video{animation:none}
.b23-frame.is-on{opacity:1}
.b23-frame--facade{background:#17120e}.b23-frame--facade img{object-fit:contain;transform:none;animation:none}
/* Let the threshold sit lower in the frame: the full arch arrives before the door. */
.b23-frame--threshold img{object-position:center top;transform:translate3d(var(--hero-x,0px),var(--hero-y,0px),0) scale(1);transform-origin:50% 0}
/* First frame is painted immediately so the hero is never black on
   load, even if the driver script never runs. */
.b23-frame:first-child{opacity:1}
.b23-frame:first-child.is-off{opacity:0}

/* Lamplight — the warm pool behind the arches, drifting. */
.b23-hero-glow{
  position:absolute;inset:-6%;z-index:-4;pointer-events:none;mix-blend-mode:screen;opacity:.6;
  background:
    radial-gradient(circle at calc(62% + var(--hero-light-x,0px)) calc(34% + var(--hero-light-y,0px)),rgba(232,200,141,.22),transparent 34%),
    radial-gradient(circle at 22% 78%,rgba(232,200,141,.1),transparent 40%);
  animation:b23-lamp-drift 14s ease-in-out infinite alternate;
  will-change:transform,opacity
}

/* Dust in the shaft. The charter page has water glints here; a
   cellar has motes, so they fall rather than travel sideways. */
.b23-hero-motes{
  position:absolute;z-index:-3;inset:0;pointer-events:none;overflow:hidden;
  opacity:.4;mix-blend-mode:screen;
  transform:translate3d(0,var(--hero-mote-y,0px),0);
  -webkit-mask-image:radial-gradient(ellipse 52% 60% at 58% 34%,#000 0%,transparent 72%);
  mask-image:radial-gradient(ellipse 52% 60% at 58% 34%,#000 0%,transparent 72%)
}
.b23-hero-motes span{
  position:absolute;inset:-30% -10%;
  background-image:
    radial-gradient(rgba(245,228,195,.9) .9px,transparent 1.2px),
    radial-gradient(rgba(245,228,195,.55) .7px,transparent 1px);
  background-size:170px 190px,110px 130px;
  background-position:0 0,40px 60px;
  animation:b23-motes-fall 26s linear infinite;
  will-change:transform
}

.b23-hero-scrim{
  position:absolute;z-index:-1;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 60% 48% at 50% 50%,rgba(15,12,9,.5) 0%,rgba(15,12,9,.2) 56%,transparent 80%),
    linear-gradient(180deg,rgba(15,12,9,.52) 0%,transparent 26%,transparent 56%,rgba(15,12,9,.82) 100%)
}

.b23-hero-grain{
  position:absolute;z-index:1;inset:-6%;pointer-events:none;
  opacity:.05;mix-blend-mode:soft-light;
  background-image:radial-gradient(rgba(255,255,255,.85) .55px,transparent .7px);
  background-size:4px 4px;
  animation:b23-grain 2.4s steps(2,end) infinite;
  will-change:transform
}

.b23-hero-content{
  position:absolute;z-index:2;left:50%;top:50%;
  width:min(820px,calc(100% - 48px));
  transform:translate3d(-50%,calc(-50% + var(--hero-copy-y,0px)),0);
  text-align:center;
  opacity:var(--hero-copy-opacity,1);
  will-change:transform,opacity
}
.b23-kicker{font-size:11px;line-height:1.2;letter-spacing:.24em;text-transform:uppercase;color:rgba(232,200,141,.8);margin:0 0 24px}
.b23-hero-content h1{
  font-family:'EB Garamond',Georgia,serif;
  font-size:clamp(46px,7.4vw,104px);
  font-weight:400;line-height:.92;letter-spacing:-.035em;
  text-wrap:balance;margin:0;color:var(--limestone)
}
/* Co-brand lockup: Lispa / at / their mark. The name stays type and
   the hotel stays artwork, which is the correct way round — we do not
   set someone else's logo in our typeface. The img alt carries
   "23 Boutique Floriana", so the h1 still reads as a full sentence to
   a screen reader and to search. */
.b23-lockup{display:flex;flex-direction:column;align-items:center}
.b23-lockup-us{font-size:.95em;font-style:italic;color:var(--limestone);letter-spacing:-.015em;line-height:1;padding-bottom:.1em}
.b23-lockup-at{
  /* .155em of a 46px h1 is 7px on a phone — floor it. */
  font-size:max(11px,.155em);font-style:italic;letter-spacing:.16em;
  color:rgba(246,241,232,.55);line-height:1;
  margin:.42em 0 .5em
}
.b23-lockup-mark{display:block;width:clamp(200px,25vw,350px)}
.b23-lockup-mark img{display:block;width:100%;height:auto}
.b23-hero-content>p:not(.b23-kicker){
  max-width:500px;margin:34px auto 0;
  font-family:'EB Garamond',Georgia,serif;
  font-size:clamp(16px,1.6vw,20px);line-height:1.75;
  color:rgba(246,241,232,.76);text-wrap:pretty
}
.b23-hero-ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:34px}
.b23-hero-ctas .btn{background:rgba(246,241,232,.08);backdrop-filter:blur(8px);color:var(--limestone);border:1px solid rgba(246,241,232,.24);transition:transform .18s var(--b23-ease),background .25s,border-color .25s}
.b23-hero-ctas .btn:hover{transform:translateY(-2px);background:rgba(246,241,232,.2);border-color:rgba(246,241,232,.44)}
.b23-hero-ctas .btn.is-quiet{background:rgba(246,241,232,.03);border-color:rgba(246,241,232,.14)}
.b23-hero-ctas .btn.is-quiet:hover{background:rgba(246,241,232,.14);border-color:rgba(246,241,232,.32)}

/* Spec row. The charter page states Format / For / From directly
   under its hero; this is the same furniture, so the two read as
   one site rather than two. */
.b23-spec{position:absolute;z-index:2;left:50%;bottom:clamp(38px,7vh,70px);transform:translateX(-50%);
  display:flex;gap:clamp(28px,6vw,72px);margin:0;padding:0;text-align:center;
  opacity:var(--hero-copy-opacity,1)}
.b23-spec dt{font-size:9px;letter-spacing:.26em;text-transform:uppercase;color:rgba(246,241,232,.42);margin:0 0 7px}
.b23-spec dd{margin:0;font-family:'EB Garamond',Georgia,serif;font-size:15px;color:rgba(246,241,232,.9);white-space:nowrap}
@media(max-width:600px){
  .b23-spec{gap:20px;bottom:30px}
  .b23-spec dd{font-size:13px}
  .b23-spec dt{font-size:8px;letter-spacing:.18em}
}

/* The descent. A hairline with a light travelling down it —
   the page's one literal gesture at the staircase. */
.b23-descent{position:absolute;z-index:2;left:50%;bottom:0;width:1px;height:96px;background:linear-gradient(180deg,transparent,rgba(246,241,232,.22));transform:translateX(-50%);pointer-events:none;overflow:hidden}
.b23-descent span{position:absolute;left:-1px;width:3px;height:26px;border-radius:2px;background:linear-gradient(180deg,transparent,var(--b23-lamp),transparent);opacity:.85;animation:b23-descend 3.4s var(--b23-ease) infinite}

@keyframes b23-breathe{0%{transform:translate3d(-.4%,0,0) scale(1.02)}100%{transform:translate3d(.5%,-.6%,0) scale(1.09)}}
@keyframes b23-lamp-drift{0%{transform:translate3d(-1.2%,.5%,0);opacity:.48}100%{transform:translate3d(1.2%,-.8%,0);opacity:.72}}
@keyframes b23-motes-fall{0%{transform:translate3d(0,-14%,0)}100%{transform:translate3d(2%,14%,0)}}
@keyframes b23-grain{0%{transform:translate3d(0,0,0)}25%{transform:translate3d(1.5%,-1%,0)}50%{transform:translate3d(-1%,1.2%,0)}75%{transform:translate3d(.7%,1.5%,0)}100%{transform:translate3d(-1.4%,-.6%,0)}}
@keyframes b23-descend{0%{transform:translateY(-30px);opacity:0}30%{opacity:.9}100%{transform:translateY(96px);opacity:0}}
@keyframes b23-rise{0%{opacity:0;clip-path:inset(0 0 100% 0);transform:translate3d(0,26px,0)}100%{opacity:1;clip-path:inset(0);transform:translate3d(0,0,0)}}

@media(prefers-reduced-motion:no-preference){
  .b23-motion-ready .b23-hero-content .b23-kicker{animation:b23-rise .8s .15s both var(--b23-ease)}
  .b23-motion-ready .b23-hero-content h1>span{animation:b23-rise 1s .26s both var(--b23-ease)}
  .b23-motion-ready .b23-lockup-mark{animation:b23-rise 1s .4s both var(--b23-ease)}
  .b23-motion-ready .b23-hero-content>p:not(.b23-kicker){animation:b23-rise .9s .56s both var(--b23-ease)}
  .b23-motion-ready .b23-hero-ctas{animation:b23-rise .9s .7s both var(--b23-ease)}
}

@media(prefers-reduced-motion:reduce){
  .b23-hero{height:auto}
  .b23-hero-stage{position:relative;height:88svh}
  .b23-frame img,.b23-hero-glow,.b23-hero-motes span,.b23-hero-grain,.b23-descent span{animation:none}
  .b23-frame{transition:none}
}

/* ─────────────────────────────────────────────────────────────
   THE CHAPTERS

   Full-bleed and dark, the whole way down. The first build went
   cream one screen after the hero and the spell died there; the
   page now stays underground through the story and only comes up
   into the light at the menu, which is where the practical part
   of the visit starts anyway.

   Reveals fire ONCE, on IntersectionObserver. The first build
   drove clip-path straight from scroll position, so a chapter
   parked half-revealed read as a broken image rather than a
   reveal. Scroll position drives exactly one thing now — the
   bronze thread, which is a progress indicator and is supposed
   to sit at an intermediate value.
   ───────────────────────────────────────────────────────────── */

.b23-chapters{position:relative;background:var(--b23-vault)}

/* The thread. Lispa's booking email already walks a guest down an
   animated bronze thread; this is the same gesture on the page,
   and it doubles as the descent. transform-only, so it costs a
   composite and nothing else. */
/* The thread sits in a left margin-rule lane, like the rule down
   the edge of a manuscript. Down the centre it ran straight
   through the copy on the right-aligned and centred chapters. */
.b23-thread{position:absolute;z-index:3;left:clamp(30px,5.5vw,84px);top:0;bottom:0;width:1px;pointer-events:none}
.b23-thread-track{position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(246,241,232,.07) 8%,rgba(246,241,232,.07) 92%,transparent)}
.b23-thread-live{
  position:absolute;left:0;top:0;width:100%;height:100%;
  transform:scaleY(var(--thread,0));transform-origin:50% 0;
  background:linear-gradient(180deg,rgba(169,124,69,.05),var(--b23-lamp) 12%,var(--b23-lamp) 88%,rgba(169,124,69,.05));
  box-shadow:0 0 12px 1px rgba(232,200,141,.3)
}
/* The bead sits at the leading edge of the drawn thread. */
.b23-thread-bead{
  position:absolute;left:50%;top:0;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;
  background:var(--b23-lamp);box-shadow:0 0 16px 3px rgba(232,200,141,.55);
  transform:translateY(calc(var(--thread,0) * var(--thread-len,0px)));
  opacity:var(--thread-bead,0)
}

.b23-ch{position:relative;min-height:100svh;display:grid;align-items:center;overflow:hidden;isolation:isolate}

.b23-ch-bg{position:absolute;inset:0;z-index:-2;background:var(--b23-vault)}
.b23-ch-bg img{
  width:100%;height:100%;object-fit:cover;display:block;
  transform:scale(1.12);
  transition:transform 2200ms var(--b23-ease),opacity 1400ms var(--b23-ease);
  opacity:.55;will-change:transform,opacity
}
.b23-ch.is-in .b23-ch-bg img{transform:scale(1);opacity:1}
.b23-ch--centre .b23-ch-bg img,.b23-ch--centre.is-in .b23-ch-bg img{transform:none;transition:opacity 700ms var(--b23-ease)}

/* Veil. Heavier on the side the copy sits, so type never fights
   the photograph for contrast. */
.b23-ch-veil{position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(15,12,9,.84) 0%,rgba(15,12,9,.42) 26%,rgba(15,12,9,.46) 62%,rgba(15,12,9,.9) 100%),
    radial-gradient(ellipse 76% 76% at var(--veil-x,50%) 50%,rgba(15,12,9,.72) 0%,rgba(15,12,9,.3) 55%,transparent 86%)}

/* The courtyard frame is daylit and far brighter than the other two;
   without this the chapter reads as a different page. */
.b23-ch--bright .b23-ch-bg img{opacity:.78}
.b23-ch.is-in.b23-ch--bright .b23-ch-bg img{opacity:.86}
.b23-ch--bright .b23-ch-veil{background:
    linear-gradient(180deg,rgba(15,12,9,.86) 0%,rgba(15,12,9,.54) 26%,rgba(15,12,9,.58) 62%,rgba(15,12,9,.92) 100%),
    radial-gradient(ellipse 80% 80% at var(--veil-x,50%) 50%,rgba(15,12,9,.78) 0%,rgba(15,12,9,.4) 55%,rgba(15,12,9,.12) 86%)}

.b23-ch-grain{position:absolute;inset:-6%;z-index:1;pointer-events:none;opacity:.045;mix-blend-mode:soft-light;
  background-image:radial-gradient(rgba(255,255,255,.85) .55px,transparent .7px);background-size:4px 4px;
  animation:b23-grain 2.4s steps(2,end) infinite}

.b23-ch-inner{position:relative;z-index:2;width:min(620px,calc(100% - 96px));padding:clamp(80px,10vh,140px) 0}
.b23-ch--left  .b23-ch-inner{margin-left:clamp(78px,12vw,190px)}
.b23-ch--right .b23-ch-inner{margin-left:auto;margin-right:clamp(48px,9vw,140px)}
.b23-ch--centre .b23-ch-inner{margin:0 auto;text-align:center;width:min(680px,calc(100% - 96px))}

/* The numeral is set large and ghosted behind the copy rather than
   as a caption — it belongs to the photograph, not to the text. */
.b23-ch-numeral{
  position:absolute;z-index:-1;top:50%;left:50%;
  transform:translate(-50%,-50%);
  font-family:'EB Garamond',Georgia,serif;font-size:clamp(220px,34vw,460px);
  line-height:1;color:rgba(246,241,232,.045);pointer-events:none;user-select:none
}
.b23-ch--left .b23-ch-numeral{left:clamp(78px,12vw,190px);transform:translate(-18%,-50%)}
.b23-ch--right .b23-ch-numeral{left:auto;right:clamp(48px,9vw,140px);transform:translate(18%,-50%)}

/* 23 Boutique's own mark, in its own chapter. Their supplied source
   is a 1200x1200 raster with the wordmark floating in transparent
   padding; trimmed to its ink bounds here so the width below is the
   width you actually see. It is a partner's logo — do not restyle,
   recolour or distort it. White version, because every chapter is
   dark. There is no vector: their pack notes the source is a 200x200
   raster, so ask the designer for the original if we ever need it at
   signage size. */

.b23-ch-eyebrow{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:rgba(232,200,141,.78);margin:0 0 26px}
.b23-ch h2{
  font-family:'EB Garamond',Georgia,serif;
  font-size:clamp(34px,4.6vw,62px);font-weight:400;line-height:1.1;letter-spacing:-.02em;
  color:var(--limestone);margin:0 0 26px;text-wrap:balance
}
.b23-ch h2 em{font-style:italic;color:#ecd9b2;padding-bottom:.14em}
.b23-ch p{font-family:'EB Garamond',Georgia,serif;font-size:clamp(16px,1.5vw,19px);line-height:1.85;color:rgba(246,241,232,.74);margin:0 0 18px;max-width:46ch}
.b23-ch--centre p{margin-left:auto;margin-right:auto}
.b23-ch-stamp{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:rgba(232,200,141,.5);margin-top:34px}

/* Reveal. Fires once. Everything is transform + opacity. */
/* Gated on .b23-js: without the script nothing is ever hidden. */
.b23-js .b23-rise{opacity:0;transform:translate3d(0,30px,0)}
@media(prefers-reduced-motion:no-preference){
  .b23-js .b23-rise{transition:opacity 900ms var(--b23-ease),transform 900ms var(--b23-ease);transition-delay:var(--rise-delay,0ms)}
}
.b23-ch.is-in .b23-rise{opacity:1;transform:none}

/* The seam into daylight. The page has been underground for three
   screens; this is the surface. */
.b23-surface{position:relative;height:clamp(120px,18vh,220px);background:linear-gradient(180deg,var(--b23-vault),var(--limestone-light))}

@media(prefers-reduced-motion:reduce){
  .b23-ch-bg img{transform:none;opacity:1;transition:none}
  .b23-rise{opacity:1;transform:none}
  .b23-ch-grain{animation:none}
  .b23-thread-live{transform:scaleY(1)}
  .b23-thread-bead{display:none}
}

@media(max-width:900px){
  .b23-ch{min-height:92svh}
  .b23-ch-inner,.b23-ch--centre .b23-ch-inner{width:calc(100% - 48px);margin:0 24px;text-align:left}
  .b23-ch--centre p{margin-left:0;margin-right:0}
  .b23-ch--right .b23-ch-inner{margin-left:24px;margin-right:24px}
  .b23-ch-numeral,.b23-ch--left .b23-ch-numeral,.b23-ch--right .b23-ch-numeral{left:50%;right:auto;transform:translate(-50%,-50%);font-size:clamp(180px,52vw,300px)}
  .b23-thread{left:20px}
  .b23-ch--left .b23-ch-inner,.b23-ch--right .b23-ch-inner,.b23-ch--centre .b23-ch-inner{margin-left:46px;margin-right:24px;width:calc(100% - 70px)}
}

/* ─────────────────────────────────────────────────────────────
   PAGE FURNITURE
   Menu, packages, visiting. Moved out of the inline <style>
   when the page grew its own stylesheet.
   ───────────────────────────────────────────────────────────── */

.b23-sec{max-width:1280px;margin:0 auto;padding:clamp(76px,9vw,124px) var(--b23-gutter)}
/* The menu is a price list, so it wants a reading measure. Across
   the full 1280 the name and its price lost sight of each other. */
#menu{max-width:980px}
.b23-sec-head{max-width:620px;margin-bottom:56px}
.b23-sec-head h2{font-family:'EB Garamond',Georgia,serif;font-size:clamp(30px,4vw,46px);font-weight:400;color:var(--olive);line-height:1.15;margin-bottom:16px}
.b23-sec-head p{font-size:15px;color:var(--muted);line-height:1.8;font-weight:300}

/* Menu */
.b23-menu-group{margin-bottom:52px}
.b23-menu-group > h3{font-family:'EB Garamond',Georgia,serif;font-size:13px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--bronze);margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--travertine)}
.b23-row{display:grid;grid-template-columns:1fr auto;gap:12px 32px;align-items:baseline;padding:18px 0;border-bottom:1px solid rgba(216,198,166,.35)}
.b23-row:last-child{border-bottom:none}
.b23-row-name{font-family:'EB Garamond',Georgia,serif;font-size:21px;font-weight:400;color:var(--olive);line-height:1.25}
.b23-row-desc{grid-column:1/2;font-size:13.5px;color:var(--muted);line-height:1.7;font-weight:300;margin-top:6px;max-width:58ch}
.b23-row-price{font-size:13.5px;color:var(--olive);white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right}
.b23-row-price span{color:var(--muted)}
.b23-row-book{grid-column:1/-1;margin-top:10px}
.b23-row-book a{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze);text-decoration:none;border-bottom:1px solid rgba(169,124,69,.3);padding-bottom:3px;transition:border-color .3s,color .3s}
.b23-row-book a:hover{color:var(--olive);border-color:var(--olive)}
.b23-row-price a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;cursor:pointer;transition:color .2s var(--b23-ease),border-color .2s var(--b23-ease)}.b23-row-price a:hover{color:var(--bronze);border-color:currentColor}.b23-row-price a:focus-visible{outline:1px solid var(--bronze);outline-offset:3px}

/* Packages */
.b23-packs{background:#fff}
.b23-pack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.b23-pack{display:flex;flex-direction:column;padding:38px 32px 34px;background:var(--limestone-light);border-top:2px solid var(--bronze);transition:transform .4s var(--b23-ease),box-shadow .4s}
.b23-pack:hover{transform:translateY(-4px);box-shadow:0 14px 44px rgba(56,71,55,.09)}
.b23-pack-eyebrow{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--bronze);margin-bottom:18px}
.b23-pack h3{font-family:'EB Garamond',Georgia,serif;font-size:25px;font-weight:400;color:var(--olive);line-height:1.2;margin-bottom:14px}
.b23-pack > p{font-size:13.5px;color:var(--muted);line-height:1.75;font-weight:300;margin-bottom:22px}
.b23-pack ul{list-style:none;padding:0;margin:0 0 24px}
.b23-pack li{font-size:13.5px;color:var(--olive);line-height:1.6;padding:9px 0 9px 20px;position:relative;border-bottom:1px solid rgba(216,198,166,.4)}
.b23-pack li:last-child{border-bottom:none}
.b23-pack li::before{content:'';position:absolute;left:0;top:16px;width:6px;height:1px;background:var(--bronze)}
.b23-pack li em{font-style:italic;color:var(--muted)}
.b23-pack-foot{margin-top:auto;padding-top:20px;border-top:1px solid var(--travertine)}
.b23-pack-price{font-family:'EB Garamond',Georgia,serif;font-size:22px;color:var(--olive);display:block;margin-bottom:4px}
.b23-pack-note{font-size:12px;color:var(--muted);font-style:italic;line-height:1.6}

/* Visiting */
.b23-visit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.b23-visit-item{padding:26px 30px;border-left:2px solid var(--travertine)}
.b23-visit-item h3{font-family:'EB Garamond',Georgia,serif;font-size:19px;font-weight:400;color:var(--olive);margin-bottom:8px}
.b23-visit-item p{font-size:13.5px;color:var(--muted);line-height:1.75;font-weight:300}
.b23-visit-item a{color:var(--bronze);text-decoration:none;border-bottom:1px solid rgba(169,124,69,.3)}
.b23-visit-item a:hover{color:var(--olive);border-color:var(--olive)}

/* Guests band */
.b23-guests{background:var(--olive);color:var(--limestone);padding:clamp(72px,8vw,96px) var(--b23-gutter);text-align:center}
.b23-guests-inner{max-width:640px;margin:0 auto}
.b23-guests .eyebrow{color:rgba(246,241,232,.5)}
.b23-guests h2{font-family:'EB Garamond',Georgia,serif;font-size:clamp(28px,3.6vw,42px);font-weight:400;line-height:1.2;margin:14px 0 18px;color:var(--limestone)}
.b23-guests p{font-size:15px;color:rgba(246,241,232,.72);line-height:1.85;font-weight:300;margin-bottom:30px}

@media(max-width:900px){
  .b23-pack-grid{grid-template-columns:1fr}
  .b23-visit-grid{grid-template-columns:1fr}
  .b23-row{grid-template-columns:1fr}
  .b23-row-price{text-align:left;grid-column:1/-1;margin-top:2px}
}

/* Full-screen treatment book */
#menu{position:relative;max-width:none;margin:0;padding:0;background:#1b2119;perspective:1800px;overflow:hidden}
#menu [hidden]{display:none!important}
.b23-menu-cover,.b23-menu-group{box-sizing:border-box;min-height:100svh;padding:clamp(88px,12vw,160px) max(var(--b23-gutter),calc((100vw - 1120px)/2));margin:0!important;will-change:transform,opacity}
.b23-menu-cover{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;background:#405043 url('images/23b-maltese-tile-wild-olive.webp') center/cover no-repeat}
.b23-menu-cover::before{content:'';position:absolute;z-index:-1;inset:0;background:rgba(24,35,27,.5)}
.b23-menu-cover-lockup{display:flex;flex-direction:column;align-items:center;gap:clamp(12px,2vw,22px);width:min(390px,86vw);padding:clamp(30px,5vw,58px) clamp(24px,5vw,48px);text-align:center}
.b23-menu-cover-logo{width:clamp(120px,14vw,164px);height:auto;object-fit:contain;margin:0;filter:brightness(0) invert(1) drop-shadow(0 2px 5px rgba(0,0,0,.45))}
.b23-menu-cover-at{font-family:'EB Garamond',Georgia,serif;font-size:clamp(22px,3vw,32px);font-style:italic;line-height:1;color:#f6f1e8;text-shadow:0 2px 5px rgba(0,0,0,.5)}
.b23-menu-cover-hotel{width:clamp(150px,23vw,220px);height:auto;object-fit:contain;filter:drop-shadow(0 2px 5px rgba(0,0,0,.45))}
.b23-menu-cover-lockup p{margin:clamp(12px,2vw,22px) 0 0;font-family:'EB Garamond',Georgia,serif;font-size:clamp(19px,2.5vw,30px);font-weight:400;letter-spacing:.18em;text-transform:uppercase;line-height:1.15;color:#f6f1e8;text-shadow:0 2px 5px rgba(0,0,0,.5);transform:translateY(24px)}
.b23-menu-group{display:flex;flex-direction:column;justify-content:center;background:#eee6d7}
.b23-menu-group:nth-of-type(odd){background:#e5dac8}
.b23-menu-group > h3{width:min(760px,100%);font-size:12px;margin:0 0 36px}
.b23-menu-group .b23-row{width:min(760px,100%);padding:22px 0}
.b23-menu-group .b23-row-name{font-size:clamp(25px,3vw,36px)}
.b23-menu-group .b23-row-desc{font-size:clamp(14px,1.5vw,17px)}
.b23-menu-book-nav{position:absolute;z-index:4;display:flex;align-items:center;justify-content:space-between;left:max(var(--b23-gutter),calc((100vw - 1120px)/2));right:max(var(--b23-gutter),calc((100vw - 1120px)/2));bottom:30px;padding:10px 14px;color:#f6f1e8;background:rgba(20,30,23,.7);backdrop-filter:blur(4px)}
.b23-menu-turn{padding:4px 0;background:none;border:0;border-bottom:1px solid currentColor;font:inherit;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:inherit;cursor:pointer}
.b23-menu-turn:disabled{opacity:.35;cursor:default}
.b23-menu-book-counter{font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.b23-menu-page-preview{position:absolute!important;z-index:1;inset:0;display:flex!important;margin:0!important;pointer-events:none;backface-visibility:hidden}
.b23-menu-cover,.b23-menu-group{transform-style:preserve-3d;backface-visibility:hidden}
@media(max-width:700px){.b23-menu-cover,.b23-menu-group{min-height:92svh;padding:78px 30px}.b23-menu-cover-lockup{width:min(330px,86vw);padding:32px 24px}.b23-menu-cover-logo{width:116px}.b23-menu-book-nav{left:30px;right:30px;bottom:20px}.b23-menu-group .b23-row{padding:16px 0}}

/* Image-led occasions */
.b23-packs{background:#171d17;padding:clamp(76px,10vw,140px) 0;color:var(--limestone)}
.b23-occasion-intro{max-width:1120px;margin:0 auto clamp(36px,6vw,72px);padding:0 var(--b23-gutter)}
.b23-occasion-intro .eyebrow{color:#d9b780}.b23-occasion-intro h2{font-family:'EB Garamond',Georgia,serif;font-size:clamp(46px,6vw,84px);font-weight:400;line-height:1.02;margin:16px 0 0}.b23-occasion-intro h2 em{color:#d9b780}
.b23-occasion-rail{display:grid;grid-template-columns:repeat(3,1fr);min-height:560px}
.b23-occasion{position:relative;isolation:isolate;min-height:560px;padding:clamp(32px,4vw,64px);display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;color:var(--limestone);overflow:hidden}
.b23-occasion::before{content:'';position:absolute;z-index:-2;inset:0;background:center/cover no-repeat;transition:transform 900ms var(--b23-ease)}
.b23-occasion::after{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,rgba(11,16,12,.18),rgba(11,16,12,.82))}
.b23-occasion:hover::before{transform:scale(1.06)}
.b23-occasion>p{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#e6c990;margin:0 0 auto}.b23-occasion h3{font-family:'EB Garamond',Georgia,serif;font-size:clamp(44px,4.5vw,68px);font-weight:400;line-height:.9;margin:0 0 16px}.b23-occasion>span{font-family:'EB Garamond',Georgia,serif;font-size:18px;color:#e6c990;margin-bottom:28px}.b23-occasion a{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--limestone);text-decoration:none;padding-bottom:5px;border-bottom:1px solid rgba(246,241,232,.6)}
@media(max-width:800px){.b23-occasion-rail{grid-template-columns:1fr}.b23-occasion{min-height:440px}}

/* The menu is a volume in the page, not another full-bleed web panel. */
#menu{display:flex;flex-direction:column;align-items:center;padding:clamp(56px,8vw,112px) var(--b23-gutter);background:radial-gradient(circle at 50% 0,#f7f1e6,#ded0ba);overflow:visible}
.b23-menu-volume{position:relative;width:min(880px,100%);margin:0 auto;perspective:1800px;filter:drop-shadow(0 28px 38px rgba(50,39,25,.2))}
.b23-menu-volume::before{content:'';position:absolute;z-index:3;pointer-events:none;top:0;bottom:0;left:50%;width:2px;background:linear-gradient(90deg,rgba(91,69,42,.2),rgba(255,255,255,.5),rgba(91,69,42,.16));box-shadow:0 0 12px rgba(73,53,32,.16)}
.b23-menu-cover,.b23-menu-group{position:relative;width:100%;min-height:clamp(680px,86vw,930px);padding:clamp(64px,9vw,112px) clamp(42px,9vw,104px);border:1px solid rgba(107,82,49,.34);box-shadow:inset 0 0 0 12px rgba(255,255,255,.16)}
.b23-menu-cover::after{content:'';position:absolute;inset:14px;border:1px solid rgba(246,241,232,.48);pointer-events:none}
.b23-menu-cover-lockup{position:relative;z-index:1;width:min(420px,86%);gap:clamp(16px,2.2vw,26px)}
.b23-menu-cover-logo{width:clamp(132px,16vw,182px)}
.b23-menu-cover-hotel{width:clamp(180px,25vw,250px)}
.b23-menu-cover-lockup p{font-size:clamp(20px,2.8vw,32px);letter-spacing:.14em}
.b23-menu-group{justify-content:center;background:linear-gradient(105deg,#eee4d2 0%,#f8f2e7 49.6%,#d7c7ad 50%,#f5eddf 51.2%,#eee4d2 100%);box-shadow:inset 0 0 48px rgba(100,77,45,.09)}
.b23-menu-group:nth-of-type(odd){background:linear-gradient(105deg,#e8ddca 0%,#f7efe2 49.6%,#d3c3a8 50%,#f4ebdb 51.2%,#e8ddca 100%)}
.b23-menu-group > h3,.b23-menu-group .b23-row{width:min(610px,78%);position:relative;z-index:4}
.b23-menu-group > h3{margin-left:auto}
.b23-menu-group .b23-row{margin-left:auto}
.b23-menu-group:nth-of-type(odd)>h3,.b23-menu-group:nth-of-type(odd) .b23-row{margin-left:0;margin-right:auto}
.b23-menu-group .b23-row{padding:18px 0}
.b23-menu-book-nav{position:static;width:min(880px,100%);box-sizing:border-box;margin:18px auto 0;padding:0;background:transparent;color:var(--olive);backdrop-filter:none}
.b23-menu-turn{padding:12px 0;border-bottom:1px solid rgba(56,71,55,.55)}
.b23-menu-book-counter{letter-spacing:.22em}
.b23-menu-page-preview{width:100%;height:100%;box-sizing:border-box;box-shadow:inset 0 0 48px rgba(100,77,45,.09)}
@media(max-width:700px){
  #menu{padding:34px 16px 46px}
  .b23-menu-volume{width:100%}
  .b23-menu-volume::before{display:none}
  .b23-menu-cover,.b23-menu-group{min-height:calc(100svh - 110px);padding:60px 34px}
  .b23-menu-cover-logo{width:132px}
  .b23-menu-cover-hotel{width:190px}
  .b23-menu-group > h3,.b23-menu-group .b23-row,.b23-menu-group:nth-of-type(odd)>h3,.b23-menu-group:nth-of-type(odd) .b23-row{width:100%;margin-left:0;margin-right:0}
  .b23-menu-book-nav{width:100%;margin-top:12px}
}

/* The opening pages establish the descent before the treatment list begins. */
.b23-menu-story,.b23-menu-note{position:relative;box-sizing:border-box;width:100%;min-height:clamp(680px,86vw,930px);padding:clamp(64px,9vw,112px) clamp(42px,9vw,104px);border:1px solid rgba(107,82,49,.34);overflow:hidden}
.b23-menu-story,.b23-menu-note{will-change:transform,opacity;transform-style:preserve-3d;backface-visibility:hidden}
.b23-menu-story{display:flex;align-items:flex-end;isolation:isolate;color:var(--limestone);background:center/cover no-repeat}
.b23-menu-story::before{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgba(17,22,17,.8),rgba(17,22,17,.18) 72%)}
.b23-menu-story--street{background-image:url('images/23b-facade.jpg')}
.b23-menu-story--room{background-image:url('images/23b-hotel-arch.jpg')}
.b23-menu-story-copy{max-width:510px}
.b23-menu-story .eyebrow{color:#e6c990}
.b23-menu-story h2,.b23-menu-note h2{margin:18px 0 28px;font-family:'EB Garamond',Georgia,serif;font-weight:400;font-size:clamp(48px,6vw,82px);line-height:.98}
.b23-menu-story h2 em,.b23-menu-note h2 em{color:#e6c990}
.b23-menu-story p:not(.eyebrow),.b23-menu-note>p:last-child{font-size:clamp(17px,1.8vw,21px);line-height:1.65}
.b23-menu-story span{display:block;margin-top:36px;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#e6c990}
.b23-menu-note{display:flex;flex-direction:column;justify-content:center;background:linear-gradient(105deg,#eee4d2 0%,#f8f2e7 49.6%,#d7c7ad 50%,#f5eddf 51.2%,#eee4d2 100%);box-shadow:inset 0 0 48px rgba(100,77,45,.09);color:var(--olive)}
.b23-menu-note>p:last-child{max-width:480px;color:var(--muted)}
.b23-menu-feelings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:560px;margin:8px 0 34px;border:1px solid rgba(126,91,47,.3)}
.b23-menu-feelings span{padding:18px 20px;border:1px solid rgba(126,91,47,.16);font-family:'EB Garamond',Georgia,serif;font-size:clamp(19px,2vw,26px)}
@media(max-width:700px){.b23-menu-story,.b23-menu-note{min-height:calc(100svh - 110px);padding:60px 34px}.b23-menu-feelings{grid-template-columns:1fr}.b23-menu-story h2,.b23-menu-note h2{font-size:50px}}

/* The practical details are one final, tactile arrival rather than three generic bands. */
.b23-arrival{padding:clamp(78px,9vw,122px) var(--b23-gutter);background:#eee7db;color:var(--olive);border-top:1px solid rgba(126,91,47,.22)}
.b23-arrival-copy{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);column-gap:clamp(50px,8vw,130px);max-width:1120px;margin:0 auto;align-items:start}
.b23-arrival .eyebrow{grid-column:1;color:var(--bronze);margin:0 0 14px}.b23-arrival h2{grid-column:1;margin:0;font-family:'EB Garamond',Georgia,serif;font-size:clamp(46px,5vw,70px);font-weight:400;line-height:.98;color:var(--olive)}
.b23-arrival-intro{grid-column:2;grid-row:1 / span 2;max-width:560px;margin:0;font-size:clamp(19px,1.75vw,23px);line-height:1.5;color:var(--muted)}
.b23-arrival-details{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;margin-top:clamp(52px,7vw,82px);border-top:1px solid rgba(126,91,47,.36);border-bottom:1px solid rgba(126,91,47,.25)}
.b23-arrival-details>div{padding:20px 22px 24px 0;border-right:1px solid rgba(126,91,47,.22)}.b23-arrival-details>div+div{padding-left:22px}.b23-arrival-details>div:last-child{border-right:0}
.b23-arrival-details span{display:block;margin-bottom:10px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze)}.b23-arrival-details p{margin:0;font-size:15px;line-height:1.48;color:var(--muted)}
.b23-arrival-actions{grid-column:1 / -1;display:flex;align-items:center;gap:28px;margin-top:34px}.b23-arrival-actions .btn{background:var(--olive);border-color:var(--olive);color:var(--limestone)}.b23-arrival-actions>a:not(.btn){font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--olive);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:6px}.b23-arrival-reception{grid-column:1 / -1;margin:24px 0 0;font-size:14px;font-style:italic;color:var(--muted)}
@media(max-width:650px){.b23-arrival{padding:68px var(--b23-gutter)}.b23-arrival-copy{display:block}.b23-arrival h2{margin-bottom:28px}.b23-arrival-details{grid-template-columns:1fr;margin-top:46px}.b23-arrival-details>div,.b23-arrival-details>div+div{padding:18px 0;border-right:0;border-bottom:1px solid rgba(126,91,47,.22)}.b23-arrival-details>div:last-child{border-bottom:0}.b23-arrival-actions{align-items:flex-start;flex-direction:column;gap:18px}}

/* Treatment menu — portrait pages with a deliberate editorial rhythm. */
.b23-menu-spread,.b23-menu-index,.b23-menu-ingredients,.b23-menu-manifesto{position:relative;box-sizing:border-box;width:100%;min-height:clamp(680px,86vw,930px);overflow:hidden;border:1px solid rgba(107,82,49,.34);background:#f3ecdf;color:var(--olive);transform-style:preserve-3d;backface-visibility:hidden}
.b23-menu-spread--room{isolation:isolate;background:#171b16}.b23-menu-spread--room>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.92}.b23-menu-spread--room::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(12,18,13,.72))}.b23-menu-spread-caption{position:absolute;z-index:1;left:clamp(42px,9vw,104px);bottom:clamp(54px,8vw,100px);color:#f6f1e8}.b23-menu-spread-caption span,.b23-menu-ingredients span{font-size:10px;letter-spacing:.23em;text-transform:uppercase;color:#e6c990}.b23-menu-spread-caption p{max-width:360px;margin:16px 0 0;font-family:'EB Garamond',Georgia,serif;font-size:clamp(34px,4.5vw,60px);line-height:.98}
.b23-menu-index{padding:clamp(70px,10vw,120px) clamp(42px,9vw,104px);display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 20% 18%,#fbf6ec 0,transparent 32%),linear-gradient(105deg,#eee4d2 0%,#f8f2e7 49.6%,#d7c7ad 50%,#f5eddf 51.2%,#eee4d2 100%)}.b23-menu-index::after{content:'23\A FLORIANA';white-space:pre;position:absolute;right:clamp(36px,7vw,90px);bottom:clamp(48px,8vw,92px);font:10px/1.7 Arial,sans-serif;letter-spacing:.24em;color:rgba(126,91,47,.54);text-align:right}.b23-menu-index h2,.b23-menu-ingredients h2{margin:16px 0 34px;font-family:'EB Garamond',Georgia,serif;font-size:clamp(48px,6vw,80px);font-weight:400;line-height:.98}.b23-menu-index h2 em,.b23-menu-ingredients h2 em{color:var(--bronze)}.b23-menu-index>p:last-child{margin:30px 0 0;font-size:15px;color:var(--muted)}
.b23-menu-manifesto{display:flex;align-items:center;justify-content:center;padding:clamp(42px,7vw,90px);background:#fbf8f1;color:var(--olive);text-align:center}.b23-menu-manifesto::before{display:none}.b23-menu-manifesto h2{max-width:100%;position:relative;z-index:1;margin:0;font:400 clamp(72px,10vw,150px)/.9 'EB Garamond',Georgia,serif;letter-spacing:-.035em;color:var(--olive)}.b23-menu-manifesto h2 em{color:var(--bronze)}
.b23-menu-index-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(600px,100%);border-top:1px solid rgba(126,91,47,.36);border-left:1px solid rgba(126,91,47,.36);box-shadow:0 16px 30px rgba(80,60,32,.07)}.b23-menu-index-grid button{display:flex;align-items:center;gap:18px;padding:24px 22px;border:0;border-right:1px solid rgba(126,91,47,.36);border-bottom:1px solid rgba(126,91,47,.36);background:rgba(255,250,242,.32);color:var(--olive);font:400 clamp(20px,2.2vw,28px)/1.05 'EB Garamond',Georgia,serif;text-align:left;cursor:pointer;transition:background .2s,color .2s}.b23-menu-index-grid button:hover{background:var(--olive);color:#f6f1e8}.b23-menu-index-grid span{font:10px/1 Arial,sans-serif;letter-spacing:.15em;color:var(--bronze)}
.b23-menu-ingredients{display:grid;grid-template-columns:1fr 1fr;background:#1a231b;color:#f6f1e8}.b23-menu-ingredients-copy{position:relative;padding:clamp(70px,10vw,120px) clamp(42px,7vw,94px);display:flex;flex-direction:column;justify-content:center}.b23-menu-ingredients-copy::before{content:'';position:absolute;left:clamp(42px,7vw,94px);top:clamp(56px,8vw,88px);width:38px;height:38px;border:1px solid rgba(230,201,144,.65);border-radius:50%;box-shadow:inset 0 0 0 10px #1a231b}.b23-menu-ingredients .eyebrow{color:#e6c990;margin-top:42px}.b23-menu-ingredients-copy>p:not(.eyebrow){max-width:360px;margin:0 0 30px;font-size:18px;line-height:1.6;color:rgba(246,241,232,.82)}.b23-menu-ingredients-copy small{margin-top:36px;font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:rgba(230,201,144,.7)}.b23-menu-ingredients>img{width:100%;height:100%;min-height:100%;object-fit:cover}
.b23-menu-about .b23-menu-ingredients-copy::before{display:none}.b23-menu-about-logo{width:clamp(74px,9vw,108px);height:auto;margin:0 0 30px;filter:brightness(0) invert(1)}.b23-menu-about .eyebrow{margin-top:0}.b23-menu-about h2{font-size:clamp(46px,5.3vw,72px)}
.b23-menu-page-mark{display:none}
.b23-menu-terms,.b23-menu-farewell,.b23-menu-back-cover{position:relative;box-sizing:border-box;width:100%;min-height:clamp(680px,86vw,930px);overflow:hidden;border:1px solid rgba(107,82,49,.34);transform-style:preserve-3d;backface-visibility:hidden}
.b23-menu-terms{display:flex;align-items:center;justify-content:center;padding:clamp(70px,10vw,120px) clamp(42px,9vw,104px);background:linear-gradient(105deg,#eee4d2 0%,#f8f2e7 49.6%,#d7c7ad 50%,#f5eddf 51.2%,#eee4d2 100%);color:var(--olive)}
.b23-menu-terms-copy{width:min(630px,100%)}.b23-menu-terms h2,.b23-menu-farewell h2{margin:16px 0 38px;font-family:'EB Garamond',Georgia,serif;font-size:clamp(48px,6vw,80px);font-weight:400;line-height:.98}.b23-menu-terms h2 em,.b23-menu-farewell h2 em{color:var(--bronze)}
.b23-menu-terms-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid rgba(126,91,47,.36);border-left:1px solid rgba(126,91,47,.3)}.b23-menu-terms-grid>div{padding:18px 20px;border-right:1px solid rgba(126,91,47,.3);border-bottom:1px solid rgba(126,91,47,.3)}.b23-menu-terms-grid span{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--bronze)}.b23-menu-terms-grid p{margin:10px 0 0;font-size:14px;line-height:1.45;color:var(--muted)}.b23-menu-terms-note{margin:20px 0 0;font-size:13px;font-style:italic;color:var(--muted)}
.b23-menu-farewell{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;padding:0;background:#1a231b;color:#f6f1e8;text-align:left}.b23-menu-farewell::before{content:'';min-height:clamp(680px,86vw,930px);background:url('images/23b-farewell-treatment.jpeg') center/cover no-repeat}.b23-menu-farewell-copy{display:flex;padding:clamp(70px,10vw,120px) clamp(42px,7vw,94px);max-width:460px;justify-content:center;flex-direction:column}.b23-menu-farewell .eyebrow{color:#e6c990}.b23-menu-farewell h2{color:#f6f1e8}.b23-menu-farewell-copy>p:not(.eyebrow){margin:0 0 32px;font-size:18px;line-height:1.6;color:rgba(246,241,232,.82)}.b23-menu-farewell .btn{align-self:flex-start;background:#f6f1e8;border-color:#f6f1e8;color:var(--olive)}.b23-menu-farewell-link{align-self:flex-start;margin-top:22px;padding-bottom:5px;border-bottom:1px solid rgba(246,241,232,.65);color:#f6f1e8;font-size:10px;letter-spacing:.18em;text-decoration:none;text-transform:uppercase}
.b23-menu-group.b23-menu-group--enhancements{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,.86fr);grid-template-rows:auto 1fr;align-items:center;padding:clamp(64px,9vw,108px);background:#1a231b!important;color:#f6f1e8}.b23-menu-group.b23-menu-group--enhancements::after{content:'';position:absolute;inset:14px;border:1px solid rgba(230,201,144,.33);pointer-events:none}.b23-enhancements-intro{position:relative;z-index:1;max-width:420px}.b23-enhancements-intro .eyebrow{color:#e6c990}.b23-enhancements-intro h3{width:auto!important;max-width:none!important;margin:14px 0 20px!important;font:400 clamp(42px,5vw,70px)/.96 'EB Garamond',Georgia,serif!important;color:#f6f1e8}.b23-enhancements-intro h3 em{color:#e6c990}.b23-enhancements-intro>p:last-child{max-width:340px;margin:0;color:rgba(246,241,232,.7);font-size:16px;line-height:1.55}.b23-enhancements-list{position:relative;z-index:1;grid-column:1;display:flex;flex-direction:column;margin-top:36px;border-top:1px solid rgba(230,201,144,.34)}.b23-enhancements-list>div{display:grid;grid-template-columns:38px 1fr auto auto;gap:16px;align-items:baseline;padding:18px 0;border-bottom:1px solid rgba(230,201,144,.24)}.b23-enhancements-list span,.b23-enhancements-list small{font-size:10px;letter-spacing:.16em;color:#e6c990}.b23-enhancements-list p{margin:0;font:400 27px/1.1 'EB Garamond',Georgia,serif}.b23-enhancements-list strong{font:400 17px/1 'EB Garamond',Georgia,serif;color:#e6c990}.b23-menu-group.b23-menu-group--enhancements .b23-menu-page-image{z-index:1;grid-column:2;grid-row:1 / span 2;position:relative;top:auto;right:auto;width:auto;height:72%;min-height:420px;margin-left:clamp(30px,5vw,72px);transform:none;border-color:rgba(230,201,144,.4);box-shadow:none}
.b23-menu-back-cover{display:flex;align-items:center;justify-content:center;background:#344738 url('images/23b-maltese-tile-wild-olive.webp') center/cover no-repeat;isolation:isolate}.b23-menu-back-cover::before{position:absolute;z-index:-1;inset:0;background:rgba(20,31,23,.68);content:''}.b23-menu-back-cover-lockup{display:flex;flex-direction:column;align-items:center;text-align:center;color:#f6f1e8}.b23-menu-back-cover-lockup img{width:clamp(94px,12vw,138px);height:auto;margin-bottom:36px;filter:brightness(0) invert(1) drop-shadow(0 2px 5px rgba(0,0,0,.35))}.b23-menu-back-cover-lockup p{margin:0 0 18px;font-size:11px;letter-spacing:.2em;text-transform:uppercase}.b23-menu-back-cover-lockup a{margin:5px 0;color:#f6f1e8;font-size:14px;text-decoration:none}
.b23-menu-group{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:clamp(680px,86vw,930px);padding-right:42%;overflow:hidden}.b23-menu-group>h3,.b23-menu-group .b23-row{width:82%;max-width:480px;margin-left:0!important;margin-right:auto!important}.b23-menu-group .b23-row{padding:15px 0}.b23-menu-page-image{position:absolute;right:clamp(32px,5vw,74px);top:50%;width:31%;height:64%;margin:0;transform:translateY(-50%);overflow:hidden;border:1px solid rgba(126,91,47,.28);box-shadow:0 16px 34px rgba(66,49,25,.16)}.b23-menu-page-image img{width:100%;height:100%;object-fit:cover}.b23-menu-page-image--together::after{content:'A treatment for two';position:absolute;inset:auto 0 0;padding:14px 16px;background:rgba(20,30,23,.74);color:#f6f1e8;font-size:10px;letter-spacing:.16em;text-transform:uppercase}
.b23-packs{padding-top:clamp(96px,12vw,160px)}.b23-occasion-intro{max-width:760px;text-align:center}.b23-occasion-intro h2{font-size:clamp(40px,5vw,68px)}
.b23-occasion--stay::before{background-image:url('images/treatment-return.jpg');background-position:center}.b23-occasion--together::before{background-image:url('images/23b-couples-resting.jpeg');background-position:67% center}.b23-occasion--hour::before{background-image:url('images/treatment-overhead.jpg');background-position:center}
@media(max-width:700px){.b23-menu-spread,.b23-menu-index,.b23-menu-ingredients,.b23-menu-manifesto,.b23-menu-terms,.b23-menu-farewell,.b23-menu-back-cover{min-height:calc(100svh - 110px)}.b23-menu-index,.b23-menu-terms,.b23-menu-farewell{padding:60px 34px}.b23-menu-index-grid,.b23-menu-terms-grid{grid-template-columns:1fr}.b23-menu-ingredients{grid-template-columns:1fr}.b23-menu-ingredients>img{display:none}.b23-menu-terms-grid>div{padding:16px 0;border-right:0}.b23-menu-group{padding-right:34px;padding-bottom:38vh;justify-content:flex-start;padding-top:60px}.b23-menu-group>h3,.b23-menu-group .b23-row{width:100%;max-width:none}.b23-menu-page-image{top:auto;bottom:30px;right:34px;left:34px;width:auto;height:28%;transform:none}.b23-menu-page-mark{right:18px;top:18px}}

/* Cover lock-up: each mark is given enough air to read as a real title page. */
.b23-menu-cover-lockup{width:min(540px,88%);transform:translateY(8px)}
.b23-menu-cover-logo,.b23-menu-cover-hotel{transform:none}
.b23-menu-cover-lockup p{position:relative;white-space:nowrap;margin-top:clamp(22px,3vw,34px);padding:15px 0 0;font-size:clamp(20px,2.65vw,34px);font-weight:500;letter-spacing:.18em;color:#fffaf0;text-shadow:0 2px 12px rgba(15,18,12,.72),0 0 1px rgba(255,255,255,.8);transform:none}
.b23-menu-cover-lockup p::before{content:'';position:absolute;top:0;left:50%;width:70px;height:1px;transform:translateX(-50%);background:rgba(255,250,240,.8);box-shadow:0 1px 8px rgba(15,18,12,.55)}
.b23-menu-cover.b23-menu-page-arriving>.b23-menu-cover-lockup{animation:none}.b23-menu-cover.b23-menu-page-arriving .b23-menu-cover-logo,.b23-menu-cover.b23-menu-page-arriving .b23-menu-cover-at,.b23-menu-cover.b23-menu-page-arriving .b23-menu-cover-hotel,.b23-menu-cover.b23-menu-page-arriving .b23-menu-cover-lockup p{animation:b23-cover-lockup-arrive 520ms cubic-bezier(.22,1,.36,1) both}.b23-menu-cover.b23-menu-page-arriving .b23-menu-cover-at{animation-delay:55ms}.b23-menu-cover.b23-menu-page-arriving .b23-menu-cover-hotel{animation-delay:105ms}.b23-menu-cover.b23-menu-page-arriving .b23-menu-cover-lockup p{animation-delay:155ms}@keyframes b23-cover-lockup-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.b23-menu-cover.b23-menu-page-arriving .b23-menu-cover-logo,.b23-menu-cover.b23-menu-page-arriving .b23-menu-cover-at,.b23-menu-cover.b23-menu-page-arriving .b23-menu-cover-hotel,.b23-menu-cover.b23-menu-page-arriving .b23-menu-cover-lockup p{animation:none}}
@media(max-width:700px){.b23-menu-cover-lockup{width:min(420px,90%);transform:translateY(0)}.b23-menu-cover-lockup p{font-size:18px;letter-spacing:.13em}}
@media(max-width:700px){.b23-menu-farewell{grid-template-columns:1fr}.b23-menu-farewell::before{min-height:38vh;background-position:center}.b23-menu-farewell-copy{padding:52px 34px}.b23-menu-group.b23-menu-group--enhancements{display:flex;padding:60px 34px}.b23-menu-group.b23-menu-group--enhancements .b23-menu-page-image{position:absolute;top:auto;right:34px;bottom:30px;left:34px;width:auto;height:27%;min-height:0;margin:0}.b23-enhancements-list{width:100%;margin-top:28px}.b23-enhancements-list>div{grid-template-columns:28px 1fr auto;gap:10px}.b23-enhancements-list small{display:none}.b23-enhancements-list p{font-size:23px}}

/* This is a stack of complete leaves, not a facing-page spread. */
.b23-menu-volume::before{display:none}
.b23-menu-group,.b23-menu-group:nth-of-type(odd){background:#f3ecdf;box-shadow:inset 0 0 48px rgba(100,77,45,.08)}
.b23-menu-note,.b23-menu-index,.b23-menu-terms{background:#f3ecdf}
.b23-menu-index{background:radial-gradient(circle at 20% 18%,#fbf6ec 0,transparent 32%),#f3ecdf}

/* Every leaf has one physical size, so the book never jumps between turns. */
.b23-menu-volume{--b23-menu-page-height:clamp(680px,86vw,930px)}
.b23-menu-volume [data-b23-menu-page]{height:var(--b23-menu-page-height);min-height:var(--b23-menu-page-height)!important}
.b23-menu-page-underleaf{position:absolute!important;z-index:1;inset:0;margin:0!important;pointer-events:none;backface-visibility:hidden}
.b23-menu-watermark{position:absolute;z-index:6;top:clamp(22px,3vw,38px);right:clamp(22px,3vw,38px);width:clamp(34px,4.2vw,52px);height:auto;pointer-events:none;opacity:.15;mix-blend-mode:multiply}.b23-menu-ingredients .b23-menu-watermark,.b23-menu-back-cover .b23-menu-watermark{filter:brightness(0) invert(1);mix-blend-mode:screen;opacity:.18}
.b23-menu-manifesto{flex-direction:column;gap:clamp(24px,3vw,38px);padding:clamp(40px,6vw,72px)}.b23-menu-manifesto-logo{width:clamp(58px,6vw,76px);height:auto;margin:0;mix-blend-mode:multiply}.b23-menu-manifesto h2{font-size:clamp(54px,7.2vw,108px);line-height:.98;letter-spacing:-.025em}
@media(max-width:700px){.b23-menu-volume{--b23-menu-page-height:calc(100svh - 110px)}.b23-menu-manifesto-logo{width:66px}.b23-menu-manifesto h2{font-size:clamp(48px,12vw,72px)}}

/* The index is the menu's small moment of discovery, not an admin table. */
.b23-menu-index{isolation:isolate;background:#f3ecdf}.b23-menu-index::before{content:'';position:absolute;z-index:0;inset:0;background:linear-gradient(90deg,rgba(248,243,233,.95),rgba(248,243,233,.68)),url('images/23b-maltese-tile-wild-olive.webp') center/cover no-repeat;opacity:.58}.b23-menu-index>*{position:relative;z-index:1}.b23-menu-index h2{margin-bottom:42px}.b23-menu-index-grid{border:0;gap:10px;box-shadow:none}.b23-menu-index-grid button{min-height:104px;padding:24px 28px;border:1px solid rgba(126,91,47,.28);background:rgba(255,250,242,.66);box-shadow:0 12px 22px rgba(80,60,32,.06);transition:transform .28s var(--b23-ease),background .28s var(--b23-ease),color .28s var(--b23-ease)}.b23-menu-index-grid button:hover{transform:translateY(-4px);background:var(--olive);color:#f6f1e8}.b23-menu-index>p:last-child{margin-top:36px;font-style:italic}
.b23-menu-index::after{display:none}
.b23-menu-about-copy em,.b23-menu-farewell-copy>p em{color:#e6c990;font-style:italic}.b23-menu-about-copy{font-size:clamp(25px,2.65vw,36px)!important;line-height:1.42!important}.b23-menu-about-copy::first-line{letter-spacing:.01em}
.b23-menu-farewell::before{background-position:42% center}.b23-menu-farewell-copy>p:not(.eyebrow){font-size:clamp(21px,2.15vw,28px);line-height:1.42;letter-spacing:-.01em}.b23-menu-farewell-copy>p:not(.eyebrow)::first-line{font-size:1.08em}.b23-menu-back-cover-contact{gap:4px;min-width:260px}.b23-menu-back-cover-contact a{font:400 19px/1.35 'EB Garamond',Georgia,serif;letter-spacing:.015em}.b23-menu-back-cover-contact a:first-child{margin-bottom:11px;font-size:10px;letter-spacing:.22em;text-transform:uppercase}
@media(max-width:700px){.b23-menu-index-grid{gap:8px}.b23-menu-index-grid button{min-height:0;padding:18px}.b23-menu-farewell::before{background-position:42% center}.b23-menu-back-cover-contact a{font-size:17px}}

/* A quieter closing sequence: keep the typography and materials doing the work. */
.b23-menu-about .b23-menu-ingredients-copy{align-items:center;padding:clamp(56px,7vw,90px) clamp(38px,5vw,64px);text-align:center}.b23-menu-about-logo{width:clamp(120px,14vw,172px);margin:0 0 clamp(42px,6vw,72px)}.b23-menu-about-copy{max-width:450px!important;margin:0!important;font:400 clamp(22px,2.25vw,30px)/1.43 'EB Garamond',Georgia,serif!important;letter-spacing:-.01em;color:rgba(246,241,232,.92)!important}.b23-menu-about-hotel-mark{width:clamp(112px,13vw,156px);height:auto;margin-top:clamp(46px,7vw,80px);opacity:.9}.b23-menu-about .b23-menu-ingredients-copy::before{display:none}
.b23-menu-group.b23-menu-group--enhancements{grid-template-columns:minmax(0,1fr) minmax(250px,.82fr);grid-template-rows:auto 1fr;padding:clamp(70px,9vw,112px);background:#f6f0e5!important;color:var(--olive)}.b23-menu-group.b23-menu-group--enhancements::after{display:none}.b23-enhancements-intro .eyebrow{color:var(--bronze)}.b23-enhancements-intro h3{margin:14px 0 0!important;font-size:clamp(46px,5.1vw,72px)!important;color:var(--olive)}.b23-enhancements-intro h3 em{color:var(--bronze)}.b23-enhancements-intro>p:last-child{margin-top:22px;color:var(--muted);font-size:16px}.b23-enhancements-list{margin-top:40px;border-color:rgba(126,91,47,.36)}.b23-enhancements-list>div{grid-template-columns:34px 1fr auto auto;padding:17px 0;border-color:rgba(126,91,47,.22)}.b23-enhancements-list span,.b23-enhancements-list small{color:var(--bronze)}.b23-enhancements-list p{font-size:28px;color:var(--olive)}.b23-enhancements-list strong{color:var(--olive)}.b23-menu-group.b23-menu-group--enhancements .b23-menu-page-image{height:76%;min-height:440px;border:0;box-shadow:none}.b23-menu-group.b23-menu-group--enhancements .b23-menu-page-image img{object-position:center}
.b23-menu-terms{background:#fbf8f1;padding:clamp(70px,10vw,124px) clamp(42px,9vw,104px)}.b23-menu-terms-copy{width:min(720px,100%)}.b23-menu-terms h2{margin:14px 0 42px;font-size:clamp(54px,6vw,88px)}.b23-menu-terms-grid{border:0;border-top:1px solid rgba(126,91,47,.36);border-bottom:1px solid rgba(126,91,47,.36)}.b23-menu-terms-grid>div{padding:23px 20px;border:0;border-right:1px solid rgba(126,91,47,.22)}.b23-menu-terms-grid>div:last-child{border-right:0}.b23-menu-terms-grid p{margin-top:12px;font-size:16px;line-height:1.48}.b23-menu-terms-link{display:inline-block;margin-top:32px;padding-bottom:6px;border-bottom:1px solid currentColor;color:var(--olive);font-size:11px;letter-spacing:.16em;text-decoration:none;text-transform:uppercase}.b23-menu-terms-link:hover{color:var(--bronze)}
.b23-menu-manifesto{justify-content:center;gap:0;padding:clamp(56px,8vw,112px)}.b23-menu-manifesto-logo{position:absolute;left:50%;top:50%;width:clamp(190px,24vw,320px);margin:0;opacity:.075;transform:translate(-50%,-50%);pointer-events:none}.b23-menu-manifesto h2{position:relative;max-width:min(86%,920px);font-size:clamp(50px,6.6vw,98px);line-height:1.02}.b23-menu-terms-copy{width:min(860px,100%)}.b23-menu-terms h2{margin-bottom:52px}.b23-menu-terms-grid>div{padding:30px 30px 34px}.b23-menu-terms-grid p{font-size:clamp(16px,1.65vw,20px);line-height:1.6}.b23-menu-terms-link{margin-top:38px}
.b23-menu-manifesto h2{display:inline-flex;align-items:baseline;justify-content:center;white-space:nowrap}.b23-manifesto-sun{position:relative;z-index:2;color:var(--bronze);letter-spacing:-.07em}.b23-menu-manifesto-logo{left:calc(50% + clamp(16px,2vw,30px))}.b23-manifesto-sun::after{content:'';position:absolute;z-index:-1;left:50%;top:52%;width:.62em;height:.62em;border-radius:50%;background:rgba(183,132,74,.18);transform:translate(-50%,-50%)}
.b23-menu-group--face{padding-top:clamp(84px,10vw,132px);padding-bottom:clamp(84px,10vw,132px)}.b23-menu-group--face .b23-row{max-width:530px}.b23-menu-group--face .b23-menu-page-image{width:35%;height:72%}.b23-menu-group--enhancements{padding-top:clamp(78px,10vw,128px)!important;padding-bottom:clamp(78px,10vw,128px)!important}.b23-menu-group--enhancements .b23-enhancements-intro{max-width:490px}.b23-menu-group--enhancements .b23-enhancements-list{margin-top:52px}.b23-menu-group--enhancements .b23-menu-page-image{height:82%!important;min-height:0!important}
@keyframes b23-menu-content-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.b23-menu-page-arriving> :not(.b23-menu-watermark){animation:b23-menu-content-arrive 760ms cubic-bezier(.22,1,.36,1) both}.b23-menu-page-arriving> :nth-child(2){animation-delay:90ms}.b23-menu-page-arriving> :nth-child(3){animation-delay:180ms}.b23-menu-page-arriving> :nth-child(4){animation-delay:270ms}@media(prefers-reduced-motion:reduce){.b23-menu-page-arriving> :not(.b23-menu-watermark){animation:none}}
.b23-menu-page-arriving>.b23-menu-page-image{animation:none!important;opacity:1!important;transform:translateY(-50%)!important}.b23-menu-group--enhancements.b23-menu-page-arriving>.b23-menu-page-image{transform:none!important}
.b23-menu-farewell{grid-template-columns:minmax(260px,.72fr) minmax(0,1fr);background:#f4eddf;color:var(--olive)}.b23-menu-farewell::before{min-height:clamp(680px,86vw,930px);background-position:center}.b23-menu-farewell-copy{max-width:540px;padding:clamp(72px,10vw,124px);}.b23-menu-farewell .eyebrow{color:var(--bronze)}.b23-menu-farewell h2{margin:16px 0 28px;color:var(--olive);font-size:clamp(52px,6.2vw,88px)}.b23-menu-farewell-copy>p:not(.eyebrow){max-width:390px;margin:0 0 38px;font-size:20px;line-height:1.48;color:var(--muted)}.b23-menu-farewell .btn{background:var(--olive);border-color:var(--olive);color:#f6f1e8}.b23-menu-farewell-link{border-color:rgba(45,67,48,.65);color:var(--olive)}
.b23-menu-back-cover-lockup{width:100%;height:100%;min-height:clamp(680px,86vw,930px);position:relative}.b23-menu-back-cover-lockup>img{position:absolute;top:50%;left:50%;width:clamp(124px,15vw,180px);margin:0;transform:translate(-50%,-50%);}.b23-menu-back-cover-contact{position:absolute;bottom:clamp(54px,7vw,86px);left:50%;display:flex;flex-direction:column;align-items:center;transform:translateX(-50%)}.b23-menu-back-cover-lockup a{margin:4px 0;color:#f6f1e8;font-size:14px;text-decoration:none}
.b23-menu-back-cover-contact{gap:0;min-width:0;padding:0;border:0;background:none}.b23-menu-back-cover-contact a,.b23-menu-back-cover-contact a:first-child{margin:0;color:rgba(246,241,232,.9);font:600 clamp(11px,.95vw,13px)/1.08 'EB Garamond',Georgia,serif;letter-spacing:.13em;text-transform:uppercase;text-shadow:0 1px 3px rgba(0,0,0,.3);font-feature-settings:'kern' 1,'liga' 1}
.b23-menu-back-cover-contact a{position:relative;z-index:2;pointer-events:auto;cursor:pointer}.b23-menu-back-cover-contact a:hover{color:#fff}
.b23-menu-farewell-copy>p em{display:inline-block;color:var(--bronze);font-size:1.1em;font-weight:500;white-space:nowrap}
.b23-menu-terms-grid{gap:0;border-top:1px solid rgba(126,91,47,.38);border-bottom:1px solid rgba(126,91,47,.38);background:none;counter-reset:terms}.b23-menu-terms-grid>div{position:relative;padding:34px 32px 38px;border:0;border-left:1px solid rgba(126,91,47,.25);background:transparent;counter-increment:terms}.b23-menu-terms-grid>div:first-child{border-left:0}.b23-menu-terms-grid>div::before{content:'0' counter(terms);display:block;margin-bottom:28px;color:var(--bronze);font:11px/1 'EB Garamond',Georgia,serif;letter-spacing:.2em}.b23-menu-terms-grid span{font-size:10px;letter-spacing:.2em}.b23-menu-terms-grid p{margin-top:16px;font-size:clamp(16px,1.5vw,18px);line-height:1.62}
.b23-menu-index-grid{width:min(680px,100%);gap:0;border-top:1px solid rgba(126,91,47,.38);border-bottom:1px solid rgba(126,91,47,.38);background:transparent}.b23-menu-index-grid button{min-height:118px;padding:28px 12px;border:0!important;border-bottom:1px solid rgba(126,91,47,.28)!important;background:transparent;box-shadow:none;font-size:clamp(22px,2.3vw,30px);transition:color .25s var(--b23-ease),padding .25s var(--b23-ease)}.b23-menu-index-grid button:nth-last-child(-n+2){border-bottom:0!important}.b23-menu-index-grid button:nth-child(odd){border-right:1px solid rgba(126,91,47,.28)!important}.b23-menu-index-grid button:hover{padding-left:22px;transform:none;background:transparent;color:var(--bronze)}.b23-menu-index-grid span{font:10px/1 'EB Garamond',Georgia,serif;letter-spacing:.2em}
.b23-menu-index-grid{display:flex;flex-direction:column;width:min(540px,100%);border-bottom:0}.b23-menu-index-grid button,.b23-menu-index-grid button:nth-child(odd){min-height:78px;padding:18px 0;border:0!important;border-bottom:1px solid rgba(126,91,47,.28)!important;background:transparent}.b23-menu-index-grid button:last-child{border-bottom:0!important}.b23-menu-index-grid button:hover{padding-left:12px}.b23-menu-index-grid span{width:42px;color:var(--bronze)}
.b23-menu-chapter{position:relative;display:flex;align-items:flex-end;min-height:clamp(680px,86vw,930px);padding:clamp(72px,10vw,124px);overflow:hidden;background:#1d2c22 center/cover no-repeat;color:#f6f1e8}.b23-menu-chapter::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,21,15,.88) 0%,rgba(12,22,16,.61) 42%,rgba(10,17,12,.16) 74%),linear-gradient(0deg,rgba(9,17,12,.5),transparent 55%)}.b23-menu-chapter::after{content:'';position:absolute;inset:16px;border:1px solid rgba(246,241,232,.32);pointer-events:none}.b23-menu-chapter-copy{position:relative;z-index:1;width:min(520px,100%);padding:clamp(24px,3vw,42px) 0;text-shadow:0 2px 18px rgba(0,0,0,.46)}.b23-menu-chapter .eyebrow{margin:0 0 20px;color:#efd49f;text-shadow:none}.b23-menu-chapter h2{margin:0 0 26px;font:400 clamp(56px,7vw,96px)/.94 'EB Garamond',Georgia,serif;letter-spacing:-.025em}.b23-menu-chapter h2 em{color:#efd49f}.b23-menu-chapter-copy>p:last-child{max-width:410px;margin:0;color:rgba(255,252,245,.9);font-size:clamp(18px,1.7vw,22px);line-height:1.5}.b23-menu-chapter--signature{background-image:url('images/treatment-return.jpg');background-position:center}.b23-menu-chapter--massage{background-image:url('images/treatment-overhead.jpg');background-position:center}.b23-menu-chapter--together{background-image:url('images/23b-couples-massage-v2.webp');background-position:center 42%}
@media(max-width:700px){.b23-menu-chapter{min-height:calc(100svh - 110px);padding:60px 34px}.b23-menu-chapter h2{font-size:clamp(48px,12vw,68px)}}
@media(max-width:700px){.b23-menu-about .b23-menu-ingredients-copy{padding:54px 34px}.b23-menu-about-logo{width:120px;margin-bottom:38px}.b23-menu-about-copy{font-size:25px!important}.b23-menu-about-hotel-mark{width:116px;margin-top:48px}.b23-menu-group.b23-menu-group--enhancements{display:flex;padding:60px 34px}.b23-menu-group.b23-menu-group--enhancements .b23-menu-page-image{height:28%;min-height:0}.b23-enhancements-list{margin-top:30px}.b23-menu-terms-grid{grid-template-columns:1fr}.b23-menu-terms-grid>div{padding:18px 0;border-right:0;border-bottom:1px solid rgba(126,91,47,.22)}.b23-menu-terms-grid>div:last-child{border-bottom:0}.b23-menu-farewell{grid-template-columns:1fr}.b23-menu-farewell::before{min-height:34vh}.b23-menu-farewell-copy{padding:54px 34px}.b23-menu-back-cover-lockup{min-height:calc(100svh - 110px)}}
@media(max-width:700px){.b23-menu-manifesto-logo{width:150px}.b23-menu-manifesto h2{max-width:94%;font-size:clamp(46px,11vw,68px)}.b23-menu-terms-grid>div{padding:18px 0}.b23-menu-terms-grid p{font-size:16px;line-height:1.5}.b23-menu-group--face .b23-menu-page-image{width:auto;height:32%}}
@media(max-width:700px){.b23-menu-manifesto-logo{left:calc(50% + 15px)}.b23-menu-manifesto h2{font-size:clamp(42px,10vw,60px)}}
.b23-menu-manifesto> .b23-menu-manifesto-logo{display:none}.b23-menu-manifesto h2{font-size:clamp(48px,6vw,88px);letter-spacing:-.02em}.b23-manifesto-sun{display:inline-block;isolation:isolate;color:var(--bronze);letter-spacing:-.04em}.b23-manifesto-sun::after{display:none}.b23-manifesto-sun .b23-menu-manifesto-logo{position:absolute;z-index:-1;left:50%;top:calc(50% - 2.45em);width:7.25em;height:auto;margin:0;opacity:.11;transform:translateX(-50%);pointer-events:none;clip-path:inset(0 0 38% 0);mix-blend-mode:multiply}
@media(max-width:700px){.b23-menu-manifesto h2{font-size:clamp(40px,9.4vw,56px)}.b23-manifesto-sun .b23-menu-manifesto-logo{width:7.25em}}
.b23-manifesto-sun{width:.4em;height:.4em;margin:0 .045em 0 -.02em;transform:translateY(.02em)}.b23-manifesto-sun .b23-menu-manifesto-logo{z-index:1;opacity:.075}.b23-manifesto-actual-sun{position:absolute;z-index:2;inset:0;overflow:hidden;border-radius:50%;background:var(--bronze)}.b23-manifesto-actual-sun img{position:absolute;left:50%;top:-1.44em;width:4.82em;max-width:none;height:auto;transform:translateX(-50%)}
.b23-manifesto-return{transform:translateX(-21px)}.b23-manifesto-yourself{display:inline-block;transform:translateX(4px)}
.b23-menu-chapter--rituals{background-image:url('images/Screenshot 2026-09-24 at 17.28.53.png');background-position:center}
.b23-menu-cover-index{margin-top:8px;padding:0;border:0;border-bottom:1px solid rgba(246,241,232,.75);background:none;color:#f6f1e8;font:600 10px/1.3 'EB Garamond',Georgia,serif;letter-spacing:.2em;text-transform:uppercase;cursor:pointer}.b23-menu-cover-index:hover,.b23-menu-cover-index:focus-visible{color:#efd49f;border-color:#efd49f}.b23-menu-cover-index:focus-visible{outline:1px solid #efd49f;outline-offset:5px}.b23-menu-index-note{margin:34px 0 0!important;padding-top:20px;border-top:1px solid rgba(126,91,47,.28);color:var(--muted)!important;font:400 18px/1.35 'EB Garamond',Georgia,serif!important;letter-spacing:.01em}.b23-menu-index-note em{color:var(--bronze);font-size:1.15em}.b23-row-price a{display:inline-block;padding:7px 0}.b23-occasion--together::before{background-position:67% center}@media(max-width:800px){.b23-occasion--together::before{background-position:62% center}}@media(max-width:700px){.b23-menu-index-note{margin-top:28px!important;padding-top:16px;font-size:17px!important}}
/* On a phone the menu reads as a quiet vertical catalogue, not a desktop flipbook. */
#menu{padding:0 0 46px}.b23-menu-volume--scrolling{filter:none}.b23-menu-volume--scrolling [data-b23-menu-page]{height:auto!important;min-height:calc(100svh - 104px)!important;scroll-snap-align:start;scroll-snap-stop:always}.b23-menu-volume--scrolling .b23-menu-cover{min-height:72svh!important;padding:54px 28px!important}.b23-menu-volume--scrolling .b23-menu-manifesto{min-height:58svh!important;padding:58px 28px!important}.b23-menu-volume--scrolling .b23-menu-index{min-height:0!important;padding:58px 28px!important}.b23-menu-volume--scrolling .b23-menu-chapter{min-height:64svh!important;padding:58px 28px!important}.b23-menu-volume--scrolling .b23-menu-group{display:block;min-height:calc(100svh - 104px)!important;padding:34px 28px 0!important}.b23-menu-volume--scrolling .b23-menu-group>h3,.b23-menu-volume--scrolling .b23-menu-group .b23-row{width:100%;max-width:none}.b23-menu-volume--scrolling .b23-menu-group .b23-row{padding:11px 0}.b23-menu-volume--scrolling .b23-menu-group .b23-row-name{font-size:clamp(24px,4vw,34px)}.b23-menu-volume--scrolling .b23-menu-group .b23-row-desc{margin-top:10px;font-size:15px;line-height:1.45}.b23-menu-volume--scrolling .b23-menu-page-image,.b23-menu-volume--scrolling .b23-menu-group--face .b23-menu-page-image{position:relative;inset:auto;width:calc(100% + 56px);height:clamp(160px,24svh,250px);margin:22px -28px 0;transform:none;border-width:1px 0 0;box-shadow:none}.b23-menu-volume--scrolling .b23-menu-group--enhancements{display:block!important;min-height:calc(100svh - 104px)!important;padding:34px 28px 0!important}.b23-menu-volume--scrolling .b23-menu-group--enhancements .b23-menu-page-image{position:relative;inset:auto;width:calc(100% + 56px);height:clamp(160px,24svh,250px)!important;min-height:0!important;margin:22px -28px 0;transform:none}.b23-menu-volume--scrolling .b23-menu-terms,.b23-menu-volume--scrolling .b23-menu-farewell{min-height:calc(100svh - 104px)!important;padding:46px 28px!important}.b23-menu-volume--scrolling .b23-menu-back-cover{min-height:calc(100svh - 104px)!important}.b23-menu-volume--scrolling .b23-menu-watermark{top:20px;right:20px}.b23-menu-volume--scrolling .b23-menu-page-image img{object-position:center}.b23-menu-volume--scrolling .b23-menu-farewell::before{min-height:190px}.b23-menu-volume--scrolling .b23-menu-farewell{display:flex;flex-direction:column}.b23-menu-volume--scrolling .b23-menu-farewell-copy{padding:34px 28px}.b23-menu-volume--scrolling .b23-menu-terms-grid{grid-template-columns:1fr}.b23-menu-volume--scrolling .b23-menu-terms-grid>div{padding:20px 0}.b23-menu-volume--scrolling .b23-menu-index-grid button{min-height:0;padding:16px 0}.b23-menu-volume--scrolling .b23-menu-index-note{margin-top:20px!important}.b23-menu-book-nav[hidden]{display:none!important}html:has(.b23-menu-volume--scrolling){scroll-snap-type:y proximity}
.b23-menu-manifesto.b23-menu-page-arriving>h2{animation:none}.b23-manifesto-letter{display:inline-block}.b23-menu-manifesto.b23-menu-page-arriving .b23-manifesto-letter,.b23-menu-manifesto.b23-menu-page-arriving .b23-manifesto-sun{animation:b23-manifesto-letter-arrive 620ms cubic-bezier(.22,1,.36,1) calc(var(--b23-letter,8)*72ms) both}@keyframes b23-manifesto-letter-arrive{from{opacity:0;transform:translateY(.18em)}to{opacity:1;transform:translateY(0)}}.b23-menu-manifesto.b23-menu-page-arriving .b23-manifesto-sun{--b23-letter:8;animation-name:b23-manifesto-sun-arrive}@keyframes b23-manifesto-sun-arrive{from{opacity:0;transform:translateY(.18em)}to{opacity:1;transform:translateY(.02em)}}@media(prefers-reduced-motion:reduce){.b23-menu-manifesto.b23-menu-page-arriving .b23-manifesto-letter,.b23-menu-manifesto.b23-menu-page-arriving .b23-manifesto-sun{animation:none}}
