/* Motion + booking refinements. Loaded after the original visual theme. */
:root { --motion-ease: cubic-bezier(.2,.72,.23,1); }
::selection { background: rgba(16,201,198,.3); color: var(--ink); }
.scroll-meter { position: fixed; z-index: 100; inset: 0 0 auto; height: 3px; background: var(--teal); transform: scaleX(0); transform-origin: left; pointer-events:none; box-shadow: 0 0 11px rgba(16,201,198,.35); }
.site-header { transition: box-shadow .3s ease, background-color .3s ease; }
.site-header.is-scrolled { background: rgba(255,254,251,.98); box-shadow: 0 7px 28px rgba(16,23,40,.08); }
.logo-mark { transition: transform .45s var(--motion-ease), box-shadow .3s ease; }
.logo:hover .logo-mark { transform: rotate(-15deg) scale(1.08); box-shadow: 0 0 0 5px rgba(16,201,198,.12); }
.nav-links a { position: relative; }
.nav-links a::after { content:''; position:absolute; bottom:-5px; left:0; right:0; height:2px; background:var(--teal); border-radius:5px; transform:scaleX(0); transform-origin:center; transition:transform .3s var(--motion-ease); }
.nav-links a:hover::after,.nav-links a.active::after { transform:scaleX(1); }
.btn { position:relative; isolation:isolate; overflow:hidden; transition: transform .26s var(--motion-ease), box-shadow .26s ease, background-color .24s ease; }
.btn:hover { transform:translateY(-3px); box-shadow:0 12px 27px rgba(16,201,198,.22); }
.btn:active { transform: translateY(0) scale(.98); }
.btn::before { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(120deg,transparent 35%,rgba(255,255,255,.20) 50%,transparent 65%); transform:translateX(-140%); transition: transform .75s ease; }
.btn:hover::before { transform:translateX(140%); }
.hero { position:relative; }
.hero::before { content:''; position:absolute; right:-140px; top:4%; width:min(48vw,590px); aspect-ratio:1; background:radial-gradient(circle,rgba(16,201,198,.08),transparent 72%); pointer-events:none; animation:heroDrift 9s ease-in-out infinite alternate; }
.hero-badges { animation: slideUp .65s .05s both var(--motion-ease); }
.hero h1 { animation:slideUp .85s .17s both var(--motion-ease); }
.hero-desc { animation:slideUp .85s .30s both var(--motion-ease); }
.hero-primary, .hero-secondary, .tiny-note { animation:slideUp .8s .42s both var(--motion-ease); }
.hero-visual { animation: floatIn 1.1s .30s both var(--motion-ease); }
.hero .underlined::after { animation: drawLine .8s .9s both var(--motion-ease); transform-origin:left; }
.hero-visual .compare-box { box-shadow: 0 25px 65px rgba(16,23,40,.16); }
.reveal { opacity:0; transform:translateY(25px); filter:blur(2px); transition: opacity .75s var(--motion-ease), transform .75s var(--motion-ease), filter .75s var(--motion-ease); transition-delay:var(--reveal-delay,0ms); }
.reveal.in-view { opacity:1; transform:translateY(0); filter:blur(0); }
@media (hover:hover) {
  .feature-card,.value-card,.step-card,.gallery-card,.contact-tile { transition:transform .35s var(--motion-ease),box-shadow .35s ease,border-color .3s ease,background-color .3s ease; }
  .feature-card:hover,.value-card:hover,.gallery-card:hover { transform:translateY(-8px); border-color:rgba(16,201,198,.65); box-shadow:0 22px 48px rgba(16,23,40,.09); }
  .step-card:hover { transform:translateY(-6px); background:rgba(16,201,198,.10); border-color:rgba(16,201,198,.30); }
  .contact-tile:hover { transform:translateY(-4px); box-shadow:0 15px 32px rgba(16,23,40,.08); }
  .feature-card:hover .icon-circle,.value-card:hover .icon-circle,.contact-tile:hover .icon-circle { transform:rotate(-8deg) scale(1.07); }
  .service-photo-wrap img,.split-photo { transition:transform .65s var(--motion-ease),box-shadow .4s ease; }
  .service-photo-wrap img:hover,.split-photo:hover { transform:scale(1.02);box-shadow:0 20px 45px rgba(10,18,42,.16); }
  .chip { transition:transform .25s ease,background-color .25s ease,border-color .25s ease; }
  .chip:hover { transform:translateY(-2px);border-color:var(--teal);background:#e8fbf9; }
}
.icon-circle { transition:transform .4s var(--motion-ease),background-color .3s ease; }
.compare-handle { transition:box-shadow .25s ease,scale .25s ease; animation:handlePulse 3.5s ease-in-out infinite; }
.compare-box:hover .compare-handle { scale:1.11; box-shadow:0 0 0 7px rgba(16,201,198,.17), 0 5px 17px rgba(7,140,140,.30); }
.compare-box .compare-range:focus-visible { outline:4px solid var(--teal); outline-offset:-5px; }
.faq-item { transition:border-color .25s ease,box-shadow .25s ease; }
.faq-item[open] { border-color:rgba(16,201,198,.55); box-shadow:0 10px 30px rgba(16,23,40,.07); }
.faq-answer { animation:faqOpen .25s ease both; }
.cta-block { position:relative; overflow:hidden; }
.cta-block::before,.cta-block::after { content:''; position:absolute; border:1px solid rgba(16,201,198,.12); width:360px;height:360px;border-radius:50%;pointer-events:none; }
.cta-block::before { left:-150px; top:-230px; }
.cta-block::after { right:-230px; bottom:-260px; width:500px;height:500px; }

/* Booking progress / redesigned form */
.booking-flow { width:min(100%,630px); margin: -11px auto 30px; display:flex; justify-content:center; align-items:center; gap:11px; }
.booking-flow-step { display:flex; align-items:center; gap:9px; white-space:nowrap; }
.booking-flow-step span { display:grid;place-items:center; width:28px;height:28px;border-radius:50%; background:#e5faf9; color:#098c89; font-size:11px;font-weight:900; }
.booking-flow-step strong { font-size:11px; color:#485668; letter-spacing:-.1px; }
.booking-flow-line { height:1px; background:#d7e3e9;flex:1;max-width:35px; }
.booking-card { position:relative; overflow:hidden; border:1px solid rgba(16,201,198,.19); box-shadow:0 20px 60px rgba(16,23,40,.10); }
.booking-card::before { content:''; position:absolute;left:0;right:0;top:0;height:4px; background:linear-gradient(90deg,var(--teal),#73e9e3,#bedcf9); }
.booking-form-head { display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:27px; }
.form-eyebrow { display:block; color:#008c89;letter-spacing:1.2px;font-size:10px;font-weight:850;margin-bottom:9px; }
.booking-form-head h3 { font-size:22px;line-height:1.3;letter-spacing:-.5px;margin:0 0 5px; }
.booking-form-head p { font-size:12px;color:#687486;line-height:1.6;margin:0; }
.booking-form-mark { flex:none;display:grid;place-items:center;width:52px;height:52px;border-radius:16px; background:#e5faf9;color:#009e9b; }
.booking-form-mark svg {width:25px;height:25px;}
.field label .required,.required { color:#00a39f; font-weight:850; }
.field input,.field select,.field textarea { transition:box-shadow .2s ease,border-color .2s ease,background .2s ease; }
.field input:hover,.field select:hover,.field textarea:hover { border-color:#a3c7ce; }
.field input:focus,.field select:focus,.field textarea:focus { outline:none;border-color:var(--teal-dark);box-shadow:0 0 0 3px rgba(16,201,198,.14); }
.field input:invalid:not(:placeholder-shown) { border-color:#bca9a9; }
.field[hidden],.other-suburb-field[hidden] { display:none!important; }
.booking-consents { padding:17px 0 0;display:grid;gap:13px; }
.check-row { display:flex;align-items:flex-start;gap:11px;font-size:12px;line-height:1.55;color:#526072;cursor:pointer; }
.check-row input { appearance:none;flex:none;margin:1px 0 0;width:18px;height:18px;border-radius:5px;border:1.5px solid #aebbc6;background:#fff;cursor:pointer;transition:background .2s,border-color .2s;position:relative; }
.check-row input:checked {background:var(--teal-dark);border-color:var(--teal-dark);}
.check-row input:checked::after {content:'';position:absolute;width:8px;height:4px;top:4px;left:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg);}
.check-row input:focus-visible {outline:3px solid rgba(16,201,198,.38);outline-offset:2px;}
.hp-field { position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden; }
.booking-submit {gap:9px;letter-spacing:-.1px;box-shadow:0 8px 24px rgba(16,201,198,.20);}
.booking-submit:disabled {cursor:progress;opacity:.7; transform:none;}
.loading-ring { display:inline-block;width:19px;height:19px;border:2px solid rgba(16,23,40,.22);border-top-color:var(--ink);border-radius:50%;animation:spin .65s linear infinite; }
.booking-footer { display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:5px;line-height:1.5; }
.status-led { width:7px;height:7px;background:#bcc7d3;border-radius:100%;display:inline-block; }
.status-led.online { background:#10a98b;box-shadow:0 0 0 3px rgba(16,169,139,.10); }
.status-led.offline { background:#d7a147; }
.booking-alert.booking-success { display:flex;gap:15px;align-items:flex-start;background:#eafaf7;border:1px solid #ade5dc;padding:18px; }
.booking-success-mark { width:36px;height:36px;background:#0cb7a9;color:white;border-radius:50%;display:grid;place-items:center;flex:none; }
.booking-success-mark svg { width:23px;height:23px; }
.booking-success strong { display:block;font-size:17px;margin-bottom:4px; }
.booking-success p { margin:4px 0;font-size:12px;line-height:1.55; }
.booking-ref { color:#066f70;font-weight:850;letter-spacing:.3px; }
.booking-success small { color:#56736f;display:block;margin-top:10px;font-size:11px; }
@keyframes slideUp { from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)} }
@keyframes floatIn { from{opacity:0;transform:translate(28px,16px) scale(.97)} to{opacity:1;transform:translate(0,0) scale(1)} }
@keyframes drawLine { from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1} }
@keyframes heroDrift { from{transform:translate(0,0)}to{transform:translate(-55px,44px)} }
@keyframes handlePulse { 0%,100%{box-shadow:0 4px 12px rgba(7,140,140,.30)}50%{box-shadow:0 5px 19px rgba(7,140,140,.43)} }
@keyframes faqOpen { from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)} }
@keyframes spin {to{transform:rotate(360deg)}}
@media(max-width:600px){
  .booking-flow{gap:5px;margin-top:0;margin-bottom:20px;}
  .booking-flow-step{gap:5px;}
  .booking-flow-step span{height:23px;width:23px;font-size:9px;}
  .booking-flow-step strong{font-size:9px;}
  .booking-flow-line{max-width:13px;min-width:2px;}
  .booking-form-head h3{font-size:20px;}
  .booking-form-mark{width:42px;height:42px;}
  .booking-form-mark svg{height:22px;width:22px;}
  .booking-consents{padding-top:16px;}
  .check-row{font-size:11px;}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important;}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}
  .reveal{opacity:1!important;transform:none!important;filter:none!important;}
}
