/* Reusable Heart House CTA Studio */
.hh-cta{
  --hh-cta-accent:var(--hh-brand);
  --hh-cta-bg:var(--hh-surface);
  --hh-cta-ink:var(--hh-text);
  --hh-cta-muted:var(--hh-muted);
  --hh-cta-border:var(--hh-border);
  --hh-cta-on-accent:var(--hh-on-brand,#fff);
  --hh-cta-highlight-text:var(--hh-cta-ink);
  --hh-cta-icon-bg:var(--hh-cta-accent);
  --hh-cta-icon-text:var(--hh-cta-on-accent);
  --hh-cta-detail-bg:var(--hh-cta-accent);
  --hh-cta-detail-text:var(--hh-cta-on-accent);
  --hh-cta-detail-border:var(--hh-cta-accent);
  --hh-cta-list-marker:var(--hh-cta-highlight-text);
  --hh-cta-focus-ring:var(--hh-cta-highlight-text);
  position:relative;
  isolation:isolate;
  margin-block:clamp(.9rem,2.4vw,1.8rem);
  color:var(--hh-cta-ink);
}
.hh-cta__frame{
  position:relative;
  width:100%;
  margin-inline:auto;
  padding:clamp(1.15rem,3.3vw,2.35rem);
  overflow:hidden;
  border:1px solid var(--hh-cta-border);
  border-radius:clamp(10px,1.2vw,18px);
  background:var(--hh-cta-bg);
  color:var(--hh-cta-ink);
  box-shadow:0 12px 32px rgba(6,20,38,.1);
}
.hh-cta__layout{display:grid;gap:clamp(1.1rem,3vw,2rem);align-items:center}
.hh-cta__main{min-width:0}
.hh-cta__topline{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;margin-bottom:.75rem}
.hh-cta__icon-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 38px;width:38px;height:38px;border-radius:10px;background:var(--hh-cta-icon-bg);color:var(--hh-cta-icon-text);font-size:1.15rem;font-weight:950;line-height:1}
.hh-cta__eyebrow{margin:0;color:var(--hh-cta-highlight-text);font-size:.75rem;font-weight:950;letter-spacing:.085em;text-transform:uppercase}
.hh-cta__detail{display:inline-flex;align-items:center;min-height:29px;margin-left:auto;padding:.28rem .58rem;border:1px solid var(--hh-cta-detail-border);border-radius:999px;background:var(--hh-cta-detail-bg);color:var(--hh-cta-detail-text);font-size:.72rem;font-weight:950;letter-spacing:.04em}
.hh-cta__headline{max-width:26ch;margin:0;color:var(--hh-cta-ink);font-size:clamp(1.55rem,4vw,3rem);line-height:1.03;letter-spacing:-.035em}
.hh-cta__body{max-width:68ch;margin:.75rem 0 0;color:var(--hh-cta-muted);font-size:clamp(.96rem,1.25vw,1.08rem);line-height:1.65}
.hh-cta__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.48rem 1rem;margin:1rem 0 0;padding:0;list-style:none}
.hh-cta__list li{position:relative;padding-left:1.55rem;color:var(--hh-cta-ink);font-weight:750}
.hh-cta__list li::before{content:"✓";position:absolute;left:0;color:var(--hh-cta-list-marker);font-weight:950}
.hh-cta__actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.15rem}
.hh-cta__actions .hh-button{width:auto}
.hh-cta__embedded-content{margin-top:1rem}
.hh-cta__embedded-content>*:first-child,.hh-cta__manual-content>*:first-child{margin-top:0}
.hh-cta__embedded-content>*:last-child,.hh-cta__manual-content>*:last-child{margin-bottom:0}
.hh-cta__media{min-width:0}
.hh-cta__image{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px}
.hh-cta--align-center{text-align:center}
.hh-cta--align-center .hh-cta__headline,.hh-cta--align-center .hh-cta__body{margin-inline:auto}
.hh-cta--align-center .hh-cta__topline,.hh-cta--align-center .hh-cta__actions{justify-content:center}
.hh-cta--align-center .hh-cta__detail{margin-left:0}
.hh-cta--presentation-manual .hh-cta__frame{padding:0;border:0;background:transparent;box-shadow:none;overflow:visible}
.hh-cta--presentation-manual .hh-cta__manual-content{width:100%}

.hh-cta__close{position:absolute;z-index:3;top:.6rem;right:.6rem;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:999px;background:color-mix(in srgb,var(--hh-cta-bg) 92%,transparent);color:var(--hh-cta-ink);font-size:1.5rem;line-height:1;cursor:pointer}
.hh-cta__close:hover{transform:none;background:var(--hh-cta-bg)}
.hh-cta--dismissible .hh-cta__frame{padding-right:3.8rem}

/* Ten recognizable templates — intentionally solid, not gradient-based. */
.hh-cta--template-sale{--hh-cta-accent:var(--hh-promo);--hh-cta-on-accent:var(--hh-on-promo,#061426);--hh-cta-bg:var(--hh-promo-soft);--hh-cta-ink:var(--hh-text);--hh-cta-muted:var(--hh-muted);--hh-cta-border:color-mix(in srgb,var(--hh-promo) 32%,var(--hh-border))}
.hh-cta--template-sale .hh-cta__frame{border-width:2px}
.hh-cta--template-sale .hh-cta__frame::before{content:"";position:absolute;inset:0 auto 0 0;width:8px;background:var(--hh-cta-accent)}
.hh-cta--template-sale .hh-cta__detail{border:0;font-size:.82rem}

.hh-cta--template-promotion{--hh-cta-accent:var(--hh-brand);--hh-cta-on-accent:var(--hh-on-brand,#fff);--hh-cta-bg:var(--hh-navy);--hh-cta-ink:#fff;--hh-cta-muted:#d3dfeb;--hh-cta-border:color-mix(in srgb,var(--hh-blue) 70%,#fff)}
.hh-cta--template-promotion .hh-cta__frame{box-shadow:0 18px 46px rgba(6,20,38,.22)}
.hh-cta--template-promotion .hh-button--secondary{border-color:#fff;background:transparent;color:#fff}

.hh-cta--template-success_story{--hh-cta-accent:var(--hh-green,#16834b);--hh-cta-on-accent:var(--hh-on-success,#fff);--hh-cta-bg:var(--hh-success-bg,#e4f6eb);--hh-cta-ink:var(--hh-success-text,#0d673a);--hh-cta-muted:color-mix(in srgb,var(--hh-success-text,#0d673a) 72%,var(--hh-muted));--hh-cta-border:color-mix(in srgb,var(--hh-green,#16834b) 30%,var(--hh-border))}
.hh-cta--template-success_story .hh-cta__detail{border:0;border-radius:8px}

.hh-cta--template-latest_post{--hh-cta-accent:var(--hh-blue);--hh-cta-on-accent:var(--hh-on-blue,#fff);--hh-cta-bg:var(--hh-info-bg,#e8f1ff);--hh-cta-ink:var(--hh-info-text,#164f9b);--hh-cta-muted:var(--hh-muted);--hh-cta-border:color-mix(in srgb,var(--hh-blue) 28%,var(--hh-border))}
.hh-cta--template-latest_post .hh-cta__frame{border-top:6px solid var(--hh-cta-accent)}

.hh-cta--template-new_service{--hh-cta-accent:var(--hh-teal);--hh-cta-on-accent:var(--hh-on-teal,#fff);--hh-cta-bg:color-mix(in srgb,var(--hh-teal) 8%,var(--hh-surface));--hh-cta-ink:var(--hh-navy);--hh-cta-muted:var(--hh-muted);--hh-cta-border:color-mix(in srgb,var(--hh-teal) 30%,var(--hh-border))}
.hh-cta--template-new_service .hh-cta__icon-mark{border-radius:50%}
.hh-cta--template-new_service .hh-cta__detail{border:0}

.hh-cta--template-service_list{--hh-cta-accent:var(--hh-brand);--hh-cta-on-accent:var(--hh-on-brand,#fff);--hh-cta-bg:#fff;--hh-cta-ink:#061426;--hh-cta-muted:#536476;--hh-cta-border:#cdd9e5}
.hh-cta--template-service_list .hh-cta__frame{border-top:10px solid #061426}
.hh-cta--template-service_list .hh-cta__list{padding:1rem;border-radius:10px;background:#f3f7fb}

.hh-cta--template-program_spotlight{--hh-cta-accent:var(--hh-brand);--hh-cta-on-accent:var(--hh-on-brand,#fff);--hh-cta-bg:#fff;--hh-cta-ink:#061426;--hh-cta-muted:#536476;--hh-cta-border:#d8e2ec}
.hh-cta--template-program_spotlight .hh-cta__frame{box-shadow:0 18px 46px rgba(6,20,38,.15)}
.hh-cta--template-program_spotlight .hh-cta__media{order:-1}

.hh-cta--template-event_deadline{--hh-cta-accent:var(--hh-promo);--hh-cta-on-accent:var(--hh-on-promo,#061426);--hh-cta-bg:var(--hh-warning-bg,#fff3d6);--hh-cta-ink:var(--hh-warning-text,#805200);--hh-cta-muted:var(--hh-muted);--hh-cta-border:color-mix(in srgb,var(--hh-promo) 32%,var(--hh-border))}
.hh-cta--template-event_deadline .hh-cta__detail{border:0;border-radius:8px;font-size:.86rem}
.hh-cta--template-event_deadline .hh-cta__frame{border-bottom:6px solid var(--hh-cta-accent)}

.hh-cta--template-testimonial{--hh-cta-accent:var(--hh-blue);--hh-cta-on-accent:var(--hh-on-blue,#fff);--hh-cta-bg:var(--hh-surface-soft);--hh-cta-ink:var(--hh-navy);--hh-cta-muted:var(--hh-muted);--hh-cta-border:color-mix(in srgb,var(--hh-blue) 25%,var(--hh-border))}
.hh-cta--template-testimonial .hh-cta__headline{font-family:Georgia,serif;font-weight:650;letter-spacing:-.02em}
.hh-cta--template-testimonial .hh-cta__icon-mark{font-family:Georgia,serif;font-size:1.8rem}

.hh-cta--template-announcement{--hh-cta-accent:var(--hh-brand);--hh-cta-on-accent:var(--hh-on-brand,#fff);--hh-cta-bg:var(--hh-navy);--hh-cta-ink:#fff;--hh-cta-muted:#d3dfeb;--hh-cta-border:var(--hh-navy)}
.hh-cta--template-announcement .hh-cta__frame{border-left:9px solid var(--hh-cta-accent);border-radius:8px}
.hh-cta--template-announcement .hh-cta__detail{border:0}
.hh-cta--template-announcement .hh-button--secondary{border-color:#fff;background:transparent;color:#fff}

@media(min-width:720px){
  .hh-cta__layout.has-image{grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr)}
  .hh-cta--template-program_spotlight .hh-cta__layout.has-image{grid-template-columns:minmax(240px,.75fr) minmax(0,1.25fr)}
  .hh-cta--template-program_spotlight .hh-cta__media{order:-1}
}

.hh-cta--width-full{width:100vw;max-width:none;margin-left:50%;transform:translateX(-50%)}
.hh-cta--width-full .hh-cta__frame{border-radius:0}
.hh-cta--width-fluid .hh-cta__frame{width:calc(100vw - (var(--hh-page-gutter,16px) * 2));max-width:none}
.hh-cta--width-wide .hh-cta__frame{width:min(calc(100vw - (var(--hh-page-gutter,16px) * 2)),var(--hh-content))}
.hh-cta--width-contained .hh-cta__frame{width:min(calc(100vw - (var(--hh-page-gutter,16px) * 2)),1180px)}
.hh-cta--width-reading .hh-cta__frame{width:min(calc(100vw - (var(--hh-page-gutter,16px) * 2)),var(--hh-reading))}
.hh-cta--width-inherit .hh-cta__frame{width:min(calc(100vw - (var(--hh-page-gutter,16px) * 2)),var(--hh-content));max-width:100%}
.hh-layout-full .hh-cta--width-inherit .hh-cta__frame{width:100%;max-width:none}
.hh-layout-fluid .hh-cta--width-inherit .hh-cta__frame{width:calc(100vw - (var(--hh-page-gutter,16px) * 2));max-width:none}
.hh-layout-contained .hh-cta--width-inherit .hh-cta__frame{width:min(calc(100vw - (var(--hh-page-gutter,16px) * 2)),1180px)}
.hh-layout-reading .hh-cta--width-inherit .hh-cta__frame{width:min(calc(100vw - (var(--hh-page-gutter,16px) * 2)),var(--hh-reading))}

.hh-cta--placement-after_header,.hh-cta--placement-after_hero,.hh-cta--placement-before_footer{margin-block:0}
.hh-cta--placement-after_header.hh-cta--style-alert .hh-cta__frame{border-width:0 0 1px;border-left:0;border-radius:0;box-shadow:none}
.hh-cta--placement-after_header.hh-cta--style-banner .hh-cta__frame,
.hh-cta--placement-after_header.hh-cta--style-dark .hh-cta__frame{border-radius:0}
.hh-cta--placement-before_footer{margin-top:0}

.hh-page-shell{display:grid;gap:clamp(1rem,2vw,2rem);align-items:start}
.hh-page-sidebar{display:grid;gap:1rem;min-width:0}
.hh-cta--placement-sidebar{margin:0}
.hh-cta--placement-sidebar .hh-cta__frame{width:100%;max-width:100%;padding:1rem}
.hh-cta--placement-sidebar .hh-cta__content{font-size:.94rem}
.hh-cta--placement-sidebar .hh-button,.hh-cta--placement-sidebar .wp-block-button__link{width:100%}

.hh-cta--placement-floating{position:fixed;z-index:85;right:clamp(12px,2vw,28px);bottom:calc(clamp(12px,2vw,28px) + var(--hh-sticky-bottom-offset,0px));width:min(430px,calc(100vw - 24px));margin:0}
.hh-cta--placement-floating .hh-cta__frame{width:100%;max-width:100%;max-height:min(70dvh,650px);overflow:auto;border-radius:var(--hh-radius-lg);box-shadow:0 18px 55px rgba(6,20,38,.24)}
.hh-cta--placement-floating.hh-cta--delayed{display:none}
.hh-cta--placement-floating.hh-cta--visible{display:block;animation:hh-cta-enter .24s ease-out}
@keyframes hh-cta-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

.hh-cta[hidden]{display:none!important}
.hh-cta--device-mobile{display:block}.hh-cta--device-desktop{display:none}
.hh-cta .wp-block-image{margin-block:0 1rem}.hh-cta .wp-block-image img{border-radius:var(--hh-radius-sm)}
.hh-cta .wp-block-buttons{margin-top:1rem}
.hh-cta :where(.wp-block-columns){margin-bottom:0}
.hh-cta :where(iframe,video,img,svg){max-width:100%}

@media(min-width:782px){
  .hh-cta--device-mobile{display:none}.hh-cta--device-desktop{display:block}
}
@media(min-width:1024px){
  .hh-page-shell--with-sidebar{grid-template-columns:minmax(0,1fr) minmax(280px,360px)}
  .hh-page-sidebar{position:sticky;top:128px}
  .admin-bar .hh-page-sidebar{top:160px}
}
@media(max-width:781px){
  .hh-cta--placement-floating{right:var(--hh-page-gutter,16px);bottom:calc(var(--hh-page-gutter,16px) + var(--hh-sticky-bottom-offset,0px));left:var(--hh-page-gutter,16px);width:auto}
  .hh-cta--placement-floating .hh-cta__frame{max-height:72dvh;border-radius:var(--hh-radius-md)}
  .hh-cta--placement-after_header .hh-cta__frame{padding:.85rem var(--hh-page-gutter,16px)}
}
@media(max-width:359px){
  .hh-cta__frame{padding:.85rem}
  .hh-cta--dismissible .hh-cta__frame{padding-right:3rem}
}
@media(prefers-reduced-motion:reduce){.hh-cta--placement-floating.hh-cta--visible{animation:none}}


/* Dynamic provider accent roles use the active Heart House palette. */
.hh-cta--provider-accent-brand{--hh-cta-accent:var(--hh-brand);--hh-cta-on-accent:var(--hh-on-brand,#fff)}
.hh-cta--provider-accent-promo{--hh-cta-accent:var(--hh-promo);--hh-cta-on-accent:var(--hh-on-promo,#061426)}
.hh-cta--provider-accent-blue{--hh-cta-accent:var(--hh-blue);--hh-cta-on-accent:var(--hh-on-blue,#fff)}
.hh-cta--provider-accent-teal{--hh-cta-accent:var(--hh-teal);--hh-cta-on-accent:var(--hh-on-teal,#fff)}
.hh-cta--provider-accent-success{--hh-cta-accent:var(--hh-green,#16834b);--hh-cta-on-accent:var(--hh-on-success,#fff)}
.hh-cta--provider-accent-warning{--hh-cta-accent:var(--hh-promo);--hh-cta-on-accent:var(--hh-on-warning,#061426)}
.hh-cta--provider-accent-danger{--hh-cta-accent:var(--hh-danger);--hh-cta-on-accent:var(--hh-on-danger,#fff)}
.hh-cta--provider-accent-info{--hh-cta-accent:var(--hh-blue);--hh-cta-on-accent:var(--hh-on-info,#fff)}
.hh-cta--dynamic .hh-cta__frame{outline:1px solid color-mix(in srgb,var(--hh-cta-accent) 18%,transparent);outline-offset:3px}


/* CTA AODA contrast guard */
.hh-cta--presentation-template .hh-cta__embedded-content{color:var(--hh-cta-ink)}
.hh-cta--presentation-template .hh-cta__embedded-content :where(
  p:not([class]),li:not([class]),h1:not([class]),h2:not([class]),h3:not([class]),
  h4:not([class]),h5:not([class]),h6:not([class]),strong:not([class]),small:not([class])
){color:inherit}
.hh-cta--presentation-template .hh-cta__embedded-content a:not(.hh-button):not(.wp-block-button__link){
  color:var(--hh-cta-highlight-text);
  text-decoration:underline;
  text-decoration-thickness:.11em;
  text-underline-offset:.18em;
}
.hh-cta :where(a,button,input,select,textarea):focus-visible{
  outline:3px solid var(--hh-cta-focus-ring);
  outline-offset:3px;
}
.hh-cta .hh-button--primary{
  border-color:var(--hh-cta-accent);
  background:var(--hh-cta-accent);
  color:var(--hh-cta-on-accent);
}
.hh-cta .hh-button--primary:hover,
.hh-cta .hh-button--primary:focus-visible{
  border-color:var(--hh-cta-accent);
  background:var(--hh-cta-accent);
  color:var(--hh-cta-on-accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--hh-cta-focus-ring) 30%,transparent);
}
.hh-cta .hh-button--secondary{
  border-color:color-mix(in srgb,var(--hh-cta-highlight-text) 62%,transparent);
  background:transparent;
  color:var(--hh-cta-highlight-text);
}
.hh-cta .hh-button--secondary:hover,
.hh-cta .hh-button--secondary:focus-visible{
  border-color:var(--hh-cta-highlight-text);
  background:transparent;
  color:var(--hh-cta-highlight-text);
  text-decoration:underline;
  text-underline-offset:.16em;
}


/* Cache-resistant CTA contrast guard; PHP also prints this after all ordinary styles. */
.hh-cta--contrast-guarded .hh-cta__eyebrow,
.hh-cta--contrast-guarded .hh-cta__list li,
.hh-cta--contrast-guarded .hh-cta__list li::before{
  color:var(--hh-cta-safe-highlight,var(--hh-cta-ink,#fff))!important;
}
.hh-cta--contrast-guarded .hh-cta__detail,
.hh-cta--contrast-guarded .hh-cta__icon-mark{
  border-color:var(--hh-cta-safe-accent,var(--hh-cta-accent))!important;
  background:var(--hh-cta-safe-accent,var(--hh-cta-accent))!important;
  color:var(--hh-cta-safe-on-accent,var(--hh-cta-on-accent,#fff))!important;
}


/* ------------------------------------------------------------------
   CTA visual system: independent layouts, colour schemes, sale block,
   and accessible highlighted headline words.
------------------------------------------------------------------- */
/* Purpose controls content semantics; layout and scheme now control structure and colour. */
.hh-cta--template-sale .hh-cta__frame{border-width:1px}
.hh-cta--template-sale .hh-cta__frame::before{display:none}
.hh-cta--template-promotion .hh-cta__frame{box-shadow:0 12px 32px rgba(6,20,38,.1)}
.hh-cta--template-latest_post .hh-cta__frame{border-top-width:1px}
.hh-cta--template-service_list .hh-cta__frame{border-top-width:1px}
.hh-cta--template-service_list .hh-cta__list{padding:0;background:transparent}
.hh-cta--template-program_spotlight .hh-cta__frame{box-shadow:0 12px 32px rgba(6,20,38,.1)}
.hh-cta--template-program_spotlight .hh-cta__media{order:initial}
.hh-cta--template-event_deadline .hh-cta__frame{border-bottom-width:1px}
.hh-cta--template-announcement .hh-cta__frame{border-left-width:1px;border-radius:clamp(10px,1.2vw,18px)}

.hh-cta__sale-pricing{
  display:flex;
  flex-wrap:wrap;
  align-items:stretch;
  gap:.55rem;
  margin-top:1rem;
}
.hh-cta__sale-pricing>span{
  display:grid;
  align-content:center;
  gap:.12rem;
  min-height:62px;
  padding:.55rem .72rem;
  border:1px solid color-mix(in srgb,var(--hh-cta-safe-highlight) 28%,transparent);
  border-radius:9px;
  color:var(--hh-cta-safe-highlight);
}
.hh-cta__sale-pricing small{
  color:inherit;
  font-size:.68rem;
  font-weight:850;
  letter-spacing:.055em;
  line-height:1.1;
  text-transform:uppercase;
}
.hh-cta__regular-price s{font-size:1.05rem;font-weight:850;text-decoration-thickness:.12em}
.hh-cta__sale-price{
  border-color:var(--hh-cta-safe-accent)!important;
  background:var(--hh-cta-safe-accent)!important;
  color:var(--hh-cta-safe-on-accent)!important;
}
.hh-cta__sale-price strong{font-size:clamp(1.35rem,3vw,2rem);line-height:1}
.hh-cta__sale-end strong{font-size:.95rem}
.hh-cta__sale-note{
  border-color:transparent!important;
  background:color-mix(in srgb,var(--hh-cta-safe-accent) 14%,transparent);
  font-weight:900;
}

/* Headline effects use solid colour, borders, and offsets rather than gradients. */
.hh-cta__highlight{display:inline;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.hh-cta--highlight-accent .hh-cta__highlight{
  color:var(--hh-cta-safe-accent-text,var(--hh-cta-safe-highlight));
}
.hh-cta--highlight-marker .hh-cta__highlight{
  padding:.02em .14em .05em;
  background:var(--hh-cta-safe-accent);
  color:var(--hh-cta-safe-on-accent);
}
.hh-cta--highlight-underline .hh-cta__highlight{
  color:inherit;
  text-decoration-line:underline;
  text-decoration-color:var(--hh-cta-safe-accent);
  text-decoration-thickness:.16em;
  text-underline-offset:.12em;
}
.hh-cta--highlight-outline .hh-cta__highlight{
  padding:.02em .12em;
  border:2px solid var(--hh-cta-safe-accent);
  border-radius:.18em;
  color:var(--hh-cta-safe-highlight);
}
.hh-cta--highlight-pill .hh-cta__highlight{
  display:inline-block;
  padding:.03em .26em .08em;
  border-radius:999px;
  background:var(--hh-cta-safe-accent);
  color:var(--hh-cta-safe-on-accent);
  line-height:1.05;
}
.hh-cta--highlight-shadow .hh-cta__highlight{
  color:var(--hh-cta-safe-highlight);
  text-shadow:.06em .06em 0 var(--hh-cta-safe-accent);
}

/* Layout 1: Spotlight */
.hh-cta--layout-spotlight .hh-cta__frame{padding:clamp(1.35rem,3.8vw,2.7rem)}
.hh-cta--layout-spotlight .hh-cta__headline{max-width:24ch}

/* Layout 2: Wide action banner */
.hh-cta--layout-wide_banner .hh-cta__frame{padding:clamp(1rem,2.4vw,1.55rem)}
.hh-cta--layout-wide_banner .hh-cta__layout{gap:1rem}
.hh-cta--layout-wide_banner .hh-cta__headline{max-width:34ch;font-size:clamp(1.35rem,2.8vw,2.25rem)}
.hh-cta--layout-wide_banner .hh-cta__body{margin-top:.45rem}
.hh-cta--layout-wide_banner .hh-cta__actions{margin-top:.75rem}
.hh-cta--layout-wide_banner .hh-cta__image{aspect-ratio:16/9}

/* Layout 3: Full-bleed image split */
.hh-cta--layout-image_split .hh-cta__frame{padding:0}
.hh-cta--layout-image_split .hh-cta__main{padding:clamp(1.2rem,3.4vw,2.5rem)}
.hh-cta--layout-image_split .hh-cta__media{align-self:stretch}
.hh-cta--layout-image_split .hh-cta__image{height:100%;min-height:280px;border-radius:0;object-fit:cover}

/* Layout 4: Image cover with solid readable panel */
.hh-cta--layout-image_cover .hh-cta__frame{min-height:430px;padding:0}
.hh-cta--layout-image_cover .hh-cta__layout.has-image{position:relative;display:block;min-height:430px}
.hh-cta--layout-image_cover .hh-cta__media{position:absolute;inset:0}
.hh-cta--layout-image_cover .hh-cta__image{width:100%;height:100%;border-radius:0;object-fit:cover}
.hh-cta--layout-image_cover .hh-cta__main{
  position:relative;
  z-index:2;
  width:min(680px,72%);
  min-height:430px;
  padding:clamp(1.35rem,4vw,3rem);
  background:color-mix(in srgb,var(--hh-cta-bg) 94%,transparent);
  color:var(--hh-cta-ink);
  box-shadow:14px 0 0 color-mix(in srgb,var(--hh-cta-accent) 72%,transparent);
}

/* Layout 5: Price focus */
.hh-cta--layout-price_focus .hh-cta__frame{border-width:2px}
.hh-cta--layout-price_focus .hh-cta__headline{max-width:22ch}
.hh-cta--layout-price_focus .hh-cta__sale-pricing{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  max-width:620px;
}
.hh-cta--layout-price_focus .hh-cta__sale-price{
  grid-row:span 2;
  min-height:132px;
  text-align:center;
}
.hh-cta--layout-price_focus .hh-cta__sale-price strong{font-size:clamp(2.2rem,6vw,4.8rem)}
.hh-cta--layout-price_focus .hh-cta__sale-note{grid-column:1/-1;min-height:auto;text-align:center}

/* Layout 6: Checklist panel */
.hh-cta--layout-checklist_panel .hh-cta__list{
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:.65rem;
}
.hh-cta--layout-checklist_panel .hh-cta__list li{
  min-height:54px;
  padding:.75rem .8rem .75rem 2.2rem;
  border:1px solid color-mix(in srgb,var(--hh-cta-safe-highlight) 24%,transparent);
  border-radius:8px;
  background:color-mix(in srgb,var(--hh-cta-bg) 82%,var(--hh-cta-safe-accent) 18%);
}
.hh-cta--layout-checklist_panel .hh-cta__list li::before{left:.8rem;top:.78rem}

/* Layout 7: Editorial story */
.hh-cta--layout-editorial_story .hh-cta__frame{
  border-left:10px solid var(--hh-cta-safe-accent);
  border-radius:4px 16px 16px 4px;
}
.hh-cta--layout-editorial_story .hh-cta__headline{
  max-width:30ch;
  font-family:Georgia,"Times New Roman",serif;
  font-weight:650;
  letter-spacing:-.025em;
}
.hh-cta--layout-editorial_story .hh-cta__body{font-size:clamp(1rem,1.4vw,1.18rem)}
.hh-cta--layout-editorial_story .hh-cta__icon-mark{border-radius:50%}

/* Layout 8: Compact notice bar */
.hh-cta--layout-notice_bar{margin-block:.65rem}
.hh-cta--layout-notice_bar .hh-cta__frame{
  padding:.9rem 1rem;
  border-left:9px solid var(--hh-cta-safe-accent);
  border-radius:7px;
  box-shadow:0 6px 16px rgba(6,20,38,.08);
}
.hh-cta--layout-notice_bar .hh-cta__layout{gap:.75rem}
.hh-cta--layout-notice_bar .hh-cta__topline{margin-bottom:.35rem}
.hh-cta--layout-notice_bar .hh-cta__icon-mark{width:32px;height:32px;flex-basis:32px}
.hh-cta--layout-notice_bar .hh-cta__headline{max-width:none;font-size:clamp(1.15rem,2.3vw,1.7rem)}
.hh-cta--layout-notice_bar .hh-cta__body{margin-top:.3rem;font-size:.92rem}
.hh-cta--layout-notice_bar .hh-cta__actions{margin-top:.6rem}
.hh-cta--layout-notice_bar .hh-cta__media{display:none}

/* Layout 9: Centered poster */
.hh-cta--layout-centered_poster{text-align:center}
.hh-cta--layout-centered_poster .hh-cta__frame{padding:clamp(2rem,6vw,4.5rem)}
.hh-cta--layout-centered_poster .hh-cta__topline,
.hh-cta--layout-centered_poster .hh-cta__actions{justify-content:center}
.hh-cta--layout-centered_poster .hh-cta__detail{margin-left:0}
.hh-cta--layout-centered_poster .hh-cta__headline,
.hh-cta--layout-centered_poster .hh-cta__body{margin-inline:auto}
.hh-cta--layout-centered_poster .hh-cta__headline{max-width:22ch;font-size:clamp(2rem,6vw,4.8rem)}
.hh-cta--layout-centered_poster .hh-cta__sale-pricing{justify-content:center}

/* Layout 10: Details strip */
.hh-cta--layout-stats_strip .hh-cta__frame{border-top:8px solid var(--hh-cta-safe-accent)}
.hh-cta--layout-stats_strip .hh-cta__list{
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  margin-top:1.15rem;
  padding-top:1rem;
  border-top:1px solid color-mix(in srgb,var(--hh-cta-safe-highlight) 26%,transparent);
}
.hh-cta--layout-stats_strip .hh-cta__list li{
  min-height:42px;
  padding:.45rem .5rem .45rem 1.65rem;
  border-right:1px solid color-mix(in srgb,var(--hh-cta-safe-highlight) 22%,transparent);
}
.hh-cta--layout-stats_strip .hh-cta__sale-pricing{margin-top:1.15rem}

/* Layout 11: Image card stack */
.hh-cta--layout-card_stack .hh-cta__frame{padding:0}
.hh-cta--layout-card_stack .hh-cta__layout.has-image{display:flex;flex-direction:column}
.hh-cta--layout-card_stack .hh-cta__media{order:-1}
.hh-cta--layout-card_stack .hh-cta__image{aspect-ratio:16/7;border-radius:0}
.hh-cta--layout-card_stack .hh-cta__main{padding:clamp(1.15rem,3vw,2rem)}
.hh-cta--layout-card_stack .hh-cta__headline{font-size:clamp(1.45rem,3.5vw,2.5rem)}

/* Layout 12: Minimal */
.hh-cta--layout-minimal .hh-cta__frame{
  padding:1rem 0;
  border:0;
  border-top:2px solid var(--hh-cta-safe-accent);
  border-bottom:1px solid color-mix(in srgb,var(--hh-cta-safe-highlight) 22%,transparent);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.hh-cta--layout-minimal .hh-cta__icon-mark{display:none}
.hh-cta--layout-minimal .hh-cta__headline{font-size:clamp(1.35rem,3vw,2.15rem)}

/* Scheme-specific decorative signatures. Colours themselves are applied
   as server-calculated variables for dependable contrast. */
.hh-cta--scheme-heart_house_dark .hh-cta__frame::after,
.hh-cta--scheme-midnight_gold .hh-cta__frame::after{
  content:"";
  position:absolute;
  right:-42px;
  bottom:-42px;
  width:128px;
  height:128px;
  border:18px solid var(--hh-cta-safe-accent);
  border-radius:50%;
  opacity:.16;
  pointer-events:none;
}
.hh-cta--scheme-brand_light .hh-cta__frame{border-top:7px solid var(--hh-cta-safe-accent)}
.hh-cta--scheme-camp_teal .hh-cta__frame{border-radius:22px 8px 22px 8px}
.hh-cta--scheme-camp_teal .hh-cta__icon-mark{border-radius:50%}
.hh-cta--scheme-sale_orange .hh-cta__frame{
  border:2px solid var(--hh-cta-safe-accent);
  box-shadow:8px 8px 0 color-mix(in srgb,var(--hh-cta-safe-accent) 32%,transparent);
}
.hh-cta--scheme-success_green .hh-cta__frame{border-right:8px solid var(--hh-cta-safe-accent)}
.hh-cta--scheme-notice_amber .hh-cta__frame{border-style:dashed;border-width:2px}
.hh-cta--scheme-urgent_red .hh-cta__frame{border-left:12px solid var(--hh-cta-safe-accent);border-radius:4px 14px 14px 4px}
.hh-cta--scheme-news_blue .hh-cta__frame{border-top:9px solid var(--hh-cta-safe-accent)}
.hh-cta--scheme-community_purple .hh-cta__frame{border-radius:24px}
.hh-cta--scheme-community_purple .hh-cta__icon-mark{transform:rotate(-6deg)}
.hh-cta--scheme-midnight_gold .hh-cta__frame{border:2px solid var(--hh-cta-safe-accent)}
.hh-cta--scheme-monochrome .hh-cta__frame{border-radius:0;box-shadow:6px 6px 0 #000}
.hh-cta--scheme-soft_neutral .hh-cta__frame{box-shadow:inset 0 0 0 4px color-mix(in srgb,var(--hh-cta-safe-accent) 12%,transparent)}

@media(min-width:720px){
  .hh-cta--layout-wide_banner .hh-cta__layout.has-image{
    grid-template-columns:minmax(0,1.6fr) minmax(180px,.4fr);
  }
  .hh-cta--layout-image_split .hh-cta__layout.has-image{
    grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);
    gap:0;
  }
  .hh-cta--layout-image_split .hh-cta__media{order:0}
  .hh-cta--layout-price_focus .hh-cta__layout.has-image{
    grid-template-columns:minmax(0,1.25fr) minmax(260px,.55fr);
  }
  .hh-cta--layout-notice_bar .hh-cta__layout{
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
  }
  .hh-cta--layout-notice_bar .hh-cta__actions{margin-top:0;align-self:center}
}

@media(max-width:719px){
  .hh-cta__sale-pricing{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .hh-cta__sale-note{grid-column:1/-1}
  .hh-cta--layout-image_cover .hh-cta__frame,
  .hh-cta--layout-image_cover .hh-cta__layout.has-image{min-height:390px}
  .hh-cta--layout-image_cover .hh-cta__main{
    width:100%;
    min-height:390px;
    background:color-mix(in srgb,var(--hh-cta-bg) 96%,transparent);
    box-shadow:0 -10px 0 color-mix(in srgb,var(--hh-cta-accent) 72%,transparent);
  }
  .hh-cta--layout-price_focus .hh-cta__sale-price{grid-row:auto;min-height:92px}
  .hh-cta--layout-price_focus .hh-cta__sale-price strong{font-size:2.5rem}
  .hh-cta--layout-stats_strip .hh-cta__list{grid-template-columns:1fr}
  .hh-cta--layout-stats_strip .hh-cta__list li{border-right:0}
}


/* Parent-essential service facts: concise, predictable, and responsive. */
.hh-cta__facts{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(145px,1fr));
  gap:.55rem;
  margin:1rem 0 0;
  padding:0;
}
.hh-cta__fact{
  display:grid;
  align-content:center;
  gap:.12rem;
  min-width:0;
  min-height:58px;
  padding:.58rem .65rem;
  border:1px solid color-mix(in srgb,var(--hh-cta-safe-highlight) 25%,transparent);
  border-radius:9px;
  background:color-mix(in srgb,var(--hh-cta-bg) 88%,var(--hh-cta-safe-accent) 12%);
  color:var(--hh-cta-safe-highlight);
}
.hh-cta__fact-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 31px;
  width:31px;
  height:31px;
  border-radius:8px;
  background:var(--hh-cta-safe-accent);
  color:var(--hh-cta-safe-on-accent);
  font-size:.76rem;
  font-weight:950;
  line-height:1;
}
.hh-cta__fact dt{
  display:flex;
  align-items:center;
  gap:.55rem;
  min-width:0;
  margin:0;
  color:inherit;
  font-size:.64rem;
  font-weight:850;
  letter-spacing:.055em;
  line-height:1.15;
  text-transform:uppercase;
}
.hh-cta__fact dt>span:last-child{opacity:.82}
.hh-cta__fact dd{
  min-width:0;
  margin:0 0 0 2.55rem;
  color:inherit;
  font-size:.9rem;
  font-weight:850;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.hh-cta__fact--price{
  border-color:var(--hh-cta-safe-accent);
  background:var(--hh-cta-safe-accent);
  color:var(--hh-cta-safe-on-accent);
}
.hh-cta__fact--price .hh-cta__fact-icon{
  border:1px solid currentColor;
  background:transparent;
  color:inherit;
}
.hh-cta__fact--availability dd{font-weight:900}

.hh-cta--layout-price_focus .hh-cta__fact--price{
  grid-column:span 2;
  min-height:84px;
}
.hh-cta--layout-price_focus .hh-cta__fact--price dd{
  font-size:clamp(1.55rem,4vw,2.6rem);
  line-height:1;
}
.hh-cta--layout-stats_strip .hh-cta__facts{
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  padding-top:1rem;
  border-top:1px solid color-mix(in srgb,var(--hh-cta-safe-highlight) 24%,transparent);
}
.hh-cta--layout-wide_banner .hh-cta__facts{grid-template-columns:repeat(auto-fit,minmax(125px,1fr))}
.hh-cta--layout-wide_banner .hh-cta__fact{min-height:50px;padding:.45rem .52rem}
.hh-cta--layout-notice_bar .hh-cta__facts{margin-top:.65rem}
.hh-cta--layout-minimal .hh-cta__facts{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}

@media(max-width:719px){
  .hh-cta__facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
  .hh-cta__fact{min-height:55px;padding:.5rem .52rem;gap:.1rem}
  .hh-cta__fact-icon{width:28px;height:28px;flex-basis:28px;border-radius:7px}
  .hh-cta__fact dd{font-size:.82rem}
  .hh-cta__fact--location{grid-column:1/-1}
  .hh-cta--layout-price_focus .hh-cta__fact--price{grid-column:span 1;min-height:55px}
  .hh-cta--layout-price_focus .hh-cta__fact--price dd{font-size:1.25rem}
}
@media(max-width:420px){
  .hh-cta__facts{grid-template-columns:1fr}
  .hh-cta__fact--location{grid-column:auto}
}


/* ------------------------------------------------------------------
   Dynamic service collections
   A curated, clickable alternative to plain-text camp/program lists.
------------------------------------------------------------------- */
.hh-cta-service-collection{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));
  gap:clamp(.7rem,1.8vw,1rem);
  margin-top:clamp(1rem,2.5vw,1.4rem);
  text-align:left;
}
.hh-cta-service-card{
  --hh-service-card-accent:var(--hh-cta-safe-accent);
  --hh-service-card-on-accent:var(--hh-cta-safe-on-accent);
  position:relative;
  display:grid;
  grid-template-rows:auto 1fr;
  min-width:0;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--hh-cta-safe-highlight) 24%,transparent);
  border-radius:12px;
  background:color-mix(in srgb,var(--hh-cta-bg) 94%,var(--hh-cta-safe-highlight) 6%);
  color:var(--hh-cta-safe-highlight);
  text-decoration:none!important;
  box-shadow:0 8px 22px rgba(6,20,38,.1);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.hh-cta-service-card:hover{
  z-index:2;
  transform:translateY(-3px);
  border-color:var(--hh-service-card-accent);
  color:var(--hh-cta-safe-highlight);
  box-shadow:0 15px 32px rgba(6,20,38,.16);
  text-decoration:none!important;
}
.hh-cta-service-card:focus-visible{
  z-index:3;
  outline:3px solid var(--hh-service-card-accent)!important;
  outline-offset:4px;
}
.hh-cta-service-card--promo{--hh-service-card-accent:var(--hh-promo);--hh-service-card-on-accent:var(--hh-on-promo,#061426)}
.hh-cta-service-card--teal{--hh-service-card-accent:var(--hh-teal);--hh-service-card-on-accent:var(--hh-on-teal,#fff)}
.hh-cta-service-card--blue,
.hh-cta-service-card--info{--hh-service-card-accent:var(--hh-blue);--hh-service-card-on-accent:var(--hh-on-blue,#fff)}
.hh-cta-service-card--success{--hh-service-card-accent:var(--hh-green,#16834b);--hh-service-card-on-accent:var(--hh-on-success,#fff)}
.hh-cta-service-card--warning{--hh-service-card-accent:var(--hh-gold,#a86f00);--hh-service-card-on-accent:var(--hh-on-gold,#061426)}
.hh-cta-service-card--danger{--hh-service-card-accent:var(--hh-danger,#b4232f);--hh-service-card-on-accent:var(--hh-on-danger,#fff)}
.hh-cta-service-card--brand{--hh-service-card-accent:var(--hh-brand);--hh-service-card-on-accent:var(--hh-on-brand,#fff)}

.hh-cta-service-card__media{
  position:relative;
  display:block;
  min-height:132px;
  overflow:hidden;
  background:color-mix(in srgb,var(--hh-service-card-accent) 18%,var(--hh-cta-bg));
}
.hh-cta-service-card__image{
  display:block;
  width:100%;
  height:100%;
  min-height:132px;
  aspect-ratio:16/9;
  object-fit:cover;
  transition:transform .25s ease;
}
.hh-cta-service-card:hover .hh-cta-service-card__image{transform:scale(1.025)}
.hh-cta-service-card__fallback{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:132px;
  overflow:hidden;
  background:var(--hh-service-card-accent);
  color:var(--hh-service-card-on-accent);
}
.hh-cta-service-card__fallback::before,
.hh-cta-service-card__fallback::after{
  content:"";
  position:absolute;
  border:2px solid currentColor;
  border-radius:50%;
  opacity:.22;
}
.hh-cta-service-card__fallback::before{width:108px;height:108px;right:-24px;bottom:-42px}
.hh-cta-service-card__fallback::after{width:64px;height:64px;left:-18px;top:-18px}
.hh-cta-service-card__fallback>span{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:58px;
  height:58px;
  border:2px solid currentColor;
  border-radius:50%;
  font-size:1rem;
  font-weight:950;
  letter-spacing:.08em;
}
.hh-cta-service-card__status{
  position:absolute;
  z-index:2;
  top:.55rem;
  left:.55rem;
  display:inline-flex;
  align-items:center;
  max-width:calc(100% - 1.1rem);
  min-height:28px;
  padding:.28rem .52rem;
  border:1px solid color-mix(in srgb,var(--hh-service-card-on-accent) 38%,transparent);
  border-radius:999px;
  background:var(--hh-service-card-accent);
  color:var(--hh-service-card-on-accent);
  box-shadow:0 3px 10px rgba(6,20,38,.18);
  font-size:.65rem;
  font-weight:900;
  letter-spacing:.035em;
  line-height:1.15;
  text-transform:uppercase;
}

.hh-cta-service-card__content{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:.82rem;
}
.hh-cta-service-card__topline{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.55rem;
  min-height:24px;
}
.hh-cta-service-card__type{
  color:var(--hh-service-card-accent);
  font-size:.66rem;
  font-weight:950;
  letter-spacing:.075em;
  line-height:1.2;
  text-transform:uppercase;
}
.hh-cta-service-card__price{
  display:grid;
  justify-items:end;
  flex:0 0 auto;
  color:var(--hh-cta-safe-highlight);
  font-size:.84rem;
  line-height:1.05;
}
.hh-cta-service-card__price strong{font-size:1rem;font-weight:950}
.hh-cta-service-card__price.is-sale strong{color:var(--hh-service-card-accent);font-size:1.08rem}
.hh-cta-service-card__price-before{color:var(--hh-cta-safe-highlight);font-size:.7rem;opacity:.72}
.hh-cta-service-card__price-before s{text-decoration-thickness:.12em}
.hh-cta-service-card__price small{margin-top:.16rem;color:var(--hh-cta-safe-highlight);font-size:.59rem;font-weight:800;opacity:.78}
.hh-cta-service-card__title{
  display:block;
  margin-top:.35rem;
  color:var(--hh-cta-safe-highlight);
  font-size:clamp(1.02rem,1.8vw,1.22rem);
  font-weight:900;
  letter-spacing:-.018em;
  line-height:1.15;
}
.hh-cta-service-card__facts{
  display:grid;
  gap:.42rem;
  margin-top:.72rem;
}
.hh-cta-service-card__fact{
  display:grid;
  grid-template-columns:minmax(68px,auto) minmax(0,1fr);
  align-items:start;
  gap:.58rem;
  min-width:0;
  color:var(--hh-cta-safe-highlight);
  font-size:.74rem;
  line-height:1.35;
}
.hh-cta-service-card__fact-label{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  min-height:24px;
  padding:.18rem .48rem;
  border-radius:5px;
  background:color-mix(in srgb,var(--hh-service-card-accent) 14%,transparent);
  color:var(--hh-cta-safe-highlight);
  font-size:.61rem;
  font-weight:900;
  letter-spacing:.025em;
  line-height:1.15;
  text-transform:none;
}
.hh-cta-service-card__fact-value{
  min-width:0;
  padding-top:.18rem;
  color:var(--hh-cta-safe-highlight);
  font-weight:750;
  overflow-wrap:anywhere;
  opacity:.94;
}
.hh-cta-service-card__action{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.6rem;
  margin-top:auto;
  padding-top:.78rem;
  color:var(--hh-cta-safe-highlight);
  font-size:.74rem;
  font-weight:900;
}
.hh-cta-service-card__action::before{
  content:"";
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  height:4px;
  background:var(--hh-service-card-accent);
}
.hh-cta-service-card__action>span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:50%;
  background:var(--hh-service-card-accent);
  color:var(--hh-service-card-on-accent);
  font-size:1rem;
  transition:transform .18s ease;
}
.hh-cta-service-card:hover .hh-cta-service-card__action>span{transform:translateX(2px)}

/* Layout-specific collection balance. */
.hh-cta--layout-checklist_panel .hh-cta-service-collection{
  grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));
}

/*
 * Desktop/tablet collection cards use a controlled image header.
 * The former 96px full-height image rail allowed tall source images
 * to determine the height of the entire grid row.
 */
@media(min-width:720px){
  .hh-cta--layout-checklist_panel .hh-cta-service-card{
    grid-template-columns:1fr;
    grid-template-rows:auto 1fr;
    align-self:start;
  }
  .hh-cta--layout-checklist_panel .hh-cta-service-card__media{
    width:100%;
    height:clamp(156px,12vw,210px);
    min-height:0;
    aspect-ratio:auto;
  }
  .hh-cta--layout-checklist_panel .hh-cta-service-card__image,
  .hh-cta--layout-checklist_panel .hh-cta-service-card__fallback{
    width:100%;
    height:100%;
    min-height:0;
    aspect-ratio:auto;
    object-fit:cover;
    object-position:center;
  }
  .hh-cta--layout-checklist_panel .hh-cta-service-card__content{
    min-height:218px;
    padding:clamp(.8rem,1.45vw,1rem);
  }
  .hh-cta--layout-checklist_panel .hh-cta-service-card__status{
    top:.65rem;
    left:.65rem;
    max-width:calc(100% - 1.3rem);
    padding:.3rem .56rem;
    font-size:.62rem;
  }
  .hh-cta--layout-checklist_panel .hh-cta-service-card__type{
    display:inline-flex;
    width:max-content;
    max-width:100%;
    padding:.2rem .42rem;
    border-radius:999px;
    background:color-mix(in srgb,var(--hh-service-card-accent) 15%,transparent);
    color:var(--hh-cta-safe-highlight);
  }
}

.hh-cta--layout-wide_banner .hh-cta-service-collection,
.hh-cta--layout-stats_strip .hh-cta-service-collection{
  grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));
}
.hh-cta--layout-wide_banner .hh-cta-service-card__media,
.hh-cta--layout-stats_strip .hh-cta-service-card__media{min-height:104px}
.hh-cta--layout-wide_banner .hh-cta-service-card__image,
.hh-cta--layout-wide_banner .hh-cta-service-card__fallback,
.hh-cta--layout-stats_strip .hh-cta-service-card__image,
.hh-cta--layout-stats_strip .hh-cta-service-card__fallback{min-height:104px}

.hh-cta--layout-minimal .hh-cta-service-card{
  border-radius:4px;
  box-shadow:none;
}
.hh-cta--layout-minimal .hh-cta-service-card__media{display:none}
.hh-cta--layout-minimal .hh-cta-service-card__content{padding:.72rem;border-left:5px solid var(--hh-service-card-accent)}

.hh-cta--layout-price_focus .hh-cta-service-card__price.is-sale{
  padding:.3rem .42rem;
  border-radius:6px;
  background:var(--hh-service-card-accent);
  color:var(--hh-service-card-on-accent);
}
.hh-cta--layout-price_focus .hh-cta-service-card__price.is-sale strong,
.hh-cta--layout-price_focus .hh-cta-service-card__price.is-sale small,
.hh-cta--layout-price_focus .hh-cta-service-card__price.is-sale .hh-cta-service-card__price-before{
  color:inherit;
  opacity:1;
}

@media(max-width:719px){
  .hh-cta-service-collection{grid-template-columns:1fr;gap:.62rem}
  .hh-cta-service-card{
    grid-template-columns:112px minmax(0,1fr);
    grid-template-rows:1fr;
    min-height:150px;
  }
  .hh-cta-service-card__media,
  .hh-cta-service-card__image,
  .hh-cta-service-card__fallback{
    width:112px;
    min-height:100%;
    height:100%;
    aspect-ratio:auto;
  }
  .hh-cta-service-card__content{padding:.7rem}
  .hh-cta-service-card__status{top:.38rem;left:.38rem;max-width:calc(100% - .76rem);padding:.22rem .38rem;font-size:.52rem}
  .hh-cta-service-card__title{font-size:1rem}
  .hh-cta-service-card__facts{gap:.22rem;margin-top:.5rem}
  .hh-cta-service-card__fact{grid-template-columns:minmax(62px,auto) minmax(0,1fr);gap:.46rem;font-size:.69rem}
  .hh-cta-service-card__fact-label{min-height:22px;padding:.16rem .4rem;font-size:.56rem}
  .hh-cta-service-card__action{padding-top:.55rem;font-size:.7rem}
  .hh-cta-service-card__action>span{width:25px;height:25px}
  .hh-cta--layout-checklist_panel .hh-cta-service-card{grid-template-columns:92px minmax(0,1fr)}
  .hh-cta--layout-checklist_panel .hh-cta-service-card__media,
  .hh-cta--layout-checklist_panel .hh-cta-service-card__image,
  .hh-cta--layout-checklist_panel .hh-cta-service-card__fallback{width:92px}
}
@media(max-width:420px){
  .hh-cta-service-card{grid-template-columns:92px minmax(0,1fr)}
  .hh-cta-service-card__media,
  .hh-cta-service-card__image,
  .hh-cta-service-card__fallback{width:92px}
  .hh-cta-service-card__fact:nth-child(n+3){display:none}
}
@media(prefers-reduced-motion:reduce){
  .hh-cta-service-card,
  .hh-cta-service-card__image,
  .hh-cta-service-card__action>span{transition:none}
  .hh-cta-service-card:hover{transform:none}
  .hh-cta-service-card:hover .hh-cta-service-card__image{transform:none}
}


/* Content Freedom: application pages keep sidebar CTAs below the app canvas. */
@media(min-width:1024px){
  .hh-page-shell--application.hh-page-shell--with-sidebar{
    grid-template-columns:minmax(0,1fr);
  }
  .hh-page-shell--application .hh-page-sidebar{
    position:static;
    top:auto;
  }
}
