@use '../../sass-utilities' as *;

@include pf-root($about-modal-box) {
    // Component variables
  --#{$about-modal-box}--BackgroundImage: none;
  --#{$about-modal-box}--BackgroundColor: var(--pf-t--global--background--color--floating--default);
  --#{$about-modal-box}--BackgroundSize--min-width: 200px;
  --#{$about-modal-box}--BackgroundSize--width: 60%;
  --#{$about-modal-box}--BackgroundSize--max-width: 600px;
  --#{$about-modal-box}--BackgroundSize: clamp(var(--#{$about-modal-box}--BackgroundSize--min-width), var(--#{$about-modal-box}--BackgroundSize--width), var(--#{$about-modal-box}--BackgroundSize--max-width));
  --#{$about-modal-box}--Height: 100%;
  --#{$about-modal-box}--lg--Height: #{pf-size-prem(762px)}; // Height is optimized for the exact height desired
  --#{$about-modal-box}--Width: 100%;
  --#{$about-modal-box}--sm--GridTemplateColumns: 5fr 1fr;
  --#{$about-modal-box}--lg--GridTemplateColumns: 1fr .6fr;

  // Brand
  --#{$about-modal-box}__brand--PaddingBlockStart: var(--pf-t--global--spacer--2xl);
  --#{$about-modal-box}__brand--PaddingInlineEnd: var(--pf-t--global--spacer--xl);
  --#{$about-modal-box}__brand--PaddingInlineStart: var(--pf-t--global--spacer--xl);
  --#{$about-modal-box}__brand--PaddingBlockEnd: var(--pf-t--global--spacer--xl);
  --#{$about-modal-box}__brand--sm--PaddingInlineEnd: var(--pf-t--global--spacer--3xl);
  --#{$about-modal-box}__brand--sm--PaddingInlineStart: var(--pf-t--global--spacer--3xl);
  --#{$about-modal-box}__brand--sm--PaddingBlockEnd: var(--pf-t--global--spacer--3xl);

  @media screen and (min-width: $pf-v6-global--breakpoint--sm) {
    --#{$about-modal-box}__brand--PaddingInlineEnd: var(--#{$about-modal-box}__brand--sm--PaddingInlineEnd);
    --#{$about-modal-box}__brand--PaddingInlineStart: var(--#{$about-modal-box}__brand--sm--PaddingInlineStart);
    --#{$about-modal-box}__brand--PaddingBlockEnd: var(--#{$about-modal-box}__brand--sm--PaddingBlockEnd);
  }

  // Close
  --#{$about-modal-box}__close--ZIndex: var(--pf-t--global--z-index--2xl);
  --#{$about-modal-box}__close--PaddingBlockStart: var(--pf-t--global--spacer--2xl);
  --#{$about-modal-box}__close--PaddingInlineEnd: var(--pf-t--global--spacer--xl);
  --#{$about-modal-box}__close--PaddingBlockEnd: var(--pf-t--global--spacer--xl);
  --#{$about-modal-box}__close--sm--PaddingBlockEnd: var(--pf-t--global--spacer--3xl);
  --#{$about-modal-box}__close--lg--PaddingInlineEnd: var(--pf-t--global--spacer--3xl);

  @media only screen and (min-width: $pf-v6-global--breakpoint--sm) {
    --#{$about-modal-box}__close--PaddingBlockEnd: var(--#{$about-modal-box}__close--sm--PaddingBlockEnd);
  }

  @media only screen and (min-width: $pf-v6-global--breakpoint--lg) {
    --#{$about-modal-box}__close--PaddingInlineEnd: var(--#{$about-modal-box}__close--lg--PaddingInlineEnd);
  }

  // Close Button
  --#{$about-modal-box}__close--c-button--FontSize: var(--pf-t--global--icon--size--lg);

  // Brand img
  --#{$about-modal-box}__brand-image--Height: #{pf-size-prem(37px)};

  // Header
  --#{$about-modal-box}__header--PaddingInlineEnd: var(--pf-t--global--spacer--xl);
  --#{$about-modal-box}__header--PaddingBlockEnd: var(--pf-t--global--spacer--sm);
  --#{$about-modal-box}__header--PaddingInlineStart: var(--pf-t--global--spacer--xl);
  --#{$about-modal-box}__header--sm--PaddingInlineEnd: var(--pf-t--global--spacer--3xl);
  --#{$about-modal-box}__header--sm--PaddingInlineStart: var(--pf-t--global--spacer--3xl);

  @media only screen and (min-width: $pf-v6-global--breakpoint--sm) {
    --#{$about-modal-box}__header--PaddingInlineEnd: var(--#{$about-modal-box}__header--sm--PaddingInlineEnd);
    --#{$about-modal-box}__header--PaddingInlineStart: var(--#{$about-modal-box}__header--sm--PaddingInlineStart);
  }

  // Strapline
  --#{$about-modal-box}__strapline--PaddingBlockStart: var(--pf-t--global--spacer--xl);
  --#{$about-modal-box}__strapline--FontSize: var(--pf-t--global--font--size--body--sm);
  --#{$about-modal-box}__strapline--Color: var(--pf-t--global--text--color--subtle);
  --#{$about-modal-box}__strapline--sm--PaddingBlockStart: var(--pf-t--global--spacer--2xl);

  @media only screen and (min-width: $pf-v6-global--breakpoint--sm) {
    --#{$about-modal-box}__strapline--PaddingBlockStart: var(--#{$about-modal-box}__strapline--sm--PaddingBlockStart);
  }

  // Content
  --#{$about-modal-box}__content--MarginBlockStart: var(--pf-t--global--spacer--xl);
  --#{$about-modal-box}__content--MarginInlineEnd: var(--pf-t--global--spacer--xl);
  --#{$about-modal-box}__content--MarginBlockEnd: var(--pf-t--global--spacer--xl);
  --#{$about-modal-box}__content--MarginInlineStart: var(--pf-t--global--spacer--xl);
  --#{$about-modal-box}__content--sm--MarginBlockStart: var(--pf-t--global--spacer--2xl);
  --#{$about-modal-box}__content--sm--MarginInlineEnd: var(--pf-t--global--spacer--3xl);
  --#{$about-modal-box}__content--sm--MarginBlockEnd: var(--pf-t--global--spacer--2xl);
  --#{$about-modal-box}__content--sm--MarginInlineStart: var(--pf-t--global--spacer--3xl);

  @media only screen and (min-width: $pf-v6-global--breakpoint--sm) {
    --#{$about-modal-box}__content--MarginBlockStart: var(--#{$about-modal-box}__content--sm--MarginBlockStart);
    --#{$about-modal-box}__content--MarginInlineEnd: var(--#{$about-modal-box}__content--sm--MarginInlineEnd);
    --#{$about-modal-box}__content--MarginBlockEnd: var(--#{$about-modal-box}__content--sm--MarginBlockEnd);
    --#{$about-modal-box}__content--MarginInlineStart: var(--#{$about-modal-box}__content--sm--MarginInlineStart);
  }
}

.#{$about-modal-box} {
  position: relative;
  display: grid;
  grid-template-areas:
    "brand close"
    "header header"
    "content content";
  grid-template-rows: max-content max-content auto;
  width: var(--#{$about-modal-box}--Width);
  height: var(--#{$about-modal-box}--Height);
  overflow-x: hidden;
  overflow-y: auto;
  background-color: var(--#{$about-modal-box}--BackgroundColor);
  background-image: var(--#{$about-modal-box}--BackgroundImage);
  background-repeat: no-repeat;
  background-position: var(--#{$about-modal-box}--BackgroundPosition);
  background-size: var(--#{$about-modal-box}--BackgroundSize);

  @media only screen and (min-width: $pf-v6-global--breakpoint--sm) {
    grid-template-areas:
    "brand          close"
    "header         close"
    "content        close";
    grid-template-columns: var(--#{$about-modal-box}--sm--GridTemplateColumns);
  }

  @media only screen and (min-width: $pf-v6-global--breakpoint--lg) {
    --#{$about-modal-box}--Height: var(--#{$about-modal-box}--lg--Height);
    --#{$about-modal-box}--Width: var(--#{$about-modal-box}--lg--Width);

    grid-template-rows: max-content max-content auto;
    grid-template-columns: var(--#{$about-modal-box}--lg--GridTemplateColumns);
  }

  @include pf-v6-bidirectional-style (
    $prop: --#{$about-modal-box}--BackgroundPosition,
    $ltr-val: bottom right,
    $rtl-val: bottom left
  );
}

// Brand
.#{$about-modal-box}__brand {
  display: flex;
  grid-area: brand;
  padding-block-start: var(--#{$about-modal-box}__brand--PaddingBlockStart);
  padding-block-end: var(--#{$about-modal-box}__brand--PaddingBlockEnd);
  padding-inline-start: var(--#{$about-modal-box}__brand--PaddingInlineStart);
  padding-inline-end: var(--#{$about-modal-box}__brand--PaddingInlineEnd);
}

.#{$about-modal-box}__brand-image {
  height: var(--#{$about-modal-box}__brand-image--Height);
}

// Header
.#{$about-modal-box}__header {
  display: flex;
  flex-direction: column;
  grid-area: header;
  padding-block-end: var(--#{$about-modal-box}__header--PaddingBlockEnd);
  padding-inline-start: var(--#{$about-modal-box}__header--PaddingInlineStart);
  padding-inline-end: var(--#{$about-modal-box}__header--PaddingInlineEnd);
}

// Strapline
.#{$about-modal-box}__strapline {
  padding-block-start: var(--#{$about-modal-box}__strapline--PaddingBlockStart);
  margin-block-start: auto;
  font-size: var(--#{$about-modal-box}__strapline--FontSize);
  color: var(--#{$about-modal-box}__strapline--Color);
}

// Content
.#{$about-modal-box}__content {
  display: flex;
  flex-direction: column;
  grid-area: content;
  margin-block-start: var(--#{$about-modal-box}__content--MarginBlockStart);
  margin-block-end: var(--#{$about-modal-box}__content--MarginBlockEnd);
  margin-inline-start: var(--#{$about-modal-box}__content--MarginInlineStart); // Using margin instead of padding to prevent scrollbar extending to top of content block
  margin-inline-end: var(--#{$about-modal-box}__content--MarginInlineEnd);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  word-break: break-word;
  -webkit-overflow-scrolling: touch;

  @media screen and (min-width: $pf-v6-global--breakpoint--sm) {
    overflow: visible;
    overscroll-behavior: auto;
  }
}

// Close
.#{$about-modal-box}__close {
  position: sticky;
  inset-block-start: 0;
  display: flex;
  grid-area: close;
  align-items: flex-start;
  justify-content: flex-end;
  padding-block-start: var(--#{$about-modal-box}__close--PaddingBlockStart);
  padding-block-end: var(--#{$about-modal-box}__close--PaddingBlockEnd);
  padding-inline-end: var(--#{$about-modal-box}__close--PaddingInlineEnd);

  @media only screen and (min-width: $pf-v6-global--breakpoint--sm) {
    grid-area: 1 / 2;
    justify-content: center;
  }

  @media only screen and (min-width: $pf-v6-global--breakpoint--lg) {
    justify-content: flex-end;
  }

  // Close button
  // Since this btn is unique to the about modal, use contextual selectors in this specific instance
  .#{$button}.pf-m-plain {
    font-size: var(--#{$about-modal-box}__close--c-button--FontSize);
  }
}
