/* ─────────────────────────────────────────────────────────────
   DESIGN TOKENS — brand sampled from live brilliantlifeservices.com.au
   ───────────────────────────────────────────────────────────── */:root{--deep:#0B6D97;      /* primary deep    */
  --primary:#0073A3;   /* primary         */
  --bright:#00ACED;    /* bright accent   */
  --soft:#6EC1E4;      /* soft accent     */
  --navy:#1B3555;      /* headings        */
  --ink:#2C3E50;       /* body text       */
  --muted:#5A6B7D;     /* secondary text  */
  --cta:#C2410C;       /* warm CTA — 5.9:1 on white */
  --cta-hi:#9A3412;
  --bg:#FFFFFF;
  --tint:#F3FAFD;      /* section wash    */
  --tint-2:#E8F4FA;
  --line:#D6E7F0;

  /* Easing — declared once, used everywhere. No bare keywords. */
  --ease-out:cubic-bezier(.23,1,.32,1);
  --ease-in-out:cubic-bezier(.77,0,.175,1);

  --r:14px; --r-lg:20px;
  --shadow-sm:0 1px 2px rgba(27,53,85,.06),0 2px 8px rgba(27,53,85,.05);
  --shadow-md:0 2px 4px rgba(27,53,85,.06),0 12px 28px rgba(27,53,85,.09);}.blsx,.blsx *,.blsx *::before,.blsx *::after{box-sizing:border-box}.blsx{-webkit-text-size-adjust:100%}.blsx{margin:0; background:var(--bg); color:var(--ink);
  font-family:"Public Sans",system-ui,sans-serif;
  font-size:17px; line-height:1.65; letter-spacing:0;  /* body tracking ≈ 0 */
  font-optical-sizing:auto;
  -webkit-font-smoothing:antialiased;}.blsx img{max-width:100%;display:block}/* ── Optical typography: tracking + leading are SIZE-SPECIFIC ───────── */.blsx h1,.blsx h2,.blsx h3{font-family:Lora,Georgia,serif;color:var(--navy);margin:0;font-weight:600}.blsx h1{font-size:clamp(34.4px,5.2vw,58.4px); line-height:1.06; letter-spacing:-.022em}.blsx h2{font-size:clamp(25.6px,3.1vw,36.8px);   line-height:1.15; letter-spacing:-.015em}.blsx h3{font-size:19px;                    line-height:1.3;  letter-spacing:-.008em}.blsx .eyebrow{font-family:"Public Sans",sans-serif;font-size:13px;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;color:var(--primary);margin:0 0 14.4px}.blsx p{margin:0 0 18.4px}.blsx .lede{font-size:19px;line-height:1.62;color:var(--muted)}.blsx .wrap{max-width:1140px;margin-inline:auto;padding-inline:clamp(18.4px,4vw,32px)}.blsx section{padding-block:clamp(52px,7vw,88px)}.blsx .tint{background:var(--tint)}/* ── Skip link ─────────────────────────────────────────────────────── */.blsx .skip{position:absolute;left:-9999px;top:0;z-index:99;
  background:var(--navy);color:#fff;padding:13.6px 20px;border-radius:0 0 var(--r) 0;font-weight:600}.blsx .skip:focus{left:0}/* ── Header ────────────────────────────────────────────────────────── */.blsx .site-head{position:sticky;top:0;z-index:40;
  background:rgba(255,255,255,.88);
  -webkit-backdrop-filter:saturate(180%) blur(14px); backdrop-filter:saturate(180%) blur(14px);
  /* scroll edge mask, not a 1px divider */
  box-shadow:0 1px 0 rgba(214,231,240,.9), 0 10px 22px -18px rgba(27,53,85,.5);}.blsx .head-in{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:13.6px}.blsx .brand{display:flex;align-items:center;gap:11.2px;text-decoration:none;color:var(--navy)}.blsx .brand-mark{width:38px;height:38px;border-radius:11px;background:linear-gradient(140deg,var(--bright),var(--deep));flex:none}.blsx .brand-name{font-family:Lora,serif;font-weight:600;font-size:17px;line-height:1.15;letter-spacing:-.01em}.blsx .brand-name span{display:block;font-family:"Public Sans",sans-serif;font-size:11.5008px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--primary)}.blsx .head-actions{display:flex;align-items:center;gap:9.6px}.blsx .btn-label{white-space:nowrap}.blsx .btn-short{display:none;white-space:nowrap}.blsx .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}/* Small screens: the header must not wrap. Brand drops its tagline, the phone
   button goes icon-only (still a 48px target), the CTA shortens. */@media (max-width:640px){.blsx .brand-name{font-size:15px;max-width:152px}.blsx .brand-name span{display:none}.blsx .head-in{padding-block:10.4px}.blsx .head-actions .btn{padding-inline:16px}.blsx .head-actions .btn-label{display:none}.blsx .head-actions .btn-short{display:inline}.blsx .head-actions .btn--ghost{width:48px;padding:0;justify-content:center}.blsx .head-actions .btn--ghost svg{width:21px;height:21px}}/* ── Buttons ───────────────────────────────────────────────────────── */.blsx .btn{--btn-bg:var(--cta); --btn-fg:#fff;
  display:inline-flex;align-items:center;justify-content:center;gap:8.8px;
  min-height:48px; padding:12.8px 24px;      /* ≥44px touch target */
  background:var(--btn-bg);color:var(--btn-fg);
  font:600 16px/1 "Public Sans",sans-serif;letter-spacing:.002em;
  border:0;border-radius:999px;text-decoration:none;cursor:pointer;
  transition:background-color 180ms var(--ease-out), transform 160ms var(--ease-out), box-shadow 180ms var(--ease-out);
  box-shadow:var(--shadow-sm);}.blsx .btn:hover{background:var(--cta-hi)}.blsx .btn:active{transform:scale(.97)}/* the UI answers the press */.blsx .btn--ghost{--btn-bg:transparent;--btn-fg:var(--deep);box-shadow:inset 0 0 0 1.5px var(--line)}.blsx .btn--ghost:hover{--btn-bg:var(--tint-2);box-shadow:inset 0 0 0 1.5px var(--soft)}.blsx .btn--lg{min-height:54px;padding:15.2px 30.4px;font-size:17px}.blsx .btn svg{width:19px;height:19px;flex:none}@media (hover:hover) and (pointer:fine){/* hover motion gated */.blsx .btn:hover{box-shadow:var(--shadow-md)}}.blsx :where(a,button,summary,[tabindex]):focus-visible{outline:3px solid var(--bright);outline-offset:3px;border-radius:8px}/* ── Hero ──────────────────────────────────────────────────────────── */.blsx .hero{position:relative;overflow:hidden;
  background:
    radial-gradient(80% 120% at 88% 8%, rgba(110,193,228,.28) 0%, rgba(110,193,228,0) 62%),
    radial-gradient(70% 90% at 4% 96%, rgba(0,172,237,.16) 0%, rgba(0,172,237,0) 60%),
    linear-gradient(180deg,#F7FCFE 0%, #FFFFFF 78%);
  padding-block:clamp(48px,7.5vw,92px) clamp(48px,6vw,76px);}.blsx .hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(32px,5vw,64px);align-items:center}@media (max-width:900px){.blsx .hero-grid{grid-template-columns:1fr;gap:36px}}.blsx .hero p.lede{max-width:544px;margin-top:21.6px}/* Supporting note under an editorial heading — stops the left column reading as a hole */.blsx .aside-note{margin-top:24px;padding:18.4px 20.8px;background:#fff;border:1px solid var(--line);
  border-left:3px solid var(--bright);border-radius:0 var(--r) var(--r) 0;box-shadow:var(--shadow-sm)}.blsx .aside-note p{margin:0;font-size:15.5008px;line-height:1.6;color:var(--muted)}.blsx .aside-note strong{color:var(--navy)}.blsx .hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30.4px}.blsx .trust{display:flex;flex-wrap:wrap;gap:8px;margin-top:30.4px;padding:0;list-style:none}.blsx .trust li{display:inline-flex;align-items:center;gap:7.2px;
  background:#fff;border:1px solid var(--line);border-radius:999px;
  padding:6.72px 13.6px;font-size:14px;font-weight:500;color:var(--navy);
  box-shadow:var(--shadow-sm)}.blsx .trust svg{width:15px;height:15px;color:var(--primary);flex:none}/* Hero card — a real surface, weight encodes hierarchy */.blsx .hero-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:clamp(24px,3vw,32px);box-shadow:var(--shadow-md)}.blsx .hero-card h2{font-size:21px;line-height:1.25;margin-bottom:5.6px}.blsx .hero-card .sub{font-size:15px;color:var(--muted);margin-bottom:21.6px}.blsx .step{display:flex;gap:14.4px;padding:12.8px 0;border-top:1px solid var(--line)}.blsx .step:first-of-type{border-top:0;padding-top:0}.blsx .step-n{width:29px;height:29px;flex:none;border-radius:50%;
  background:var(--tint-2);color:var(--deep);
  font:600 14px/29px "Public Sans",sans-serif;text-align:center}.blsx .step b{display:block;color:var(--navy);font-weight:600;font-size:15.5008px;line-height:1.35}.blsx .step span{font-size:14.5008px;color:var(--muted);line-height:1.5}/* ── Prose + generic blocks ────────────────────────────────────────── */.blsx .head-block{max-width:704px;margin-bottom:40px}.blsx .head-block p{color:var(--muted);margin-bottom:0}.blsx .two-col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,52px);align-items:start}@media (max-width:820px){.blsx .two-col{grid-template-columns:1fr;gap:32px}}/* ── Benefit list ──────────────────────────────────────────────────── *//* 290px min → 3 across at 1140px container, so six items read 3+3, never 4+2 */.blsx .benefits{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px;list-style:none;padding:0;margin:0}.blsx .benefit{display:flex;gap:13.6px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r);padding:19.2px 20px;box-shadow:var(--shadow-sm)}.blsx .benefit svg{width:21px;height:21px;color:var(--primary);flex:none;margin-top:2px}.blsx .benefit p{margin:0;font-size:15.5008px;line-height:1.55;color:var(--ink)}/* ── Service cards ─────────────────────────────────────────────────── */.blsx .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:17.6px}.blsx .card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:25.6px 24px;box-shadow:var(--shadow-sm);
  transition:box-shadow 200ms var(--ease-out), transform 200ms var(--ease-out), border-color 200ms var(--ease-out)}@media (hover:hover) and (pointer:fine){.blsx .card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);border-color:var(--soft)}}.blsx .card-ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;margin-bottom:16px;
  background:linear-gradient(140deg,var(--tint-2),#fff);border:1px solid var(--line)}.blsx .card-ico svg{width:22px;height:22px;color:var(--deep)}.blsx .card h3{margin-bottom:8px}.blsx .card p{margin:0;font-size:15.5008px;line-height:1.6;color:var(--muted)}/* ── Practitioner list ─────────────────────────────────────────────── */.blsx .plist{list-style:none;padding:0;margin:0;display:grid;gap:10.4px}.blsx .plist li{display:flex;gap:12.8px;align-items:flex-start;font-size:16.5008px;line-height:1.55}.blsx .plist svg{width:20px;height:20px;color:var(--primary);flex:none;margin-top:4px}/* ── FAQ ───────────────────────────────────────────────────────────── */.blsx .faq{max-width:752px;margin-inline:auto;display:grid;gap:11.2px}.blsx details{background:#fff;border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow-sm);overflow:hidden}.blsx details[open]{border-color:var(--soft)}.blsx summary{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:17.6px 20.8px;cursor:pointer;list-style:none;
  font-family:Lora,serif;font-size:17px;font-weight:600;line-height:1.35;
  letter-spacing:-.008em;color:var(--navy);min-height:56px;
  transition:background-color 180ms var(--ease-out)}.blsx summary::-webkit-details-marker{display:none}@media (hover:hover) and (pointer:fine){.blsx summary:hover{background:var(--tint)}}.blsx summary:active{transform:scale(.995)}.blsx .chev{width:20px;height:20px;flex:none;color:var(--primary);transition:transform 200ms var(--ease-out)}.blsx details[open] .chev{transform:rotate(180deg)}.blsx .faq-body{padding:0 20.8px 19.2px;color:var(--muted);font-size:16px;line-height:1.65}.blsx .faq-body p{margin:0}/* ── Contact band ──────────────────────────────────────────────────── */.blsx .band{background:linear-gradient(135deg,var(--deep) 0%, var(--primary) 55%, #0086BB 100%);
  color:#fff;border-radius:var(--r-lg);padding:clamp(32px,4.5vw,52px);
  display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(24px,4vw,48px);align-items:center}@media (max-width:820px){.blsx .band{grid-template-columns:1fr}}.blsx .band h2{color:#fff}/* Vibrancy: on a coloured surface, lift contrast + weight rather than using flat grey */.blsx .band p{color:rgba(255,255,255,.93);font-weight:400;letter-spacing:.004em;margin-bottom:0}.blsx .band .btn{--btn-bg:#fff;--btn-fg:var(--deep)}.blsx .band .btn:hover{--btn-bg:#F0F9FE}.blsx .band-contact{display:grid;gap:11.2px}.blsx .band-contact a{display:flex;align-items:center;gap:11.2px;color:#fff;text-decoration:none;font-weight:600;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);
  border-radius:var(--r);padding:13.6px 17.6px;min-height:48px;
  transition:background-color 180ms var(--ease-out), transform 160ms var(--ease-out)}.blsx .band-contact a:hover{background:rgba(255,255,255,.2)}.blsx .band-contact a:active{transform:scale(.97)}.blsx .band-contact svg{width:19px;height:19px;flex:none}.blsx .band-contact small{display:block;font-weight:400;font-size:13px;color:rgba(255,255,255,.8);letter-spacing:.01em}/* ── Footer ────────────────────────────────────────────────────────── */.blsx .site-foot{background:var(--navy);color:rgba(255,255,255,.82);padding-block:40px;font-size:15px}.blsx .site-foot a{color:#fff}.blsx .foot-in{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center}.blsx .note{font-size:13.5008px;color:rgba(255,255,255,.62);margin:9.6px 0 0;max-width:736px;line-height:1.55}/* ─────────────────────────────────────────────────────────────
   MOTION — everything below is in the Phase 1.5 budget.
   transform + opacity only.
   ───────────────────────────────────────────────────────────── */.blsx .rise{opacity:0;transform:translateY(14px);transition:opacity 220ms var(--ease-out), transform 220ms var(--ease-out)}.blsx .rise.in{opacity:1;transform:none}/* Hero load: ONE orchestrated sequence, 60ms stagger, first view only.
   Delay is an explicit token per element — positional nth-child selectors silently
   broke when an element was added, and lost specificity fights with .hero-card. */.blsx .hero .rise{transition-duration:260ms;transition-delay:var(--d,0ms)}@media (prefers-reduced-motion:reduce){/* Gentle: movement dropped, opacity/colour kept. Not "all animation off". */.blsx .rise{transform:none;transition:opacity 200ms var(--ease-out)}.blsx .card:hover{transform:none}.blsx .btn:active,.blsx .band-contact a:active,.blsx summary:active{transform:none}.blsx .chev{transition:none}}@media (prefers-reduced-transparency:reduce){.blsx .site-head{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}.blsx .band-contact a{background:rgba(255,255,255,.22)}}@media (prefers-contrast:more){:root{--muted:#33475C;--line:#8FB6CA}.blsx .site-head{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}.blsx .benefit,.blsx .card,.blsx details,.blsx .hero-card{border-width:2px}}
/* Twenty Nineteen sets a global svg{fill:currentColor}; every icon in this
   page is stroke-drawn with fill="none" and turns into a solid blob without
   this. */
.blsx svg{fill:none}

/* Twenty Nineteen prints a 2px grey dash before every heading via h2:before.
   The design has no ::before of its own on headings, so switching it off here
   is safe and removes the stray rules above each section title. */
.blsx h1::before,.blsx h2::before,.blsx h3::before{content:none;display:none}

/* Footer disclaimer strip — the standalone design carried this in its own
   footer; the site footer is Elementor's, so it sits at the end of the page. */
.blsx .blsx-disclaimer{padding-block:0 clamp(32px,4vw,48px)}
.blsx .blsx-disclaimer .note{margin:0;font-size:13.6px;line-height:1.6;color:var(--muted)}
