/* Hire a Wifey. Hervey Bay.
   Palette locked to the brand uniform: pink, black, white. Light theme only.
   Radius rule: buttons and chips = pill, media and cards = 20px, inputs = 12px. */

:root{
  --ink:#17131a;          /* warm near black */
  --ink-2:#2c242f;
  --body:#574b54;         /* 7.5:1 on white */
  --muted:#726470;       /* 5.6:1 on white, 4.9:1 on blush */
  --pink:#e5397d;         /* brand pink, display and accents */
  --pink-cta:#d62a6e;     /* button fill, 4.76:1 with white text */
  --pink-ink:#a81c55;     /* small pink text, 7:1 on white */
  --blush:#fdedf3;
  --blush-2:#fbe0eb;
  --line:#f0d9e3;
  --paper:#fff;
  --shell:#fefcfd;

  --r-card:20px;
  --r-in:12px;

  --pad:clamp(1.15rem,5vw,2rem);
  --sec:clamp(4.25rem,10vw,8rem);
  --max:1240px;
  --nav-h:67px;   /* 66px bar + 1px border */

  --ease:cubic-bezier(.16,1,.3,1);
  --t:.55s var(--ease);

  --f-disp:"Playfair Display",Georgia,"Times New Roman",serif;
  --f-body:"Instrument Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --f-hand:"Caveat","Segoe Script",cursive;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--shell);color:var(--body);
  font:400 1.0625rem/1.68 var(--f-body);
  overflow-x:hidden;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{margin:0;color:var(--ink);font-family:var(--f-disp);font-weight:600;letter-spacing:-.015em}
p{margin:0 0 1rem}
ul,ol{margin:0;padding:0;list-style:none}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.ic{width:1.25em;height:1.25em;fill:currentColor;flex:none}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--pad)}
.tc{text-align:center}

:focus-visible{outline:3px solid var(--pink);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-9999px;top:0;z-index:90;background:var(--ink);color:#fff;padding:.9rem 1.2rem;border-radius:0 0 12px 0}
.skip:focus{left:0}

/* ---------- type scale ---------- */
.h2{font-size:clamp(2.05rem,7vw,3.6rem);line-height:1.06;margin-bottom:1.15rem;text-wrap:balance}
.h2 em{font-style:italic;color:var(--pink);line-height:1.14;display:inline-block;padding-bottom:.06em}
.h2--light,.h2--light em{color:#fff}
.h2--light em{color:var(--pink)}
.h3{font-size:clamp(1.3rem,3.6vw,1.7rem);line-height:1.25}
.lead{font-size:clamp(1.05rem,2.4vw,1.2rem);line-height:1.62;color:var(--body);max-width:60ch}
.lead--wide{max-width:72ch}
.lead--light{color:rgba(255,255,255,.82)}
.body{max-width:62ch}
.eyebrow{
  font:600 .7rem/1 var(--f-body);letter-spacing:.19em;text-transform:uppercase;
  color:var(--pink-ink);margin:0 0 1rem;display:block;
}
.eyebrow--light{color:rgba(255,255,255,.9)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  min-height:52px;padding:.85rem 1.5rem;border:1.5px solid transparent;border-radius:999px;
  font:600 1rem/1 var(--f-body);letter-spacing:.005em;text-decoration:none;cursor:pointer;
  white-space:nowrap;transition:background .3s var(--ease),color .3s var(--ease),
    border-color .3s var(--ease),transform .18s var(--ease),box-shadow .3s var(--ease);
}
.btn:active{transform:scale(.978)}
.btn--sm{min-height:44px;padding:.6rem 1.1rem;font-size:.925rem}
.btn--lg{min-height:58px;padding:1rem 1.9rem;font-size:1.05rem}
.btn--block{display:flex;width:100%}
.btn--pink{background:var(--pink-cta);color:#fff;box-shadow:0 10px 26px -12px rgba(214,42,110,.75)}
.btn--pink:hover{background:#c02361;box-shadow:0 16px 34px -14px rgba(214,42,110,.9)}
.btn--ink{background:var(--ink);color:#fff}
.btn--ink:hover{background:#000}
.btn--line{background:transparent;color:var(--ink);border-color:var(--line)}
.btn--line:hover{border-color:var(--pink);color:var(--pink-ink);background:var(--blush)}
.btn--ghost{background:rgba(23,19,26,.34);color:#fff;border-color:rgba(255,255,255,.7);backdrop-filter:blur(8px)}
.btn--ghost:hover{background:#fff;color:var(--ink);border-color:#fff}
/* trailing icon lives in its own disc, flush to the padding */
.btn__dot{
  display:grid;place-items:center;width:26px;height:26px;border-radius:999px;
  background:rgba(255,255,255,.22);margin-right:-.45rem;
  transition:transform .35s var(--ease),background .3s var(--ease);
}
.btn__dot .ic{width:.85em;height:.85em}
.btn:hover .btn__dot{transform:translateX(3px);background:rgba(255,255,255,.34)}
.btn--ink .btn__dot{background:rgba(255,255,255,.18)}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:40;background:rgba(254,252,253,.88);backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}
.nav.is-stuck{border-bottom-color:var(--line);box-shadow:0 8px 26px -22px rgba(23,19,26,.5)}
.nav__in{display:flex;align-items:center;gap:1rem;max-width:var(--max);margin-inline:auto;
  padding:.6rem var(--pad);min-height:66px}
.nav__logo{flex:none;display:flex;align-items:center;min-height:44px}
.nav__logo img{width:auto;height:38px}
.nav__links{display:none;margin-left:auto;gap:1.6rem;align-items:center}
.nav__links a{font-weight:500;font-size:.95rem;text-decoration:none;color:var(--ink-2);position:relative;padding:.3rem 0}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--pink);
  transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav__links a:hover::after{transform:scaleX(1)}
.nav__act{display:flex;align-items:center;gap:.55rem;margin-left:auto}
.nav__burger{display:grid;place-items:center;width:46px;height:46px;border:1.5px solid var(--line);
  border-radius:999px;background:var(--paper);color:var(--ink);cursor:pointer}
.nav__burger .ic{width:1.35rem;height:1.35rem}
@media (min-width:1040px){
  .nav__links{display:flex}
  .nav__act{margin-left:1.4rem}
  .nav__burger{display:none}
}

/* ---------- mobile drawer ---------- */
.drawer{position:fixed;inset:0;z-index:60;background:var(--paper);display:flex;flex-direction:column;
  padding:var(--pad);padding-bottom:calc(var(--pad) + env(safe-area-inset-bottom))}
.drawer[hidden]{display:none}
.drawer__head{display:flex;align-items:center;justify-content:space-between;min-height:52px}
.drawer__ttl{font:600 .7rem/1 var(--f-body);letter-spacing:.19em;text-transform:uppercase;color:var(--muted)}
.drawer__close{width:46px;height:46px;display:grid;place-items:center;border:1.5px solid var(--line);
  border-radius:999px;background:none;color:var(--ink);cursor:pointer}
.drawer__nav{display:flex;flex-direction:column;gap:.15rem;margin-top:2rem;flex:1}
.drawer__nav a{font-family:var(--f-disp);font-size:clamp(1.8rem,8vw,2.4rem);color:var(--ink);
  text-decoration:none;padding:.35rem 0;opacity:0;transform:translateY(16px);
  animation:drawerIn .5s var(--ease) forwards}
.drawer__nav a:nth-child(1){animation-delay:.04s}.drawer__nav a:nth-child(2){animation-delay:.08s}
.drawer__nav a:nth-child(3){animation-delay:.12s}.drawer__nav a:nth-child(4){animation-delay:.16s}
.drawer__nav a:nth-child(5){animation-delay:.2s}.drawer__nav a:nth-child(6){animation-delay:.24s}
.drawer__nav a:nth-child(7){animation-delay:.28s}
@keyframes drawerIn{to{opacity:1;transform:none}}
.drawer__foot{display:grid;gap:.9rem;border-top:1px solid var(--line);padding-top:1.2rem}
.drawer__tel{display:flex;align-items:center;justify-content:center;gap:.5rem;font-weight:600;
  color:var(--ink);text-decoration:none;min-height:44px}

/* ---------- hero ----------
   Type-led opener, no side-by-side column anywhere. The headline owns the full
   measure; the imagery is a full-bleed band of portrait cells sharing a bottom
   baseline at staggered heights, so the tops form a skyline rather than a row
   of equal rectangles. Portrait assets in portrait cells means no face is ever
   cover-cropped, which was the flaw in the split layout. */
.hero{background:var(--blush);padding-top:clamp(2rem,5vw,3.4rem);overflow:hidden}
.hero__h1{margin:0}
.hero__h1 .eyebrow{margin-bottom:1.1rem;position:relative;padding-bottom:.85rem}
.hero__h1 .eyebrow::after{content:"";position:absolute;left:0;bottom:0;width:56px;height:2px;background:var(--pink);
  transform:scaleX(0);transform-origin:left;animation:ruleIn .8s .35s var(--ease) forwards}
@keyframes ruleIn{to{transform:scaleX(1)}}
.hero__ask,.hero__brand{display:block;font-family:var(--f-disp);line-height:1.02;letter-spacing:-.022em}
.hero__ask{font-size:clamp(2.4rem,6vw,4.75rem);font-weight:500;color:var(--ink)}
.hero__brand{font-size:clamp(2.4rem,6vw,4.75rem);font-weight:700;font-style:italic;color:var(--pink);
  line-height:1.14;padding-bottom:.04em}
.hero__foot{margin-top:clamp(1.4rem,3vw,2rem);padding-top:clamp(1.2rem,2.5vw,1.6rem);
  border-top:1px solid var(--line);display:grid;gap:1.4rem}
.hero__sub{margin:0;max-width:44ch;color:var(--body);font-size:clamp(1rem,2.2vw,1.15rem)}
.hero__cta{display:flex;flex-direction:column;gap:.7rem}
.hero__ask,.hero__brand,.hero__foot{opacity:0;animation:heroUp .8s var(--ease) forwards}
.hero__ask{animation-delay:.05s}.hero__brand{animation-delay:.16s}.hero__foot{animation-delay:.3s}
@keyframes heroUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

/* image band.
   Explicit heights, not aspect-ratios: at 1920 an aspect-ratio cell computed to
   ~700px tall and pushed the whole band off screen. Heights keep the hero to one
   screen at any width. Crops are tight on the work (hands, linen, cutlery) so the
   band does not repeat the full portraits used further down the page. */
.band{display:grid;align-items:end;gap:.6rem;
  width:100%;max-width:var(--max);margin:clamp(1.4rem,3vw,1.8rem) auto 0;
  padding-inline:var(--pad);grid-template-columns:1fr 1fr}
.band li{position:relative;min-width:0;opacity:0;animation:heroUp .9s var(--ease) forwards}
.band li:nth-child(1){animation-delay:.42s}.band li:nth-child(2){animation-delay:.5s}
.band li:nth-child(3){animation-delay:.58s}.band li:nth-child(4){animation-delay:.66s}
.band img{width:100%;object-fit:cover;display:block;border-radius:var(--r-card)}
/* Cell proportions follow each source so cover barely crops. The portrait shot
   gets the narrowest, tallest cell; the landscape and square shots get wider,
   shorter ones. No zoom: it was cutting heads off. */
.band__a img{height:min(clamp(176px,24vw,330px),34svh);object-position:50% 38%}
.band__b img{height:min(clamp(140px,18vw,248px),26svh);object-position:70% 46%}
.band__c img{height:min(clamp(156px,21vw,291px),30svh);object-position:50% 44%}
.band__d img{height:min(clamp(148px,19vw,269px),28svh);object-position:68% 44%}
.band__c,.band__d{display:none}

@media (min-width:640px){
  /* deliberately uneven: four equal cells would read as a stock photo row */
  .band{grid-template-columns:1.05fr 1fr 1.18fr .86fr;gap:.85rem}
  .band__c,.band__d{display:block}
}
@media (min-width:900px){
  .hero__foot{grid-template-columns:1fr auto;align-items:center;gap:2.5rem}
  .hero__cta{flex-direction:row}
  .hero__sub{font-size:1.15rem}
}
@media (min-width:1040px){
  .hero{padding-top:clamp(1.8rem,3.4vw,2.5rem)}
  .band{gap:1.1rem}
}
/* Desktop: hero + trust strip occupy exactly one viewport, so no sliver of the
   next section shows. A definite height on .opener is what makes it work: with
   only min-height the band had no resolvable height and the images fell back to
   their intrinsic size, overflowing by up to 105px. The band is the flex child
   that absorbs slack, so the type block stays put and the photos adapt. */
@media (min-width:1040px){
  .opener{height:max(calc(100svh - var(--nav-h)),600px);
    display:flex;flex-direction:column;overflow:hidden}
  .hero{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding-top:1.5rem}
  .hero__top{flex:0 0 auto}
  .strip{flex:0 0 auto}
  .band{flex:1 1 auto;min-height:0;margin-bottom:0;
    grid-template-rows:1fr;align-items:stretch}
  .band li{height:100%;min-height:0;display:flex;align-items:flex-end}
  /* percentages of the now-definite band height keep the staggered skyline */
  .band__a img{height:100%}
  .band__b img{height:76%}
  .band__c img{height:90%}
  .band__d img{height:83%}
  .band img{border-radius:var(--r-card) var(--r-card) 0 0}
}


/* ---------- trust strip (static) ---------- */
.strip{background:var(--ink);color:#fff;padding:1.15rem var(--pad)}
/* Measured at this type size: row two of a 4+4 needs 602px, and a fifth item
   lands at 658px. So the only cap that yields a balanced 4+4 sits in 620-650.
   All eight on one line needs 1158px. */
.strip__row{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem 1.7rem;
  max-width:640px;margin-inline:auto}
.strip__row li{display:flex;align-items:center;gap:.5rem;font-size:.92rem;font-weight:500;white-space:nowrap}
/* below 640 the flex wrap goes ragged (2+3+2+1), so pin it to a tidy 2 columns */
@media (max-width:639px){
  .strip__row{display:grid;grid-template-columns:1fr 1fr;gap:.85rem 1rem;max-width:none}
  .strip__row li{white-space:normal;align-items:flex-start;line-height:1.35;font-size:.88rem}
  .strip__row .ic{margin-top:.1rem}
}
.strip__row .ic{color:var(--pink);width:1.15rem;height:1.15rem}
@media (min-width:1260px){.strip__row{max-width:1200px}}

/* ---------- signature: the striking to-do list ---------- */
.strike{margin:1.6rem 0 1.2rem;display:grid;gap:.35rem}
.strike li{
  position:relative;display:inline-block;width:fit-content;padding:.1rem .1rem .1rem 1.9rem;
  font-family:var(--f-hand);font-size:clamp(1.45rem,5vw,1.9rem);line-height:1.5;color:var(--ink);
  transition:opacity .5s var(--ease),color .5s var(--ease);
}
.strike li::before{
  content:"";position:absolute;left:0;top:.62em;width:13px;height:13px;
  border:2px solid var(--pink);border-radius:3px;transform:translateY(-50%);
  transition:background .35s var(--ease),border-color .35s var(--ease);
}
.strike li::after{
  content:"";position:absolute;left:1.75rem;right:-.15rem;top:.72em;height:3px;border-radius:3px;
  background:var(--pink);transform:scaleX(0);transform-origin:left;
  transition:transform .5s var(--ease);transition-delay:var(--d,0s);
}
.strike.is-done li{opacity:.45}
.strike.is-done li::before{background:var(--pink)}
.strike.is-done li::after{transform:scaleX(1)}
.strike li:nth-child(1){--d:.05s}.strike li:nth-child(2){--d:.24s}.strike li:nth-child(3){--d:.43s}
.strike li:nth-child(4){--d:.62s}.strike li:nth-child(5){--d:.81s}.strike li:nth-child(6){--d:1s}
.strike--light li{color:#fff}
.strike--light li::before{border-color:var(--pink)}

.todo{padding-block:var(--sec);background:var(--paper)}
.todo__grid{display:grid;gap:clamp(2rem,6vw,4rem)}
.todo__or{font-family:var(--f-hand);font-size:clamp(1.6rem,6vw,2.1rem);color:var(--pink);margin:.2rem 0 1.4rem;transform:rotate(-2deg);transform-origin:left}
.todo__fig{margin:0;border-radius:var(--r-card);overflow:hidden}
.todo__fig img{width:100%;aspect-ratio:4/3;object-fit:cover}
@media (min-width:900px){
  .todo__grid{grid-template-columns:1.05fr .95fr;align-items:center}
  .todo__fig{position:sticky;top:100px}
}

/* ---------- services ---------- */
.svcs{padding-block:var(--sec);background:var(--blush)}
.svcs__h2{max-width:16ch}
.svcs .lead{margin-top:1rem}
.rail{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(268px,78vw);gap:1rem;
  overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  padding:2.2rem var(--pad) .5rem;scrollbar-width:none;
}
.rail::-webkit-scrollbar{display:none}
.svc{scroll-snap-align:start;background:var(--paper);border-radius:var(--r-card);overflow:hidden;
  box-shadow:0 18px 40px -32px rgba(23,19,26,.5);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.svc:hover{transform:translateY(-5px);box-shadow:0 26px 52px -34px rgba(23,19,26,.6)}
.svc img{width:100%;aspect-ratio:1/1;object-fit:cover;transition:transform .8s var(--ease)}
.svc:hover img{transform:scale(1.04)}
.svc h3{font-size:1.3rem;margin:1.1rem 1.25rem .45rem}
.svc p{font-size:.95rem;line-height:1.6;margin:0 1.25rem 1.4rem;color:var(--body)}
.rail__hint{text-align:center;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:.4rem 0 0}
@media (min-width:900px){
  .rail{grid-auto-flow:row;grid-template-columns:repeat(3,1fr);overflow:visible;
    max-width:var(--max);margin-inline:auto;gap:1.5rem;padding-top:3rem}
  .rail>.svc:nth-child(even){transform:translateY(2.75rem)}
  .rail>.svc:nth-child(even):hover{transform:translateY(2.15rem)}
  .rail__hint{display:none}
}
.svcs__extra{display:grid;gap:1rem;margin-top:clamp(2rem,7vw,5rem)}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card);padding:1.6rem}
.panel h3{font-size:1.25rem;margin-bottom:.5rem}
.panel p{margin:0;font-size:.97rem}
.svcs__cta{margin-top:2rem;text-align:center}
@media (min-width:820px){.svcs__extra{grid-template-columns:1fr 1fr}}

/* ---------- dark chapter bands ---------- */
.dark{background:var(--ink);color:rgba(255,255,255,.82);padding-block:var(--sec)}
.build__grid{display:grid;gap:clamp(2rem,6vw,4rem)}
.build__note{font-family:var(--f-disp);font-style:italic;font-size:clamp(1.15rem,3vw,1.45rem);
  color:#fff;margin:1.5rem 0 1.8rem;max-width:34ch}
.picker{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);
  border-radius:var(--r-card);padding:1.5rem}
.picker__ttl{font:600 .7rem/1 var(--f-body);letter-spacing:.19em;text-transform:uppercase;
  color:var(--pink);margin-bottom:1.1rem}
.picker__opts{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:1.2rem}
.picker__opts label{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;
  min-height:44px;padding:.55rem 1rem;border-radius:999px;font-size:.95rem;color:#fff;
  border:1.5px solid rgba(255,255,255,.22);background:rgba(255,255,255,.04);
  transition:border-color .25s var(--ease),background .25s var(--ease)}
.picker__opts label:hover{border-color:rgba(229,57,125,.7)}
.picker__opts label:has(input:checked){border-color:var(--pink);background:rgba(229,57,125,.18)}
.picker__opts input{accent-color:var(--pink-cta);width:17px;height:17px;margin:0}
.picker__opts label:focus-within{outline:3px solid var(--pink);outline-offset:2px}
.picker__note{margin:0 0 1.2rem;font-size:.9rem;color:rgba(255,255,255,.62)}
.ticks{display:grid;gap:.85rem}
.ticks li{display:flex;gap:.7rem;align-items:flex-start;font-size:1.02rem;color:#fff}
.ticks .ic{color:var(--pink);margin-top:.22em}
.ticks--ink li{color:var(--ink-2);font-size:.99rem}
@media (min-width:880px){.build__grid{grid-template-columns:1.1fr .9fr;align-items:center}}

/* ---------- good hands ---------- */
.hands{padding-block:var(--sec);background:var(--paper)}
.hands__grid{display:grid;gap:clamp(2rem,6vw,4rem)}
.hands__fig{margin:0;border-radius:var(--r-card);overflow:hidden}
.hands__fig img{width:100%;aspect-ratio:4/3;object-fit:cover}
.hands__pts{display:grid;gap:1.15rem;margin:1.8rem 0}
.hands__pts li{display:flex;gap:.9rem;align-items:flex-start}
.hands__pts .ic{width:1.5rem;height:1.5rem;color:var(--pink);margin-top:.15rem}
.hands__pts h3{font-family:var(--f-body);font-size:1.02rem;font-weight:600;letter-spacing:0}
.hands__pts p{margin:0;font-size:.93rem;color:var(--muted)}
@media (min-width:900px){.hands__grid{grid-template-columns:.92fr 1.08fr;align-items:center}}

/* ---------- who we help ---------- */
.who{padding-block:var(--sec);background:var(--blush)}
.who .h2{max-width:14ch}
.who__list{display:grid;margin:2rem 0 0;border-top:1px solid var(--line)}
.who__list>div{display:grid;gap:.2rem .5rem;padding:1.15rem 0;border-bottom:1px solid var(--line)}
.who__list dt{font-family:var(--f-disp);font-size:clamp(1.2rem,3.4vw,1.45rem);color:var(--ink)}
.who__list dd{margin:0;font-size:.97rem;line-height:1.6;color:var(--body)}
@media (min-width:760px){
  .who__list>div{grid-template-columns:minmax(200px,.9fr) 1.6fr;align-items:baseline;gap:2rem;padding:1.35rem 0}
}
@media (min-width:1100px){.who__list>div{grid-template-columns:minmax(240px,.8fr) 1.7fr}}
.who__last{max-width:52ch;margin:clamp(1.8rem,4vw,2.6rem) 0 0;
  font-family:var(--f-disp);font-style:italic;font-size:clamp(1.1rem,2.8vw,1.35rem);color:var(--ink)}

/* ---------- regular service over Hervey Bay ---------- */
.reg{position:relative;padding-block:var(--sec);isolation:isolate;overflow:hidden}
.reg__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.reg__scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(175deg,rgba(23,19,26,.86),rgba(23,19,26,.66))}
.reg__in .lead{margin-top:1rem}
.reg__opts{display:grid;gap:.9rem;margin:2rem 0}
.reg__opts li{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);
  border-radius:var(--r-card);padding:1.3rem}
.reg__pick{background:rgba(255,255,255,.15);border-color:rgba(229,57,125,.85);
  box-shadow:0 0 0 1px rgba(229,57,125,.45)}
.reg__tag{font:600 .66rem/1 var(--f-body);letter-spacing:.17em;text-transform:uppercase;
  color:var(--pink);margin:0 0 .55rem}
.reg__opts h3{color:#fff;font-size:1.2rem;margin-bottom:.35rem}
.reg__opts p{margin:0;color:rgba(255,255,255,.78);font-size:.94rem}
@media (min-width:820px){.reg__opts{grid-template-columns:1fr 1.25fr 1fr;align-items:center}
  .reg__pick{padding:1.9rem 1.5rem}}

/* ---------- why choose ---------- */
.why{padding-block:var(--sec);background:var(--paper)}
.reasons{display:grid;gap:0;margin:2rem 0}
.reasons li{display:grid;grid-template-columns:auto 1fr;gap:.85rem;
  padding:1.05rem 0;border-bottom:1px solid var(--line)}
.reasons li:first-child{border-top:1px solid var(--line)}
.reasons .ic{color:var(--pink);margin-top:.28em}
.reasons p{margin:0;font-size:1rem;line-height:1.58;max-width:66ch}
.reasons b{color:var(--ink);font-weight:600}
.why__cols{display:grid;gap:.85rem;margin:2rem 0}
.why__note{max-width:62ch;margin-bottom:1.7rem}
@media (min-width:760px){.why__cols{grid-template-columns:1fr 1fr;gap:.85rem 3rem}}

/* ---------- NDIS / DVA ---------- */
.pair{padding-block:var(--sec);background:var(--blush)}
.pair__grid{display:grid;gap:1.1rem}
.pair__card{background:var(--paper);border-radius:var(--r-card);padding:clamp(1.6rem,4vw,2.4rem);
  border:1px solid var(--line)}
.pair__ic{width:2rem;height:2rem;color:var(--pink);margin-bottom:1rem}
.pair__card .h3{margin-bottom:.9rem}
.pair__card p{font-size:.97rem}
.pair__card .btn{margin-top:.6rem}
@media (min-width:900px){.pair__grid{grid-template-columns:1fr 1fr}}

/* ---------- service area ---------- */
.areas{padding-block:var(--sec);background:var(--paper)}
.areas .lead{margin-top:1rem}
.chips{display:flex;flex-wrap:wrap;gap:.55rem;margin:2rem 0 1.6rem}
.chips li{border:1px solid var(--line);background:var(--blush);border-radius:999px;
  padding:.55rem 1.05rem;font-size:.92rem;font-weight:500;color:var(--ink-2)}
.areas__cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem}

/* ---------- how it works ---------- */
.how{padding-block:var(--sec);background:var(--blush)}
.how .h2{margin-bottom:clamp(2.2rem,6vw,3.5rem)}
.steps{display:grid;gap:1.6rem;counter-reset:s;margin-bottom:2.6rem;position:relative}
/* number spans both rows in column one, heading and copy stack in column two */
.steps li{display:grid;grid-template-columns:auto 1fr;gap:.2rem 1rem;align-items:start}
.steps__n{grid-row:span 2;display:grid;place-items:center;width:44px;height:44px;border-radius:999px;
  background:var(--pink-cta);color:#fff;font:700 1.05rem/1 var(--f-body)}
.steps h3{grid-column:2;font-size:1.15rem;margin-bottom:.15rem}
.steps p{grid-column:2;margin:0;font-size:.95rem}
@media (min-width:900px){
  .steps{grid-template-columns:repeat(5,1fr);gap:1.4rem}
  .steps li{grid-template-columns:1fr;gap:.9rem}
  .steps__n{grid-row:auto}
  .steps h3,.steps p{grid-column:1}
  .steps::before{content:"";position:absolute;top:22px;left:8%;right:8%;height:2px;
    background:linear-gradient(90deg,var(--blush-2),var(--pink),var(--blush-2));z-index:0}
  .steps__n{position:relative;z-index:1;box-shadow:0 0 0 8px var(--blush)}
}

/* ---------- time back ---------- */
.time{padding-block:var(--sec);background:var(--paper)}
.time__h2{max-width:18ch;margin-inline:auto}
.time__lead{margin:1.4rem auto 0;max-width:56ch}
.time__note{font-family:var(--f-hand);font-size:clamp(1.5rem,5vw,2rem);color:var(--pink);margin:1.4rem 0 1.8rem}

/* ---------- reviews ---------- */
.revs{padding-block:var(--sec);background:var(--blush)}
.revs .h2{margin-bottom:clamp(2rem,5vw,3rem)}
/* one featured quote plus two on hairlines. Three equal cards flattened the
   difference between a story and a one-liner. */
.revs__grid{display:grid;gap:1.2rem}
.revs__lead{margin:0;background:var(--paper);border-radius:var(--r-card);
  padding:clamp(1.6rem,4vw,2.4rem);border:1px solid var(--line)}
.revs__lead blockquote{margin:0 0 1.3rem;font-family:var(--f-disp);
  font-size:clamp(1.35rem,3.1vw,1.85rem);line-height:1.32;color:var(--ink)}
.revs__side{display:grid;gap:0;align-content:start}
.revs__side figure{margin:0;padding:1.4rem 0;border-top:1px solid var(--line)}
.revs__side figure:last-child{border-bottom:1px solid var(--line)}
.revs__side blockquote{margin:0 0 .9rem;font-size:1.02rem;line-height:1.58;color:var(--ink-2)}
.stars{color:var(--pink-cta);font-size:1.05rem;letter-spacing:.14em;margin:0 0 .8rem}
.revs figcaption{font-size:.88rem;font-weight:600;color:var(--ink-2)}
.revs figcaption span{display:block;font-weight:400;color:var(--muted)}
@media (min-width:900px){
  .revs__grid{grid-template-columns:1.15fr 1fr;gap:clamp(2rem,4vw,3.5rem);align-items:start}
  .revs__side figure{padding:1.5rem 0}
}

/* ---------- FAQ ---------- */
.faq{padding-block:var(--sec);background:var(--paper)}
.faq__grp{font-family:var(--f-body);font-size:.75rem;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted);margin:2.6rem 0 .6rem}
.acc{border-top:1px solid var(--line)}
.acc details{border-bottom:1px solid var(--line)}
.acc summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.15rem 0;cursor:pointer;list-style:none;font-weight:600;color:var(--ink);font-size:1.02rem;
  min-height:56px;transition:color .25s var(--ease)}
.acc summary::-webkit-details-marker{display:none}
.acc summary:hover{color:var(--pink-ink)}
.acc summary .ic{color:var(--pink);flex:none;transition:transform .35s var(--ease)}
.acc details[open] summary .ic{transform:rotate(180deg)}
.acc details>div{overflow:hidden}
.acc details>div p{margin:0 0 1.15rem;max-width:68ch;font-size:.98rem}
.acc details[open]>div{animation:accIn .35s var(--ease)}
@keyframes accIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.faq__cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2.4rem}

/* ---------- enquiry ---------- */
.enq{padding-block:var(--sec);background:var(--blush)}
.enq__grid{display:grid;gap:clamp(2rem,6vw,3.5rem)}
.enq__side .lead{margin-top:1rem}
.enq__contact{display:grid;gap:1.1rem;margin:2rem 0}
.enq__contact li{display:flex;gap:.9rem;align-items:flex-start}
.enq__contact .ic{width:1.4rem;height:1.4rem;color:var(--pink);margin-top:.2rem}
.enq__contact span{display:block;font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:.15rem}
/* click-to-call and mailto get a full-size touch target */
.enq__contact a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;
  color:var(--ink);text-decoration:none;word-break:break-word}
.enq__contact a:hover{color:var(--pink-ink)}
.enq__contact p{margin:0;font-weight:600;color:var(--ink)}
/* double bezel: outer tray, inner card */
.enq__shell{background:var(--blush-2);border:1px solid var(--line);border-radius:calc(var(--r-card) + 8px);padding:8px}
.enq__form,.enq__done{background:var(--paper);border-radius:var(--r-card);padding:clamp(1.4rem,4vw,2rem)}
.f{display:grid;gap:.4rem;margin-bottom:1rem;border:0;padding:0;min-width:0}
.f2{display:grid;gap:0}
@media (min-width:560px){.f2{grid-template-columns:1fr 1fr;gap:0 1rem}}
.f label,.f legend{font-size:.88rem;font-weight:600;color:var(--ink);padding:0}
.req{font-weight:400;color:var(--pink-ink);font-size:.78rem;margin-left:.15rem}
.f input,.f textarea,.f select{
  width:100%;min-height:50px;padding:.8rem .95rem;border:1.5px solid var(--line);border-radius:var(--r-in);
  background:var(--shell);font:400 1rem/1.5 var(--f-body);color:var(--ink);
  transition:border-color .25s var(--ease),background .25s var(--ease);
}
.f textarea{min-height:110px;resize:vertical}
.f input::placeholder,.f textarea::placeholder{color:var(--muted)}
.f input:focus,.f textarea:focus,.f select:focus{border-color:var(--pink);background:var(--paper);outline:none}
.f input:focus-visible,.f textarea:focus-visible,.f select:focus-visible{outline:3px solid var(--pink);outline-offset:2px}
.f input[aria-invalid="true"],.f textarea[aria-invalid="true"]{border-color:#c0264a;background:#fff6f8}
.err{margin:0;font-size:.83rem;color:#a81c33;font-weight:500}
.sel{position:relative;display:grid}
.sel .ic{position:absolute;right:.9rem;top:50%;transform:translateY(-50%);color:var(--pink);pointer-events:none;width:1.05rem;height:1.05rem}
.sel select{appearance:none;padding-right:2.6rem;cursor:pointer}
.radios{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.15rem}
.radios label{display:inline-flex;align-items:center;gap:.45rem;border:1.5px solid var(--line);
  border-radius:999px;padding:.6rem 1rem;cursor:pointer;font-weight:500;font-size:.94rem;min-height:46px;
  transition:border-color .25s var(--ease),background .25s var(--ease)}
.radios label:has(input:checked){border-color:var(--pink);background:var(--blush);color:var(--pink-ink)}
.radios input{accent-color:var(--pink-cta);width:18px;height:18px;margin:0}
.enq__fine{margin:1rem 0 0;font-size:.85rem;color:var(--muted);text-align:center}
.enq__fine a{color:var(--pink-ink);font-weight:600}
.enq__done{text-align:center;padding-block:clamp(2.4rem,7vw,3.4rem)}
.enq__tick{width:2.6rem;height:2.6rem;color:#fff;background:var(--pink-cta);border-radius:999px;padding:.55rem;margin-bottom:1rem}
.enq__done h3{font-size:1.5rem;margin-bottom:.7rem}
.enq__done p{max-width:40ch;margin-inline:auto}
.enq__done a[href^="tel"]{color:var(--pink-ink);font-weight:600}
.enq__done .btn{margin-top:.8rem}
@media (min-width:940px){.enq__grid{grid-template-columns:.9fr 1.1fr;align-items:start}}

/* ---------- final ---------- */
.fin__grid{display:grid;gap:clamp(2rem,6vw,4rem)}
.fin__done{font-family:var(--f-disp);font-style:italic;font-size:clamp(1.5rem,5vw,2.2rem);
  color:#fff;margin:1.6rem 0 0}
.fin__sign{font-family:var(--f-hand);font-size:clamp(1.9rem,6vw,2.6rem);color:var(--pink);margin:1.4rem 0 1.8rem}
.fin__ask{display:inline-block;margin-top:1.1rem;color:rgba(255,255,255,.82);font-size:.95rem;
  text-decoration:underline;text-underline-offset:5px;text-decoration-color:rgba(229,57,125,.7)}
.fin__ask:hover{color:#fff}
@media (min-width:900px){.fin__grid{grid-template-columns:1fr 1fr;align-items:center}}

/* ---------- recruitment ---------- */
.rec{padding-block:clamp(2.6rem,7vw,4rem);background:var(--blush-2)}
.rec__in{display:grid;gap:1.4rem;align-items:center}
.rec__in p{margin:.7rem 0 0;font-size:.97rem;max-width:68ch}
.rec__in .btn{justify-self:start}
@media (min-width:900px){.rec__in{grid-template-columns:1fr auto;gap:2.5rem}}

/* ---------- footer ---------- */
.ft{background:var(--ink);color:rgba(255,255,255,.7);padding-block:clamp(3rem,8vw,4.5rem) 0}
.ft__grid{display:grid;gap:2.2rem}
.ft__brand img{height:52px;width:auto;background:#fff;border-radius:10px;padding:.55rem .8rem}
.ft__blurb{margin:1.1rem 0;font-size:.95rem;max-width:38ch}
.ft__trust{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem;font-size:.85rem;
  font-weight:500;color:#fff;margin:0}
.ft__trust .ic{color:var(--pink);width:1.1rem;height:1.1rem;margin-right:-.6rem}
.ft__h{font-family:var(--f-body);font-size:.75rem;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:#fff;margin-bottom:1rem}
.ft__list{display:grid;gap:.15rem;font-size:.93rem}
.ft__list a{display:inline-flex;align-items:center;min-height:32px;text-decoration:none;
  color:rgba(255,255,255,.7);transition:color .25s var(--ease)}
.ft__list a:hover{color:var(--pink)}
.ft__list--c a{display:flex;align-items:center;gap:.55rem;word-break:break-word}
.ft__list--c .ic{color:var(--pink);width:1.05rem;height:1.05rem}
.ft .btn{margin-top:1.3rem}
.ft__base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;
  border-top:1px solid rgba(255,255,255,.12);margin-top:clamp(2.4rem,6vw,3.4rem);
  padding-block:1.4rem calc(1.4rem + env(safe-area-inset-bottom));font-size:.85rem}
.ft__base p{margin:0}
@media (min-width:700px){.ft__grid{grid-template-columns:1fr 1fr}}
@media (min-width:1000px){.ft__grid{grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:2.5rem}}

/* ---------- sticky mobile CTA ---------- */
.sticky{
  position:fixed;left:0;right:0;bottom:0;z-index:30;
  padding:.7rem var(--pad) calc(.7rem + env(safe-area-inset-bottom));
  background:rgba(254,252,253,.92);backdrop-filter:blur(14px);border-top:1px solid var(--line);
  transform:translateY(115%);transition:transform .4s var(--ease);
}
.sticky.is-on{transform:none}
@media (min-width:1040px){.sticky{display:none}}
/* keep the last footer line clear of the sticky bar */
@media (max-width:1039px){.ft__base{padding-bottom:calc(5.75rem + env(safe-area-inset-bottom))}}

/* ---------- scroll reveal ---------- */
[data-rise]{opacity:0;transform:translateY(26px);transition:opacity .75s var(--ease),transform .75s var(--ease)}
[data-rise].is-in{opacity:1;transform:none}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
  .hero__ask,.hero__brand,.hero__sub,.hero__cta,.drawer__nav a{opacity:1;transform:none}
  .hero__h1 .eyebrow::after{transform:scaleX(1)}
  .strike li::after{transform:scaleX(1)}
  .strike li{opacity:.45}
  .strike li::before{background:var(--pink)}
  [data-rise]{opacity:1;transform:none}
  .sticky{transition:none}
}
