/* Aluminiumfenster24 / Alu-Windows24 — shared public button alignment. */
:root {
  --af24-button-min-height: 44px;
  --af24-button-radius: 999px;
  --af24-button-gap: 10px;
  --af24-button-focus: var(--focus-ring, #23a0e0);
}

/* Text CTAs: center the complete label/icon group without moving the button itself. */
:where(
  a.btn,
  button.btn,
  a.button,
  button.button,
  input[type="submit"],
  input[type="button"],
  button[type="submit"],
  .site-shell__cta,
  .chat-fab,
  .brochure-link,
  .cad-file__link,
  .tech-more,
  .awp-link,
  .dwg-request__button,
  .comparison-security-cta,
  .window-anatomy-promo__button,
  .material-comparison-visual__button,
  .material-compare-card__button,
  .technical-back-link,
  .technical-detail-link,
  .reynaers-system__link,
  .door-system-card__link,
  .cw-system__links a,
  .aw-system-card__body > a,
  .sliding-product__details > summary,
  .project-close__cta
) {
  align-items: center !important;
  justify-content: center !important;
  min-height: var(--af24-button-min-height);
  gap: var(--af24-button-gap) !important;
  text-align: center !important;
  line-height: 1.24 !important;
  vertical-align: middle;
  text-wrap: balance;
}

:where(
  a.btn,
  button.btn,
  a.button,
  button.button,
  button[type="submit"],
  .site-shell__cta,
  .chat-fab,
  .brochure-link,
  .cad-file__link,
  .tech-more,
  .awp-link,
  .dwg-request__button,
  .window-anatomy-promo__button,
  .material-comparison-visual__button,
  .material-compare-card__button,
  .technical-back-link,
  .technical-detail-link,
  .reynaers-system__link,
  .door-system-card__link,
  .cw-system__links a,
  .aw-system-card__body > a,
  .sliding-product__details > summary,
  .project-close__cta
) {
  display: inline-flex !important;
}

:where(
  .button--full
) {
  width: 100%;
}

/* Product-detail controls must read as compact actions, not full-width bars. */
:where(
  .reynaers-system__link,
  .technical-detail-link
) {
  width: fit-content !important;
  max-width: 100%;
  min-height: 44px !important;
  margin-inline: auto !important;
  padding: 6px 16px !important;
  align-self: center !important;
  font-size: .82rem !important;
}

:where(
  .reynaers-system__link,
  .technical-detail-link
) > span[aria-hidden="true"] {
  width: 28px !important;
  height: 28px !important;
  flex: 0 0 28px !important;
  margin: 0 !important;
  display: grid !important;
  place-items: center !important;
  font-size: .9rem !important;
}

.sliding-product__details > summary {
  width: fit-content !important;
  max-width: min(100%, 360px);
  min-height: 48px !important;
  margin: 18px auto 0 !important;
  padding: 9px 10px 9px 18px !important;
  gap: 12px !important;
  border: 1px solid var(--accent, #0f6fa8) !important;
  border-radius: var(--af24-button-radius) !important;
  color: #fff !important;
  background: var(--accent, #0f6fa8) !important;
  box-shadow: 0 8px 22px color-mix(in srgb, var(--accent, #0f6fa8) 18%, transparent);
  font-size: clamp(.84rem, 1.1vw, .95rem) !important;
  font-weight: 750 !important;
  letter-spacing: -.005em !important;
}

.sliding-product__details > summary > span {
  width: 30px !important;
  height: 30px !important;
  flex: 0 0 30px !important;
  margin: 0 !important;
  border-color: rgba(255, 255, 255, .34) !important;
  color: #fff !important;
  background: rgba(255, 255, 255, .10);
  font-size: 1rem !important;
}

.sliding-product__details > summary:hover,
.sliding-product__details > summary:focus-visible {
  background: var(--accent-strong, #095680) !important;
  border-color: var(--accent-strong, #095680) !important;
  box-shadow: 0 10px 26px color-mix(in srgb, var(--accent, #0f6fa8) 24%, transparent);
}

/* Keep trailing icons centered as part of the label instead of pushing them to an edge. */
:where(
  a.btn,
  button.btn,
  a.button,
  button.button,
  .site-shell__cta,
  .chat-fab,
  .brochure-link,
  .cad-file__link,
  .tech-more,
  .awp-link,
  .dwg-request__button,
  .window-anatomy-promo__button,
  .material-comparison-visual__button,
  .material-compare-card__button,
  .technical-back-link,
  .technical-detail-link,
  .reynaers-system__link,
  .door-system-card__link,
  .cw-system__links a,
  .sliding-product__details > summary
) > :where(svg, iconify-icon, [aria-hidden="true"], .icon, .arrow) {
  flex: 0 0 auto;
  margin: 0 !important;
}

/* Compact controls with visible text. */
:where(
  .filter-button,
  .copy-button,
  .rc-sim__tab,
  .studio-tab,
  .win-toggle,
  .win-dk-toggle,
  .contact-captcha__refresh,
  .reset-button,
  .complete-element-button,
  .back-phase
) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 40px;
  gap: 8px !important;
  text-align: center !important;
  line-height: 1.2 !important;
}

/* Icon-only controls retain their size and layout but center the glyph exactly. */
:where(
  .site-shell__tool,
  .site-shell__burger,
  .download-action,
  .project-tile__zoom,
  .reynaers-system__product-zoom,
  .reynaers-product__zoom,
  .curtain-product__zoom-hit,
  .quote-preview-zoom-button,
  .preview-opening-info-button,
  .project-lightbox__close,
  .reynaers-image-modal__close,
  .reynaers-door-lightbox__close,
  .video-modal__close,
  .color-zoom-modal__close,
  .tech-pin,
  .hotspot,
  .thumb
) {
  align-items: center !important;
  justify-content: center !important;
  place-items: center !important;
  text-align: center !important;
  line-height: 1 !important;
}

:where(
  a.btn,
  button.btn,
  a.button,
  button.button,
  input[type="submit"],
  input[type="button"],
  button[type="submit"],
  .site-shell__cta,
  .chat-fab,
  .brochure-link,
  .cad-file__link,
  .tech-more,
  .awp-link,
  .dwg-request__button,
  .window-anatomy-promo__button,
  .material-comparison-visual__button,
  .material-compare-card__button,
  .technical-back-link,
  .technical-detail-link,
  .reynaers-system__link,
  .door-system-card__link,
  .cw-system__links a,
  .sliding-product__details > summary,
  .filter-button,
  .copy-button,
  .rc-sim__tab,
  .studio-tab
):focus-visible {
  outline: 3px solid var(--af24-button-focus) !important;
  outline-offset: 3px !important;
}

@media (max-width: 600px) {
  :where(
    .btn--lg,
    .button--full,
    .window-anatomy-promo__button,
    .material-compare-card__button
  ) {
    min-height: 50px !important;
    padding-inline: 18px !important;
    white-space: normal !important;
    text-align: center !important;
  }

  :where(
    .reynaers-system__link,
    .technical-detail-link,
    .sliding-product__details > summary
  ) {
    width: fit-content !important;
    max-width: 100%;
    min-height: 46px !important;
    padding: 9px 14px !important;
    white-space: normal !important;
    text-align: center !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  :where(
    a.btn,
    button.btn,
    a.button,
    button.button,
    .site-shell__cta,
    .technical-detail-link,
    .reynaers-system__link,
    .filter-button
  ) {
    transition: none !important;
  }
}

/* The window catalogs have older high-specificity spacing rules. */
.window-catalog-modern .reynaers-system__side--visual .reynaers-system__link,
.window-catalog-modern .reynaers-system__side--visual .technical-detail-link {
  width: fit-content !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 44px !important;
  margin-inline: auto !important;
  padding: 6px 16px !important;
  align-self: center !important;
  justify-content: center !important;
  text-align: center !important;
  font-size: .82rem !important;
}

.window-catalog-modern .reynaers-system__side--visual .reynaers-system__link > span[aria-hidden="true"],
.window-catalog-modern .reynaers-system__side--visual .technical-detail-link > span[aria-hidden="true"] {
  width: 28px !important;
  height: 28px !important;
  flex: 0 0 28px !important;
  margin: 0 !important;
  display: grid !important;
  place-items: center !important;
  font-size: .9rem !important;
}

/* Configurator: center real actions while preserving the information hierarchy
   of step tabs, accordions and project selection cards. */
:where(
  #topStepNext,
  [data-preview-side],
  [data-preview-dimension],
  [data-free-editor-action],
  [data-step-next],
  #toPhaseTwo,
  #copyConfig,
  #resetConfig,
  #clearProjectCart,
  #startNewSavedProject,
  #windowListImportReset,
  #windowListImportAddAll,
  [data-project-overview-factor-apply],
  [data-project-overview-factor-reset],
  #focusProjectCustomerData,
  #saveCustomerProjectRecord,
  #printQuote,
  .preview-dimension-editor__apply,
  .preview-dimension-editor__center,
  .project-cart-save,
  .quote-preview-button,
  .project-admin-calculation-open,
  .project-details-back,
  .quote-toolbar-primary,
  .quote-toolbar-admin
) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  min-height: 40px;
  text-align: center !important;
  line-height: 1.2 !important;
}

:where(
  .header-icon-action,
  #previewWindowDimensionInfoButton,
  #windowDimensionInfoButton,
  #handleHeightMeasureButton,
  .preview-dimension-editor__close,
  #closeProjectCart,
  #closeSavedProjectRecords,
  #closeWindowListImport,
  #closeProjectDetails,
  #closeQuotePreview,
  #closeProjectAdminCalculation,
  #closeFreeFieldOpeningDialog
) {
  align-items: center !important;
  justify-content: center !important;
  place-items: center !important;
  text-align: center !important;
  line-height: 1 !important;
}

/* These controls are information-rich, so their inner badge/icon is centered
   while the descriptive copy remains deliberately left aligned. */
.section-toggle,
.phase-tabs > button,
.project-window-list-import,
.project-new-position,
.mobile-price {
  text-align: left !important;
}

.section-toggle > span > b,
.section-toggle > em,
.phase-tabs > button > span,
.project-window-list-import > i,
.project-new-position > i,
.project-window-list-import > b,
.project-new-position > b,
.mobile-price > b {
  align-items: center !important;
  justify-content: center !important;
  place-items: center !important;
  text-align: center !important;
}

:where(
  #topStepNext,
  [data-preview-side],
  [data-free-editor-action],
  [data-step-next],
  #toPhaseTwo,
  #copyConfig,
  #resetConfig,
  #clearProjectCart,
  #startNewSavedProject,
  #windowListImportReset,
  #windowListImportAddAll,
  [data-project-overview-factor-apply],
  [data-project-overview-factor-reset],
  #focusProjectCustomerData,
  #saveCustomerProjectRecord,
  #printQuote,
  .preview-dimension-editor__apply,
  .preview-dimension-editor__center,
  .project-cart-save,
  .quote-preview-button,
  .project-admin-calculation-open,
  .project-details-back,
  .quote-toolbar-primary,
  .quote-toolbar-admin,
  .header-icon-action
):focus-visible {
  outline: 3px solid var(--af24-button-focus) !important;
  outline-offset: 3px !important;
}

@media (max-width: 620px) {
  :where(
    [data-step-next],
    #toPhaseTwo,
    .preview-dimension-editor__apply,
    .preview-dimension-editor__center,
    .project-cart-save,
    .quote-preview-button,
    .project-admin-calculation-open,
    .project-details-back
  ) {
    width: 100%;
    min-height: 48px;
    white-space: normal !important;
  }
}
