/**
 * Story page — cinematic editorial film (presentation only).
 * Scoped to body.page-story so HOME is untouched.
 * No CMS / block / field changes.
 *
 * @package Flamingo_Liqueur
 */

/**
 * Consolidated story-page.css.
 *
 * Successive redesign passes re-declared the same selectors on top of each
 * other. Every declaration that a later one at the same selector already
 * overwrote has been removed; the survivors keep their original order, so
 * the rendered result is unchanged (verified declaration-by-declaration).
 *
 * EDIT the existing rule rather than appending another pass. The mixed tile
 * sizes and left-hugging grids of FIX-12 lived in a layer nobody read.
 */

/**
 * Story page — cinematic editorial film (presentation only).
 * Scoped to body.page-story so HOME is untouched.
 * No CMS / block / field changes.
 *
 * @package Flamingo_Liqueur
 */

/* ------------------------------------------------------------------ */

/* Global Story page rhythm                                           */

/* ------------------------------------------------------------------ */

.page-story .c-entry__content--blocks > .fl-story + .fl-story,
.page-story .c-entry__content--blocks > .fl-gallery + .fl-story,
.page-story .c-entry__content--blocks > .fl-story + .fl-gallery {
  border-top: 0;
}

.page-story .fl-hero__subheading {
  font-weight: 300;
}

.page-story .fl-hero__scroll {
  letter-spacing: 0.28em;
}

/* Soft chapter fades between scenes */

.page-story #philosophy,
.page-story #craftsmanship,
.page-story #ingredients,
.page-story #gallery,
.page-story #closing,
.page-story #invite {
  position: relative;
}

/* ------------------------------------------------------------------ */

/* Scene 1 — Philosophy: classic editorial split, tall portrait       */

/* ------------------------------------------------------------------ */

.page-story #philosophy {
  padding-block: clamp(7.5rem, 20vh, 14rem) clamp(5.5rem, 13vh, 10rem);
  background: radial-gradient(ellipse 80% 60% at 85% 40%, rgba(255, 79, 163, 0.182), transparent 55%), var(--fl-bg, #0b0b0b);
}

.page-story #philosophy .fl-story__label {
  letter-spacing: 0.26em;
  margin-bottom: 1rem;
}

/* Supporting title — not a second hero (~30–35% smaller than prior 5rem cap). */
.page-story #philosophy .fl-story__title {
  margin: 0 0 1.35rem;
  max-width: 12ch;
  font-size: clamp(2.5rem, 3.8vw, 4rem); /* ~40–64px; desktop target 58–68px */
  line-height: 1.05;
}

.page-story #philosophy .fl-story__description p:first-child {
  color: #f2f2f2;
  font-size: clamp(1.2rem, 2.2vw, 1.45rem);
  font-weight: 300;
  line-height: 1.7;
  max-width: min(28rem, 100%); /* ~448px — lead measure */
  margin-bottom: 1.75rem;
  letter-spacing: 0.01em;
}

.page-story #philosophy .fl-story__description p {
  max-width: min(28rem, 100%); /* ~420–480px body measure */
  margin-bottom: 1.2rem;
}

/* Enlarge the frame; keep landscape crop + existing focus (no new crop language). */
.page-story #philosophy .fl-story__media.fl-image-frame,
.page-story #philosophy .fl-image-frame {
  width: 100%;
  max-width: 640px;
  aspect-ratio: 3 / 2; /* ~600×400 in the target width band */
}

.page-story #philosophy .fl-image-frame__viewport {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
}

.page-story #philosophy .fl-story__img {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center 35%;
}

@media (min-width: 900px) {

  /*
   * imagePosition:left uses order:-1, so the first track is the image.
   * Prior tracks put the image in the narrower column (~35%). Aim ~50/50.
   */
  .page-story #philosophy .fl-story__grid {
    grid-template-columns: minmax(560px, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(2.75rem, 5vw, 4.5rem);
    align-items: start; /* top of image ↔ first line of title */
  }

  .page-story #philosophy .fl-story__media,
  .page-story #philosophy .fl-image-frame {
    width: 100%;
    max-width: 640px;
    min-height: 360px;
    /* Skip the PHILOSOPHY label so the photo top meets the title first line. */
    margin-top: 3.5rem;
  }

  .page-story #philosophy .fl-story__copy {
    padding-top: 0;
  }
}

/* ------------------------------------------------------------------ */

/* Scene 2 — Craftsmanship: object close-up, image-led, warm dark     */

/* ------------------------------------------------------------------ */

.page-story #craftsmanship {
  padding-block: clamp(5rem, 12vh, 9rem) clamp(7.5rem, 17vh, 13rem);
  background: radial-gradient(ellipse 70% 55% at 18% 50%, rgba(201, 161, 74, 0.234), transparent 58%), linear-gradient(180deg, #0e0c13 0%, #060506 100%);
}

.page-story #craftsmanship .fl-story__label {
  letter-spacing: 0.28em;
}

.page-story #craftsmanship .fl-story__description p:first-child {
  color: rgba(201, 161, 74, 0.92);
  font-family: var(--fl-font-display, "Cormorant Garamond", serif);
  font-size: clamp(1.35rem, 2.4vw, 1.75rem);
  font-style: italic;
  font-weight: 400;
  line-height: 1.45;
  max-width: 18ch;
  letter-spacing: 0.02em;
}

.page-story #craftsmanship .fl-story__description {
  font-size: 1.05rem;
}

.page-story #craftsmanship .fl-story__img {
  aspect-ratio: 3 / 4;
  object-position: center 20%;
  box-shadow: 0 48px 90px rgba(0, 0, 0, 0.55);
}

@media (min-width: 900px) {

  .page-story #craftsmanship .fl-story__grid {
    gap: clamp(3rem, 7vw, 6rem);
  }
}

/* ------------------------------------------------------------------ */

/* Scene 3 — Ingredients: widescreen still, copy under (film insert)  */

/* ------------------------------------------------------------------ */

.page-story #ingredients {
  padding-block: 0;
  padding-inline: 0;
  background: #080808;
}

/* Beat .page-story .c-site-main .l-container gutters — edge-to-edge bleed. */
.page-story .c-site-main #ingredients > .l-container,
.page-story #ingredients .l-container {
  max-width: none !important;
  width: 100%;
  padding-inline: 0 !important;
  margin-inline: 0;
}

.page-story #ingredients .fl-story__label {
  color: rgba(255, 79, 163, 0.88);
  letter-spacing: 0.3em;
}

/* ~10–15% smaller than prior 4.25rem / 68px cap — image stays the hero. */
.page-story #ingredients .fl-story__title {
  font-size: clamp(2.5rem, 4.2vw, 3.75rem); /* ~40–60px; desktop ~56–60px */
  line-height: 1.05;
  max-width: 14ch;
}

.page-story #ingredients .fl-story__description p:first-child {
  color: #fff;
  font-size: clamp(1.2rem, 2vw, 1.4rem);
  font-weight: 400;
  letter-spacing: 0.04em;
  max-width: min(25rem, 100%); /* ~400px */
}

.page-story #ingredients .fl-story__description p {
  max-width: min(26rem, 100%); /* ~380–420px */
  font-size: 1.12rem;
  letter-spacing: 0.01em;
  margin-bottom: 1.15rem;
}

/* Natural photo ratio 1536×1024 = 3/2 — do not force a wider crop. */
.page-story #ingredients .fl-story__img {
  aspect-ratio: 3 / 2;
  object-position: center 42%;
}

@media (min-width: 900px) {

  .page-story #ingredients .fl-story__copy {
    grid-template-columns: none;
    padding-inline: 0;
  }
}

@media (max-width: 899px) {

  .page-story #ingredients .fl-story__img {
    aspect-ratio: 3 / 2;
  }
}

/* ------------------------------------------------------------------ */

/* Scene 4 — Moments: CMS-safe editorial exhibition grid              */

/* ------------------------------------------------------------------ */

.page-story #gallery {
  padding-block: clamp(7.5rem, 19vh, 14rem) clamp(7rem, 16vh, 12rem);
  background: linear-gradient(180deg, #080808 0%, #0b0b0b 28%, #0b0b0b 100%);
}

.page-story #gallery .fl-gallery__header {
  margin-inline: auto;
  margin-bottom: clamp(3.5rem, 8vw, 6rem);
  max-width: 36rem;
  text-align: center;
}

.page-story #gallery .fl-gallery__title {
  font-size: clamp(2.85rem, 5.5vw, 4.6rem);
}

.page-story #gallery .fl-gallery__intro {
  margin-inline: auto;
}

.page-story #gallery .fl-gallery__intro p {
  margin-inline: auto;
  max-width: 34ch;
}

/* Editorial rhythm from blocks/gallery (2/3+1/3 → 1/3+2/3 → thirds → hero). */

.page-story #gallery .fl-gallery__grid {
  gap: clamp(0.75rem, 1.5vw, 1.25rem);
}

.page-story #gallery .fl-gallery__item {
  margin: 0;
  min-width: 0;
}

.page-story #gallery .fl-gallery__figure {
  height: 100%;
  margin: 0;
  overflow: hidden;
}

/* ------------------------------------------------------------------ */

/* Scene 5 — Closing: full-bleed still + copy over image (like INGREDIENTS) */

/* ------------------------------------------------------------------ */

.page-story #closing {
  padding-block: 0;
  padding-inline: 0;
  text-align: center;
  background: #060608;
}

.page-story .c-site-main #closing > .l-container,
.page-story #closing .l-container {
  display: block;
  max-width: none !important;
  width: 100%;
  padding-inline: 0 !important;
  margin-inline: 0;
}

.page-story #closing .fl-story__grid,
.page-story #closing .fl-layout-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto;
  gap: 0;
  width: 100%;
  max-width: none;
  margin-inline: 0;
  justify-items: stretch;
}

/* Same cell → type sits on the photograph. */
.page-story #closing .fl-story__copy,
.page-story #closing .fl-story__media {
  grid-column: 1;
  grid-row: 1;
}

.page-story #closing .fl-story__media,
.page-story #closing .fl-story__media.fl-image-frame,
.page-story #closing .fl-image-frame {
  order: 0 !important;
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: none;
  margin: 0;
  border-radius: 0 !important;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.page-story #closing .fl-image-frame__viewport {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
}

.page-story #closing .fl-story__img {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center 45%;
  border-radius: 0;
}

/* Soft scrim under the centered type — same idea as Ingredients. */
.page-story #closing .fl-story__media::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(ellipse 75% 60% at 50% 42%, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.22) 55%, transparent 78%),
    linear-gradient(
      180deg,
      rgba(0, 0, 0, 0.55) 0%,
      rgba(0, 0, 0, 0.28) 40%,
      rgba(0, 0, 0, 0.2) 70%,
      rgba(0, 0, 0, 0.45) 100%
    );
  pointer-events: none;
}

.page-story #closing .fl-story__copy {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(1rem, 2.2vw, 1.75rem);
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(3.5rem, 10vh, 7rem) clamp(1.5rem, 5vw, 4rem);
  text-align: center;
  justify-self: stretch;
}

.page-story #closing .fl-story__label {
  letter-spacing: 0.34em;
  opacity: 0.9;
  justify-content: center;
  text-shadow: 0 1px 18px rgba(0, 0, 0, 0.55);
}

.page-story #closing .fl-story__title {
  margin: 0 0 0.35rem;
  font-weight: 500;
  text-shadow: 0 2px 28px rgba(0, 0, 0, 0.65);
}

.page-story #closing .fl-story__description {
  font-size: clamp(1.18rem, 2.3vw, 1.45rem);
  line-height: 1.95;
  text-shadow: 0 1px 20px rgba(0, 0, 0, 0.6);
}

.page-story #closing .fl-story__description p {
  margin-inline: auto;
  max-width: min(28rem, 100%);
}

.page-story #closing .fl-story__description p:first-child {
  color: #f0f0f0;
}

/* ------------------------------------------------------------------ */

/* Scene 6 — Invite / CTA: final chapter, calm invitation             */

/* ------------------------------------------------------------------ */

.page-story #invite {
  padding-block: clamp(7.5rem, 19vh, 13rem) clamp(8.5rem, 21vh, 15rem);
  text-align: center;
  background: radial-gradient(ellipse 48% 38% at 50% 100%, rgba(255, 79, 163, 0.240), transparent 65%), linear-gradient(180deg, #0d0d12 0%, #060608 100%);
  border-top: 1px solid rgba(255, 255, 255, 0.04);
}

.page-story #invite .l-container {
  display: flex;
  justify-content: center;
}

.page-story #invite .fl-story__grid {
  margin-inline: auto;
  max-width: 34rem;
  justify-items: center;
}

.page-story #invite .fl-story__label {
  color: var(--fl-gold, #c9a14a);
  letter-spacing: 0.3em;
}

.page-story #invite .fl-story__title {
  font-size: clamp(2.85rem, 5.6vw, 4.35rem);
  max-width: 14ch;
}

.page-story #invite .fl-story__description p {
  margin-inline: auto;
  max-width: 30ch;
}

.page-story #invite .fl-story__actions {
  margin-top: 3rem;
}

.page-story #invite .fl-story__actions .fl-btn {
  min-width: 14.5rem;
  background: transparent;
  border-color: rgba(255, 79, 163, 0.85);
  color: #fff;
}

.page-story #invite .fl-story__actions .fl-btn:hover,
.page-story #invite .fl-story__actions .fl-btn:focus-visible {
  background: var(--fl-pink, #d12b74);
  border-color: var(--fl-pink, #d12b74);
  box-shadow: 0 16px 40px rgba(255, 79, 163, 0.25);
}

@media (max-width: 899px) {

  /* ------------------------------------------------------------------ */

  /* Mobile: preserve scene character without cramped stacking          */

  /* ------------------------------------------------------------------ */

  .page-story #philosophy,
  .page-story #craftsmanship,
  .page-story #ingredients {
    padding-block: clamp(4.5rem, 12vh, 7rem);
  }

  .page-story #closing {
    padding-block: 0;
  }

  .page-story #invite {
    padding-block: clamp(5.5rem, 14vh, 8rem) clamp(6rem, 16vh, 10rem);
  }

  .page-story #ingredients .fl-story__copy {
    display: block;
  }

  .page-story #craftsmanship .fl-story__description p:first-child {
    max-width: 22ch;
  }
}

@media (prefers-reduced-motion: reduce) {

  .page-story #craftsmanship .fl-story__img {
    box-shadow: none;
  }
}

/* ================================================================== */

/* FINAL DIRECTOR PASS — Editorial magazine / film frames             */

/* ================================================================== */

.page-story {
  --fl-dir-reveal-y: 2.25rem;
  --fl-dir-reveal-ms: 1.35s;
}

.page-story .fl-hero__heading {
  font-weight: 500;
}

.page-story .fl-hero__subheading {
  line-height: 1.7;
  opacity: 0.88;
}

.page-story .fl-hero__actions {
  justify-content: flex-start;
}

/* Film letterbox breathing */

.page-story .fl-story {
  padding-block: clamp(8rem, 22vh, 15rem);
}

.page-story .fl-story__title {
  font-weight: 500;
}

@media (prefers-reduced-motion: no-preference) {

  /* Slow cinematic reveal */

  .page-story .fl-reveal.is-pending {
    transform: translateY(var(--fl-dir-reveal-y));
    transition-duration: var(--fl-dir-reveal-ms);
    transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
  }
}

@media (max-width: 899px) {

  .page-story .fl-hero__content {
    text-align: left;
  }
}

.page-story .fl-hero__content {
  max-width: 40rem;
}

.page-story .fl-hero__heading {
  margin-bottom: 1.75rem;
}

.page-story .fl-hero__subheading {
  margin-bottom: 2.5rem;
}

/* Long documentary rhythm — unequal air */

.page-story .fl-story:nth-of-type(odd) {
  padding-block: clamp(9rem, 24vh, 16rem);
}

.page-story .fl-story:nth-of-type(even) {
  padding-block: clamp(6.5rem, 16vh, 11rem);
}

.page-story .fl-gallery {
  padding-block: clamp(7rem, 18vh, 12rem);
}

.page-story .fl-story__title {
  line-height: 1.05;
}

.page-story .fl-story__label {
  letter-spacing: 0.38em;
  font-size: 0.7rem;
}

.page-story .fl-story__description p {
  max-width: 36ch;
  line-height: 1.9;
  font-size: 1.05rem;
}

.page-story .fl-story__description p:first-child {
  color: #f4f4f4;
}

/* Very large photographs */

.page-story .fl-story__img {
  aspect-ratio: 3 / 4;
  object-position: center 28%;
  width: 100%;
  max-width: none;
}

@media (min-width: 900px) {

  .page-story .fl-story__grid {
    align-items: center;
  }

  .page-story .fl-story--image-left .fl-story__grid,
  .page-story .fl-story--image-right .fl-story__grid {
    grid-template-columns: minmax(var(--fl-text-min), 1.2fr) minmax(var(--fl-image-min), 0.85fr);
  }

  .page-story .fl-story--image-left .fl-story__media {
    order: -1;
  }
}

.page-story .fl-gallery__img {
  aspect-ratio: 4 / 5;
  object-position: center 30%;
}

/* ================================================================== */

/* FINAL ART DIRECTION — Film chapter (break template rhythm)         */

/* ================================================================== */

/* Content only — header/footer keep global container from main.css */

.page-story .c-site-main {
  --fl-container: 76rem;
}

.page-story .c-site-main .l-container {
  max-width: var(--fl-container);
  padding-inline: clamp(1.25rem, 4vw, 3.5rem);
}

.page-story .fl-hero {
  min-height: 100svh;
  align-items: end;
}

.page-story .fl-hero__image,
.page-story .fl-hero__video {
  object-position: 18% 42%;
  transform: scale(1.08);
  transform-origin: 18% 42%;
  /* No brightness/contrast correction here. Measured on the live images:
     this filter clipped 13-68% of every hero to flat white or flat black,
     which is what read as "hazy". The hero block already exposes
     --fl-hero-filter for genuine per-image correction from the editor.
     See FIX-15 — and FIX-06, which removed the same filter from the block
     stylesheet but left these nine page-level copies behind. */
}

.page-story .fl-hero__overlay {
  background: linear-gradient(100deg, rgba(0, 0, 0, 0.82) 0%, rgba(0, 0, 0, 0.35) 42%, rgba(0, 0, 0, 0.15) 68%, rgba(0, 0, 0, 0.55) 100%);
}

.page-story .fl-hero__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: min(100%, 38rem);
  margin-inline: 0 auto 0 0;
  text-align: left;
  padding-block: clamp(5rem, 12vh, 8rem) clamp(4.5rem, 11vh, 7.5rem);
}

.page-story .fl-hero__heading {
  font-size: clamp(4.5rem, 11vw, 8rem);
  font-style: italic;
  letter-spacing: -0.02em;
  line-height: 0.94;
  text-transform: none;
  max-width: 10ch;
}

.page-story .fl-hero__subheading {
  max-width: 24ch;
  padding-left: 1.5rem;
  border-left: 1px solid rgba(201, 161, 74, 0.5);
  font-size: clamp(1.05rem, 1.9vw, 1.2rem);
}

.page-story .fl-btn--primary {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.35);
}

.page-story .fl-btn--primary:hover,
.page-story .fl-btn--primary:focus-visible {
  background: rgba(255, 255, 255, 0.130);
  transform: none;
  box-shadow: none;
}

.page-story .fl-story:nth-of-type(1) {
  padding-block: clamp(11rem, 28vh, 18rem);
}

.page-story .fl-story:nth-of-type(2) {
  padding-block: clamp(5.5rem, 13vh, 9rem);
}

.page-story .fl-story:nth-of-type(3) {
  padding-block: clamp(9rem, 22vh, 15rem);
}

.page-story .fl-story:nth-of-type(4) {
  padding-block: clamp(6rem, 15vh, 10rem);
}

.page-story .fl-story:nth-of-type(5) {
  padding-block: clamp(10rem, 24vh, 16rem);
}

.page-story .fl-story:nth-of-type(n + 6) {
  padding-block: clamp(7rem, 17vh, 12rem);
}

.page-story .fl-story__title {
  font-size: clamp(3.5rem, 7.5vw, 6rem);
  font-style: italic;
  letter-spacing: -0.02em;
  max-width: 9ch;
}

.page-story .fl-story__description p:first-child {
  font-size: clamp(1.3rem, 2.5vw, 1.65rem);
  max-width: 28ch;
}

@media (min-width: 900px) {

  .page-story .fl-story__grid {
    gap: clamp(4.5rem, 11vw, 9rem);
  }

  .page-story .fl-story:nth-of-type(odd) .fl-story__grid {
    grid-template-columns: minmax(var(--fl-text-min), 1.35fr) minmax(var(--fl-image-min), 0.75fr);
  }

  .page-story .fl-story:nth-of-type(even) .fl-story__grid {
    grid-template-columns: minmax(var(--fl-image-min), 0.75fr) minmax(var(--fl-text-min), 1.35fr);
  }
}

.page-story .fl-gallery .l-container {
  max-width: 68rem;
}

.page-story .fl-gallery__grid {
  gap: clamp(1rem, 2.2vw, 1.75rem);
}

.page-story #gallery .l-container {
  max-width: min(72rem, 100%);
}

/* ================================================================== */

/* QUALITY PASS — calmer title breathing + measured chapter titles    */

/* Scoped to .page-story only (loaded solely on /story/). No layout    */

/* or concept change: readability + proportion toward Apple / MUJI     */

/* restraint.                                                          */

/* ================================================================== */

/* Large multi-line JA display titles were set very tight (1.02–1.08),
   so stacked lines nearly collided. Relax to a calmer, premium rhythm. */

.page-story #invite .fl-story__title {
  line-height: 1.18;
}

/* Ingredients title uses 1.05 (set on the section rules above). */

/* Craftsmanship title sits in the narrow (0.68fr) text column; a hair
   more measure and a slightly smaller cap let it settle in ~2 lines
   instead of cramped stacking. */

.page-story #craftsmanship .fl-story__title {
  max-width: 13ch;
  font-size: clamp(2.4rem, 4.4vw, 3.5rem);
  line-height: 1.18;
}

/* Closing intertitle read oversized and cramped — keep it a large,
   quiet statement but give it air and a calmer cap. */

.page-story #closing .fl-story__title {
  max-width: 13ch;
  font-size: clamp(3.2rem, 6.2vw, 5rem);
  line-height: 1.16;
}

@media (min-width: 900px) {

  /* ------------------------------------------------------------------ */

  /* Layout corrections (review feedback)                               */

  /* ------------------------------------------------------------------ */

  /* CRAFT — image sat bottom-anchored while the copy column was too
     narrow, leaving a large void top-left and an unbalanced pairing.
     Rebalance the columns and center image + text against each other. */

  .page-story #craftsmanship .fl-story__grid {
    grid-template-columns: minmax(var(--fl-image-min), 1.15fr) minmax(var(--fl-text-min), 0.85fr);
    align-items: center;
  }

  .page-story #craftsmanship .fl-story__copy {
    padding-bottom: 0;
  }
}

/* CLOSING / NEXT — the centered flex .l-container shrank the grid to
   min-content, so CJK titles collapsed to one character per line.
   Give the grid a real width and a full-width column so titles wrap at
   their own measure (2 calm lines) and stay centered. */

.page-story #closing .fl-story__grid,
.page-story #invite .fl-story__grid {
  width: 100%;
  grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 900px) {

  /* ------------------------------------------------------------------ */

  /* INGREDIENTS — full-width cinematic still + soft left scrim          */

  /* Refinement only: wider frame, subtler overlay, calmer type.         */

  /* Do not crop / replace the photo. Bottle stays in the original art.  */

  /* ------------------------------------------------------------------ */

  .page-story #ingredients {
    padding-block: 0;
  }

  .page-story #ingredients .fl-story__grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
    gap: 0;
    max-width: none;
    width: 100%;
    margin-inline: 0;
  }

  /* Copy + media share one cell → text renders over the image. */

  .page-story #ingredients .fl-story__copy,
  .page-story #ingredients .fl-story__media {
    grid-column: 1;
    grid-row: 1;
  }

  .page-story #ingredients .fl-story__media,
  .page-story #ingredients .fl-story__media.fl-image-frame,
  .page-story #ingredients .fl-image-frame {
    order: 0;
    position: relative;
    z-index: 1;
    margin: 0;
    width: 100%;
    max-width: none;
    max-height: none;
    aspect-ratio: 3 / 2; /* match source 1536×1024 — no extra crop */
    overflow: hidden;
    border-radius: 0 !important; /* remove floating-card corners */
  }

  .page-story #ingredients .fl-story__media .fl-image-frame__viewport {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
  }

  .page-story #ingredients .fl-story__img {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    object-fit: cover;
    object-position: center 42%; /* unchanged focus — bottle stays in frame */
  }

  /* Subtle left scrim for type only — bottle side stays clear. */

  .page-story #ingredients .fl-story__media::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.65) 0%,
      rgba(0, 0, 0, 0.45) 25%,
      rgba(0, 0, 0, 0.15) 55%,
      rgba(0, 0, 0, 0) 100%
    );
    pointer-events: none;
  }

  .page-story #ingredients .fl-story__copy {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: clamp(1.15rem, 2.4vw, 2rem);
    width: 100%;
    max-width: 46rem;
    /* Keep type readable inset from the full-bleed edges */
    padding: clamp(2.25rem, 5vw, 4.5rem) clamp(2.5rem, 5vw, 5rem);
  }

  .page-story #ingredients .fl-story__label {
    grid-column: auto;
    grid-row: auto;
    max-width: none;
  }

  .page-story #ingredients .fl-story__title,
  .page-story #ingredients .fl-story__description {
    grid-column: auto;
    grid-row: auto;
  }

  .page-story #ingredients .fl-story__title {
    max-width: 16ch;
    font-size: clamp(2.5rem, 3.6vw, 3.75rem); /* ~56–60px desktop */
    line-height: 1.05;
    text-shadow: 0 2px 32px rgba(0, 0, 0, 0.55);
  }

  .page-story #ingredients .fl-story__description {
    max-width: min(26rem, 100%); /* ~416px */
    padding-bottom: 0;
  }

  .page-story #ingredients .fl-story__description p {
    max-width: min(26rem, 100%);
    margin-bottom: 1.15rem;
    text-shadow: 0 1px 20px rgba(0, 0, 0, 0.55);
  }
}
