/* Approved FRESCI button styling and feedback. */
.button-craft {
  --bc-label: #082435;
  --bc-link: #176376;
  --bc-border: #587682;
  --bc-focus: #176376;
  --bc-focus-gap: #fff;
}
/* Keep the work-card label on two intact lines. */
.button-craft .case-mark.bimmoh .mark-type {
  inline-size: max-content;
  max-inline-size: none;
  flex: 0 0 auto;
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
}
@media (min-width: 901px) and (max-width: 1100px) {
  .button-craft .case-mark.bimmoh { padding-inline: 8px; }
}
.button-craft .button,
.button-craft .video-consent button,
.button-craft .cookie-actions button {
  min-block-size: 50px;
  max-inline-size: 100%;
  padding: 13px 24px;
  gap: 10px;
  border-radius: 7px;
  font: 600 1.0625rem/1.4 var(--font, 'Avenir Next', system-ui, sans-serif);
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: center;
  box-shadow: 0 2px 5px #08243510;
  transform: none;
  transition: background-color 200ms ease-out, border-color 200ms ease-out, color 200ms ease-out, box-shadow 200ms ease-out, transform 120ms ease-out;
}
.button-craft .button svg { inline-size: 20px; block-size: 20px; flex-shrink: 0; }
.button-craft .button.small { min-block-size: 48px; font-size: .9375rem; padding: 11px 18px; }
.button-craft .button.primary { background: #0f2c3f; border-color: #0f2c3f; color: #fff; }
.button-craft .button.secondary { background: #fff; border-color: var(--bc-border); color: var(--bc-label); }
.button-craft.testing-variant .hero .button.secondary { background: #082435; color: #fff; border-color: #b7edf3; }
.button-craft.testing-variant .hero-actions .button { font-size: 1.0625rem; padding: 13px 24px; min-block-size: 50px; gap: 10px; }
.button-craft.testing-variant .site-header .header-cta,
.button-craft.testing-variant .mobile-panel .button.primary {
  background: #ea2b87;
  border-color: #ea2b87;
  color: #fff;
  font-size: 1.25rem;
  font-weight: 700;
  min-block-size: 50px;
  padding: 10px 18px;
}
.button-craft.testing-variant .site-header { height: auto; min-block-size: 64px; }
.button-craft .header-inner { min-block-size: 64px; padding-block: 6px; }
.button-craft .header-cta { flex-shrink: 1; }
/* The exact approved pink remains. Its 4.0432:1 white-label contrast qualifies
   with this 20px/700 large label; normal-size white text would not pass. */
.button-craft .text-link { min-block-size: 44px; padding-block: 6px; gap: 10px; color: var(--bc-link); }
.button-craft.testing-variant :is(.hero, .service-card.is-dark, .process-section, .site-footer, .expertise) .text-link { color: #b7edf3; }
.button-craft.testing-variant .responsibility .text-link { color: #082435; }
.button-craft .text-link svg { inline-size: 20px; block-size: 20px; }
.button-craft :is(.insight-filter, .filter-button, .topic-button) {
  min-block-size: 44px;
  padding: 10px 15px;
  font-size: .875rem;
  font-weight: 600;
  line-height: 1.4;
  border-color: #587682;
  background: #fff;
  color: #176376;
  white-space: normal;
  transition: background-color 200ms ease-out, color 200ms ease-out, transform 120ms ease-out;
}
.button-craft :is(.insight-filter.is-active, .filter-button[aria-pressed='true'], .topic-button[aria-pressed='true']) {
  background: #0f2c3f; color: #fff; border-color: #0f2c3f;
  text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px;
}
.button-craft :is(.icon-button, .mobile-toggle) { min-inline-size: 48px; min-block-size: 48px; }
.button-craft .dialog-header .icon-button { inline-size: 48px; block-size: 48px; }
.button-craft .library-search button { inline-size: 44px; block-size: 44px; top: 3px; }
.button-craft :is(.desktop-nav > a, .nav-services, .cookie-link, .footer-legal-options a, .footer-legal-options button) { min-block-size: 44px; }
.button-craft .desktop-nav > a { display: inline-flex; align-items: center; }
.button-craft :is(.cookie-link, .footer-legal-options a, .footer-legal-options button) { display: inline-flex; align-items: center; padding-block: 8px; }
.button-craft .video-consent button { border-color: #176376; background: #fff; color: #176376; padding-inline: 16px; font-size: .9375rem; }
.button-craft .cookie-actions button { background: #fff; color: #082435; border-color: #587682; font-size: 1rem; box-shadow: none; }
.button-craft .cookie-actions .cookie-save { background: #0f2c3f; color: #fff; border-color: #0f2c3f; }
.button-craft :is(.hero, .site-header, .service-card.is-dark, .process-section, .site-footer, .expertise, .cta-section) { --bc-focus: #b7edf3; --bc-focus-gap: #082435; }
.button-craft .brief-form { --bc-focus: #176376; --bc-focus-gap: #fff; }
.button-craft .mobile-panel { --bc-focus: #176376; --bc-focus-gap: #fff; }
.button-craft .service-menu { --bc-focus: #176376; --bc-focus-gap: #f7fbfc; }
.button-craft :is(.button, .text-link, button, a, .footer-legal-options a, .desktop-nav > a):focus-visible {
  outline: 3px solid var(--bc-focus);
  outline-offset: 3px;
  box-shadow: 0 0 0 3px var(--bc-focus-gap);
}
.button-craft #enquiry-form :is(input, select, textarea):focus-visible,
.button-craft .insight-search:focus-within {
  outline: 3px solid #176376;
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #fff;
}
@media (hover: hover) and (pointer: fine) {
  .button-craft .button:hover { transform: none; box-shadow: 0 5px 12px #08243522; }
  .button-craft .button.primary:hover { background: #1a5870; }
  .button-craft.testing-variant .hero .button.primary:hover { background: #b7edf3; color: #082435; }
  .button-craft .button.secondary:hover { background: #e8f7f8; border-color: #176376; }
  .button-craft.testing-variant .hero .button.secondary:hover { background: #164457; border-color: #b7edf3; color: #fff; }
  .button-craft.testing-variant .site-header .header-cta:hover,
  .button-craft.testing-variant .mobile-panel .button.primary:hover { background: #ea2b87; color: #fff; box-shadow: 0 4px 12px #08243544; }
  .button-craft :is(.insight-filter, .filter-button, .topic-button):hover { background: #e8f7f8; color: #082435; }
  .button-craft :is(.insight-filter.is-active, .filter-button[aria-pressed='true'], .topic-button[aria-pressed='true']):hover { background: #164457; color: #fff; }
  .button-craft :is(.video-consent button, .cookie-actions button):hover { border-color: #176376; background: #e8f7f8; color: #082435; }
  .button-craft .cookie-actions .cookie-save:hover { background: #1a5870; color: #fff; }
}
@media (hover: none), (pointer: coarse) {
  .button-craft .button:hover { transform: none; box-shadow: 0 2px 5px #08243510; }
  .button-craft .button.primary:hover { background: #0f2c3f; color: #fff; }
  .button-craft .button.secondary:hover { background: #fff; color: #082435; border-color: #587682; }
  .button-craft.testing-variant .hero .button.primary:hover { background: #4fbdd0; color: #082435; }
  .button-craft.testing-variant .hero .button.secondary:hover { background: #082435; color: #fff; border-color: #b7edf3; }
  .button-craft.testing-variant .site-header .header-cta:hover,
  .button-craft.testing-variant .mobile-panel .button.primary:hover { background: #ea2b87; color: #fff; }
  .button-craft :is(.insight-filter, .filter-button, .topic-button):hover:not([aria-pressed='true']) { background: #fff; color: #176376; }
}
.button-craft :is(button, .button):disabled { opacity: 1; background: #e0e8eb; border-color: #9aaeb7; color: #536a75; box-shadow: none; cursor: not-allowed; transform: none; }
.button-craft :is(.button, .video-consent button, .cookie-actions button, .insight-filter, .filter-button, .topic-button):active:not(:disabled) { transform: translateY(1px); box-shadow: none; }
@media (max-width: 560px) {
  .button-craft.testing-variant .hero-actions { grid-template-columns: minmax(0, 1fr); flex-direction: column; align-items: stretch; }
  .button-craft.testing-variant .hero-actions .button { inline-size: 100%; flex: auto; min-block-size: 52px; font-size: 1rem; }
  .button-craft .video-consent { padding: 14px; }
  .button-craft .video-consent button { inline-size: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .button-craft :is(.button, button, .text-link) { transition: none !important; transform: none !important; }
}
@media (forced-colors: active) {
  .button-craft :is(.button, .video-consent button, .cookie-actions button, .insight-filter, .filter-button, .topic-button, .icon-button) { background: ButtonFace !important; color: ButtonText !important; border: 1px solid ButtonText !important; box-shadow: none !important; }
  .button-craft :is(button, a, input, select, textarea):focus-visible,
  .button-craft .insight-search:focus-within { outline: 3px solid Highlight !important; box-shadow: none !important; }
  .button-craft :is(.insight-filter.is-active, [aria-pressed='true']) { border: 2px solid Highlight !important; text-decoration: underline; }
  .button-craft button:disabled { color: GrayText !important; border-color: GrayText !important; }
}
