/* ============================================================
   Mark Tonge — premium layer
   Loaded AFTER styles.css. Adds the dark editorial hero,
   motion, refined nav, upgraded cards, quote band, condensed
   footer. Scoped largely to .home so other pages are untouched
   until we roll it out. Australian English throughout.
   ============================================================ */

/* ---- motion primitives ---- */
.js [data-reveal]{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .9s cubic-bezier(.22,.7,.2,1), transform .9s cubic-bezier(.22,.7,.2,1);
  will-change:opacity, transform;
}
.js [data-reveal].is-visible{ opacity:1; transform:none; }
[data-reveal][data-delay="1"]{ transition-delay:.10s; }
[data-reveal][data-delay="2"]{ transition-delay:.20s; }
[data-reveal][data-delay="3"]{ transition-delay:.30s; }
[data-reveal][data-delay="4"]{ transition-delay:.40s; }

/* ---- refined sticky nav (home: transparent over the dark hero) ---- */
.home .site-header{
  position:fixed; top:0; left:0; right:0;
  background:transparent;
  border-bottom:1px solid transparent;
  backdrop-filter:none;
  transition:background .4s ease, border-color .4s ease, padding .4s ease, backdrop-filter .4s ease;
}
.home .site-header__inner{ transition:padding .4s ease; }
.home .site-header .brand__name{ color:var(--paper); transition:color .4s ease; }
.home .site-header .brand__sub{ color:var(--gold-soft); }
.home .site-header .nav a{ color:rgba(247,244,238,.82); }
.home .site-header .nav a:hover,
.home .site-header .nav a[aria-current="page"]{ color:#fff; border-bottom-color:var(--gold); }

.home .site-header.scrolled{
  background:color-mix(in srgb, var(--paper) 90%, transparent);
  border-bottom-color:var(--line);
  backdrop-filter:saturate(1.1) blur(8px);
  box-shadow:0 6px 24px -18px rgba(2,29,73,.55);
}
.home .site-header.scrolled .site-header__inner{ padding-block:.62rem; }
.home .site-header.scrolled .brand__name{ color:var(--navy); }
.home .site-header.scrolled .nav a{ color:var(--ink); }
.home .site-header.scrolled .nav a:hover,
.home .site-header.scrolled .nav a[aria-current="page"]{ color:var(--navy); }

/* ---- hero ---- */
.hero-x{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(120% 90% at 82% 8%, #0a2a5e 0%, rgba(10,42,94,0) 55%),
    linear-gradient(160deg, #021d49 0%, #02173a 60%, #01112c 100%);
  color:var(--paper);
  padding-block:clamp(8.5rem,18vh,12rem) clamp(4.5rem,9vh,7rem);
  min-height:92vh;
  display:flex;
  align-items:center;
}
.hero-x .wrap{ position:relative; z-index:3; width:100%; }
.hero-x__eyebrow{ color:var(--gold-soft); }
.hero-x__title{
  font-family:var(--font-display);
  color:var(--paper);
  font-weight:500;
  line-height:.98;
  font-size:clamp(3.4rem, 9.5vw, 7rem);
  letter-spacing:.01em;
  margin:.18em 0 0;
}
.hero-x__title .em{ font-style:italic; color:var(--gold-soft); }
.hero-x__rule{
  width:0; height:1.5px; background:var(--gold);
  margin:1.5rem 0 1.4rem; opacity:.9;
  animation:ruleGrow 1.1s .35s cubic-bezier(.22,.7,.2,1) forwards;
}
@keyframes ruleGrow{ to{ width:74px; } }
.hero-x__lead{
  font-family:var(--font-body);
  font-style:italic;
  color:#cdd8e8;
  font-size:clamp(1.25rem,2.2vw,1.62rem);
  line-height:1.5;
  max-width:42ch;
  margin:0;
}
.hero-x__cta{ display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2.4rem; }
.hero-x__chips{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:2.6rem; }
.chip{
  font-family:var(--font-label); font-size:.7rem; letter-spacing:.16em; text-transform:uppercase;
  color:#d8e0ee; font-weight:600;
  border:1px solid rgba(202,174,122,.38);
  background:rgba(255,255,255,.04);
  border-radius:999px; padding:.5rem 1rem;
  display:inline-flex; align-items:center; gap:.5rem;
}
.chip::before{ content:""; width:5px; height:5px; border-radius:50%; background:var(--gold); display:inline-block; }

/* scroll cue */
.hero-x__cue{
  position:absolute; left:50%; bottom:1.7rem; transform:translateX(-50%);
  z-index:3; font-family:var(--font-label); font-size:.62rem; letter-spacing:.28em;
  text-transform:uppercase; color:rgba(216,224,238,.6); display:flex; flex-direction:column;
  align-items:center; gap:.5rem;
}
.hero-x__cue span{ width:1px; height:34px; background:linear-gradient(var(--gold-soft), transparent); animation:cue 1.8s ease-in-out infinite; }
@keyframes cue{ 0%,100%{ transform:scaleY(.55); opacity:.5; transform-origin:top; } 50%{ transform:scaleY(1); opacity:1; transform-origin:top; } }

/* gold arc motif + grain */
.hero-x__arc{ position:absolute; inset:0; z-index:1; pointer-events:none; }
.hero-x__arc svg{ position:absolute; top:-12%; right:-8%; width:min(70vw,820px); height:auto; opacity:.55; }
.hero-x__arc path{
  fill:none; stroke:url(#mtgold); stroke-width:1.4;
  stroke-dasharray:2600; stroke-dashoffset:2600;
  animation:draw 2.6s .2s ease forwards;
}
.hero-x__arc path.a2{ animation-duration:3.2s; opacity:.6; }
@keyframes draw{ to{ stroke-dashoffset:0; } }
.hero-x::after{
  content:""; position:absolute; inset:0; z-index:2; pointer-events:none; opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");
}

/* ---- buttons ---- */
.btn--lg{ padding:.95rem 1.8rem; font-size:.84rem; }
.btn--ghost-light{
  font-family:var(--font-label); font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600;
  display:inline-flex; align-items:center; gap:.6rem; padding:.95rem 1.7rem; border-radius:var(--radius);
  color:var(--paper); text-decoration:none; border:1.5px solid rgba(202,174,122,.55);
  transition:gap .2s ease, border-color .2s ease, background .2s ease;
}
.btn--ghost-light:hover{ gap:.95rem; border-color:var(--gold); background:rgba(202,174,122,.10); }
.btn--gold .arr,.btn--ghost-light .arr,.textlink .arr{ transition:transform .2s ease; }
.btn--gold:hover .arr,.btn--ghost-light:hover .arr,.textlink:hover .arr{ transform:translateX(4px); }

/* ---- stats strip ---- */
.statstrip{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--paper-card); }
.statstrip__grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.stat{ padding:clamp(1.6rem,3.5vw,2.4rem) 1rem; text-align:center; border-left:1px solid var(--line-soft); }
.stat:first-child{ border-left:0; }
.stat__num{ font-family:var(--font-display); font-size:clamp(2rem,4vw,2.8rem); color:var(--navy); line-height:1; }
.stat__num .pre{ color:var(--gold); }
.stat__label{ font-family:var(--font-label); font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); margin-top:.6rem; }
@media (max-width:680px){ .statstrip__grid{ grid-template-columns:repeat(2,1fr); } .stat:nth-child(3){ border-left:0; } }

/* ---- business cards upgrade ---- */
.card--biz{ position:relative; overflow:hidden; padding-top:clamp(2.2rem,4vw,3rem); }
.card--biz .card__num{
  position:absolute; top:1rem; right:1.2rem;
  font-family:var(--font-display); font-size:2.4rem; line-height:1; color:var(--line); transition:color .25s ease;
}
.card--biz::before{ content:""; position:absolute; left:0; top:0; height:2.5px; width:0; background:var(--gold); transition:width .35s cubic-bezier(.22,.7,.2,1); }
a.card--biz:hover::before{ width:100%; }
a.card--biz:hover{ transform:translateY(-4px); box-shadow:0 24px 50px -34px rgba(2,29,73,.5); }
a.card--biz:hover .card__num{ color:var(--gold-soft); }
.card__more .arr{ display:inline-block; transition:transform .2s ease; }
a.card--biz:hover .card__more .arr{ transform:translateX(4px); }

/* ---- quote band ---- */
.quoteband{ background:linear-gradient(160deg,#021d49,#01142f); color:var(--paper); }
.quoteband .wrap{ padding-block:clamp(4rem,9vw,7rem); }
.quoteband__q{
  font-family:var(--font-display); font-style:italic; font-weight:500;
  font-size:clamp(1.7rem,4.2vw,3rem); line-height:1.18; color:var(--paper); max-width:20ch; margin:0;
}
.quoteband__q .em{ color:var(--gold-soft); font-style:italic; }
.quoteband__rule{ width:64px; height:1.5px; background:var(--gold); border:0; margin:0 0 1.8rem; }
.quoteband__by{ font-family:var(--font-label); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-soft); margin-top:1.8rem; }

/* ---- type bump on light section headings ---- */
.home .section .display{ letter-spacing:.005em; }

/* ---- compact footer ---- */
.site-footer{ padding-top:clamp(1.8rem,3.4vw,2.5rem); }
.site-footer__inner{
  grid-template-columns:1fr auto;
  align-items:center;
  gap:clamp(1.6rem,5vw,4rem);
  padding-bottom:1.3rem;
}
.footer-brand__name{ font-size:1.2rem; }
.site-footer__sub{ margin-top:.5rem; font-size:.54rem; }
.site-footer__heading{ margin-bottom:.7rem; }
.site-footer__firms ul{ grid-template-columns:1fr 1fr; gap:.4rem 2.4rem; }
.site-footer__firms a{ font-size:.98rem; }
.site-footer__firms span{ display:none; }
.site-footer__base{ padding-block:.85rem 1.3rem; }
@media (max-width:600px){
  .site-footer__inner{ grid-template-columns:1fr; gap:1.4rem; align-items:start; }
}

/* ---- inner-page entrance (CSS-only, no JS) ---- */
.lift main > section,
.lift main > article{ animation: liftIn .7s both cubic-bezier(.22,.7,.2,1); }
.lift main > :nth-child(2){ animation-delay:.05s; }
.lift main > :nth-child(3){ animation-delay:.10s; }
.lift main > :nth-child(4){ animation-delay:.14s; }
.lift main > :nth-child(n+5){ animation-delay:.18s; }
@keyframes liftIn{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }

/* ---- reduced motion ---- */
@media (prefers-reduced-motion: reduce){
  [data-reveal]{ opacity:1; transform:none; transition:none; }
  .hero-x__rule{ width:74px; animation:none; }
  .hero-x__arc path{ stroke-dashoffset:0; animation:none; }
  .hero-x__cue span{ animation:none; }
  .lift main > section, .lift main > article{ animation:none; }
}
