/* =========================================================================
   Irish Wine Estates — homepage
   =========================================================================

   Built to match irish-wine-estates-estate-section-redesign.png.

   The reference's visual language, in short:
     - heavy high-contrast serif display type, almost always UPPERCASE
     - full-bleed photography that runs edge to edge, not boxed in a container
     - small stacked "label lists" (LAND / PEOPLE / POSSIBILITY / IRELAND)
     - hard-edged blocks: copper, emerald, midnight. No rounded cards.
     - the one curved shape is the timeline arch

   Scoped to `body.iwe-home` (added by iwe_body_class()).

   Breakpoints match Divi's own: >980 desktop, <=980 tablet, <=767 phone.

   Every `!important` is annotated with the Divi inline style it overrides.
   ========================================================================= */


/* -------------------------------------------------------------------------
   0. Foundations
   ------------------------------------------------------------------------- */

body.iwe-home {
  background: var(--iwe-ivory);
  overflow-x: hidden;
}

body.iwe-home .et_pb_row {
  width: min(100% - (2 * var(--iwe-gutter)), var(--iwe-content-width));
  max-width: var(--iwe-content-width);
  /*
     Divi pads every row by 2.75% top and bottom - about 40px each at this
     width - on top of the section padding. Sections with three rows (the
     timeline) were paying it three times over. The section owns the vertical
     rhythm; rows space themselves with the margin below.
  */
  padding-top: 0;
  padding-bottom: 0;
}

body.iwe-home .et_pb_row + .et_pb_row {
  margin-top: clamp(18px, 2vw, 36px);
}

body.iwe-home .iwe-row--wide {
  width: min(100% - (2 * var(--iwe-gutter)), var(--iwe-wide-width));
  max-width: var(--iwe-wide-width);
}

/*
   Full-bleed rows. The reference runs the hero, terroir, values, timeline and
   estate bands edge to edge; Divi rows are centred and capped, so these are
   released to the viewport width. `!important` is required because Divi prints
   a per-module inline `width`/`max-width` for every row.
*/
body.iwe-home .iwe-row--bleed {
  width: 100% !important;     /* overrides Divi's inline row width */
  max-width: 100% !important; /* overrides Divi's inline row max-width */
  padding-left: 0;
  padding-right: 0;
}

body.iwe-home .iwe-hero,
body.iwe-home .iwe-statement,
body.iwe-home .iwe-terroir,
body.iwe-home .iwe-values,
body.iwe-home .iwe-experiences,
body.iwe-home .iwe-timeline,
body.iwe-home .iwe-estate,
body.iwe-home .iwe-journal,
body.iwe-home .iwe-founding-friends {
  padding-block: var(--iwe-section-pad);
}

/* Sections whose artwork bleeds handle their own vertical padding. */
body.iwe-home .iwe-terroir,
body.iwe-home .iwe-estate {
  padding-block: 0;
}

/* --- shared type ------------------------------------------------------- */

/* Small tracked-out uppercase label. */
body.iwe-home .iwe-label,
body.iwe-home .iwe-label p,
body.iwe-home p.iwe-label {
  font-family: var(--iwe-font-body);
  font-size: clamp(10px, .72vw, 12px);
  font-weight: 700;
  letter-spacing: .26em;
  text-transform: uppercase;
  line-height: 1.4;
  margin: 0 0 1.1rem;
}

/*
   The stacked word lists the reference uses as a recurring motif —
   LAND / PEOPLE / POSSIBILITY / IRELAND beside the hero, EXPERIENCES /
   PEOPLE / PLACE / POSSIBILITY beside "What Will Grow Here".
*/
body.iwe-home .iwe-list {
  list-style: none;
  margin: 0;
  padding: 0;
  font-family: var(--iwe-font-body);
  font-size: clamp(10px, .72vw, 12px);
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
  line-height: 2.1;
}

body.iwe-home .iwe-list li {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Display headings. Heavy, uppercase, tight — the reference's signature. */
body.iwe-home .iwe-h2,
body.iwe-home .iwe-h2 h2 {
  font-family: var(--iwe-font-display);
  font-weight: 700;
  font-size: clamp(34px, 5.2vw, 76px);
  line-height: .98;
  letter-spacing: -.01em;
  text-transform: uppercase;
  margin: 0 0 .4em;
}

body.iwe-home .iwe-link {
  display: inline-flex;
  align-items: center;
  gap: .6em;
  font-family: var(--iwe-font-body);
  font-size: clamp(11px, .8vw, 13px);
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  text-decoration: none;
  padding-bottom: .5em;
  position: relative;
  color: var(--iwe-champagne);
}

body.iwe-home .iwe-link::after {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  bottom: 0;
  height: 1px;
  width: 100%;
  background: currentColor;
  transform: scaleX(1);
  transform-origin: left;
  transition: transform var(--iwe-duration) var(--iwe-ease);
}

body.iwe-home .iwe-link:hover .iwe-arrow {
  transform: translateX(4px);
}

body.iwe-home .iwe-link .iwe-arrow {
  transition: transform var(--iwe-duration) var(--iwe-ease);
}

body.iwe-home .iwe-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Buttons — square, gold, uppercase, with the reference's arrow. */
body.iwe-home .iwe-btn .et_pb_button,
body.iwe-home .et_pb_button.iwe-btn {
  font-family: var(--iwe-font-body);
  font-size: clamp(11px, .8vw, 13px);
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  padding: 1.05em 2.2em;
  border: 1px solid var(--iwe-champagne);
  border-radius: 0;
  background: var(--iwe-champagne);
  color: var(--iwe-midnight);
  transition:
    background-color var(--iwe-duration) var(--iwe-ease),
    color var(--iwe-duration) var(--iwe-ease);
}

body.iwe-home .iwe-btn .et_pb_button:hover,
body.iwe-home .et_pb_button.iwe-btn:hover {
  background: transparent;
  color: var(--iwe-champagne);
  padding: 1.05em 2.2em;
}

body.iwe-home .iwe-btn .et_pb_button::after,
body.iwe-home .et_pb_button.iwe-btn::after {
  display: none !important; /* overrides Divi's inline .et_pb_button:after rule */
}

body.iwe-home .iwe-btn--ghost .et_pb_button,
body.iwe-home .et_pb_button.iwe-btn--ghost {
  background: transparent;
  color: var(--iwe-champagne);
  border-color: var(--iwe-champagne);
}

body.iwe-home .iwe-btn--ghost .et_pb_button:hover,
body.iwe-home .et_pb_button.iwe-btn--ghost:hover {
  background: var(--iwe-champagne);
  color: var(--iwe-midnight);
}


/* -------------------------------------------------------------------------
   0b. Reveal system  (hidden states scoped to .iwe-js — no-JS safe)
   ------------------------------------------------------------------------- */

.iwe-js body.iwe-home .iwe-reveal {
  opacity: 0;
  transform: translateY(26px);
  transition:
    opacity var(--iwe-duration) var(--iwe-ease),
    transform var(--iwe-duration) var(--iwe-ease);
  transition-delay: var(--iwe-reveal-delay, 0ms);
}

.iwe-js body.iwe-home .iwe-reveal.is-visible {
  opacity: 1;
  transform: none;
}

.iwe-js body.iwe-home .iwe-reveal--mask {
  clip-path: inset(100% 0 0 0);
  transform: none;
  transition:
    clip-path 900ms var(--iwe-ease),
    opacity 600ms var(--iwe-ease);
}

.iwe-js body.iwe-home .iwe-reveal--mask.is-visible {
  clip-path: inset(0 0 0 0);
}

body.iwe-home .iwe-stagger > *:nth-child(1) { --iwe-reveal-delay:   0ms; }
body.iwe-home .iwe-stagger > *:nth-child(2) { --iwe-reveal-delay: 110ms; }
body.iwe-home .iwe-stagger > *:nth-child(3) { --iwe-reveal-delay: 220ms; }
body.iwe-home .iwe-stagger > *:nth-child(4) { --iwe-reveal-delay: 330ms; }
body.iwe-home .iwe-stagger > *:nth-child(5) { --iwe-reveal-delay: 440ms; }


/* -------------------------------------------------------------------------
   1. Hero
   ------------------------------------------------------------------------- */

body.iwe-home .iwe-hero {
  position: relative;
  overflow: hidden;
  min-height: min(76vh, 760px);
  display: flex;
  align-items: center;
  /* Top padding clears the absolutely-positioned global header. */
  padding-block: clamp(120px, 13vh, 170px) clamp(52px, 7vh, 90px);
  background-color: var(--iwe-midnight);
}

/* Photo layer: inherits the section background image set in the builder, so
   animating it cannot be overridden by Divi's inline `background-size: cover`. */
body.iwe-home .iwe-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: inherit;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transform: scale(var(--iwe-hero-scale, 1));
  transition: transform 1200ms var(--iwe-ease);
}

.iwe-js body.iwe-home .iwe-hero { --iwe-hero-scale: 1.03; }
.iwe-js body.iwe-home .iwe-hero.is-visible { --iwe-hero-scale: 1; }

/*
   The deep-teal diagonal. A hard colour stop draws the straight edge, so no
   clip-path is needed and each breakpoint retunes it by moving one percentage.
*/
body.iwe-home .iwe-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(
      104deg,
      rgba(6, 62, 58, .97) 0%,
      rgba(6, 62, 58, .96) 32%,
      rgba(6, 62, 58, .90) 38%,
      rgba(6, 62, 58, 0) 38.6%
    ),
    linear-gradient(
      180deg,
      rgba(16, 24, 44, .38) 0%,
      rgba(16, 24, 44, .08) 45%,
      rgba(16, 24, 44, .52) 100%
    );
}

body.iwe-home .iwe-hero > .et_pb_row {
  position: relative;
  z-index: 2;
}

body.iwe-home .iwe-hero__eyebrow p {
  font-family: var(--iwe-font-body);
  font-size: clamp(10px, .75vw, 12px);
  font-weight: 700;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: rgba(247, 240, 227, .9);
  margin: 0 0 1.4rem;
}

/* The headline: heavy, uppercase, very tight leading — the reference's anchor. */
body.iwe-home .iwe-hero__title h1 {
  font-family: var(--iwe-font-display);
  font-size: clamp(42px, 7vw, 106px);
  font-weight: 800;
  line-height: .88;
  letter-spacing: -.015em;
  text-transform: uppercase;
  color: var(--iwe-ivory);
  margin: 0;
}

body.iwe-home .iwe-hero__title .iwe-gold {
  color: var(--iwe-champagne);
  font-style: normal;
}

body.iwe-home .iwe-hero__copy p {
  color: rgba(247, 240, 227, .84);
  font-size: clamp(14px, 1vw, 17px);
  line-height: 1.7;
  margin: 1.6rem 0 2.2rem;
  max-width: 34ch;
}

/* "EST. 2023", upper right. Horizontal in the reference, not rotated. */
body.iwe-home .iwe-hero__est {
  position: absolute;
  z-index: 3;
  top: clamp(24px, 5vh, 64px);
  inset-inline-end: clamp(20px, 3.5vw, 64px);
  text-align: right;
}

body.iwe-home .iwe-hero__est p {
  font-family: var(--iwe-font-display);
  font-size: clamp(16px, 1.5vw, 24px);
  font-weight: 500;
  line-height: 1.1;
  color: rgba(247, 240, 227, .92);
  margin: 0;
}

/*
   LAND / PEOPLE / POSSIBILITY / IRELAND, lower right over the photograph.

   Positioned against the section rather than its column — Divi's column is a
   normal flow box inside the row, so a column-relative offset put the list up
   beside "EST. 2023" instead of down at the foot of the hero.
*/
body.iwe-home .iwe-hero__list {
  position: absolute;
  z-index: 3;
  top: auto;
  bottom: clamp(24px, 7vh, 88px);
  inset-inline-end: clamp(20px, 3.5vw, 64px);
  inset-inline-start: auto;
  color: rgba(247, 240, 227, .95);
  text-align: left;
  line-height: 1.85;
}

@media (max-width: 980px) {
  body.iwe-home .iwe-hero::after {
    background:
      linear-gradient(
        106deg,
        rgba(6, 62, 58, .97) 0%,
        rgba(6, 62, 58, .95) 54%,
        rgba(6, 62, 58, .88) 60%,
        rgba(6, 62, 58, 0) 60.6%
      ),
      linear-gradient(180deg, rgba(16, 24, 44, .4), rgba(16, 24, 44, .1) 45%, rgba(16, 24, 44, .55));
  }

  body.iwe-home .iwe-hero { min-height: 70vh; }
  body.iwe-home .iwe-hero__list { display: none; }
}

@media (max-width: 767px) {
  /* Photograph on top, solid teal content block beneath — no diagonal. */
  body.iwe-home .iwe-hero {
    display: block;
    min-height: 0;
    padding: 0;
    background-color: var(--iwe-deep-teal);
    --iwe-hero-image-height: 42vh;
  }

  body.iwe-home .iwe-hero::before {
    inset: 0 0 auto 0;
    height: var(--iwe-hero-image-height);
    transform: none;
    transition: none;
  }

  body.iwe-home .iwe-hero::after {
    inset: 0 0 auto 0;
    height: var(--iwe-hero-image-height);
    background: linear-gradient(180deg, rgba(16, 24, 44, .45), rgba(16, 24, 44, .12) 55%, rgba(6, 78, 75, .4));
  }

  body.iwe-home .iwe-hero > .et_pb_row {
    padding-top: calc(var(--iwe-hero-image-height) + 36px);
    padding-bottom: 60px;
  }

  body.iwe-home .iwe-hero__est { top: 12px; inset-inline-end: 16px; }
  body.iwe-home .iwe-hero__copy p { max-width: none; }
}


/* -------------------------------------------------------------------------
   2. Planting statement
   ------------------------------------------------------------------------- */

body.iwe-home .iwe-statement {
  background: var(--iwe-ivory);
  padding-block: clamp(34px, 3.6vw, 62px);
}

/*
   Divi's 1_4 / 1_2 / 1_4 left the headline only half the row, so
   "WE ARE NOT FOLLOWING A TRADITION." broke over three lines instead of the
   reference's one. The row is gridded to give the statement the bulk of it.
*/
@media (min-width: 981px) {
  body.iwe-home .iwe-statement .et_pb_row {
    display: grid;
    grid-template-columns: .5fr 1.9fr .45fr;
    column-gap: clamp(20px, 2.4vw, 46px);
    align-items: center;
  }

  body.iwe-home .iwe-statement .et_pb_row > .et_pb_column {
    width: auto !important;     /* overrides Divi's inline column width */
    margin-right: 0 !important; /* overrides Divi's inline column gutter */
  }
}

/*
   Aspect ratio goes on the CONTAINER, never on the <img>.

   An <img> with `aspect-ratio` + `width:100%` inside a grid or flex cell
   resolves to a correctly-sized box that paints nothing at all - verified by
   instrumenting it: the box measured 308x248 as intended but rendered empty,
   and adding an explicit height made the photograph appear. Sizing the wrapper
   and letting the image fill it with height:100% is reliable everywhere.
*/
body.iwe-home .iwe-statement__image .et_pb_image_wrap {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  overflow: hidden;
}

body.iwe-home .iwe-statement__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 50%;
}

/*
   In the reference this is one very large two-line statement running almost
   the full width, not a narrow column — so no max-width here.
*/
body.iwe-home .iwe-statement__text p {
  font-family: var(--iwe-font-display);
  font-size: clamp(26px, 3.6vw, 60px);
  font-weight: 600;
  line-height: 1.04;
  letter-spacing: -.01em;
  text-transform: uppercase;
  color: var(--iwe-midnight);
  max-width: none;
  margin: 0;
}

body.iwe-home .iwe-statement__text .iwe-emerald {
  color: var(--iwe-emerald);
  display: block;
}

/* Thin emerald rule that grows left to right, ending in a leaf. */
body.iwe-home .iwe-statement__rule {
  position: relative;
  display: block;
  height: 1px;
  width: min(420px, 78%);
  margin-top: clamp(18px, 2vw, 30px);
  background: var(--iwe-emerald);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 900ms var(--iwe-ease);
}

body.iwe-home .iwe-statement__rule.is-visible,
html:not(.iwe-js) body.iwe-home .iwe-statement__rule {
  transform: scaleX(1);
}

body.iwe-home .iwe-statement__rule::after {
  content: "";
  position: absolute;
  inset-inline-end: -10px;
  top: 50%;
  width: 22px;
  height: 22px;
  transform: translateY(-50%);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2327775d'%3E%3Cpath d='M20 4c0 8-5 13-12 13H4c0-8 5-13 12-13h4Z'/%3E%3C/svg%3E");
}

/* SAME SOIL. / A BRIGHTER TOMORROW. at the far right. */
body.iwe-home .iwe-statement__aside {
  font-family: var(--iwe-font-body);
  font-size: clamp(10px, .75vw, 12px);
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  line-height: 1.9;
  color: var(--iwe-charcoal);
  margin: 0;
}

@media (max-width: 767px) {
  body.iwe-home .iwe-statement .et_pb_row { display: flex; flex-direction: column; }
  body.iwe-home .iwe-statement__image { order: -1; margin-bottom: 28px; }
  /* Size the round wrapper, not the <img>: a narrow image inside a full-width
     circular wrapper was clipped into a lens shape with a flat left side. */
  body.iwe-home .iwe-statement__image .et_pb_image_wrap { width: min(240px, 60%); }
  body.iwe-home .iwe-statement__image img { width: 100%; }
  body.iwe-home .iwe-statement__aside { margin-top: 20px; }
}


/* -------------------------------------------------------------------------
   3. Ireland in Every Root
   ------------------------------------------------------------------------- */

/*
   Reference layout: full-bleed photograph on the left, a solid copper column
   carrying the statistic, then a pale column with the heading. Three hard
   vertical blocks, no floating card and no rounded corners.
*/
body.iwe-home .iwe-terroir {
  background: var(--iwe-ivory);
}

/*
   Driven by CSS Grid rather than Divi's column widths.

   `2_5,1_5,2_5` is not one of the column structures Divi supports, so its
   generated widths do not add up and the band stopped ~10% short of the right
   edge. Gridding the row makes the three blocks exact and independent of
   whatever Divi decides those columns should be.
*/
body.iwe-home .iwe-terroir .iwe-row--bleed {
  display: grid;
  grid-template-columns: 50fr 19fr 31fr;
  align-items: stretch;
}

body.iwe-home .iwe-terroir .iwe-row--bleed > .et_pb_column {
  width: auto !important;    /* overrides Divi's inline column width */
  margin: 0 !important;      /* overrides Divi's inline column gutter */
  padding: 0;
  float: none;
}

/* Divi wraps each module in a div that would otherwise not stretch. */
body.iwe-home .iwe-terroir .iwe-row--bleed > .et_pb_column > .et_pb_module {
  height: 100%;
  margin-bottom: 0;
}

@media (max-width: 767px) {
  body.iwe-home .iwe-terroir .iwe-row--bleed {
    grid-template-columns: 1fr;
  }
}

body.iwe-home .iwe-terroir__media,
body.iwe-home .iwe-terroir__media .et_pb_image_wrap,
body.iwe-home .iwe-terroir__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  margin: 0;
}

body.iwe-home .iwe-terroir__media img {
  min-height: clamp(240px, 24vw, 380px);
}

body.iwe-home .iwe-terroir__stat {
  background: var(--iwe-burnt-copper);
  color: var(--iwe-ivory);
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(28px, 3vw, 52px);
}

body.iwe-home .iwe-terroir__stat .iwe-stat__figure {
  display: block;
  font-family: var(--iwe-font-display);
  font-size: clamp(52px, 5.4vw, 92px);
  font-weight: 500;
  line-height: .9;
  margin-bottom: .18em;
}

body.iwe-home .iwe-terroir__stat .iwe-stat__caption {
  display: block;
  font-family: var(--iwe-font-display);
  font-size: clamp(20px, 1.9vw, 30px);
  font-weight: 500;
  line-height: 1.1;
  text-transform: uppercase;
}

body.iwe-home .iwe-terroir__stat .iwe-stat__foot {
  display: block;
  margin-top: auto;
  padding-top: clamp(20px, 3vw, 44px);
  font-family: var(--iwe-font-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
  line-height: 2;
  color: rgba(247, 240, 227, .8);
}

body.iwe-home .iwe-terroir__copy {
  background: var(--iwe-mineral-grey);
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(28px, 3vw, 56px);
}

body.iwe-home .iwe-terroir__copy h2 {
  font-family: var(--iwe-font-display);
  font-weight: 700;
  font-size: clamp(30px, 3.4vw, 52px);
  line-height: 1;
  text-transform: uppercase;
  color: var(--iwe-midnight);
  margin: 0 0 .5em;
}

body.iwe-home .iwe-terroir__copy p {
  font-size: clamp(14px, 1vw, 17px);
  line-height: 1.65;
  color: rgba(23, 33, 38, .82);
  margin: 0 0 1.6rem;
}

body.iwe-home .iwe-terroir__copy .iwe-link { color: var(--iwe-deep-teal); }

@media (max-width: 980px) {
  body.iwe-home .iwe-terroir__media img { min-height: 260px; }
  body.iwe-home .iwe-terroir__stat,
  body.iwe-home .iwe-terroir__copy { padding: 32px 24px; }
}


/* -------------------------------------------------------------------------
   4. What Guides Us
   ------------------------------------------------------------------------- */

body.iwe-home .iwe-values {
  background: var(--iwe-burnt-copper);
  color: var(--iwe-ivory);
}

body.iwe-home .iwe-values .iwe-row--bleed {
  padding-inline: var(--iwe-gutter);
}

/*
   The vertical title is as tall as its own text, which was forcing the copper
   band far taller than the reference and stranding the three principles at the
   top of a mostly-empty block. Centring every column against the tallest one
   closes the gap.
*/
@media (min-width: 981px) {
  /*
     Divi's 1_4 x4 gives the vertical title as much room as each principle. The
     reference gives the title roughly half a column and the three principles
     the rest, which is what makes the band read as full-width.
  */
  body.iwe-home .iwe-values .et_pb_row {
    display: grid;
    grid-template-columns: .55fr 1fr 1fr 1fr;
    column-gap: clamp(18px, 2vw, 40px);
    align-items: center;
  }

  body.iwe-home .iwe-values .et_pb_row > .et_pb_column {
    width: auto !important;     /* overrides Divi's inline column width */
    margin-right: 0 !important; /* overrides Divi's inline column gutter */
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
}

/* Vertical section title — desktop only, per spec. */
@media (min-width: 981px) {
  body.iwe-home .iwe-values__title {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    white-space: nowrap;
    margin: 0;
  }
}

body.iwe-home .iwe-values__title h2 {
  font-family: var(--iwe-font-display);
  font-weight: 500;
  font-size: clamp(24px, 2.1vw, 34px);
  line-height: 1;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: var(--iwe-ivory);
  margin: 0;
}

/* Hairline rules between the three principles, as in the reference. */
@media (min-width: 981px) {
  body.iwe-home .iwe-value {
    border-left: 1px solid rgba(247, 240, 227, .3);
    padding-left: clamp(20px, 2.4vw, 40px);
    height: 100%;
  }
}

body.iwe-home .iwe-value p.iwe-value__number,
body.iwe-home .iwe-value__number {
  display: block;
  font-family: var(--iwe-font-display);
  font-size: clamp(36px, 4vw, 66px);
  font-weight: 500;
  line-height: 1;
  color: var(--iwe-ivory);
  margin: 0 0 .5rem;
}

body.iwe-home .iwe-value h3 {
  font-family: var(--iwe-font-display);
  font-size: clamp(20px, 2.3vw, 38px);
  font-weight: 600;
  line-height: 1.05;
  text-transform: uppercase;
  color: var(--iwe-ivory);
  margin: 0 0 .5em;
}

body.iwe-home .iwe-value p {
  font-size: clamp(13px, .95vw, 16px);
  line-height: 1.6;
  color: rgba(247, 240, 227, .84);
  margin: 0;
  max-width: 24ch;
}

@media (max-width: 980px) {
  body.iwe-home .iwe-values__title {
    writing-mode: horizontal-tb;
    transform: none;
    white-space: normal;
    margin-bottom: 2rem;
  }
}


/* -------------------------------------------------------------------------
   5. What Will Grow Here
   ------------------------------------------------------------------------- */

body.iwe-home .iwe-experiences {
  background: var(--iwe-ivory);
}

body.iwe-home .iwe-experiences__intro h2 {
  font-family: var(--iwe-font-display);
  font-weight: 700;
  font-size: clamp(26px, 3vw, 46px);
  line-height: .98;
  text-transform: uppercase;
  color: var(--iwe-midnight);
  margin: 0 0 1rem;
}

body.iwe-home .iwe-experiences__intro .iwe-list {
  color: var(--iwe-charcoal);
  padding-top: 1.2rem;
  border-top: 1px solid var(--iwe-champagne);
}

/*
   Each item is an image with its title set vertically alongside it and thin
   corner brackets framing the pair — the most distinctive detail in this band.
*/
body.iwe-home .iwe-experience {
  position: relative;
  padding: 14px 0 0 14px;
}

body.iwe-home .iwe-experience::before,
body.iwe-home .iwe-experience::after {
  content: "";
  position: absolute;
  width: 26px;
  height: 26px;
  border-color: var(--iwe-deep-teal);
  border-style: solid;
  pointer-events: none;
}

body.iwe-home .iwe-experience::before {
  top: 0;
  left: 0;
  border-width: 1px 0 0 1px;
}

body.iwe-home .iwe-experience::after {
  bottom: 0;
  right: 0;
  border-width: 0 1px 1px 0;
}

/*
   The flex lives on `.et_pb_code_inner`, not on the module wrapper.

   Divi renders a Code module as
     .et_pb_module.et_pb_code.iwe-experience__media > .et_pb_code_inner > ...
   so flexing the outer element gives it exactly one child and the vertical
   title drops below the photograph instead of sitting alongside it.
*/
body.iwe-home .iwe-experience__media .et_pb_code_inner {
  display: flex;
  align-items: stretch;
  gap: 10px;
}

body.iwe-home .iwe-experience__image {
  flex: 1 1 auto;
  min-width: 0;
}

body.iwe-home .iwe-experience__image {
  aspect-ratio: 3 / 4;
  overflow: hidden;
}

body.iwe-home .iwe-experience__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;
}

/* Vertical title running up the side of the photograph. */
body.iwe-home .iwe-experience__vtitle {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  white-space: nowrap;
  /* Order 2 puts it to the right of the photograph, as in the reference. */
  order: 2;
  font-family: var(--iwe-font-display);
  font-size: clamp(12px, 1.25vw, 20px);
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--iwe-charcoal);
  align-self: center;
}

body.iwe-home .iwe-experience__number {
  display: block;
  font-family: var(--iwe-font-display);
  font-size: clamp(20px, 1.8vw, 28px);
  font-weight: 500;
  color: var(--iwe-deep-teal);
  margin: 0 0 .4rem;
}

body.iwe-home .iwe-experience p {
  font-size: clamp(13px, .92vw, 15px);
  line-height: 1.55;
  color: rgba(23, 33, 38, .8);
  margin: .9rem 0 .8rem;
}

body.iwe-home .iwe-experience .iwe-link { color: var(--iwe-deep-teal); }

@media (min-width: 981px) {
  body.iwe-home .iwe-experience--2 { margin-top: clamp(30px, 4vw, 70px); }
  body.iwe-home .iwe-experience--3 { margin-top: clamp(12px, 1.6vw, 30px); }
}

@media (max-width: 767px) {
  body.iwe-home .iwe-experience { margin: 0 0 40px; }
  body.iwe-home .iwe-experience__vtitle {
    writing-mode: horizontal-tb;
    transform: none;
    align-self: flex-start;
    margin-bottom: 8px;
  }
  body.iwe-home .iwe-experience__media { flex-direction: column; gap: 6px; }
}


/* -------------------------------------------------------------------------
   6. From Field to First Pour — the signature timeline
   ------------------------------------------------------------------------- */

body.iwe-home .iwe-timeline {
  position: relative;
  overflow: hidden;
  color: var(--iwe-ivory);
  background:
    radial-gradient(circle at 50% 62%, rgba(19, 184, 137, .20), transparent 34%),
    linear-gradient(135deg, #10182c 0%, #063b43 100%);
}

body.iwe-home .iwe-timeline__head h2 {
  font-family: var(--iwe-font-display);
  font-weight: 500;
  font-size: clamp(30px, 4.2vw, 62px);
  line-height: 1;
  letter-spacing: .01em;
  text-transform: uppercase;
  color: var(--iwe-ivory);
  margin: 0 0 .3em;
}

body.iwe-home .iwe-timeline__head .iwe-label {
  color: var(--iwe-champagne);
}

body.iwe-home .iwe-timeline__track {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: end;
  gap: clamp(10px, 1.6vw, 26px);
}

/* Divi's inline column width/gutter would break the grid. Static position so
   the growth SVG resolves against the track, not its column. */
body.iwe-home .iwe-timeline__track > .et_pb_column {
  width: auto !important;     /* overrides Divi's inline column width */
  margin-right: 0 !important; /* overrides Divi's inline column gutter */
  margin-bottom: 0;
  float: none;
  position: static;
}

/*
   Labels sit ABOVE the arch in the reference. Bottom-aligning each milestone
   means the year/title blocks rise with the arches, tracing the same ascent.
*/
body.iwe-home .iwe-milestone {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  text-align: center;
}

body.iwe-home .iwe-milestone__year {
  font-family: var(--iwe-font-display);
  font-size: clamp(20px, 2.1vw, 34px);
  font-weight: 500;
  line-height: 1;
  color: var(--iwe-champagne);
  margin: 0 0 .25rem;
}

body.iwe-home .iwe-milestone__title {
  font-family: var(--iwe-font-body);
  font-size: clamp(9px, .66vw, 11px);
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  line-height: 1.4;
  color: rgba(247, 240, 227, .85);
  margin: 0 0 .9rem;
}

body.iwe-home .iwe-milestone--active .iwe-milestone__year {
  color: var(--iwe-living-emerald);
}

/*
   Non-colour cue for the active milestone (WCAG 1.4.1), paired with the
   visually-hidden "current stage" text in the markup.
*/
body.iwe-home .iwe-milestone--active .iwe-milestone__year::after {
  content: "";
  display: inline-block;
  width: .36em;
  height: .36em;
  margin-inline-start: .4em;
  vertical-align: middle;
  border-radius: 50%;
  background: currentColor;
}

body.iwe-home .iwe-milestone__image {
  position: relative;
  overflow: hidden;
  /*
     The reference's arches are narrow and tall (roughly 1:2), not the squat
     near-square shapes a full-width column produces.
  */
  /*
     Full column width: the arches used to be capped well below the
     column and centred, which left a gap either side of each one.
  */
  width: 100%;
  margin-inline: auto;
  border: 1.5px solid var(--iwe-champagne);
  border-radius: 999px 999px 0 0;
  background: var(--iwe-midnight);
  height: var(--iwe-arch-height, 260px);
}

body.iwe-home .iwe-milestone__image img {
  /*
     display:block is load-bearing. Without it the image is an inline replaced
     element sitting on a text baseline inside a fixed-height, overflow-hidden
     arch, and several of them rendered as empty navy boxes - confirmed by
     reading the computed styles, where the broken arches were `display: inline`
     while the working experience images were `display: block`.
  */
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--iwe-duration) var(--iwe-ease);
}

body.iwe-home .iwe-milestone:hover .iwe-milestone__image img {
  transform: scale(1.045);
}

/* The reference's arches are large and nearly touching; these were roughly
   half the size they should be at desktop widths. */
/* The reference's tallest arch measures ~16.6% of the page width. */
/* Measured from the reference at matched width: arches run 16-24% of page width tall. */
body.iwe-home .iwe-milestone--2023 { --iwe-arch-height: clamp(150px, 16.2vw, 262px); }
body.iwe-home .iwe-milestone--2025 { --iwe-arch-height: clamp(160px, 17.4vw, 280px); }
body.iwe-home .iwe-milestone--2026 { --iwe-arch-height: clamp(210px, 23vw, 372px); }
body.iwe-home .iwe-milestone--2029 { --iwe-arch-height: clamp(185px, 19.8vw, 318px); }
body.iwe-home .iwe-milestone--2032 { --iwe-arch-height: clamp(220px, 24vw, 386px); }

body.iwe-home .iwe-milestone--active .iwe-milestone__image {
  border-color: var(--iwe-living-emerald);
  box-shadow: 0 0 18px rgba(19, 184, 137, .85), 0 0 52px rgba(19, 184, 137, .42);
}

/* The glow intensifies once on entry, then holds — no continuous pulse. */
.iwe-js body.iwe-home .iwe-milestone--active .iwe-milestone__image {
  box-shadow: 0 0 0 rgba(19, 184, 137, 0);
  transition: box-shadow 1000ms var(--iwe-ease) 600ms;
}

.iwe-js body.iwe-home .iwe-timeline.is-visible .iwe-milestone--active .iwe-milestone__image {
  box-shadow: 0 0 18px rgba(19, 184, 137, .85), 0 0 52px rgba(19, 184, 137, .42);
}

/* Growth line, spanning the arch band only. */
body.iwe-home .iwe-growth {
  position: absolute;
  inset-inline: 0;
  top: 40%;
  bottom: 0;
  width: 100%;
  z-index: 3;
  pointer-events: none;
}

body.iwe-home .iwe-growth svg {
  width: 100%;
  height: 100%;
  display: block;
  overflow: visible;
}

body.iwe-home .iwe-growth-path {
  fill: none;
  stroke: var(--iwe-champagne);
  stroke-width: 2.75;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 1400;
  stroke-dashoffset: 1400;
  transition: stroke-dashoffset 1.8s var(--iwe-ease);
}

body.iwe-home .iwe-timeline.is-visible .iwe-growth-path { stroke-dashoffset: 0; }
html:not(.iwe-js) body.iwe-home .iwe-growth-path { stroke-dashoffset: 0; transition: none; }

/* DIFFERENT CLIMATE. / EXTRAORDINARY POTENTIAL. at the right edge. */
body.iwe-home .iwe-timeline__aside {
  color: var(--iwe-champagne);
  margin-top: clamp(16px, 2vw, 32px);
}

@media (max-width: 980px) {
  /*
     Tablet: horizontal scroll, chosen over a 3+2 grid because 3+2 breaks the
     ascending-arch reading that carries the section.
  */
  body.iwe-home .iwe-timeline__track {
    grid-template-columns: repeat(5, minmax(180px, 1fr));
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    padding-bottom: 18px;
    -webkit-overflow-scrolling: touch;
  }

  body.iwe-home .iwe-timeline__track > .et_pb_column { scroll-snap-align: center; }
  body.iwe-home .iwe-timeline__track::-webkit-scrollbar { height: 3px; }
  body.iwe-home .iwe-timeline__track::-webkit-scrollbar-thumb { background: rgba(217, 182, 111, .5); }
  body.iwe-home .iwe-timeline__hint { display: block; }
}

@media (min-width: 981px) {
  body.iwe-home .iwe-timeline__hint { display: none; }
}

body.iwe-home .iwe-timeline__hint {
  font-family: var(--iwe-font-body);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(247, 240, 227, .55);
  margin-top: 1rem;
}

@media (max-width: 767px) {
  /* Vertical milestone sequence; decorative horizontal path hidden. */
  body.iwe-home .iwe-timeline__track { display: block; overflow: visible; }

  /* Stacked: keep the tall narrow arch. At full width it flattens into
     a dome and stops reading as an arch at all. */
  body.iwe-home .iwe-milestone__image { width: min(100%, clamp(110px, 12.4vw, 210px)); }
  body.iwe-home .iwe-growth { display: none; }

  body.iwe-home .iwe-timeline__track > .et_pb_column {
    display: block;
    margin-bottom: 40px;
    padding-inline-start: 26px;
    position: relative;
  }

  body.iwe-home .iwe-timeline__track::before {
    content: "";
    position: absolute;
    inset-inline-start: 5px;
    top: 8px;
    bottom: 40px;
    width: 1px;
    background: linear-gradient(180deg, var(--iwe-champagne), rgba(217, 182, 111, .35));
  }

  body.iwe-home .iwe-timeline__track > .et_pb_column::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: 10px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    border: 1.5px solid var(--iwe-champagne);
    background: var(--iwe-midnight);
  }

  /* Keep the 2026 emerald highlight on mobile. */
  body.iwe-home .iwe-timeline__track > .et_pb_column:nth-child(3)::before {
    border-color: var(--iwe-living-emerald);
    background: var(--iwe-living-emerald);
    box-shadow: 0 0 12px rgba(19, 184, 137, .8);
  }

  body.iwe-home .iwe-milestone { text-align: left; }

  body.iwe-home .iwe-milestone--2023,
  body.iwe-home .iwe-milestone--2025,
  body.iwe-home .iwe-milestone--2026,
  body.iwe-home .iwe-milestone--2029,
  body.iwe-home .iwe-milestone--2032 { --iwe-arch-height: 190px; }
}


/* -------------------------------------------------------------------------
   7. The Land Leads
   ------------------------------------------------------------------------- */

body.iwe-home .iwe-estate {
  background: var(--iwe-ivory);
  position: relative;
  overflow: hidden;
  padding-block: clamp(32px, 3.2vw, 58px);
}

body.iwe-home .iwe-estate__type { position: relative; z-index: 2; }

/* Huge, tight, uppercase — the two words nearly fill the column. */
body.iwe-home .iwe-estate__type h2 {
  font-family: var(--iwe-font-display);
  /* nowrap keeps THE LAND on one line and LEADS on the next, as in the
     reference; without it THE / LAND / LEADS breaks across three lines. */
  white-space: nowrap;
  font-size: clamp(40px, 8.6vw, 148px);
  font-weight: 700;
  line-height: .84;
  letter-spacing: -.025em;
  margin: 0;
  color: var(--iwe-midnight);
  text-transform: uppercase;
}

body.iwe-home .iwe-estate__image-word {
  display: block;
  color: var(--iwe-emerald);
}

/*
   "GROW" is set in the brand emerald as plain type. It used to be filled
   with a photograph of the vines through background-clip: text, which
   altered the apparent weight of the letters and drew a comment that the
   font was wrong as well as the colour.
*/

body.iwe-home .iwe-estate__panel {
  background: var(--iwe-emerald);
  color: var(--iwe-ivory);
  padding: clamp(28px, 3.2vw, 56px);
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  clip-path: polygon(clamp(30px, 4vw, 64px) 0, 100% 0, 100% 100%, 0 100%, 0 clamp(30px, 4vw, 64px));
}

body.iwe-home .iwe-estate__panel .iwe-label { color: var(--iwe-champagne); }

body.iwe-home .iwe-estate__panel h3 {
  font-family: var(--iwe-font-display);
  font-size: clamp(22px, 2.1vw, 34px);
  font-weight: 500;
  line-height: 1.2;
  color: var(--iwe-ivory);
  margin: 0 0 1.6rem;
  text-transform: none;
}

body.iwe-home .iwe-estate__strip img {
  width: 100%;
  height: clamp(230px, 22vw, 340px);
  object-fit: cover;
  display: block;
}

/* BALLYCLERY — COUNTY OFFALY, vertical at the right edge. */
/*
   Absolutely placed: as a normal flow item the vertical label added its own
   full text length (~250px) to the column and left a large dead band under
   the estate.
*/
@media (min-width: 981px) {
  body.iwe-home .iwe-estate__location {
    position: absolute;
    top: 50%;
    inset-inline-end: clamp(6px, 1vw, 18px);
    transform: translateY(-50%);
    margin: 0;
  }
}

body.iwe-home .iwe-estate__location {
  writing-mode: vertical-rl;
  white-space: nowrap;
  font-family: var(--iwe-font-body);
  font-size: clamp(9px, .68vw, 11px);
  font-weight: 700;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: rgba(23, 33, 38, .55);
  margin: 0 0 0 auto;
  width: fit-content;
}

@media (max-width: 980px) {
  body.iwe-home .iwe-estate__panel {
    clip-path: polygon(30px 0, 100% 0, 100% 100%, 0 100%, 0 30px);
  }
  body.iwe-home .iwe-estate__location { writing-mode: horizontal-tb; letter-spacing: .2em; margin: 16px 0 0; }
}

@media (max-width: 767px) {
  body.iwe-home .iwe-estate__strip img { height: 240px; }
}


/* -------------------------------------------------------------------------
   8. Field Notes
   ------------------------------------------------------------------------- */

body.iwe-home .iwe-journal { background: var(--iwe-mineral-grey); }

body.iwe-home .iwe-journal__head h2 {
  font-family: var(--iwe-font-display);
  font-weight: 700;
  font-size: clamp(32px, 4vw, 62px);
  line-height: .92;
  text-transform: uppercase;
  color: var(--iwe-midnight);
  margin: 0 0 1.4rem;
}

body.iwe-home .iwe-journal__head .iwe-list {
  color: var(--iwe-charcoal);
  padding-top: 1.2rem;
  border-top: 1px solid var(--iwe-champagne);
}

/*
   Divi's own Blog module markup is used so the posts stay dynamic.

   The module must stay fullwidth="on": Divi's Grid layout wraps posts in
   `.et_pb_salvattore_content` and loads salvattore.js, which re-parents every
   article into its own column div at runtime, leaving this grid with a single
   child (Blog.php:906, :1360). fullwidth="on" also requests 1080x675
   thumbnails instead of 400x250, which the featured item needs.
*/
body.iwe-home .iwe-journal__grid .et_pb_ajax_pagination_container,
body.iwe-home .iwe-journal__grid .et_pb_salvattore_content,
body.iwe-home .iwe-journal__grid .et_pb_posts {
  display: grid;
  grid-template-columns: 1.7fr 1fr;
  gap: clamp(20px, 2.6vw, 48px);
  align-items: start;
}

body.iwe-home .iwe-journal__grid .et_pb_ajax_pagination_container:has(.et_pb_salvattore_content) {
  display: contents;
}

/* The featured post occupies the left column across both secondary rows. */
body.iwe-home .iwe-journal__grid .et_pb_post:first-child {
  grid-column: 1;
  grid-row: 1 / span 2;
}

/*
   Image BESIDE text, as in the reference — laid out flat this was the tallest
   block on the page.

   Divi renders the article's four children flat: a.entry-featured-image-url,
   h2.entry-title, p.post-meta, div.post-content. A bare two-column grid
   therefore wraps them 2x2 and strands the date beside the headline, so each
   child is placed explicitly. The visual order (date, title, excerpt) differs
   from source order; only the title is focusable, so tab order is unaffected.
*/
@media (min-width: 981px) {
  body.iwe-home .iwe-journal__grid .et_pb_post:first-child {
    display: grid;
    grid-template-columns: .95fr 1fr;
    grid-template-rows: auto auto 1fr;
    column-gap: clamp(16px, 1.8vw, 32px);
    align-items: start;
  }

  body.iwe-home .iwe-journal__grid .et_pb_post:first-child > .entry-featured-image-url {
    grid-column: 1;
    grid-row: 1 / -1;
    margin-bottom: 0;
  }

  body.iwe-home .iwe-journal__grid .et_pb_post:first-child > .post-meta  { grid-column: 2; grid-row: 1; }
  body.iwe-home .iwe-journal__grid .et_pb_post:first-child > .entry-title { grid-column: 2; grid-row: 2; }
  body.iwe-home .iwe-journal__grid .et_pb_post:first-child > .post-content { grid-column: 2; grid-row: 3; }
}

body.iwe-home .iwe-journal__grid .et_pb_post:first-child .entry-featured-image-url {
  aspect-ratio: 5 / 4;
}

body.iwe-home .iwe-journal__grid .et_pb_post {
  background: transparent;
  border: 0;
  margin: 0;
  padding: 0;
}

body.iwe-home .iwe-journal__grid .et_pb_post .entry-featured-image-url {
  margin-bottom: 1.1rem;
  display: block;
  overflow: hidden;
}

body.iwe-home .iwe-journal__grid .et_pb_post .entry-featured-image-url {
  aspect-ratio: 16 / 10;
}

body.iwe-home .iwe-journal__grid .et_pb_post .entry-featured-image-url img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 900ms var(--iwe-ease);
}

body.iwe-home .iwe-journal__grid .et_pb_post:hover .entry-featured-image-url img {
  transform: scale(1.04);
}

body.iwe-home .iwe-journal__grid .et_pb_post .entry-title {
  font-family: var(--iwe-font-display);
  font-size: clamp(16px, 1.25vw, 21px);
  font-weight: 700;
  line-height: 1.2;
  margin: 0 0 .4rem;
  text-transform: none;
}

body.iwe-home .iwe-journal__grid .et_pb_post:first-child .entry-title {
  font-size: clamp(19px, 1.6vw, 27px);
}

body.iwe-home .iwe-journal__grid .et_pb_post .entry-title a {
  color: var(--iwe-midnight);
  text-decoration: none;
}

body.iwe-home .iwe-journal__grid .et_pb_post .entry-title a:hover { color: var(--iwe-emerald); }

body.iwe-home .iwe-journal__grid .et_pb_post .post-meta {
  font-family: var(--iwe-font-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--iwe-deep-teal);
  margin-bottom: .5rem;
}

body.iwe-home .iwe-journal__grid .et_pb_post .post-content p {
  font-size: clamp(13px, .92vw, 15px);
  line-height: 1.6;
  color: rgba(23, 33, 38, .78);
}

/* The two secondary items are compact links: no image, no excerpt. */
body.iwe-home .iwe-journal__grid .et_pb_post:not(:first-child) .entry-featured-image-url,
body.iwe-home .iwe-journal__grid .et_pb_post:not(:first-child) .post-content {
  display: none;
}

body.iwe-home .iwe-journal__grid .et_pb_post:not(:first-child) {
  border-top: 1px solid rgba(23, 33, 38, .2);
  padding-top: 1.2rem;
}

@media (max-width: 980px) {
  body.iwe-home .iwe-journal__grid .et_pb_ajax_pagination_container,
  body.iwe-home .iwe-journal__grid .et_pb_salvattore_content,
  body.iwe-home .iwe-journal__grid .et_pb_posts { grid-template-columns: 1fr; }
  body.iwe-home .iwe-journal__grid .et_pb_post:first-child { grid-row: auto; }
}


/* -------------------------------------------------------------------------
   9. Founding Friends CTA
   ------------------------------------------------------------------------- */

body.iwe-home .iwe-founding-friends {
  background: var(--iwe-emerald);
  color: var(--iwe-ivory);
}

body.iwe-home .iwe-founding-friends__quote p {
  font-family: var(--iwe-font-display);
  font-size: clamp(26px, 3.2vw, 52px);
  font-weight: 500;
  line-height: 1.08;
  text-transform: uppercase;
  color: var(--iwe-ivory);
  margin: 0;
  max-width: 20ch;
}

body.iwe-home .iwe-founding-friends__quote .iwe-gold {
  color: var(--iwe-champagne);
  font-style: italic;
  text-transform: none;
  display: block;
  font-weight: 400;
}

/* Formidable form styling. */
body.iwe-home .iwe-founding-friends .frm_forms .frm_form_field { margin-bottom: 1.1rem; }

body.iwe-home .iwe-founding-friends .frm_forms label,
body.iwe-home .iwe-founding-friends .frm_primary_label {
  font-family: var(--iwe-font-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(247, 240, 227, .85);
  margin-bottom: .45rem;
  display: block;
}

body.iwe-home .iwe-founding-friends .frm_forms input[type="text"],
body.iwe-home .iwe-founding-friends .frm_forms input[type="email"],
body.iwe-home .iwe-founding-friends .frm_forms textarea {
  width: 100%;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(247, 240, 227, .45);
  border-radius: 0;
  padding: .85rem 0;
  color: var(--iwe-ivory);
  font-family: var(--iwe-font-body);
  font-size: 16px; /* 16px minimum stops iOS Safari zooming on focus */
  transition: border-color var(--iwe-duration) var(--iwe-ease);
}

body.iwe-home .iwe-founding-friends .frm_forms input::placeholder,
body.iwe-home .iwe-founding-friends .frm_forms textarea::placeholder {
  color: rgba(247, 240, 227, .5);
}

body.iwe-home .iwe-founding-friends .frm_forms input:focus,
body.iwe-home .iwe-founding-friends .frm_forms textarea:focus {
  border-bottom-color: var(--iwe-champagne);
  outline: none;
}

body.iwe-home .iwe-founding-friends .frm_forms input:focus-visible,
body.iwe-home .iwe-founding-friends .frm_forms textarea:focus-visible {
  outline: 2px solid var(--iwe-champagne);
  outline-offset: 4px;
}

body.iwe-home .iwe-founding-friends .frm_forms .frm_submit button,
body.iwe-home .iwe-founding-friends .frm_forms input[type="submit"] {
  font-family: var(--iwe-font-body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  padding: 1.05em 2.4em;
  border: 1px solid var(--iwe-champagne);
  border-radius: 0;
  background: var(--iwe-champagne);
  color: var(--iwe-midnight);
  cursor: pointer;
  transition: background-color var(--iwe-duration) var(--iwe-ease), color var(--iwe-duration) var(--iwe-ease);
}

body.iwe-home .iwe-founding-friends .frm_forms .frm_submit button:hover,
body.iwe-home .iwe-founding-friends .frm_forms input[type="submit"]:hover {
  background: transparent;
  color: var(--iwe-champagne);
}

body.iwe-home .iwe-founding-friends .frm_forms .frm_checkbox label {
  text-transform: none;
  letter-spacing: 0;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
  display: flex;
  gap: .6rem;
  align-items: flex-start;
}

body.iwe-home .iwe-founding-friends .frm_message,
body.iwe-home .iwe-founding-friends .frm_success_style {
  background: rgba(19, 184, 137, .16);
  border-left: 3px solid var(--iwe-living-emerald);
  color: var(--iwe-ivory);
  padding: 1rem 1.2rem;
}

body.iwe-home .iwe-founding-friends .frm_error,
body.iwe-home .iwe-founding-friends .frm_error_style {
  background: rgba(199, 101, 50, .2);
  border-left: 3px solid var(--iwe-burnt-copper);
  color: var(--iwe-ivory);
  padding: 1rem 1.2rem;
}

body.iwe-home .iwe-founding-friends .frm_blank_field input,
body.iwe-home .iwe-founding-friends .frm_blank_field textarea {
  border-bottom-color: var(--iwe-deep-teal);
}


/* -------------------------------------------------------------------------
   10. Footer touches (the footer itself is a Theme Builder template)
   ------------------------------------------------------------------------- */

.iwe-footer {
  background: var(--iwe-ivory);
  color: var(--iwe-charcoal);
  position: relative;
  overflow: hidden;
}

.iwe-footer__knot {
  position: absolute;
  z-index: 0;
  inset-inline-end: -6%;
  bottom: -30%;
  width: min(42vw, 520px);
  opacity: .06;
  pointer-events: none;
  user-select: none;
}

.iwe-footer > .et_pb_row { position: relative; z-index: 1; }
.iwe-footer a { color: var(--iwe-charcoal); text-decoration: none; }
.iwe-footer a:hover { color: var(--iwe-emerald); }


/* -------------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  .iwe-js body.iwe-home .iwe-reveal,
  .iwe-js body.iwe-home .iwe-reveal--mask {
    opacity: 1;
    transform: none;
    clip-path: none;
    transition: none;
  }

  body.iwe-home .iwe-growth-path { stroke-dashoffset: 0; transition: none; }
  body.iwe-home .iwe-statement__rule { transform: scaleX(1); transition: none; }

  .iwe-js body.iwe-home .iwe-milestone--active .iwe-milestone__image {
    box-shadow: 0 0 18px rgba(19, 184, 137, .85), 0 0 52px rgba(19, 184, 137, .42);
    transition: none;
  }

  body.iwe-home .iwe-hero::before,
  body.iwe-home .iwe-milestone__image img,
  body.iwe-home .iwe-journal__grid .et_pb_post .entry-featured-image-url img,
  body.iwe-home .iwe-link::after,
  body.iwe-home .iwe-link .iwe-arrow { transition: none; }

  body.iwe-home .iwe-milestone:hover .iwe-milestone__image img,
  body.iwe-home .iwe-journal__grid .et_pb_post:hover .entry-featured-image-url img { transform: none; }

  .iwe-js body.iwe-home .iwe-hero { --iwe-hero-scale: 1; }
}


/* =========================================================================
   Reference-matching refinements (measured against the PNG at 1600px)
   ========================================================================= */

@media (min-width: 981px) {
  /* Hero: Divi columns are position:relative, so the absolute LAND / PEOPLE
     list anchored to its short column and sat over the header button. */
  body.iwe-home .iwe-hero .et_pb_row,
  body.iwe-home .iwe-hero .et_pb_column { position: static; }

  /* Timeline: arches sit on the bottom edge of the band, with the
     DIFFERENT CLIMATE list beside the last arch rather than a row below. */
  body.iwe-home .iwe-timeline { padding-bottom: 0; position: relative; }
  body.iwe-home .iwe-timeline__track { gap: clamp(8px, 1vw, 18px); }
  body.iwe-home .iwe-milestone__image { border-bottom: 0; }
  body.iwe-home .iwe-timeline .iwe-timeline__aside {
    position: absolute;
    right: var(--iwe-gutter);
    bottom: clamp(40px, 5vw, 90px);
    margin: 0;
  }
  body.iwe-home .iwe-timeline .iwe-timeline__aside .iwe-list { line-height: 1.9; }

  /* Estate: wide type column, short wide panel, narrow tall strip. */
  body.iwe-home .iwe-estate .et_pb_row {
    display: grid;
    grid-template-columns: 1.95fr 1fr .42fr;
    column-gap: 0;
    align-items: stretch;
  }
  body.iwe-home .iwe-estate .et_pb_row > .et_pb_column {
    width: auto !important;     /* overrides Divi's inline column width */
    margin-right: 0 !important; /* overrides Divi's inline column gutter */
  }
  body.iwe-home .iwe-estate .et_pb_row > .et_pb_column > .et_pb_module { height: 100%; margin-bottom: 0; }
  body.iwe-home .iwe-estate__strip img { height: 100%; min-height: clamp(260px, 24vw, 400px); }
  body.iwe-home .iwe-estate__panel { margin-left: -2.5vw; position: relative; z-index: 3; }

  /* Journal: narrow title column, featured post wider. */
  body.iwe-home .iwe-journal .et_pb_row {
    display: grid;
    grid-template-columns: .72fr 3.28fr;
    column-gap: clamp(20px, 2.4vw, 44px);
  }
  body.iwe-home .iwe-journal .et_pb_row > .et_pb_column {
    width: auto !important;     /* overrides Divi's inline column width */
    margin-right: 0 !important; /* overrides Divi's inline column gutter */
  }
  body.iwe-home .iwe-journal__grid .et_pb_post:first-child { grid-template-columns: 1.15fr 1fr; }
  body.iwe-home .iwe-journal__grid .et_pb_ajax_pagination_container { grid-template-columns: 2.1fr 1fr; }
}

/* Both words of the heading are set at one size, so it reads as a single
   heading rather than two pieces of type. */
body.iwe-home .iwe-estate__image-word { font-size: 1em; line-height: .84; }

@media (min-width: 981px) {
  /* With the hero columns static, EST. 2023 anchors to the section; the
     reference places it below the header's Join the Journey button. */
  body.iwe-home .iwe-hero__est { top: clamp(110px, 21%, 190px); }
}


/* -------------------------------------------------------------------------
   EST. 2023 - as in the reference: a small tracked sans "EST." over a serif
   "2023", right-aligned, with a thin gold rule falling to a four-point
   sparkle beneath. Replaces the earlier two-line serif "Est. / 2023".
   ------------------------------------------------------------------------- */

body.iwe-home .iwe-hero__est p.iwe-est {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  margin: 0;
  line-height: 1;
}

body.iwe-home .iwe-est__label {
  font-family: var(--iwe-font-body);
  font-size: clamp(10px, .75vw, 12px);
  font-weight: 700;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: rgba(247, 240, 227, .85);
  margin-bottom: .45em;
  margin-right: -.26em; /* cancel trailing letter-spacing so it aligns right */
}

body.iwe-home .iwe-est__year {
  font-family: var(--iwe-font-display);
  font-size: clamp(20px, 1.8vw, 30px);
  font-weight: 500;
  letter-spacing: .02em;
  color: var(--iwe-ivory);
}

body.iwe-home .iwe-est__line {
  position: relative;
  display: block;
  width: 1px;
  height: clamp(60px, 7vw, 110px);
  margin: clamp(10px, 1vw, 16px) clamp(12px, 1.1vw, 18px) 0 auto;
  background: linear-gradient(180deg, rgba(217, 182, 111, 0), var(--iwe-champagne) 35%, var(--iwe-champagne));
}

body.iwe-home .iwe-est__line::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -11px;
  width: 22px;
  height: 22px;
  transform: translateX(-50%);
  background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f3dfae' d='M12 0c.6 6.6 5.4 11.4 12 12-6.6.6-11.4 5.4-12 12-.6-6.6-5.4-11.4-12-12C6.6 11.4 11.4 6.6 12 0Z'/%3E%3C/svg%3E");
  filter: drop-shadow(0 0 6px rgba(243, 223, 174, .9));
}

@media (max-width: 767px) {
  body.iwe-home .iwe-est__line { display: none; }
}

@media (min-width: 981px) {
  /* Clear the global header so the logo never overlaps the hero eyebrow. */
  body.iwe-home .iwe-hero { padding-top: clamp(150px, 16vw, 210px); }
}

@media (min-width: 981px) {
  /* Fit the whole hero, button included, on a ~800px-tall laptop screen:
     less header clearance and a slightly smaller headline. */
  body.iwe-home .iwe-hero { padding-top: clamp(120px, 10vw, 158px); padding-bottom: clamp(40px, 5vh, 70px); }
  body.iwe-home .iwe-hero__title h1 { font-size: clamp(40px, 5.4vw, 94px); }
  body.iwe-home .iwe-hero__copy p { margin: 1.2rem 0 1.6rem; }
}


/* -------------------------------------------------------------------------
   Content fit - Sept 2026 brief content in the previous design.

   The brief's H1 is a full sentence and the hero now carries two CTAs
   (Discover Our Vineyard, 2027 Preview Tours), so the headline sets smaller
   than the old four short words and the buttons sit side by side.
   ------------------------------------------------------------------------- */

@media (min-width: 981px) {
  body.iwe-home .iwe-hero__title h1 {
    font-size: clamp(34px, 3.9vw, 72px);
    max-width: 12.5ch;
  }

  body.iwe-home .iwe-hero__copy { margin: 1.1rem 0 1.4rem; }

  body.iwe-home .iwe-hero__copy p {
    font-size: clamp(14px, .95vw, 16px);
    max-width: 46ch;
    margin: 0 0 .7rem;
  }
}

body.iwe-home .iwe-hero .et_pb_button_module_wrapper {
  display: inline-block;
  margin: 0 12px 12px 0;
}

body.iwe-home .iwe-hero .et_pb_button.iwe-btn--ghost {
  color: var(--iwe-ivory);
  border-color: rgba(247, 240, 227, .7);
}

body.iwe-home .iwe-hero .et_pb_button.iwe-btn--ghost:hover {
  background: var(--iwe-ivory);
  color: var(--iwe-midnight);
}

/* Preview-tours band: the terms line that replaced the form placeholder. */
body.iwe-home .iwe-founding-friends__terms p {
  color: rgba(247, 240, 227, .86);
  font-size: clamp(14px, 1vw, 16px);
  line-height: 1.6;
  max-width: 46ch;
  margin: 0 0 1.4rem;
}

/* Instagram and Facebook links side by side in the estate panel. */
body.iwe-home .iwe-estate__panel .iwe-link + .iwe-link { margin-left: 1.4em; }

/* The four follow links sit two to a row. Left to wrap on their own,
   three fitted the first line and TikTok dropped onto the second by
   itself. A grid fixes the pairing regardless of how wide the labels
   are, and the column gap replaces the margin above, which is
   switched off here so the two do not add up. */
body.iwe-home .iwe-estate__social {
  display: grid;
  grid-template-columns: repeat(2, max-content);
  gap: 10px 1.4em;
}

body.iwe-home .iwe-estate__panel .iwe-estate__social .iwe-link + .iwe-link {
  margin-left: 0;
}

body.iwe-home .iwe-timeline__aside .iwe-link { margin-top: .6rem; }

body.iwe-home .iwe-journal__head .iwe-label { color: var(--iwe-deep-teal); }

/* Keeps the "s" in "1960s" / "2020s" lowercase inside uppercase headings. */
body.iwe-home .iwe-lc { text-transform: none; }

@media (min-width: 981px) {
  /*
     The right edge used to be reserved for the corner list, so it could
     sit beside the last arch rather than on top of it. That list has been
     removed from the page, and holding the space open left a band of
     empty navy at the end of the row, so the arches now use the full
     width of the track.
  */
  body.iwe-home .iwe-timeline .iwe-timeline__aside { max-width: clamp(140px, 11vw, 210px); }
}


/* =========================================================================
   Added sections - content the Sept 2026 brief asks for that the design did
   not yet carry. Existing sections are untouched; these slot in between them
   and use the same palette, type and hard-edged language.

     .iwe-mosaic   The place: vineyard, grapes, cottage, Kelly shed (s.9 sec 3)
     .iwe-story    The story of the farm - heritage (s.9 sec 4)
     .iwe-connect  Follow the journey + WhatsApp (s.9 sec 7, s.14, s.44)
     .iwe-ticket   2027 Preview Tour list signup form (s.8, s.9 sec 5)
   ========================================================================= */

body.iwe-home .iwe-story,
body.iwe-home .iwe-connect,
body.iwe-home .iwe-ticket {
  padding-block: var(--iwe-section-pad);
}

/* Shared heading treatment for the added sections. */
body.iwe-home .iwe-added__head h2 {
  font-family: var(--iwe-font-display);
  font-weight: 700;
  font-size: clamp(30px, 3.6vw, 60px);
  line-height: .98;
  text-transform: uppercase;
  margin: 0 0 1rem;
  text-wrap: balance;
}

body.iwe-home .iwe-added__head p {
  font-size: clamp(15px, 1.1vw, 18px);
  line-height: 1.65;
  max-width: 58ch;
  margin: 0;
}

/* -------------------------------------------------------------------------
   2. The story of the farm - print collage
   ------------------------------------------------------------------------- */

body.iwe-home .iwe-story {
  background: var(--iwe-ivory);
  overflow: hidden;
}

body.iwe-home .iwe-story__inner {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  gap: clamp(28px, 5vw, 90px);
  align-items: center;
}

body.iwe-home .iwe-story__collage {
  position: relative;
  height: clamp(420px, 42vw, 640px);
}

/* Photographs set as old prints: white border, soft shadow, slight tilt. */
body.iwe-home .iwe-print {
  position: absolute;
  margin: 0;
  background: #fffdf8;
  padding: clamp(8px, .8vw, 12px) clamp(8px, .8vw, 12px) clamp(30px, 2.6vw, 42px);
  box-shadow: 0 18px 40px rgba(16, 24, 44, .18), 0 2px 6px rgba(16, 24, 44, .12);
  transition: transform 700ms var(--iwe-ease);
}

body.iwe-home .iwe-print img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.iwe-home .iwe-print figcaption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: clamp(6px, .6vw, 10px);
  text-align: center;
  font-family: var(--iwe-font-display);
  font-style: italic;
  font-size: clamp(13px, 1vw, 16px);
  color: var(--iwe-charcoal);
}

body.iwe-home .iwe-print--cottage {
  top: 0;
  left: 0;
  width: 58%;
  height: 50%;
  transform: rotate(-3deg);
  z-index: 1;
}

body.iwe-home .iwe-print--shed {
  top: 8%;
  right: 0;
  width: 50%;
  height: 46%;
  transform: rotate(2.5deg);
  z-index: 2;
}

body.iwe-home .iwe-print--tractor {
  bottom: 4%;
  left: 18%;
  width: 56%;
  height: 50%;
  transform: rotate(-1deg);
  z-index: 3;
}

body.iwe-home .iwe-print:hover { transform: rotate(0deg) scale(1.02); z-index: 4; }

body.iwe-home .iwe-story__credits {
  position: absolute;
  left: 0;
  bottom: -6px;
  font-size: 10px;
  line-height: 1.4;
  color: rgba(23, 33, 38, .6);
  max-width: 80%;
}

body.iwe-home .iwe-story .iwe-label { color: var(--iwe-deep-teal); }
body.iwe-home .iwe-story .iwe-added__head h2 { color: var(--iwe-midnight); }

body.iwe-home .iwe-story__body p {
  font-size: clamp(15px, 1.08vw, 18px);
  line-height: 1.72;
  color: rgba(23, 33, 38, .86);
  max-width: 60ch;
  margin: 0 0 1.1rem;
}

/* Drop cap on the opening paragraph. */
body.iwe-home .iwe-story__body p:first-child::first-letter {
  float: left;
  font-family: var(--iwe-font-display);
  font-weight: 700;
  font-size: 3.6em;
  line-height: .82;
  padding: .06em .1em 0 0;
  color: var(--iwe-deep-teal);
}

body.iwe-home .iwe-story__quote {
  margin: 1.6rem 0;
  padding: .2rem 0 .2rem 1.4rem;
  border-left: 2px solid var(--iwe-champagne);
  font-family: var(--iwe-font-display);
  font-style: italic;
  font-size: clamp(20px, 1.8vw, 30px);
  line-height: 1.3;
  color: var(--iwe-emerald);
  max-width: 30ch;
}

body.iwe-home .iwe-story__chips {
  list-style: none;
  margin: 1.4rem 0 1.8rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

body.iwe-home .iwe-story__chips li {
  list-style: none;
  margin: 0;
  padding: .5em 1em;
  background: var(--iwe-mineral-grey);
  font-family: var(--iwe-font-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--iwe-charcoal);
}

body.iwe-home .iwe-story .iwe-link { color: var(--iwe-deep-teal); }

@media (max-width: 980px) {
  body.iwe-home .iwe-story__inner { grid-template-columns: 1fr; }
  body.iwe-home .iwe-story__collage { height: clamp(360px, 80vw, 520px); margin-bottom: 20px; }
}

/* -------------------------------------------------------------------------
   3. Follow the journey + WhatsApp - copper band
   ------------------------------------------------------------------------- */

body.iwe-home .iwe-connect {
  background: var(--iwe-burnt-copper);
  color: var(--iwe-ivory);
  position: relative;
  overflow: hidden;
}

/* Faint concentric rings - a quiet echo of the timeline's growth line. */
body.iwe-home .iwe-connect::before {
  content: "";
  position: absolute;
  right: -12vw;
  top: -18vw;
  width: 46vw;
  height: 46vw;
  border-radius: 50%;
  background: repeating-radial-gradient(circle, rgba(247, 240, 227, .09) 0 1px, transparent 1px 34px);
  pointer-events: none;
}

body.iwe-home .iwe-connect__inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
  gap: clamp(24px, 4vw, 80px);
  align-items: center;
}

body.iwe-home .iwe-connect .iwe-label { color: rgba(247, 240, 227, .8); }
body.iwe-home .iwe-connect .iwe-added__head h2 { color: var(--iwe-ivory); }
body.iwe-home .iwe-connect .iwe-added__head p { color: rgba(247, 240, 227, .88); }

body.iwe-home .iwe-follow-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
}

body.iwe-home .iwe-tile {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 84px;
  padding: 16px 18px;
  color: var(--iwe-ivory);
  text-decoration: none;
  background: rgba(247, 240, 227, .08);
  border: 1px solid rgba(247, 240, 227, .4);
  transition: background-color .4s var(--iwe-ease), color .4s var(--iwe-ease), transform .4s var(--iwe-ease);
}

body.iwe-home a.iwe-tile:hover,
body.iwe-home a.iwe-tile:focus-visible {
  background: var(--iwe-ivory);
  color: var(--iwe-deep-teal);
  transform: translateY(-2px);
}

body.iwe-home .iwe-tile .iwe-icon { flex: 0 0 auto; width: 26px; height: 26px; }
body.iwe-home .iwe-tile .iwe-icon--arrow { width: 18px; height: 18px; margin-left: auto; opacity: .7; }

body.iwe-home .iwe-tile__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }

body.iwe-home .iwe-tile__name {
  font-family: var(--iwe-font-display);
  font-size: clamp(18px, 1.4vw, 22px);
  font-weight: 600;
  line-height: 1.15;
}

body.iwe-home .iwe-tile__handle {
  font-family: var(--iwe-font-body);
  font-size: 12px;
  letter-spacing: .04em;
  opacity: .85;
  overflow-wrap: anywhere;
}

/* The WhatsApp private-visit card spans the grid and sits on midnight. */
body.iwe-home .iwe-tile--whatsapp {
  grid-column: 1 / -1;
  background: var(--iwe-midnight);
  border-color: var(--iwe-midnight);
  padding: clamp(18px, 2vw, 28px);
  flex-wrap: wrap;
}

body.iwe-home .iwe-tile--whatsapp .iwe-icon { color: var(--iwe-living-emerald); width: 34px; height: 34px; }
body.iwe-home .iwe-tile--whatsapp .iwe-tile__text { flex: 1 1 260px; }
body.iwe-home .iwe-tile--whatsapp .iwe-tile__handle { font-size: 14px; line-height: 1.55; max-width: 52ch; }

body.iwe-home .iwe-tile__cta {
  display: inline-flex;
  align-items: center;
  min-height: 48px; /* comfortably tappable - brief s.38 */
  padding: .9em 1.6em;
  background: var(--iwe-living-emerald);
  color: var(--iwe-midnight);
  font-family: var(--iwe-font-body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background-color .4s var(--iwe-ease), color .4s var(--iwe-ease);
}

body.iwe-home .iwe-tile__cta:hover,
body.iwe-home .iwe-tile__cta:focus-visible {
  background: var(--iwe-ivory);
  color: var(--iwe-midnight);
}

@media (max-width: 980px) {
  body.iwe-home .iwe-connect__inner { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------------------
   4. 2027 Preview Tour list - ticket card on midnight
   ------------------------------------------------------------------------- */

body.iwe-home .iwe-ticket {
  background:
    radial-gradient(circle at 18% 30%, rgba(19, 184, 137, .16), transparent 38%),
    linear-gradient(135deg, #10182c 0%, #063b43 100%);
  scroll-margin-top: 20px;
}

body.iwe-home .iwe-ticket__card {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(0, 2.4fr);
  max-width: 1180px;
  margin: 0 auto;
  box-shadow: 0 30px 60px rgba(0, 0, 0, .35);
}

/* Ticket stub - copper, with a perforated right edge. */
body.iwe-home .iwe-ticket__stub {
  position: relative;
  background: var(--iwe-burnt-copper);
  color: var(--iwe-ivory);
  padding: clamp(24px, 3vw, 44px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 24px;
}

body.iwe-home .iwe-ticket__stub::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: -9px;
  width: 18px;
  background: radial-gradient(circle at 9px 13px, #0d2a38 7px, transparent 7.5px) 0 0 / 18px 26px repeat-y;
  z-index: 2;
}

body.iwe-home .iwe-ticket__admit {
  font-family: var(--iwe-font-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: rgba(247, 240, 227, .85);
  margin: 0;
}

body.iwe-home .iwe-ticket__year {
  font-family: var(--iwe-font-display);
  font-weight: 700;
  font-size: clamp(64px, 7vw, 120px);
  line-height: .85;
  margin: 0;
  color: var(--iwe-ivory);
}

body.iwe-home .iwe-ticket__type {
  font-family: var(--iwe-font-display);
  font-size: clamp(18px, 1.6vw, 26px);
  font-weight: 600;
  line-height: 1.15;
  text-transform: uppercase;
  margin: .4rem 0 0;
}

body.iwe-home .iwe-ticket__facts {
  list-style: none;
  margin: 0;
  padding: 16px 0 0;
  border-top: 1px dashed rgba(247, 240, 227, .5);
}

body.iwe-home .iwe-ticket__facts li {
  list-style: none;
  margin: 0;
  padding: 4px 0;
  font-size: 13px;
  line-height: 1.45;
  color: var(--iwe-ivory);
}

body.iwe-home .iwe-ticket__facts li::before {
  content: "\2014\00a0";
  color: var(--iwe-champagne);
}

/* Form side of the ticket. */
body.iwe-home .iwe-ticket__main {
  background: var(--iwe-ivory);
  color: var(--iwe-charcoal);
  padding: clamp(26px, 3.4vw, 56px) clamp(24px, 3.4vw, 60px);
}

body.iwe-home .iwe-ticket__main .iwe-label { color: var(--iwe-emerald); }
body.iwe-home .iwe-ticket__main h2 {
  font-family: var(--iwe-font-display);
  font-weight: 700;
  font-size: clamp(26px, 2.6vw, 44px);
  line-height: 1.02;
  text-transform: uppercase;
  color: var(--iwe-midnight);
  margin: 0 0 .8rem;
  text-wrap: balance;
}

body.iwe-home .iwe-ticket__intro {
  font-size: clamp(14px, 1vw, 16px);
  line-height: 1.6;
  color: rgba(23, 33, 38, .8);
  margin: 0 0 1.4rem;
  max-width: 56ch;
}

/* Formidable form, restyled for the ivory ticket. */
body.iwe-home .iwe-ticket .frm_forms .frm_form_field { margin-bottom: 1rem; }

body.iwe-home .iwe-ticket .frm_forms .frm_primary_label,
body.iwe-home .iwe-ticket .frm_forms label.frm_primary_label {
  font-family: var(--iwe-font-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--iwe-charcoal);
  margin-bottom: .35rem;
}

body.iwe-home .iwe-ticket .frm_forms input[type="text"],
body.iwe-home .iwe-ticket .frm_forms input[type="email"] {
  width: 100%;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(23, 33, 38, .35);
  border-radius: 0;
  box-shadow: none;
  padding: .7rem 0;
  font-family: var(--iwe-font-body);
  font-size: 16px; /* prevents iOS zoom on focus */
  color: var(--iwe-charcoal);
}

body.iwe-home .iwe-ticket .frm_forms input[type="text"]:focus,
body.iwe-home .iwe-ticket .frm_forms input[type="email"]:focus {
  border-bottom-color: var(--iwe-deep-teal);
  outline: none;
  box-shadow: none;
}

body.iwe-home .iwe-ticket .frm_forms input:focus-visible {
  outline: 2px solid var(--iwe-burnt-copper);
  outline-offset: 3px;
}

body.iwe-home .iwe-ticket .frm_forms .frm_checkbox label,
body.iwe-home .iwe-ticket .frm_forms .frm_opt_container label {
  font-family: var(--iwe-font-body);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.5;
  color: rgba(23, 33, 38, .85);
}

body.iwe-home .iwe-ticket .frm_forms .frm_description {
  font-size: 12px;
  line-height: 1.5;
  color: rgba(23, 33, 38, .65);
}

body.iwe-home .iwe-ticket .frm_forms .frm_description a { color: var(--iwe-emerald); }

body.iwe-home .iwe-ticket .frm_forms .frm_submit button,
body.iwe-home .iwe-ticket .frm_forms input[type="submit"] {
  min-height: 50px;
  padding: 1em 2.2em;
  background: var(--iwe-deep-teal);
  color: var(--iwe-ivory);
  border: 1px solid var(--iwe-deep-teal);
  border-radius: 0;
  box-shadow: none;
  font-family: var(--iwe-font-body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color .4s var(--iwe-ease), color .4s var(--iwe-ease);
}

body.iwe-home .iwe-ticket .frm_forms .frm_submit button:hover,
body.iwe-home .iwe-ticket .frm_forms input[type="submit"]:hover {
  background: var(--iwe-midnight);
  border-color: var(--iwe-midnight);
}

body.iwe-home .iwe-ticket .frm_message,
body.iwe-home .iwe-ticket .frm_success_style {
  background: rgba(10, 118, 93, .1);
  border: 0;
  border-left: 3px solid var(--iwe-emerald);
  color: var(--iwe-charcoal);
  padding: 1rem 1.2rem;
  font-size: 15px;
}

body.iwe-home .iwe-ticket .frm_error,
body.iwe-home .iwe-ticket .frm_error_style {
  color: var(--iwe-deep-teal);
  font-size: 12px;
}

body.iwe-home .iwe-ticket .frm_blank_field input { border-bottom-color: var(--iwe-deep-teal); }

@media (max-width: 767px) {
  body.iwe-home .iwe-ticket__card { grid-template-columns: 1fr; }

  body.iwe-home .iwe-ticket__stub::after {
    top: auto;
    left: 0;
    right: 0;
    bottom: -9px;
    width: auto;
    height: 18px;
    background: radial-gradient(circle at 13px 9px, #0d2a38 7px, transparent 7.5px) 0 0 / 26px 18px repeat-x;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.iwe-home .iwe-print,
  body.iwe-home .iwe-tile { transition: none; }
  body.iwe-home a.iwe-tile:hover { transform: none; }
}

/* Follow cards: two per row so handles never break mid-word at desktop widths. */
body.iwe-home .iwe-follow-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
body.iwe-home .iwe-tile__handle { overflow-wrap: normal; word-break: normal; }

/* The shed photograph is portrait; keep the arched roof and KELLY plate in the tilted print. */
body.iwe-home .iwe-print--shed img { object-position: center 22%; }

/* Story collage: sit the tractor print lower so it no longer covers the
   cottage and shed captions. Desktop only; the stacked mobile collage is unchanged. */
@media (min-width: 981px) {
  body.iwe-home .iwe-print--tractor { bottom: 0; height: 44%; }
  body.iwe-home .iwe-print--cottage { height: 47%; }
  body.iwe-home .iwe-print--shed { height: 44%; }
}


/* -------------------------------------------------------------------------
   Mobile fixes (<=767px). Desktop is unchanged.
   ------------------------------------------------------------------------- */

@media (max-width: 767px) {
  /* Hero: Divi paints the photograph on the section itself, full height, so the
     text below the image sat on bright grass. The overlay now covers the whole
     section: darkened photo for the top band, then solid deep teal. */
  body.iwe-home .iwe-hero::after {
    inset: 0;
    height: auto;
    background: linear-gradient(
      180deg,
      rgba(16, 24, 44, .45) 0,
      rgba(16, 24, 44, .12) calc(var(--iwe-hero-image-height) * .55),
      rgba(6, 78, 75, .4) var(--iwe-hero-image-height),
      var(--iwe-deep-teal) var(--iwe-hero-image-height)
    );
  }
  body.iwe-home .iwe-hero__title h1 { line-height: 1; }
  body.iwe-home .iwe-hero .et_pb_button_module_wrapper { display: block; margin: 0 0 12px; }

  /* Experience cards: stack title, photo, text (the flex is on .et_pb_code_inner). */
  body.iwe-home .iwe-experience__media .et_pb_code_inner { flex-direction: column; gap: 8px; }
  body.iwe-home .iwe-experience__vtitle { order: 0; margin: 0; }
  body.iwe-home .iwe-experience__image { flex: none; width: 100%; aspect-ratio: 4 / 3; }
  body.iwe-home .iwe-experience { padding: 14px 14px 14px; }

  /* Watch it grow: the photo sat at its natural 180px inside an inline wrap. */
  body.iwe-home .iwe-estate__strip .et_pb_image_wrap { display: block; width: 100%; }
  body.iwe-home .iwe-estate__strip img { width: 100%; }

  /* Story collage: shorter prints so the tractor no longer covers the shed caption. */
  body.iwe-home .iwe-story__collage { height: 400px; }
  body.iwe-home .iwe-print--cottage { height: 43%; }
  body.iwe-home .iwe-print--shed { top: 5%; height: 41%; }
  body.iwe-home .iwe-print--tractor { bottom: 0; height: 45%; }
}

/*
   Between 480px and 767px (large phones, phones in landscape) Divi puts 1/4
   and 1/2 columns two-across, which squeezed Why a Vineyard, the experience
   cards and the Watch It Grow panel. Stack every homepage row, as below 480px.
*/
@media (max-width: 767px) {
  body.iwe-home .et_pb_section:not(.iwe-header) .et_pb_row > .et_pb_column {
    width: 100% !important;       /* overrides Divi's 47.25% phone-landscape column width */
    margin-right: 0 !important;   /* overrides Divi's column gutter */
  }
  body.iwe-home .et_pb_section:not(.iwe-header) .et_pb_row > .et_pb_column:not(:last-child) { margin-bottom: 30px; }
  body.iwe-home .iwe-estate__panel .iwe-link + .iwe-link { margin-left: 1.4em; }
}


/* =========================================================================
   Hero, redesigned (.iwe-hero2) - deep green contour panel, slanted copper
   band, photograph on the right, handwritten line, word stack and a
   "scroll to begin" cue. Replaces the earlier .iwe-hero, whose rules above no
   longer match anything and can be removed once this design is signed off.
   ========================================================================= */

body.iwe-home {
  --iwe-hero2-green: #0b3a2e;
  --iwe-hero2-copper: #d06a2f;
  --iwe-hero2-skew: -7deg;
}

body.iwe-home .et_pb_section.iwe-hero2 {
  position: relative;
  min-height: clamp(640px, 52vw, 920px);
  padding: 0;
  overflow: hidden;
  background: var(--iwe-hero2-green);
}

/* Divi wrappers step aside so every layer positions against the section. */
body.iwe-home .iwe-hero2 .et_pb_row,
body.iwe-home .iwe-hero2 .et_pb_column:not(.iwe-hero2__content),
body.iwe-home .iwe-hero2 .et_pb_module:not(.iwe-hero2__photo),
body.iwe-home .iwe-hero2 .et_pb_code_inner {
  position: static;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

/* Photograph */
body.iwe-home .iwe-hero2__photo {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 56%;
  z-index: 0;
  overflow: hidden;
}

body.iwe-home .iwe-hero2__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 60% center;
}

body.iwe-home .iwe-hero2__photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(11, 30, 26, .55) 0%, rgba(11, 30, 26, 0) 32%),
    linear-gradient(0deg, rgba(11, 30, 26, .5) 0%, rgba(11, 30, 26, 0) 38%);
}

/* Green panel with topographic contour lines, slanted right edge. */
body.iwe-home .iwe-hero2__panel {
  position: absolute;
  top: 0;
  bottom: 0;
  left: -20%;
  width: calc(20% + 70%);
  z-index: 1;
  transform: skewX(var(--iwe-hero2-skew));
  transform-origin: top left;
  background-color: var(--iwe-hero2-green);
  background-image:
    radial-gradient(120% 90% at 30% 40%, rgba(19, 184, 137, .07), transparent 60%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='900' viewBox='0 0 900 900' fill='none' stroke='%2313b889' stroke-opacity='.16' stroke-width='1.1'%3E%3Cpath d='M-40 180c120-60 220 40 340-10s180-150 330-90 220 170 310 120'/%3E%3Cpath d='M-40 230c130-55 230 45 350-5s190-140 330-80 210 160 300 115'/%3E%3Cpath d='M-40 280c140-50 240 50 360 0s200-130 330-70 200 150 290 110'/%3E%3Cpath d='M-40 330c150-45 250 55 370 5s210-120 330-60 190 140 280 105'/%3E%3Cpath d='M-40 380c160-40 260 60 380 10s220-110 330-50 180 130 270 100'/%3E%3Cpath d='M180 620c-60-70-20-170 90-190s210 50 220 130-70 150-170 150-140-40-140-90z'/%3E%3Cpath d='M215 610c-45-55-15-135 75-150s165 40 175 105-55 120-135 120-115-30-115-75z'/%3E%3Cpath d='M250 600c-30-40-10-100 60-110s120 30 128 78-40 88-100 88-88-22-88-56z'/%3E%3Cpath d='M285 592c-16-24-4-58 36-64s70 18 74 46-24 50-58 50-52-14-52-32z'/%3E%3Cpath d='M-40 760c160 30 280-60 420-20s260 120 400 60 160-110 200-90'/%3E%3Cpath d='M-40 810c170 30 290-50 430-12s250 110 390 55 170-100 200-80'/%3E%3Cpath d='M-40 860c180 28 300-40 440-4s240 100 380 50 180-90 200-70'/%3E%3C/svg%3E");
  background-size: auto, 900px 900px;
  background-repeat: no-repeat, repeat;
}

/* Copper band following the panel's slanted edge. */
body.iwe-home .iwe-hero2__band {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 70%;
  z-index: 2;
  width: clamp(58px, 4.8vw, 82px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(18px, 2vw, 30px);
  padding: clamp(150px, 13vw, 210px) 0 clamp(36px, 3vw, 56px);
  transform: skewX(var(--iwe-hero2-skew));
  transform-origin: top left;
  background: linear-gradient(180deg, #d9763a 0%, var(--iwe-hero2-copper) 55%, #b9561f 100%);
  box-shadow: 0 0 40px rgba(0, 0, 0, .25);
  color: var(--iwe-hero2-green);
}

body.iwe-home .iwe-hero2__band-text {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-family: var(--iwe-font-body);
  font-size: clamp(11px, .8vw, 13px);
  font-weight: 700;
  letter-spacing: .34em;
  text-transform: uppercase;
  white-space: nowrap;
}

body.iwe-home .iwe-hero2__shamrock {
  flex: none;
  width: clamp(22px, 1.9vw, 30px);
  height: auto;
}

body.iwe-home .iwe-hero2__band-tag {
  margin-top: auto;
  font-family: var(--iwe-font-body);
  font-size: 9px;
  font-weight: 700;
  line-height: 1.9;
  letter-spacing: .22em;
  text-align: center;
  text-transform: uppercase;
}

body.iwe-home .iwe-hero2__band-rule {
  width: 24px;
  height: 1px;
  background: currentColor;
}

/* Handwritten line over the photograph. */
body.iwe-home .iwe-hero2__script {
  position: absolute;
  top: clamp(120px, 11vw, 170px);
  right: clamp(24px, 5vw, 96px);
  z-index: 3;
  max-width: none;
  margin: 0;
  font-family: "Caveat", "Segoe Script", "Bradley Hand", cursive;
  font-size: clamp(30px, 2.8vw, 48px);
  font-weight: 600;
  line-height: .95;
  color: var(--iwe-ivory);
  text-shadow: 0 2px 14px rgba(0, 0, 0, .55);
  transform: rotate(-7deg);
  transform-origin: right top;
}

/* Text content inside the green panel. */
body.iwe-home .iwe-hero2__content {
  position: relative;
  z-index: 3;
  width: min(42vw, 680px);
  margin-left: clamp(24px, 8.5vw, 170px);
  padding: clamp(150px, 12.5vw, 200px) 0 clamp(110px, 9vw, 150px);
}

body.iwe-home .iwe-hero2 p.iwe-hero2__eyebrow {
  max-width: none;
  margin: 0 0 clamp(18px, 1.8vw, 28px);
  font-family: var(--iwe-font-body);
  font-size: clamp(11px, .85vw, 14px);
  font-weight: 700;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: rgba(247, 240, 227, .72);
}

body.iwe-home .iwe-hero2 h1.iwe-hero2__title {
  margin: 0;
  padding: 0;
  font-family: var(--iwe-font-display);
  font-size: clamp(36px, 3.8vw, 56px);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: .01em;
  text-transform: none;
  color: var(--iwe-ivory);
  text-shadow: 0 2px 20px rgba(0, 0, 0, .25);
}

body.iwe-home .iwe-hero2__line { display: block; }
body.iwe-home .iwe-hero2__line--light { font-weight: 500; }

body.iwe-home .iwe-hero2__accent {
  color: var(--iwe-champagne);
  font-size: 1.12em;
}

body.iwe-home .iwe-hero2 p.iwe-hero2__copy {
  max-width: 46ch;
  margin: clamp(20px, 2vw, 30px) 0 0;
  font-family: var(--iwe-font-body);
  font-size: clamp(15px, 1.08vw, 18px);
  line-height: 1.6;
  color: rgba(247, 240, 227, .88);
}

body.iwe-home .iwe-hero2__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 28px;
  margin-top: clamp(24px, 2.4vw, 36px);
}

body.iwe-home .iwe-hero2__btn,
body.iwe-home .iwe-hero2__link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--iwe-font-body);
  font-size: clamp(11px, .85vw, 13px);
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background-color .4s var(--iwe-ease), color .4s var(--iwe-ease), border-color .4s var(--iwe-ease);
}

body.iwe-home .iwe-hero2__btn {
  min-height: 54px;
  padding: 0 26px;
  background: var(--iwe-champagne);
  color: var(--iwe-deep-teal);
  box-shadow: 0 12px 28px rgba(0, 0, 0, .25);
}

body.iwe-home .iwe-hero2__btn:hover {
  background: var(--iwe-ivory);
  color: var(--iwe-hero2-green);
}

body.iwe-home .iwe-hero2__link {
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(247, 240, 227, .5);
  color: var(--iwe-ivory);
}

body.iwe-home .iwe-hero2__link:hover {
  color: var(--iwe-champagne);
  border-color: var(--iwe-champagne);
}

body.iwe-home .iwe-hero2__arrow {
  flex: none;
  transition: transform .4s var(--iwe-ease);
}

body.iwe-home .iwe-hero2__btn:hover .iwe-hero2__arrow,
body.iwe-home .iwe-hero2__link:hover .iwe-hero2__arrow { transform: translateX(4px); }

/* Scroll cue, bottom left. */
body.iwe-home .iwe-hero2__scroll {
  position: absolute;
  left: clamp(20px, 4.2vw, 76px);
  bottom: clamp(26px, 3vw, 48px);
  z-index: 3;
  display: flex;
  align-items: flex-end;
  gap: 16px;
  font-family: var(--iwe-font-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
  text-decoration: none;
  color: rgba(247, 240, 227, .85);
}

body.iwe-home .iwe-hero2__scroll-line {
  position: relative;
  display: block;
  width: 1px;
  height: clamp(60px, 6vw, 96px);
  background: var(--iwe-hero2-copper);
}

body.iwe-home .iwe-hero2__scroll-line::after {
  content: "";
  position: absolute;
  bottom: -4px;
  left: 50%;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--iwe-hero2-copper);
  transform: translateX(-50%);
}

body.iwe-home .iwe-hero2__scroll:hover { color: var(--iwe-champagne); }

/* Word stack, bottom right. */
body.iwe-home .iwe-hero2__words {
  position: absolute;
  right: clamp(20px, 4.2vw, 76px);
  bottom: clamp(36px, 4vw, 66px);
  z-index: 3;
  margin: 0;
  padding: 4px 0 4px 18px;
  list-style: none;
  border-left: 1px solid var(--iwe-hero2-copper);
  font-family: var(--iwe-font-body);
  font-size: clamp(10px, .78vw, 12px);
  font-weight: 700;
  line-height: 2;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--iwe-ivory);
  text-shadow: 0 1px 10px rgba(0, 0, 0, .6);
}

body.iwe-home .iwe-hero2__words li {
  margin: 0;
  padding: 0;
  list-style: none;
}

body.iwe-home .iwe-hero2 a:focus-visible {
  outline: 2px solid var(--iwe-champagne);
  outline-offset: 4px;
}

/* Tablet: wider panel, band further right, fewer extras. */
@media (max-width: 1180px) {
  body.iwe-home .iwe-hero2__panel { width: calc(20% + 73%); }
  body.iwe-home .iwe-hero2__band { left: 73%; }
  body.iwe-home .iwe-hero2__photo { left: 60%; }
  body.iwe-home .iwe-hero2__content { width: min(52vw, 640px); margin-left: clamp(24px, 6vw, 90px); }
  body.iwe-home .iwe-hero2__script { font-size: clamp(26px, 3vw, 36px); }
}

@media (max-width: 980px) {
  body.iwe-home .iwe-hero2__words { display: none; }
  body.iwe-home .iwe-hero2__band-tag { display: none; }
  body.iwe-home .iwe-hero2__content { padding-top: 140px; }
}

/* Phone: photograph on top, copper band as a strip, green panel beneath. */
@media (max-width: 767px) {
  body.iwe-home .et_pb_section.iwe-hero2 {
    min-height: 0;
    display: flex;
    flex-direction: column;
  }

  body.iwe-home .iwe-hero2 .et_pb_code_inner {
    display: flex;
    flex-direction: column;
    position: relative;
  }

  body.iwe-home .iwe-hero2__photo {
    position: relative;
    inset: auto;
    height: clamp(300px, 78vw, 460px);
  }

  body.iwe-home .iwe-hero2__photo::after {
    background: linear-gradient(180deg, rgba(11, 30, 26, .6) 0%, rgba(11, 30, 26, 0) 40%, rgba(11, 30, 26, .35) 100%);
  }

  body.iwe-home .iwe-hero2__panel { display: none; }

  body.iwe-home .iwe-hero2__band {
    position: relative;
    inset: auto;
    width: 100%;
    flex-direction: row;
    justify-content: center;
    gap: 14px;
    padding: 14px 16px;
    transform: none;
  }

  body.iwe-home .iwe-hero2__band-text {
    writing-mode: horizontal-tb;
    transform: none;
    font-size: 11px;
    letter-spacing: .26em;
  }

  body.iwe-home .iwe-hero2__band-rule { display: none; }
  body.iwe-home .iwe-hero2__shamrock { width: 20px; }

  body.iwe-home .iwe-hero2__script {
    top: calc(clamp(300px, 78vw, 460px) - 118px);
    right: 20px;
    font-size: 30px;
  }

  body.iwe-home .iwe-hero2__content {
    width: auto;
    margin: 0;
    padding: 34px 20px 44px;
    background-color: var(--iwe-hero2-green);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600' viewBox='0 0 600 600' fill='none' stroke='%2313b889' stroke-opacity='.14' stroke-width='1'%3E%3Cpath d='M120 420c-60-70-20-170 90-190s210 50 220 130-70 150-170 150-140-40-140-90z'/%3E%3Cpath d='M160 410c-45-55-15-135 75-150s165 40 175 105-55 120-135 120-115-30-115-75z'/%3E%3Cpath d='M200 400c-30-40-10-100 60-110s120 30 128 78-40 88-100 88-88-22-88-56z'/%3E%3Cpath d='M-20 120c120-60 220 40 340-10s180-150 330-90'/%3E%3Cpath d='M-20 170c130-55 230 45 350-5s190-140 330-80'/%3E%3C/svg%3E");
  }

  body.iwe-home .iwe-hero2 h1.iwe-hero2__title { font-size: clamp(38px, 11vw, 52px); }

  body.iwe-home .iwe-hero2__actions { flex-direction: column; align-items: stretch; }
  body.iwe-home .iwe-hero2__btn { justify-content: center; }
  body.iwe-home .iwe-hero2__link { align-self: flex-start; }

  body.iwe-home .iwe-hero2__scroll { display: none; }
  body.iwe-home .iwe-hero2 p.iwe-hero2__eyebrow { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  body.iwe-home .iwe-hero2__btn,
  body.iwe-home .iwe-hero2__link,
  body.iwe-home .iwe-hero2__arrow { transition: none; }
}

/* Four social accounts now, not three. auto-fit gave 3 across with TikTok
   stranded alone on a second row, so the tiles are set to a 2 x 2 block that
   fills every slot. Below 640px they stack, as before. */
@media (min-width: 641px) {
  body.iwe-home .iwe-follow-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  /* The WhatsApp card is a different kind of thing: it keeps the full width. */
  body.iwe-home .iwe-follow-grid > .iwe-tile--whatsapp,
  body.iwe-home .iwe-follow-grid > .iwe-private {
    grid-column: 1 / -1;
  }
}

/* The hero's photograph and wording are modules now so they can be
   edited in the builder. Divi adds a wrapper around each one; these
   rules stop those wrappers changing where anything sits. */
body.iwe-home .iwe-hero2 .et_pb_image.iwe-hero2__photo {
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
  line-height: 0;
}

body.iwe-home .iwe-hero2 .iwe-hero2__photo .et_pb_image_wrap {
  display: block;
  height: 100%;
}

body.iwe-home .iwe-hero2 .iwe-hero2__copyblock .et_pb_text_inner,
body.iwe-home .iwe-hero2 .iwe-hero2__buttons .et_pb_code_inner {
  display: block;
}

/* Divi gives every column a 1px minimum so an empty one still shows
   in the builder. The row holding the photograph and the decorative
   layers has nothing in the flow, so that 1px would make the whole
   page one pixel taller than before. */
body.iwe-home .iwe-hero2 .et_pb_row,
body.iwe-home .iwe-hero2 .et_pb_column:not(.iwe-hero2__content) {
  min-height: 0;
}

/* Inside the Visual Builder only. Divi gives every module
   position: relative so its hover controls can sit on it, which drops
   the hero photograph into the flow and makes the section twice as
   tall while editing. The front end never carries that class, so
   this cannot affect the live page. */
html.et-fb-app-frame .iwe-hero2 .et_pb_image.iwe-hero2__photo {
  position: absolute !important;
}

/* Builder only, same reason: the row and column are relative there,
   so the photograph would size itself against the row instead of the
   section and appear as a thin strip while editing. */
html.et-fb-app-frame .iwe-hero2 .et_pb_row,
html.et-fb-app-frame .iwe-hero2 .et_pb_column:not(.iwe-hero2__content) {
  position: static !important;
}
