/* Opti Plaza content sections (own code): rich text, image banner, slideshow, image with text, multicolumn,
   multirow, collage, collapsible content, video, featured blog, collection list, featured collection.
   Sizes in rem (1rem = 10px); colours from op-luxury.css tokens. */

/* ---- shared: section padding (phones take three quarters) ---------------------------------------- */
.own-pad {
  padding-top: calc(var(--own-pt, 36px) * 0.75);
  padding-bottom: calc(var(--own-pb, 36px) * 0.75);
}

@media screen and (min-width: 750px) {
  .own-pad {
    padding-top: var(--own-pt, 36px);
    padding-bottom: var(--own-pb, 36px);
  }
}

.own-sec-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem 3rem;
  margin-bottom: 3rem;
}

.own-sec-head__title {
  margin: 0;
}

.own-sec-head__desc {
  flex: 0 0 100%;
  margin: 0;
}

.own-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 2.5rem;
}

.center > .own-buttons,
.own-buttons.center {
  justify-content: center;
}

/* ---- rich text --------------------------------------------------------------------------------- */
.own-rich {
  padding-top: calc(var(--own-pt, 40px) * 0.75);
  padding-bottom: calc(var(--own-pb, 52px) * 0.75);
}

.own-rich__wrap {
  display: flex;
  justify-content: center;
  margin: 0 2rem;
}

.own-rich__blocks {
  width: 100%;
}

.own-rich__blocks > * {
  margin-top: 0;
  margin-bottom: 0;
}

.own-rich__blocks > * + * {
  margin-top: 2rem;
}

.own-rich__heading {
  word-break: break-word;
  color: var(--op-ink, #141310);
}

.own-rich__caption {
  font-size: 1.2rem;
  letter-spacing: 0.13rem;
  text-transform: uppercase;
}

.own-rich__caption--subtitle {
  font-size: 1.6rem;
  letter-spacing: 0.06rem;
  text-transform: none;
}

.own-rich__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.own-rich__blocks.center .own-rich__buttons {
  justify-content: center;
}

.own-rich__blocks.right .own-rich__buttons {
  justify-content: flex-end;
}

@media screen and (min-width: 750px) {
  .own-rich {
    padding-top: var(--own-pt, 40px);
    padding-bottom: var(--own-pb, 52px);
  }

  .own-rich__wrap {
    margin: 0 auto;
  }

  .own-rich__blocks {
    max-width: 78rem;
  }

  .own-rich__wrap--left {
    justify-content: flex-start;
  }

  .own-rich__wrap--right {
    justify-content: flex-end;
  }
}

/* ---- featured collection ----------------------------------------------------------------------- */
.own-fc__head {
  margin-bottom: 3rem;
}

.own-fc__title {
  margin: 0;
  color: var(--op-ink, #141310);
  word-break: break-word;
}

.own-fc__desc {
  margin-top: 1.5rem;
}

.own-fc__rail--full {
  max-width: none;
}

.own-fc__all {
  margin-top: 1rem;
}

.own-fc__all-link {
  min-width: 0;
  padding: 0;
  color: var(--op-ink, #141310);
  background: none;
  text-decoration: underline;
  text-underline-offset: 0.3rem;
}

@media screen and (max-width: 749px) {
  .own-fc__head {
    margin-bottom: 2.5rem;
  }

  .own-fc__list--swipe {
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .own-fc__list--swipe > .grid__item {
    flex: 0 0 72%;
    max-width: 72%;
    scroll-snap-align: start;
  }
}

/* ---- shared media helpers ---------------------------------------------------------------------- */
.own-banner__placeholder {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 20rem;
  background: linear-gradient(135deg, var(--op-ivory-deep, #f3f0e8), #e7e4dc);
}

.own-ratio {
  position: relative;
  overflow: hidden;
  padding-bottom: var(--own-ratio, 75%);
}

.own-ratio--square { --own-ratio: 100%; }
.own-ratio--portrait { --own-ratio: 125%; }
.own-ratio--circle { --own-ratio: 100%; border-radius: 50%; }
.own-ratio--small { --own-ratio: 60%; }
.own-ratio--medium { --own-ratio: 80%; }
.own-ratio--large { --own-ratio: 110%; }

.own-ratio > img,
.own-ratio > .own-banner__placeholder {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media screen and (max-width: 749px) {
  .own-swipe {
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .own-swipe > .grid__item {
    flex: 0 0 80%;
    max-width: 80%;
    scroll-snap-align: start;
  }
}

/* ---- image banner and slides ------------------------------------------------------------------- */
.own-banner {
  position: relative;
  display: flex;
  flex-direction: column;
}

.own-banner__media {
  position: relative;
  display: flex;
  min-height: 30rem;
  overflow: hidden;
}

.own-banner--small .own-banner__media { min-height: 28rem; }
.own-banner--large .own-banner__media { min-height: 43.5rem; }
.own-banner--adapt .own-banner__media { min-height: 0; }

.own-banner__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.own-banner--split .own-banner__img {
  width: 50%;
}

.own-banner--split.own-banner--stack .own-banner__media {
  flex-direction: column;
}

.own-banner--split.own-banner--stack .own-banner__img {
  width: 100%;
}

.own-banner__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(20, 19, 16, var(--own-overlay, 0));
  pointer-events: none;
}

.own-banner__content {
  position: relative;
  z-index: 1;
  display: flex;
  width: 100%;
  padding-top: 3rem;
  padding-bottom: 3rem;
}

.own-banner__box {
  width: 100%;
  max-width: 71rem;
}

.own-banner__box--boxed {
  padding: 3rem 3.5rem;
}

.own-banner__box > * + * {
  margin-top: 1.5rem;
}

.own-banner__heading {
  margin: 0;
  color: var(--op-ink, #141310);
}

.own-banner__box.center .own-buttons { justify-content: center; }
.own-banner__box.right .own-buttons { justify-content: flex-end; }

@media screen and (max-width: 749px) {
  .own-banner:not(.own-banner--text-below) .own-banner__content,
  .own-slides__slide .own-banner__content {
    position: absolute;
    inset: 0;
    align-items: center;
    justify-content: center;
  }
}

@media screen and (min-width: 750px) {
  .own-banner__media { min-height: 40rem; }
  .own-banner--small .own-banner__media { min-height: 30.4rem; }
  .own-banner--medium .own-banner__media { min-height: 56rem; }
  .own-banner--large .own-banner__media { min-height: 72rem; }
  .own-banner--split .own-banner__media { flex-direction: row; }
  .own-banner--split.own-banner--stack .own-banner__img { width: 50%; }

  .own-banner__content {
    position: absolute;
    inset: 0;
    padding-top: 5rem;
    padding-bottom: 5rem;
  }

  .own-banner--top-left .own-banner__content,
  .own-banner--top-center .own-banner__content,
  .own-banner--top-right .own-banner__content { align-items: flex-start; }
  .own-banner--middle-left .own-banner__content,
  .own-banner--middle-center .own-banner__content,
  .own-banner--middle-right .own-banner__content { align-items: center; }
  .own-banner--bottom-left .own-banner__content,
  .own-banner--bottom-center .own-banner__content,
  .own-banner--bottom-right .own-banner__content { align-items: flex-end; }
  .own-banner--top-left .own-banner__content,
  .own-banner--middle-left .own-banner__content,
  .own-banner--bottom-left .own-banner__content { justify-content: flex-start; }
  .own-banner--top-center .own-banner__content,
  .own-banner--middle-center .own-banner__content,
  .own-banner--bottom-center .own-banner__content { justify-content: center; }
  .own-banner--top-right .own-banner__content,
  .own-banner--middle-right .own-banner__content,
  .own-banner--bottom-right .own-banner__content { justify-content: flex-end; }

  .own-banner__box {
    width: auto;
  }

  .own-banner__box--boxed {
    padding: 4rem 3.5rem;
  }
}

.own-slides {
  position: relative;
}

.own-slides__track {
  display: flex;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.own-slides__track::-webkit-scrollbar {
  display: none;
}

.own-slides__slide {
  flex: 0 0 100%;
  scroll-snap-align: start;
}

.own-slides__controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1rem 0;
}

.own-slides__arrow,
.own-slides__toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.4rem;
  height: 4.4rem;
  padding: 0;
  border: 0;
  color: var(--op-ink, #141310);
  background: none;
  cursor: pointer;
}

.own-slides__toggle .own-icon {
  width: 1.6rem;
  height: 1.6rem;
}

.own-slides__toggle .own-icon--play,
.own-slides.is-paused .own-slides__toggle .own-icon--pause {
  display: none;
}

.own-slides.is-paused .own-slides__toggle .own-icon--play {
  display: block;
}

.own-slides__dots {
  display: flex;
  gap: 0.2rem;
}

.own-slides__dot {
  position: relative;
  width: 2.4rem;
  height: 4.4rem;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}

.own-slides__dot::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.8rem;
  height: 0.8rem;
  border: 1px solid var(--op-ink, #141310);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.own-slides__dot[aria-current='true']::after {
  background-color: var(--op-ink, #141310);
}

/* ---- image with text and multirow -------------------------------------------------------------- */
.own-iwt__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 3rem;
  align-items: stretch;
}

.own-mrow__row + .own-mrow__row {
  margin-top: 5rem;
}

.own-iwt__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.own-iwt__text > * {
  margin-top: 0;
  margin-bottom: 0;
}

.own-iwt__text > * + * {
  margin-top: 1.5rem;
}

.own-iwt__heading {
  color: var(--op-ink, #141310);
}

@media screen and (min-width: 750px) {
  .own-iwt__grid {
    grid-template-columns: 1fr 1fr;
    gap: 0 6rem;
  }

  .own-iwt__grid--small { grid-template-columns: 1fr 2fr; }
  .own-iwt__grid--large { grid-template-columns: 2fr 1fr; }
  .own-iwt__grid--text_first .own-iwt__media { order: 2; }
  .own-iwt__grid--text_first.own-iwt__grid--small { grid-template-columns: 2fr 1fr; }
  .own-iwt__grid--text_first.own-iwt__grid--large { grid-template-columns: 1fr 2fr; }
  .own-iwt__text--top { justify-content: flex-start; }
  .own-iwt__text--bottom { justify-content: flex-end; }
}

/* ---- multicolumn ------------------------------------------------------------------------------- */
.own-mcol__item > * + * {
  margin-top: 1.5rem;
}

.own-mcol--panels .own-mcol__item {
  padding: 2.5rem;
  background-color: var(--op-ivory-deep, #f3f0e8);
}

.own-mcol__media {
  width: 100%;
}

.own-mcol__title {
  margin-bottom: 0;
  color: var(--op-ink, #141310);
}

.own-mcol__text > :first-child { margin-top: 0; }

.own-mcol__link {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  text-decoration: none;
}

.own-mcol__link:hover {
  text-decoration: underline;
}

/* ---- collage ----------------------------------------------------------------------------------- */
.own-collage__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.2rem;
}

.own-collage__media {
  height: 100%;
  min-height: 24rem;
  overflow: hidden;
}

.own-collage__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media screen and (min-width: 750px) {
  .own-collage__grid {
    grid-template-columns: 2fr 1fr;
    grid-auto-rows: minmax(20rem, auto);
    gap: 2.4rem;
  }

  .own-collage__grid > .own-collage__tile:first-child {
    grid-row: span 2;
  }

  .own-collage__grid--right {
    grid-template-columns: 1fr 2fr;
  }

  .own-collage__grid--right > .own-collage__tile:first-child {
    grid-column: 2;
  }
}

/* ---- collapsible content ----------------------------------------------------------------------- */
.own-faq__grid {
  display: grid;
  gap: 3rem;
}

.own-faq__heading {
  margin: 0;
  color: var(--op-ink, #141310);
}

.own-faq__media {
  margin-top: 2rem;
}

.own-faq__media img {
  display: block;
  width: 100%;
  height: auto;
}

.own-faq__rows {
  border-top: 1px solid var(--op-hairline, rgba(20, 19, 16, 0.14));
}

.own-faq__row {
  border-bottom: 1px solid var(--op-hairline, rgba(20, 19, 16, 0.14));
}

.own-faq__q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 1.8rem 0;
  color: var(--op-ink, #141310);
  list-style: none;
  cursor: pointer;
}

.own-faq__q::-webkit-details-marker {
  display: none;
}

.own-faq__q .own-icon {
  flex: 0 0 1.4rem;
  transition: transform 0.2s var(--ease, ease);
}

.own-faq__row[open] .own-faq__q .own-icon {
  transform: rotate(45deg);
}

.own-faq__a {
  padding: 0 0 2rem;
}

@media screen and (min-width: 750px) {
  .own-faq__grid--split {
    grid-template-columns: 1fr 2fr;
    gap: 6rem;
  }
}

/* ---- video ------------------------------------------------------------------------------------- */
.own-video__frame {
  position: relative;
  padding-bottom: 56.25%;
  overflow: hidden;
  background-color: var(--op-ink, #141310);
}

.own-video__frame > *,
.own-video__poster > img,
.own-video__poster > .own-banner__placeholder {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: cover;
}

.own-video__play {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 6.4rem;
  height: 6.4rem;
  border-radius: 50%;
  color: var(--op-ink, #141310);
  background-color: var(--op-ivory, #faf9f6);
  transform: translate(-50%, -50%);
  transition: transform 0.2s var(--ease, ease);
}

.own-video__poster:hover .own-video__play {
  transform: translate(-50%, -50%) scale(1.08);
}
