/* HumTum V97 — editorial density, consistent poster scale and legible interactive states.
   Intent: retain the V96 visual system; avoid altering media crops, navigation, slider geometry,
   or any site/dashboard content and server-side behavior. */
:root { --ht-v97-hover-bg: #2c3237; --ht-v97-hover-text: #fff; }
/* V96's generic hover styles missed the .v27-button:any-link specificity on some
   browsers. Keep the established dark-hover treatment, with WHITE readable lettering. */
html body a.v27-button:is(:hover,:focus-visible),
html body a.v27-button.ht-action:is(:hover,:focus-visible),
html body :is(a,button).ht-action:is(:hover,:focus-visible) {
  background-color:var(--ht-v97-hover-bg)!important;
  border-color:var(--ht-qc-accent,#96ff32)!important;
  color:var(--ht-v97-hover-text)!important;
  -webkit-text-fill-color:var(--ht-v97-hover-text)!important;
}
html body a.v27-button:is(:hover,:focus-visible) :is(span,strong,small,i),
html body a.v27-button.ht-action:is(:hover,:focus-visible) :is(span,strong,small,i),
html body :is(a,button).ht-action:is(:hover,:focus-visible) :is(span,strong,small,i) {
  color:#fff!important;-webkit-text-fill-color:#fff!important;
}
/* Keep the original light-filled CTA and dark lettering at rest. */
html body a.v27-button:not(.v27-button-secondary):not(:hover):not(:focus-visible) {
  color:#0b0d0f!important;-webkit-text-fill-color:#0b0d0f!important;
}
/* Do not invert the round icon on editorial text links; V96 already handles those. */

/* Consistent desktop poster sizing: 22 columns with a capped field width prevents
   posters from growing to 180px+ on large displays while the frame stays fixed.
   This keeps roughly four visible rows on both 1080p and larger desktop screens. */
@media (min-width: 801px) {
  html body .v62-gallery-stage {
    height:clamp(480px,38vw,600px)!important;
  }
  html body .v59-credits .v59-poster-grid.v62-constellation {
    grid-template-columns:repeat(22,minmax(0,1fr))!important;
    width:clamp(1700px,115vw,2350px)!important;
    gap:clamp(8px,.65vw,13px)!important;
    padding:24px 30px 85px!important;
  }
  html body .v59-credits .v62-tile img {border-radius:5px!important;}
}

/* Site-wide editorial rhythm: remove redundant blank space, not readable text,
   media aspect ratios or visual hierarchy. Desktop/tablet first. */
@media (min-width: 801px) {
  html body .v9-hero,
  html body .hero:has(.hero-inner) {
    min-height:clamp(350px,34vw,450px)!important;
  }
  html body .v9-hero-inner,
  html body .hero:has(.hero-inner) .hero-inner {
    min-height:clamp(350px,34vw,450px)!important;
    padding-block:clamp(44px,4.5vw,68px)!important;
  }
  html body .v9-hero .v30-page-kicker {margin-bottom:16px!important;}
  html body .v9-hero-inner .v9-scroll {margin-top:18px!important;}
  html body main .v9-section,
  html body main .v9-next {
    padding-block:clamp(54px,5.4vw,94px)!important;
  }
  html body main .v9-section h2 {margin-bottom:clamp(17px,2vw,28px)!important;}
  html body main .v9-section .v9-label {margin-bottom:20px!important;}
  html body main .v9-next h2 {margin-bottom:24px!important;}
  html body main .section-pad {
    padding-top:clamp(58px,6vw,98px)!important;
    padding-bottom:clamp(58px,6vw,98px)!important;
  }
  html body main :is(.v27-journey,.v27-clients,.v27-careers,
      .v77-assurance,.v77-delivery,.v77-us,.v77-next-steps) {
    padding-block:clamp(55px,5.8vw,96px)!important;
  }
  html body main .v27-steps,
  html body main .v27-client-grid {margin-block:28px 24px!important;}
  html body main :is(.v27-steps>div,.v27-client-grid>div,.v27-panel) {
    padding:clamp(20px,2vw,30px)!important;
  }
  html body main .v77-assurance-heading {margin:24px 0 27px!important;}
  html body main .v77-assurance-grid article {min-height:0!important;padding:clamp(20px,2vw,30px)!important;}
  html body main .v77-assurance-grid h3 {margin-top:18px!important;}
  html body main .v77-delivery-list {margin-top:30px!important;}
  html body main .v77-delivery-list article {padding-block:19px!important;}
  html body main .v30-story-grid {margin-top:28px!important;gap:clamp(26px,4vw,70px)!important;}
  html body main .v30-calculator-guide {margin:24px 0 20px!important;padding-block:23px!important;}
  html body main .v28-process {padding-block:clamp(54px,5.4vw,90px)!important;}
  html body main .v28-finance-addon {padding-block:clamp(54px,5.4vw,90px)!important;}
  html body main .v38-feature,
  html body main .v33-service-process {padding-block:clamp(52px,5.3vw,90px)!important;}
  html body main .v20-work-intro {min-height:0!important;padding-block:clamp(48px,4.8vw,75px)!important;}
  html body main .v59-credits {padding-block:clamp(50px,5vw,80px)!important;}
}
/* Phone and tablet: shorten dead space, but never compress the navigation,
   comparison slider controls, videos, forms or tap targets. */
@media (max-width: 800px) {
  html body .v9-hero,
  html body .hero:has(.hero-inner) {min-height:0!important;height:auto!important;}
  html body .v9-hero-inner,
  html body .hero:has(.hero-inner) .hero-inner {
    min-height:0!important;padding-block:clamp(44px,8vw,72px)!important;
  }
  html body main .v9-section,
  html body main .v9-next {padding-block:clamp(44px,8vw,70px)!important;}
  html body main .v9-section h2 {margin-bottom:20px!important;}
  html body main .v9-section .v9-label {margin-bottom:16px!important;}
  html body main .section-pad {padding-block:clamp(48px,8vw,76px)!important;}
  html body main :is(.v27-journey,.v27-clients,.v27-careers,
      .v77-assurance,.v77-delivery,.v77-us,.v77-next-steps) {
    padding-block:clamp(46px,8vw,74px)!important;
  }
  html body main .v27-steps,
  html body main .v27-client-grid {margin-block:24px 22px!important;}
  html body main :is(.v27-steps>div,.v27-client-grid>div,.v27-panel) {padding:20px!important;}
  html body main .v77-assurance-grid article {min-height:0!important;padding:22px!important;}
  html body main .v77-assurance-heading {margin:22px 0 24px!important;}
  html body main .v30-story-grid {margin-top:24px!important;gap:24px!important;}
  html body main .v30-calculator-guide {margin-block:22px!important;padding-block:20px!important;}
  html body main .v20-work-intro {min-height:0!important;padding-block:44px!important;}
  /* Keep existing V91 mobile poster columns and natural scroll. */
}
@media (prefers-reduced-motion:reduce) {
  html body a.v27-button,html body .ht-action {transition:none!important;}
}
