/* Aldwych Health Group
   The page is a letter, so it is set like one: pale stock, a letterhead rule,
   an editorial serif for the voice and a plain institutional sans for the body.
   Photography carries the colour. One dark section, at the end, where the
   phone number is. */

/* ---------- faces ---------- */
@font-face{font-family:'Newsreader';font-style:normal;font-weight:200 800;font-display:swap;
  src:url('fonts/newsreader-var.woff2') format('woff2')}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('fonts/public-sans-var.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/ibm-plex-mono-400.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;
  src:url('fonts/ibm-plex-mono-500.woff2') format('woff2')}

/* ---------- tokens ---------- */
:root{
  --paper:#f3f4f1;
  --paper-2:#e9ebe5;
  --ink:#191c1e;
  --body:#414950;
  --muted:#6e767d;
  --rule:#d3d6cf;
  --rule-2:#bfc4bb;
  --blue:#1f4a6d;
  --blue-lt:#3e7cab;
  --blue-pale:#8fb7d6;
  --dark:#171a1c;
  --dark-rule:#343a3e;

  --d:'Newsreader',Georgia,'Times New Roman',serif;
  --b:'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --m:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;

  --r:10px;
  --r-lg:14px;
  --gut:clamp(22px,5vw,60px);
  --max:960px;
  --measure:62ch;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--body);
  font-family:var(--b);font-size:clamp(16.5px,.5vw + 15px,18px);
  line-height:1.65;font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,p,dl,dd,ul,figure{margin:0}
ul{list-style:none;padding:0}
:focus-visible{outline:2.5px solid var(--blue-lt);outline-offset:3px;border-radius:4px}

.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}

.skip{position:absolute;left:-9999px;top:0;z-index:50;background:var(--ink);color:#fff;
  padding:12px 20px;font-family:var(--m);font-size:13px;text-decoration:none}
.skip:focus{left:0}

.mono{font-family:var(--m);font-weight:500;font-size:11px;letter-spacing:.15em;
  text-transform:uppercase}

/* =================================================================
   LETTERHEAD
   ================================================================= */
body::before{content:"";display:block;height:5px;background:var(--blue)}
.head{padding-top:clamp(22px,3vw,34px);padding-bottom:clamp(34px,5vw,54px)}
.head__bar{
  display:flex;flex-wrap:wrap;gap:8px 20px;align-items:baseline;
  padding-bottom:12px;border-bottom:1.5px solid var(--ink);
}
.head__mark{font-family:var(--d);font-weight:600;font-size:clamp(16px,1.5vw,19px);
  color:var(--ink)}
.head__spacer{flex:1 1 20px}
.head__where{color:var(--muted)}

/* byline: circular portrait beside the name, like a seal on a letter */
.byline{display:flex;align-items:center;gap:16px;margin-top:clamp(28px,4vw,44px)}
.byline__img{
  width:clamp(62px,7vw,82px);aspect-ratio:1;flex:none;
  border-radius:50%;object-fit:cover;object-position:50% 16%;
  filter:grayscale(1) contrast(1.04);
  box-shadow:0 0 0 1px var(--rule-2);
}
.byline__name{font-family:var(--d);font-weight:600;font-size:clamp(17px,1.6vw,20px);
  color:var(--ink);line-height:1.25}
.byline__role{color:var(--muted);margin-top:5px}

/* the opening statement */
.opener{
  font-family:var(--d);font-weight:400;
  font-size:clamp(31px,5.1vw,55px);line-height:1.12;letter-spacing:-.014em;
  color:var(--ink);max-width:18ch;text-wrap:balance;
  margin-top:clamp(26px,3.6vw,40px);
}
.opener em{font-style:italic;color:var(--blue)}
.sub{margin-top:24px;max-width:46ch;font-size:1.06em;color:var(--body)}

/* =================================================================
   CTA
   ================================================================= */
.cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:30px}
.btn{
  display:inline-flex;align-items:baseline;gap:12px;text-decoration:none;
  font-family:var(--d);font-weight:600;letter-spacing:-.012em;
  font-size:clamp(22px,2.1vw,27px);color:#fff;
  padding:15px 30px 17px;background:var(--blue);border-radius:var(--r);
  box-shadow:0 1px 2px rgba(25,28,30,.14), 0 6px 18px -8px rgba(31,74,109,.55);
  transition:background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.btn span{font-family:var(--m);font-weight:500;font-size:11px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--blue-pale)}
.btn:hover{background:#2a5f89;transform:translateY(-1px);
  box-shadow:0 2px 4px rgba(25,28,30,.16), 0 12px 26px -10px rgba(31,74,109,.6)}
.btn:active{transform:none}

/* the one on the contact block, where booking is the whole point of the page */
.btn--lg{
  margin-top:.75em;
  font-size:clamp(28px,3.4vw,42px);
  padding:22px 38px 26px;border-radius:var(--r-lg);
  gap:16px;align-items:baseline;
  box-shadow:0 2px 6px rgba(0,0,0,.3), 0 18px 40px -14px rgba(31,74,109,.85);
}
.btn--lg span{font-size:12px}
.btn--lg:hover{box-shadow:0 3px 8px rgba(0,0,0,.34), 0 24px 52px -16px rgba(31,74,109,.9)}
.booknote{margin-top:18px;max-width:44ch;color:#9aa2a9}
.sec--dark .btn{background:#2d6da6}
.sec--dark .btn:hover{background:#3a7fbb}
.sec--dark .btn span{color:#cbe1f2}

.btn--ghost{background:transparent;color:var(--ink);border:1.5px solid var(--rule-2);
  box-shadow:none}
.btn--ghost span{color:var(--muted)}
.btn--ghost:hover{background:var(--paper-2);border-color:var(--ink);box-shadow:none}
.cta__note{font-size:.93em;color:var(--muted);flex:1 1 15ch;min-width:0}
.cta__note a{color:var(--blue);text-underline-offset:3px}

/* =================================================================
   PLANT PLATES
   ================================================================= */
.plate{background:var(--ink)}
.plate img{width:100%;height:clamp(180px,25vw,300px);object-fit:cover;
  filter:grayscale(.55) contrast(1.05) brightness(.92)}
.plate--pair{display:grid;grid-template-columns:1fr 1fr;gap:3px}
.plate--pair img{height:clamp(170px,22vw,270px)}

/* =================================================================
   SECTIONS
   ================================================================= */
.sec{border-top:1px solid var(--rule);padding-block:clamp(44px,6vw,80px)}
.sec--dark{background:var(--dark);color:#c3cad0;border-top:none}

.grid{display:grid;gap:22px clamp(30px,5vw,64px);grid-template-columns:1fr}
@media (min-width:840px){ .grid{grid-template-columns:192px minmax(0,1fr)} }

.rail{display:flex;align-items:baseline;gap:12px;color:var(--muted)}
.rail b{font-weight:500;color:var(--blue)}
@media (min-width:840px){ .rail{position:sticky;top:30px;flex-direction:column;gap:10px;align-items:flex-start} }
.sec--dark .rail{color:#7d868d}
.sec--dark .rail b{color:var(--blue-pale)}

.body{max-width:var(--measure)}
.body > * + *{margin-top:1.1em}
.body strong{font-weight:600;color:var(--ink)}
.sec--dark .body strong{color:#fff}
.lead{font-family:var(--d);font-weight:400;font-size:clamp(20px,2.1vw,26px);
  line-height:1.38;letter-spacing:-.008em;color:var(--ink)}
.sec--dark .lead{color:#fff}

/* =================================================================
   SPEC
   ================================================================= */
.spec{margin-top:1.8em;border-top:1px solid var(--rule)}
.spec__row{display:flex;flex-wrap:wrap;gap:3px 18px;align-items:baseline;
  padding:14px 0;border-bottom:1px solid var(--rule)}
.spec dt{font-family:var(--m);font-weight:500;font-size:11px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--muted);flex:0 0 120px}
.spec dd{margin:0;flex:1 1 15ch;color:var(--ink)}

/* =================================================================
   CONTACT
   ================================================================= */
.sig{font-family:var(--d);font-weight:600;font-size:clamp(22px,2.2vw,29px);color:#fff}

.contact{margin-top:2.2em;border-top:1px solid var(--dark-rule)}
.contact li{display:flex;flex-wrap:wrap;gap:3px 18px;align-items:baseline;
  padding:14px 0;border-bottom:1px solid var(--dark-rule)}
.contact__k{font-family:var(--m);font-weight:500;font-size:11px;letter-spacing:.15em;
  text-transform:uppercase;color:#7d868d;flex:0 0 100px}
.contact__v{flex:1 1 18ch;color:#fff;text-decoration:none;
  border-bottom:1px solid var(--dark-rule);padding-bottom:1px}
a.contact__v:hover{border-bottom-color:var(--blue-pale)}
.sec--dark .btn--ghost{color:#fff;border-color:var(--dark-rule)}
.sec--dark .btn--ghost span{color:var(--blue-pale)}
.sec--dark .btn--ghost:hover{background:#21262a;border-color:var(--blue-pale)}
.sec--dark .cta__note{color:#7d868d}
.sec--dark .cta__note a{color:var(--blue-pale)}
.closing{margin-top:1.8em}

/* =================================================================
   FOOT
   ================================================================= */
.foot{background:var(--dark);color:#6b747b;padding-block:30px 42px;
  border-top:1px solid var(--dark-rule)}
.foot p{font-size:14px;line-height:1.6;max-width:60ch}
.foot .doc{margin-top:16px;display:flex;flex-wrap:wrap;gap:7px 24px;
  font-family:var(--m);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:#565f66}
