/* Heart House semantic colour layer.
   Seasonal palettes establish the base; exact Colour Studio values override these tokens. */
:root{
  --hh-heading:var(--hh-navy);
  --hh-border-strong:#b7c4d0;
  --hh-link:var(--hh-brand-dark);
  --hh-link-visited:#7a315e;
  --hh-link-hover:var(--hh-brand);
  --hh-link-active:var(--hh-brand-dark);
  --hh-selection-bg:var(--hh-brand);
  --hh-selection-text:#fff;

  --hh-hero-from:var(--hh-navy);
  --hh-hero-to:var(--hh-blue);
  --hh-hero-text:#fff;
  --hh-hero-muted:rgba(255,255,255,.86);
  --hh-hero-eyebrow:color-mix(in srgb,var(--hh-brand) 55%,#fff);

  --hh-utility-bg:var(--hh-navy);
  --hh-utility-text:#dbe7f2;
  --hh-utility-link:#dbe7f2;
  --hh-utility-link-hover:#fff;
  --hh-header-dark-bg:var(--hh-navy);
  --hh-header-dark-text:#fff;
  --hh-header-light-bg:#fff;
  --hh-header-light-text:var(--hh-navy);
  --hh-header-border:rgba(6,20,38,.08);
  --hh-nav-hover-bg:var(--hh-surface-soft);
  --hh-nav-hover-text:var(--hh-brand-dark);
  --hh-nav-active-bg:var(--hh-surface-soft);
  --hh-nav-active-text:var(--hh-brand-dark);
  --hh-dropdown-bg:#fff;
  --hh-dropdown-text:var(--hh-navy);
  --hh-dropdown-border:var(--hh-border);
  --hh-drawer-bg:#fff;
  --hh-drawer-text:var(--hh-navy);

  --hh-footer-bg:var(--hh-navy);
  --hh-footer-text:#d9e4ef;
  --hh-footer-muted:#b9c8d5;
  --hh-footer-heading:#fff;
  --hh-footer-link:#c8d5e0;
  --hh-footer-link-hover:#fff;
  --hh-footer-border:rgba(255,255,255,.14);
  --hh-footer-secondary-bg:color-mix(in srgb,var(--hh-navy) 91%,#000);
  --hh-social-bg:transparent;
  --hh-social-text:#fff;
  --hh-social-border:rgba(255,255,255,.18);
  --hh-social-hover-bg:rgba(255,255,255,.1);
  --hh-social-hover-text:#fff;

  --hh-location-band-bg:var(--hh-blue);
  --hh-location-heading:#fff;
  --hh-location-text:#d9e4ef;
  --hh-location-kicker:color-mix(in srgb,var(--hh-brand) 48%,#fff);
  --hh-location-landmark:#fff;
  --hh-location-link-bg:rgba(255,255,255,.05);
  --hh-location-link-text:#fff;
  --hh-location-link-border:rgba(255,255,255,.16);
  --hh-location-link-hover-bg:rgba(255,255,255,.1);
  --hh-location-link-hover-text:#fff;
  --hh-location-card-bg:rgba(6,20,38,.94);
  --hh-location-card-text:#d9e4ef;
  --hh-location-card-heading:#fff;
  --hh-location-card-accent:color-mix(in srgb,var(--hh-brand) 48%,#fff);
  --hh-location-card-border:rgba(255,255,255,.2);

  --hh-button-primary-bg:var(--hh-brand);
  --hh-button-primary-text:#fff;
  --hh-button-primary-hover-bg:var(--hh-brand-dark);
  --hh-button-primary-hover-text:#fff;
  --hh-button-action-bg:var(--hh-green);
  --hh-button-action-text:#fff;
  --hh-button-action-hover-bg:color-mix(in srgb,var(--hh-green) 82%,#000);
  --hh-button-action-hover-text:#fff;
  --hh-button-secondary-bg:#fff;
  --hh-button-secondary-text:var(--hh-navy);
  --hh-button-secondary-border:var(--hh-border);
  --hh-button-secondary-hover-bg:var(--hh-surface-soft);
  --hh-button-promo-bg:var(--hh-promo);
  --hh-button-promo-text:#fff;
  --hh-button-promo-hover-bg:color-mix(in srgb,var(--hh-promo) 82%,#000);
  --hh-button-danger-bg:var(--hh-danger);
  --hh-button-danger-text:#fff;
  --hh-button-danger-hover-bg:color-mix(in srgb,var(--hh-danger) 82%,#000);

  --hh-card-bg:var(--hh-surface);
  --hh-card-border:var(--hh-border);
  --hh-card-footer-bg:color-mix(in srgb,var(--hh-page) 55%,#fff);
  --hh-input-bg:#fff;
  --hh-input-text:var(--hh-text);
  --hh-input-border:var(--hh-border);
  --hh-input-focus-border:var(--hh-focus);
  --hh-input-placeholder:color-mix(in srgb,var(--hh-muted) 76%,transparent);
  --hh-control-selected-bg:var(--hh-surface-soft);
  --hh-control-selected-text:var(--hh-navy);
  --hh-control-disabled-bg:#edf1f4;
  --hh-control-disabled-text:#76838f;

  --hh-cta-card-bg:var(--hh-surface);
  --hh-cta-card-border:var(--hh-border);
  --hh-cta-banner-from:var(--hh-navy);
  --hh-cta-banner-to:var(--hh-blue);
  --hh-cta-banner-text:#fff;
  --hh-cta-promo-bg:var(--hh-promo-soft);
  --hh-cta-promo-text:var(--hh-text);
  --hh-cta-promo-accent:var(--hh-promo);
  --hh-cta-alert-bg:var(--hh-surface);
  --hh-cta-alert-text:var(--hh-text);
  --hh-cta-alert-accent:var(--hh-brand);
  --hh-cta-dark-bg:var(--hh-navy);
  --hh-cta-dark-text:#fff;
  --hh-footer-cta-from:var(--hh-surface-soft);
  --hh-footer-cta-to:var(--hh-promo-soft);
  --hh-footer-cta-heading:var(--hh-navy);
  --hh-footer-cta-text:var(--hh-muted);

  --hh-success-bg:#e4f6eb;
  --hh-success-text:#0d673a;
  --hh-warning-bg:#fff3d6;
  --hh-warning-text:#805200;
  --hh-danger-bg:#fde8ea;
  --hh-danger-text:#8f1e2b;
  --hh-info-bg:#e8f1ff;
  --hh-info-text:#164f9b;
}

::selection{background:var(--hh-selection-bg);color:var(--hh-selection-text)}
body{background:var(--hh-page);color:var(--hh-text)}
:where(h1,h2,h3,h4,h5,h6,.hh-section-title,.entry-content h2,.entry-content h3){color:var(--hh-heading)}
:where(.entry-content,.hh-content-card) a:not(.hh-button):not(.wp-block-button__link):link{color:var(--hh-link)}
:where(.entry-content,.hh-content-card) a:not(.hh-button):not(.wp-block-button__link):visited{color:var(--hh-link-visited)}
:where(.entry-content,.hh-content-card) a:not(.hh-button):not(.wp-block-button__link):hover{color:var(--hh-link-hover)}
:where(.entry-content,.hh-content-card) a:not(.hh-button):not(.wp-block-button__link):active{color:var(--hh-link-active)}
:focus-visible{outline-color:color-mix(in srgb,var(--hh-focus) 70%,transparent)}

.hh-page-hero{background:linear-gradient(135deg,var(--hh-hero-from),var(--hh-hero-to));color:var(--hh-hero-text)}
.hh-page-hero .hh-page-title{color:var(--hh-hero-text)}
.hh-page-hero .hh-page-intro{color:var(--hh-hero-muted)}
.hh-page-hero .hh-eyebrow{color:var(--hh-hero-eyebrow)}

.hh-utility-bar{background:var(--hh-utility-bg);color:var(--hh-utility-text)}
.hh-utility-nav a{color:var(--hh-utility-link)}
.hh-utility-nav a:hover,.hh-utility-nav a:focus-visible{color:var(--hh-utility-link-hover)}
.hh-site-header{box-shadow:0 1px 0 var(--hh-header-border)}
.hh-header-style-dark .hh-main-header{background:color-mix(in srgb,var(--hh-header-dark-bg) 96%,transparent)}
.hh-header-style-dark .hh-brand-area .custom-logo-link,
.hh-header-style-dark .hh-brand-link,
.hh-header-style-dark .hh-primary-nav>ul>li>a,
.hh-header-style-dark .hh-menu-toggle{color:var(--hh-header-dark-text)}
.hh-header-style-light .hh-main-header{background:color-mix(in srgb,var(--hh-header-light-bg) 97%,transparent)}
.hh-header-style-light .hh-brand-area .custom-logo-link,
.hh-header-style-light .hh-brand-link,
.hh-header-style-light .hh-primary-nav>ul>li>a,
.hh-header-style-light .hh-menu-toggle{color:var(--hh-header-light-text)}
.hh-primary-nav>ul>li>a:hover,.hh-primary-nav>ul>li>a:focus-visible{background:var(--hh-nav-hover-bg);color:var(--hh-nav-hover-text)}
.hh-primary-nav>ul>.current-menu-item>a,.hh-primary-nav>ul>.current-menu-ancestor>a{background:var(--hh-nav-active-bg);color:var(--hh-nav-active-text)}
.hh-header-style-dark .hh-primary-nav>ul>li>a:hover,.hh-header-style-dark .hh-primary-nav>ul>li>a:focus-visible{background:var(--hh-nav-hover-bg);color:var(--hh-nav-hover-text)}
.hh-header-style-dark .hh-primary-nav>ul>.current-menu-item>a,.hh-header-style-dark .hh-primary-nav>ul>.current-menu-ancestor>a{background:var(--hh-nav-active-bg);color:var(--hh-nav-active-text)}
.hh-primary-nav .sub-menu{border-color:var(--hh-dropdown-border);background:var(--hh-dropdown-bg)}
.hh-primary-nav .sub-menu a{color:var(--hh-dropdown-text)}
.hh-primary-nav .sub-menu a:hover,.hh-primary-nav .sub-menu a:focus-visible{background:var(--hh-nav-hover-bg);color:var(--hh-nav-hover-text)}

.hh-site-footer{background:var(--hh-footer-bg);color:var(--hh-footer-text)}
.hh-footer-title,.hh-footer-slogan,.hh-footer-heading,.hh-footer-logo>a{color:var(--hh-footer-heading)}
.hh-footer-description,.hh-footer-location-text{color:var(--hh-footer-muted)}
.hh-footer-nav a,.hh-footer-company a,.hh-footer-legal a{color:var(--hh-footer-link)}
.hh-footer-nav a:hover,.hh-footer-company a:hover,.hh-footer-legal a:hover,
.hh-footer-contact-link:hover,.hh-footer-map-link:hover{color:var(--hh-footer-link-hover)}
.hh-footer-contact-link{color:var(--hh-footer-link-hover)}
.hh-footer-main,.hh-footer-map-band,.hh-footer-secondary{border-color:var(--hh-footer-border)}
.hh-footer-secondary{background:var(--hh-footer-secondary-bg)}
.hh-social-link{border-color:var(--hh-social-border);background:var(--hh-social-bg);color:var(--hh-social-text)}
.hh-social-link:hover{background:var(--hh-social-hover-bg);color:var(--hh-social-hover-text)}

.hh-button--primary,.wp-block-button__link,
:where(.mstp-training-btn,.mstp-request-btn,.mstp-open-program,.mstp-primary-btn,.mstp-submit,.mstp-btn-primary,.mstp-portal-btn){
  background:var(--hh-button-primary-bg);color:var(--hh-button-primary-text)
}
.hh-button--primary:hover,.wp-block-button__link:hover,
:where(.mstp-training-btn,.mstp-request-btn,.mstp-open-program,.mstp-primary-btn,.mstp-submit,.mstp-btn-primary,.mstp-portal-btn):hover{
  background:var(--hh-button-primary-hover-bg);color:var(--hh-button-primary-hover-text)
}
.hh-button--action,:where(.mstp-view-details,.mstp-open-btn,.mstp-go-btn){background:var(--hh-button-action-bg)!important;color:var(--hh-button-action-text)!important}
.hh-button--action:hover,:where(.mstp-view-details,.mstp-open-btn,.mstp-go-btn):hover{background:var(--hh-button-action-hover-bg)!important;color:var(--hh-button-action-hover-text)!important}
.hh-button--secondary{background:var(--hh-button-secondary-bg);border-color:var(--hh-button-secondary-border);color:var(--hh-button-secondary-text)}
.hh-button--secondary:hover{background:var(--hh-button-secondary-hover-bg);color:var(--hh-button-secondary-text)}
.hh-button--promo{background:var(--hh-button-promo-bg);color:var(--hh-button-promo-text)}
.hh-button--promo:hover{background:var(--hh-button-promo-hover-bg);color:var(--hh-button-promo-text)}
.hh-button--danger{background:var(--hh-button-danger-bg);color:var(--hh-button-danger-text)}
.hh-button--danger:hover{background:var(--hh-button-danger-hover-bg);color:var(--hh-button-danger-text)}

.hh-content-card,.hh-card,
:where(.mstp-request-card,.mstp-training-card,.mstp-birthday-card,.mstp-portal-card,.mstp-player-card,.mstp-service-card){
  background:var(--hh-card-bg);border-color:var(--hh-card-border)
}
.hh-card__footer{background:var(--hh-card-footer-bg)}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),select,textarea){
  background:var(--hh-input-bg);border-color:var(--hh-input-border);color:var(--hh-input-text)
}
:where(input,select,textarea):focus{border-color:var(--hh-input-focus-border)}
:where(input,textarea)::placeholder{color:var(--hh-input-placeholder)}
:where(input,select,textarea,button):disabled{background:var(--hh-control-disabled-bg);color:var(--hh-control-disabled-text)}
:where(.is-selected,[aria-selected="true"],input[type="radio"]:checked+label,input[type="checkbox"]:checked+label){--hh-selected-bg:var(--hh-control-selected-bg);--hh-selected-text:var(--hh-control-selected-text)}

.hh-cta--style-card .hh-cta__frame{background:var(--hh-cta-card-bg);border-color:var(--hh-cta-card-border)}
.hh-cta--style-banner .hh-cta__frame{background:linear-gradient(135deg,var(--hh-cta-banner-from),var(--hh-cta-banner-to));color:var(--hh-cta-banner-text)}
.hh-cta--style-promo .hh-cta__frame{background:linear-gradient(135deg,var(--hh-cta-promo-bg),var(--hh-surface));border-color:var(--hh-cta-promo-accent);color:var(--hh-cta-promo-text)}
.hh-cta--style-alert .hh-cta__frame{background:var(--hh-cta-alert-bg);border-color:var(--hh-card-border);border-left-color:var(--hh-cta-alert-accent);color:var(--hh-cta-alert-text)}
.hh-cta--style-dark .hh-cta__frame{background:var(--hh-cta-dark-bg);color:var(--hh-cta-dark-text)}
.hh-footer-cta{background:linear-gradient(135deg,var(--hh-footer-cta-from),var(--hh-footer-cta-to))}
.hh-footer-cta h2{color:var(--hh-footer-cta-heading)}
.hh-footer-cta p:last-child{color:var(--hh-footer-cta-text)}

.hh-status--confirmed,.hh-status--success,.hh-alert--success{background:var(--hh-success-bg);color:var(--hh-success-text)}
.hh-status--pending,.hh-status--warning,.hh-alert--warning{background:var(--hh-warning-bg);color:var(--hh-warning-text)}
.hh-status--danger,.hh-error{background:var(--hh-danger-bg);color:var(--hh-danger-text)}
.hh-status--info{background:var(--hh-info-bg);color:var(--hh-info-text)}

@media(max-width:1023px){
  .hh-primary-nav{background:var(--hh-drawer-bg);color:var(--hh-drawer-text)}
  .hh-header-style-dark .hh-primary-nav{background:var(--hh-drawer-bg)}
  .hh-header-style-dark .hh-primary-nav>ul>li>a,
  .hh-primary-nav>ul>li>a{color:var(--hh-drawer-text)}
}


/* CTA-specific accessible action colours override global button tokens. */
.hh-cta .hh-button--primary,
.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);
}
.hh-cta .hh-button--secondary,
.hh-cta .hh-button--secondary:hover,
.hh-cta .hh-button--secondary:focus-visible{
  border-color:color-mix(in srgb,var(--hh-cta-highlight-text) 62%,transparent);
  background:transparent;
  color:var(--hh-cta-highlight-text);
}
