/*
 * v1.3.0 — bounded mobile clarity layer.
 * Existing brand, result-colour roles, medical output and iOS temporal-control
 * auto/stretch sizing remain owned by the preceding, unchanged layers.
 * No root clipping, intrinsic-control width override or visual DOM reordering.
 */
.sw-app-page {
  --sw-clarity-space-1: .5rem;
  --sw-clarity-space-2: .75rem;
  --sw-clarity-space-3: 1rem;
  --sw-clarity-space-4: 1.5rem;
  --sw-clarity-space-5: 2rem;
  --sw-clarity-body: 1.0625rem;
  --sw-clarity-label: 1rem;
  --sw-clarity-meta: .9375rem;
  --sw-clarity-section: 1.5rem;
  --sw-clarity-radius: 1rem;
}

/* Primary page titles: existing serif, human-scale size and natural wrapping. */
.sw-app-page :is(.v2-hero-copy, .v2-choice-main, .v2-journal-heading, .v2-trying-intro,
  .v2-age-hero-copy, .v2-evidence-intro, .fs-entry-copy, .pc-intro, .calculator-intro,
  .sw-content-hero, .sw-app-legal-shell) h1 {
  margin-block: var(--sw-clarity-space-3) var(--sw-clarity-space-4);
  font-size: clamp(2.25rem, 3.6vw, 3.75rem);
  line-height: 1.12;
  letter-spacing: -.035em;
  overflow-wrap: anywhere !important;
  word-break: normal;
  -webkit-hyphens: auto !important;
  hyphens: auto !important;
}
.sw-app-page :is(.v2-lead, .v2-trying-lead, .pc-lead, .v2-journal-heading > div > p:not(.v2-kicker)) {
  margin-block: 0 var(--sw-clarity-space-4);
  color: var(--v2-ink, #2f3534);
  font-size: var(--sw-clarity-body);
  line-height: 1.55;
}
.sw-app-page :is(.v2-kicker, .v2-overline) {
  font-size: .875rem;
  line-height: 1.5;
  letter-spacing: .045em;
  overflow-wrap: anywhere;
  -webkit-hyphens: auto;
  hyphens: auto;
}
.sw-app-page :is(.v2-card-heading h2, .v2-panel-heading h2, .sw-home-benefit h2,
  .sw-background-section h2, .v2-partner-section > h2, .sw-journal-preview-heading h2,
  .sw-page-takeaways h2) {
  margin-block: 0 var(--sw-clarity-space-2);
  font-family: inherit;
  font-size: var(--sw-clarity-section);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -.02em;
  overflow-wrap: anywhere !important;
  -webkit-hyphens: auto !important;
  hyphens: auto !important;
}
/* These existing headings/legends must also reflow when the user doubles text.
 * The v1.0.5 all-heading !important prohibition otherwise wins the cascade. */
.sw-app-page :is(.body-signal-card-heading .body-signal-title, .v2-trying-question legend,
  .sw-app-legal-content h2, .sw-app-legal-content h3) {
  min-inline-size: 0;
  max-inline-size: 100%;
  overflow-wrap: anywhere !important;
  -webkit-hyphens: auto !important;
  hyphens: auto !important;
}
.sw-app-page .v2-risk-columns label {
  min-inline-size: 0;
  max-inline-size: 100%;
  overflow-wrap: anywhere;
  -webkit-hyphens: auto;
  hyphens: auto;
}
.sw-app-page :is(.v2-field-row > label, .v2-segmented legend, .v2-segmented label > span,
  .v2-add-period > label, .v2-add-period-controls > button, .v2-text-button) {
  font-size: var(--sw-clarity-label);
  line-height: 1.5;
}

/* One existing A–D group, followed by the real quick calculator in DOM order. */
.sw-app-page .v2-situations {
  display: grid;
  gap: var(--sw-clarity-space-2);
  margin-block-start: var(--sw-clarity-space-4);
}
.sw-app-page .v2-situations .v2-primary-action {
  margin: 0;
  gap: var(--sw-clarity-space-2);
  padding: var(--sw-clarity-space-3);
  border-radius: var(--sw-clarity-radius);
  box-shadow: none;
}
.sw-app-page .v2-primary-label {
  font-size: 1.0625rem;
  line-height: 1.4;
}
.sw-app-page .v2-primary-label > small {
  margin-block-end: .25rem;
  font-size: .875rem;
  line-height: 1.4;
  letter-spacing: 0;
  text-transform: none;
  color: #fff;
}
.sw-app-page .v2-situations .v2-intent-list {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--sw-clarity-space-2);
}
.sw-app-page .v2-situations .v2-intent-card {
  min-height: 0;
  gap: var(--sw-clarity-space-2);
  padding: var(--sw-clarity-space-3);
  align-items: center;
  border-radius: var(--sw-clarity-radius);
}
.sw-app-page .v2-situations .v2-intent-card strong {
  margin: 0;
  font-size: var(--sw-clarity-label);
  line-height: 1.4;
  overflow-wrap: break-word !important;
  -webkit-hyphens: none !important;
  hyphens: none !important;
}
.sw-app-page .v2-situations .v2-intent-card small {
  margin-block-start: .25rem;
  font-size: var(--sw-clarity-meta);
  line-height: 1.45;
  color: var(--v2-muted);
}
.sw-app-page :is(.v2-form-privacy, .v2-add-period > p:not(.v2-form-error)) {
  margin-block: var(--sw-clarity-space-3) 0;
  color: var(--v2-muted, #66706d);
  font-size: var(--sw-clarity-meta);
  line-height: 1.55;
}
.sw-app-page :is(.sw-home-benefit, .sw-background-section) {
  margin-block: var(--sw-clarity-space-5);
  padding-block: var(--sw-clarity-space-4);
  border-block-start: 1px solid var(--v2-line, rgba(47, 53, 52, .14));
}
.sw-app-page .sw-home-benefit > p {
  max-inline-size: 48rem;
  margin-block: 0 var(--sw-clarity-space-3);
  font-size: var(--sw-clarity-body);
  line-height: 1.55;
}
.sw-app-page .sw-home-benefit > .sw-benefit-note {
  font-size: var(--sw-clarity-meta);
  color: var(--v2-muted);
}
.sw-app-page :is(.sw-home-benefit, .sw-background-section):last-child {
  margin-block-end: 0;
  padding-block-end: 0;
}
.sw-app-page:is(.v2-home, .v2-trying-page, .v2-concern-page) > main {
  padding-block-end: 0;
}
.sw-app-page .sw-background-links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .25rem;
  margin-block-start: var(--sw-clarity-space-3);
}
.sw-app-page .sw-background-links > a {
  display: inline-flex;
  align-items: center;
  min-block-size: 2.75rem;
  max-inline-size: 100%;
  padding-block: var(--sw-clarity-space-1);
  color: var(--v2-sage-deep, #3e5b53);
  font-size: var(--sw-clarity-label);
  line-height: 1.5;
  text-decoration: underline;
  text-underline-offset: .2em;
  overflow-wrap: break-word;
  -webkit-hyphens: auto;
  hyphens: auto;
}

/* A single boundary and data note belong to every independently reached state. */
.sw-app-page.pc-page .pc-state-notes {
  display: grid;
  gap: var(--sw-clarity-space-2);
  margin-block-start: var(--sw-clarity-space-4);
  padding-block-start: var(--sw-clarity-space-3);
  border-top: 1px solid var(--v2-line);
}
.sw-app-page.pc-page .pc-state-notes > :is(.pc-boundary, .pc-privacy-line) {
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--v2-muted);
  font-size: var(--sw-clarity-meta);
  line-height: 1.55;
  box-shadow: none;
}
.sw-app-page.pc-page .pc-state-notes > #concern-boundary { display: block; }
.sw-app-page.pc-page:has(.pc-view:not(.pc-entry-view):not([hidden])) .pc-lead {
  font-size: var(--sw-clarity-body);
  line-height: 1.55;
}
.sw-app-page.pc-page:has(.pc-view:not(.pc-entry-view):not([hidden])) .pc-intro h1 {
  font-size: 2rem;
  line-height: 1.15;
}

/* Retain both partners, remove nested decorative surfaces and redundant notes. */
.sw-app-page .v2-partner-section {
  margin-block: var(--sw-clarity-space-4) 0;
  padding-block-start: var(--sw-clarity-space-4);
  border-block-start: 1px solid var(--v2-line);
}
.sw-app-page .v2-partner-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--sw-clarity-space-3);
  margin: 0;
}
.sw-app-page .v2-partner-pair > article {
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.sw-app-page .v2-partner-pair h3 {
  margin: 0 0 .25rem;
  font-size: 1.0625rem;
  line-height: 1.5;
}
.sw-app-page .v2-partner-pair p {
  margin: 0;
  font-size: var(--sw-clarity-body);
  line-height: 1.55;
}
.sw-app-page .v2-partner-section .v2-equal-note {
  display: block;
  margin: var(--sw-clarity-space-3) 0 0;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: var(--sw-clarity-meta);
  line-height: 1.55;
  color: var(--v2-muted);
}
.sw-app-page.has-trying-result .v2-partner-section .v2-equal-note { display: none; }

/* Journal: flat, encouraging first steps; preview has no editable controls. */
.sw-app-page .v2-add-period {
  padding: 0;
  border-radius: 0;
  background: transparent;
}
.sw-app-page .v2-history-panel {
  margin-block-start: var(--sw-clarity-space-4);
  padding: var(--sw-clarity-space-4) 0 0;
  border: 0;
  border-block-start: 1px solid var(--v2-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.sw-app-page .v2-history-panel .v2-panel-heading {
  align-items: flex-start;
  flex-wrap: wrap;
  gap: var(--sw-clarity-space-2);
  margin-block-end: var(--sw-clarity-space-2);
}
.sw-app-page .v2-empty-history {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  text-align: start;
}
.sw-app-page .v2-empty-history > p {
  margin: 0 0 var(--sw-clarity-space-2);
  max-inline-size: 46rem;
  color: var(--v2-ink);
  font-size: var(--sw-clarity-body);
  line-height: 1.55;
}
.sw-app-page .v2-history-count {
  display: flex;
  flex-wrap: wrap;
  inline-size: auto;
  gap: .375rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--v2-muted);
}
.sw-app-page .v2-history-count :is(strong, span) {
  font-size: var(--sw-clarity-meta);
  line-height: 1.5;
}
.sw-app-page .v2-history-count[hidden] { display: none; }
.sw-app-page .v2-add-period-controls > button {
  min-block-size: 3.25rem;
  padding: .875rem 1rem;
  border: 1px solid var(--v2-sage-deep);
  border-radius: .75rem;
  background: var(--v2-sage-deep);
  color: #fff;
  white-space: normal;
}
.sw-app-page :is(#load-example, #close-example) {
  display: inline-flex;
  align-items: center;
  min-block-size: 2.75rem;
  max-inline-size: 100%;
  padding: .5rem 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--v2-sage-deep);
  font-weight: 650;
  text-align: start;
  text-decoration: underline;
  text-underline-offset: .2em;
}
.sw-app-page .sw-journal-preview {
  min-inline-size: 0;
  grid-column: 1 / -1;
  padding: var(--sw-clarity-space-4);
  border: 1px solid var(--v2-line);
  border-radius: var(--sw-clarity-radius);
  background: var(--v2-paper);
}
.sw-app-page .sw-journal-preview-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--sw-clarity-space-2);
}
.sw-app-page .sw-journal-preview-caption {
  margin-block: var(--sw-clarity-space-2) var(--sw-clarity-space-4);
  font-size: var(--sw-clarity-body);
  line-height: 1.55;
}
.sw-app-page.v2-journal-page:has(#journal-example-preview:not([hidden])) .sw-page-takeaways {
  display: none;
}

/* One shared, compact closure; no second general methodology promotion. */
.sw-app-page .sw-app-global-footer {
  margin-block-start: var(--sw-clarity-space-5);
  padding-block: var(--sw-clarity-space-4);
  background: transparent;
  border-block-start: 1px solid var(--v2-line, rgba(47, 53, 52, .14));
}
.sw-app-page .sw-app-global-footer-inner {
  display: block;
  padding-block: 0;
}
.sw-app-page .sw-app-global-footer .sw-editorial-meta {
  display: block;
  margin: 0 0 var(--sw-clarity-space-4);
  padding: 0 0 var(--sw-clarity-space-4);
  border: 0;
  border-block-end: 1px solid var(--v2-line, rgba(47, 53, 52, .14));
  border-radius: 0;
  background: transparent;
}
.sw-app-page .sw-editorial-meta dl {
  display: grid;
  gap: .375rem var(--sw-clarity-space-4);
  margin: 0;
}
.sw-app-page .sw-editorial-meta dl > div {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  column-gap: .5rem;
  min-inline-size: 0;
}
.sw-app-page .sw-editorial-meta :is(dt, dd, time) {
  display: inline;
  margin: 0;
  color: var(--v2-muted, #66706d);
  font-size: var(--sw-clarity-meta);
  line-height: 1.55;
  letter-spacing: 0;
  text-transform: none;
}
.sw-app-page .sw-editorial-meta dd {
  color: var(--v2-ink, #2f3534);
  font-weight: 600;
}
.sw-app-page .sw-footer-bottom {
  display: grid;
  gap: var(--sw-clarity-space-3) var(--sw-clarity-space-5);
}
.sw-app-page .sw-footer-bottom > p {
  margin: 0;
  max-inline-size: 38rem;
  color: var(--v2-muted, #66706d);
  font-size: var(--sw-clarity-meta);
  line-height: 1.55;
}
.sw-app-page .sw-footer-bottom > p > strong {
  font-size: 1rem;
  font-weight: 700;
  color: var(--v2-ink, #2f3534);
}
.sw-app-page .sw-footer-bottom nav {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0 var(--sw-clarity-space-4);
}
.sw-app-page .sw-footer-bottom nav a {
  display: inline-flex;
  align-items: center;
  min-block-size: 2.75rem;
  max-inline-size: 100%;
  padding: .5rem 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-size: var(--sw-clarity-meta);
  line-height: 1.5;
  font-weight: 600;
  color: var(--v2-sage-deep, #3e5b53);
  text-decoration: underline;
  text-underline-offset: .2em;
  white-space: normal;
  word-break: normal;
  -webkit-hyphens: auto;
  hyphens: auto;
}
.sw-app-page .sw-source-panel > summary {
  min-block-size: 2.75rem;
  padding-block: .5rem;
  font-size: var(--sw-clarity-label);
  line-height: 1.5;
  font-weight: 700;
  color: var(--v2-sage-deep, #3e5b53);
  cursor: pointer;
}

@media (max-width: 720px) {
  .sw-app-page :is(.v2-hero-copy, .v2-choice-main, .v2-journal-heading, .v2-trying-intro,
    .v2-age-hero-copy, .v2-evidence-intro, .fs-entry-copy, .pc-intro, .calculator-intro,
    .sw-content-hero, .sw-app-legal-shell) h1 {
    font-size: 2.25rem;
    line-height: 1.12;
  }
  .sw-app-page .v2-hero-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--sw-clarity-space-5);
  }
  .sw-app-page .v2-hero-copy h1 { margin-block: .75rem 1rem; }
  .sw-app-page .v2-hero-copy > .v2-lead { margin-block-end: 1rem; }
  .sw-app-page .v2-situations { margin-block-start: 1rem; }
  .sw-app-page .v2-situations :is(.v2-intent-card, .v2-primary-action) {
    padding-block: .75rem;
  }
  .sw-app-page .v2-primary-label { font-size: 1rem; line-height: 1.35; }
  .sw-app-page .v2-segmented {
    grid-template-columns: minmax(0, 1fr);
    gap: .5rem;
    background: transparent;
  }
  .sw-app-page .v2-segmented label > span {
    justify-items: start;
    padding: .625rem .75rem;
  }
  .sw-app-page .v2-add-period-controls {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--sw-clarity-space-2);
  }
  .sw-app-page .v2-add-period-controls > button { inline-size: 100%; }
  .sw-app-page .sw-footer-bottom nav { flex-direction: column; gap: 0; }
  .sw-app-page .sw-journal-preview { padding: var(--sw-clarity-space-3); }
}
@media (min-width: 1000px) {
  .sw-app-page .v2-hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
    gap: 3rem;
  }
  .sw-app-page .sw-home-benefit .sw-background-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--sw-clarity-space-5);
  }
  .sw-app-page .sw-editorial-meta dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sw-app-page .sw-footer-bottom { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
}
