/*
  redigi.com.au - the one stylesheet
  ==================================

  Built 28 August 2026 from the Redigi base (Supabase vvzjdhomaoidrebrmxon),
  brand_token table. Every value below is a recorded token, not a taste call.
  The base is truth; these pages just wear it.

  ONE THEME, MANY SURFACES. Every page on this domain links this file. A page
  that carries its own copy of the palette is a page that will disagree with the
  others the first time one of them is edited, and the one nobody remembers to
  change is always the second one.

  KNOWN TEMPORARY EXCEPTION, and it is deliberate rather than an oversight.
  index.html still carries its own inline copy of these tokens. It is not moved
  here yet because PR #1 (claude/legal-footer-links) is open against that exact
  file and rewriting it underneath an open PR would create a conflict for no
  gain. The follow-up is: once #1 merges, point index.html and 404.html at this
  file and delete their inline blocks. Until that happens the values below and
  the ones in index.html must be changed together. Recorded so the drift is a
  dated, chosen state rather than a surprise.

  VOICE RULES THAT BIND ANY EDIT TO THIS FILE, all locked brand_token rows:
    voice.colour-discipline  never bright or saturated colours
    voice.register           quiet authority
    voice.motif              Expensive. Elite. Engineered. Porsche, not Lamborghini.
    voice.no-em-dashes       single hyphens with spaces only
*/

:root{
  /* colour - brand_token category colour, css_var names exactly as recorded */
  --core:#263238;       /* canvas-dark, the page ground */
  --charcoal:#45565B;   /* body-grey, surfaces */
  --green:#2E7D6A;      /* engine-green, THE accent */
  --green-lite:#3E9E84; /* engine-green-light. Text links on dark wear it.
                           4.03:1 on Core, so large text and links only; small
                           labels wear Ash instead. Ruled 20 Aug 2026. */
  --rust:#C28E5C;       /* copper-bronze, rare highlight */
  --sand:#F6F3ED;       /* sandstone, marks on dark only */
  --mist:#C7D0D0;       /* primary writing on dark, never white */
  --ash:#9FA9A9;        /* secondary writing on dark */

  /* type - brand_token category type */
  --font-head:'Jost',sans-serif;
  --font-body:'Outfit',system-ui,sans-serif;

  --hairline:rgba(159,169,169,.18);
  --wrap:1080px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);font-weight:300;
  background:var(--core);color:var(--mist);line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
/* Weight cap: nothing on a Redigi surface renders bolder than Medium. */
b,strong,h1,h2,h3,h4{font-weight:500}
img{max-width:100%}
a{color:var(--green-lite);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
/* Focus must stay visible. Do not remove without replacing. */
a:focus-visible,button:focus-visible{outline:2px solid var(--green-lite);outline-offset:3px;border-radius:3px}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 40px}

.skip{position:absolute;left:-9999px;top:0;background:var(--green);color:var(--sand);padding:10px 18px;z-index:20}
.skip:focus{left:12px;top:12px;text-decoration:none}

/* ---------- top bar ---------- */
/* Sticky on every page, 31 Aug 2026: Pamela clicked the top menu, landed on a
   subpage, and the chrome vanished - "as soon you start clicking the menu the
   sticky info goes away". One header behaviour across the whole site. */
header{padding:16px 0;position:sticky;top:0;z-index:50;background:var(--core);
  border-bottom:1px solid var(--hairline)}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px}
header img{height:30px;display:block}
.topnav{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.topnav a{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--ash)}
.topnav a:hover,.topnav a[aria-current="page"]{color:var(--green-lite);text-decoration:none}

/* ---------- page head ---------- */
.pagehead{padding:76px 0 8px}
.kicker{font-family:var(--font-head);font-weight:400;text-transform:uppercase;
  letter-spacing:.35em;font-size:12px;color:var(--ash);margin-bottom:18px}
h1{font-family:var(--font-head);font-weight:300;font-size:clamp(34px,5vw,50px);
  letter-spacing:.01em;color:var(--mist);line-height:1.15}
.lede{font-size:clamp(17px,2.2vw,19px);color:var(--mist);margin:24px 0 0;max-width:660px;font-weight:300}
.sublead{color:var(--ash);font-size:17px;max-width:640px;margin-bottom:52px}

section{padding:76px 0;border-top:1px solid var(--hairline)}
section:first-of-type{border-top:0}
h2{font-family:var(--font-head);font-weight:300;font-size:32px;letter-spacing:.02em;
  color:var(--mist);margin-bottom:12px}
h3{font-family:var(--font-head);font-weight:400;color:var(--mist)}
p+p{margin-top:14px}

/* ---------- the suite list ---------- */
.suite{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:38px}
.svc{border:1px solid var(--hairline);border-radius:12px;padding:30px 28px;background:rgba(69,86,91,.14)}
.svc img{height:38px;width:auto;display:block;margin-bottom:20px}
.svc h3{font-size:20px;margin-bottom:10px;line-height:1.3}
.svc .hook{font-size:15.5px;color:var(--mist);margin-bottom:10px}
.svc .detail{font-size:14.5px;color:var(--ash)}

/* ---------- fact list, used by the contact page ---------- */
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:34px 48px;margin-top:34px}
.facts>div{border-top:1px solid var(--hairline);padding-top:22px}
.facts dt{font-size:12.5px;text-transform:uppercase;letter-spacing:.18em;
  color:var(--ash);margin-bottom:10px;font-weight:500}
.facts dd{font-size:16px;color:var(--mist)}
.facts dd .sub{display:block;font-size:13.5px;color:var(--ash);margin-top:6px}

.btn{font-family:var(--font-body);font-weight:500;font-size:15px;letter-spacing:.04em;
  border-radius:8px;padding:13px 28px;display:inline-block;border:1.6px solid transparent}
.btn-primary{background:var(--green);color:var(--sand)}
.btn-primary:hover{text-decoration:none;filter:brightness(1.07)}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--hairline);padding:56px 0 64px;margin-top:20px}
footer .wrap{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap}
/* The one footer, 31 Aug 2026: the studio's powered-by chip, no link-aways. */
footer .pby{display:flex;align-items:center;gap:9px;font-family:var(--font-head);
  font-weight:400;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ash);margin-bottom:16px}
footer .pby img{height:18px;opacity:.85;display:block}
footer .legal{margin-top:10px}
.legal{font-size:12.5px;color:var(--ash)}
.legal a{color:var(--ash);text-decoration:underline;text-underline-offset:3px}
.legal a:hover{color:var(--green-lite)}
/* The legal links, in the same quiet ash register heyrova.com uses for them. */
.flinks{display:flex;gap:20px;flex-wrap:wrap;margin-top:12px}
.flinks a{font-size:12.5px;color:var(--ash);text-decoration:none}
.flinks a:hover{color:var(--green-lite);text-decoration:underline;text-underline-offset:3px}
.tagline{font-family:var(--font-head);font-weight:300;font-size:16px;color:var(--mist);text-align:right}
.place{font-size:12.5px;color:var(--ash);text-align:right;margin-top:8px}

@media(max-width:900px){
  .wrap{padding:0 24px}
  section{padding:60px 0}
  .suite{grid-template-columns:1fr}
  .facts{grid-template-columns:1fr;gap:26px}
  .tagline,.place{text-align:left}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}
}
