/* Luxe Health. One stylesheet, no external calls, no build step.
   Two palettes. Onyx is the default. Set data-theme="paper" on the html
   element for the warm paper palette. Change the accent in one line. */

:root,
:root[data-theme="onyx"]{
  --bg:#121110;
  --panel:#1a1815;
  --fg:#ece7dc;
  --muted:#a29b8d;
  --faint:#6f685c;
  --line:#2a2721;
  --accent:#b8964f;        /* [accent color placeholder] */
  --btnBg:#ece7dc;
  --btnFg:#121110;
}
:root[data-theme="paper"]{
  --bg:#f6f3ec;
  --panel:#efeae0;
  --fg:#161513;
  --muted:#6d685e;
  --faint:#a49d90;
  --line:#e0d9cc;
  --accent:#a8874e;        /* [accent color placeholder] */
  --btnBg:#161513;
  --btnFg:#f6f3ec;
}

:root{
  --serif:Georgia,"Iowan Old Style","Palatino Linotype","Times New Roman",serif;
  --sans:system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --measure:36rem;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

a{color:inherit;}
a:focus-visible,
input:focus-visible,
button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

.visuallyHidden{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* Header bar */
.bar{
  display:flex;align-items:center;justify-content:space-between;
  padding:26px 32px;
}
.wordmark{
  font-family:var(--serif);
  font-size:19px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--fg);
}
.enquire{
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--muted);
  padding:8px 0;
  border-bottom:1px solid transparent;
  transition:color 200ms ease,border-color 200ms ease;
}
.enquire:hover{color:var(--fg);border-bottom-color:var(--accent);}

/* Layout */
main{max-width:46rem;margin:0 auto;padding:0 32px;}
.section{padding:72px 0;border-top:1px solid var(--line);}
.section:first-of-type{border-top:0;}

/* Reveal, only when JS opts in. Content is visible without JavaScript. */
.reveal .section,
.reveal .plate{opacity:0;transform:translateY(12px);transition:opacity 1000ms ease,transform 1000ms ease;}
.reveal .section.in,
.reveal .plate.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal .section,.reveal .plate{opacity:1;transform:none;transition:none;}
}

/* Arrival, a full first view with presence and stillness */
.arrival{
  min-height:calc(100vh - 92px);
  display:flex;flex-direction:column;justify-content:center;
  padding:48px 0 96px;
}
.mark{width:22px;height:48px;color:var(--accent);margin-bottom:34px;}
.kicker{
  font-family:var(--sans);
  font-size:11px;letter-spacing:0.28em;text-transform:uppercase;
  color:var(--accent);margin:0 0 22px;
}
.statement{
  font-family:var(--serif);
  font-size:1.75rem;
  line-height:1.5;
  margin:0;
  max-width:var(--measure);
  letter-spacing:0.004em;
}
.scrollCue{
  margin-top:56px;width:1px;height:40px;background:var(--line);position:relative;overflow:hidden;
}
.scrollCue::after{
  content:"";position:absolute;left:0;top:0;width:1px;height:16px;background:var(--accent);
  animation:cue 2600ms ease-in-out infinite;
}
@keyframes cue{0%{transform:translateY(-16px)}60%{transform:translateY(40px)}100%{transform:translateY(40px)}}
@media (prefers-reduced-motion:reduce){.scrollCue::after{animation:none;}}

/* Section labels, the numbered editorial device */
.sectionLabel{
  font-family:var(--sans);
  font-size:11px;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--accent);margin:0 0 26px;display:flex;align-items:center;gap:14px;
}
.num{font-variant-numeric:tabular-nums;color:var(--muted);letter-spacing:0.1em;}

/* Type */
.lede{
  font-family:var(--serif);
  font-size:1.4rem;line-height:1.5;margin:0 0 18px;max-width:var(--measure);
}
.body{margin:0;max-width:var(--measure);color:var(--fg);}
.body.wide{font-size:1.18rem;line-height:1.7;}
.note{margin:18px 0 0;color:var(--muted);font-size:0.95rem;max-width:var(--measure);}

/* Roles */
.roles{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-bottom:30px;}
.roleName{font-family:var(--serif);font-size:1.22rem;margin:0 0 8px;}
.standard{font-family:var(--serif);font-size:1.22rem;line-height:1.5;margin:0;max-width:var(--measure);}

/* Image plate, intentional while empty */
.plate{
  margin:0;max-width:46rem;margin:0 auto;
  height:52vh;min-height:320px;
  display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(120% 90% at 50% 0%, rgba(255,255,255,0.03), transparent 60%),
    var(--panel);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.plateMark{width:20px;height:44px;color:var(--faint);opacity:0.7;}

/* Conversation and form */
.conversation .lede{margin-bottom:30px;}
.inquiry{max-width:32rem;}
.field{margin-bottom:22px;}
.field label{
  display:block;font-size:0.78rem;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--muted);margin-bottom:9px;
}
.field input{
  width:100%;padding:12px 2px;font-family:var(--sans);font-size:1rem;
  color:var(--fg);background:transparent;border:0;border-bottom:1px solid var(--line);
}
.field input:focus{border-bottom-color:var(--accent);}
.submit{
  margin-top:10px;padding:15px 30px;font-family:var(--sans);
  font-size:0.86rem;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--btnFg);background:var(--btnBg);border:0;cursor:pointer;
  transition:opacity 200ms ease;
}
.submit:hover{opacity:0.86;}
.confirmation{font-family:var(--serif);font-size:1.3rem;color:var(--fg);max-width:var(--measure);margin:8px 0 0;}
.alt{margin:30px 0 0;color:var(--muted);font-size:0.95rem;}
.alt a{color:var(--fg);text-decoration:none;border-bottom:1px solid var(--line);}
.alt a:hover{border-bottom-color:var(--accent);}

/* Footer */
.footer{max-width:46rem;margin:0 auto;padding:60px 32px 80px;border-top:1px solid var(--line);}
.disclaimer{margin:0 0 18px;color:var(--muted);font-size:0.95rem;}
.footerMeta{display:flex;flex-wrap:wrap;gap:22px;align-items:center;margin:0;color:var(--faint);font-size:0.8rem;letter-spacing:0.06em;}
.footerMeta a{color:var(--muted);text-decoration:none;}
.footerMeta a:hover{color:var(--fg);}

/* Legal page */
.legal{max-width:42rem;margin:0 auto;padding:24px 32px 80px;}
.legal h1{font-family:var(--serif);font-weight:400;font-size:1.7rem;margin:24px 0 8px;}
.legal h2{font-family:var(--serif);font-weight:400;font-size:1.18rem;letter-spacing:0.04em;margin:42px 0 10px;color:var(--fg);}
.legal p{max-width:var(--measure);color:var(--fg);}
.legal .flag{color:var(--muted);font-size:0.9rem;}
.legal .back{display:inline-block;margin-top:42px;color:var(--muted);text-decoration:none;border-bottom:1px solid var(--line);}
.legal .back:hover{border-bottom-color:var(--accent);}

/* Phone first */
@media (max-width:640px){
  .bar{padding:22px 22px;}
  main{padding:0 22px;}
  .footer{padding:52px 22px 72px;}
  .arrival{min-height:calc(100vh - 84px);}
  .statement{font-size:1.42rem;}
  .lede{font-size:1.24rem;}
  .roles{grid-template-columns:1fr;gap:26px;}
  .section{padding:54px 0;}
  .plate{height:44vh;}
}
