/* ============================================================
   Our Story — Swiss Grid page-specific CSS.
   Scoped to .v-swiss; builds on shared swiss.css primitives.
   ============================================================ */

.v-swiss .sw-story-page .sw-phero,
.v-swiss .sw-story-page > .sw-section {
  border-bottom: 0;
}

/* ---- HERO: matches the Captive Insurance media hero --------- */
.v-swiss .sw-story-page .sw-phero__inner {
  padding-block: clamp(40px, 5vw, 80px);
  row-gap: clamp(28px, 4vw, 48px);
  align-items: stretch;
}

.v-swiss .sw-story-page .sw-phero__main {
  grid-column: 2 / span 5;
  align-self: stretch;
  display: flex;
  flex-direction: column;
}

.v-swiss .sw-story-page .sw-phero__title {
  margin: 0;
  line-height: 0.95;
  text-wrap: initial;
}

.v-swiss .sw-story-page .sw-phero__title-line {
  display: block;
}

.v-swiss .sw-story-page .sw-phero__meta {
  flex: 1;
  margin-top: clamp(24px, 3vw, 40px);
  padding-top: 8px;
  border-top: 2px solid var(--sw-ink);
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.v-swiss .sw-story-page .sw-phero__intro {
  margin: 0;
  line-height: 1.55;
}

.v-swiss .sw-story-page .sw-phero__meta .sw-btn {
  align-self: flex-start;
  margin-top: auto;
}

.v-swiss .sw-story-page .sw-phero__media {
  grid-column: 7 / span 5;
  align-self: stretch;
  width: 100%;
  height: 100%;
  margin: 0;
  border: 1px solid var(--sw-ink);
  overflow: hidden;
  position: relative;
}

.v-swiss .sw-story-page .sw-phero__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ---- NARRATIVE: margin label + banner, founding paragraphs right */
.v-swiss .story-narrative {
  padding-top: clamp(40px, 5vw, 72px);
  padding-bottom: clamp(48px, 6vw, 80px);
}

.v-swiss .sw-marginal__main.story-prose {
  display: block;
}

.v-swiss .story-prose p {
  margin: 0 0 1.15em;
  font-size: var(--sw-fs-body);
  line-height: 1.62;
  color: var(--sw-ink-70);
  max-width: 62ch;
}

.v-swiss .story-prose p:last-child { margin-bottom: 0; }


/* ---- ADVANTAGE: heading + intro on the shared 7-column section measure */
.v-swiss .story-advantage__head {
  padding-top: clamp(40px, 5vw, 72px);
  padding-bottom: clamp(28px, 3.5vw, 48px);
  row-gap: clamp(20px, 2.5vw, 28px);
  align-items: start;
}

.v-swiss .story-advantage__head .sw-section__title {
  grid-column: 2 / span 7;
  max-width: none;
}

.v-swiss .story-advantage__intro {
  grid-column: 2 / span 7;
  margin: 0;
}

/* ---- Chapters: one tall banner per group, chapters stacked beside it */
.v-swiss .story-group {
  padding-bottom: clamp(56px, 7vw, 104px);
}

.v-swiss .sw-marginal__main.story-chapters {
  gap: clamp(48px, 5vw, 72px);
}

.v-swiss .story-chapter {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.v-swiss .story-chapter__name {
  margin-bottom: 4px;
}

.v-swiss .story-chapter__h {
  margin: 0;
  font-family: var(--sw-display);
  font-weight: 700;
  font-size: var(--sw-fs-h4);
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--sw-ink);
  text-wrap: pretty;
}

.v-swiss .story-chapter__p {
  margin: 0;
  max-width: 64ch;
  font-size: var(--sw-fs-body);
  line-height: 1.62;
  color: var(--sw-ink-70);
}

.v-swiss .story-chapter__close {
  font-weight: 700;
  color: var(--sw-ink);
}

/* ---- RESPONSIVE --------------------------------------------- */
@media (max-width: 1024px) {
  .v-swiss .story-advantage__head .sw-section__title,
  .v-swiss .story-advantage__intro {
    grid-column: 2 / span 10;
  }
}

@media (max-width: 860px) {
  .v-swiss .sw-story-page .sw-phero__inner {
    align-items: start;
  }

  .v-swiss .sw-story-page .sw-phero__main,
  .v-swiss .sw-story-page .sw-phero__media {
    grid-column: 2 / span 10;
  }

  .v-swiss .sw-story-page .sw-phero__media {
    height: auto;
    aspect-ratio: 4 / 3;
  }

  .v-swiss .story-narrative,
  .v-swiss .story-group {
    row-gap: 28px;
  }
}

@media (max-width: 640px) {
  .v-swiss .sw-story-page .sw-phero__main,
  .v-swiss .sw-story-page .sw-phero__media,
  .v-swiss .story-advantage__head .sw-section__title,
  .v-swiss .story-advantage__intro {
    grid-column: 1 / -1;
  }
}
