/* Metric matched fallback. Archivo measures 98.7% of Arial's advance width
   with a 1.09 line box against Arial's 1.15, so the swap from fallback to
   webfont reflows nothing and the layout does not jump. */
@font-face{
  font-family:'Archivo fallback';
  src:local('Arial'),local('Helvetica Neue'),local('Liberation Sans');
  size-adjust:98.7%;
  ascent-override:91%;
  descent-override:19%;
  line-gap-override:0%;
}

/* ============================================================
   Mc Lakes Properties: "Check the dates"
   Tool first. Dark navy console at the top for doing something,
   light ground below for reading answers. Fast, short easing.
   Archivo for interface. IBM Plex Mono for anything numeric.
   ============================================================ */

:root{
  --navy:#0F2942;
  --navy-d:#08192B;
  --navy-l:#1B3F5F;
  --gold:#E0A13C;
  --gold-d:#A96F14;
  --water:#2C7FB8;
  --water-d:#1C5C8A;
  --ink:#14212B;
  --body:#3D4C59;
  --slate:#5B6B7A;
  --bg:#FAFBFC;
  --card:#FFFFFF;
  --line:#DDE4EA;
  --line-2:#EAEFF3;
  --ok:#1B6B48;
  --ok-bg:#E7F3EC;
  --no:#9A3F2E;
  --no-bg:#FAECE8;

  --e:cubic-bezier(.2,0,0,1);
  --t:180ms;
  --t2:240ms;

  --pad:clamp(1rem,4vw,2rem);
  --max:74rem;

  --f:'Archivo','Archivo fallback',system-ui,-apple-system,'Segoe UI',sans-serif;
  --m:'IBM Plex Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;

  color-scheme:light;
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;overflow-x:clip;scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--body);
  font:400 1rem/1.6 var(--f);overflow-x:clip;
  -webkit-font-smoothing:antialiased;
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}
img,svg{display:block;max-width:100%}
img{height:auto}
h1,h2,h3{margin:0;text-wrap:balance}
p{margin:0 0 .85em}
p:last-child{margin-bottom:0}
ul,ol,dl{margin:0;padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
table{border-collapse:collapse;width:100%}

:focus-visible{outline:2px solid var(--water);outline-offset:2px;border-radius:3px}
:target{scroll-margin-top:4.5rem}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--navy);color:#fff;padding:.7rem 1.1rem;text-decoration:none;border-radius:0 0 4px 0}
.skip:focus{left:0;top:0}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--pad)}

/* ---------- type ---------- */
.h2{
  font-size:clamp(1.5rem,4.6vw,2.15rem);font-weight:600;
  line-height:1.14;letter-spacing:-.022em;color:var(--ink);
}
.h3{font-size:1.08rem;font-weight:600;letter-spacing:-.012em;color:var(--ink);margin:0 0 .7rem}
.sh{margin-bottom:1.5rem;max-width:44rem}
.sh__p{color:var(--slate);font-size:.96rem;margin-top:.45rem}
.sh--row{display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:flex-end;justify-content:space-between;max-width:none}

/* ---------- buttons ---------- */
.b{
  display:inline-flex;align-items:center;justify-content:center;gap:.4rem;
  min-height:2.85rem;padding:.7rem 1.15rem;border:1px solid transparent;border-radius:6px;
  font-family:var(--f);font-size:.92rem;font-weight:600;cursor:pointer;
  text-decoration:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  transition:background-color var(--t) var(--e),border-color var(--t) var(--e),color var(--t) var(--e),transform var(--t) var(--e);
}
.b--gold{background:var(--gold);color:#231703;border-color:var(--gold)}
.b--gold:hover{background:#EDB458;border-color:#EDB458}
.b--ghost{background:transparent;color:#D5E3EE;border-color:rgba(213,227,238,.36)}
.b--ghost:hover{border-color:var(--gold);color:var(--gold)}
.b--wide{width:100%}
.b--sm{min-height:2.5rem;padding:.55rem .9rem;font-size:.85rem}
.b:active{transform:scale(.985)}
.b:disabled{opacity:.4;cursor:not-allowed}

/* ---------- top bar ---------- */
.bar{
  position:sticky;top:0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.55rem var(--pad);padding-top:calc(.55rem + env(safe-area-inset-top));
  background:var(--navy-d);
}
.bar__b{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:#fff;min-width:0}
.bar__b svg{width:1.75rem;flex:none}
.bar__b span{font-size:.88rem;font-weight:600;letter-spacing:-.01em;white-space:nowrap}
.bar__w{
  display:flex;align-items:center;gap:.35rem;flex:none;
  font-size:.82rem;font-weight:600;color:#0F2942;background:var(--gold);
  padding:.42rem .75rem;border-radius:5px;text-decoration:none;
  transition:background-color var(--t) var(--e);
}
.bar__w svg{width:.95rem;height:.95rem}
.bar__w:hover{background:#EDB458}

/* ---------- the console ---------- */
.console{background:var(--navy);color:#D5E3EE;padding:1.4rem 0 1.8rem}
.console__in{max-width:var(--max);margin-inline:auto;padding-inline:var(--pad)}
/* At 375 the tool owns the fold, so the photograph sits under it as a strip
   and loads a small 16:9 crop. At desktop a taller source takes over. */
.console__pic{
  margin:1rem 0 0;position:relative;overflow:hidden;border-radius:10px;
  aspect-ratio:16/9;                       /* hold the space before the image decodes */
}
.console__pic picture{display:block;width:100%;height:100%}
.console__pic img{width:100%;height:100%;aspect-ratio:16/9;object-fit:cover;object-position:50% 46%}
.console__pic figcaption{
  position:absolute;inset:auto 0 0 0;padding:1.8rem 1rem .9rem;
  background:linear-gradient(180deg,rgba(8,25,43,0),rgba(8,25,43,.9) 60%);
}
.console__pic blockquote{
  margin:0 0 .3rem;font-size:.94rem;font-weight:500;color:#fff;line-height:1.35;
}
.console__pic cite{
  font-style:normal;font-size:.66rem;font-weight:500;letter-spacing:.06em;
  text-transform:uppercase;color:var(--gold);
}
.console__h1{
  font-size:clamp(1.42rem,5.4vw,2.5rem);font-weight:700;line-height:1.1;
  letter-spacing:-.028em;color:#fff;margin-bottom:.4rem;
}
.console__h1 span{color:var(--gold);display:block}
.console__p{font-size:.94rem;color:#9FBACE;margin-bottom:1.1rem;max-width:34rem}
.tool{background:var(--navy-d);border:1px solid rgba(213,227,238,.14);border-radius:10px;padding:1rem}
@media (min-width:900px){.tool{padding:1.25rem}}
.tool__row{display:grid;grid-template-columns:1.5fr 1fr;gap:.6rem;margin-bottom:.6rem}
.tool__row--3{grid-template-columns:repeat(3,1fr)}
.tf label{
  display:block;font-size:.66rem;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:#8FAABF;margin-bottom:.3rem;
}
.tf input,.tf select{
  width:100%;background:#0C2137;color:#fff;border:1px solid rgba(213,227,238,.24);
  border-radius:6px;padding:.62rem .7rem;font-size:1rem;font-family:var(--m);
  min-height:2.85rem;transition:border-color var(--t) var(--e);
}
.tf select{
  appearance:none;cursor:pointer;padding-right:2rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23A9C2D4' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .6rem center;background-size:.62rem;
}
.tf select option{background:#0C2137;color:#fff}
.tf :is(input,select):hover{border-color:rgba(213,227,238,.44)}
.tf input[type=date]::-webkit-calendar-picker-indicator{filter:invert(1) opacity(.6);cursor:pointer}

.seg{border:0;padding:0;margin:0 0 .6rem;display:grid;grid-template-columns:1fr 1fr;gap:.4rem}
.seg label{
  position:relative;display:block;cursor:pointer;
  border:1px solid rgba(213,227,238,.24);border-radius:6px;
  background:#0C2137;transition:border-color var(--t) var(--e),background-color var(--t) var(--e);
}
.seg input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.seg span{display:block;padding:.55rem .7rem;font-size:.86rem;font-weight:600;color:#C6D8E5}
.seg span i{display:block;font-style:normal;font-weight:400;font-size:.72rem;color:#7E9AB0;margin-top:.05rem}
.seg label:has(input:checked){border-color:var(--gold);background:rgba(224,161,60,.13)}
.seg label:has(input:checked) span{color:#fff}
.seg label:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:2px}

.verdict{
  display:block;margin:.85rem 0 .9rem;padding:.85rem .9rem;border-radius:8px;
  border-left:3px solid var(--gold);background:rgba(213,227,238,.07);
  /* the answer is written in by script, so hold its measured height up front
     and nothing below it jumps when the price lands */
  min-height:9.65rem;
}
@media (min-width:520px){.verdict{min-height:8.3rem}}
.verdict.free{border-left-color:#4FBF8B;background:rgba(79,191,139,.1)}
.verdict.taken{border-left-color:#E2795F;background:rgba(226,121,95,.1)}
.v__l{display:block;font-size:.68rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:#9FBACE;margin-bottom:.3rem}
.v__h{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .7rem}
.v__p{font-family:var(--m);font-size:1.75rem;font-weight:500;color:#fff;line-height:1.1;letter-spacing:-.02em}
.v__n{font-size:.86rem;color:#9FBACE;font-family:var(--m)}
.v__s{display:block;margin-top:.45rem;font-size:.86rem;color:#C6D8E5}
.v__s b{color:#fff;font-weight:600}
.v__s a{color:var(--gold);text-decoration:underline;text-underline-offset:2px}
.tool__acts{display:grid;gap:.5rem}
@media (min-width:520px){.tool__acts{grid-template-columns:1fr auto}}

/* ---------- console at desktop ----------
   Below 1000px this is a single stacked column. Above it, the tool stops
   stretching (a date field does not need 400px) and the width that would
   have been wasted carries a photograph and a real guest line instead. */
@media (min-width:1000px){
  .console{padding:2.2rem 0 2.6rem}
  .console__in{
    display:grid;
    grid-template-columns:minmax(0,31rem) minmax(0,1fr);
    grid-template-rows:auto auto 1fr;
    column-gap:clamp(2rem,4vw,3.5rem);
    align-items:start;
  }
  .console__h1,.console__p,.tool{grid-column:1}
  .console__h1{font-size:clamp(2rem,2.6vw,2.6rem)}
  .console__pic{grid-column:2;grid-row:1/4;margin:0;align-self:stretch;aspect-ratio:auto}
  .console__pic img{aspect-ratio:auto;object-position:50% 42%}
  .console__pic figcaption{padding:1.6rem 1.3rem 1.15rem}
  .console__pic blockquote{font-size:1.02rem;letter-spacing:-.01em;margin-bottom:.4rem}
  .console__pic cite{font-size:.72rem}
  /* a date input given half the page just looks broken. Exclude the
     three-up row, which has its own column count. */
  .tool__row:not(.tool__row--3){grid-template-columns:1.35fr 1fr}
}

/* sync line, sitting under the tool like a status readout */
.sync{
  margin:.55rem 0 0;font-size:.72rem;font-family:var(--m);
  color:#8FAABF;line-height:1.45;
}
.sync--wait{opacity:.65}
.sync--ok::before{content:'\25CF ';color:#4FBF8B}
.sync--demo{color:#8FC0DE}
.sync--demo::before{content:'\25CF ';color:#8FC0DE}
.sync--warn{color:#F0B94F}
.sync--warn::before{content:'\25B2 ';font-size:.85em}
.cd.unsure{
  background:repeating-linear-gradient(135deg,var(--bg),var(--bg) 3px,#E9EEF3 3px,#E9EEF3 6px);
  color:var(--slate);
}
.cd.unsure:hover:not(:disabled){background:#FFEFC9;color:var(--ink)}

/* ---------- booking direct: three facts, no salesmanship ---------- */
.direct{background:var(--card);border-bottom:1px solid var(--line);padding:clamp(1.6rem,4vw,2.4rem) 0}
.direct__g{display:grid;gap:.7rem}
@media (min-width:720px){.direct__g{grid-template-columns:repeat(3,1fr)}}
.dcard{
  border:1px solid var(--line);border-radius:9px;padding:.95rem 1rem;background:var(--bg);
}
.dcard h3{
  font-size:.68rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  color:var(--gold-d);margin:0 0 .4rem;
}
.dcard p{font-size:.9rem;color:var(--body);margin:0}
.direct__t{
  display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:baseline;
  margin-bottom:.9rem;
}
.direct__t h2{
  font-size:clamp(1.05rem,3vw,1.25rem);font-weight:600;
  letter-spacing:-.015em;color:var(--ink);margin:0;
}
.direct__t p{font-size:.88rem;color:var(--slate);margin:0}
.perk{
  margin-top:.7rem;padding:.7rem .9rem;background:#FFF9EF;
  border:1px dashed var(--gold-d);border-radius:7px;font-size:.88rem;color:var(--body);
}

/* ---------- price ladder ---------- */
.ladder{padding:clamp(2.4rem,6vw,4rem) 0;background:var(--card);border-bottom:1px solid var(--line)}
.rungs{display:grid;gap:.4rem}
.rung{
  display:grid;grid-template-columns:3.2rem 1fr auto;align-items:center;gap:.6rem 1rem;
  padding:.75rem .9rem;background:var(--bg);border:1px solid var(--line);border-radius:8px;
  transition:border-color var(--t) var(--e),background-color var(--t) var(--e);
}
.rung.on{border-color:var(--gold);background:#FFF9EF;box-shadow:inset 0 0 0 1px var(--gold)}
.rung.gone{opacity:.5}
.rung__n{font-family:var(--m);font-size:1.05rem;font-weight:500;color:var(--ink)}
.rung__n small{display:block;font-size:.62rem;color:var(--slate);letter-spacing:.06em;text-transform:uppercase;font-family:var(--f)}
.rung__bar{height:6px;border-radius:3px;background:var(--line-2);overflow:hidden;min-width:0}
.rung__bar i{display:block;height:100%;background:var(--water);transform-origin:0 50%;transform:scaleX(0);transition:transform 400ms var(--e)}
.rung.on .rung__bar i{background:var(--gold-d)}
.rung__r{text-align:right;white-space:nowrap}
.rung__t{font-family:var(--m);font-size:1.12rem;font-weight:500;color:var(--ink)}
.rung__u{display:block;font-size:.74rem;color:var(--slate);font-family:var(--m)}
.rung__save{
  display:inline-block;margin-left:.4rem;font-size:.68rem;font-weight:600;
  color:var(--ok);background:var(--ok-bg);padding:.1rem .35rem;border-radius:3px;font-family:var(--f);
}
.rung__x{grid-column:1/-1;font-size:.78rem;color:var(--no);font-weight:500}
.rungs__note{margin-top:1rem;font-size:.9rem;color:var(--slate)}
.rungs__note b{color:var(--ink);font-weight:600}

/* ---------- units ---------- */
.units{padding:clamp(2.4rem,6vw,4rem) 0}
.cmp{overflow-x:auto;margin-bottom:1.6rem;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.cmp__t{min-width:34rem}
.cmp__t th,.cmp__t td{
  padding:.72rem .9rem;text-align:left;font-size:.92rem;
  border-bottom:1px solid var(--line-2);vertical-align:top;
}
.cmp__t thead th{
  font-size:.76rem;font-weight:600;color:var(--navy);background:var(--line-2);
  letter-spacing:.02em;position:sticky;top:0;
}
.cmp__t tbody th{font-weight:600;color:var(--slate);font-size:.74rem;letter-spacing:.07em;text-transform:uppercase;width:8.5rem}
.cmp__t td{color:var(--ink)}
.cmp__t tr:last-child :is(th,td){border-bottom:0}
.cmp__t b{font-family:var(--m);font-size:1.05rem;font-weight:500}
.shots{display:grid;gap:1.2rem}
@media (min-width:760px){.shots{grid-template-columns:1fr 1fr;gap:1.6rem}}
.shots__g{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:repeat(3,1fr);gap:.35rem}
.shots__g img{width:100%;height:100%;object-fit:cover;border-radius:5px}
.shots__g img:first-child{grid-row:1/4}
.shots figcaption{margin-top:.6rem;font-size:.8rem;font-weight:600;color:var(--ink)}

/* ---------- answers ---------- */
.answers{padding:clamp(2.4rem,6vw,4rem) 0;background:var(--card);border-block:1px solid var(--line)}
.find{position:relative;margin-bottom:.8rem;max-width:30rem}
.find__i{position:absolute;left:.8rem;top:50%;margin-top:-.55rem;width:1.1rem;height:1.1rem;color:var(--slate);pointer-events:none}
.find input{
  width:100%;padding:.72rem 2.4rem;border:1px solid var(--line);border-radius:8px;
  background:var(--bg);font-size:.98rem;min-height:2.9rem;
  transition:border-color var(--t) var(--e),background-color var(--t) var(--e);
}
.find input:hover{border-color:#C4CFD9}
.find input:focus-visible{border-color:var(--water);background:#fff}
.find input::-webkit-search-cancel-button{display:none}
.find__x{
  position:absolute;right:.5rem;top:50%;margin-top:-1rem;width:2rem;height:2rem;
  border:0;background:var(--line-2);border-radius:50%;cursor:pointer;font-size:1.1rem;
  line-height:1;color:var(--slate);touch-action:manipulation;
}
.find__x:hover{background:var(--line);color:var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1.2rem}
.chip{
  border:1px solid var(--line);background:var(--bg);border-radius:999px;
  padding:.3rem .75rem;font-size:.8rem;font-weight:500;color:var(--body);cursor:pointer;
  touch-action:manipulation;
  transition:background-color var(--t) var(--e),border-color var(--t) var(--e),color var(--t) var(--e);
}
.chip:hover{border-color:var(--water);color:var(--water-d)}
.chip.on{background:var(--navy);border-color:var(--navy);color:#fff}
.alist{border-top:1px solid var(--line)}
.ai{border-bottom:1px solid var(--line)}
.ai summary{
  list-style:none;cursor:pointer;padding:.95rem 2.2rem .95rem 0;position:relative;
  font-size:.98rem;font-weight:600;color:var(--ink);touch-action:manipulation;
  transition:color var(--t) var(--e);
}
.ai summary::-webkit-details-marker{display:none}
.ai summary:hover{color:var(--water-d)}
.ai summary::after{
  content:'';position:absolute;right:.5rem;top:1.35rem;width:9px;height:9px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg);transition:transform var(--t2) var(--e);
}
.ai[open] summary::after{transform:rotate(-135deg)}
.ai[open] summary{color:var(--water-d)}
.ai__b{padding:0 0 1.1rem;max-width:44rem}
.ai__b p{font-size:.94rem;color:var(--body)}
.ai__tag{
  display:inline-block;margin-left:.5rem;font-size:.64rem;font-weight:600;
  letter-spacing:.07em;text-transform:uppercase;color:var(--slate);
  border:1px solid var(--line);border-radius:3px;padding:.08rem .35rem;vertical-align:middle;
}
mark{background:#FFEFC9;color:inherit;padding:0 .1em;border-radius:2px}
.alist__none{padding:1.4rem 0;color:var(--slate);font-size:.94rem}
.alist__none a{color:var(--water-d)}

/* ---------- getting here ---------- */
.here{padding:clamp(2.4rem,6vw,4rem) 0}
.here__g{display:grid;gap:1.4rem;margin-bottom:2.2rem}
@media (min-width:860px){.here__g{grid-template-columns:1.2fr .8fr;gap:2rem;align-items:start}}
.map{width:100%;height:auto;border:1px solid var(--line);border-radius:10px}
.pt text{font:400 11.5px var(--f);fill:var(--body)}
.pt circle{fill:var(--water)}
.pin text{font:600 12px var(--f);fill:var(--gold-d);letter-spacing:.12em}
.pin circle{fill:var(--gold-d)}
.pin .halo{fill:rgba(169,111,20,.15)}
.sc{font:400 10px var(--f);fill:var(--slate)}
.drive div{padding:.7rem 0;border-bottom:1px solid var(--line)}
.drive div:first-child{padding-top:0}
.drive dt{font-size:.68rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--slate);margin-bottom:.2rem}
.drive dd{margin:0;font-size:.94rem;color:var(--ink)}
.here__nh{margin-bottom:.8rem}
.near{background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.near th,.near td{padding:.7rem .85rem;text-align:left;font-size:.9rem;border-bottom:1px solid var(--line-2);vertical-align:top}
.near thead th{font-size:.68rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--slate);background:var(--line-2)}
.near tbody th{font-weight:600;color:var(--ink);white-space:nowrap}
.near__t{font-family:var(--m);font-size:.85rem;color:var(--water-d);white-space:nowrap}
.near tr:last-child :is(th,td){border-bottom:0}
.near td:last-child{color:var(--body)}
@media (max-width:600px){
  .near thead{display:none}
  .near tbody tr{display:grid;grid-template-columns:1fr auto;padding:.7rem .85rem;border-bottom:1px solid var(--line-2)}
  .near tbody :is(th,td){padding:0;border:0}
  .near tbody td:last-child{grid-column:1/-1;margin-top:.25rem}
}

/* ---------- reviews ---------- */
.rev{padding:clamp(2.4rem,6vw,4rem) 0;background:var(--card);border-block:1px solid var(--line)}
.score{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;margin:0}
.score b{font-family:var(--m);font-size:2.1rem;font-weight:500;color:var(--ink);line-height:1}
.score span{color:var(--gold-d);letter-spacing:.13em;font-size:.95rem}
.score i{font-style:normal;font-size:.82rem;color:var(--slate);width:100%}
.revs{display:grid;gap:.8rem;margin-top:1.4rem}
@media (min-width:680px){.revs{grid-template-columns:1fr 1fr}}
@media (min-width:1020px){.revs{grid-template-columns:repeat(3,1fr)}}
.rv{background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:1.05rem 1.1rem}
.rv.new{background:#FFF9EF;border-color:var(--gold)}
.rv__s{color:var(--gold-d);letter-spacing:.16em;font-size:.8rem;margin-bottom:.55rem}
.rv__q{margin:0 0 .8rem;font-size:.94rem;line-height:1.52;color:var(--ink)}
.rv__w{font-size:.8rem;font-weight:600;color:var(--ink);margin:0}
.rv__w i{font-style:normal;font-weight:400;color:var(--slate)}
.rv__src{display:block;margin-top:.25rem;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);font-weight:500}

.post{display:grid;gap:1.6rem;margin-top:2.2rem;padding-top:1.8rem;border-top:1px solid var(--line)}
@media (min-width:880px){.post{grid-template-columns:1fr 1fr;gap:2.4rem}}
.post__l p{font-size:.94rem;color:var(--body)}
.post__m{background:var(--bg);border-left:3px solid var(--gold);border-radius:0 7px 7px 0;padding:.95rem 1rem;margin:1rem 0}
.post__m p{font-size:.92rem;color:var(--ink)}
.post__meta{font-size:.64rem!important;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-d)!important;margin-bottom:.45rem}
.post__m em{font-style:italic;color:var(--water-d)}
.post__hook{font-size:.85rem!important;color:var(--slate)!important}
.post__f{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:1.2rem}
.rate{border:0;padding:0;margin:0 0 .9rem}
.rate legend{font-size:.66rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--slate);padding:0;margin-bottom:.3rem}
.rate div{display:flex;gap:.2rem}
.rate button{
  background:none;border:0;cursor:pointer;padding:.2rem;font-size:1.35rem;line-height:1;
  color:#C9D3DC;touch-action:manipulation;transition:color var(--t) var(--e),transform var(--t) var(--e);
}
.rate button:hover{transform:translateY(-2px)}
.rate button.on{color:var(--gold-d)}

/* light fields */
.tf--b{margin-bottom:.85rem}
.tf--b label{color:var(--slate)}
.tf--b :is(input,textarea,select){
  width:100%;background:var(--card);color:var(--ink);border:1px solid var(--line);
  border-radius:6px;padding:.62rem .7rem;font-size:.98rem;font-family:var(--f);min-height:2.85rem;
  transition:border-color var(--t) var(--e);
}
.tf--b textarea{resize:vertical;min-height:4.4rem}
.tf--b :is(input,textarea):hover{border-color:#C4CFD9}
.tf--b :is(input,textarea):focus-visible{border-color:var(--water)}
.msg{margin-top:.7rem;font-size:.88rem;color:var(--no);font-weight:500;min-height:1.2em}

/* ---------- enquiry ---------- */
.enq{padding:clamp(2.4rem,6vw,4rem) 0}
.enq__cols{display:grid;gap:1.8rem}
@media (min-width:880px){.enq__cols{grid-template-columns:1fr 1fr;gap:2.4rem}}
.recap{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:.4rem 1rem;margin-bottom:1.2rem}
.recap__r{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--line-2);font-size:.92rem}
.recap__r:last-child{border-bottom:0}
.recap__r span:first-child{color:var(--slate)}
.recap__r span:last-child{color:var(--ink);font-weight:500;text-align:right;font-family:var(--m);font-size:.88rem}
.recap__e{padding:.9rem 0;color:var(--slate);font-size:.92rem}
.recap__e a{color:var(--water-d)}
.ex{border:0;padding:0;margin:0 0 1.2rem}
.ex legend{font-size:.66rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--slate);padding:0;margin-bottom:.4rem}
.xo{display:flex;gap:.65rem;align-items:flex-start;padding:.6rem 0;border-bottom:1px solid var(--line-2);cursor:pointer}
.xo input{margin:.25rem 0 0;accent-color:var(--water);flex:none;width:1rem;height:1rem}
.xo:has(input:focus-visible){outline:2px solid var(--water);outline-offset:2px}
.xo__b{flex:1;min-width:0}
.xo__n{display:block;font-size:.92rem;color:var(--ink);font-weight:500}
.xo__d{display:block;font-size:.78rem;color:var(--slate)}
.xo__p{flex:none;font-family:var(--m);font-size:.86rem;color:var(--water-d)}
.bill{background:var(--navy);color:#D5E3EE;border-radius:9px;padding:.9rem 1rem;margin-bottom:1.1rem}
.bill__r{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0;font-size:.88rem;border-bottom:1px solid rgba(213,227,238,.14)}
.bill__r span:last-child{font-family:var(--m);text-align:right;white-space:nowrap}
.bill__r--t{border-bottom:0;padding-top:.7rem}
.bill__r--t span:first-child{color:#fff;font-weight:600}
.bill__r--t span:last-child{font-size:1.35rem;color:var(--gold);font-weight:500}
.bill__e{font-size:.88rem;color:#9FBACE;margin:0}
.pay{background:#FFF9EF;border:1px dashed var(--gold-d);border-radius:9px;padding:1rem;margin-bottom:1.1rem}
.pay p{font-size:.89rem;color:var(--body)}
.pay__t{margin-bottom:.4rem!important}
.pay__t b{color:var(--ink);font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.hl{background:var(--gold);color:#231703;padding:0 .2rem;font-weight:600;border-radius:2px}
.pay__s{font-size:.8rem!important;color:var(--slate);margin-bottom:0!important}
.done{background:var(--ok-bg);border:1px solid #B9DCC8;border-radius:10px;padding:1.3rem}
.done p{font-size:.94rem;color:var(--body)}
.done dl{display:grid;gap:.3rem;margin:.9rem 0}
.done dl div{display:flex;justify-content:space-between;gap:1rem;font-size:.9rem}
.done dt{color:var(--slate)}
.done dd{margin:0;font-family:var(--m);color:var(--ink);text-align:right}

/* ---------- footer ---------- */
.ft{background:var(--navy-d);color:#A9C2D4;padding:2.2rem 0;padding-bottom:calc(2.2rem + env(safe-area-inset-bottom))}
.ft__in{display:grid;gap:1.2rem}
@media (min-width:820px){.ft__in{grid-template-columns:1fr 1fr auto;align-items:end}}
.ft__b{color:#fff;font-weight:600;font-size:1.02rem;margin:0 0 .25rem}
.ft__a{font-size:.88rem;margin:0}
.ft__l{display:grid;gap:.3rem;font-size:.9rem}
.ft__l a{color:#8FC0DE;text-decoration:none}
.ft__l a:hover{color:var(--gold);text-decoration:underline}
.ft__c{font-size:.8rem;margin:0;color:#7E9AB0}
.ft__c a{color:#A9C2D4;text-decoration:underline;text-underline-offset:2px}
.ft__c a:hover{color:var(--gold)}

/* ---------- calendar sheet ---------- */
.sheet{position:fixed;inset:0;z-index:120;display:flex;align-items:flex-end;justify-content:center}
@media (min-width:700px){.sheet{align-items:center}}
.sheet__s{position:absolute;inset:0;background:rgba(8,25,43,.62);opacity:0;transition:opacity var(--t2) var(--e)}
.sheet.on .sheet__s{opacity:1}
.sheet__p{
  position:relative;width:100%;max-width:40rem;max-height:94svh;
  display:flex;flex-direction:column;background:var(--card);
  border-radius:12px 12px 0 0;overflow:hidden;overscroll-behavior:contain;
  transform:translateY(16px);opacity:0;
  transition:transform var(--t2) var(--e),opacity var(--t2) var(--e);
}
@media (min-width:700px){.sheet__p{border-radius:12px;max-height:88svh}}
.sheet.on .sheet__p{transform:none;opacity:1}
.sheet__h{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem .8rem;flex:none}
.sheet__k{margin:0;font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--slate)}
.sheet__u{margin:.15rem 0 0;font-size:1.02rem;font-weight:600;color:var(--ink)}
.sheet__x{
  width:2.2rem;height:2.2rem;flex:none;border:1px solid var(--line);background:none;
  border-radius:50%;cursor:pointer;color:var(--slate);display:grid;place-items:center;
  touch-action:manipulation;transition:border-color var(--t) var(--e),color var(--t) var(--e);
}
.sheet__x svg{width:1rem;height:1rem}
.sheet__x:hover{border-color:var(--ink);color:var(--ink)}
.sheet__nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 1.1rem .7rem;flex:none}
.sheet__nav p{margin:0;font-weight:600;font-size:.95rem;color:var(--ink)}
.sheet__nav button{
  width:2.2rem;height:2.2rem;border:1px solid var(--line);background:none;border-radius:6px;
  cursor:pointer;color:var(--body);display:grid;place-items:center;flex:none;touch-action:manipulation;
  transition:border-color var(--t) var(--e),background-color var(--t) var(--e);
}
.sheet__nav button svg{width:1rem;height:1rem}
.sheet__nav button:hover:not(:disabled){border-color:var(--water);background:var(--line-2)}
.sheet__nav button:disabled{opacity:.32;cursor:not-allowed}
.sheet__b{overflow-y:auto;overscroll-behavior:contain;padding:0 1.1rem 1rem;flex:1 1 auto;display:grid;gap:1.3rem}
.mo h4{margin:0 0 .45rem;font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--water-d)}
.dow,.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.dow span{text-align:center;font-size:.6rem;font-weight:600;color:var(--slate);padding-bottom:.2rem}
.cd{
  aspect-ratio:1;border:0;background:var(--bg);border-radius:5px;cursor:pointer;
  font-family:var(--m);font-size:.82rem;color:var(--ink);display:grid;place-items:center;
  touch-action:manipulation;transition:background-color var(--t) var(--e),color var(--t) var(--e);
}
.cd:hover:not(:disabled){background:#FFEFC9}
.cd.pad{visibility:hidden}
.cd:disabled{background:transparent;color:#BCC7D1;cursor:not-allowed}
.cd.tk{background:var(--no-bg);color:#C09184;text-decoration:line-through}
.cd.mid{background:#FFEFC9;border-radius:0}
.cd.end{background:var(--navy);color:#fff;font-weight:500}
.sheet__f{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.85rem 1.1rem;padding-bottom:calc(.85rem + env(safe-area-inset-bottom));border-top:1px solid var(--line);flex:none;background:var(--card)}
.key{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.74rem;color:var(--slate)}
.key li{display:flex;align-items:center;gap:.3rem}
.ky{width:.7rem;height:.7rem;border-radius:3px;display:block}
.ky--f{background:var(--bg);border:1px solid var(--line)}
.ky--t{background:var(--no-bg)}
.ky--s{background:var(--navy)}
body.lock{overflow:hidden}

/* ---------- reveals: opacity only, quick ---------- */
.js [data-r]{opacity:0}
.js [data-r].in{opacity:1;transition:opacity 300ms var(--e)}
@media (prefers-reduced-motion:reduce){.js [data-r]{opacity:1}}
