/**
 * @file
 * Featured partners carousel styles (Embla).
 */

.featured-partners-carousel {
  --slide-size: 33.333%;
  --slide-spacing: 2rem;
  max-width: 100%;
  padding: 0;
}

.featured-partners-carousel .embla__container {
  align-items: center;
}

.featured-partners-carousel .embla__slide img {
  width: 100%;
  height: auto;
  display: block;
}

@media (min-width: 768px) {
  .featured-partners-carousel {
    --slide-size: 20%;
  }
}

@media (min-width: 1024px) {
  .featured-partners-carousel {
    --slide-size: 14.285%;
  }
}

/* No progress bars for partner carousels */
.featured-partners-carousel .embla__progress {
  display: none;
}

/* ========================================================================
   Partner section heading
   ======================================================================== */
.block-views-blockfeatured-partners-block-1 {
  margin-top: var(--block-spacing);
}


.block-views-blockfeatured-partners-block-1 > h2 {
  padding: 0 1rem;
}

/* ========================================================================
   "Partner werden" CTA box — diagonal background
   ======================================================================== */

.layout--twocol-section--67-33 > .layout__region--second {
  position: relative;
  overflow: visible;
}

.block--partner-info-block-fl {
  position: relative;
  background-color: var(--color-grey-dark);
  color: var(--color-white);
  padding: 2.5rem var(--block-padding);
  display: flex;
  flex-direction: column;
  justify-content: center;
  /* height: 100%; */
  /* Extend beyond the right edge to the viewport */
  margin-right: calc(-50vw + 50%);
  padding-right: calc(50vw - 50% + 2rem);
  margin-top: var(--block-spacing);
}

/* Diagonal slant on the left side */
.block--partner-info-block-fl::before {
  content: '';
  position: absolute;
  top: -0.5px;
  bottom: -0.5px;
  left: -119px;
  width: 120px;
  background: var(--color-grey-dark);
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

@media (max-width: 767px) {
  .block--partner-info-block-fl {
    margin-right: 0;
    padding-right: 2rem;
  }

  .block--partner-info-block-fl::before {
    display: none;
  }
}

/* Buttons inside the partner CTA box */
.block--partner-info-block-fl .partner-infos .button {
  display: inline-block;
  border-color: #ffffff;
  margin-bottom: 1rem;
}


/* ========================================================================
   Partner Overlay
   ========================================================================

   Overlay layout (single source of truth — overlay rules in blocks.css are
   kept for close button / frame only, layout happens here):

   - Article is block flow (no outer grid, no display:contents flattening).
   - Title + hero image stack at top full-width.
   - .partner-text-and-info-wrapper is a 2-column grid:
     body on the left, .partner-info-wrapper (logo above links) on the right.
   - Session tickets below stack full-width.
*/

.rp-overlay-node-partner {
    padding: 2rem;
    width: 98vw;
    border-radius: var(--border-radius);
}

.rp-overlay-node-partner .close {
    font-size: 2rem;
}

.rp-overlay-node-partner .node__title {
    font-family: var(--font-heading);
    font-size: 2.5rem;
    text-align: center;
    margin: 0 0 1.5rem;
}

.rp-overlay-node-partner .field--name-field-image-video {
    margin-bottom: 1.5rem;
}

.rp-overlay-node-partner .field--name-field-image-video img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--border-radius);
    border: 1px solid black;
}

/* Body + info: 2-column layout */
.rp-overlay-node-partner .partner-text-and-info-wrapper {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 0 3rem;
    align-items: start;
    margin-bottom: 2rem;
}

/* Logo max 220px, stacks above the links */
.rp-overlay-node-partner .partner-info-wrapper .field--name-field-logo {
    max-width: 220px;
    margin-bottom: 1rem;
}

.rp-overlay-node-partner .partner-info-wrapper .field--name-field-logo img {
    width: 100%;
    height: auto;
    display: block;
}

.rp-overlay-node-partner .field--name-field-booth .field__item {
    margin-bottom: 0.35rem;
    font-size: var(--font-size-standard);
    line-height: var(--line-height-standard);
}


.rp-overlay-node-partner .partner-info-booth {
    margin-bottom: 1rem;
    font-size: var(--font-size-standard);
    line-height: var(--line-height-standard);
    font-weight: 700;
    display: flex;
    gap: .5rem;
}
 
.rp-overlay-node-partner .field--name-field-booth {
    font-weight: normal;
}


.rp-overlay-node-partner .field--name-field-links .field__item a {
    font-size: var(--font-size-standard);
    line-height: var(--line-height-standard);
    color: var(--color-text);
    text-decoration: none;
    font-weight: 700;
}

.rp-overlay-node-partner .field--name-field-links .field__item a::before {
    content: "\2192\00a0";
}

.rp-overlay-node-partner .field--name-field-links .field__item a:hover {
    text-decoration: underline;
}

/* Sessions: 2 per row on desktop, stacked on mobile. */
.rp-overlay-node-partner .session-ticket {
    float: left;
    width: calc(50% - 1rem);
    margin-right: 2rem;
    margin-bottom: 2rem;
}

.rp-overlay-node-partner .session-ticket:nth-of-type(2n) {
    margin-right: 0;
}

/* Clear floats at the end of the overlay article so the frame sizes right. */
.rp-overlay-node-partner .node__content::after {
    content: "";
    display: block;
    clear: both;
}

/* Mobile: stack body, info and sessions */
@media (max-width: 699px) {
    .rp-overlay-node-partner .partner-text-and-info-wrapper {
        display: block;
    }
    .rp-overlay-node-partner .partner-info-wrapper {
        margin-top: 1.5rem;
    }
    .rp-overlay-node-partner .partner-info-wrapper .field--name-field-logo {
        max-width: 190px;
    }
    .rp-overlay-node-partner .session-ticket {
        float: none;
        width: 100%;
        margin-right: 0;
    }
}

.media--view-mode-image-rp-169-always-full-width img {
    width: 100%;
}

/* For both overlay and page */
.node--type-partner.node--view-mode-full .node__title a {
    color: inherit;
    text-decoration: none;
}

/* ========================================================================
   Partner full view — canonical node page
   ======================================================================== */

/* Page title block sits outside the article, so constrain it to the same
   width as the node wrapper below. */
.page-node-type-partner #block-rp-fl-pagetitle {
    max-width: var(--layout-width-small);
    margin: 0 auto;
    padding: 0 var(--block-padding);
}

.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) {
    max-width: var(--layout-width-small);
    margin: 0 auto;
    padding: 0 var(--block-padding);
}

/* Title: only rendered in embedded contexts (node--type-partner--teaser, overlay) */
.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .node__title {
    text-align: center;
    font-size: var(--font-size-catch);
}

/* Hero image: floats top-left; body + info block flow around it */
.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .field--name-field-image-video {
    float: left;
    width: 50%;
    max-width: 600px;
    margin: 0 2rem 1rem 0;
    border-radius: var(--border-radius);
    overflow: hidden;
}

.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .field--name-field-image-video img {
    width: 100%;
    height: auto;
    display: block;
}

/* Body + info stack linearly; previous grid layout removed */
.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .partner-text-and-info-wrapper {
    display: block;
}

.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .partner-info-wrapper {
    clear: both;
    margin: 2rem 0;
}

.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .partner-info-wrapper .field--name-field-logo {
    max-width: 220px;
    margin-bottom: 0.75rem;
}

.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .partner-info-wrapper .field--name-field-logo img {
    width: 100%;
    height: auto;
    display: block;
}

.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .partner-info-wrapper .partner-info-booth {
    margin-bottom: 1rem;
    font-size: var(--font-size-standard);
    line-height: var(--line-height-standard);
    font-weight: 700;
    display: flex;
    gap: .5rem;
}
 
.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .partner-info-wrapper .field--name-field-booth {
    font-weight: normal;
}

/* Links — styled like user profile links (arrow prefix, bold, no underline) */
.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .partner-info-wrapper .field--name-field-links .field__item {
    margin-bottom: 0.35rem;
    font-size: var(--font-size-standard);
    line-height: var(--line-height-standard);
}

.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .partner-info-wrapper .field--name-field-links .field__item a {
    color: var(--color-text);
    text-decoration: none;
    font-weight: 700;
}

.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .partner-info-wrapper .field--name-field-links .field__item a::before {
    content: "\2192\00a0";
}

.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .partner-info-wrapper .field--name-field-links .field__item a:hover {
    text-decoration: underline;
}

/* Video: override the highlight-video block defaults (min-height: 400px +
   height: 100% on the oembed wrapper) that mangle the aspect ratio here. */
.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .field--name-field-video {
    clear: both;
    min-height: 0;
    margin: 1.5rem 0 2rem;
}

.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .field--name-field-media-oembed-video {
    position: relative;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
}

.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .field--name-field-media-oembed-video iframe {
    width: 100%;
    height: 100%;
}

/* Sessions list: two tickets per row */
.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .session-ticket {
    float: left;
    width: calc(50% - 1rem);
    margin-right: 2rem;
    margin-bottom: 2rem;
}

.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .session-ticket:nth-of-type(2n) {
    margin-right: 0;
}

/* Clear floats so the node wrapper sizes correctly */
.node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .node__content::after {
    content: "";
    display: block;
    clear: both;
}

/* Mobile: single-column stack */
@media (max-width: 767px) {
    .node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .field--name-field-image-video {
        float: none;
        width: 100%;
        max-width: none;
        margin: 0 0 1.5rem 0;
    }

    .node--type-partner.node--view-mode-full:not(.rp-overlay-node-partner *) .session-ticket {
        float: none;
        width: 100%;
        margin-right: 0;
    }
}

