/* ============================================================
   SUPERTAX — "Trusted Advisory" design system
   THESIS: an Australian accounting practice presented in the register of
   a serious, century-scale professional-services firm — deep navy,
   confident blue, warm gold restraint, clean white ground — in the
   spirit of the large US advisory firms (Plante Moran) rather than the
   flat teal/mint fintech template the category defaults to.
   OWN-WORLD: navy as the authority colour (Committed strategy), a
   brighter working blue for interaction, gold used sparingly as the
   accreditation/quality mark. Lato Black for every heading and control
   (confident, sans, unmistakably corporate), Rasa — a text serif — for
   long-form reading copy, so the page reads like a considered document,
   not a marketing slide.
   ============================================================ */

/* Manrope is loaded from <head> with preconnect (no render-blocking @import chain). */

:root{
  /* --- palette: taken directly from the Supertax logo ---
     logo sky blue  #27a7df  (SUPER wordmark, hand)
     logo orange    #f59a22  (TAX wordmark, growth arrow, tagline)
     trust navy     #0c2a47  (dark sections: footer, banners). Heroes are light:
     white-to-sky-blue grounds with navy text for an open, trustworthy feel. */
  --ink:        #0b1a2c;
  --ink-soft:   #4b5a6d;
  --paper:      #ffffff;
  --paper-dim:  #f4f8fb;
  --paper-line: #e0e8f0;
  --navy-900:   #0c2a47;
  --navy-800:   #11375c;
  --navy-700:   #0b1a2c;
  --navy-600:   #0f73ab;
  --blue-700:   #0f73ab;   /* logo blue, deepened for AA text on white */
  --blue-500:   #27a7df;   /* logo blue, sampled from the SUPER wordmark */
  --blue-300:   #7ccbf0;
  --gold-900:   #9a5507;
  --gold-700:   #b8680c;   /* logo orange, deepened for text on white */
  --gold-500:   #f59a22;   /* logo orange */
  --gold-400:   #f8b150;
  --gold-300:   #fbcb86;
  --gold-100:   #fff3e2;

  --font-display: "Manrope", "Segoe UI", Arial, sans-serif;
  --font-body: "Manrope", "Segoe UI", Arial, sans-serif;
  --font-label: "Manrope", "Segoe UI", Arial, sans-serif;

  --measure: 68ch;
  --ease-out: cubic-bezier(.16,1,.3,1);
  --radius: 0px;
}

/* ---------- reset ---------- */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; overflow-x: hidden; }
body{
  margin: 0;
  overflow-x: hidden;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  font-size: 16px;
  line-height: 1.65;
}
img{ max-width: 100%; display: block; }
a{ color: inherit; text-decoration: none; }
ul{ list-style: none; margin: 0; padding: 0; }
h1,h2,h3,h4{ font-family: var(--font-display); margin: 0; font-weight: 800; letter-spacing: -0.025em; line-height: 1.15; color: var(--ink); }
p{ margin: 0; }
h5, h6{ margin: 0; }
button{ font: inherit; cursor: pointer; }
input, textarea{ font: inherit; }

:focus-visible{
  outline: 3px solid var(--blue-700);
  outline-offset: 3px;
}
.marble-dark :focus-visible, .mobile-menu :focus-visible, .article-cta :focus-visible, .aside-cta :focus-visible{ outline-color: var(--gold-500); }
.skip-link{
  position: fixed; left: 1rem; top: -100px; z-index: 1000;
  padding: .75rem 1.2rem; background: var(--ink); color: #fff;
  font-weight: 700; font-size: .92rem; border-radius: 6px;
  transition: top .2s ease;
}
.skip-link:focus{ top: 1rem; outline: 3px solid var(--gold-500); outline-offset: 2px; }
main:focus{ outline: none; }

.container{
  width: min(1180px, 100% - 3rem);
  margin-inline: auto;
}

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

/* ---------- flat surface utilities (no texture — clean corporate ground) ---------- */
.marble-dark{
  background-color: var(--navy-900);
  background-image:
    radial-gradient(60% 80% at 100% 0%, rgba(39,167,223,.16), transparent 60%),
    radial-gradient(40% 60% at 0% 100%, rgba(245,154,34,.07), transparent 60%),
    linear-gradient(160deg, var(--navy-800) 0%, var(--navy-900) 70%);
  color: var(--paper);
}
.marble-dark :is(h1,h2,h3,h4){ color: var(--paper); }

/* ---------- buttons ---------- */
.btn{
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: .85rem 1.6rem;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: .92rem;
  letter-spacing: .005em;
  border: 1.5px solid transparent;
  border-radius: var(--radius);
  transition: transform .5s var(--ease-out), background-color .35s ease, color .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.btn svg{ width: 1em; height: 1em; transition: transform .45s var(--ease-out); }
.btn:hover svg{ transform: translate(3px,-3px); }

.btn-brass{
  background: var(--gold-500);
  border-color: var(--gold-500);
  color: var(--navy-900);
  box-shadow: 0 8px 24px -12px rgba(245,154,34,.7);
}
.btn-brass:hover{ background: var(--gold-400); border-color: var(--gold-400); color: var(--navy-900); transform: translateY(-2px); box-shadow: 0 14px 30px -12px rgba(245,154,34,.75); }

.btn-outline{
  border-color: rgba(255,255,255,.35);
  color: var(--paper);
}
.btn-outline:hover{ background: rgba(39,167,223,.12); border-color: var(--blue-500); color: #fff; }

.btn-outline-dark{
  border-color: var(--paper-line);
  color: var(--ink);
}
.btn-outline-dark:hover{ background: var(--paper-dim); border-color: var(--blue-500); color: var(--blue-700); }

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position: fixed;
  inset-inline: 0;
  top: 0;
  z-index: 100;
  isolation: isolate;
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(12px) saturate(1.3);
  border-bottom: 1px solid var(--paper-line);
}
.site-header .container{
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 76px;
}
.brand{
  display: flex;
  align-items: center;
  width: 196px;
}
.brand-logo{
  display: block;
  width: 100%;
  height: auto;
}

.main-nav{ display: flex; align-items: center; gap: 2.4rem; }
.main-nav ul{ display: flex; gap: 2.1rem; }
.main-nav a{
  font-family: var(--font-label);
  font-size: .93rem;
  font-weight: 600;
  color: var(--ink-soft);
  transition: color .25s ease;
  position: relative;
  padding-bottom: 4px;
}
.main-nav a::after{
  content: "";
  position: absolute; left: 0; right: 100%; bottom: 0;
  height: 2px; background: var(--gold-500);
  transition: right .4s var(--ease-out);
}
.main-nav a:hover::after, .main-nav a[aria-current="page"]::after{ right: 0; }
.main-nav a:hover, .main-nav a[aria-current="page"]{ color: var(--ink); }

.nav-cta{
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .6rem 1.2rem;
  background: var(--navy-700);
  border: 1px solid var(--navy-700);
  color: #fff;
  font-family: var(--font-label);
  font-weight: 700;
  font-size: .88rem;
  transition: background-color .3s ease, border-color .3s ease, color .3s ease;
}
.main-nav .nav-cta{ color: #fff; padding-bottom: .6rem; }
.main-nav .nav-cta::after{ display: none; }
.main-nav .nav-cta:hover{ color: var(--navy-900); }
.nav-cta:hover{ background: var(--gold-500); border-color: var(--gold-500); color: var(--navy-900); }

.site-header{
  transition: background-color .4s ease, box-shadow .4s ease;
}
.site-header.is-scrolled{
  background: rgba(255,255,255,.97);
  box-shadow: 0 10px 30px -18px rgba(12,42,71,.35);
}
.site-header .brand{ transition: transform .4s var(--ease-out); transform-origin: left center; }
.site-header.is-scrolled .brand{ transform: none; }

/* ---------- menu button (tablet + mobile) ---------- */
.nav-toggle{
  display: none;
  align-items: center;
  gap: .6rem;
  height: 44px;
  padding: 0 1rem 0 1.1rem;
  border: 1px solid var(--paper-line);
  border-radius: 999px;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-label);
  font-size: .86rem;
  font-weight: 700;
  transition: border-color .25s ease, background-color .25s ease, box-shadow .25s ease;
}
.nav-toggle:hover{ border-color: var(--ink); box-shadow: 0 6px 18px -10px rgba(12,42,71,.35); }
.nav-toggle-lines{ display: grid; gap: 5px; width: 20px; }
.nav-toggle-lines span{ display: block; height: 2px; border-radius: 2px; background: currentColor; transition: width .35s var(--ease-out); }
.nav-toggle-lines span:nth-child(2){ width: 60%; justify-self: end; background: var(--gold-500); }
.nav-toggle:hover .nav-toggle-lines span:nth-child(2){ width: 100%; }

/* ---------- mobile menu drawer ---------- */
.mobile-menu{ position: fixed; inset: 0; z-index: 300; visibility: hidden; pointer-events: none; transition: visibility 0s linear .55s; }
.mobile-menu.is-open{ visibility: visible; pointer-events: auto; transition-delay: 0s; }
.mobile-menu-backdrop{
  position: absolute; inset: 0;
  background: rgba(12,42,71,.5);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  opacity: 0; transition: opacity .45s ease;
}
.mobile-menu.is-open .mobile-menu-backdrop{ opacity: 1; }
.mobile-menu-panel{
  position: absolute; top: 0; right: 0; bottom: 0;
  width: min(440px, 100%);
  display: flex; flex-direction: column;
  padding: 0 1.5rem calc(1.5rem + env(safe-area-inset-bottom));
  overflow-y: auto;
  scrollbar-width: none;
  color: var(--paper);
  background-color: var(--navy-900);
  background-image:
    radial-gradient(80% 50% at 100% 0%, rgba(39,167,223,.18), transparent 60%),
    radial-gradient(60% 40% at 0% 100%, rgba(245,154,34,.1), transparent 60%);
  box-shadow: -30px 0 60px -20px rgba(0,0,0,.5);
  transform: translateX(100%);
  transition: transform .55s var(--ease-out);
}
.mobile-menu-panel::before{
  content: ""; position: sticky; top: 0; display: block; flex: none;
  height: 3px; margin: 0 -1.5rem;
  background: linear-gradient(90deg, var(--blue-500) 0 62%, var(--gold-500) 62% 100%);
}
.mobile-menu.is-open .mobile-menu-panel{ transform: none; }
.mobile-menu-top{ display: flex; align-items: center; justify-content: space-between; height: 68px; margin-bottom: .8rem; flex: none; }
.mobile-menu-top .brand{ width: 150px; }
.mobile-menu-close{
  width: 44px; height: 44px; display: grid; place-items: center;
  border-radius: 999px; border: 1px solid rgba(255,255,255,.2);
  background: rgba(255,255,255,.04); color: var(--paper);
  transition: background-color .25s ease, border-color .25s ease;
}
.mobile-menu-close svg{ width: 18px; height: 18px; transition: transform .45s var(--ease-out); }
.mobile-menu-close:hover{ background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.4); }
.mobile-menu-close:hover svg{ transform: rotate(90deg); }

.mobile-menu-links{ list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.1); }
.mobile-menu-links li{
  border-bottom: 1px solid rgba(255,255,255,.1);
  opacity: 0; transform: translateX(28px);
  transition: opacity .45s ease, transform .6s var(--ease-out);
}
.mobile-menu.is-open .mobile-menu-links li{ opacity: 1; transform: none; transition-delay: calc(.12s + var(--i) * .055s); }
.mobile-menu-links a{
  display: flex; align-items: center; gap: 1rem;
  padding: .8rem 0;
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 5.5vw, 1.5rem); font-weight: 800; letter-spacing: -0.025em;
  color: var(--paper);
}
.mobile-menu-links .num{ width: 1.8rem; font-size: .74rem; font-weight: 700; letter-spacing: .04em; color: var(--blue-500); }
.mobile-menu-links .label{ transition: transform .4s var(--ease-out), color .25s ease; }
.mobile-menu-links .arrow{
  margin-left: auto; width: 38px; height: 38px; display: grid; place-items: center;
  border-radius: 999px; border: 1px solid rgba(255,255,255,.16);
  transition: background-color .25s ease, border-color .25s ease, color .25s ease, transform .4s var(--ease-out);
}
.mobile-menu-links .arrow svg{ width: 14px; height: 14px; }
.mobile-menu-links a:hover .label{ transform: translateX(4px); }
.mobile-menu-links a:hover .arrow{ background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.4); }
.mobile-menu-links a[aria-current="page"] .label{ color: var(--gold-500); }
.mobile-menu-links a[aria-current="page"] .num{ color: var(--gold-500); }
.mobile-menu-links a[aria-current="page"] .arrow{ background: var(--gold-500); border-color: var(--gold-500); color: var(--navy-900); }

.mobile-menu-foot{
  margin-top: auto; padding-top: 1.8rem; display: grid; gap: 1.2rem;
  opacity: 0; transform: translateY(16px);
  transition: opacity .45s ease, transform .6s var(--ease-out);
}
.mobile-menu.is-open .mobile-menu-foot{ opacity: 1; transform: none; transition-delay: .42s; }
.mobile-menu-foot .btn{ justify-content: center; width: 100%; }
.mobile-menu-contact{ display: grid; gap: .7rem; font-size: .92rem; color: rgba(255,255,255,.72); }
.mobile-menu-contact a, .mobile-menu-contact p{ display: flex; align-items: center; gap: .7rem; }
.mobile-menu-contact a:hover{ color: var(--paper); }
.mobile-menu-contact svg{ width: 18px; height: 18px; flex: none; color: var(--blue-500); }
body.menu-open{ overflow: hidden; }
body.menu-open .mobile-cta-bar{ transform: translateY(100%); }
@media (prefers-reduced-motion: reduce){
  .mobile-menu, .mobile-menu *, .mobile-menu-panel{ transition: none !important; }
}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position: relative;
  overflow: clip;
  padding-top: 132px;
  padding-bottom: 56px;
  isolation: isolate;
}
.hero::before{
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 56px 56px;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 85%);
  mask-image: linear-gradient(180deg, #000 0%, transparent 85%);
}
.hero::after{
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--blue-500) 0 62%, var(--gold-500) 62% 100%);
}
.hero .container{
  display: grid;
  grid-template-columns: 1.35fr .65fr;
  gap: 4rem;
  align-items: center;
}


.hero h1{
  font-size: clamp(2.1rem, 3.3vw, 3rem);
  line-height: 1.1;
  letter-spacing: -0.03em;
  color: var(--paper);
  max-width: 19ch;
}
.hero h1 em{
  font-style: normal;
  color: var(--gold-500);
}
.hero-sub{
  margin-top: 1.1rem;
  max-width: 56ch;
  font-family: var(--font-body);
  font-size: 1.04rem;
  line-height: 1.7;
  color: rgba(255,255,255,.74);
}
.hero-actions{ display: flex; gap: .85rem; margin-top: 1.7rem; flex-wrap: wrap; }

.hero-founder{ position: relative; justify-self: end; width: min(100%, 330px); }
.hero-portrait{
  margin: 0;
  width: 100%;
  border: 1px solid rgba(255,255,255,.14);
  background: var(--paper);
  box-shadow: 0 30px 60px -28px rgba(0,0,0,.8);
  overflow: hidden;
}
.hero-portrait .photo{
  aspect-ratio: 700 / 559;
  overflow: hidden;
}
.hero-portrait img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-portrait figcaption{
  display: grid;
  gap: .15rem;
  padding: .7rem .95rem .8rem;
  color: var(--ink);
  font-family: var(--font-label);
  border-top: 3px solid var(--gold-500);
  position: relative;
  background: var(--paper);
}
.hero-portrait strong{ font-size: .95rem; font-weight: 800; }
.hero-portrait span{ font-size: .72rem; font-weight: 600; color: var(--ink-soft); }
.hero-plaque{
  position: relative;
  width: calc(100% - 2rem);
  margin: -1px 0 0 2rem;
  border: 1px solid rgba(255,255,255,.12);
  border-top: 0;
  background: rgba(17,55,92,.9);
  padding: .8rem 1rem;
}
.hero-plaque dl{ display: grid; gap: .55rem; margin: 0; }
.hero-plaque .row{ display:flex; justify-content: space-between; gap: 1rem; align-items: baseline; padding-bottom: .55rem; border-bottom: 1px solid rgba(255,255,255,.1); }
.hero-plaque .row:last-child{ border-bottom: 0; padding-bottom: 0; }
.hero-plaque dt{ color: rgba(255,255,255,.5); font-size: .74rem; }
.hero-plaque dd{ margin: 0; font-family: var(--font-label); font-weight: 600; font-size: .8rem; color: #fff; text-align: right; }
.hero-plaque dd a:hover{ color: var(--gold-400); }

.credential-strip{
  margin-top: 2.2rem;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(255,255,255,.1);
  display: flex;
  align-items: center;
  gap: 1.6rem;
  flex-wrap: wrap;
}
.credential-strip .label{
  font-family: var(--font-label);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
  display: block;
}
.credential-row{
  display: flex;
  align-items: center;
  gap: 1.6rem;
  flex-wrap: wrap;
}
.credential-row{ gap: .6rem; }
.credential-row img{
  height: 44px;
  width: auto;
  padding: 4px 8px;
  background: #fff;
  border-radius: 4px;
  opacity: .92;
  transition: opacity .3s ease, transform .3s var(--ease-out);
}
.credential-row img:hover{ opacity: 1; transform: translateY(-2px); }

/* ============================================================
   SECTION SCAFFOLDING
   ============================================================ */
section{ padding: 6rem 0; }
.section-head{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2rem;
  align-items: end;
  margin-bottom: 3.2rem;
}
.section-head h2{
  font-size: clamp(1.75rem, 2.7vw, 2.4rem);
  max-width: 18ch;
  position: relative;
  padding-top: 1.1rem;
}
.section-head h2::before{
  content: "";
  position: absolute; top: 0; left: 0;
  width: 44px; height: 3px;
  background: linear-gradient(90deg, var(--blue-500) 0 60%, var(--gold-500) 60% 100%);
}
.section-lede{ max-width: 42ch; color: var(--ink-soft); font-size: 1.02rem; }
.on-dark .section-lede{ color: rgba(255,255,255,.72); }
.on-dark h2{ color: var(--paper); }

/* ---------- directory board (services overview) ---------- */
.directory{
  border-top: 1px solid var(--paper-line);
}
.directory-row{
  display: grid;
  grid-template-columns: 60px 1fr 1.3fr 44px;
  align-items: center;
  gap: 1.8rem;
  padding: 2rem 0;
  border-bottom: 1px solid var(--paper-line);
  transition: background-color .35s ease;
  text-decoration: none;
  color: inherit;
  position: relative;
  overflow: clip;
}
.directory-row::before{
  content: "";
  position: absolute; inset: 0;
  background: var(--paper-dim);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .55s var(--ease-out);
  z-index: -1;
}
.directory-row:hover::before{ transform: scaleX(1); }
.directory-icon{ width: 44px; height: 44px; color: var(--blue-700); flex-shrink: 0; transition: transform .5s var(--ease-out); }
.directory-icon svg{ width: 100%; height: 100%; }
.directory-row:hover .directory-icon{ transform: rotate(-8deg) scale(1.08); }
.directory-name{
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  transition: transform .5s var(--ease-out), color .3s ease;
}
.directory-row:hover .directory-name{ transform: translateX(6px); color: var(--blue-700); }
.directory-desc{ color: var(--ink-soft); font-size: .98rem; max-width: 46ch; }
.directory-arrow{
  width: 40px; height: 40px;
  border: 1px solid var(--paper-line);
  display: flex; align-items: center; justify-content: center;
  transition: border-color .3s ease, background-color .3s ease, transform .4s var(--ease-out);
  justify-self: end;
}
.directory-arrow svg{ width: 16px; height: 16px; }
.directory-row:hover .directory-arrow{ background: var(--gold-500); border-color: var(--gold-500); color: var(--navy-900); transform: rotate(45deg); }

/* ---------- affiliation plaque strip ---------- */
.affil-strip{
  display: flex;
  flex-wrap: wrap;
  gap: 1px;
  background: var(--paper-line);
  border: 1px solid var(--paper-line);
}
.affil-item{
  flex: 1 1 200px;
  background: var(--paper);
  padding: 2rem 1.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 108px;
}
.affil-item img{ max-height: 52px; width: auto; transition: transform .35s var(--ease-out); }
.affil-item:hover img{ transform: scale(1.04); }

/* ---------- ledger testimonials ---------- */
.ledger{
  background: var(--paper-dim);
  border: 1px solid var(--paper-line);
}
.ledger-entry{
  display: grid;
  grid-template-columns: 210px 1fr;
  gap: 2.4rem;
  padding: 2.6rem;
  border-bottom: 1px solid var(--paper-line);
}
.ledger-entry:last-child{ border-bottom: 0; }
.ledger-meta{ display: flex; flex-direction: column; gap: .6rem; }
.ledger-client{ font-family: var(--font-display); font-weight: 800; font-size: 1.05rem; }
.ledger-stamp{
  display: inline-flex; align-items: center; gap: .4rem;
  font-family: var(--font-label); font-weight: 700; font-size: .72rem; letter-spacing: .06em;
  color: var(--blue-700);
  border: 1px solid rgba(15,115,171,.4);
  background: rgba(39,167,223,.06);
  padding: .25rem .6rem;
  width: fit-content;
  text-transform: uppercase;
}
.ledger-stamp svg{ width: 12px; height: 12px; }
.ledger-quote{ font-size: 1.02rem; line-height: 1.75; color: var(--ink-soft); }
.ledger-quote::before{ content: "\201C"; color: var(--gold-500); font-family: var(--font-display); font-weight: 800; font-size: 1.6em; line-height: 0; vertical-align: -.35em; margin-right: .1em; }

/* ---------- CTA banner ---------- */
.cta-banner{
  position: relative;
  overflow: clip;
  text-align: left;
  padding: 6rem 0;
  background-image:
    linear-gradient(90deg, rgba(12,42,71,.98) 0%, rgba(12,42,71,.94) 46%, rgba(17,55,92,.72) 72%, rgba(15,115,171,.45) 100%),
    url("https://images.unsplash.com/photo-1554224155-6726b3ff858f?auto=format&fit=crop&w=1800&q=85");
  background-position: center, right center;
  background-size: cover;
}
.cta-banner::before{
  content: "";
  position: absolute; left: 0; right: 0; top: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--blue-500) 0 62%, var(--gold-500) 62% 100%);
}
.cta-banner .container{ position: relative; z-index: 1; max-width: 1180px; }
.cta-banner h2{ font-size: clamp(1.8rem, 3.2vw, 2.6rem); color: var(--paper); max-width: 16ch; }
.cta-banner p{ color: rgba(255,255,255,.92); margin-top: 1.2rem; font-size: 1.08rem; max-width: 48ch; }
.cta-banner .hero-actions{ justify-content: flex-start; margin-top: 2.4rem; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{ padding-top: 5.5rem; padding-bottom: 0; }
.footer-grid{
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 3rem;
  padding-bottom: 4rem;
}
.footer-brand .brand{
  width: 230px;
  margin-bottom: 1.4rem;
}
.footer-brand p{ color: rgba(255,255,255,.6); max-width: 36ch; font-size: .92rem; }
.footer-social{ display: flex; gap: .9rem; margin-top: 1.6rem; }
.footer-social a{
  width: 38px; height: 38px;
  border: 1px solid rgba(255,255,255,.25);
  display: flex; align-items: center; justify-content: center;
  transition: border-color .3s ease, color .3s ease;
}
.footer-social svg{ width: 16px; height: 16px; }
.footer-social a:hover{ border-color: var(--blue-500); color: var(--blue-500); }

.footer-col .footer-title{
  font-family: var(--font-label);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gold-500);
  margin-bottom: 1.3rem;
}
.footer-col ul{ display: flex; flex-direction: column; gap: .8rem; }
.footer-col a, .footer-col p{ color: rgba(255,255,255,.72); font-size: .95rem; }
.footer-col a:hover{ color: var(--gold-400); }
.footer-col .mono{ font-family: var(--font-label); }

.footer-bottom{
  border-top: 1px solid rgba(255,255,255,.14);
  padding: 1.8rem 0;
  display: flex;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
  color: rgba(255,255,255,.62);
  font-size: .82rem;
}
.footer-bottom a:hover{ color: var(--gold-400); }

/* ============================================================
   PAGE HERO (interior pages)
   ============================================================ */
.page-hero{
  position: relative;
  padding-top: 128px;
  padding-bottom: 3.4rem;
  text-align: left;
}
.page-hero::after{
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--blue-500) 0 62%, var(--gold-500) 62% 100%);
}
.page-hero h1{ font-size: clamp(2rem, 3.6vw, 2.8rem); color: var(--paper); max-width: 22ch; letter-spacing: -0.03em; }
.page-hero p{ margin-top: 1rem; max-width: 60ch; color: rgba(255,255,255,.72); font-size: 1.02rem; }
.breadcrumb{ font-family: var(--font-label); font-size: .78rem; letter-spacing: .06em; color: rgba(255,255,255,.5); margin-bottom: 1.6rem; display:flex; gap:.6rem; }
.breadcrumb a:hover{ color: var(--gold-400); }

/* ---------- about page ---------- */
.founder{
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 4rem;
  align-items: start;
}
.founder-plate{
  border: 1px solid var(--paper-line);
  padding: 2.4rem;
  background: var(--paper-dim);
  position: sticky;
  top: 120px;
}
.founder-photo{
  width: calc(100% + 4.8rem);
  max-width: none;
  margin: -2.4rem -2.4rem 1.8rem;
  aspect-ratio: 1.12 / 1;
  object-fit: cover;
  object-position: 50% 50%;
}
.founder-name{ font-size: 1.4rem; letter-spacing: -0.02em; }
.founder-plate .role{ color: var(--gold-700); font-family: var(--font-label); font-size: .82rem; margin-top: .4rem; display:block; letter-spacing:.03em; }
.founder-creds{ margin-top: 1.6rem; display: flex; flex-direction: column; gap: .55rem; }
.founder-creds li{ font-size: .88rem; color: var(--ink-soft); padding-left: 1.1rem; position: relative; }
.founder-creds li::before{ content:""; position:absolute; left:0; top:.5em; width:5px; height:1px; background: var(--gold-500); }

.about-copy p{ margin-bottom: 1.3rem; max-width: var(--measure); color: var(--ink-soft); }
.about-copy p:first-child{ font-size: 1.14rem; color: var(--ink); }

.principles-list{ list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(230px,1fr)); gap: 1px; background: var(--paper-line); border: 1px solid var(--paper-line); margin-top: 2rem; }
.principles-list li{ background: var(--paper); padding: 2.2rem 2rem; position: relative; }
.principles-list li::before{ content:""; position:absolute; top: 2.2rem; left: 2rem; width: 26px; height: 2px; background: var(--gold-500); }
.marble-dark .principles-list h3, .principles-list h3{ color: var(--ink); font-size: 1.05rem; margin-bottom: .6rem; margin-top: 1.6rem; }
.principles-list p{ font-size: .92rem; color: var(--ink-soft); }

/* ---------- services page ---------- */
.service-block{
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 4rem;
  align-items: center;
  padding: 5rem 0;
  border-bottom: 1px solid var(--paper-line);
}
.service-block:first-of-type{ padding-top: 0; }
.service-block:last-of-type{ border-bottom: 0; }
.service-block.reverse{ grid-template-columns: 1.1fr .9fr; }
.service-block.reverse .service-visual{ order: 2; }
.service-block h2{ font-size: clamp(1.7rem, 2.6vw, 2.3rem); margin-bottom: 1.2rem; }
.service-block p{ color: var(--ink-soft); max-width: 48ch; margin-bottom: 1rem; }
.service-block .btn{ margin-top: 1.6rem; }
.service-visual{
  aspect-ratio: 4/3.4;
  border: 1px solid var(--paper-line);
  background-color: var(--navy-700);
  background-position: center;
  background-size: cover;
  display: flex; align-items: center; justify-content: center;
  position: relative;
  overflow: hidden;
}
.service-visual::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(12,42,71,.8), rgba(39,167,223,.3));
}
.service-visual svg{ width: 42%; color: #fff; opacity: .92; position: relative; z-index: 1; }
.service-block:nth-of-type(1) .service-visual{ background-image: url("https://images.unsplash.com/photo-1554224155-6726b3ff858f?auto=format&fit=crop&w=1200&q=80"); }
.service-block:nth-of-type(2) .service-visual{ background-image: url("https://images.unsplash.com/photo-1454165804606-c3d57bc86b40?auto=format&fit=crop&w=1200&q=80"); }
.service-block:nth-of-type(3) .service-visual{ background-image: url("https://images.unsplash.com/photo-1556761175-b413da4baf72?auto=format&fit=crop&w=1200&q=80"); }
.service-block:nth-of-type(4) .service-visual{ background-image: url("https://images.unsplash.com/photo-1551836022-d5d88e9218df?auto=format&fit=crop&w=1200&q=80"); }
.service-block:nth-of-type(5) .service-visual{ background-image: url("https://images.unsplash.com/photo-1516321318423-f06f85e504b3?auto=format&fit=crop&w=1200&q=80"); }

/* ---------- contact page ---------- */
.contact-grid{
  display: grid;
  grid-template-columns: 1fr .85fr;
  gap: 4rem;
  align-items: start;
}
.field{ margin-bottom: 1.4rem; }
.field label{
  display: block; font-family: var(--font-label); font-weight: 700; font-size: .74rem; letter-spacing: .1em;
  text-transform: uppercase; color: var(--blue-700); margin-bottom: .55rem;
}
.field input, .field textarea{
  width: 100%;
  border: 1px solid var(--paper-line);
  background: var(--paper);
  padding: .9rem 1rem;
  color: var(--ink);
  transition: border-color .3s ease, box-shadow .3s ease;
}
.field input:focus, .field textarea:focus{ border-color: var(--gold-500); box-shadow: 0 0 0 3px rgba(245,154,34,.22); outline: none; }
.field textarea{ resize: vertical; min-height: 130px; }
.form-note{ font-size: .84rem; color: var(--ink-soft); margin-top: 1.2rem; }
.form-status{ margin-top: 1rem; font-size: .9rem; }
.form-status[data-state="ok"]{ color: var(--navy-700); }
.form-status[data-state="err"]{ color: #8a2b2b; }

.info-plate{ border: 1px solid var(--paper-line); background: var(--paper-dim); padding: 2.2rem; }
.info-plate + .info-plate{ margin-top: 1px; }
.info-row{ display: flex; gap: 1rem; align-items: flex-start; padding: 1.1rem 0; border-bottom: 1px solid var(--paper-line); }
.info-row:last-child{ border-bottom: 0; }
.info-row svg{ width: 20px; height: 20px; color: var(--navy-700); flex-shrink: 0; margin-top: 2px; }
.info-row h3{ font-family: var(--font-label); font-weight: 700; font-size: .74rem; text-transform: uppercase; letter-spacing: .08em; color: var(--navy-700); margin-bottom: .3rem; }
.plate-label{ font-family: var(--font-label); font-weight: 700; font-size: .74rem; text-transform: uppercase; letter-spacing: .08em; color: var(--navy-700); margin-bottom: .9rem; }
.info-row p, .info-row a{ font-size: .95rem; color: var(--ink); }

.checklist-links{ display: flex; flex-direction: column; gap: .9rem; margin-top: 1rem; }
.checklist-links a{
  display: flex; align-items: center; justify-content: space-between;
  padding: 1rem 1.2rem;
  border: 1px solid var(--paper-line);
  font-size: .92rem;
  transition: border-color .3s ease, background-color .3s ease;
}
.checklist-links a:hover{ border-color: var(--navy-700); background: var(--paper-dim); }
.checklist-links svg{ width: 16px; height: 16px; color: var(--navy-700); }

/* ---------- photography (Unsplash License — free for commercial use) ---------- */
.split-media{
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 0;
  align-items: stretch;
  box-shadow: 0 40px 80px -40px rgba(0,0,0,.6);
}
.split-photo{
  margin: 0;
  position: relative;
  min-height: 420px;
  overflow: hidden;
}
.split-photo img{
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.2s var(--ease-out);
}
.split-media:hover .split-photo img{ transform: scale(1.03); }
.split-photo::after{
  content: "";
  position: absolute; inset: auto 0 0 0;
  height: 4px;
  background: linear-gradient(90deg, var(--blue-500) 0 62%, var(--gold-500) 62% 100%);
}
.split-media .principles-list{
  margin-top: 0;
  grid-template-columns: repeat(2, 1fr);
  border: 0;
}

.page-hero--about, .page-hero--services, .page-hero--contact{
  background-size: cover;
  background-position: center;
}
.page-hero--about{
  background-image:
    linear-gradient(90deg, rgba(12,42,71,.97) 0%, rgba(12,42,71,.9) 45%, rgba(17,55,92,.62) 100%),
    url("https://images.unsplash.com/photo-1497366811353-6870744d04b2?auto=format&fit=crop&w=1800&q=80");
}
.page-hero--services{
  background-image:
    linear-gradient(90deg, rgba(12,42,71,.97) 0%, rgba(12,42,71,.9) 45%, rgba(17,55,92,.6) 100%),
    url("https://images.unsplash.com/photo-1628348068343-c6a848d2b6dd?auto=format&fit=crop&w=1800&q=80");
}
.page-hero--contact{
  background-image:
    linear-gradient(90deg, rgba(12,42,71,.97) 0%, rgba(12,42,71,.9) 45%, rgba(17,55,92,.62) 100%),
    url("https://images.unsplash.com/photo-1611095790444-1dfa35e37b52?auto=format&fit=crop&w=1800&q=80");
}

/* ---------- blog ---------- */
.page-hero--blog{
  background-image:
    linear-gradient(90deg, rgba(12,42,71,.97) 0%, rgba(12,42,71,.9) 45%, rgba(17,55,92,.62) 100%),
    url("https://images.unsplash.com/photo-1543286386-713bdd548da4?auto=format&fit=crop&w=1800&q=80");
  background-size: cover; background-position: center;
}
.page-hero--post h1{ max-width: 26ch; font-size: clamp(1.9rem, 3.3vw, 2.6rem); }
.post-hero-meta{ display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.2rem; margin-top: 1.2rem; font-size: .88rem; color: rgba(255,255,255,.7); }

.post-cat{
  display: inline-flex; align-items: center;
  padding: .2rem .6rem;
  border-radius: 999px;
  background: rgba(39,167,223,.12);
  color: var(--blue-700);
  font-size: .72rem; font-weight: 700; letter-spacing: .02em;
}
.marble-dark .post-cat{ background: var(--gold-500); color: var(--navy-900); }

.blog-section{ padding-top: 4.5rem; }
.post-feature{
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  background: var(--paper-dim);
  border: 1px solid var(--paper-line);
  overflow: hidden;
  margin-bottom: 4rem;
}
.post-feature .post-thumb{ aspect-ratio: auto; min-height: 360px; }
.post-feature .post-body{ padding: 2.6rem; justify-content: center; gap: 1rem; }
.post-feature .post-title{ font-size: clamp(1.5rem, 2.4vw, 2rem); }
.post-feature .btn{ align-self: flex-start; margin-top: .6rem; }

.blog-toolbar{ display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; margin-bottom: 2rem; }
.blog-heading{ font-size: 1.6rem; }
.chips{ display: flex; flex-wrap: wrap; gap: .5rem; }
.chip{
  border: 1px solid var(--paper-line);
  background: var(--paper);
  color: var(--ink-soft);
  padding: .5rem .95rem;
  border-radius: 999px;
  font-size: .84rem; font-weight: 600;
  transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}
.chip:hover{ border-color: var(--blue-500); color: var(--ink); }
.chip.is-active{ background: var(--ink); border-color: var(--ink); color: #fff; }

.post-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; }
.post-card, .post-feature{ color: inherit; text-decoration: none; }
.post-card{
  display: flex; flex-direction: column;
  background: var(--paper);
  border: 1px solid var(--paper-line);
  transition: transform .45s var(--ease-out), box-shadow .45s var(--ease-out), border-color .3s ease;
}
.post-card:hover{ transform: translateY(-4px); box-shadow: 0 24px 50px -30px rgba(12,42,71,.45); border-color: transparent; }
.post-card[hidden]{ display: none; }
.post-thumb{ display: block; position: relative; overflow: hidden; aspect-ratio: 16 / 10; background: var(--paper-dim); }
.post-thumb img{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease-out); }
.post-card:hover .post-thumb img, .post-feature:hover .post-thumb img{ transform: scale(1.04); }
.post-body{ display: flex; flex-direction: column; gap: .65rem; padding: 1.4rem 1.4rem 1.5rem; flex: 1; }
.post-meta{ display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .8rem; font-size: .78rem; color: var(--ink-soft); }
.post-title{ font-family: var(--font-display); font-weight: 800; font-size: 1.14rem; line-height: 1.3; letter-spacing: -0.02em; color: var(--ink); }
.post-excerpt{ font-size: .92rem; color: var(--ink-soft); line-height: 1.6; }
.post-more{ margin-top: auto; padding-top: .4rem; display: inline-flex; align-items: center; gap: .4rem; font-size: .86rem; font-weight: 700; color: var(--blue-700); }
.post-more svg{ width: .9em; height: .9em; transition: transform .35s var(--ease-out); }
.post-card:hover .post-more svg{ transform: translate(2px,-2px); }
.post-empty{ color: var(--ink-soft); padding: 2rem 0; }

.insights-section{ background: var(--paper-dim); }
.insights-section .section-head, .related-section .section-head{ align-items: end; }
.related-section{ background: var(--paper-dim); }

/* article */
.article-section{ padding-top: 4rem; }
.article-layout{ display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 4rem; align-items: start; }
.article-cover{ margin: 0 0 2.2rem; aspect-ratio: 16 / 9; overflow: hidden; position: relative; }
.article-cover img{ width: 100%; height: 100%; object-fit: cover; }
.article-cover::after{ content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, var(--blue-500) 0 62%, var(--gold-500) 62% 100%); }

.prose{ max-width: 72ch; font-size: var(--text-body); line-height: 1.75; color: #2a3646; }
.prose > p, .prose > ul, .prose > ol, .prose > table{ margin: 0 0 1.25rem; }
.prose h2{ font-size: 1.55rem; margin: 2.6rem 0 1rem; scroll-margin-top: 100px; }
.prose h3{ font-size: 1.15rem; margin: 1.8rem 0 .6rem; }
.prose ul, .prose ol{ padding-left: 1.3rem; }
.prose ul{ list-style: none; padding-left: 0; }
.prose ul li{ position: relative; padding-left: 1.4rem; margin-bottom: .5rem; }
.prose ul li::before{ content: ""; position: absolute; left: .1rem; top: .7em; width: 7px; height: 7px; background: var(--gold-500); transform: rotate(45deg); }
.prose ol{ list-style: decimal; }
.prose ol li{ margin-bottom: .55rem; padding-left: .3rem; }
.prose ol li::marker{ color: var(--blue-700); font-weight: 800; }
.prose a{ color: var(--blue-700); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(15,115,171,.35); }
.prose a:hover{ text-decoration-color: currentColor; }
.prose strong{ color: var(--ink); }
.prose table{ width: 100%; border-collapse: collapse; font-size: .94rem; }
.prose thead th{ background: var(--ink); color: #fff; text-align: left; font-weight: 700; padding: .75rem 1rem; white-space: nowrap; }
.prose td{ padding: .75rem 1rem; border-bottom: 1px solid var(--paper-line); }
.prose tbody tr:nth-child(even){ background: var(--paper-dim); }

.takeaways{ background: var(--gold-100); border-left: 4px solid var(--gold-500); padding: 1.5rem 1.7rem; margin-bottom: 2rem; }
.prose .takeaways-title{ margin: 0 0 .8rem; font-size: 1.05rem; }
.takeaways ul{ margin: 0; }
.takeaways li:last-child{ margin-bottom: 0; }

.disclaimer{ margin-top: 2.4rem !important; padding-top: 1.4rem; border-top: 1px solid var(--paper-line); font-size: .85rem; color: var(--ink-soft); }
.article-cta{
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap;
  margin-top: 2rem; padding: 1.8rem 2rem;
  background: var(--navy-800); color: #fff;
  background-image: radial-gradient(60% 120% at 100% 0%, rgba(39,167,223,.22), transparent 60%);
}
.article-cta h3{ color: #fff; margin: 0 0 .3rem; font-size: 1.2rem; }
.article-cta p{ margin: 0; color: rgba(255,255,255,.72); font-size: .95rem; }
.article-cta a.btn{ text-decoration: none; color: var(--navy-900); }

.article-aside{ position: sticky; top: 100px; display: grid; gap: 1.2rem; }
.aside-card{ border: 1px solid var(--paper-line); padding: 1.5rem; background: var(--paper); }
.aside-title{ font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); margin-bottom: .9rem; }
.toc ol{ list-style: none; padding: 0; margin: 0; display: grid; gap: .15rem; counter-reset: toc; }
.toc a{ display: block; padding: .4rem 0 .4rem .9rem; border-left: 2px solid var(--paper-line); font-size: .88rem; color: var(--ink-soft); line-height: 1.4; transition: color .2s ease, border-color .2s ease; }
.toc a:hover, .toc a.is-current{ color: var(--ink); border-color: var(--gold-500); }
.aside-cta{ background: var(--navy-800); border-color: var(--navy-800); color: #fff; }
.aside-cta .aside-title{ color: var(--gold-500); }
.aside-cta p{ font-size: .9rem; color: rgba(255,255,255,.72); margin-bottom: 1rem; }
.aside-line{ display: block; font-weight: 700; font-size: .95rem; margin-bottom: .35rem; }
.aside-line:hover{ color: var(--blue-300); }
.aside-cta .btn{ margin-top: .9rem; width: 100%; justify-content: center; }

.about-services{ display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .5rem 1.5rem; margin: 0 0 1.4rem; max-width: var(--measure); }
.about-services li{ position: relative; padding-left: 1.2rem; color: var(--ink); font-size: .96rem; }
.about-services li::before{ content: ""; position: absolute; left: 0; top: .62em; width: 6px; height: 6px; background: var(--gold-500); transform: rotate(45deg); }
.also-section{ background: var(--paper-dim); }
.also-list{ margin-top: 0; }
.plate-note{ font-size: .86rem; color: var(--ink-soft); margin: -.4rem 0 .4rem; }

/* ============================================================
   TICKER (credential / service marquee — literal bank-ticker motion)
   ============================================================ */
.ticker{
  border-top: 1px solid rgba(255,255,255,.08);
  border-bottom: 1px solid rgba(255,255,255,.08);
  overflow: hidden;
  padding: 1.1rem 0;
}
.ticker-track{
  display: flex;
  width: max-content;
  gap: 3.2rem;
  animation: ticker-scroll 34s linear infinite;
}
.ticker:hover .ticker-track{ animation-play-state: paused; }
.ticker-item{
  display: flex; align-items: center; gap: .8rem;
  font-family: var(--font-label);
  font-size: .82rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255,255,255,.68);
  white-space: nowrap;
}
.ticker-item::before{ content:""; width: 6px; height: 6px; background: var(--gold-500); transform: rotate(45deg); }
@keyframes ticker-scroll{
  from{ transform: translate3d(0,0,0); }
  to{ transform: translate3d(-50%,0,0); }
}
@media (prefers-reduced-motion: reduce){
  .ticker-track{ animation: none; }
}

/* ============================================================
   MAGNETIC BUTTONS + CURSOR GLOW (fine-pointer only, set by JS)
   ============================================================ */

[data-magnetic]{ transition: transform .4s cubic-bezier(.16,1,.3,1), background-color .35s ease, color .35s ease, border-color .35s ease, box-shadow .35s ease; }

.cursor-glow{ position: relative; }
.cursor-glow::before{
  content: "";
  position: absolute; inset: 0;
  background: radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(39,167,223,.14), transparent 60%);
  opacity: 0;
  transition: opacity .5s ease;
  pointer-events: none;
  z-index: 0;
}
.cursor-glow.is-active::before{ opacity: 1; }
.cursor-glow > *{ position: relative; z-index: 1; }

/* ============================================================
   MOTION VARIANTS
   ============================================================ */

.hero-word{ display: inline-block; overflow: clip; }
.hero-word span{
  display: inline-block;
  transform: translateY(115%);
  animation: word-rise .9s var(--ease-out) forwards;
  animation-delay: calc(var(--w-i, 0) * .09s + .15s);
}
@keyframes word-rise{ to{ transform: translateY(0); } }

@media (prefers-reduced-motion: reduce){
  .hero-word span{ animation: none; transform: none; }
  html{ scroll-behavior: auto; }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 980px){
  .main-nav{ display: none; }
  .nav-toggle{ display: inline-flex; }
  .hero .container{ gap: 2.2rem; }
  .hero-founder{ width: min(100%, 280px); }
  .hero .credential-strip{ gap: 1rem; }
  .founder{ grid-template-columns: 1fr; }
  .founder-plate{ position: static; }
  .service-block, .service-block.reverse{ grid-template-columns: 1fr; }
  .service-block.reverse .service-visual{ order: 0; }
  .contact-grid{ grid-template-columns: 1fr; }
  .post-grid{ grid-template-columns: repeat(2, 1fr); }
  .post-feature{ grid-template-columns: 1fr; }
  .post-feature .post-thumb{ min-height: 0; aspect-ratio: 16 / 9; }
  .article-layout{ grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
  .article-aside{ position: static; }
  .footer-grid{ grid-template-columns: 1fr 1fr; }
  .split-media{ grid-template-columns: 1fr; }
  .split-photo{ min-height: 0; aspect-ratio: 16 / 9; }
}

@media (max-width: 760px){
  .site-header{
    background: var(--paper);
    backdrop-filter: none;
  }
  .site-header.is-scrolled{ background: var(--paper); }
  section{ padding: 4rem 0; }

  .section-head{ grid-template-columns: 1fr; }
  .directory-row{ grid-template-columns: 48px 1fr 28px; row-gap: .7rem; column-gap: 1.1rem; padding: 1.5rem 0; }
  .directory-desc{ grid-column: 1 / -1; }
  .directory-arrow{ width: 28px; height: 28px; }
  .directory-arrow svg{ width: 13px; height: 13px; }
  .directory-name{ font-size: 1.25rem; }
  .ledger-entry{ grid-template-columns: 1fr; }
  .split-media .principles-list{ grid-template-columns: 1fr; }
  .post-grid{ grid-template-columns: 1fr; }
  .post-feature .post-body{ padding: 1.6rem; }
  .about-services{ grid-template-columns: 1fr; }
  .article-cta{ padding: 1.5rem; }
  .prose table{ display: block; overflow-x: auto; }
  .footer-grid{ grid-template-columns: 1fr; }
  .hero{
    padding-top: 104px;
    padding-bottom: 44px;
  }
  .hero h1{
    font-size: clamp(1.9rem, 8.4vw, 2.4rem);
    max-width: 16ch;
    line-height: 1.12;
  }
  .hero h1 br{ display: none; }
  .brand{ width: 160px; }
  .site-header .container{ height: 68px; }
  .page-hero{ padding-top: 108px; padding-bottom: 2.6rem; }
  .hero-sub{
    margin-top: 1.05rem;
    font-size: 1rem;
    line-height: 1.5;
  }
  .hero-actions{ margin-top: 1.6rem; flex-wrap: nowrap; gap: .75rem; }
  .hero-actions .btn{
    flex: 1;
    justify-content: center;
    padding: .85rem .5rem;
    font-size: .8rem;
  }
  .hero .container{ grid-template-columns: 1fr; }
  .hero .credential-strip,
  .hero-founder{ display: none; }
  .cta-banner{ background-position: center, 70% center; }
  .cta-banner .hero-actions{ justify-content: flex-start; }
  body{ padding-bottom: 76px; }

  /* sticky mobile action bar */
  .mobile-cta-bar{
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 150;
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--navy-900);
    padding: .7rem .8rem calc(.7rem + env(safe-area-inset-bottom));
    gap: .6rem;
    transform: translateY(100%);
    transition: transform .45s var(--ease-out);
    box-shadow: 0 -12px 30px -18px rgba(12,42,71,.5);
  }
  .mobile-cta-bar.is-visible{ transform: none; }
  .mobile-cta-bar a{
    display: flex; align-items: center; justify-content: center;
    gap: .5rem;
    min-height: 48px;
    font-family: var(--font-label);
    font-weight: 700; font-size: .92rem;
    border-radius: var(--radius);
  }
  .mobile-cta-bar a.call{ border: 1px solid rgba(255,255,255,.35); color: var(--paper); }
  .mobile-cta-bar a.book{ background: var(--gold-500); color: var(--navy-900); }
  .mobile-cta-bar svg{ width: 16px; height: 16px; }
}
@media (min-width: 761px){
  .mobile-cta-bar{ display: none; }
}

/* ============================================================
   CONSISTENCY LAYER — one type scale and one set of component
   treatments for every page (home, inner pages, blog)
   ============================================================ */
:root{
  --text-sm: .9rem;
  --text-body: 1rem;
  --text-lead: 1.125rem;
  --h2: clamp(1.75rem, 2.7vw, 2.4rem);
  --h3: 1.3rem;
}
.section-lede,
.directory-desc,
.about-copy p,
.service-block p,
.ledger-quote,
.post-excerpt{ font-size: var(--text-body); line-height: 1.7; color: var(--ink-soft); }
.about-copy p:first-child{ font-size: var(--text-lead); color: var(--ink); }
.principles-list p, .founder-creds li, .form-note, .footer-col a, .footer-col p{ font-size: var(--text-sm); }
.section-head h2, .service-block h2, .blog-heading, .cta-banner h2{ font-size: var(--h2); line-height: 1.15; letter-spacing: -0.03em; }
.blog-heading{ font-size: 1.6rem; }
.service-block h2{ max-width: 20ch; }
.hero-sub, .page-hero p{ font-size: 1.04rem; line-height: 1.7; }
.page-hero h1{ font-size: clamp(2rem, 3.6vw, 2.8rem); line-height: 1.1; max-width: 20ch; }
.page-hero--post h1{ max-width: 26ch; font-size: clamp(1.9rem, 3.3vw, 2.6rem); }
.page-hero{ min-height: 0; }

/* every inner hero sits on the same deep ground as the home hero */
.page-hero:not(.page-hero--about):not(.page-hero--services):not(.page-hero--contact):not(.page-hero--blog):not(.page-hero--media):not(.page-hero--photo){
  background-image:
    radial-gradient(60% 80% at 100% 0%, rgba(39,167,223,.16), transparent 60%),
    radial-gradient(40% 60% at 0% 100%, rgba(245,154,34,.07), transparent 60%),
    linear-gradient(160deg, var(--navy-800) 0%, var(--navy-900) 70%);
}

/* small caps labels — one style everywhere */
.info-row h3, .plate-label, .aside-title, .credential-strip .label{
  font-family: var(--font-label); font-size: .72rem; font-weight: 800;
  letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft);
}

/* form: sentence-case labels, same field treatment as the rest of the UI */
.field label{ text-transform: none; letter-spacing: 0; font-size: var(--text-sm); font-weight: 700; color: var(--ink); }
.field input, .field textarea{ border-color: #d3dce6; font-size: var(--text-body); }
.field input:hover, .field textarea:hover{ border-color: #b9c6d3; }
.field input:focus, .field textarea:focus{ border-color: var(--blue-500); box-shadow: 0 0 0 3px rgba(39,167,223,.2); }
.form-status[data-state="err"]{ color: #b42318; }
.form-status a{ color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* checklist + info blocks */
.checklist-links a{ background: var(--paper); font-weight: 600; color: var(--ink); }
.checklist-links a:hover{ border-color: var(--blue-500); background: var(--paper); color: var(--blue-700); }
.checklist-links svg{ color: var(--blue-700); }
.info-row svg{ color: var(--blue-700); }

/* founder card */
.founder-plate{ padding-top: 2.4rem; }
.founder-plate .role{ color: var(--blue-700); font-weight: 700; }
.founder-creds li{ padding-left: 1.2rem; }
.founder-creds li::before{ top: .62em; width: 6px; height: 6px; background: var(--gold-500); transform: rotate(45deg); }

/* services: photo panels with a number instead of oversized icons */
.service-visual{ border: 0; }
.service-visual::after{ background: linear-gradient(160deg, rgba(12,42,71,.15) 30%, rgba(12,42,71,.72) 100%); }
.service-visual::before{
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; z-index: 2;
  background: linear-gradient(90deg, var(--blue-500) 0 62%, var(--gold-500) 62% 100%);
}
.service-num{
  position: absolute; left: 1.4rem; bottom: 1.2rem; z-index: 1;
  font-family: var(--font-display); font-size: 3rem; font-weight: 800; line-height: 1;
  letter-spacing: -0.04em; color: var(--paper);
}
.service-visual{ align-items: flex-end; justify-content: flex-start; }

/* ============================================================
   HERO SYSTEM — one heading scale, spacing and top label for the
   home hero and every inner-page / article hero
   ============================================================ */
:root{
  --h1: clamp(2.1rem, 3.3vw, 3rem);
  --h1-mobile: clamp(1.9rem, 8.4vw, 2.4rem);
  --hero-pad-top: 132px;
  --hero-pad-bottom: 56px;
}
.hero, .page-hero{ padding-top: var(--hero-pad-top); padding-bottom: var(--hero-pad-bottom); }
.hero h1, .page-hero h1, .page-hero--post h1{
  font-size: var(--h1);
  line-height: 1.1;
  letter-spacing: -0.03em;
  max-width: 19ch;
}
.page-hero--post h1{ max-width: 24ch; }
.hero-sub, .page-hero p{
  margin-top: 1.1rem;
  max-width: 56ch;
  font-size: 1.04rem;
  line-height: 1.7;
  color: rgba(255,255,255,.74);
}

/* breadcrumb uses the same pill as the home hero badge */
.breadcrumb{
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin: 0 0 1.25rem;
  padding: .35rem .9rem;
  border: 1px solid rgba(39,167,223,.35);
  background: rgba(39,167,223,.08);
  border-radius: 999px;
  font-family: var(--font-label);
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: 0;
  color: rgba(255,255,255,.85);
}
.breadcrumb a{ color: rgba(255,255,255,.65); transition: color .2s ease; }
.breadcrumb a:hover{ color: var(--gold-400); }
.breadcrumb span:not(:last-child){ color: rgba(255,255,255,.35); }

@media (max-width: 760px){
  :root{ --hero-pad-top: 104px; --hero-pad-bottom: 44px; }
  .hero h1, .page-hero h1, .page-hero--post h1{ font-size: var(--h1-mobile); line-height: 1.12; max-width: 16ch; }
  .page-hero--post h1{ max-width: none; }
  .hero-sub, .page-hero p{ font-size: 1rem; line-height: 1.6; }
  .breadcrumb{ font-size: .74rem; }
}

/* ============================================================
   AUDIT FIXES — forms, map, topic links, legal page
   ============================================================ */
.form-title{ font-size: 1.4rem; margin-bottom: .4rem; }
.form-hint{ font-size: var(--text-sm); color: var(--ink-soft); margin-bottom: 1.6rem; }
.req{ color: #b42318; }
.field input[aria-invalid="true"], .field textarea[aria-invalid="true"]{ border-color: #b42318; box-shadow: 0 0 0 3px rgba(180,35,24,.12); }
.map-embed{ margin-top: 1.2rem; aspect-ratio: 16 / 10; border: 1px solid var(--paper-line); background: var(--paper); }
.map-embed iframe{ width: 100%; height: 100%; border: 0; display: block; }
a.chip{ display: inline-flex; align-items: center; text-decoration: none; }
a.post-cat{ text-decoration: none; transition: background-color .2s ease; }
.marble-dark a.post-cat:hover{ background: var(--gold-400); }
.plate-label{ line-height: 1.4; }
.prose.legal{ max-width: 76ch; }
.footer-reg{ margin-top: .9rem; font-size: var(--text-sm); font-weight: 600; color: rgba(255,255,255,.78); }

/* ============================================================
   SOCIAL BRAND COLOURS + MEDIA PAGE
   ============================================================ */
:root{ --linkedin: #0a66c2; --facebook: #1877f2; --youtube: #ff0000; }

/* footer social: each network in its own brand colour */
.footer-social a{
  width: 40px; height: 40px;
  border: 0; border-radius: 10px;
  color: #fff;
  transition: transform .3s var(--ease-out), box-shadow .3s ease, filter .3s ease;
}
.footer-social a[href*="linkedin"]{ background: var(--linkedin); }
.footer-social a[href*="facebook"]{ background: var(--facebook); }
.footer-social a[href*="youtube"]{ background: var(--youtube); }
.footer-social a:hover{ color: #fff; border: 0; transform: translateY(-3px); filter: brightness(1.08); box-shadow: 0 10px 20px -10px rgba(0,0,0,.7); }
.footer-social svg{ width: 18px; height: 18px; }

/* YouTube button */
.btn-youtube{ background: var(--youtube); border-color: var(--youtube); color: #fff; }
.btn-youtube:hover{ background: #cc0000; border-color: #cc0000; color: #fff; transform: translateY(-2px); }
.btn-youtube svg{ width: 1.2em; height: 1.2em; }
.btn-youtube:hover svg{ transform: none; }

/* media page */
.page-hero--media{
  background-image:
    linear-gradient(90deg, rgba(12,42,71,.97) 0%, rgba(12,42,71,.9) 45%, rgba(17,55,92,.62) 100%),
    url("https://images.unsplash.com/photo-1589903308904-1010c2294adc?auto=format&fit=crop&w=1800&q=80");
  background-size: cover; background-position: center;
}
.media-section{ padding-top: 4.5rem; }
.media-head{ margin-top: 4.5rem; margin-bottom: 2rem; }

.video-thumb{ position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 9; background: var(--navy-900); }
.video-thumb img{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease-out); }
.video-thumb::after{ content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(12,42,71,.45)); }
.play{
  position: absolute; left: 50%; top: 50%; z-index: 1;
  width: 60px; height: 42px; margin: -21px 0 0 -30px;
  display: grid; place-items: center;
  border-radius: 12px; background: var(--youtube); color: #fff;
  box-shadow: 0 10px 24px -8px rgba(0,0,0,.6);
  transition: transform .35s var(--ease-out);
}
.play svg{ width: 22px; height: 22px; }

.video-feature, .video-card{ color: inherit; text-decoration: none; }
.video-feature{
  display: grid; grid-template-columns: 1.35fr 1fr;
  background: var(--paper-dim); border: 1px solid var(--paper-line); overflow: hidden;
}
.video-feature .video-thumb{ aspect-ratio: auto; min-height: 340px; }
.video-feature .video-body{ display: flex; flex-direction: column; justify-content: center; gap: 1rem; padding: 2.4rem; }
.video-feature .post-title{ font-size: clamp(1.5rem, 2.4vw, 2rem); }
.video-feature .btn{ align-self: flex-start; margin-top: .4rem; }

.video-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; }
.video-grid--shorts{ grid-template-columns: repeat(5, 1fr); gap: 1.2rem; }
.video-card{
  display: flex; flex-direction: column;
  background: var(--paper); border: 1px solid var(--paper-line);
  transition: transform .45s var(--ease-out), box-shadow .45s var(--ease-out), border-color .3s ease;
}
.video-card:hover{ transform: translateY(-4px); box-shadow: 0 24px 50px -30px rgba(12,42,71,.45); border-color: transparent; }
.video-card:hover .video-thumb img, .video-feature:hover .video-thumb img{ transform: scale(1.05); }
.video-card:hover .play, .video-feature:hover .play{ transform: scale(1.1); }
.video-card.is-short .video-thumb{ aspect-ratio: 9 / 16; }
.video-body{ display: flex; flex-direction: column; gap: .6rem; padding: 1.2rem 1.3rem 1.4rem; flex: 1; }
.video-title{ font-family: var(--font-display); font-weight: 800; font-size: 1.04rem; line-height: 1.35; letter-spacing: -0.015em; color: var(--ink); }
.is-short .video-body{ padding: 1rem 1rem 1.1rem; }
.is-short .video-title{ font-size: .94rem; }
.video-card .post-more{ margin-top: auto; }

.media-channel{
  margin-top: 4.5rem; padding: 2.2rem 2.4rem;
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap;
  background: var(--navy-800); color: #fff;
  background-image: radial-gradient(60% 140% at 100% 0%, rgba(255,0,0,.18), transparent 60%);
}
.media-channel h2{ color: #fff; font-size: 1.5rem; margin-bottom: .4rem; }
.media-channel p{ color: rgba(255,255,255,.72); max-width: 56ch; }

/* six nav items: tighten spacing on narrower desktops */
@media (max-width: 1180px) and (min-width: 981px){
  .main-nav{ gap: 1.6rem; }
  .main-nav ul{ gap: 1.5rem; }
}

@media (max-width: 980px){
  .video-feature{ grid-template-columns: 1fr; }
  .video-feature .video-thumb{ min-height: 0; aspect-ratio: 16 / 9; }
  .video-grid{ grid-template-columns: repeat(2, 1fr); }
  .video-grid--shorts{ grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 760px){
  .video-grid{ grid-template-columns: 1fr; }
  .video-grid--shorts{ grid-template-columns: repeat(2, 1fr); gap: .9rem; }
  .video-feature .video-body{ padding: 1.6rem; }
  .media-channel{ padding: 1.6rem; }
  .media-channel .btn{ width: 100%; justify-content: center; }
}

/* footer QR code */
.footer-qr{ margin: 1.6rem 0 0; display: flex; align-items: center; gap: .9rem; }
.footer-qr img{
  width: 112px; height: 112px; flex: none;
  padding: 6px; background: #fff; border-radius: 10px;
  box-shadow: 0 10px 24px -14px rgba(0,0,0,.8);
}
.footer-qr figcaption{ font-size: var(--text-sm); color: rgba(255,255,255,.72); max-width: 12ch; line-height: 1.4; }
@media (max-width: 760px){ .footer-qr img{ width: 100px; height: 100px; } }

/* ============================================================
   DIGITAL BUSINESS CARD (About page)
   ============================================================ */
.vcard-section{ background: var(--paper-dim); }
.vcard{
  position: relative; overflow: hidden;
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3rem; align-items: center;
  padding: 2.6rem 3rem;
  max-width: 980px;
  color: #fff;
  background-color: var(--navy-900);
  background-image:
    radial-gradient(70% 90% at 100% 0%, rgba(39,167,223,.2), transparent 60%),
    radial-gradient(50% 70% at 0% 100%, rgba(245,154,34,.1), transparent 60%);
  border-radius: 16px;
  box-shadow: 0 40px 80px -40px rgba(12,42,71,.6);
}
.vcard::after{
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px;
  background: linear-gradient(90deg, var(--blue-500) 0 62%, var(--gold-500) 62% 100%);
}
.vcard-logo{ width: 170px; height: auto; margin-bottom: 1.4rem; }
.vcard-name{ color: #fff; font-size: clamp(1.7rem, 3vw, 2.2rem); letter-spacing: -0.03em; }
.vcard-role{ margin-top: .35rem; color: var(--gold-500); font-weight: 700; font-size: .98rem; }
.vcard-creds{ margin-top: .3rem; color: rgba(255,255,255,.68); font-size: var(--text-sm); }
.vcard-lines{ list-style: none; margin: 1.5rem 0 0; padding: 1.3rem 0 0; border-top: 1px solid rgba(255,255,255,.12); display: grid; gap: .65rem; }
.vcard-lines li{ display: flex; align-items: center; gap: .75rem; font-size: .98rem; color: rgba(255,255,255,.88); }
.vcard-lines svg{ width: 18px; height: 18px; flex: none; color: var(--blue-500); }
.vcard-lines a:hover{ color: var(--gold-400); }
.vcard-actions{ display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.8rem; }
.vcard-actions .btn svg{ width: 1.05em; height: 1.05em; }
.vcard-actions .btn:hover svg{ transform: translateY(2px); }
.vcard-qr{ margin: 0; display: grid; justify-items: center; gap: .8rem; text-align: center; }
.vcard-qr img{ width: 200px; height: 200px; padding: 10px; background: #fff; border-radius: 12px; }
.vcard-qr figcaption{ max-width: 20ch; font-size: .86rem; color: rgba(255,255,255,.72); line-height: 1.45; }

@media (max-width: 760px){
  .vcard{ grid-template-columns: 1fr; gap: 2rem; padding: 2rem 1.5rem 2.2rem; }
  .vcard-qr{ justify-self: stretch; padding-top: 1.6rem; border-top: 1px solid rgba(255,255,255,.12); }
  .vcard-qr img{ width: 180px; height: 180px; }
  .vcard-actions .btn{ flex: 1 1 100%; justify-content: center; }
}

/* home hero: Melbourne skyline (Princes Bridge, Yarra River, St Paul's) under a navy overlay */
.hero{
  background-color: var(--navy-900);
  background-image:
    linear-gradient(90deg, rgba(12,42,71,.97) 0%, rgba(12,42,71,.9) 38%, rgba(12,42,71,.62) 68%, rgba(17,55,92,.5) 100%),
    linear-gradient(180deg, rgba(12,42,71,.35) 0%, transparent 30%, transparent 70%, rgba(12,42,71,.6) 100%),
    url("https://images.unsplash.com/photo-1545044846-351ba102b6d5?auto=format&fit=crop&w=2000&q=80");
  background-size: cover;
  background-position: center 38%;
}
@media (max-width: 760px){
  .hero{
    background-image:
      linear-gradient(180deg, rgba(12,42,71,.9) 0%, rgba(12,42,71,.86) 100%),
      url("https://images.unsplash.com/photo-1545044846-351ba102b6d5?auto=format&fit=crop&w=2000&q=80");
    background-position: 30% center;
  }
}
.page-hero--contact{ background-position: center 12%; }

/* ============================================================
   LIGHT, TRUST-FOCUSED HEROES
   White-to-sky-blue grounds, navy type, blue accents. Photos stay
   visible through a soft light overlay. Applies to the home hero and
   every inner-page hero.
   ============================================================ */
:root{ --hero-ground: #f5faff; --hero-ground-2: #e7f2fb; }

.hero, .page-hero{ color: var(--ink); background-color: var(--hero-ground); }
.hero h1, .page-hero h1, .page-hero--post h1{ color: var(--ink); }
.hero h1 em{ color: var(--blue-700); }
.hero-sub, .page-hero p{ color: var(--ink-soft); }
.hero::before{
  background-image:
    linear-gradient(rgba(12,42,71,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(12,42,71,.045) 1px, transparent 1px);
}

/* backgrounds */
.hero{
  background-image: linear-gradient(90deg, rgba(247,251,255,.93) 0%, rgba(247,251,255,.86) 40%, rgba(245,250,255,.55) 53%, rgba(240,247,253,.12) 66%, rgba(240,247,253,0) 80%), url("https://images.unsplash.com/photo-1545044846-351ba102b6d5?auto=format&fit=crop&w=2000&q=80");
  background-size: cover;
  background-position: center 38%;
}
.page-hero--about{ background-image: linear-gradient(90deg, rgba(247,251,255,.93) 0%, rgba(247,251,255,.86) 40%, rgba(245,250,255,.55) 53%, rgba(240,247,253,.12) 66%, rgba(240,247,253,0) 80%), url("https://images.unsplash.com/photo-1497366811353-6870744d04b2?auto=format&fit=crop&w=1800&q=80"); }
.page-hero--services{ background-image: linear-gradient(90deg, rgba(247,251,255,.93) 0%, rgba(247,251,255,.86) 40%, rgba(245,250,255,.55) 53%, rgba(240,247,253,.12) 66%, rgba(240,247,253,0) 80%), url("https://images.unsplash.com/photo-1628348068343-c6a848d2b6dd?auto=format&fit=crop&w=1800&q=80"); }
.page-hero--contact{ background-image: linear-gradient(90deg, rgba(247,251,255,.93) 0%, rgba(247,251,255,.86) 40%, rgba(245,250,255,.55) 53%, rgba(240,247,253,.12) 66%, rgba(240,247,253,0) 80%), url("https://images.unsplash.com/photo-1611095790444-1dfa35e37b52?auto=format&fit=crop&w=1800&q=80"); }
.page-hero--blog{ background-image: linear-gradient(90deg, rgba(247,251,255,.93) 0%, rgba(247,251,255,.86) 40%, rgba(245,250,255,.55) 53%, rgba(240,247,253,.12) 66%, rgba(240,247,253,0) 80%), url("https://images.unsplash.com/photo-1543286386-713bdd548da4?auto=format&fit=crop&w=1800&q=80"); }
.page-hero--media{ background-image: linear-gradient(90deg, rgba(247,251,255,.93) 0%, rgba(247,251,255,.86) 40%, rgba(245,250,255,.55) 53%, rgba(240,247,253,.12) 66%, rgba(240,247,253,0) 80%), url("https://images.unsplash.com/photo-1589903308904-1010c2294adc?auto=format&fit=crop&w=1800&q=80"); }
.page-hero:not(.page-hero--about):not(.page-hero--services):not(.page-hero--contact):not(.page-hero--blog):not(.page-hero--media):not(.page-hero--photo){
  background-image:
    radial-gradient(60% 90% at 100% 0%, rgba(39,167,223,.16), transparent 60%),
    radial-gradient(40% 60% at 0% 100%, rgba(245,154,34,.08), transparent 60%),
    linear-gradient(160deg, var(--hero-ground) 0%, var(--hero-ground-2) 100%);
}

/* type, pills and buttons on a light ground */
.breadcrumb{ border-color: rgba(15,115,171,.22); background: rgba(255,255,255,.75); color: var(--ink); }
.breadcrumb a{ color: var(--ink-soft); }
.breadcrumb a:hover{ color: var(--blue-700); }
.breadcrumb span:not(:last-child){ color: #9aabbc; }
.post-hero-meta{ color: var(--ink-soft); }
.hero .btn-outline, .page-hero .btn-outline{ border-color: #b9c9d9; color: var(--ink); background: rgba(255,255,255,.6); }
.hero .btn-outline:hover, .page-hero .btn-outline:hover{ border-color: var(--blue-500); color: var(--blue-700); background: #fff; }

/* credentials, portrait and practice card become clean white cards */
.credential-strip{ border-top-color: var(--paper-line); }
.credential-strip .label{ color: var(--ink-soft); }
.credential-row img{ border: 1px solid var(--paper-line); box-shadow: 0 6px 14px -10px rgba(12,42,71,.35); opacity: 1; }
.hero-portrait{ border-color: var(--paper-line); box-shadow: 0 30px 60px -32px rgba(12,42,71,.45); }
.hero-plaque{ background: #fff; border: 1px solid var(--paper-line); border-top: 0; box-shadow: 0 24px 50px -32px rgba(12,42,71,.45); }
.hero-plaque .row{ border-bottom-color: var(--paper-line); }
.hero-plaque dt{ color: var(--ink-soft); }
.hero-plaque dd{ color: var(--ink); }
.hero-plaque dd a:hover{ color: var(--blue-700); }

/* home ticker: light band under the hero */
.ticker{ background: #fff; border-top: 1px solid var(--paper-line); border-bottom: 1px solid var(--paper-line); }
.ticker-item{ color: var(--navy-700); }

@media (max-width: 760px){
  .hero{ background-image: linear-gradient(180deg, rgba(247,251,255,.84) 0%, rgba(240,247,253,.7) 100%), url("https://images.unsplash.com/photo-1545044846-351ba102b6d5?auto=format&fit=crop&w=2000&q=80"); background-position: 30% center; }
  .page-hero--about{ background-image: linear-gradient(180deg, rgba(247,251,255,.84) 0%, rgba(240,247,253,.7) 100%), url("https://images.unsplash.com/photo-1497366811353-6870744d04b2?auto=format&fit=crop&w=900&q=75"); }
  .page-hero--services{ background-image: linear-gradient(180deg, rgba(247,251,255,.84) 0%, rgba(240,247,253,.7) 100%), url("https://images.unsplash.com/photo-1628348068343-c6a848d2b6dd?auto=format&fit=crop&w=900&q=75"); }
  .page-hero--contact{ background-image: linear-gradient(180deg, rgba(247,251,255,.84) 0%, rgba(240,247,253,.7) 100%), url("https://images.unsplash.com/photo-1611095790444-1dfa35e37b52?auto=format&fit=crop&w=900&q=75"); }
  .page-hero--blog{ background-image: linear-gradient(180deg, rgba(247,251,255,.84) 0%, rgba(240,247,253,.7) 100%), url("https://images.unsplash.com/photo-1543286386-713bdd548da4?auto=format&fit=crop&w=900&q=75"); }
  .page-hero--media{ background-image: linear-gradient(180deg, rgba(247,251,255,.84) 0%, rgba(240,247,253,.7) 100%), url("https://images.unsplash.com/photo-1589903308904-1010c2294adc?auto=format&fit=crop&w=900&q=75"); }
}

/* photo contrast: a touch more saturation where the image shows through */
.hero, .page-hero{ background-blend-mode: normal; }

/* practice details sit flush under Hardeep's card, same width and edges */
.hero-plaque{
  width: 100%;
  margin: 0;
  border: 1px solid var(--paper-line);
  border-top: 0;
  padding: .9rem 1.1rem;
}
.hero-portrait{ border-bottom: 0; }
.hero-plaque .row{ align-items: center; }
.hero-plaque dt{ flex: none; }
.hero-plaque dd{ min-width: 0; }

/* smaller hero text: heavier and darker so it stays crisp over the photo,
   with a soft white halo instead of a heavier wash over the image */
.hero-sub, .page-hero p{
  font-weight: 600;
  color: #22364d;
  text-shadow: 0 0 1px rgba(255,255,255,.9), 0 1px 12px rgba(255,255,255,.85);
}
.hero h1, .page-hero h1{ text-shadow: 0 1px 18px rgba(255,255,255,.7); }
.credential-strip .label{ font-weight: 800; color: #22364d; text-shadow: 0 1px 8px rgba(255,255,255,.9); }
.breadcrumb{ font-weight: 700; background: rgba(255,255,255,.9); }
.breadcrumb a{ color: #22364d; }
.post-hero-meta{ font-weight: 600; color: #22364d; text-shadow: 0 1px 8px rgba(255,255,255,.9); }
.hero .btn-outline, .page-hero .btn-outline{ background: rgba(255,255,255,.88); font-weight: 700; }

/* ============================================================
   COLOUR CONSISTENCY PASS
   One navy (--navy-900 #0c2a47) for every dark surface and dark button,
   AA contrast on every label and button.
   ============================================================ */
/* header CTA and article tables use the same trust navy as the dark sections */
.nav-cta{ background: var(--navy-900); border-color: var(--navy-900); }
.prose thead th{ background: var(--navy-900); }

/* category pills: deeper blue text on the pale tint (AA 4.5:1+) */
.post-cat, a.post-cat{ color: #0b5d8c; background: #e3f1fa; }
.marble-dark .post-cat, .marble-dark a.post-cat{ color: var(--navy-900); background: var(--gold-500); }

/* YouTube red deepened just enough for white text to pass AA */
:root{ --youtube: #cc0000; }
.btn-youtube{ background: var(--youtube); border-color: var(--youtube); }
.btn-youtube:hover{ background: #a80000; border-color: #a80000; }
.play{ background: #ff0000; }

/* business card sits on white so it doesn't stack against the navy band */
.vcard-section{ background: var(--paper); }

/* mobile home hero: text on the light ground, then a wide Melbourne strip
   (St Paul's, CBD towers, Princes Bridge) cropped from the same photo */
@media (max-width: 760px){
  .hero{
    padding-bottom: calc(44vw + 20px);
    background-color: var(--hero-ground);
    background-image:
      linear-gradient(180deg, var(--hero-ground) 0%, var(--hero-ground) calc(100% - 44vw - 30px), rgba(245,250,255,0) calc(100% - 44vw + 40px)),
      url("https://images.unsplash.com/photo-1545044846-351ba102b6d5?rect=0,441,5184,2307&w=1000&q=80&auto=format");
    background-size: 100% auto, 100% auto;
    background-position: center bottom, center bottom;
    background-repeat: no-repeat;
  }
}

/* closing CTA: brand-blue band so it stands apart from the navy footer */
.cta-banner{
  background-color: #0f6fa6;
  background-image:
    linear-gradient(90deg, rgba(13,104,158,.97) 0%, rgba(13,104,158,.93) 46%, rgba(19,128,190,.7) 72%, rgba(39,167,223,.45) 100%),
    url("https://images.unsplash.com/photo-1554224155-6726b3ff858f?auto=format&fit=crop&w=1800&q=85");
}
.cta-banner p{ color: #fff; }
.cta-banner::before{ background: linear-gradient(90deg, var(--gold-500) 0 38%, #7ccbf0 38% 100%); }
.cta-banner .btn-outline{ border-color: rgba(255,255,255,.75); background: rgba(255,255,255,.08); }
.cta-banner .btn-outline:hover{ background: #fff; border-color: #fff; color: #0d689e; }
.cta-banner .btn-brass{ box-shadow: 0 10px 24px -12px rgba(12,42,71,.6); }
/* clear separation where the banner meets the footer */
.site-footer{ border-top: 4px solid var(--gold-500); }
@media (max-width: 760px){
  .cta-banner{
    background-image:
      linear-gradient(180deg, rgba(13,104,158,.95) 0%, rgba(13,104,158,.9) 100%),
      url("https://images.unsplash.com/photo-1554224155-6726b3ff858f?auto=format&fit=crop&w=1200&q=80");
  }
}

/* ============================================================
   CRISP TEXT
   ============================================================ */
/* solid header: no backdrop blur, no logo scaling (both soften text on Windows) */
.site-header, .site-header.is-scrolled{
  -webkit-backdrop-filter: none; backdrop-filter: none;
  background: #fff;
}
/* hero text drawn without glows; the light wash behind the copy does the work */
.hero h1, .page-hero h1, .hero-sub, .page-hero p, .credential-strip .label, .post-hero-meta{ text-shadow: none; }
/* ticker: keep the moving text on whole pixels in its own layer */
.ticker-track{ will-change: transform; backface-visibility: hidden; transform: translate3d(0,0,0); }
.ticker-item{ font-weight: 700; font-size: .84rem; letter-spacing: .08em; -webkit-font-smoothing: subpixel-antialiased; }
body{ text-rendering: optimizeLegibility; }

/* ============================================================
   LOCAL, INDUSTRY, FAQ & LANGUAGES
   ============================================================ */
.lang-native{ font-family: "Noto Sans Gurmukhi", "Noto Sans Devanagari", "Nirmala UI", var(--font-body); font-weight: 700; }
.lang-native[lang="ur"]{ font-family: "Noto Nastaliq Urdu", "Urdu Typesetting", "Segoe UI", serif; line-height: 2; }

/* page layout */
.local-layout{ display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 4rem; align-items: start; }
.local-copy{ max-width: 68ch; }
.local-copy p{ color: var(--ink-soft); margin-bottom: 1.1rem; }
.local-copy p:first-child{ font-size: var(--text-lead); color: var(--ink); }
.local-copy h2{ font-size: 1.45rem; margin: 2.2rem 0 1rem; }
.local-aside{ position: sticky; top: 100px; display: grid; gap: 1.2rem; }
.aside-small{ font-size: var(--text-sm); color: var(--ink-soft); }
.aside-langs p{ font-size: var(--text-sm); color: var(--ink-soft); margin-bottom: .8rem; }

.tick-list{ list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.tick-list li{ position: relative; padding-left: 1.8rem; color: var(--ink); }
.tick-list li::before{
  content: ""; position: absolute; left: 0; top: .3em; width: 1.1rem; height: 1.1rem; border-radius: 50%;
  background: #e3f1fa url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 16 16%22%3E%3Cpath d=%22M4 8.5l2.5 2.5L12 5.5%22 fill=%22none%22 stroke=%22%230f73ab%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E") center / 70% no-repeat;
}
.link-list{ list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.link-list a{ display: inline-flex; align-items: center; gap: .45rem; font-weight: 700; color: var(--blue-700); }
.link-list a svg{ width: .85em; height: .85em; }
.link-list a:hover{ text-decoration: underline; text-underline-offset: 3px; }
.link-list--wide{ margin-top: 1.4rem; }

.lang-chips{ list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.lang-chips li{ padding: .35rem .8rem; border-radius: 999px; background: var(--paper-dim); border: 1px solid var(--paper-line); font-size: 1rem; }

/* chips for areas / industries / FAQ topics */
.local-chips{ display: flex; flex-wrap: wrap; gap: .55rem; margin: 0 0 2rem; }
.local-chips a{
  padding: .55rem 1rem; border-radius: 999px; border: 1px solid var(--paper-line); background: #fff;
  font-size: .9rem; font-weight: 600; color: var(--ink);
  transition: border-color .2s ease, color .2s ease, background-color .2s ease;
}
.local-chips a:hover{ border-color: var(--blue-500); color: var(--blue-700); }
.local-chips a[aria-current="page"]{ background: var(--navy-900); border-color: var(--navy-900); color: #fff; }
.local-more{ padding-top: 0; }
.local-more-title{ font-size: 1.15rem; margin-bottom: 1rem; }

/* FAQ accordions */
.faq-section{ background: var(--paper-dim); }
.local-more{ background: var(--paper-dim); padding-top: 0; }
.faq-list{ display: grid; gap: .75rem; max-width: 860px; }
.faq-item{ background: #fff; border: 1px solid var(--paper-line); border-radius: 10px; transition: border-color .2s ease, box-shadow .2s ease; }
.faq-item[open]{ border-color: #bfd9ea; box-shadow: 0 16px 34px -26px rgba(12,42,71,.4); }
.faq-item summary{
  list-style: none; cursor: pointer; position: relative;
  padding: 1.05rem 3.2rem 1.05rem 1.3rem;
  font-family: var(--font-display); font-weight: 700; font-size: 1.02rem; color: var(--ink);
}
.faq-item summary::-webkit-details-marker{ display: none; }
.faq-item summary::after{
  content: ""; position: absolute; right: 1.2rem; top: 50%; width: 22px; height: 22px; margin-top: -11px; border-radius: 50%;
  background: #e3f1fa url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 16 16%22%3E%3Cpath d=%22M8 4v8M4 8h8%22 fill=%22none%22 stroke=%22%230f73ab%22 stroke-width=%222%22 stroke-linecap=%22round%22/%3E%3C/svg%3E") center / 60% no-repeat;
  transition: transform .25s ease;
}
.faq-item[open] summary::after{ transform: rotate(45deg); }
.faq-item summary:hover{ color: var(--blue-700); }
.faq-answer{ padding: 0 1.3rem 1.2rem; color: var(--ink-soft); line-height: 1.7; }
.faq-answer a, .faq-more a, .lang-note a, .form-note a{ color: var(--blue-700); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.faq-more{ margin-top: 1.6rem; color: var(--ink-soft); }
.faq-group + .faq-group{ margin-top: 3.2rem; }
.faq-page .section-head{ margin-bottom: 1.4rem; }

/* home FAQ: intro left, questions right */
.home-faq{ background: #fff; }
.home-faq-layout{ display: grid; grid-template-columns: .8fr 1.4fr; gap: 3.5rem; align-items: start; }
.home-faq-intro h2{ font-size: var(--h2); position: relative; padding-top: 1.1rem; margin-bottom: 1rem; }
.home-faq-intro h2::before{ content: ""; position: absolute; top: 0; left: 0; width: 44px; height: 3px; background: linear-gradient(90deg, var(--blue-500) 0 60%, var(--gold-500) 60% 100%); }
.home-faq-intro .btn{ margin-top: 1.6rem; }
.home-faq .faq-item{ background: var(--paper-dim); }

/* industries */
.ind-grid{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem; }
.ind-card{ border: 1px solid var(--paper-line); border-radius: 14px; padding: 2rem; background: #fff; box-shadow: 0 20px 40px -34px rgba(12,42,71,.35); }
.ind-card h2{ font-size: 1.3rem; margin-bottom: 1.2rem; }
.ind-note{ margin-top: 1.8rem; color: var(--ink-soft); }
.ind-resources{ padding-top: 0; }
.video-grid--compact{ grid-template-columns: repeat(3, minmax(0, 1fr)); }

.ind-links{ list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.ind-link{
  display: flex; flex-direction: column; gap: .6rem; height: 100%;
  padding: 1.6rem; border: 1px solid var(--paper-line); border-radius: 14px; background: #fff;
  transition: transform .35s var(--ease-out), box-shadow .35s var(--ease-out), border-color .2s ease;
}
.ind-link:hover{ transform: translateY(-3px); border-color: transparent; box-shadow: 0 22px 44px -30px rgba(12,42,71,.45); }
.ind-link-name{ font-family: var(--font-display); font-weight: 800; font-size: 1.12rem; color: var(--ink); }
.ind-link-desc{ font-size: var(--text-sm); color: var(--ink-soft); line-height: 1.6; }
.ind-link .post-more{ margin-top: auto; }

/* home: languages */
.lang-section{ background: var(--paper-dim); }
.lang-grid{ list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.2rem; }
.lang-card{
  padding: 1.6rem; border-radius: 14px; background: #fff; border: 1px solid var(--paper-line);
  display: flex; flex-direction: column; gap: .4rem;
  box-shadow: 0 20px 40px -34px rgba(12,42,71,.35);
}
.lang-card::before{ content: ""; width: 34px; height: 3px; margin-bottom: .6rem; background: linear-gradient(90deg, var(--blue-500) 0 60%, var(--gold-500) 60% 100%); }
.lang-card-name{ font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); }
.lang-card-native{ font-family: var(--font-display); font-size: 1.7rem; font-weight: 800; color: var(--navy-900); line-height: 1.5; }
.lang-card-native.lang-native{ font-weight: 700; }
.lang-card-welcome{ color: var(--ink-soft); font-size: .98rem; line-height: 1.7; }
.lang-card-welcome[lang="ur"], .lang-card-native[lang="ur"]{ text-align: right; }
.lang-note{ margin-top: 1.6rem; color: var(--ink-soft); }

/* footer additions */
.footer-langs{ margin-top: .5rem; font-size: var(--text-sm); color: rgba(255,255,255,.78); line-height: 1.8; }
.footer-langs .lang-native{ color: #fff; font-weight: 500; }
.footer-areas{
  display: flex; flex-wrap: wrap; gap: .35rem .5rem; align-items: center;
  padding: 1.4rem 0; border-top: 1px solid rgba(255,255,255,.12);
  font-size: var(--text-sm); color: rgba(255,255,255,.62);
}
.footer-areas span{ font-weight: 800; letter-spacing: .12em; text-transform: uppercase; font-size: .72rem; color: var(--gold-500); margin-right: .4rem; }
.footer-areas a{ color: rgba(255,255,255,.82); }
.footer-areas a:hover{ color: #fff; text-decoration: underline; }

@media (max-width: 980px){
  .local-layout{ grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
  .local-aside{ position: static; }
  .ind-links{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lang-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-faq-layout{ grid-template-columns: 1fr; gap: 2rem; }
  .video-grid--compact{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px){
  .ind-grid, .ind-links, .video-grid--compact{ grid-template-columns: 1fr; }
  .lang-grid{ grid-template-columns: 1fr 1fr; gap: .8rem; }
  .lang-card{ padding: 1.2rem; }
  .lang-card-native{ font-size: 1.4rem; }
  .ind-card{ padding: 1.5rem; }
}

.lang-card-welcome.lang-native{ font-weight: 500; color: var(--ink-soft); }

/* ============================================================
   GOOGLE RATING + OPENING HOURS
   ============================================================ */
.g-rating{
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .45rem .85rem .45rem .6rem;
  border-radius: 999px; border: 1px solid var(--paper-line); background: #fff;
  color: var(--ink); font-weight: 700; font-size: .9rem; line-height: 1;
  box-shadow: 0 8px 20px -14px rgba(12,42,71,.4);
  transition: border-color .2s ease, box-shadow .2s ease, transform .3s var(--ease-out);
}
.g-rating:hover{ border-color: #bfd9ea; transform: translateY(-1px); box-shadow: 0 14px 26px -16px rgba(12,42,71,.45); }
.g-logo{ width: 18px; height: 18px; flex: none; }
.g-score{ font-size: 1rem; font-weight: 800; }
.g-stars{ position: relative; display: inline-block; line-height: 0; }
.g-stars svg{ width: 16px; height: 16px; }
.g-stars-bg{ display: inline-flex; color: #d6dee7; }
.g-stars-fg{ position: absolute; inset: 0 auto 0 0; width: var(--pct); overflow: hidden; display: inline-flex; color: #f5a623; white-space: nowrap; }
.g-count{ color: var(--ink-soft); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(75,90,109,.35); }

.g-rating--hero{ margin-top: 1.2rem; }
.g-rating--lg{ padding: .6rem 1.1rem .6rem .8rem; font-size: 1rem; }
.g-rating--lg .g-score{ font-size: 1.25rem; }
.g-rating--lg .g-stars svg{ width: 20px; height: 20px; }
.g-rating--card{ margin: .2rem 0 1rem; }
.g-rating--dark{ margin-top: 1.2rem; background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.2); color: #fff; box-shadow: none; }
.g-rating--dark .g-count{ color: rgba(255,255,255,.82); text-decoration-color: rgba(255,255,255,.35); }
.g-rating--dark .g-stars-bg{ color: rgba(255,255,255,.25); }
.g-rating--dark:hover{ border-color: rgba(255,255,255,.45); }

.reviews-summary{ display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1.2rem; }
.aside-card .g-rating--card{ margin: 0 0 1rem; }

/* live open / closed status (Contact) */
.open-status{ display: inline-flex; align-items: center; gap: .35rem; margin-left: .5rem; padding: .15rem .55rem; border-radius: 999px; font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; vertical-align: middle; }
.open-status::before{ content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.open-status.is-open{ background: #e6f6ec; color: #17693a; }
.open-status.is-closed{ background: #f1f4f8; color: #4b5a6d; }

@media (max-width: 760px){
  .g-rating{ font-size: .84rem; }
  .reviews-summary .btn{ width: 100%; justify-content: center; }
}

/* home headline accent: exact logo blue (SUPER wordmark) */
.hero h1 em{ color: var(--blue-500); }

/* ============================================================
   ACCREDITATIONS: even 4 x 2 grid, logos sized by visual area
   ============================================================ */
.affil-strip{
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem;
  background: none; border: 0;
}
.affil-item{
  display: flex; align-items: center; justify-content: center;
  min-height: 150px; padding: 1.6rem 1.4rem;
  background: #fff; border: 1px solid var(--paper-line); border-radius: 14px;
  box-shadow: 0 18px 36px -30px rgba(12,42,71,.35);
  transition: border-color .25s ease, box-shadow .3s ease, transform .3s var(--ease-out);
}
.affil-item:hover{ border-color: rgba(39,167,223,.45); box-shadow: 0 22px 40px -28px rgba(12,42,71,.4); transform: translateY(-2px); }
.affil-item img{ max-height: none; width: auto; max-width: 100%; object-fit: contain; }
.affil-item:hover img{ transform: none; }
/*affil-sizes*/
.affil-item img[src*="trim/asic."]{ height: 64px; }
.affil-item img[src*="trim/bgl."]{ height: 98px; }
.affil-item img[src*="trim/classsuper."]{ height: 57px; }
.affil-item img[src*="trim/ipa."]{ height: 53px; }
.affil-item img[src*="trim/myob."]{ height: 67px; }
.affil-item img[src*="trim/quickbooks."]{ height: 98px; }
.affil-item img[src*="trim/tpb."]{ height: 81px; }
.affil-item img[src*="trim/xero."]{ height: 72px; }
/*/affil-sizes*/
@media (max-width: 980px){ .affil-strip{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px){
  .affil-strip{ gap: .7rem; }
  .affil-item{ min-height: 120px; padding: 1.2rem 1rem; }
  .affil-item img{ transform: scale(.82); }
}
/* hero credential chips use the trimmed logos too */
.credential-row img{ height: 44px; padding: 6px 10px; object-fit: contain; }

/* ============================================================
   ABOUT: licences & qualifications
   ============================================================ */
.btn-linkedin{ margin-top: 1.6rem; width: 100%; justify-content: center; background: #0a66c2; border-color: #0a66c2; color: #fff; }
.btn-linkedin:hover{ background: #084f96; border-color: #084f96; color: #fff; transform: translateY(-2px); }
.btn-linkedin svg{ width: 1.1em; height: 1.1em; }
.btn-linkedin:hover svg{ transform: none; }
.creds-jump{ display: block; margin-top: .9rem; text-align: center; font-size: var(--text-sm); font-weight: 700; color: #0b5d8c; }
.creds-jump:hover{ text-decoration: underline; text-underline-offset: 3px; }

.quals-section{ background: var(--paper-dim); }
.quals-section .section-lede a{ color: #0b5d8c; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.qual-groups{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem; align-items: start; }
.qual-group{ background: #fff; border: 1px solid var(--paper-line); border-radius: 14px; padding: 1.6rem 1.7rem; box-shadow: 0 18px 36px -30px rgba(12,42,71,.35); }
.qual-group h3{ font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); margin-bottom: 1rem; }
.qual-list{ list-style: none; margin: 0; padding: 0; }
.qual{ display: grid; gap: .15rem; padding: .9rem 0 .9rem 1.4rem; position: relative; border-top: 1px solid var(--paper-line); }
.qual:first-child{ border-top: 0; padding-top: 0; }
.qual::before{ content: ""; position: absolute; left: 0; top: 1.35rem; width: 8px; height: 8px; background: var(--blue-500); transform: rotate(45deg); }
.qual:first-child::before{ top: .45rem; }
.qual-title{ font-family: var(--font-display); font-weight: 800; font-size: 1.02rem; color: var(--ink); line-height: 1.35; }
.qual-issuer{ font-size: var(--text-sm); color: var(--ink); }
.qual-date{ font-size: .82rem; color: var(--ink-soft); }
@media (max-width: 760px){
  .qual-groups{ grid-template-columns: 1fr; }
  .qual-group{ padding: 1.3rem; }
}

/* qualifications: memberships left (full height), other groups stacked right; equal bottoms */
.qual-groups{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem; align-items: stretch; columns: auto; }
.qual-group{ margin: 0; display: block; width: auto; }
.qual-group:first-child{ grid-column: 1; grid-row: 1 / span 3; }
.qual-group:not(:first-child){ grid-column: 2; }
@media (max-width: 760px){
  .qual-groups{ grid-template-columns: 1fr; }
  .qual-group:first-child, .qual-group:not(:first-child){ grid-column: 1; grid-row: auto; }
}
.qual-group:first-child{ display: flex; flex-direction: column; }
.qual-group:first-child .qual-list{ flex: 1; display: flex; flex-direction: column; justify-content: space-between; }
@media (max-width: 760px){ .qual-group:first-child .qual-list{ justify-content: flex-start; } }
.qual::before{ display: none; }
.qual-title{ position: relative; }
.qual-title::before{ content: ""; position: absolute; left: -1.4rem; top: .42em; width: 8px; height: 8px; background: var(--blue-500); transform: rotate(45deg); }
.qual-group:first-child .qual{ flex: 1; align-content: center; padding-top: .9rem; }
.qual-group:first-child .qual:first-child{ padding-top: 0; }
@media (max-width: 760px){ .qual-group:first-child .qual{ flex: none; } }

/* FAQ on the Contact page */
.faq-group-title{ font-size: 1.2rem; margin-bottom: 1rem; }
.faq-page .faq-group{ scroll-margin-top: 100px; }
#faq{ scroll-margin-top: 80px; }

/* Contact: free consultation booking band */
.book-band{
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem 2.5rem;
  margin-bottom: 3rem; padding: 1.8rem 2.2rem;
  background: var(--paper-dim); border: 1px solid var(--paper-line); border-left: 4px solid var(--blue-500);
  border-radius: var(--radius);
}
.book-band h2{ font-size: clamp(1.25rem, 2vw, 1.55rem); }
.book-band p{ margin-top: .45rem; color: var(--ink-soft); max-width: 60ch; }
.book-band .btn{ flex-shrink: 0; }
@media (max-width: 760px){
  .book-band{ flex-direction: column; align-items: flex-start; padding: 1.5rem 1.3rem; margin-bottom: 2.2rem; }
}
@media (max-width: 560px){
  .cta-banner .hero-actions{ flex-direction: column; align-items: stretch; }
  .cta-banner .hero-actions .btn{ justify-content: center; }
}

/* Blog: articles imported from the previous website */
.archive-note{ background: var(--paper-dim); border-left: 4px solid var(--blue-500); padding: 1rem 1.3rem; font-size: .95rem; color: var(--ink-soft); }
.prose .table-wrap{ overflow-x: auto; margin: 0 0 1.25rem; }
.prose .table-wrap table{ margin: 0; }
.prose img{ max-width: 100%; height: auto; }

/* Blog: all-articles list with search */
.archive{ margin-top: clamp(3rem, 6vw, 4.5rem); padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--paper-line); }
.archive-head{ display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 1.5rem; }
.archive-count{ color: var(--ink-soft); font-weight: 600; }
.archive-search input{
  width: min(340px, 100%); min-height: 46px; padding: .6rem 1rem;
  font: inherit; font-size: 1rem; color: var(--ink);
  border: 1px solid var(--paper-line); border-radius: var(--radius); background: var(--paper);
}
.archive-search input:focus{ outline: 3px solid var(--blue-700); outline-offset: 1px; border-color: var(--blue-700); }
.archive-search{ flex: 0 1 340px; }
.archive-year{ font-size: 1.15rem; margin: 2rem 0 .6rem; color: var(--navy-900); }
.archive-list{ list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--paper-line); }
.archive-list li{ border-bottom: 1px solid var(--paper-line); }
.archive-list a{ display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .25rem 1.5rem; padding: .85rem .2rem; color: var(--ink); text-decoration: none; }
.archive-list a:hover .archive-title, .archive-list a:focus-visible .archive-title{ color: var(--blue-700); text-decoration: underline; text-underline-offset: 3px; }
.archive-title{ font-weight: 600; flex: 1 1 28rem; }
.archive-meta{ font-size: .88rem; color: var(--ink-soft); white-space: nowrap; }
.archive-empty{ color: var(--ink-soft); margin: 1rem 0; }

/* Calculators */
.calc-section{ padding-block: clamp(2.5rem, 5vw, 4rem); }
.calc{ display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
.calc-inputs{ min-width: 0; }
.calc-field{ margin-bottom: 1.2rem; }
.calc-input{ display: flex; align-items: stretch; border: 1px solid #d3dce6; background: #fff; border-radius: 8px; overflow: hidden; }
.calc-input:focus-within{ border-color: var(--blue-500); box-shadow: 0 0 0 3px rgba(39,167,223,.2); }
.calc-input input{ flex: 1; min-width: 0; border: 0; padding: .75rem .9rem; font-size: 1.05rem; font-variant-numeric: tabular-nums; color: var(--ink); background: transparent; outline: none; }
.calc-affix{ display: flex; align-items: center; padding: 0 .8rem; background: var(--paper-dim); color: var(--ink-soft); font-weight: 700; }
.calc-field select, .calc-field input[type="date"]{ width: 100%; padding: .75rem .9rem; font: inherit; font-size: 1.05rem; color: var(--ink); border: 1px solid #d3dce6; border-radius: 8px; background: #fff; }
.calc-field select:focus, .calc-field input[type="date"]:focus{ outline: none; border-color: var(--blue-500); box-shadow: 0 0 0 3px rgba(39,167,223,.2); }
.calc-hint{ margin-top: .35rem; font-size: .86rem; color: var(--ink-soft); }
.calc-group{ font-size: 1rem; margin: 1.8rem 0 .9rem; padding-top: 1.2rem; border-top: 1px solid var(--paper-line); color: var(--navy-900); }
.calc-check{ display: flex; gap: .6rem; align-items: flex-start; font-size: .95rem; cursor: pointer; }
.calc-check input{ width: 1.1rem; height: 1.1rem; margin-top: .2rem; accent-color: var(--blue-700); }
.calc-fieldset{ border: 0; padding: 0; margin: 0 0 1.4rem; }
.calc-fieldset legend{ font-weight: 700; font-size: var(--text-sm); color: var(--ink); margin-bottom: .6rem; }
.calc-choices{ display: grid; gap: .45rem; }
.calc-choice{ display: flex; gap: .65rem; align-items: flex-start; padding: .7rem .9rem; border: 1px solid #d3dce6; border-radius: 8px; background: #fff; cursor: pointer; font-size: .95rem; }
.calc-choice:hover{ border-color: #b9c6d3; }
.calc-choice input{ margin-top: .25rem; accent-color: var(--blue-700); }
.calc-choice:has(input:checked){ border-color: var(--blue-500); background: #f0f8fd; }
.calc-choice:has(input:focus-visible){ outline: 3px solid var(--blue-700); outline-offset: 1px; }

.calc-results{ position: sticky; top: 96px; background: var(--navy-900); color: #fff; border-radius: 12px; padding: clamp(1.4rem, 3vw, 2rem); min-width: 0; }
.calc-headline{ display: grid; gap: .3rem; padding-bottom: 1.2rem; border-bottom: 1px solid rgba(255,255,255,.16); }
.calc-label{ font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blue-300); }
.calc-big{ font-size: clamp(2.2rem, 5vw, 3rem); font-weight: 800; line-height: 1.1; font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.calc-big[data-tone="good"]{ color: #8fe0b5; }
.calc-big[data-tone="owe"]{ color: #ffc27a; }
.calc-big--word{ font-size: clamp(1.9rem, 4.2vw, 2.5rem); }
.calc-sub{ color: rgba(255,255,255,.82); font-size: .95rem; }
.calc-breakdown{ margin: 1rem 0 0; display: grid; }
.calc-breakdown div{ display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid rgba(255,255,255,.08); font-size: .95rem; }
.calc-breakdown dt{ color: rgba(255,255,255,.8); }
.calc-breakdown dd{ margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; }
.calc-breakdown .calc-total{ border-bottom: 0; padding-top: .8rem; font-size: 1.02rem; }
.calc-breakdown .calc-total dt{ color: #fff; font-weight: 700; }
.calc-bars{ display: grid; gap: .6rem; margin-top: 1.2rem; }
.calc-bar{ display: grid; grid-template-columns: 7rem 1fr auto; align-items: center; gap: .7rem; font-size: .88rem; }
.calc-bar i{ display: block; height: 10px; border-radius: 99px; background: var(--blue-500); min-width: 4px; transition: width .3s ease; }
.calc-bar:nth-child(2) i{ background: var(--gold-500); }
.calc-bar b{ font-variant-numeric: tabular-nums; }
.calc-reasons{ margin-top: 1.1rem; }
.calc-reasons h2, .calc-schedule h2{ font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--blue-300); margin-bottom: .6rem; }
.calc-reasons ul{ margin: 0; padding-left: 1.1rem; display: grid; gap: .45rem; font-size: .95rem; }
.calc-schedule{ margin-top: 1.2rem; }
.calc-schedule ol{ list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.calc-schedule li{ display: flex; flex-wrap: wrap; justify-content: space-between; gap: .2rem 1rem; font-size: .88rem; padding: .5rem .7rem; background: rgba(255,255,255,.06); border-radius: 6px; }
.calc-schedule li span:last-child{ color: rgba(255,255,255,.8); }
.calc-cta{ margin-top: 1.4rem; padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.16); display: grid; gap: .8rem; }
.calc-cta p{ margin: 0; font-size: .92rem; color: rgba(255,255,255,.85); }
.calc-cta .btn{ justify-content: center; }
.calc-notes{ max-width: 72ch; margin-top: clamp(2.5rem, 5vw, 3.5rem); }
.calc-notes h2{ font-size: 1.4rem; margin-bottom: .8rem; }
.calc-notes p, .calc-notes li{ color: #2a3646; line-height: 1.7; }
.calc-notes ul{ padding-left: 1.2rem; margin: 0 0 1rem; }
.calc-notes li{ margin-bottom: .4rem; }
.calc-table{ width: 100%; border-collapse: collapse; font-size: .92rem; margin: .5rem 0 1.2rem; }
.calc-table th, .calc-table td{ text-align: left; vertical-align: top; padding: .65rem .8rem; border-bottom: 1px solid var(--paper-line); }
.calc-table thead th{ background: var(--navy-900); color: #fff; font-weight: 700; white-space: nowrap; }
.calc-table tbody th{ font-weight: 700; color: var(--ink); }
.table-wrap{ overflow-x: auto; }
.calc-links{ grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: .8rem 2rem; }
.calc-cards{ display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; margin-bottom: 2rem; }
.calc-card{ display: grid; gap: .6rem; align-content: start; padding: 1.6rem; background: #fff; border: 1px solid var(--paper-line); border-radius: 12px; color: var(--ink); text-decoration: none; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.calc-card:hover{ border-color: #bfd9ea; box-shadow: 0 16px 34px -26px rgba(12,42,71,.45); transform: translateY(-2px); }
.calc-card h2{ font-size: 1.25rem; }
.calc-card p{ color: var(--ink-soft); font-size: .95rem; margin: 0; }
.calc-card-for{ font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blue-700); }
@media (max-width: 860px){
  .calc{ grid-template-columns: minmax(0, 1fr); }
  .calc-results{ position: static; }
}

/* SMSF page */
.smsf-intro{ display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
.smsf-figures .calc-table{ margin: 0 0 .6rem; }
.smsf-figures .calc-table td{ font-weight: 700; font-variant-numeric: tabular-nums; min-width: 7.5rem; }
.smsf-fit{ display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem 3rem; margin-bottom: 1.5rem; }
.smsf-fit h3{ font-size: 1.1rem; margin-bottom: .8rem; }
.ticks-list{ list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .75rem; }
.ticks-list li{ position: relative; padding-left: 1.8rem; line-height: 1.6; }
.ticks-list li::before{ content: ""; position: absolute; left: .2rem; top: .45em; width: .7rem; height: .4rem; border-left: 2px solid var(--blue-700); border-bottom: 2px solid var(--blue-700); transform: rotate(-45deg); }
.ticks-list--caution li::before{ width: .55rem; height: .55rem; border: 0; border-radius: 50%; background: var(--gold-500); transform: none; top: .5em; }
@media (max-width: 860px){ .smsf-intro{ grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px){
  .page-hero .hero-actions{ flex-direction: column; align-items: stretch; }
  .page-hero .hero-actions .btn{ justify-content: center; }
}
.aside-calc{ display: grid; gap: .35rem; text-decoration: none; color: var(--ink); border-left: 4px solid var(--blue-500); transition: border-color .2s ease, box-shadow .2s ease; }
.aside-calc strong{ font-size: 1.05rem; color: var(--navy-900); }
.aside-calc span:last-child{ font-size: .9rem; color: var(--ink-soft); }
.aside-calc:hover{ box-shadow: 0 16px 34px -26px rgba(12,42,71,.45); }
.aside-calc:hover strong{ color: var(--blue-700); text-decoration: underline; text-underline-offset: 3px; }

/* Home: information architecture refresh */
.directory-more{ margin-top: 1.4rem; color: var(--ink-soft); font-size: .98rem; }
.directory-more a{ color: var(--blue-700); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.home-why .lang-chips--dark{ list-style: none; display: flex; flex-wrap: wrap; gap: .45rem; margin: .8rem 0 0; padding: 0; }
.principles-list .lang-chips--dark li{ padding: .3rem .8rem; border-radius: 99px; background: var(--paper-dim); border: 1px solid var(--paper-line); color: var(--navy-900); font-weight: 700; font-size: .92rem; }
.principles-list .lang-chips--dark li::before{ content: none; }
.home-why-label{ margin: clamp(2.5rem, 5vw, 3.5rem) 0 1rem; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--blue-300); }
.affil-strip--compact{ grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: .7rem; }
.affil-strip--compact .affil-item{ min-height: 96px; padding: 1rem; }
.affil-strip--compact .affil-item img{ max-height: 54px; }
.steps{ list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1rem; counter-reset: step; }
.steps li{ counter-increment: step; position: relative; display: grid; gap: .6rem; align-content: start; padding: 1.8rem 1.6rem 1.6rem; background: #fff; border: 1px solid var(--paper-line); border-radius: 12px; }
.steps li::before{ content: counter(step); display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: var(--navy-900); color: #fff; font-weight: 800; }
.steps h3{ font-size: 1.15rem; }
.steps p{ color: var(--ink-soft); font-size: .96rem; margin: 0; }
.step-link{ display: inline-flex; align-items: center; gap: .4rem; margin-top: .3rem; font-weight: 700; color: var(--blue-700); }
.step-link svg{ width: .85em; height: .85em; }
.home-steps{ background: var(--paper-dim); }
.home-calcs .calc-card h3{ font-size: 1.15rem; }
.home-areas{ padding-block: clamp(1.8rem, 4vw, 2.6rem); border-top: 1px solid var(--paper-line); }
.home-areas .container{ display: flex; flex-wrap: wrap; align-items: baseline; gap: .6rem 1.6rem; }
.home-areas-title{ font-size: 1rem; margin: 0; }
.home-areas-list{ list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; color: var(--ink-soft); font-size: .95rem; }
.home-areas-list a{ color: var(--blue-700); font-weight: 700; }
.directory-row{ padding-block: 1.35rem; }
@media (max-width: 560px){
  .hero .hero-actions{ flex-direction: column; align-items: stretch; }
  .hero .hero-actions .btn{ justify-content: center; }
}
.principles-list--four{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 980px){ .principles-list--four{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px){ .principles-list--four{ grid-template-columns: minmax(0, 1fr); } }
.ind-photo{ margin: 0 0 2rem; aspect-ratio: 21 / 8; overflow: hidden; border-radius: 14px; position: relative; }
.ind-photo img{ width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.ind-photo::after{ content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, var(--blue-500) 0 62%, var(--gold-500) 62% 100%); }
@media (max-width: 760px){ .ind-photo{ aspect-ratio: 4 / 3; } }

/* Header navigation with dropdowns (built by tools/build_nav.py) */
.main-nav ul{ align-items: center; }
.main-nav .has-sub{ position: relative; display: flex; align-items: center; gap: .15rem; }
.main-nav a[aria-current="true"]{ color: var(--ink); }
.main-nav a[aria-current="true"]::after{ right: 0; }
.sub-toggle{
  display: grid; place-items: center; width: 22px; height: 26px; padding: 0;
  border: 0; background: none; color: var(--ink-soft); cursor: pointer; border-radius: 4px;
}
.sub-toggle svg{ width: 14px; height: 14px; transition: transform .25s ease; }
.sub-toggle:hover{ color: var(--ink); }
.sub-toggle:focus-visible{ outline: 2px solid var(--blue-700); outline-offset: 1px; }
.has-sub:hover .sub-toggle svg, .sub-toggle[aria-expanded="true"] svg{ transform: rotate(180deg); }
.main-nav .sub-menu{
  position: absolute; top: calc(100% + 12px); left: -1rem; z-index: 200;
  display: grid; gap: 0; min-width: 240px; padding: .5rem;
  background: #fff; border: 1px solid var(--paper-line); border-radius: 12px;
  box-shadow: 0 24px 48px -24px rgba(12,42,71,.35);
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
}
.main-nav .sub-menu::before{ content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; } /* hover bridge */
.main-nav .has-sub:hover .sub-menu,
.main-nav .has-sub:focus-within .sub-menu,
.main-nav .sub-toggle[aria-expanded="true"] + .sub-menu{
  opacity: 1; visibility: visible; transform: none; transition-delay: 0s;
}
.main-nav .sub-menu a{ display: block; padding: .6rem .8rem; border-radius: 8px; font-size: .92rem; color: var(--ink); white-space: nowrap; }
.main-nav .sub-menu a::after{ display: none; }
.main-nav .sub-menu a:hover, .main-nav .sub-menu a:focus-visible{ background: var(--paper-dim); color: var(--blue-700); }
.main-nav .sub-menu a[aria-current="page"]{ color: var(--blue-700); font-weight: 700; }
.main-nav .has-sub.is-closed .sub-menu{ opacity: 0; visibility: hidden; }

/* seven items: tighten on narrower desktops, switch to the menu button below 1100px */
@media (max-width: 1280px) and (min-width: 1101px){
  .main-nav{ gap: 1.4rem; }
  .main-nav ul{ gap: 1.15rem; }
  .main-nav a{ font-size: .9rem; }
}
@media (max-width: 1100px){
  .main-nav{ display: none; }
  .nav-toggle{ display: inline-flex; }
}

/* Mobile menu groups */
.mobile-menu-links .mm-row{ display: flex; align-items: center; gap: 1rem; }
.mobile-menu-links .mm-row > a{ flex: 1; }
.mm-toggle{
  width: 38px; height: 38px; display: grid; place-items: center; flex: none;
  border-radius: 999px; border: 1px solid rgba(255,255,255,.16); background: none; color: var(--paper); cursor: pointer;
}
.mm-toggle svg{ width: 16px; height: 16px; transition: transform .25s ease; }
.mm-toggle[aria-expanded="true"]{ background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.4); }
.mm-toggle[aria-expanded="true"] svg{ transform: rotate(180deg); }
.mm-toggle:focus-visible{ outline: 2px solid var(--blue-300); outline-offset: 2px; }
.mobile-menu-links .mm-sub{ list-style: none; margin: 0 0 .9rem; padding: 0 0 0 2.8rem; display: grid; gap: .15rem; }
.mobile-menu-links .mm-sub[hidden]{ display: none; }
.mobile-menu-links .mm-sub li{ border: 0; opacity: 1; transform: none; }
.mobile-menu-links .mm-sub a{ display: block; padding: .45rem 0; font-family: var(--font-label); font-size: 1rem; font-weight: 600; letter-spacing: 0; color: rgba(255,255,255,.85); }
.mobile-menu-links .mm-sub a:hover, .mobile-menu-links .mm-sub a[aria-current="page"]{ color: var(--gold-500); }
.main-nav > ul > li{ display: flex; align-items: center; }
.mobile-menu-links a[aria-current="true"] .label, .mobile-menu-links a[aria-current="true"] .num{ color: var(--gold-500); }

/* Photo banners on inner pages (set per page by tools/build_heroes.py) */
.page-hero--photo{
  background-image:
    linear-gradient(90deg, rgba(247,251,255,.95) 0%, rgba(247,251,255,.88) 40%, rgba(245,250,255,.58) 55%, rgba(240,247,253,.14) 70%, rgba(240,247,253,0) 85%),
    var(--hero-photo);
  background-size: cover;
  background-position: var(--hero-pos, center);
}
@media (max-width: 760px){
  .page-hero--photo{
    background-image: linear-gradient(180deg, rgba(247,251,255,.88) 0%, rgba(240,247,253,.76) 100%), var(--hero-photo-sm, var(--hero-photo));
  }
}

/* Calculators: rates in use, and the warning shown when a newer year hasn't been loaded */
.calc-rates{ margin: 1rem 0 0; font-size: .82rem; line-height: 1.5; color: rgba(255,255,255,.72); }
.calc-stale{ margin: 1rem 0 0; padding: .8rem 1rem; border-radius: 8px; background: #fff3d6; color: #5c3d00; font-size: .9rem; font-weight: 600; line-height: 1.5; }
.calc-field select{ appearance: auto; }

/* Who we help page */
.who-grid{ list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.2rem; }
.who-card{ display: flex; flex-direction: column; height: 100%; overflow: hidden; border: 1px solid var(--paper-line); border-radius: 14px; background: #fff; transition: transform .35s var(--ease-out), box-shadow .35s var(--ease-out), border-color .2s ease; }
.who-card:hover{ transform: translateY(-3px); border-color: transparent; box-shadow: 0 22px 44px -30px rgba(12,42,71,.45); }
.who-card-photo{ display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--paper-dim); }
.who-card-photo img{ width: 100%; height: 100%; object-fit: cover; }
.who-card-body{ display: flex; flex-direction: column; gap: .6rem; flex: 1; padding: 1.4rem 1.5rem 1.5rem; }
.who-card-body .post-more{ margin-top: auto; }
