/* v4: Imported TYPO3 CSS gives inner pages an unintended 90px top padding:
   body:not(.backendlayout-custom_start) { padding-top: 90px; }
   WordPress does not have TYPO3's backendlayout body classes, so remove that
   spacing on all public WordPress pages. The common header then starts at y=0. */
html body:not(.wp-admin):not(.editor-styles-wrapper) {
  padding-top: 0 !important;
}

/* WordPress navigation repair: no TYPO3 navbar CSS used in this component. */
.psl-header.psl-header {
  position: relative !important;
  inset: auto !important;
  width: 100% !important;
  min-height: 75px !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 12px clamp(18px, 4vw, 55px) !important;
  background: #fff !important;
  border-bottom: 1px solid #dee2e6 !important;
  z-index: 99 !important;
  display: flex !important;
  align-items: center !important;
}
.psl-header .psl-header-inner.psl-header-inner {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 1260px !important;
  margin-inline: auto !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: row !important;
  justify-content: flex-end !important;
  align-items: center !important;
}
.psl-header .psl-main-nav.psl-main-nav {
  margin: 0 !important;
  width: auto !important;
  min-height: 0 !important;
  position: static !important;
  float: none !important;
}
.psl-header .psl-main-nav .wp-block-navigation__container {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: clamp(12px,2vw,26px) !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.psl-header .psl-main-nav .wp-block-navigation-item {
  position: static !important;
  display: flex !important;
  width: auto !important;
  float: none !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;
}
.psl-header .psl-main-nav .wp-block-navigation-item__content,
.psl-header .psl-main-nav .wp-block-navigation-item__content:link,
.psl-header .psl-main-nav .wp-block-navigation-item__content:visited {
  display: block !important;
  padding: 9px 0 !important;
  white-space: nowrap !important;
  color: #4e4e43 !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  letter-spacing: .01em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  opacity: 1 !important;
  transform: none !important;
  position: relative !important;
}
.psl-header .psl-main-nav .wp-block-navigation-item__content:hover,
.psl-header .psl-main-nav .current-menu-item > .wp-block-navigation-item__content {color: #d9a184 !important;}
/* Do not override the native mobile overlay, which must remain usable. */
@media (max-width: 781px) {
  .psl-header.psl-header {min-height: 64px !important;}
  .psl-header .psl-main-nav .wp-block-navigation__responsive-container-open {display: flex !important;}
  .psl-header .psl-main-nav .wp-block-navigation__responsive-container:not(.is-menu-open) {display: none !important;}
  .psl-header .psl-main-nav .wp-block-navigation__responsive-container.is-menu-open {display: flex !important;}
  .psl-header .psl-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    flex-direction: column !important; align-items: flex-start !important; justify-content: flex-start !important;
  }
  .psl-header .psl-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    width: 100% !important;
  }
}

/* v5: brand at the left; navigation aligned on the right. */
.psl-header .psl-header-inner.psl-header-inner {
  max-width: none !important;
  justify-content: space-between !important;
  gap: clamp(12px, 2vw, 30px) !important;
}
.psl-header .psl-brand {
  display: flex !important;
  align-items: center !important;
  flex: 0 0 auto !important;
  text-decoration: none !important;
  min-width: 0 !important;
}
.psl-header .psl-brand img {
  display: block !important;
  width: 200px !important;
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  border: 0 !important;
}
.psl-header .psl-main-nav.psl-main-nav { flex: 0 0 auto !important; }
@media (max-width: 781px) {
  .psl-header .psl-brand img { width: 178px !important; }
  .psl-header .psl-header-inner.psl-header-inner { gap: 12px !important; }
  .psl-header .psl-main-nav.psl-main-nav { margin-left: auto !important; }
}


/* ===============================================================
   Mobile-only improvements for the original Studio theme.
   This section does not change desktop layouts (min-width: 992px).
   Uses WordPress' own navigation overlay, no JavaScript/plugin.
   =============================================================== */
@media screen and (max-width: 991px) {
  .psl-header.psl-header {
    min-height: 70px !important;
    padding: 10px 16px !important;
    z-index: 999 !important;
  }
  .psl-header .psl-header-inner.psl-header-inner {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex-wrap: nowrap !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 12px !important;
  }
  .psl-header .psl-brand {
    flex: 0 1 auto !important;
    max-width: calc(100% - 64px) !important;
  }
  .psl-header .psl-brand img {
    width: clamp(145px, 36vw, 178px) !important;
    max-width: 100% !important;
    height: auto !important;
  }
  .psl-header .psl-main-nav.psl-main-nav {
    margin-left: auto !important;
    flex: 0 0 auto !important;
    position: static !important;
    width: auto !important;
  }
  /* Force the WordPress mobile control instead of the inherited desktop menu. */
  .psl-header .psl-main-nav .wp-block-navigation__responsive-container-open {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    visibility: visible !important;
    opacity: 1 !important;
    padding: 10px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    color: #4e4e43 !important;
    border: 0 !important;
    background: transparent !important;
    cursor: pointer !important;
  }
  .psl-header .psl-main-nav .wp-block-navigation__responsive-container-open svg,
  .psl-header .psl-main-nav .wp-block-navigation__responsive-container-close svg {
    width: 26px !important;
    height: 26px !important;
    fill: currentColor !important;
  }
  .psl-header .psl-main-nav .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: none !important;
  }
  .psl-header .psl-main-nav .wp-block-navigation__responsive-container.is-menu-open {
    display: flex !important;
    box-sizing: border-box !important;
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: #fcfaf5 !important;
    color: #4e4e43 !important;
    opacity: 1 !important;
    visibility: visible !important;
    z-index: 99999 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }
  .psl-header .psl-main-nav .wp-block-navigation__responsive-close,
  .psl-header .psl-main-nav .wp-block-navigation__responsive-dialog,
  .psl-header .psl-main-nav .wp-block-navigation__responsive-container-content {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
  .psl-header .psl-main-nav .wp-block-navigation__responsive-container-content {
    padding: 84px 24px 28px !important;
    margin: 0 !important;
    display: block !important;
  }
  .psl-header .psl-main-nav .wp-block-navigation__responsive-container-close {
    position: absolute !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    top: 15px !important;
    right: 16px !important;
    padding: 10px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    color: #4e4e43 !important;
    background: transparent !important;
    z-index: 100000 !important;
    cursor: pointer !important;
  }
  .psl-header .psl-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
  }
  .psl-header .psl-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    display: block !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border-bottom: 1px solid #e8e1d7 !important;
  }
  .psl-header .psl-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    display: block !important;
    width: 100% !important;
    padding: 15px 3px !important;
    box-sizing: border-box !important;
    color: #4e4e43 !important;
    font-size: 17px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    text-transform: uppercase !important;
  }
  .psl-header .psl-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content[aria-current="page"] {
    color: #d9a184 !important;
  }
  /* Imported image widths may be larger than a phone's viewport. */
  .wp-block-post-content img:not(.wp-block-cover__image-background),
  .wp-block-post-content figure.wp-block-image img,
  .wp-block-post-content .wp-block-post-featured-image img,
  .psl-blog-page .psl-card-image img,
  .psl-blog-detail img {
    max-width: 100% !important;
  }
  .wp-block-post-content figure.wp-block-image,
  .wp-block-post-content .wp-block-image.is-resized,
  .wp-block-post-content .wp-block-gallery {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  .wp-block-post-content :is(.wp-block-image, .wp-block-group, .wp-block-column) {
    min-width: 0 !important;
  }
}

@media screen and (max-width: 767px) {
  .wp-block-post-content .wp-block-columns:not(.is-not-stacked-on-mobile) {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: clamp(18px, 5vw, 32px) !important;
  }
  .wp-block-post-content .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex-basis: auto !important;
    flex-grow: 1 !important;
  }
  .wp-block-post-content .row {
    flex-wrap: wrap !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .wp-block-post-content .row > [class*="col-"] {
    min-width: 0 !important;
    max-width: 100% !important;
    flex-basis: 100% !important;
  }
  .wp-block-post-content img:not(.wp-block-cover__image-background) {
    height: auto !important;
  }
  .wp-block-post-content figure.wp-block-image {
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .wp-block-post-content figure.wp-block-image img {
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
  }
  .wp-block-post-content .wp-block-gallery {
    grid-template-columns: minmax(0,1fr) !important;
  }
  .wp-block-post-content .wp-block-cover,
  .wp-block-post-content .wp-block-media-text,
  .wp-block-post-content .wp-block-gallery {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  .wp-block-post-content .wp-block-media-text:not(.has-media-on-the-right) {
    grid-template-columns: minmax(0,1fr) !important;
  }
  .wp-block-post-content .wp-block-media-text .wp-block-media-text__media,
  .wp-block-post-content .wp-block-media-text .wp-block-media-text__content {
    grid-column: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  .psl-contact-form input:not([type="checkbox"]),
  .psl-contact-form textarea,
  .psl-contact-page .psl-contact-columns,
  .psl-contact-page .psl-contact-columns > .wp-block-column {
    max-width: 100% !important;
  }
  .psl-blog-page .wp-block-post-template {
    grid-template-columns: minmax(0,1fr) !important;
  }
}

@media screen and (max-width: 420px) {
  .psl-header.psl-header {padding: 8px 12px !important;}
  .psl-header .psl-brand img {width: 150px !important;}
  .psl-header .psl-main-nav .wp-block-navigation__responsive-container-content {
    padding: 78px 19px 28px !important;
  }
}

/* ===============================================================
   v6 - Mobile navigation alignment repair (WordPress overlay)
   Only screens <= 991px. The selectors intentionally do NOT require
   .psl-header as an ancestor: WordPress can render its menu overlay
   outside the header, and theme CSS can otherwise right-align links.
   Desktop styles and page content are unchanged.
   =============================================================== */
@media screen and (max-width: 991px) {
  /* Keep the open overlay inside the phone's viewport. */
  html body:not(.wp-admin) .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed !important;
    inset: 0 !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    background: #fff !important;
  }

  html body:not(.wp-admin) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
  html body:not(.wp-admin) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
    box-sizing: border-box !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    text-align: left !important;
  }

  /* The entire menu begins 24px from the left AND right edges. */
  html body:not(.wp-admin) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    box-sizing: border-box !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 82px 24px 28px !important;
    text-align: left !important;
    justify-content: flex-start !important;
    align-items: stretch !important;
  }

  html body:not(.wp-admin) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    list-style: none !important;
  }

  html body:not(.wp-admin) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    box-sizing: border-box !important;
    display: block !important;
    float: none !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    border-bottom: 1px solid #eee9e2 !important;
  }

  html body:not(.wp-admin) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
  html body:not(.wp-admin) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:link,
  html body:not(.wp-admin) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:visited {
    box-sizing: border-box !important;
    display: block !important;
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 15px 0 !important;
    text-align: left !important;
    font-size: 16px !important;
    line-height: 1.4 !important;
    white-space: normal !important;
    transform: none !important;
  }

  html body:not(.wp-admin) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__label {
    display: block !important;
    width: 100% !important;
    text-align: left !important;
  }

  /* Close button: comfortable right-side touch margin. */
  html body:not(.wp-admin) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
    position: absolute !important;
    top: 16px !important;
    right: 20px !important;
    left: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    padding: 9px !important;
  }
}


/* v7 - Portrait Richard Stark: natural proportions on mobile.
   The imported picture selects a tall source image on phones,
   although the design displays it in a circular square frame. */
@media screen and (max-width: 767px) {
  html body.home figure.blocks-engine-source-figure-fe0222852181-0 {
    display: block !important;
    position: relative !important;
    width: min(100%, 340px) !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow: hidden !important;
    border-radius: 50% !important;
  }

  html body.home figure.blocks-engine-source-figure-fe0222852181-0 picture {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: 1 / 1 !important;
  }

  html body.home figure.blocks-engine-source-figure-fe0222852181-0 picture img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    object-position: center 10% !important;
    border-radius: 50% !important;
  }
}
