/**
 * Sustainability page — /sustainability
 *
 * Sections are rendered by the alpine/sustain-* blocks. Motion uses the
 * CSS-first system: `data-sustain-reveal` for hero entrance, `data-sustain-fade`
 * for scroll reveals (JS adds `.is-inview`), `data-sustain-parallax` for images.
 * Registered in assets/js/alpine-motion.js under the `sustain` namespace.
 */

/* ==========================================================================
   Shared section rhythm
   ========================================================================== */

.alp-sustain-intro,
.alp-sustain-pillars,
.alp-sustain-snapshot,
.alp-sustain-plan,
.alp-sustain-lnt,
.alp-sustain-suppliers,
.alp-sustain-initiatives,
.alp-sustain-people,
.alp-sustain-downloads,
.alp-sustain-cta {
  padding: clamp(72px, 10vw, 140px) 24px;
}

.alp-sustain-intro__inner,
.alp-sustain-pillars__inner,
.alp-sustain-snapshot__inner,
.alp-sustain-plan__inner,
.alp-sustain-lnt__inner,
.alp-sustain-suppliers__inner,
.alp-sustain-initiatives__inner,
.alp-sustain-people__inner,
.alp-sustain-downloads__inner,
.alp-sustain-cta__inner {
  max-width: 1200px;
  margin: 0 auto;
}

.alp-sustain-intro h2,
.alp-sustain-pillars h2,
.alp-sustain-snapshot h2,
.alp-sustain-plan h2,
.alp-sustain-lnt h2,
.alp-sustain-suppliers h2,
.alp-sustain-initiatives h2,
.alp-sustain-people h2,
.alp-sustain-downloads h2,
.alp-sustain-cta h2 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.9rem, 3.6vw, 2.9rem);
  font-weight: 400;
  line-height: 1.15;
  margin: 0 0 20px;
  color: var(--alpine-text);
}

.alp-sustain-plan__intro,
.alp-sustain-pillars__intro,
.alp-sustain-lnt__intro,
.alp-sustain-suppliers__intro,
.alp-sustain-initiatives__intro,
.alp-sustain-people__intro,
.alp-sustain-downloads__intro {
  font-size: clamp(1rem, 1.5vw, 1.08rem);
  line-height: 1.75;
  color: var(--alpine-text);
  opacity: 0.86;
  max-width: 68ch;
  margin: 0;
}

/* ==========================================================================
   Hero
   ========================================================================== */

.alp-sustain-hero {
  position: relative;
  min-height: clamp(560px, 88vh, 900px);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  isolation: isolate;
}

.alp-sustain-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.alp-sustain-hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.alp-sustain-hero__veil {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(10, 18, 12, 0.52) 0%, rgba(10, 18, 12, 0.18) 38%, rgba(10, 18, 12, 0.86) 100%);
}

.alp-sustain-hero__content {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  padding: 0 24px clamp(80px, 12vh, 140px);
  color: #fff;
}

.alp-sustain-hero h1 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(2.4rem, 6.4vw, 5rem);
  font-weight: 400;
  line-height: 1.06;
  margin: 0 0 20px;
  color: #fff;
}

.alp-sustain-hero__line {
  display: block;
}

.alp-sustain-hero__line--em {
  font-style: italic;
}

.alp-sustain-hero__sub {
  font-size: clamp(1rem, 1.8vw, 1.2rem);
  line-height: 1.65;
  max-width: 56ch;
  margin: 0 0 32px;
  color: #fff;
}

.alp-sustain-hero__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.alp-sustain-hero__scroll {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.alp-sustain-hero__scroll svg {
  animation: alp-sustain-bob 2.2s ease-in-out infinite;
}

@keyframes alp-sustain-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(6px); }
}

/* ==========================================================================
   Intro — narrative + image
   ========================================================================== */

.alp-sustain-intro__inner {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
}

.alp-sustain-intro__text p {
  font-size: clamp(1rem, 1.5vw, 1.06rem);
  line-height: 1.8;
  color: var(--alpine-text);
  opacity: 0.88;
  margin: 0 0 18px;
}

.alp-sustain-intro__quote {
  margin: 28px 0 0;
  padding: 4px 0 4px 22px;
  border-left: 3px solid var(--alpine-accent);
}

.alp-sustain-intro__quote p {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.25rem, 2.2vw, 1.65rem);
  font-style: italic;
  line-height: 1.45;
  opacity: 1;
  margin: 0;
}

.alp-sustain-intro__media {
  overflow: hidden;
  border-radius: 10px;
}

.alp-sustain-intro__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
}

/* ==========================================================================
   Pillars — approach card grid
   ========================================================================== */

.alp-sustain-pillars {
  background: color-mix(in srgb, var(--alpine-brand) 6%, var(--alpine-bg));
}

.alp-sustain-pillars__head {
  max-width: 68ch;
  margin: 0 0 clamp(32px, 5vw, 56px);
}

.alp-sustain-pillars__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
  /* Cards hug their own content — pillar copy varies from ~100 to ~430
     characters, and stretching every card in a row to match its tallest
     sibling leaves large empty gaps under the short ones. */
  align-items: start;
}

/* Long-form pillars (>260 chars, flagged in render.php) are pushed below the
   short ones and given two columns, so their depth is absorbed by width rather
   than dragging a whole row of short cards down with them. `order` only moves
   them visually; DOM order — and therefore reading order — is unchanged. */
.alp-sustain-pillars__card--wide {
  order: 1;
}

@media (min-width: 861px) {
  /* Explicit 3-up so `span 2` has a fixed meaning; auto-fit would let the
     column count drift and the span would overflow at narrow widths. */
  .alp-sustain-pillars__grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .alp-sustain-pillars__card--wide {
    grid-column: span 2;
  }
}

@media (min-width: 561px) and (max-width: 860px) {
  .alp-sustain-pillars__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* At 2-up a two-column span is the full row — still the right call, since
     these cards are the tall ones. */
  .alp-sustain-pillars__card--wide {
    grid-column: 1 / -1;
  }
}

.alp-sustain-pillars__card {
  background: var(--alpine-surface);
  border: 1px solid color-mix(in srgb, var(--alpine-text) 12%, transparent);
  border-radius: 10px;
  padding: 28px 26px;
  transition: transform 0.4s var(--alp-ease-out2), box-shadow 0.4s var(--alp-ease-out2);
}

.alp-sustain-pillars__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 34px rgba(20, 32, 22, 0.12);
}

.alp-sustain-pillars__card-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 1.35rem;
  font-weight: 400;
  line-height: 1.25;
  margin: 0 0 10px;
  color: var(--alpine-brand);
}

.alp-sustain-pillars__card-body {
  font-size: 0.95rem;
  line-height: 1.7;
  margin: 0;
  color: var(--alpine-text);
  opacity: 0.84;
}

/* ==========================================================================
   Snapshot — dark emissions stat ribbon
   ========================================================================== */

.alp-sustain-snapshot {
  background: #111512;
  color: #ecf2e9;
}

.alp-sustain-snapshot h2 {
  color: #ecf2e9;
}

.alp-sustain-snapshot .alp-eyebrow {
  color: #d6a85c;
}

.alp-sustain-snapshot__head {
  max-width: 62ch;
  margin: 0 0 clamp(32px, 5vw, 52px);
}

.alp-sustain-snapshot__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 28px;
}

.alp-sustain-snapshot__item {
  padding-left: 20px;
  border-left: 2px solid rgba(214, 168, 92, 0.55);
}

.alp-sustain-snapshot__value {
  display: block;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(2.2rem, 4.4vw, 3.2rem);
  line-height: 1;
  color: #ffffff;
  margin-bottom: 10px;
}

.alp-sustain-snapshot__label {
  display: block;
  font-size: 0.9rem;
  line-height: 1.55;
  color: #d8e2d5;
}

.alp-sustain-snapshot__footnote {
  margin: clamp(32px, 5vw, 48px) 0 0;
  font-size: 0.82rem;
  line-height: 1.6;
  color: #b9c6b6;
  max-width: 80ch;
}

/* ==========================================================================
   Plan — TERC stages + actions table
   ========================================================================== */

.alp-sustain-plan__head {
  max-width: 70ch;
  margin: 0 0 clamp(28px, 4vw, 44px);
}

.alp-sustain-plan__stage {
  margin-top: clamp(32px, 4.5vw, 52px);
}

.alp-sustain-plan__stage-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.35rem, 2.4vw, 1.75rem);
  font-weight: 400;
  margin: 0 0 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid color-mix(in srgb, var(--alpine-text) 16%, transparent);
  color: var(--alpine-brand);
}

.alp-sustain-plan__stage > p {
  font-size: 1rem;
  line-height: 1.75;
  color: var(--alpine-text);
  opacity: 0.86;
  margin: 0;
  max-width: 78ch;
}

.alp-sustain-plan__scroller {
  margin-top: 24px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid color-mix(in srgb, var(--alpine-text) 14%, transparent);
  border-radius: 10px;
}

.alp-sustain-plan__scroller:focus-visible {
  outline: 3px solid var(--alpine-accent);
  outline-offset: 2px;
}

.alp-sustain-plan__table {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
  font-size: 0.92rem;
  background: var(--alpine-surface);
}

.alp-sustain-plan__table caption {
  caption-side: top;
  text-align: left;
  padding: 16px 18px;
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--alpine-text);
  opacity: 0.75;
  border-bottom: 1px solid color-mix(in srgb, var(--alpine-text) 12%, transparent);
}

.alp-sustain-plan__table thead th {
  text-align: left;
  padding: 14px 18px;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: #ffffff;
  background: var(--alpine-brand);
  white-space: nowrap;
}

.alp-sustain-plan__table tbody th,
.alp-sustain-plan__table tbody td {
  padding: 15px 18px;
  vertical-align: top;
  border-bottom: 1px solid color-mix(in srgb, var(--alpine-text) 10%, transparent);
  line-height: 1.6;
}

.alp-sustain-plan__table tbody th {
  text-align: left;
  font-weight: 600;
  color: var(--alpine-text);
  min-width: 190px;
}

.alp-sustain-plan__table tbody td {
  color: var(--alpine-text);
  opacity: 0.88;
}

.alp-sustain-plan__table tbody tr:last-child th,
.alp-sustain-plan__table tbody tr:last-child td {
  border-bottom: 0;
}

.alp-sustain-plan__table tbody tr:nth-child(even) th,
.alp-sustain-plan__table tbody tr:nth-child(even) td {
  background: color-mix(in srgb, var(--alpine-brand) 4%, transparent);
}

.alp-sustain-plan__when {
  white-space: nowrap;
}

.alp-sustain-plan__pill {
  display: inline-block;
  padding: 5px 13px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

/* AA contrast in light mode: 7.4:1 and 8.1:1 respectively */
.alp-sustain-plan__pill--complete {
  background: #d7e7d8;
  color: #1d4023;
}

.alp-sustain-plan__pill--underway {
  background: #f5e6cd;
  color: #5a3d10;
}

.alp-sustain-plan__pill--neutral {
  background: color-mix(in srgb, var(--alpine-text) 10%, transparent);
  color: var(--alpine-text);
}

/* ==========================================================================
   Leave No Trace
   ========================================================================== */

.alp-sustain-lnt {
  background: color-mix(in srgb, var(--alpine-brand) 6%, var(--alpine-bg));
}

.alp-sustain-lnt__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 5vw, 64px);
  align-items: start;
}

.alp-sustain-lnt__lede {
  font-size: clamp(1rem, 1.5vw, 1.06rem);
  line-height: 1.8;
  color: var(--alpine-text);
  opacity: 0.88;
  margin: 0;
}

.alp-sustain-lnt__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.alp-sustain-lnt__item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 15px 0;
  border-bottom: 1px solid color-mix(in srgb, var(--alpine-text) 12%, transparent);
  font-size: 0.98rem;
  line-height: 1.6;
  color: var(--alpine-text);
}

.alp-sustain-lnt__item:last-child {
  border-bottom: 0;
}

.alp-sustain-lnt__tick {
  flex: none;
  width: 22px;
  height: 22px;
  margin-top: 1px;
  border-radius: 50%;
  background: var(--alpine-brand);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 700;
}

.alp-sustain-lnt__inroom {
  margin-top: 28px;
  padding: 24px 26px;
  background: var(--alpine-surface);
  border-left: 3px solid var(--alpine-accent);
  border-radius: 8px;
}

.alp-sustain-lnt__inroom-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 1.25rem;
  font-weight: 400;
  margin: 0 0 8px;
  color: var(--alpine-brand);
}

.alp-sustain-lnt__inroom p {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--alpine-text);
  opacity: 0.86;
}

.alp-sustain-lnt__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

/* ==========================================================================
   Suppliers
   ========================================================================== */

.alp-sustain-suppliers__lede {
  max-width: 70ch;
  margin: 0 0 clamp(32px, 5vw, 52px);
}

.alp-sustain-suppliers__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(268px, 1fr));
  gap: 20px;
}

.alp-sustain-suppliers__card {
  background: var(--alpine-surface);
  border: 1px solid color-mix(in srgb, var(--alpine-text) 12%, transparent);
  border-top: 3px solid var(--alpine-accent);
  border-radius: 10px;
  padding: 26px 24px;
}

.alp-sustain-suppliers__name {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 1.3rem;
  font-weight: 400;
  margin: 0 0 8px;
  color: var(--alpine-brand);
}

.alp-sustain-suppliers__body {
  font-size: 0.93rem;
  line-height: 1.7;
  margin: 0;
  color: var(--alpine-text);
  opacity: 0.84;
}

.alp-sustain-suppliers__wine {
  margin-top: clamp(36px, 5vw, 56px);
  padding: clamp(28px, 4vw, 44px);
  background: color-mix(in srgb, var(--alpine-brand) 8%, var(--alpine-surface));
  border-radius: 12px;
  max-width: 90ch;
}

.alp-sustain-suppliers__wine-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.4rem, 2.4vw, 1.85rem);
  font-weight: 400;
  margin: 0 0 12px;
  color: var(--alpine-brand);
}

.alp-sustain-suppliers__wine p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.78;
  color: var(--alpine-text);
  opacity: 0.88;
}

/* ==========================================================================
   Initiatives — alternating rows
   ========================================================================== */

.alp-sustain-initiatives__intro {
  margin-bottom: clamp(32px, 5vw, 52px);
}

.alp-sustain-initiatives__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(28px, 4.5vw, 64px);
  align-items: center;
  padding: clamp(28px, 4vw, 44px) 0;
  border-top: 1px solid color-mix(in srgb, var(--alpine-text) 12%, transparent);
}

.alp-sustain-initiatives__row--full {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.alp-sustain-initiatives__row--reverse .alp-sustain-initiatives__media {
  order: -1;
}

.alp-sustain-initiatives__title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.35rem, 2.4vw, 1.8rem);
  font-weight: 400;
  margin: 0 0 12px;
  color: var(--alpine-brand);
}

.alp-sustain-initiatives__body {
  font-size: 1rem;
  line-height: 1.78;
  margin: 0;
  color: var(--alpine-text);
  opacity: 0.87;
}

.alp-sustain-initiatives__media {
  overflow: hidden;
  border-radius: 10px;
}

.alp-sustain-initiatives__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 260px;
  object-fit: cover;
}

/* ==========================================================================
   People
   ========================================================================== */

.alp-sustain-people {
  background: color-mix(in srgb, var(--alpine-brand) 6%, var(--alpine-bg));
}

.alp-sustain-people__intro {
  max-width: 72ch;
}

.alp-sustain-people__body {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--alpine-text);
  opacity: 0.87;
  max-width: 72ch;
  margin: 0 0 18px;
}

.alp-sustain-people__heritage {
  margin-top: clamp(32px, 4.5vw, 48px);
  padding: clamp(26px, 3.5vw, 40px);
  background: var(--alpine-surface);
  border-left: 3px solid var(--alpine-accent);
  border-radius: 10px;
  max-width: 90ch;
}

.alp-sustain-people__heritage-title,
.alp-sustain-people__experiences-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.35rem, 2.4vw, 1.75rem);
  font-weight: 400;
  margin: 0 0 12px;
  color: var(--alpine-brand);
}

.alp-sustain-people__heritage p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.78;
  color: var(--alpine-text);
  opacity: 0.88;
}

.alp-sustain-people__experiences {
  margin-top: clamp(36px, 5vw, 56px);
}

.alp-sustain-people__list {
  list-style: none;
  margin: 20px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 18px;
}

.alp-sustain-people__item {
  padding: 20px 22px;
  background: var(--alpine-surface);
  border: 1px solid color-mix(in srgb, var(--alpine-text) 12%, transparent);
  border-radius: 10px;
}

.alp-sustain-people__item-name {
  display: block;
  font-weight: 700;
  font-size: 1rem;
  margin-bottom: 6px;
  color: var(--alpine-brand);
}

.alp-sustain-people__item-body {
  display: block;
  font-size: 0.92rem;
  line-height: 1.65;
  color: var(--alpine-text);
  opacity: 0.84;
}

/* ==========================================================================
   Downloads
   ========================================================================== */

.alp-sustain-downloads__head {
  max-width: 68ch;
  margin: 0 0 clamp(32px, 5vw, 52px);
}

.alp-sustain-downloads__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(276px, 1fr));
  gap: 22px;
}

.alp-sustain-downloads__card {
  display: flex;
  flex-direction: column;
  background: var(--alpine-surface);
  border: 1px solid color-mix(in srgb, var(--alpine-text) 14%, transparent);
  border-radius: 12px;
  padding: 28px 26px;
}

.alp-sustain-downloads__icon {
  color: var(--alpine-accent);
  margin-bottom: 14px;
}

.alp-sustain-downloads__title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 1.25;
  margin: 0 0 10px;
  color: var(--alpine-text);
}

.alp-sustain-downloads__desc {
  font-size: 0.93rem;
  line-height: 1.7;
  margin: 0 0 12px;
  color: var(--alpine-text);
  opacity: 0.84;
}

.alp-sustain-downloads__meta {
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--alpine-text);
  opacity: 0.62;
  margin: 0 0 20px;
}

.alp-sustain-downloads__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: auto;
}

/* ==========================================================================
   Closing CTA
   ========================================================================== */

/* Deep brand band — bookends the page against the dark snapshot ribbon and
   separates the closing statement from the cream downloads section above. */
.alp-sustain-cta {
  background: #2b4531;
  text-align: center;
}

.alp-sustain-cta__inner {
  max-width: 800px;
}

.alp-sustain-cta h2 {
  color: #ffffff;
}

/* Small uppercase text — lightened to clear AAA (7:1) on the green band. */
.alp-sustain-cta .alp-eyebrow {
  color: #f0d3a4;
}

.alp-sustain-cta__body {
  font-size: clamp(1rem, 1.6vw, 1.1rem);
  line-height: 1.8;
  color: #e4ece2;
  opacity: 1;
  margin: 0 auto 32px;
}

/* Buttons sit on dark here, so the light-surface variants are overridden. */
.alp-sustain-cta .alp-btn {
  background: #ffffff;
  border-color: #ffffff;
  color: #23381f;
}

.alp-sustain-cta .alp-btn:hover,
.alp-sustain-cta .alp-btn:focus-visible {
  background: #e8c489;
  border-color: #e8c489;
  color: #23381f;
}

.alp-sustain-cta .alp-btn--outline {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.75);
  color: #ffffff;
}

.alp-sustain-cta .alp-btn--outline:hover,
.alp-sustain-cta .alp-btn--outline:focus-visible {
  background: rgba(255, 255, 255, 0.14);
  border-color: #ffffff;
  color: #ffffff;
}

.alp-sustain-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1024px) {
  .alp-sustain-intro__inner,
  .alp-sustain-lnt__inner,
  .alp-sustain-initiatives__row,
  .alp-sustain-initiatives__row--full {
    grid-template-columns: 1fr;
  }

  .alp-sustain-initiatives__row--reverse .alp-sustain-initiatives__media {
    order: 0;
  }

  .alp-sustain-intro__media img {
    min-height: 260px;
  }
}

@media (max-width: 767px) {
  .alp-sustain-hero {
    min-height: 78vh;
  }

  .alp-sustain-hero__scroll {
    display: none;
  }

  .alp-sustain-snapshot__grid {
    gap: 22px;
  }

  .alp-sustain-plan__table {
    font-size: 0.86rem;
  }

  .alp-sustain-plan__table tbody th {
    min-width: 150px;
  }

  .alp-sustain-downloads__actions .alp-btn {
    flex: 1 1 auto;
    text-align: center;
  }
}

/* ==========================================================================
   Motion — pre-hide (applies even without the .alp-cssmotion class)
   ========================================================================== */

[data-sustain-reveal] {
  opacity: 0;
}

/* CSS motion system */
html.alp-cssmotion [data-sustain-reveal] {
  --alp-rise-y: 40px;
  animation: alp-rise 1s var(--alp-ease-out3) calc(0.3s + var(--i, 0) * 0.18s) both;
}

html.alp-cssmotion [data-sustain-fade] {
  opacity: 0;
  transform: translateY(46px);
  transition: opacity 0.9s var(--alp-ease-out2), transform 0.9s var(--alp-ease-out2);
  transition-delay: calc(var(--i, 0) * 0.06s);
}

html.alp-cssmotion [data-sustain-fade].is-inview {
  opacity: 1;
  transform: none;
}

@supports (animation-timeline: view()) {
  html.alp-cssmotion [data-sustain-parallax] {
    view-timeline-name: --alp-vt;
  }

  html.alp-cssmotion [data-sustain-parallax] img {
    --alp-parallax-base: 4%;
    animation: alp-parallax-y linear both;
    animation-timeline: --alp-vt;
  }
}

@media (prefers-reduced-motion: reduce) {
  .alp-sustain-hero__scroll svg {
    animation: none;
  }

  .alp-sustain-pillars__card {
    transition: none;
  }

  [data-sustain-reveal] {
    opacity: 1;
  }

  html.alp-cssmotion [data-sustain-reveal],
  html.alp-cssmotion [data-sustain-fade] {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }

  html.alp-cssmotion [data-sustain-parallax] img {
    animation: none !important;
  }
}

/* ==========================================================================
   Dark mode
   ========================================================================== */

html[data-theme='dark'] .alp-sustain-pillars,
html[data-theme='dark'] .alp-sustain-lnt,
html[data-theme='dark'] .alp-sustain-people {
  background: color-mix(in srgb, var(--alpine-brand) 10%, var(--alpine-bg));
}

/* The CTA band is deep green in both themes; darken slightly so it does not
   glow against the dark-mode page background. */
html[data-theme='dark'] .alp-sustain-cta {
  background: #1f3325;
}

html[data-theme='dark'] .alp-sustain-pillars__card,
html[data-theme='dark'] .alp-sustain-suppliers__card,
html[data-theme='dark'] .alp-sustain-people__item,
html[data-theme='dark'] .alp-sustain-downloads__card,
html[data-theme='dark'] .alp-sustain-lnt__inroom,
html[data-theme='dark'] .alp-sustain-people__heritage {
  background: var(--alpine-surface);
  border-color: rgba(236, 242, 233, 0.18);
}

html[data-theme='dark'] .alp-sustain-pillars__card:hover {
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.45);
}

html[data-theme='dark'] .alp-sustain-suppliers__wine {
  background: color-mix(in srgb, var(--alpine-brand) 18%, var(--alpine-surface));
}

html[data-theme='dark'] .alp-sustain-plan__scroller {
  border-color: rgba(236, 242, 233, 0.2);
}

html[data-theme='dark'] .alp-sustain-plan__table {
  background: var(--alpine-surface);
}

/* Dark brand is light (#8ab28f) — header text must go dark for AA contrast */
html[data-theme='dark'] .alp-sustain-plan__table thead th {
  background: #24422a;
  color: #ffffff;
}

html[data-theme='dark'] .alp-sustain-plan__table caption,
html[data-theme='dark'] .alp-sustain-plan__table tbody th,
html[data-theme='dark'] .alp-sustain-plan__table tbody td {
  border-color: rgba(236, 242, 233, 0.14);
}

/* AA contrast on dark surfaces: 8.9:1 and 9.4:1 */
html[data-theme='dark'] .alp-sustain-plan__pill--complete {
  background: #becfbf;
  color: #16301b;
}

html[data-theme='dark'] .alp-sustain-plan__pill--underway {
  background: #e4d0ae;
  color: #4a300a;
}

html[data-theme='dark'] .alp-sustain-plan__table tbody tr:nth-child(even) th,
html[data-theme='dark'] .alp-sustain-plan__table tbody tr:nth-child(even) td {
  background: rgba(138, 178, 143, 0.07);
}

html[data-theme='dark'] .alp-sustain-lnt__tick {
  background: var(--alpine-brand);
  color: #10180f;
}

html[data-theme='dark'] .alp-sustain-suppliers__card {
  border-top-color: var(--alpine-accent);
}

/* ==========================================================================
   Contrast hardening — hero text sits over photography
   ========================================================================== */

.alp-sustain-hero h1,
.alp-sustain-hero__line,
.alp-sustain-hero__line--em,
.alp-sustain-hero__sub,
.alp-sustain-hero .alp-eyebrow,
.alp-sustain-hero .alp-btn--ghost {
  color: #ffffff;
  opacity: 1;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.55);
}

.alp-sustain-hero .alp-eyebrow {
  color: #e8c489;
}

.alp-sustain-hero .alp-btn--ghost {
  border-color: rgba(255, 255, 255, 0.92);
}
