/**
 * Homepage / shared marketing section styles ported for sach_vogue.
 * No Olivero selectors. Full-bleed uses section overflow clipping (not body).
 */

/* =========================================================
   SACH & VOGUE HAIR — EDITORIAL SPREAD (ÖLÜDENİZ)
========================================================= */

@keyframes sv-editorial-spread-fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/* Homepage marketing breakouts (editorial spread, grids) need to escape the
   main content container without being clipped by overflow-x. */
.sv-page__main:has(.sv-editorial-spread) {
  overflow-x: visible;
}

.sv-block--editorial-spread {
  margin: 0;
  padding: 0;
  background: transparent;
}

.sv-editorial-spread {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0;
  box-sizing: border-box;
  background: var(--sv-color-warm-white, #faf8f4);
  overflow: hidden;
  animation: sv-editorial-spread-fade-in 700ms var(--sv-ease, ease) both;
}

/* Full-bleed editorial background media with a left-aligned translucent
   gradient overlay. The media fills the whole section; the copy sits over it
   on the left. No opaque right-hand panel, no 55/45 grid. */
.sv-editorial-spread__inner {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
  min-height: clamp(698px, 48vw, 798px);
  width: 100%;
}

/* Left-to-right ivory wash. Multi-stop so the falloff reads as light, not as a
   panel edge. Fully transparent well before the model on the right. */
.sv-editorial-spread__inner::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    rgba(247, 241, 231, 0.94) 0%,
    rgba(247, 241, 231, 0.91) 16%,
    rgba(247, 241, 231, 0.82) 27%,
    rgba(247, 241, 231, 0.62) 37%,
    rgba(247, 241, 231, 0.37) 46%,
    rgba(247, 241, 231, 0.16) 53%,
    rgba(247, 241, 231, 0.05) 60%,
    rgba(247, 241, 231, 0) 67%
  );
}

.sv-editorial-spread__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: var(--sv-color-cream, #efe8dd);
}

.sv-editorial-spread__picture {
  position: absolute;
  inset: 0;
  display: block;
  margin: 0;
  width: 100%;
  height: 100%;
}

/* Full-bleed editorial media.
 *
 * This previously combined two cover techniques: the legacy oversize-and-centre
 * pattern (width/height auto + min-width/min-height 100% + translate(-50%,-50%))
 * AND object-fit: cover. Only one is required, and the legacy half inflated the
 * element's LAYOUT BOX beyond its container - at 1440 the video measured
 * 1920x958 positioned at left:-240, depending on the parent's overflow to clip
 * it. That also forced an oversized compositing area at 1024 and would
 * letterbox once the viewport exceeded the video's intrinsic width.
 *
 * object-fit performs the crop by itself, so the box can match the container
 * exactly. The visual crop is unchanged: same object-fit, same object-position.
 */
.sv-editorial-spread__image,
.sv-editorial-spread__video {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: cover;
  object-position: 62% 40%;
}

.sv-editorial-spread__video {
  z-index: 1;
  opacity: 0;
  pointer-events: none;
}

.sv-editorial-spread__media.is-playing .sv-editorial-spread__video {
  opacity: 1;
}

.sv-editorial-spread__media.is-playing .sv-editorial-spread__picture {
  /* Keep poster underneath to avoid black flash if the loop hitch briefly. */
  z-index: 0;
}

.sv-editorial-spread__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-sizing: border-box;
  width: clamp(24rem, 42%, 46rem);
  min-width: 0;
  padding: clamp(4.5rem, 7.8vw, 7.5rem) clamp(2rem, 4vw, 4rem) clamp(4.5rem, 7.8vw, 7.5rem)
    clamp(1.75rem, 7vw, 8.5rem);
  background: none;
}

.sv-editorial-spread__eyebrow {
  margin: 0 0 1.15rem;
  font-family: var(--sv-font-sans);
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--sv-color-gold, #9b7748);
}

.sv-editorial-spread__heading {
  margin: 0 0 1.75rem;
  max-width: 14ch;
  font-family: var(--sv-font-serif);
  font-size: clamp(2.4rem, 1.6rem + 2.4vw, 3.85rem);
  font-weight: 400;
  line-height: 1.01;
  letter-spacing: -0.03em;
  color: var(--sv-color-ink, #1f1f1f);
}

.sv-editorial-spread__body {
  max-width: 36rem;
  /* CTA reads as part of the paragraph block rather than a detached button. */
  margin-bottom: 0.5rem;
}

.sv-editorial-spread__body p {
  margin: 0 0 1.1rem;
  font-family: var(--sv-font-serif);
  font-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  line-height: 1.7;
  color: var(--sv-color-ink-soft, #3a352d);
}

.sv-editorial-spread__body p:last-child {
  margin-bottom: 0;
}

.sv-editorial-spread .sv-button {
  align-self: flex-start;
}

/* Below the desktop breakpoint the overlay would either sit on the model or
   squeeze the copy, so the section stacks: media first, copy underneath on a
   plain cream ground. Never the old opaque half-and-half panel. */
@media (max-width: 1023px) {
  .sv-editorial-spread__inner {
    display: block;
    min-height: 0;
    max-height: none;
  }

  .sv-editorial-spread__inner::before {
    display: none;
  }

  .sv-editorial-spread__media {
    position: relative;
    inset: auto;
    aspect-ratio: 16 / 10;
    max-height: none;
  }

  .sv-editorial-spread__content {
    width: 100%;
    padding: clamp(2.5rem, 4vw, 3.5rem) clamp(1.75rem, 3.5vw, 3rem);
    background: linear-gradient(165deg, #faf8f4 0%, #f5f0e7 55%, #efe8dd 100%);
  }
}

@media (max-width: 900px) {
  .sv-editorial-spread__media {
    aspect-ratio: 4 / 5;
    max-height: none;
  }

  .sv-editorial-spread__image {
    object-position: 48% 42%;
  }

  .sv-editorial-spread__content {
    align-items: center;
    text-align: center;
    padding: 2.75rem clamp(1.25rem, 5vw, 2rem) 3.5rem;
  }

  .sv-editorial-spread__heading {
    max-width: 16ch;
  }

  .sv-editorial-spread__body {
    max-width: 34rem;
  }

  .sv-editorial-spread .sv-button {
    align-self: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sv-editorial-spread {
    animation: none;
  }

  .sv-editorial-spread__video {
    display: none !important;
  }
}


/* =========================================================
   GATE 0 BATCH 1 — METHOD TILES / SACH STANDARD / COLOUR / CTA
   Duplicate luxury method grid retired; typography = Iowan + Avenir Next.
========================================================= */

.sv-page__main:has(.sv-home-collection),
.sv-page__main:has(.sv-sach-standard),
.sv-page__main:has(.sv-colour-band),
.sv-page__main:has(.sv-home-cta) {
  overflow-x: visible;
}

/* --- Method collection --- */

.sv-home-collection {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  box-sizing: border-box;
  background: var(--sv-color-warm-white, #faf8f4);
  padding: clamp(4.5rem, 7vw, 7.5rem) clamp(1.25rem, 5vw, 5rem);
}

.sv-home-collection__inner {
  max-width: 72rem;
  margin: 0 auto;
}

.sv-home-collection__head {
  max-width: 46rem;
  margin: 0 auto 3.5rem;
  text-align: center;
}

.sv-home-collection__kicker {
  margin: 0 0 1rem;
  font-family: var(--sv-font-sans);
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--sv-color-gold-soft, #b99155);
}

.sv-home-collection__title {
  margin: 0 0 1.25rem;
  font-family: var(--sv-font-serif);
  font-size: clamp(2rem, 1.4rem + 2vw, 3.25rem);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: var(--sv-color-ink, #1f1f1f);
}

.sv-home-collection__intro {
  margin: 0;
  font-family: var(--sv-font-sans);
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--sv-color-ink-soft, #3a352d);
}

.sv-home-collection__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
}

.sv-home-collection-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: var(--sv-color-surface, #fff);
  overflow: hidden;
}

.sv-home-collection-card__media {
  display: block;
  overflow: hidden;
  background: var(--sv-color-cream, #efe8dd);
}

.sv-home-collection-card__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center 30%;
}

.sv-home-collection-card:nth-child(2) .sv-home-collection-card__media img {
  object-position: center 40%;
}

.sv-home-collection-card:nth-child(3) .sv-home-collection-card__media img {
  object-position: center 45%;
}

.sv-home-collection-card:nth-child(4) .sv-home-collection-card__media img {
  object-position: center 20%;
}

.sv-home-collection-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.5rem 1.25rem 1.75rem;
}

.sv-home-collection-card__title {
  margin: 0 0 0.75rem;
  font-family: var(--sv-font-serif);
  font-size: 1.35rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--sv-color-ink, #1f1f1f);
}

.sv-home-collection-card__text {
  margin: 0 0 1.25rem;
  flex: 1;
  font-family: var(--sv-font-sans);
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--sv-color-ink-soft, #3a352d);
}

.sv-home-collection-card__cta {
  align-self: flex-start;
  font-family: var(--sv-font-sans);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--sv-color-ink, #1f1f1f);
  border-bottom: 1px solid rgba(31, 31, 31, 0.35);
  padding-bottom: 0.35rem;
}

.sv-home-collection-card__cta:hover,
.sv-home-collection-card__cta:focus-visible {
  color: var(--sv-color-gold, #9b7748);
  border-bottom-color: var(--sv-color-gold, #9b7748);
}

.sv-home-collection__note {
  margin: 2.5rem auto 0;
  max-width: 40rem;
  text-align: center;
  font-family: var(--sv-font-sans);
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--sv-color-muted, #6c635a);
}

.sv-home-collection__note a {
  color: var(--sv-color-ink, #1f1f1f);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

@media (max-width: 1023px) {
  .sv-home-collection__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .sv-home-collection__grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .sv-home-collection__head {
    margin-bottom: 2.5rem;
    text-align: left;
  }
}

/* --- Sach Standard --- */

.sv-sach-standard {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  box-sizing: border-box;
  background: var(--sv-color-charcoal-deep, #1d1a17);
  color: #fff;
  padding: clamp(4rem, 6vw, 6.5rem) clamp(1.25rem, 5vw, 5rem);
}

.sv-sach-standard__inner {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  grid-template-areas:
    "copy editorial"
    "points points";
  gap: clamp(1.75rem, 3vw, 3rem);
  max-width: 72rem;
  margin: 0 auto;
  align-items: start;
}

.sv-sach-standard__copy {
  grid-area: copy;
}

.sv-sach-standard__kicker {
  margin: 0 0 1.1rem;
  font-family: var(--sv-font-sans);
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--sv-color-gold-on-dark, #c9a877);
}

.sv-sach-standard__title {
  margin: 0 0 1.35rem;
  max-width: 18ch;
  font-family: var(--sv-font-serif);
  font-size: clamp(1.85rem, 1.3rem + 1.8vw, 2.85rem);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -0.025em;
  color: #fff;
}

.sv-sach-standard__body {
  margin: 0 0 1.75rem;
  max-width: 38rem;
  font-family: var(--sv-font-sans);
  font-size: 1.05rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.82);
}

.sv-sach-standard__brand {
  margin: 0 0 0.5rem;
  line-height: 1;
}

.sv-sach-standard__brand-sach {
  display: block;
  font-family: var(--sv-font-sans);
  font-size: clamp(2rem, 1.4rem + 2vw, 3rem);
  font-weight: 700;
  letter-spacing: -0.03em;
}

.sv-sach-standard__brand-vogue {
  display: block;
  margin-top: 0.2rem;
  font-family: var(--sv-font-serif);
  font-size: clamp(1.1rem, 0.9rem + 0.6vw, 1.45rem);
  letter-spacing: 0.04em;
}

.sv-sach-standard__mark {
  margin: 0;
  font-family: var(--sv-font-sans);
  font-size: 0.7rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--sv-color-gold-on-dark, #c9a877);
}

.sv-sach-standard__media {
  grid-area: media;
  margin: 0;
  overflow: hidden;
  background: #2a2622;
}

.sv-sach-standard__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  object-position: 40% 45%;
}

.sv-sach-standard__editorial {
  grid-area: editorial;
  display: grid;
  grid-template-columns: minmax(0, 1.32fr) minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) minmax(0, 1fr) auto;
  grid-template-areas:
    "hero selection"
    "hero sewing"
    "wide wide";
  gap: 0.65rem;
  min-height: clamp(22rem, 34vw, 32rem);
}

.sv-sach-standard__photo {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: #2a2622;
  min-height: 0;
}

.sv-sach-standard__photo--hero,
.sv-sach-standard__photo--selection,
.sv-sach-standard__photo--sewing {
  height: 100%;
}

.sv-sach-standard__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sv-sach-standard__photo--hero img,
.sv-sach-standard__photo--selection img,
.sv-sach-standard__photo--sewing img {
  position: absolute;
  inset: 0;
}

.sv-sach-standard__photo--hero {
  grid-area: hero;
}

.sv-sach-standard__photo--hero img {
  object-position: 42% 38%;
}

.sv-sach-standard__photo--selection {
  grid-area: selection;
}

.sv-sach-standard__photo--selection img {
  object-position: 50% 58%;
}

.sv-sach-standard__photo--sewing {
  grid-area: sewing;
}

.sv-sach-standard__photo--sewing img {
  object-position: 50% 32%;
}

.sv-sach-standard__photo--wide {
  grid-area: wide;
}

.sv-sach-standard__photo--wide img {
  position: static;
  aspect-ratio: 21 / 8;
  height: auto;
  object-position: 55% 42%;
}

.sv-sach-standard__points {
  grid-area: points;
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: rgba(201, 168, 119, 0.28);
  border: 1px solid rgba(201, 168, 119, 0.28);
}

.sv-sach-standard__point {
  margin: 0;
  padding: 1.35rem 1.2rem 1.5rem;
  background: var(--sv-color-charcoal-deep, #1d1a17);
}

.sv-sach-standard__point-title {
  margin: 0 0 0.65rem;
  font-family: var(--sv-font-sans);
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--sv-color-gold-on-dark, #c9a877);
}

.sv-sach-standard__point-text {
  margin: 0;
  font-family: var(--sv-font-sans);
  font-size: 0.92rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.8);
}

@media (max-width: 1023px) {
  .sv-sach-standard__inner {
    grid-template-columns: 1fr;
    grid-template-areas:
      "copy"
      "editorial"
      "points";
    gap: 1.35rem;
  }

  .sv-sach-standard__title {
    max-width: none;
  }

  .sv-sach-standard {
    padding-top: clamp(2.75rem, 8vw, 3.5rem);
    padding-bottom: clamp(2.75rem, 8vw, 3.5rem);
  }

  .sv-sach-standard__body {
    margin-bottom: 1.25rem;
  }

  /*
   * Mobile: three full-width production plates only.
   * Desktop mosaic (incl. wide QC strip) is unchanged above 1023px.
   * Order kept: atelier hero → weft sewing → hair selection.
   * Tiny paired thumbnails avoided — each plate remains editorial scale.
   */
  .sv-sach-standard__editorial {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-height: 0;
  }

  .sv-sach-standard__photo--wide {
    display: none;
  }

  .sv-sach-standard__photo--hero,
  .sv-sach-standard__photo--selection,
  .sv-sach-standard__photo--sewing {
    width: 100%;
    height: auto;
  }

  .sv-sach-standard__photo img {
    position: static;
    width: 100%;
    height: auto;
  }

  .sv-sach-standard__photo--hero img {
    aspect-ratio: 5 / 4;
  }

  .sv-sach-standard__photo--sewing img {
    aspect-ratio: 16 / 10;
  }

  .sv-sach-standard__photo--selection img {
    aspect-ratio: 5 / 4;
  }

  .sv-sach-standard__points {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 640px) {
  .sv-sach-standard__points {
    grid-template-columns: 1fr;
  }
}

/* --- Colour / customisation band (retargeted luxury-grid placement) --- */

.sv-colour-band {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  box-sizing: border-box;
  background: var(--sv-color-ivory, #f7f4ef);
  padding: clamp(4rem, 6vw, 6.5rem) clamp(1.25rem, 5vw, 5rem);
}

.sv-colour-band__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: clamp(1.75rem, 4vw, 4rem);
  align-items: center;
  max-width: 72rem;
  margin: 0 auto;
}

.sv-colour-band__media {
  margin: 0;
  overflow: hidden;
  background: var(--sv-color-cream, #efe8dd);
}

.sv-colour-band__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 55% 40%;
}

.sv-colour-band__content {
  max-width: 32rem;
}

.sv-colour-band__kicker {
  margin: 0 0 1rem;
  font-family: var(--sv-font-sans);
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--sv-color-gold, #9b7748);
}

.sv-colour-band__title {
  margin: 0 0 1.25rem;
  font-family: var(--sv-font-serif);
  font-size: clamp(2rem, 1.5rem + 1.8vw, 3.1rem);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: var(--sv-color-ink, #1f1f1f);
}

.sv-colour-band__body {
  margin: 0 0 1.75rem;
  font-family: var(--sv-font-sans);
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--sv-color-ink-soft, #3a352d);
}

@media (max-width: 900px) {
  .sv-colour-band__inner {
    grid-template-columns: 1fr;
  }

  .sv-colour-band__media img {
    aspect-ratio: 5 / 4;
    max-height: 28rem;
  }

  .sv-colour-band__content {
    max-width: none;
  }
}

/* --- Closing CTA --- */

.sv-home-cta {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  box-sizing: border-box;
  background: var(--sv-color-charcoal-deep, #1d1a17);
  color: #fff;
  padding: clamp(4.5rem, 7vw, 7rem) clamp(1.25rem, 5vw, 5rem);
  text-align: center;
}

.sv-home-cta__inner {
  max-width: 40rem;
  margin: 0 auto;
}

.sv-home-cta__kicker {
  margin: 0 0 1rem;
  font-family: var(--sv-font-sans);
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--sv-color-gold-on-dark, #c9a877);
}

.sv-home-cta__title {
  margin: 0 0 1.15rem;
  font-family: var(--sv-font-serif);
  font-size: clamp(2.1rem, 1.5rem + 2vw, 3.4rem);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: #fff;
}

.sv-home-cta__body {
  margin: 0 0 2rem;
  font-family: var(--sv-font-sans);
  font-size: 1.05rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.82);
}

.sv-home-cta__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.sv-home-cta__primary {
  min-width: 14rem;
}

.sv-home-cta__secondary {
  font-family: var(--sv-font-sans);
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.72);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.sv-home-cta__secondary:hover,
.sv-home-cta__secondary:focus-visible {
  color: var(--sv-color-gold-on-dark, #c9a877);
}

/* Hide any leftover CMS luxury-grid chrome if markup leaks. */
.sv-luxury-collection-grid,
.sv-block__title:has(+ .sv-colour-band),
.sv-block--colour-band > .sv-block__title {
  display: none !important;
}
