/* Harleigh Harris — Real Estate, Brisbane's Inner North
   Global styles: design tokens, layout & component classes, animations,
   responsive rules, hover states. HTML is kept semantic and class-driven. */

/* ── Design tokens ───────────────────────── */
:root{
  /* palette */
  --ink:#241712;          /* primary text */
  --ink-soft:#6d5c4e;     /* muted body text on light */
  --ink-faint:#6f5d4d;    /* small labels on cream (WCAG-AA darkened) */
  --wine:#5C1C1C;         /* deep brand red */
  --rose:#A64040;         /* accent rose */
  --rose-soft:#D9A79B;    /* light rose (on dark) */
  --rose-soft-2:#C97B7B;  /* footer arch accent */
  --cream:#F5EDD8;        /* cream text / light surfaces */
  --sand:#EAE1CE;         /* page background */
  --espresso:#160B07;     /* darkest surface */
  --quote-ink:#463a30;    /* testimonial body */
  /* muted-on-dark text tints */
  --on-dark-75:rgba(245,237,216,.75);
  --on-dark-70:rgba(245,237,216,.70);
  --on-dark-65:rgba(245,237,216,.65);
  --on-dark-55:rgba(245,237,216,.55);
  --on-dark-40:rgba(245,237,216,.40);
  --hair-dark:rgba(245,237,216,.14);   /* hairline on dark */
  --hair-light:rgba(36,23,18,.10);     /* hairline on light */
  /* type */
  --font-serif:'Marcellus',serif;
  --font-italic:'Fraunces',serif;
  --font-sans:'Lato',sans-serif;
  --font-mono:ui-monospace,Menlo,monospace;
  /* layout */
  --wrap:1280px;
  --pad-x:40px;
  --sec-y:88px;
  --radius:14px;
}

/* ── Reset ───────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;scroll-padding-top:88px;}
body{background:var(--sand);-webkit-font-smoothing:antialiased;}
img{max-width:100%;}

/* ══ Layout & components ═══════════════════════════════════════════ */
.hh-root{background:var(--sand);font-family:var(--font-sans);color:var(--ink);min-height:100vh;overflow-x:clip;}
.hh-wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad-x);}
.hh-sec{padding-block:var(--sec-y);}
.hh-pb{padding-bottom:var(--sec-y);}

/* full-bleed colour bands */
.hh-band--wine{background:var(--wine);color:var(--cream);}
.hh-band--cream{background:var(--cream);border-top:1px solid var(--hair-light);border-bottom:1px solid var(--hair-light);}
.hh-band--espresso{background:var(--espresso);color:var(--cream);}

/* section headers */
.hh-sec-head{max-width:640px;margin-bottom:56px;}
.hh-sec-head--center{text-align:center;max-width:640px;margin:0 auto 64px;}
.hh-sec-head--center-tight{text-align:center;max-width:640px;margin:0 auto 44px;}

/* — typography — */
.hh-eyebrow{font:700 11px/1 var(--font-sans);letter-spacing:.34em;text-transform:uppercase;color:var(--rose);margin-bottom:22px;}
.hh-eyebrow--soft{color:var(--rose-soft);}
.hh-h1{font-family:var(--font-serif);font-weight:400;font-size:clamp(52px,5.6vw,78px);line-height:1.02;color:var(--ink);animation:hh-rise .9s .08s cubic-bezier(.2,.7,.2,1) both;}
.hh-h2{font-family:var(--font-serif);font-weight:400;font-size:clamp(34px,3.4vw,48px);line-height:1.1;color:var(--ink);}
.hh-display{font-family:var(--font-serif);font-weight:400;font-size:clamp(38px,4.4vw,62px);line-height:1.08;color:var(--cream);max-width:820px;margin-inline:auto;}
.hh-h1 em,.hh-h2 em,.hh-display em{font-family:var(--font-italic);font-style:italic;font-weight:300;color:var(--wine);}
.hh-on-dark{color:var(--cream);}
.hh-on-dark em,.hh-display em{color:var(--rose-soft);}
.hh-body{font-size:16px;line-height:1.8;color:var(--ink-soft);}
.hh-body--wide{max-width:520px;}
.hh-lead{font-size:17px;line-height:1.75;color:var(--ink-soft);max-width:470px;}
.hh-lead--invert{font-size:16px;line-height:1.8;color:var(--on-dark-75);max-width:480px;}

/* inline links */
.hh-inline-link{color:var(--wine);font-weight:700;text-decoration-color:rgba(92,28,28,.4);}
.hh-textlink{font:700 12.5px/1 var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--wine);text-decoration:none;display:inline-flex;align-items:center;gap:10px;margin-top:8px;}

/* arrow glyph (inline SVG) */
.hh-arrow{flex:none;transition:transform .25s ease;}
.hh-arrow--tuck{margin-right:-.16em;}

/* — buttons — */
.hh-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:700 12.5px/1 var(--font-sans);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;border-radius:30px;}
.hh-btn--rose{background:var(--rose);color:var(--cream);padding:17px 30px;}
.hh-btn--cream{background:var(--cream);color:var(--wine);padding:16px 30px;}
.hh-btn--cream.hh-btn--sm{font-size:12px;padding:15px 24px;}
.hh-btn--ghost{color:var(--cream);border:1.5px solid rgba(245,237,216,.5);padding:16px 28px;}

/* — nav — */
.hh-nav{position:sticky;top:0;z-index:50;background:rgba(234,225,206,.88);backdrop-filter:blur(12px);border-bottom:1px solid rgba(36,23,18,.12);}
.hh-nav-inner{max-width:var(--wrap);margin:0 auto;padding:16px var(--pad-x);display:flex;align-items:center;justify-content:space-between;gap:32px;}
.hh-brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--ink);}
.hh-brand-text{display:flex;flex-direction:column;justify-content:center;}
.hh-brand-name{font-family:var(--font-serif);font-size:17px;line-height:1;}
.hh-brand-tag{font:700 8.5px/1 var(--font-sans);letter-spacing:.34em;text-transform:uppercase;color:var(--rose);margin-top:4px;}
.hh-logo-arch{display:flex;gap:4px;align-items:flex-end;}
.hh-logo-arch > span{width:15px;height:30px;border-radius:8px 8px 0 0;}
.hh-logo-arch > span:first-child{background:var(--wine);}
.hh-logo-arch > span:last-child{background:var(--rose);}
.hh-navlinks{display:flex;align-items:center;gap:30px;}
.hh-navlink{font:700 11.5px/1 var(--font-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ink);text-decoration:none;}
.hh-navlink--ext{display:inline-flex;align-items:center;gap:5px;}
.hh-iconlink{display:flex;align-items:center;color:var(--ink);text-decoration:none;}
.hh-navcta{display:inline-flex;align-items:center;font:700 11.5px/1 var(--font-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--cream);background:var(--wine);border-radius:30px;padding:12px 22px;text-decoration:none;}

/* — hero — */
.hh-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:end;padding-top:44px;}
.hh-hero-copy{padding-bottom:88px;}
.hh-hero-lead{font-size:17px;line-height:1.75;color:var(--ink-soft);max-width:470px;margin-top:28px;animation:hh-rise .9s .16s cubic-bezier(.2,.7,.2,1) both;}
.hh-hero-actions{display:flex;align-items:center;gap:28px;margin-top:38px;flex-wrap:wrap;animation:hh-rise .9s .24s cubic-bezier(.2,.7,.2,1) both;}
.hh-hero-media{position:relative;animation:hh-arch 1.1s .1s cubic-bezier(.2,.7,.2,1) both;}
.hh-hero-frame{position:relative;overflow:hidden;height:560px;border-radius:280px 280px 0 0;box-shadow:0 30px 60px -22px rgba(22,11,7,.32);}
.hh-hero-img{position:absolute;left:0;top:-8%;width:100%;height:116%;object-fit:cover;object-position:50% 28%;will-change:transform;}
.hh-frame-ring{position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1.5px rgba(245,237,216,.28),inset 0 28px 60px rgba(22,11,7,.16);pointer-events:none;}
.hh-photo-rating{position:absolute;right:24px;bottom:24px;display:flex;flex-direction:column;align-items:flex-end;gap:6px;}
.hh-photo-cap{position:absolute;left:26px;bottom:22px;}
.hh-photo-name{font-family:var(--font-serif);font-size:21px;line-height:1;color:var(--cream);margin-bottom:7px;}
.hh-photo-role{font:700 9px/1 var(--font-sans);letter-spacing:.3em;text-transform:uppercase;color:var(--rose-soft);}
.hh-photo-verify{font:700 8.5px/1 var(--font-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--rose-soft);}

/* phone call block */
.hh-phone{display:inline-flex;align-items:center;gap:14px;text-decoration:none;color:var(--ink);}
.hh-phone-ico{flex:none;width:54px;height:54px;border-radius:50%;background:var(--wine);display:flex;align-items:center;justify-content:center;color:var(--cream);}
.hh-phone-text{display:flex;flex-direction:column;gap:5px;}
.hh-phone-label{font:700 10px/1 var(--font-sans);letter-spacing:.28em;text-transform:uppercase;color:var(--rose);}
.hh-phone-num{font-family:var(--font-serif);font-size:27px;line-height:1;color:var(--ink);}

/* stars */
.hh-stars{color:var(--rose);font-size:15px;letter-spacing:3px;line-height:1;}
.hh-stars--cream{color:var(--cream);font-size:13px;letter-spacing:2.5px;}

/* — marquee — */
.hh-marquee-band{background:var(--wine);overflow:hidden;padding:20px 0;}
.hh-marquee{display:flex;width:max-content;animation:hh-marquee 30s linear infinite;}
.hh-marquee-group{display:flex;align-items:center;gap:44px;padding-right:44px;}
.hh-marquee-item{font-family:var(--font-serif);font-size:22px;color:var(--cream);white-space:nowrap;}
.hh-marquee-sep{color:var(--rose);font-size:16px;}

/* — about — */
.hh-about{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:center;}
.hh-about-media{position:relative;}
.hh-about-img{display:block;width:100%;height:520px;object-fit:cover;border-radius:var(--radius);}
.hh-badge{position:absolute;top:-22px;right:-22px;width:88px;height:88px;border-radius:50%;background:var(--wine);display:flex;align-items:center;justify-content:center;}
.hh-arch{display:flex;gap:4px;align-items:flex-end;}
.hh-arch--badge > span{width:12px;height:26px;border-radius:6px 6px 0 0;}
.hh-arch--lg{display:inline-flex;gap:7px;margin:0 auto 32px;}
.hh-arch--lg > span{width:20px;height:44px;border-radius:9px 9px 0 0;}
.hh-arch--foot > span{width:16px;height:28px;border-radius:8px 8px 0 0;}
.hh-arch > span:first-child{background:var(--cream);}
.hh-arch > span:last-child{background:var(--rose-soft);}
.hh-arch--foot > span:last-child{background:var(--rose-soft-2);}
.hh-stats{display:flex;gap:40px;margin-top:36px;border-top:1px solid rgba(36,23,18,.14);padding-top:28px;}
.hh-stat-num{font-family:var(--font-serif);font-size:30px;color:var(--wine);}
.hh-stat-label{font:700 10.5px/1.5 var(--font-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);margin-top:6px;}

/* — grids — */
.hh-2col{display:grid;grid-template-columns:1fr 1fr;gap:64px;}
.hh-2col--end{align-items:end;margin-bottom:64px;}
.hh-2col--wide{gap:80px;}
.hh-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.hh-3col{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}

/* — selling steps — */
.hh-step{border:1px solid rgba(245,237,216,.22);border-radius:var(--radius);padding:30px 26px;}
.hh-step-num{font-family:var(--font-serif);font-size:15px;letter-spacing:.1em;color:var(--rose-soft);}
.hh-step-title{font-family:var(--font-serif);font-size:22px;margin-top:16px;}
.hh-step-text{font-size:14px;line-height:1.7;color:var(--on-dark-65);margin-top:12px;}

/* — suburb cards — */
.hh-suburb{background:var(--sand);border:1px solid var(--hair-light);border-radius:var(--radius);padding:32px 28px;}
.hh-suburb-name{font-family:var(--font-serif);font-size:26px;color:var(--ink);}
.hh-suburb-code{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.18em;color:var(--ink-faint);margin-top:8px;}
.hh-card-text{font-size:14.5px;line-height:1.75;color:var(--ink-soft);margin-top:16px;}
.hh-suburb-cta{background:var(--wine);border-radius:var(--radius);padding:32px 28px;display:flex;flex-direction:column;justify-content:space-between;gap:24px;}
.hh-suburb-cta-title{font-family:var(--font-serif);font-size:24px;line-height:1.25;color:var(--cream);}

/* — reviews — */
.hh-review{background:#fff;border-radius:var(--radius);padding:36px 30px;box-shadow:0 1px 3px rgba(0,0,0,.05);display:flex;flex-direction:column;gap:22px;}
.hh-quote{font-size:15px;line-height:1.85;color:var(--quote-ink);}
.hh-review-foot{margin-top:auto;border-top:1px solid rgba(36,23,18,.12);padding-top:18px;}
.hh-review-name{font:700 13px/1 var(--font-sans);color:var(--ink);}
.hh-review-loc{font:700 10px/1 var(--font-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--rose);margin-top:7px;}

/* — video facade — */
.hh-video{position:relative;max-width:920px;margin:0 auto;width:100%;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:var(--espresso);box-shadow:0 20px 50px rgba(22,11,7,.22);}
.hh-video-btn{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;margin:0;cursor:pointer;background:transparent;}
.hh-video-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.hh-video-grad{position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,11,7,.12),rgba(22,11,7,.5));}
.hh-video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:86px;height:86px;border-radius:50%;background:rgba(92,28,28,.94);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(22,11,7,.4);}
.hh-video-tri{display:block;width:0;height:0;border-style:solid;border-width:15px 0 15px 26px;border-color:transparent transparent transparent var(--cream);margin-left:6px;}
.hh-video-badge{position:absolute;left:24px;bottom:22px;font:700 10.5px/1 var(--font-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--cream);background:rgba(22,11,7,.55);backdrop-filter:blur(6px);border-radius:30px;padding:9px 16px;}

/* — listings link-out — */
.hh-listing{display:flex;align-items:center;justify-content:space-between;gap:40px;background:var(--espresso);border-radius:18px;padding:56px 60px;text-decoration:none;}
.hh-listing-title{font-family:var(--font-serif);font-size:clamp(28px,3vw,42px);line-height:1.15;color:var(--cream);max-width:640px;}
.hh-listing-circle{width:72px;height:72px;border-radius:50%;border:1.5px solid rgba(245,237,216,.5);display:flex;align-items:center;justify-content:center;color:var(--cream);flex:none;}

/* — appraisal / contact — */
.hh-contact-num{font-family:var(--font-serif);font-weight:400;font-size:clamp(38px,5.6vw,56px);line-height:1;color:var(--cream);text-decoration:none;letter-spacing:.01em;}
.hh-contact-label{font:700 10.5px/1 var(--font-sans);letter-spacing:.3em;text-transform:uppercase;color:var(--rose-soft);margin-bottom:14px;}
.hh-contact-phone{margin-top:46px;}
.hh-appraisal-lead{font-size:16px;line-height:1.8;color:var(--on-dark-70);max-width:520px;margin:26px auto 0;}
.hh-contact-cta{display:flex;justify-content:center;gap:14px;margin-top:36px;flex-wrap:wrap;}

/* — footer — */
.hh-footer-inner{padding-top:64px;padding-bottom:40px;}
.hh-footer-top{display:flex;justify-content:space-between;gap:48px;flex-wrap:wrap;border-bottom:1px solid var(--hair-dark);padding-bottom:44px;}
.hh-footer-brand{display:flex;align-items:center;gap:13px;}
.hh-footer-name{font-family:var(--font-serif);font-size:20px;line-height:1;}
.hh-foot-desc{font-size:13.5px;line-height:1.8;color:var(--on-dark-55);max-width:340px;margin-top:18px;}
.hh-footer-cols{display:flex;gap:72px;flex-wrap:wrap;}
.hh-footer-col{display:flex;flex-direction:column;gap:13px;}
.hh-foot-head{font:700 10px/1 var(--font-sans);letter-spacing:.28em;text-transform:uppercase;color:var(--rose-soft);margin-bottom:4px;}
.hh-footlink{font-size:13.5px;color:var(--on-dark-75);text-decoration:none;}
.hh-footlink--ext{display:inline-flex;align-items:center;gap:5px;}
.hh-footer-bottom{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-top:26px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.16em;color:var(--on-dark-40);}

/* — mobile sticky call bar — */
.hh-callbar{position:fixed;bottom:0;left:0;right:0;z-index:60;display:none;background:rgba(22,11,7,.96);backdrop-filter:blur(10px);border-top:1px solid rgba(245,237,216,.16);padding:12px 16px calc(12px + env(safe-area-inset-bottom));gap:12px;}
.hh-callbar-btn{flex:none;width:56px;display:flex;align-items:center;justify-content:center;border-radius:30px;text-decoration:none;}
.hh-callbar-btn--solid{color:var(--wine);background:var(--cream);}
.hh-callbar-btn--ghost{color:var(--cream);border:1.5px solid rgba(245,237,216,.5);}
.hh-callbar-appraise{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;font:700 12.5px/1 var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--cream);border:1.5px solid rgba(245,237,216,.5);border-radius:30px;padding:14.5px;text-decoration:none;}

/* — small spacing utilities (preserve exact original margins) — */
.hh-mb-18{margin-bottom:18px;}

/* ── Keyframes ───────────────────────────── */
@keyframes hh-marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@keyframes hh-rise{from{opacity:0;transform:translateY(34px);}to{opacity:1;transform:translateY(0);}}
@keyframes hh-arch{from{opacity:0;transform:translateY(20px) scale(.985);}to{opacity:1;transform:translateY(0) scale(1);}}

/* ── Hover states (was DC style-hover) ───── */
[data-hv]{transition:color .25s ease, background-color .25s ease, border-color .25s ease;}
[data-hv="red"]:hover{color:#A64040;}
[data-hv="bgred"]:hover{background:#A64040;}
[data-hv="suburb"]:hover{border-color:rgba(92,28,28,.4);}
[data-hv="white"]:hover{background:#fff;}
[data-hv="listing"]:hover{background:#241712;}
[data-hv="ghost"]:hover{border-color:#F5EDD8;background:rgba(245,237,216,.08);}
[data-hv="cream"]:hover{color:#F5EDD8;}
[data-hv="rose"]:hover{color:#D9A79B;}
[data-hv="bgrose"]:hover{background:#8f3535;}

/* Keyboard focus visibility */
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2.5px solid #A64040;outline-offset:2px;border-radius:6px;}


/* ── Responsive ──────────────────────────── */
/* Base/desktop styles win by source order, so these overrides don't need
   !important — they simply appear later in the cascade. */
.hh-cta-mobile{display:none;}
@media (max-width: 900px){
  .hh-cta-mobile{display:inline-flex;}
  .hh-wrap{padding-inline:24px;}
  .hh-sec{padding-block:80px;}
  .hh-navlinks{display:none;}
  .hh-hero{grid-template-columns:1fr;gap:22px;padding-top:28px;}
  .hh-hero-media{order:-1;}
  .hh-hero-copy{padding-bottom:44px;}
  .hh-hero-frame{height:480px;border-radius:220px 220px 0 0;}
  .hh-hero-img{--zoom:1.3;object-position:50% 30%;}
  .hh-about{grid-template-columns:1fr;gap:44px;}
  .hh-2col{grid-template-columns:1fr;gap:26px;margin-bottom:44px;}
  .hh-steps{grid-template-columns:1fr 1fr;}
  .hh-3col{grid-template-columns:1fr 1fr;}
  .hh-listing{flex-direction:column;align-items:flex-start;gap:26px;padding:40px 32px;}
  .hh-root{padding-bottom:78px;}
  .hh-callbar{display:flex;}
  .hh-reviews{grid-template-columns:1fr;}
  .hh-contact-cta{flex-direction:column;align-items:center;}
  .hh-contact-cta > a{width:100%;max-width:340px;justify-content:center;}
}
@media (max-width: 560px){
  .hh-sec{padding-block:60px;}
  .hh-steps{grid-template-columns:1fr;}
  .hh-3col{grid-template-columns:1fr;}
  .hh-h1{font-size:clamp(40px,11vw,54px);}
  .hh-hero-frame{height:420px;border-radius:190px 190px 0 0;}
}
/* ══ Motion & interactivity ════════════════════ */
/* Scroll reveal — only when JS is active, so no-JS shows everything */
.hh-js [data-reveal]{opacity:0;transform:translateY(30px);transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1);}
.hh-js [data-reveal].hh-in{opacity:1;transform:none;}
/* Staggered children: the container reveals its children in sequence */
.hh-js .hh-stagger[data-reveal]{opacity:1;transform:none;transition:none;}
.hh-js .hh-stagger > *{opacity:0;}
.hh-js .hh-stagger.hh-in > *{animation:hh-rise .7s cubic-bezier(.2,.7,.2,1) both;}
.hh-js .hh-stagger.hh-in > *:nth-child(1){animation-delay:0s;}
.hh-js .hh-stagger.hh-in > *:nth-child(2){animation-delay:.08s;}
.hh-js .hh-stagger.hh-in > *:nth-child(3){animation-delay:.16s;}
.hh-js .hh-stagger.hh-in > *:nth-child(4){animation-delay:.24s;}
.hh-js .hh-stagger.hh-in > *:nth-child(5){animation-delay:.32s;}
.hh-js .hh-stagger.hh-in > *:nth-child(6){animation-delay:.4s;}

/* Scroll progress bar */
.hh-progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,#5C1C1C,#A64040);z-index:70;pointer-events:none;transition:width .1s linear;}

/* Sticky nav shrink on scroll */
.hh-nav-inner{transition:padding .3s ease;}
.hh-nav--small{box-shadow:0 6px 24px rgba(36,23,18,.10);}
.hh-nav--small .hh-nav-inner{padding-top:9px;padding-bottom:9px;}

/* Logo arches grow-in on load */
@keyframes hh-arch-grow{from{transform:scaleY(0);}to{transform:scaleY(1);}}
.hh-logo-arch > span{transform-origin:bottom;animation:hh-arch-grow .8s cubic-bezier(.2,.7,.2,1) both;}
.hh-logo-arch > span:nth-child(2){animation-delay:.12s;}

/* Hero photo caption + scrim entrance */
@keyframes hh-fade{from{opacity:0;}to{opacity:1;}}
.hh-photo-cap{animation:hh-rise .9s .5s both;}
.hh-photo-scrim{animation:hh-fade 1s .4s both;}

/* Button micro-interactions */
[data-hv="bgred"],[data-hv="white"],[data-hv="ghost"]{transition:color .25s ease,background-color .25s ease,border-color .25s ease,transform .2s ease,box-shadow .25s ease;}
[data-hv="bgred"]:hover,[data-hv="white"]:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(36,23,18,.16);}
a[data-hv]:active{transform:scale(.97);}
[data-hv]:hover .hh-arrow{transform:translate(3px,-3px);}

/* Suburb card hover lift */
[data-hv="suburb"]{transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .3s ease;}
[data-hv="suburb"]:hover{transform:translateY(-7px);box-shadow:0 16px 34px rgba(36,23,18,.12);}

/* Count-up numbers keep width stable */
.hh-count{font-variant-numeric:tabular-nums;}

/* Hero image: parallax (--py) composed with a per-breakpoint zoom (--zoom) */
.hh-hero-img{transform:translate3d(0,var(--py,0px),0) scale(var(--zoom,1));transform-origin:50% 82%;}

/* Respect reduced-motion: turn motion off across the board */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}
  .hh-js [data-reveal]{opacity:1!important;transform:none!important;}
  .hh-js .hh-stagger > *{opacity:1!important;animation:none!important;}
  .hh-progress{display:none!important;}
}