:root {
  --ink: #211e1b;
  --ink-soft: #4c4741;
  --muted: #746e66;
  --line: #e7dfd2;
  --paper: #fffdf8;
  --paper-warm: #f8f4ec;
  --blush: #f3ecdf;
  --rose-50: #fbf7ee;
  --rose: #b8904f;
  --rose-dark: #87652f;
  --wine: #2c2926;
  --wine-deep: #1e1b19;
  --gold: #c2a163;
  --gold-light: #ebdfc8;
  --surface-main: #fff;
  --surface-soft: #fffaf6;
  --surface-accent: #fff4ee;
  --brand-coral: #ef6047;
  --brand-coral-dark: #c94e39;
  --corner-sharp: 4px;
  --shadow: 0 24px 70px rgba(44, 38, 31, 0.11);
  --shadow-soft: 0 16px 45px rgba(44, 38, 31, 0.07);
  --radius: 28px;
  --content: min(1180px, calc(100% - 48px));
  --serif: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", Georgia, serif;
}

/* Editorial publishing system: journal and news pages generated from content data. */
.editorial-page main {
  overflow: clip;
  background: #fff;
}

.editorial-page .breadcrumbs,
.editorial-article,
.editorial-index-hero,
.editorial-index {
  width: var(--content);
  margin-inline: auto;
}

.editorial-page .breadcrumbs {
  padding-block: 22px;
}

.editorial-hero,
.editorial-index-hero {
  padding: clamp(46px, 8vw, 92px) 0 clamp(38px, 6vw, 72px);
  border-bottom: 1px solid var(--line);
  text-align: center;
}

.editorial-hero > div,
.editorial-index-hero > * {
  max-width: 860px;
  margin-inline: auto;
}

.editorial-hero .eyebrow,
.editorial-index-hero .eyebrow,
.editorial-related .eyebrow,
.editorial-next .eyebrow {
  color: var(--brand-coral-dark);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .22em;
}

.editorial-category {
  margin: 18px auto 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.editorial-hero h1,
.editorial-index-hero h1 {
  margin: 14px auto 0;
  max-width: 18em;
  font-size: clamp(34px, 5.6vw, 66px);
  line-height: 1.2;
  letter-spacing: -.035em;
  text-wrap: balance;
  overflow-wrap: anywhere;
}

.editorial-hero h1 + p,
.editorial-index-hero h1 + p {
  margin: 24px auto 0;
  max-width: 720px;
  color: var(--ink-soft);
  line-height: 1.9;
}

.editorial-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 20px;
  margin-top: 24px;
  color: var(--muted);
  font-size: 12px;
}

.editorial-draft-notice {
  margin: 18px auto 0;
  padding: 10px 14px;
  border: 1px solid var(--brand-coral);
  color: var(--brand-coral-dark);
  font-size: 12px;
  font-weight: 800;
}

.editorial-cover {
  width: min(100%, 1080px);
  margin: clamp(30px, 5vw, 58px) auto 0;
}

.editorial-cover img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.editorial-layout {
  width: min(100%, 840px);
  margin: clamp(44px, 7vw, 82px) auto;
}

.editorial-body {
  min-width: 0;
  color: var(--ink-soft);
  font-size: clamp(16px, 1.65vw, 18px);
  line-height: 2;
}

.editorial-body h2 {
  margin: 2.8em 0 1em;
  padding: 0 0 .55em 18px;
  border-left: 3px solid var(--brand-coral);
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-size: clamp(26px, 3.4vw, 38px);
  line-height: 1.35;
  text-wrap: balance;
}

.editorial-body h3 {
  margin: 2.2em 0 .75em;
  color: var(--ink);
  font-size: clamp(21px, 2.4vw, 28px);
  line-height: 1.45;
}

.editorial-body p,
.editorial-body ul,
.editorial-body ol {
  margin: 1.2em 0 0;
}

.editorial-body li + li {
  margin-top: .55em;
}

.editorial-body a {
  color: var(--brand-coral-dark);
  text-decoration-thickness: 1px;
  text-underline-offset: .25em;
}

.editorial-faq,
.editorial-references {
  margin-top: clamp(52px, 7vw, 82px);
  padding-top: 32px;
  border-top: 1px solid var(--line);
}

.editorial-faq details {
  border-bottom: 1px solid var(--line);
  padding: 18px 0;
}

.editorial-faq summary {
  color: var(--ink);
  font-weight: 800;
  cursor: pointer;
}

.editorial-disclaimer {
  margin-top: 48px;
  padding: 18px 20px;
  border-left: 3px solid var(--gold);
  background: var(--paper-warm);
  font-size: 13px;
  line-height: 1.8;
}

.editorial-related,
.editorial-next {
  margin-top: clamp(60px, 8vw, 100px);
  padding-block: clamp(48px, 7vw, 78px);
  border-top: 1px solid var(--line);
  text-align: center;
}

.editorial-related > div,
.editorial-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-top: 34px;
}

.editorial-card {
  min-width: 0;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  text-align: left;
  text-decoration: none;
}

.editorial-card > img,
.editorial-card__placeholder {
  display: grid;
  width: 100%;
  aspect-ratio: 16 / 9;
  place-items: center;
  object-fit: cover;
  background: var(--paper-warm);
  color: var(--gold);
  font-family: var(--serif);
  font-size: 34px;
}

.editorial-card > div {
  padding: 20px;
}

.editorial-card p,
.editorial-card time {
  display: inline;
  color: var(--muted);
  font-size: 11px;
}

.editorial-card time {
  margin-left: 10px;
}

.editorial-card h3 {
  margin: 12px 0 18px;
  font-size: clamp(18px, 2vw, 24px);
  line-height: 1.55;
  text-wrap: balance;
  overflow-wrap: anywhere;
}

.editorial-card > div > span {
  color: var(--brand-coral-dark);
  font-size: 12px;
  font-weight: 800;
}

.editorial-next h2,
.editorial-related h2 {
  max-width: 780px;
  margin: 12px auto 0;
  font-size: clamp(27px, 4vw, 44px);
  text-wrap: balance;
}

.editorial-next > div {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-top: 28px;
}

.editorial-index {
  padding-block: clamp(42px, 7vw, 88px);
}

.editorial-empty {
  grid-column: 1 / -1;
  color: var(--muted);
  text-align: center;
}

.editorial-latest {
  padding-block: 64px;
}

.news-archive-link {
  margin: 18px 0 0;
  text-align: right;
}

.news-archive-link a {
  color: var(--brand-coral-dark);
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}

@media (max-width: 760px) {
  .editorial-page .breadcrumbs,
  .editorial-article,
  .editorial-index-hero,
  .editorial-index {
    width: min(100% - 32px, 1180px);
  }

  .editorial-hero,
  .editorial-index-hero {
    padding-block: 42px 36px;
  }

  .editorial-hero h1,
  .editorial-index-hero h1 {
    max-width: 12em;
    font-size: clamp(30px, 9.4vw, 42px);
    line-height: 1.28;
  }

  .editorial-cover {
    margin-top: 26px;
  }

  .editorial-layout {
    margin-block: 38px 58px;
  }

  .editorial-body h2 {
    font-size: 26px;
  }

  .editorial-related > div,
  .editorial-grid {
    grid-template-columns: 1fr;
  }

  .editorial-next .button {
    width: 100%;
  }
}

/* ROOTS lower pages
   Content order follows the GIFT lower pages, while spacing, typography and
   colors inherit the ROOTS method TOP. All panels stay square by design. */
.method-gift-subpage {
  --method-sub-border: #e7dacd;
  --method-sub-soft: #fff9f4;
  --method-sub-ink: #221f1d;
}

.method-gift-subpage main {
  overflow: clip;
  background: #fff;
}

.method-subpage-hero {
  position: relative;
  isolation: isolate;
  padding: clamp(70px, 8vw, 116px) 24px clamp(64px, 7vw, 96px);
  overflow: hidden;
  border-bottom: 1px solid var(--method-sub-border);
  background:
    linear-gradient(135deg, rgba(244, 86, 62, .08), transparent 48%),
    #fff;
}

.method-subpage-hero .guide-shell {
  position: relative;
  z-index: 1;
  width: min(100%, 920px);
  margin-inline: auto;
  text-align: center;
}

.method-subpage-hero__letter {
  position: absolute;
  z-index: -1;
  inset: 50% auto auto 50%;
  margin: 0;
  color: rgba(244, 86, 62, .055);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(210px, 26vw, 410px);
  font-weight: 700;
  line-height: .7;
  transform: translate(-50%, -50%);
  user-select: none;
}

.method-subpage-hero .eyebrow {
  margin-bottom: 18px;
  color: var(--brand-coral-dark);
}

.method-subpage-hero h1 {
  max-width: 900px;
  margin: 0 auto;
  color: var(--method-sub-ink);
  font-size: clamp(38px, 6vw, 72px);
  line-height: 1.12;
  letter-spacing: -.035em;
}

.method-subpage-hero__lead {
  margin: clamp(26px, 4vw, 42px) auto 0;
  color: var(--brand-coral-dark);
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: clamp(21px, 3vw, 34px);
  font-weight: 700;
  line-height: 1.55;
}

.method-subpage-hero .guide-shell > p:not(.eyebrow, .method-subpage-hero__letter, .method-subpage-hero__lead, .method-subpage-hero__supervisor) {
  max-width: 720px;
  margin: 20px auto 0;
  line-height: 2;
}

.method-subpage-hero__supervisor {
  margin: 22px auto 0;
  color: #706b67;
  font-size: 12px;
}

.method-subpage-nav-wrap {
  padding-block: 28px;
}

.method-subpage-nav {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border: 1px solid var(--method-sub-border);
  background: #fff;
}

.method-subpage-nav a {
  display: grid;
  min-width: 0;
  min-height: 118px;
  padding: 18px 12px;
  place-content: center;
  border-right: 1px solid var(--method-sub-border);
  color: var(--method-sub-ink);
  text-align: center;
  text-decoration: none;
}

.method-subpage-nav a:last-child { border-right: 0; }
.method-subpage-nav a[aria-current="page"] { background: var(--method-sub-soft); }
.method-subpage-nav a:hover { background: #fff4ec; }
.method-subpage-nav span {
  color: var(--brand-coral-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 30px;
  font-weight: 700;
  line-height: 1;
}
.method-subpage-nav small {
  margin-top: 8px;
  color: #77706b;
  font-size: 10px;
  letter-spacing: .08em;
}
.method-subpage-nav b { margin-top: 5px; font-size: 13px; line-height: 1.45; }

.method-approach-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--method-sub-border);
  background: #fff;
}
.method-approach-nav a {
  display: grid;
  min-width: 0;
  min-height: 112px;
  padding: 18px;
  place-content: center;
  border-right: 1px solid var(--method-sub-border);
  color: var(--method-sub-ink);
  text-align: center;
  text-decoration: none;
}
.method-approach-nav a:last-child { border-right: 0; }
.method-approach-nav a[aria-current="page"],
.method-approach-nav a:hover { background: var(--method-sub-soft); }
.method-approach-nav span { color: var(--brand-coral-dark); font-family: Georgia, "Times New Roman", serif; font-size: 28px; font-weight: 700; }
.method-approach-nav small { margin-top: 6px; color: #77706b; font-size: 10px; letter-spacing: .06em; }
.method-approach-nav b { margin-top: 5px; font-size: 14px; }

.method-subpage-body {
  width: min(calc(100% - 48px), 1080px);
  margin-inline: auto;
}

/* GIFT lower pages move directly from the wide FV into the definition.
   Keep the same visual rhythm while retaining a semantic h1 in the first section. */
.method-gift-subpage .method-subpage-body {
  margin-top: 0;
}

.method-gift-subpage .method-subpage-definition {
  padding-top: clamp(74px, 9vw, 124px);
}

.method-gift-subpage .method-subpage-definition .pipi-heading__title {
  font-size: clamp(28px, 3.3vw, 42px);
  line-height: 1.45;
}

.method-subpage-body > section {
  padding-block: clamp(66px, 8vw, 112px);
  border-bottom: 1px solid var(--method-sub-border);
}

.method-subpage-body .pipi-heading,
.method-subpage-body .pipi-heading--section,
.method-subpage-body .pipi-heading--compact,
.method-subpage-body .pipi-heading--center {
  width: min(100%, 820px);
  margin-inline: auto;
  text-align: center;
}

.method-subpage-body .pipi-heading::before { display: none; }

.method-subpage-statement {
  max-width: 820px;
  margin: 30px auto 48px;
  color: var(--brand-coral-dark);
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: clamp(24px, 3.5vw, 40px);
  font-weight: 700;
  line-height: 1.55;
  text-align: center;
}

.method-subpage-definition__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
  gap: clamp(30px, 5vw, 64px);
  align-items: center;
}

.method-subpage-definition__grid figure { margin: 0; }
.method-subpage-definition__grid img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid var(--method-sub-border);
}
.method-subpage-definition__grid > div { font-size: 16px; line-height: 2; }
.method-subpage-definition__grid > div p + p { margin-top: 24px; }

.method-growth-context {
  max-width: 920px;
  margin-inline: auto;
  padding-inline: clamp(0px, 3vw, 34px);
  text-align: center;
}
.method-growth-context .pipi-heading { margin-inline: auto; }
.method-growth-context__lead {
  max-width: 760px;
  margin: 30px auto 0;
  color: var(--brand-coral-dark);
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: clamp(21px, 2.7vw, 30px);
  font-weight: 700;
  line-height: 1.65;
  text-wrap: balance;
}
.method-growth-context__body {
  max-width: 760px;
  margin: 22px auto 0;
  font-size: 16px;
  line-height: 2;
}
.method-growth-context__body + .method-growth-context__body { margin-top: 10px; }

.method-subpage-summary { background: var(--method-sub-soft); }
.method-subpage-summary,
.method-subpage-signs,
.method-subpage-process,
.method-subpage-supervisor,
.method-faq,
.method-related,
.method-source-note,
.method-final { padding-inline: clamp(0px, 3vw, 34px); }

.method-subpage-summary ul {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 42px 0 0;
  padding: 0;
  border-block: 1px solid var(--method-sub-border);
  list-style: none;
}
.method-subpage-summary li {
  display: grid;
  gap: 12px;
  padding: 28px;
  border-right: 1px solid var(--method-sub-border);
}
.method-subpage-summary li:last-child { border-right: 0; }
.method-subpage-summary b { color: var(--brand-coral-dark); font-size: 19px; }
.method-subpage-summary span { line-height: 1.8; }

.method-subpage-signs ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 34px;
  margin: 42px auto 0;
  padding: 0;
  list-style: none;
}
.method-subpage-signs li {
  position: relative;
  padding: 20px 14px 20px 30px;
  border-bottom: 1px solid var(--method-sub-border);
  line-height: 1.75;
}
.method-subpage-signs li::before {
  position: absolute;
  top: 28px;
  left: 8px;
  width: 8px;
  height: 8px;
  background: var(--brand-coral);
  content: "";
  transform: rotate(45deg);
}
.method-subpage-signs > p {
  max-width: 760px;
  margin: 24px auto 0;
  color: #726b66;
  font-size: 13px;
  text-align: center;
}

.method-subpage-process ol {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 42px 0 0;
  padding: 0;
  border: 1px solid var(--method-sub-border);
  list-style: none;
}
.method-subpage-process li {
  display: grid;
  align-content: start;
  gap: 18px;
  padding: 28px 22px;
  border-right: 1px solid var(--method-sub-border);
}
.method-subpage-process li:last-child { border-right: 0; }
.method-subpage-process li > span {
  color: var(--brand-coral-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 34px;
  font-weight: 700;
}
.method-subpage-process h3 { margin: 0; font-size: 19px; }
.method-subpage-process p { margin: 10px 0 0; line-height: 1.75; }
.method-subpage-close {
  max-width: 820px;
  margin: 42px auto 0 !important;
  padding-top: 30px;
  border-top: 1px solid var(--method-sub-border);
  font-size: clamp(18px, 2.4vw, 26px);
  font-weight: 800;
  line-height: 1.75;
  text-align: center;
}

.method-subpage-supervisor > div:last-child {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 28px;
  align-items: center;
  max-width: 720px;
  margin: 42px auto 0;
  padding: 28px;
  border: 1px solid var(--method-sub-border);
}
.method-subpage-supervisor img { display: block; width: 100%; height: 180px; object-fit: cover; object-position: center 22%; }
.method-subpage-supervisor p { display: grid; gap: 8px; margin: 0; }
.method-subpage-supervisor small { color: var(--brand-coral-dark); font-weight: 800; }
.method-subpage-supervisor strong { font-size: 25px; }
.method-subpage-supervisor span { line-height: 1.8; }

.method-faq details { max-width: 860px; margin-inline: auto; border-bottom: 1px solid var(--method-sub-border); }
.method-faq details:first-of-type { margin-top: 38px; border-top: 1px solid var(--method-sub-border); }
.method-faq summary { padding: 22px 44px 22px 8px; font-weight: 800; line-height: 1.7; cursor: pointer; }
.method-faq details p { margin: 0; padding: 0 8px 24px; line-height: 1.9; }

.method-related > div:last-child {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 40px;
}
.method-related a {
  position: relative;
  display: grid;
  gap: 8px;
  min-height: 156px;
  padding: 24px 62px 24px 24px;
  border: 1px solid var(--method-sub-border);
  color: var(--method-sub-ink);
  text-decoration: none;
}
.method-related a:hover { background: var(--method-sub-soft); }
.method-related small { color: var(--brand-coral-dark); font-weight: 800; letter-spacing: .08em; }
.method-related b { font-size: 22px; }
.method-related span { line-height: 1.7; }
.method-related i { position: absolute; right: 22px; bottom: 24px; }

.method-source-note { text-align: center; }
.method-source-note p {
  max-width: 820px;
  margin: 0 auto;
  padding: 26px;
  background: #f5f3f1;
  font-size: 13px;
  line-height: 1.9;
  text-align: left;
}
.method-source-note strong { display: block; margin-bottom: 8px; color: var(--method-sub-ink); font-size: 15px; }
.method-source-note > a { display: inline-flex; gap: 8px; align-items: center; margin-top: 24px; color: var(--brand-coral-dark); font-weight: 800; }

.method-final { background: var(--method-sub-soft); text-align: center; }
.method-final .pipi-heading__title { font-size: clamp(26px, 4vw, 42px); }
.method-final > div:last-child { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 34px; }

.method-gift-subpage :where(
  .method-subpage-nav,
  .method-subpage-definition__grid img,
  .method-subpage-summary,
  .method-subpage-process ol,
  .method-subpage-supervisor > div:last-child,
  .method-related a,
  .method-source-note p
) { border-radius: 0; }

@media (max-width: 760px) {
  .method-subpage-hero { padding: 54px 18px 58px; }
  .method-subpage-hero h1 { font-size: clamp(34px, 11vw, 48px); }
  .method-subpage-hero__lead { font-size: clamp(20px, 6vw, 27px); }
  .method-subpage-hero__letter { font-size: 210px; }
  .method-subpage-nav-wrap { padding: 18px; }
  .method-subpage-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .method-subpage-nav a { min-height: 98px; border-bottom: 1px solid var(--method-sub-border); }
  .method-subpage-nav a:nth-child(2n) { border-right: 0; }
  .method-subpage-nav a:last-child { grid-column: 1 / -1; border-bottom: 0; }
  .method-approach-nav { grid-template-columns: 1fr; }
  .method-approach-nav a { min-height: 86px; border-right: 0; border-bottom: 1px solid var(--method-sub-border); }
  .method-approach-nav a:last-child { border-bottom: 0; }
  .method-subpage-body { width: min(calc(100% - 36px), 1080px); }
  .method-subpage-body > section { padding-block: 62px; }
  .method-subpage-definition__grid { grid-template-columns: 1fr; gap: 26px; }
  .method-subpage-definition__grid > div { font-size: 15px; }
  .method-subpage-statement { margin-bottom: 34px; font-size: clamp(23px, 7vw, 31px); }
  .method-growth-context { padding-inline: 0; }
  .method-growth-context__lead { font-size: clamp(20px, 6vw, 25px); }
  .method-growth-context__body { font-size: 15px; text-align: left; }
  .method-subpage-summary ul { grid-template-columns: 1fr; }
  .method-subpage-summary li { padding: 22px 10px; border-right: 0; border-bottom: 1px solid var(--method-sub-border); }
  .method-subpage-summary li:last-child { border-bottom: 0; }
  .method-subpage-signs ul { grid-template-columns: 1fr; }
  .method-subpage-process ol { grid-template-columns: 1fr; }
  .method-subpage-process li { grid-template-columns: 54px minmax(0, 1fr); gap: 16px; padding: 22px 16px; border-right: 0; border-bottom: 1px solid var(--method-sub-border); }
  .method-subpage-process li:last-child { border-bottom: 0; }
  .method-subpage-process li > span { font-size: 30px; }
  .method-subpage-supervisor > div:last-child { grid-template-columns: 92px minmax(0, 1fr); gap: 18px; padding: 18px; }
  .method-subpage-supervisor img { height: 124px; }
  .method-subpage-supervisor strong { font-size: 21px; }
  .method-subpage-supervisor span { font-size: 13px; }
  .method-related > div:last-child { grid-template-columns: 1fr; }
  .method-related a { min-height: 140px; }
  .method-source-note p { padding: 20px 16px; }
  .method-final > div:last-child { display: grid; }
}

/* GIFT-faithful lower-page modules. Cyan from GIFT is intentionally replaced
   with PiPi coral; section order, density and square panels remain equivalent. */
.method-subpage-fv {
  position: relative;
  margin: 0;
  background: #fff;
}
.method-subpage-fv picture { display: block; }
.method-subpage-fv img {
  display: block;
  width: 100%;
  max-width: 1400px;
  height: auto;
  margin: 0 auto;
  aspect-ratio: 16 / 5;
  object-fit: cover;
}

/* Orientation PC hero: keep the approved typography untouched and reframe
   only the posture illustration so the two visual zones read as one hero. */
@media (min-width: 761px) {
  .method-subpage-fv--orientation-reframed {
    overflow: hidden;
  }

  .method-subpage-fv--orientation-reframed::before,
  .method-subpage-fv--orientation-reframed::after {
    position: absolute;
    top: 0;
    left: 50%;
    width: min(100%, 1400px);
    height: 100%;
    content: "";
    pointer-events: none;
  }

  .method-subpage-fv--orientation-reframed::before {
    z-index: 1;
    transform: translateX(-50%);
    background: linear-gradient(90deg, transparent 55%, #fff 61%);
  }

  .method-subpage-fv--orientation-reframed::after {
    z-index: 2;
    transform: translateX(-69%);
    background: url("/assets/images/roots-fv-orientation-v1.webp") center / 100% 100% no-repeat;
    clip-path: inset(0 0 0 66%);
  }
}
.method-subpage-causes,
.method-subpage-comparison,
.method-family-nav,
.method-subpage-caution { padding-inline: clamp(0px, 3vw, 34px); }
.method-subpage-causes__intro {
  max-width: 760px;
  margin: 32px auto 0;
  color: var(--ink-soft);
  line-height: 1.9;
  text-align: center;
}
.method-subpage-causes__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 42px;
  border: 1px solid var(--method-sub-border);
}
.method-subpage-causes__grid article {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr);
  gap: 20px;
  min-height: 210px;
  padding: 34px 30px;
  align-content: center;
}
.method-subpage-causes__grid article + article { border-left: 1px solid var(--method-sub-border); }
.method-subpage-causes__grid span {
  color: var(--brand-coral-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 38px;
  font-weight: 700;
  line-height: 1;
}
.method-subpage-causes__grid h3 { margin: 0; font-size: 23px; }
.method-subpage-causes__grid p { margin: 14px 0 0; line-height: 1.85; }
.method-subpage-locks { background: var(--method-sub-soft); }
.method-subpage-causes__grid .method-subpage-lock {
  display: block;
  min-height: 0;
  padding: 0;
  background: #fff;
}
.method-subpage-lock header {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  gap: 18px;
  min-height: 142px;
  padding: 28px 30px;
  align-items: center;
  background: var(--brand-coral-dark);
  color: #fff;
}
.method-subpage-lock:nth-child(2) header { background: #786d94; }
.method-subpage-lock header span { color: #fff; }
.method-subpage-lock header h3 { color: #fff; font-size: clamp(19px, 2.2vw, 25px); line-height: 1.45; }
.method-subpage-lock header p { margin-top: 6px; color: #fff; font-size: 13px; }
.method-subpage-lock__body { display: grid; gap: 20px; padding: 30px; }
.method-subpage-lock__body p { margin: 0; }
.method-subpage-lock__body b {
  display: block;
  margin-bottom: 8px;
  color: var(--brand-coral-dark);
  font-size: 12px;
  letter-spacing: .08em;
}
.method-subpage-lock-relation {
  max-width: 820px;
  margin: 42px auto 0;
  padding: 32px clamp(20px, 4vw, 42px);
  border: 1px solid var(--method-sub-border);
  background: #fff;
  text-align: center;
}
.method-subpage-lock-relation h3 { margin: 0; font-size: clamp(20px, 2.5vw, 27px); }
.method-subpage-lock-relation p { margin: 18px 0 0; line-height: 1.9; }
.method-subpage-comparison { background: #f3fafc; }
.method-subpage-table-wrap { margin-top: 42px; }
.method-subpage-comparison table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  background: #fff;
  font-size: 15px;
}
.method-subpage-comparison caption {
  margin-bottom: 14px;
  color: var(--ink-soft);
  font-size: 13px;
  text-align: left;
}
.method-subpage-comparison th,
.method-subpage-comparison td {
  padding: 20px 18px;
  border-bottom: 1px solid #d8e1e3;
  line-height: 1.65;
  text-align: center;
  overflow-wrap: anywhere;
}
.method-subpage-comparison thead th { background: var(--brand-coral-dark); color: #fff; }
.method-subpage-comparison thead th:nth-child(3) { background: #786d94; }
.method-subpage-comparison thead small { display: block; margin-top: 4px; font-size: .78em; }
.method-subpage-comparison thead th:first-child { width: 22%; background: #5a5856; }
.method-subpage-comparison tbody th { background: #f4f3f2; color: var(--ink); text-align: left; }
.method-subpage-comparison__close {
  max-width: 760px;
  margin: 48px auto 0;
  font-size: clamp(18px, 2.4vw, 25px);
  font-weight: 700;
  line-height: 1.8;
  text-align: center;
}
.method-subpage-chain,
.method-subpage-safety {
  padding-inline: clamp(0px, 3vw, 34px);
}
.method-subpage-chain { background: var(--method-sub-soft); }
.method-subpage-chain > p {
  max-width: 800px;
  margin: 40px auto 0;
  padding: 32px clamp(20px, 4vw, 42px);
  border-left: 4px solid var(--brand-coral);
  background: #fff;
  font-size: 16px;
  line-height: 2;
}
.method-subpage-safety {
  max-width: 960px;
  margin: clamp(60px, 8vw, 104px) auto;
}
.method-subpage-safety h2 {
  margin: 0;
  padding: 18px 24px;
  background: #5a5856;
  color: #fff;
  font-size: clamp(20px, 2.5vw, 26px);
}
.method-subpage-safety p {
  margin: 0;
  padding: 20px 24px;
  border: 1px solid var(--method-sub-border);
  border-top: 0;
  line-height: 1.85;
}
.method-subpage-safety p + p { background: #f5f3f1; }
.method-family-nav {
  display: block;
  padding-block: clamp(66px, 8vw, 112px);
  border-bottom: 1px solid var(--method-sub-border);
}
.method-family-nav h2 {
  margin: 0 0 38px;
  font-size: clamp(24px, 3vw, 34px);
  text-align: center;
}
.method-family-nav > p {
  margin: 0 0 14px;
  color: var(--brand-coral-dark);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .08em;
}
.method-family-nav hr { margin: 34px 0; border: 0; border-top: 1px solid var(--method-sub-border); }
.method-family-nav__back {
  display: flex;
  gap: 12px;
  width: fit-content;
  margin: 36px auto 0;
  align-items: center;
  color: var(--ink);
  font-weight: 800;
  text-decoration: none;
}
.method-subpage-caution > div {
  max-width: 820px;
  margin: 0 auto;
  padding: 26px 30px;
  border-left: 4px solid var(--brand-coral);
  background: #f5f3f1;
}
.method-subpage-caution h2 { margin: 0 0 10px; font-size: 19px; }
.method-subpage-caution p { margin: 0; font-size: 14px; line-height: 1.9; }

@media (max-width: 760px) {
  .method-subpage-fv img {
    max-width: 100%;
    aspect-ratio: 16 / 5;
    object-fit: cover;
  }
  .method-subpage-fv--mobile-art img {
    aspect-ratio: auto;
    object-fit: contain;
  }
  .method-subpage-causes__grid { grid-template-columns: 1fr; }
  .method-subpage-causes__grid article { grid-template-columns: 50px minmax(0, 1fr); min-height: 0; padding: 26px 18px; }
  .method-subpage-causes__grid article + article { border-top: 1px solid var(--method-sub-border); border-left: 0; }
  .method-subpage-causes__grid span { font-size: 30px; }
  .method-subpage-causes__grid h3 { font-size: 20px; }
  .method-subpage-lock header { grid-template-columns: 42px minmax(0, 1fr); min-height: 0; padding: 22px 18px; }
  .method-subpage-lock__body { padding: 22px 18px; }
  .method-subpage-lock-relation { margin-top: 28px; padding: 24px 18px; }
  .method-subpage-table-wrap { width: 100%; overflow: visible; }
  .method-subpage-comparison table { font-size: 11px; }
  .method-subpage-comparison th,
  .method-subpage-comparison td { padding: 12px 7px; }
  .method-subpage-comparison thead th:first-child { width: 25%; }
  .method-subpage-comparison thead small { font-size: 9px; }
  .method-subpage-chain > p { margin-top: 28px; padding: 24px 18px; font-size: 14px; }
  .method-subpage-safety { margin-block: 48px; }
  .method-subpage-safety h2,
  .method-subpage-safety p { padding-inline: 18px; }
  .method-family-nav { padding-inline: 0; }
  .method-family-nav .method-subpage-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .method-family-nav .method-approach-nav { grid-template-columns: 1fr; }
  .method-subpage-caution > div { padding: 22px 18px; }
}

/* Routine / Recognize
   This page deliberately follows the information rhythm of GIFT Inner:
   definition -> key points -> signs -> detailed mechanisms -> comparison ->
   interaction -> evaluation -> safety -> references. It is scoped because the
   other ROOTS pages still need their own subject-specific editorial design. */
.method-routine-page .method-subpage-body {
  width: min(calc(100% - 48px), 900px);
}

.method-routine-page .method-subpage-body > section {
  padding-block: clamp(74px, 9vw, 108px);
}

.method-routine-page .method-subpage-body .pipi-heading__title {
  font-size: clamp(27px, 3.1vw, 38px);
  line-height: 1.5;
  text-wrap: balance;
}

.method-routine-page .method-subpage-statement {
  max-width: 700px;
  margin-top: 36px;
  color: var(--brand-coral-dark);
  font-size: clamp(23px, 3vw, 32px);
}

.method-routine-intro .method-subpage-definition__grid {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(34px, 6vw, 64px);
}

.method-routine-intro__note {
  padding: 20px 22px;
  border-left: 3px solid var(--brand-coral);
  background: #fff9f4;
  color: var(--brand-coral-dark);
  font-weight: 700;
}

.method-routine-evidence-basis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: clamp(42px, 6vw, 66px);
  border: 1px solid var(--method-sub-border);
  background: #fff;
}

.method-routine-evidence-basis article {
  min-width: 0;
  padding: clamp(24px, 3vw, 32px);
  border-right: 1px solid var(--method-sub-border);
}

.method-routine-evidence-basis article:last-child { border-right: 0; }

.method-routine-evidence-basis small {
  display: block;
  margin-bottom: 12px;
  color: var(--brand-coral-dark);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .16em;
}

.method-routine-evidence-basis h2 {
  margin: 0;
  font-size: clamp(17px, 2vw, 21px);
  line-height: 1.55;
}

.method-routine-evidence-basis p {
  margin: 14px 0 0;
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.9;
}

.method-routine-summary ul {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 780px;
  margin-inline: auto;
}

.method-routine-summary li {
  min-height: 150px;
  border-bottom: 1px solid var(--method-sub-border);
}

.method-routine-summary li:nth-child(2n) { border-right: 0; }
.method-routine-summary li:nth-last-child(-n + 2) { border-bottom: 0; }

.method-routine-domains {
  background: linear-gradient(180deg, #fff9f4 0%, #fff 16%, #fff 100%);
}

.method-routine-domains__lead {
  max-width: 700px;
  margin: 34px auto 0;
  color: var(--ink-soft);
  line-height: 2;
  text-align: center;
}

.method-routine-equation {
  display: flex;
  gap: 10px;
  max-width: 820px;
  margin: 42px auto 0;
  padding: 20px;
  border-block: 1px solid var(--method-sub-border);
  align-items: center;
  justify-content: center;
  color: var(--ink-soft);
  font-size: 13px;
  text-align: center;
}

.method-routine-equation span {
  display: grid;
  min-height: 46px;
  padding: 8px 12px;
  place-items: center;
  background: #fff;
  font-weight: 700;
}

.method-routine-equation b {
  color: var(--brand-coral-dark);
  font-size: 20px;
}

.method-routine-domain {
  --routine-domain: #ef6047;
  margin-top: 70px;
  border-left: 3px solid var(--routine-domain);
  background: #fff;
}

.method-routine-domain--2 { --routine-domain: #bf8c28; }
.method-routine-domain--3 { --routine-domain: #4f9271; }
.method-routine-domain--4 { --routine-domain: #597eb1; }

.method-routine-domain > header {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 20px;
  padding: 0 0 24px 28px;
  align-items: center;
  border-bottom: 1px solid var(--method-sub-border);
}

.method-routine-domain > header > span {
  color: var(--routine-domain);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 46px;
  font-weight: 700;
  line-height: 1;
}

.method-routine-domain > header small {
  color: var(--routine-domain);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.method-routine-domain > header h3 {
  margin: 5px 0 0;
  font-size: clamp(23px, 3vw, 31px);
}

.method-routine-domain__layout {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: clamp(28px, 5vw, 52px);
  padding: 34px 0 8px 28px;
  align-items: center;
}

.method-routine-domain:nth-of-type(even) .method-routine-domain__layout {
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
}

.method-routine-domain__layout.method-approach-copy-only,
.method-routine-domain:nth-of-type(even) .method-routine-domain__layout.method-approach-copy-only {
  display: block;
  padding-right: 28px;
}

.method-approach-copy-only .method-routine-domain__copy {
  max-width: 860px;
  margin-inline: auto;
}

.method-routine-domain:nth-of-type(even) figure { order: 2; }
.method-routine-domain:nth-of-type(even) .method-routine-domain__copy { order: 1; }

.method-routine-domain figure { margin: 0; }
.method-routine-domain img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: contain;
  background: #fff;
  border: 1px solid var(--method-sub-border);
}

.method-routine-domain__copy {
  color: var(--ink-soft);
  line-height: 1.95;
}

.method-routine-domain__definition {
  margin-top: 0;
  color: var(--ink);
  font-size: 17px;
  font-weight: 700;
}

.method-routine-domain__copy dl {
  margin: 26px 0 0;
  border-top: 1px solid var(--method-sub-border);
}

.method-routine-domain__copy dl > div {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  gap: 18px;
  padding: 18px 0;
  border-bottom: 1px solid var(--method-sub-border);
}

.method-routine-domain__copy dt {
  color: var(--routine-domain);
  font-size: 12px;
  font-weight: 800;
}

.method-routine-domain__copy dd {
  margin: 0;
  font-size: 13px;
  line-height: 1.8;
}

.method-routine-relation {
  max-width: 760px;
  margin: 82px auto 0;
  padding: 34px clamp(24px, 5vw, 48px);
  border-block: 1px solid var(--method-sub-border);
  text-align: center;
}

.method-routine-relation h3 {
  margin: 0;
  color: var(--brand-coral-dark);
  font-size: clamp(21px, 2.8vw, 28px);
}

.method-routine-relation p {
  margin: 22px 0 0;
  line-height: 2;
}

.method-orientation-output,
.method-tailored-output {
  background: #fff;
}

.method-orientation-output__lead,
.method-tailored-output__lead {
  max-width: 720px;
  margin: 28px auto 0;
  color: var(--ink-soft);
  line-height: 2;
  text-align: center;
}

.method-orientation-output__grid,
.method-tailored-output__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 44px;
  border-top: 1px solid var(--method-sub-border);
  border-left: 1px solid var(--method-sub-border);
}

.method-tailored-output__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.method-orientation-output__grid article,
.method-tailored-output__grid article {
  min-height: 220px;
  padding: 26px 22px;
  border-right: 1px solid var(--method-sub-border);
  border-bottom: 1px solid var(--method-sub-border);
}

.method-orientation-output__grid span,
.method-tailored-output__grid span {
  color: var(--brand-coral-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 26px;
  font-weight: 700;
}

.method-orientation-output__grid h3,
.method-tailored-output__grid h3 {
  margin: 18px 0 0;
  font-size: 19px;
}

.method-orientation-output__grid p,
.method-tailored-output__grid p {
  margin: 15px 0 0;
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.9;
}

.method-orientation-output__case {
  max-width: 860px;
  margin: 52px auto 0;
  padding: 32px clamp(22px, 4vw, 42px);
  border-left: 3px solid var(--brand-coral);
  background: #fffaf6;
}

.method-orientation-output__case h3 {
  margin: 0;
  font-size: clamp(20px, 2.5vw, 26px);
}

.method-orientation-output__case ul {
  display: grid;
  gap: 0;
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}

.method-orientation-output__case li {
  display: grid;
  grid-template-columns: minmax(230px, .85fr) minmax(0, 1.15fr);
  gap: 20px;
  padding: 17px 0;
  border-top: 1px solid var(--method-sub-border);
}

.method-orientation-output__case li:last-child {
  border-bottom: 1px solid var(--method-sub-border);
}

.method-orientation-output__case b,
.method-orientation-output__case span {
  font-size: 13px;
  line-height: 1.75;
}

.method-orientation-output__case span {
  color: var(--ink-soft);
}

.method-condition-output {
  background: #fff;
}

.method-condition-output__lead {
  max-width: 720px;
  margin: 28px auto 0;
  color: var(--ink-soft);
  line-height: 2;
  text-align: center;
}

.method-condition-output__figure {
  max-width: 900px;
  margin: 42px auto 0;
}

.method-condition-output__figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  border: 1px solid var(--method-sub-border);
  background: #fff;
  object-fit: contain;
}

.method-condition-output__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 38px;
  border-top: 1px solid var(--method-sub-border);
  border-left: 1px solid var(--method-sub-border);
}

.method-condition-output__grid article {
  min-height: 220px;
  padding: 26px 22px;
  border-right: 1px solid var(--method-sub-border);
  border-bottom: 1px solid var(--method-sub-border);
}

.method-condition-output__grid span {
  color: var(--brand-coral-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 26px;
  font-weight: 700;
}

.method-condition-output__grid h3 {
  margin: 18px 0 0;
  font-size: 19px;
}

.method-condition-output__grid p {
  margin: 15px 0 0;
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.9;
}

.method-recovery-timeline {
  max-width: 760px;
  margin: 42px auto 0;
}

.method-recovery-timeline img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  border: 1px solid var(--method-sub-border);
  background: #fff;
  object-fit: contain;
}

.method-recovery-checkpoint {
  padding: 32px 28px 8px;
  color: var(--ink-soft);
}

.method-recovery-checkpoint > p {
  max-width: 760px;
  margin-inline: auto;
  text-align: center;
}

.method-recovery-checkpoint dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 820px;
  margin: 26px auto 0;
  border-top: 1px solid var(--method-sub-border);
  border-left: 1px solid var(--method-sub-border);
}

.method-recovery-checkpoint dl > div {
  min-height: 132px;
  padding: 22px;
  border-right: 1px solid var(--method-sub-border);
  border-bottom: 1px solid var(--method-sub-border);
}

.method-recovery-checkpoint dt {
  color: var(--routine-domain);
  font-size: 12px;
  font-weight: 800;
}

.method-recovery-checkpoint dd {
  margin: 10px 0 0;
  font-size: 13px;
  line-height: 1.8;
}

.method-recovery-output {
  background: #fff;
}

.method-recovery-output__lead {
  max-width: 720px;
  margin: 28px auto 0;
  color: var(--ink-soft);
  line-height: 2;
  text-align: center;
}

.method-recovery-output__layout {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(28px, 5vw, 56px);
  margin-top: 44px;
  align-items: center;
}

.method-recovery-output__layout figure {
  margin: 0;
}

.method-recovery-output__layout figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  border: 1px solid var(--method-sub-border);
  background: #fff;
  object-fit: contain;
}

.method-recovery-output__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--method-sub-border);
  border-left: 1px solid var(--method-sub-border);
}

.method-recovery-output__grid article {
  min-height: 190px;
  padding: 24px 20px;
  border-right: 1px solid var(--method-sub-border);
  border-bottom: 1px solid var(--method-sub-border);
}

.method-recovery-output__grid span {
  color: var(--brand-coral-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
  font-weight: 700;
}

.method-recovery-output__grid h3 {
  margin: 14px 0 0;
  font-size: 18px;
}

.method-recovery-output__grid p {
  margin: 12px 0 0;
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.85;
}

.method-condition-comparison tbody th small {
  display: block;
  margin-top: 4px;
  color: var(--ink-soft);
  font-size: 10px;
  font-weight: 500;
  line-height: 1.45;
}

.method-routine-comparison {
  background: #f3fafc;
}

.method-routine-comparison table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  background: #fff;
  font-size: 14px;
}

.method-routine-comparison caption {
  margin-bottom: 14px;
  color: var(--ink-soft);
  font-size: 13px;
  text-align: left;
}

.method-routine-comparison th,
.method-routine-comparison td {
  padding: 17px 15px;
  border-bottom: 1px solid #d8e1e3;
  line-height: 1.7;
  text-align: center;
}

.method-routine-comparison thead th { background: var(--brand-coral-dark); color: #fff; }
.method-routine-comparison thead th:first-child { width: 20%; background: #5a5856; }
.method-routine-comparison thead th:nth-child(3) { background: #786d94; }
.method-routine-comparison tbody th { background: #f4f3f2; text-align: left; }

.method-routine-comparison__close {
  margin: 46px auto 0;
  color: var(--ink);
  font-size: clamp(18px, 2.6vw, 25px);
  font-weight: 700;
  line-height: 1.85;
  text-align: center;
}

.method-routine-comparison__scope {
  margin: 14px 0 0;
  color: var(--ink-soft);
  font-size: 11px;
  line-height: 1.7;
}

.method-routine-chain {
  background: #fff9f4;
}

.method-routine-chain__grid {
  display: grid;
  grid-template-columns: repeat(9, auto);
  gap: 8px;
  margin: 44px auto 0;
  align-items: center;
  justify-content: center;
}

.method-routine-chain__grid > div {
  display: grid;
  min-width: 112px;
  min-height: 84px;
  padding: 12px;
  place-content: center;
  border: 1px solid var(--method-sub-border);
  background: #fff;
  text-align: center;
}

.method-routine-chain__grid b { color: var(--brand-coral-dark); font-size: 12px; }
.method-routine-chain__grid span { margin-top: 6px; font-size: 12px; }
.method-routine-chain__grid i { color: var(--brand-coral); font-style: normal; }

.method-routine-chain > p {
  max-width: 740px;
  margin: 38px auto 0;
  line-height: 2;
  text-align: center;
}

.method-routine-process ol {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.method-routine-safety {
  max-width: 820px;
  margin-inline: auto;
}

.method-routine-safety h2 {
  margin: 0;
  padding: 18px 24px;
  background: #5a5856;
  color: #fff;
  font-size: clamp(19px, 2.4vw, 25px);
}

.method-routine-safety p {
  margin: 0;
  padding: 20px 24px;
  border: 1px solid var(--method-sub-border);
  border-top: 0;
  line-height: 1.9;
}

.method-routine-safety p + p { background: #f5f3f1; }

.method-routine-references {
  max-width: 820px;
  margin-inline: auto;
}

.method-routine-references ol {
  margin: 38px auto 0;
  padding: 0;
  border-top: 1px solid var(--method-sub-border);
  list-style: none;
  counter-reset: routine-reference;
}

.method-routine-references li {
  position: relative;
  padding: 18px 10px 18px 48px;
  border-bottom: 1px solid var(--method-sub-border);
  counter-increment: routine-reference;
  line-height: 1.7;
}

.method-routine-references li::before {
  position: absolute;
  top: 18px;
  left: 10px;
  color: var(--brand-coral-dark);
  content: counter(routine-reference, decimal-leading-zero);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 700;
}

.method-routine-references a { color: var(--ink); }
.method-routine-references > p {
  margin: 24px 0 0;
  padding: 18px 20px;
  background: #f5f3f1;
  font-size: 13px;
  line-height: 1.8;
}

@media (max-width: 760px) {
  .method-routine-page .method-subpage-body { width: min(calc(100% - 32px), 900px); }
  .method-routine-page .method-subpage-body > section { padding-block: 58px; }
  .method-routine-page .method-subpage-body .pipi-heading__title { font-size: clamp(24px, 7.4vw, 31px); }
  .method-routine-page .method-subpage-statement { font-size: clamp(22px, 7vw, 29px); }
  .method-routine-intro .method-subpage-definition__grid { grid-template-columns: 1fr; }
  .method-routine-evidence-basis { grid-template-columns: 1fr; }
  .method-routine-evidence-basis article { border-right: 0; border-bottom: 1px solid var(--method-sub-border); }
  .method-routine-evidence-basis article:last-child { border-bottom: 0; }
  .method-routine-summary ul { grid-template-columns: 1fr; }
  .method-routine-summary li { min-height: 0; border-right: 0; border-bottom: 1px solid var(--method-sub-border); }
  .method-routine-summary li:nth-last-child(2) { border-bottom: 1px solid var(--method-sub-border); }
  .method-routine-equation { display: grid; grid-template-columns: 1fr; gap: 5px; }
  .method-routine-equation b { line-height: .8; transform: rotate(90deg); }
  .method-routine-domain { margin-top: 54px; }
  .method-routine-domain > header { grid-template-columns: 48px minmax(0, 1fr); gap: 14px; padding: 0 0 20px 16px; }
  .method-routine-domain > header > span { font-size: 34px; }
  .method-routine-domain__layout,
  .method-routine-domain:nth-of-type(even) .method-routine-domain__layout { grid-template-columns: 1fr; gap: 24px; padding: 26px 0 4px 16px; }
  .method-routine-domain:nth-of-type(even) figure,
  .method-routine-domain:nth-of-type(even) .method-routine-domain__copy { order: initial; }
  .method-routine-domain img { aspect-ratio: 4 / 3; object-fit: contain; background: #fff; }
  .method-routine-domain__copy dl > div { grid-template-columns: 1fr; gap: 7px; }
  .method-routine-relation { margin-top: 58px; padding-inline: 18px; }
  .method-orientation-output__lead { text-align: left; }
  .method-tailored-output__lead { text-align: left; }
  .method-orientation-output__grid,
  .method-tailored-output__grid { grid-template-columns: 1fr; }
  .method-orientation-output__grid article,
  .method-tailored-output__grid article { min-height: 0; }
  .method-orientation-output__case { margin-top: 36px; padding-inline: 18px; }
  .method-orientation-output__case li { grid-template-columns: 1fr; gap: 6px; }
  .method-condition-output__lead { text-align: left; }
  .method-condition-output__figure { margin-top: 32px; }
  .method-condition-output__figure img { aspect-ratio: 4 / 3; }
  .method-condition-output__grid { grid-template-columns: 1fr; }
  .method-condition-output__grid article { min-height: 0; }
  .method-recovery-timeline { margin-top: 32px; }
  .method-recovery-checkpoint { padding: 26px 0 4px 16px; }
  .method-recovery-checkpoint > p { text-align: left; }
  .method-recovery-checkpoint dl { grid-template-columns: 1fr; }
  .method-recovery-checkpoint dl > div { min-height: 0; }
  .method-recovery-output__lead { text-align: left; }
  .method-recovery-output__layout { grid-template-columns: 1fr; gap: 26px; margin-top: 32px; }
  .method-recovery-output__grid { grid-template-columns: 1fr; }
  .method-recovery-output__grid article { min-height: 0; }
  .method-routine-comparison table { font-size: 10.5px; }
  .method-routine-comparison th,
  .method-routine-comparison td { padding: 11px 6px; overflow-wrap: anywhere; }
  .method-routine-comparison thead th:first-child { width: 22%; }
  .method-routine-chain__grid { grid-template-columns: 1fr; gap: 6px; }
  .method-routine-chain__grid i { transform: rotate(90deg); text-align: center; }
  .method-orientation-chain .method-routine-chain__grid i { transform: none; }
  .method-routine-chain__grid > div { min-height: 68px; }
  .method-routine-chain > p { text-align: left; }
  .method-routine-process ol { grid-template-columns: 1fr; }
  .method-routine-safety h2,
  .method-routine-safety p { padding-inline: 17px; }
}

/* Contact: route each inquiry to the source that can answer it. */
.contact-route-section,
.contact-support-section {
  padding: clamp(72px, 8vw, 116px) 0;
  background: #fff;
}

.contact-route-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 38px;
}

.contact-route-card {
  display: flex;
  min-width: 0;
  min-height: 320px;
  padding: clamp(26px, 3.2vw, 42px);
  border: 1px solid #ddd7d0;
  border-radius: 22px;
  background: #fbfaf8;
  flex-direction: column;
}

.contact-route-card > span {
  color: #f3573f;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .16em;
}

.contact-route-card h3 {
  margin: 18px 0 14px;
  font-size: clamp(24px, 2.5vw, 34px);
  line-height: 1.35;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.contact-route-card p {
  margin: 0 0 26px;
  color: #5f5a55;
  line-height: 1.9;
}

.contact-route-card > a:last-child {
  display: flex;
  min-height: 54px;
  margin-top: auto;
  padding: 0 18px;
  border-radius: 999px;
  background: #27231f;
  color: #fff;
  font-weight: 800;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.contact-route-card .contact-phone {
  display: inline-block;
  margin-top: 8px;
  color: #d84431;
  font-size: 21px;
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.contact-prepare-section {
  padding: clamp(72px, 8vw, 116px) 0;
  background: #f5eee5;
}

.contact-prepare-layout {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  align-items: start;
  gap: clamp(34px, 7vw, 92px);
}

.contact-checklist {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
}

.contact-checklist li {
  display: grid;
  min-width: 0;
  padding: 24px 0;
  border-top: 1px solid #cfc4b6;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 16px;
}

.contact-checklist li:last-child {
  border-bottom: 1px solid #cfc4b6;
}

.contact-checklist span {
  color: #d84431;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .12em;
}

.contact-checklist p {
  margin: 0;
  color: #5f5a55;
  line-height: 1.8;
}

.contact-checklist strong {
  display: block;
  margin-bottom: 5px;
  color: #27231f;
  font-size: 18px;
}

.contact-page .contact-support-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.contact-source-note {
  margin: 28px 0 0;
  padding: 20px 22px;
  border-radius: 14px;
  background: #f5f1ec;
  color: #6c645d;
  font-size: 13px;
  line-height: 1.8;
}

@media (max-width: 760px) {
  .contact-route-section,
  .contact-prepare-section,
  .contact-support-section {
    padding: 56px 0;
  }

  .contact-route-grid,
  .contact-prepare-layout,
  .contact-page .contact-support-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .contact-route-grid {
    margin-top: 26px;
  }

  .contact-route-card {
    min-height: 0;
    padding: 24px 20px;
    border-radius: 18px;
  }

  .contact-route-card h3 {
    margin-top: 12px;
    font-size: 24px;
  }

  .contact-route-card > a:last-child {
    margin-top: 0;
  }

  .contact-checklist li {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 10px;
  }
}

/* TOP campaign banner: use the existing horizontal artwork at every width. */
.homepage-campaign-wrap {
  padding: clamp(18px, 2.4vw, 32px) 0;
  background: #fffaf3;
}

.homepage-campaign-wrap .hero-campaign-banner {
  margin-top: 0;
}

@media (max-width: 760px) {
  .homepage-campaign-wrap {
    padding: 12px 0 16px;
  }
}

/* Store index v2: remove search friction and prioritise area/current-location paths. */
.page-stores .subpage-heading > p:last-child {
  max-width: 640px;
  margin: 16px 0 0;
  color: #6e655d;
  line-height: 1.8;
}

@media (max-width: 760px) {
  .store-index-page .page-hero h1 {
    max-width: none;
    font-size: clamp(34px, 9.2vw, 38px);
    line-height: 1.35;
    letter-spacing: -0.035em;
  }
}

/* Current-source price cards. Legacy campaign artwork is intentionally not used here. */
.pipi-current-price-section {
  padding-bottom: clamp(54px, 7vw, 92px);
  background: linear-gradient(180deg, #fff 0%, #fffaf4 100%);
}

.pipi-current-price-section .lp-price-system {
  min-height: 0;
  padding-bottom: clamp(40px, 5vw, 64px);
}

.pipi-current-price-grid {
  width: min(1120px, calc(100% - 40px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.pipi-current-price-grid article {
  padding: clamp(28px, 3vw, 42px);
  border: 1px solid #e8d8ca;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(73, 49, 34, 0.08);
}

.pipi-current-price-grid article > span {
  color: #e8553c;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.18em;
}

.pipi-current-price-grid h3 {
  margin: 12px 0 22px;
  font-size: clamp(22px, 2.2vw, 30px);
}

.pipi-current-price-grid p {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
}

.pipi-current-price-grid p strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(42px, 5vw, 64px);
  line-height: 1;
}

.pipi-current-price-grid p small,
.pipi-current-price-grid article > b {
  color: #6d625b;
  font-size: 13px;
}

.pipi-current-price-grid article > b {
  margin-top: 16px;
  display: block;
}

.pipi-current-price-note {
  width: min(1120px, calc(100% - 40px));
  margin: 22px auto 0;
  padding: 24px 28px;
  border-radius: 18px;
  background: #282421;
  color: #fff;
}

.pipi-current-price-note strong {
  font-size: clamp(18px, 2vw, 24px);
}

.pipi-current-price-note p {
  margin: 8px 0 14px;
  color: #e6ddd6;
  line-height: 1.75;
}

.pipi-current-price-note a {
  color: #fff;
  font-weight: 800;
  text-underline-offset: 5px;
}

.pipi-price-sources {
  margin: 18px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.pipi-price-sources summary {
  padding: 14px 0;
  cursor: pointer;
  color: #fff;
  font-weight: 800;
}

.pipi-price-sources > div {
  padding: 0 0 16px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px 14px;
}

.pipi-price-sources > div a {
  min-width: 0;
  color: #e6ddd6;
  font-size: 13px;
  overflow-wrap: anywhere;
}

.pipi-payment-section {
  padding: clamp(64px, 8vw, 104px) 0;
  background: #f7f2eb;
}

.pipi-payment-inner {
  width: min(1120px, calc(100% - 40px));
  margin-inline: auto;
}

.pipi-payment-heading {
  max-width: 820px;
}

.pipi-payment-heading h2 {
  margin: 12px 0 16px;
  font-size: clamp(34px, 5vw, 54px);
  line-height: 1.2;
  text-wrap: balance;
}

.pipi-payment-heading > p:last-child {
  color: #6d625b;
  line-height: 1.85;
}

.pipi-payment-grid {
  margin-top: 38px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.pipi-payment-grid article {
  min-width: 0;
  padding: 24px;
  display: flex;
  flex-direction: column;
  border: 1px solid #e5d8cc;
  border-radius: 18px;
  background: #fff;
}

.pipi-payment-grid h3 {
  margin: 0 0 12px;
  font-size: 18px;
  line-height: 1.5;
}

.pipi-payment-grid p {
  margin: 0 0 18px;
  color: #625851;
  font-size: 13px;
  line-height: 1.7;
  overflow-wrap: anywhere;
}

.pipi-payment-grid a {
  margin-top: auto;
  color: #d34f35;
  font-size: 12px;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.pipi-payment-note {
  margin: 18px 0 0;
  padding: 18px 20px;
  color: #625851;
  background: #fff;
  border: 1px solid #e5d8cc;
  border-radius: 14px;
  font-size: 12px;
  line-height: 1.85;
}

@media (max-width: 760px) {
  .pipi-current-price-grid {
    width: min(100% - 28px, 520px);
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .pipi-current-price-grid article {
    padding: 24px;
    border-radius: 18px;
  }

  .pipi-current-price-grid h3 {
    margin-bottom: 16px;
  }

  .pipi-current-price-note {
    width: min(100% - 28px, 520px);
    padding: 22px;
  }

  .pipi-price-sources > div {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pipi-payment-inner {
    width: min(100% - 28px, 520px);
  }

  .pipi-payment-grid {
    margin-top: 28px;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .pipi-payment-grid article {
    padding: 20px;
  }
}

@media (min-width: 761px) and (max-width: 1000px) {
  .pipi-payment-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.store-overview-actions {
  margin: 30px 0 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.store-overview-actions a,
.store-overview-actions button {
  min-height: 56px;
  padding: 0 24px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border: 1px solid #ef5a3c;
  border-radius: 999px;
  color: #fff;
  background: #ef5a3c;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.store-overview-actions button {
  color: #372f2a;
  background: #fff;
  border-color: #d9cfc4;
}

.store-overview-actions button:disabled {
  opacity: 0.62;
  cursor: wait;
}

.store-location-status {
  min-height: 1.6em;
  margin: 0 0 20px;
  color: #756d65;
  font-size: 13px;
}

.store-region-hubs {
  margin: 32px 0 18px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.store-region-hubs a {
  min-height: 132px;
  padding: 24px;
  display: grid;
  grid-template-columns: 1fr auto;
  align-content: center;
  gap: 8px 14px;
  border: 1px solid #eadfd5;
  border-radius: 18px;
  color: #2e2925;
  background: #fffaf5;
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.store-region-hubs a:hover {
  transform: translateY(-3px);
  border-color: #ef5a3c;
  box-shadow: 0 16px 40px rgba(73, 48, 34, 0.09);
}

.store-region-hubs small {
  grid-column: 1 / -1;
  color: #ef5a3c;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.store-region-hubs strong {
  font-size: 20px;
}

.store-region-hubs span {
  color: #ef5a3c;
  font-size: 22px;
}

.page-stores .store-finder {
  margin-top: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.page-stores .store-finder > p {
  margin: 0;
  font-size: 13px;
  font-weight: 800;
}

@media (max-width: 760px) {
  .store-overview-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .store-overview-actions a,
  .store-overview-actions button {
    width: 100%;
  }

  .store-region-hubs {
    grid-template-columns: 1fr;
  }

  .store-region-hubs a {
    min-height: 104px;
  }

  .page-stores .store-finder {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* Store detail and regional hub v2 — concise, conversion-first information design */
.store-detail-v2,
.store-region-v2 {
  --store-accent: #f15a3b;
  --store-accent-dark: #cc3f24;
  --store-peach: #fff2e9;
  --store-cream: #fffaf4;
  --store-blue: #edf5f8;
  background: #fff;
}

.store-detail-v2 main,
.store-region-v2 main {
  overflow: clip;
}

.store-v2-hero {
  width: min(1240px, calc(100% - 48px));
  min-height: 640px;
  margin: 0 auto 36px;
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(460px, 1.12fr);
  border: 1px solid #eadfd4;
  border-radius: 28px;
  overflow: hidden;
  background: var(--store-cream);
  box-shadow: 0 24px 70px rgba(69, 47, 34, 0.1);
}

.store-v2-hero-copy {
  padding: clamp(52px, 7vw, 92px);
  align-self: center;
}

.store-v2-hero-copy .eyebrow,
.store-v2-heading .eyebrow,
.region-v2-hero .eyebrow {
  color: var(--store-accent);
}

.store-v2-hero h1 {
  max-width: 620px;
  margin: 18px 0 28px;
  font-size: clamp(42px, 4vw, 62px);
  line-height: 1.08;
  letter-spacing: -0.045em;
}

.store-v2-hero h1 .store-title-name {
  display: block;
  line-break: strict;
  overflow-wrap: anywhere;
  text-wrap: balance;
  white-space: normal;
  word-break: normal;
}

.store-title-brand,
.store-title-branch {
  display: block;
}

.store-v2-hero h1.store-title-long {
  font-size: clamp(32px, 3.2vw, 48px);
}

.store-v2-hero h1.store-title-xlong {
  font-size: clamp(26px, 1.95vw, 32px);
}

.store-v2-hero h1 small {
  margin-bottom: 15px;
  display: block;
  color: #715f52;
  font-family: system-ui, sans-serif;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.store-v2-kicker {
  margin: 18px 0 0;
  color: #715f52;
  font-family: system-ui, sans-serif;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.store-v2-hero-copy > p:not(.eyebrow):not(.store-v2-kicker) {
  max-width: 550px;
  color: #605850;
  font-size: 17px;
  line-height: 1.9;
}

.store-v2-facts {
  margin: 32px 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-block: 1px solid #e6d9ca;
}

.store-v2-facts div {
  padding: 18px 16px 18px 0;
}

.store-v2-facts div + div {
  padding-left: 24px;
  border-left: 1px solid #e6d9ca;
}

.store-v2-facts dt {
  margin-bottom: 6px;
  color: var(--store-accent);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.store-v2-facts dd {
  margin: 0;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.55;
}

.store-v2-actions {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 12px;
}

.store-v2-actions .button {
  min-height: 58px;
  padding-inline: clamp(14px, 1.5vw, 20px);
  border-radius: 999px;
  white-space: nowrap;
}

.store-v2-hero-image {
  min-width: 0;
  min-height: 640px;
  position: relative;
  margin: 0;
  background: #ddd;
}

.store-v2-hero-image::after {
  width: 46%;
  height: 100%;
  position: absolute;
  inset: 0 auto 0 0;
  content: "";
  background: linear-gradient(90deg, var(--store-cream), transparent);
  pointer-events: none;
}

.store-v2-hero-image img {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  object-fit: cover;
}

.store-v2-hero-image figcaption {
  position: absolute;
  right: 24px;
  bottom: 24px;
  z-index: 1;
  padding: 12px 16px;
  color: #342b24;
  background: rgba(255, 255, 255, 0.92);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 800;
  backdrop-filter: blur(10px);
}

.store-v2-hero-image figcaption span {
  margin-left: 8px;
  color: #8d8178;
  font-size: 9px;
  letter-spacing: 0.12em;
}

.store-v2-hero-placeholder {
  display: grid;
  place-items: center;
  color: #3d3129;
  background:
    radial-gradient(circle at 75% 20%, rgba(241, 90, 59, 0.2), transparent 28%),
    repeating-linear-gradient(135deg, transparent 0 18px, rgba(255, 255, 255, 0.42) 18px 19px),
    #f3e9de;
}

.store-v2-hero-placeholder > div {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  text-align: center;
}

.store-v2-hero-placeholder b {
  font-family: Georgia, serif;
  font-size: clamp(70px, 9vw, 120px);
  font-style: italic;
  line-height: 0.9;
}

.store-v2-hero-placeholder div > span {
  margin-top: 12px;
  color: #7c6b60;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.32em;
}

.store-v2-hero-placeholder strong {
  margin-top: 34px;
  color: var(--store-accent);
  font-size: 15px;
  letter-spacing: 0.18em;
}

.store-v2-hero-placeholder small {
  margin-top: 10px;
  font-weight: 800;
}

.store-v2-local-nav {
  width: min(980px, calc(100% - 48px));
  margin: 0 auto;
  padding: 10px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 6px;
  border: 1px solid #e8ded4;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 14px 35px rgba(55, 39, 29, 0.06);
}

.store-v2-local-nav a {
  padding: 13px 10px;
  color: #564b42;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  text-align: center;
}

.store-v2-local-nav a:hover,
.store-v2-local-nav a:focus-visible {
  color: #fff;
  background: var(--store-accent);
}

.store-v2-section,
.region-v2-list,
.region-v2-guide {
  width: min(1180px, calc(100% - 48px));
  margin-inline: auto;
  padding-block: clamp(64px, 7vw, 96px);
}

.store-v2-heading {
  max-width: 760px;
}

.store-v2-heading h2 {
  margin: 14px 0 18px;
  font-size: clamp(38px, 5vw, 62px);
  line-height: 1.12;
  letter-spacing: -0.045em;
  word-break: keep-all;
  text-wrap: balance;
}

.store-v2-heading > p:not(.eyebrow) {
  color: #675f58;
  font-size: 16px;
  line-height: 1.85;
}

.store-v2-reasons {
  padding-bottom: 0;
}

.store-v2-card-grid {
  margin-top: 48px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.store-v2-card-grid article {
  min-height: 270px;
  padding: 30px;
  border: 1px solid #eaded2;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 15px 40px rgba(67, 46, 33, 0.06);
}

.store-v2-card-grid article:nth-child(2) {
  background: var(--store-peach);
  border-color: #f5b49e;
}

.store-v2-card-grid b,
.region-v2-guide article b {
  color: var(--store-accent);
  font-size: 34px;
  line-height: 1;
}

.store-v2-card-grid h3,
.region-v2-guide article h3 {
  margin: 46px 0 12px;
  font-size: 21px;
  line-height: 1.45;
}

.store-v2-card-grid p,
.region-v2-guide article p {
  margin: 0;
  color: #69615b;
  font-size: 14px;
  line-height: 1.75;
}

.store-v2-related {
  margin-top: 20px;
  padding: 24px 28px;
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  align-items: center;
  gap: 20px;
  border-radius: 18px;
  background: #edf5f8;
}

.store-v2-related > p {
  margin: 0;
  color: #426170;
  font-size: 13px;
  font-weight: 800;
}

.store-v2-related a {
  padding: 15px 18px;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.6fr) auto;
  align-items: center;
  gap: 18px;
  color: #273b44;
  border: 1px solid #cadae0;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.8);
}

.store-v2-related span {
  font-size: 12px;
}

.store-v2-trainers {
  padding-bottom: 0;
}

.store-v2-trainer-grid {
  margin-top: 42px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.store-v2-trainer-grid--single {
  max-width: 620px;
  grid-template-columns: minmax(0, 1fr);
}

.store-v2-trainer-card {
  padding: 24px;
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  align-items: center;
  gap: 24px;
  background: #fff;
  border: 1px solid #eaded2;
  border-radius: 20px;
  box-shadow: 0 15px 40px rgba(67, 46, 33, 0.06);
}

.store-v2-trainer-placeholder {
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  background: #f2ebe5;
  border-radius: 16px;
}

.store-v2-trainer-placeholder span {
  color: #8c7d72;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.14em;
}

.store-v2-trainer-card p,
.store-v2-trainer-card h3 {
  margin: 0;
}

.store-v2-trainer-card p {
  color: var(--store-accent);
  font-size: 11px;
  font-weight: 800;
}

.store-v2-trainer-card h3 {
  margin-block: 8px 6px;
  font-size: clamp(24px, 3vw, 32px);
}

.store-v2-trainer-card > div:last-child > span {
  color: #675f58;
  font-size: 13px;
}

.store-v2-trainer-card a {
  margin-top: 16px;
  display: block;
  color: var(--store-accent);
  font-size: 12px;
  font-weight: 800;
}

.store-v2-trainer-note {
  margin: 16px 0 0;
  color: #746a63;
  font-size: 11px;
  line-height: 1.8;
}

.store-v2-service {
  width: 100%;
  margin-top: clamp(48px, 6vw, 78px);
  padding-inline: max(24px, calc((100% - 1180px) / 2));
  color: #fff;
  background: #25211e;
}

.store-v2-service .store-v2-heading > p:not(.eyebrow) {
  color: #d7cec7;
}

.store-v2-steps {
  margin: 54px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  list-style: none;
  border: 1px solid #544a44;
  border-radius: 20px;
  overflow: hidden;
}

.store-v2-steps li {
  min-height: 235px;
  padding: 26px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.store-v2-steps li + li {
  border-left: 1px solid #544a44;
}

.store-v2-steps span {
  color: #ff967c;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.14em;
}

.store-v2-steps h3 {
  margin: 0 0 10px;
  font-size: 20px;
}

.store-v2-steps p {
  margin: 0;
  color: #cfc6c0;
  font-size: 13px;
  line-height: 1.75;
}

.store-v2-service-action {
  margin-top: 32px;
  text-align: center;
}

.store-v2-service-action a {
  min-width: 320px;
  padding: 18px 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 36px;
  color: #fff;
  border-radius: 999px;
  background: var(--store-accent);
  font-weight: 800;
}

.store-v2-info-layout {
  margin-top: 48px;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
  gap: 22px;
}

.store-v2-info-table {
  margin: 0;
  border-top: 1px solid #ded5cd;
}

.store-v2-info-table > div {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  border-bottom: 1px solid #ded5cd;
}

.store-v2-info-table dt,
.store-v2-info-table dd {
  padding: 22px 18px;
}

.store-v2-info-table dt {
  color: #756a61;
  font-size: 12px;
  font-weight: 800;
}

.store-v2-info-table dd {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
}

.store-v2-info-table a {
  color: var(--store-accent-dark);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.store-v2-confirm {
  padding: 34px;
  align-self: start;
  border-radius: 20px;
  background: var(--store-peach);
}

.store-v2-confirm > span {
  color: var(--store-accent);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.14em;
}

.store-v2-confirm h3 {
  margin: 18px 0 14px;
  font-size: 24px;
  line-height: 1.45;
}

.store-v2-confirm p {
  color: #6c5d53;
  font-size: 14px;
  line-height: 1.8;
}

.store-v2-confirm a {
  margin-top: 18px;
  display: inline-block;
  color: var(--store-accent-dark);
  font-size: 13px;
  font-weight: 800;
}

.store-v2-map {
  min-height: 430px;
  margin-top: 28px;
  display: grid;
  grid-template-columns: minmax(280px, 0.7fr) minmax(0, 1.3fr);
  overflow: hidden;
  color: #fff;
  border: 1px solid #ddd2c8;
  border-radius: 22px;
  background: #342e29;
  box-shadow: 0 20px 55px rgba(59, 44, 33, 0.12);
}

.store-v2-map-copy {
  padding: clamp(34px, 4vw, 56px);
  align-self: center;
}

.store-v2-map-copy .eyebrow {
  color: #ff9d82;
}

.store-v2-map-copy h3 {
  margin: 18px 0;
  font-size: clamp(26px, 2.5vw, 36px);
  line-height: 1.4;
}

.store-v2-map-copy > p:not(.eyebrow) {
  color: #e8dfd8;
  font-size: 14px;
  line-height: 1.9;
}

.store-v2-map-copy strong {
  color: #fff;
}

.store-v2-map-copy a {
  min-height: 52px;
  margin-top: 28px;
  padding: 12px 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  color: #332b26;
  border-radius: 999px;
  background: #fff;
  font-size: 13px;
  font-weight: 900;
}

.store-v2-map-frame {
  min-width: 0;
  min-height: 430px;
  position: relative;
  background: #ebe5df;
}

.store-v2-map-frame iframe {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  display: block;
  border: 0;
}

.store-v2-nearby {
  padding-top: 20px;
}

.store-v2-nearby-grid {
  margin-top: 40px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.store-v2-nearby-grid a {
  min-height: 205px;
  padding: 26px;
  display: flex;
  flex-direction: column;
  color: var(--ink);
  border: 1px solid #e6ddd5;
  border-radius: 18px;
  background: #fff;
}

.store-v2-nearby-grid span {
  color: var(--store-accent);
  font-size: 10px;
  font-weight: 800;
}

.store-v2-nearby-grid strong {
  margin-top: 24px;
  font-size: 22px;
}

.store-v2-nearby-grid small {
  margin-top: 8px;
  color: #766e68;
}

.store-v2-nearby-grid i {
  margin-top: auto;
  align-self: flex-end;
  color: var(--store-accent);
  font-style: normal;
  font-size: 22px;
}

.store-v2-faq {
  display: grid;
  grid-template-columns: minmax(280px, 0.65fr) minmax(0, 1.35fr);
  gap: 70px;
}

.store-v2-faq .faq-list {
  margin-top: 0;
}

.store-v2-faq details {
  border-bottom: 1px solid #e4dbd3;
}

.store-v2-final {
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto 110px;
  padding: 54px 62px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 350px;
  align-items: center;
  gap: 52px;
  color: #fff;
  border-radius: 24px;
  background: linear-gradient(120deg, #ef5a3c, #f28460);
  box-shadow: 0 24px 60px rgba(196, 66, 35, 0.2);
}

.store-v2-final .eyebrow {
  color: #fff4e9;
}

.store-v2-final h2 {
  margin: 10px 0 12px;
  font-size: clamp(36px, 4vw, 52px);
  line-height: 1.2;
}

.store-v2-final p:not(.eyebrow) {
  margin: 0;
  color: #fff6f1;
}

.store-v2-final > div:last-child {
  display: grid;
  gap: 10px;
}

.store-v2-final a {
  min-height: 54px;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--store-accent-dark);
  border: 1px solid #fff;
  border-radius: 999px;
  background: #fff;
  font-weight: 800;
}

.store-v2-final a + a {
  color: #fff;
  background: transparent;
}

/* Region hubs */
.region-v2-hero {
  width: min(1240px, calc(100% - 48px));
  min-height: 570px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(480px, 1.18fr);
  overflow: hidden;
  border-radius: 28px;
  background: var(--store-blue);
}

.region-v2-hero > div {
  padding: clamp(52px, 7vw, 92px);
  align-self: center;
}

.region-v2-hero h1 {
  margin: 16px 0 24px;
  font-size: clamp(34px, 3vw, 42px);
  line-height: 1.08;
  letter-spacing: -0.05em;
  white-space: nowrap;
}

.region-v2-hero > div > p:not(.eyebrow) {
  color: #56656b;
  font-size: 16px;
  line-height: 1.85;
}

.region-v2-hero > div > a {
  margin-top: 34px;
  padding: 17px 26px;
  display: inline-flex;
  align-items: center;
  gap: 36px;
  color: #fff;
  border-radius: 999px;
  background: var(--store-accent);
  font-size: 14px;
  font-weight: 800;
}

.region-v2-hero figure {
  min-height: 570px;
  position: relative;
  margin: 0;
}

.region-v2-hero figure::after {
  width: 38%;
  position: absolute;
  inset: 0 auto 0 0;
  content: "";
  background: linear-gradient(90deg, var(--store-blue), transparent);
}

.region-v2-hero img {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  object-fit: cover;
}

.region-v2-hero figcaption {
  position: absolute;
  right: 22px;
  bottom: 20px;
  z-index: 1;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
}

.region-v2-store-grid {
  margin-top: 48px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.region-v2-store-card {
  min-height: 390px;
  padding: 32px;
  display: flex;
  flex-direction: column;
  border: 1px solid #e7ddd3;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 16px 44px rgba(56, 42, 31, .06);
}

.region-v2-store-card > span {
  color: var(--store-accent);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .14em;
}

.region-v2-store-card h2 {
  margin: 28px 0 8px;
  font-size: clamp(21px, 2vw, 27px);
  line-break: strict;
  line-height: 1.3;
  overflow-wrap: anywhere;
  text-wrap: balance;
  word-break: normal;
}

.region-v2-store-card > p {
  margin: 0 0 26px;
  color: #716861;
}

.region-v2-store-card dl {
  margin: 0;
}

.region-v2-store-card dl > div {
  padding: 13px 0;
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);
  border-top: 1px solid #eee5dd;
}

.region-v2-store-card dt {
  color: #8b8077;
  font-size: 11px;
}

.region-v2-store-card dd {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
}

.region-v2-store-card small {
  margin-top: 16px;
  padding: 6px 10px;
  align-self: flex-start;
  color: #446370;
  border-radius: 999px;
  background: var(--store-blue);
  font-size: 10px;
  font-weight: 800;
}

.region-v2-store-card > a {
  margin-top: auto;
  padding-top: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--store-accent-dark);
  font-size: 13px;
  font-weight: 800;
}

.region-v2-store-card i {
  font-style: normal;
  font-size: 20px;
}

.region-v2-guide {
  width: 100%;
  padding-inline: max(24px, calc((100% - 1180px) / 2));
  background: var(--store-cream);
}

.region-v2-guide > div:not(.store-v2-heading) {
  margin-top: 46px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.region-v2-guide article {
  min-height: 230px;
  padding: 28px;
  border-radius: 18px;
  background: #fff;
}

.region-v2-guide article h3 {
  margin-top: 34px;
}

.region-v2-guide nav {
  margin-top: 20px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.region-v2-guide nav a {
  min-height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #4a4038;
  border: 1px solid #e3d7cb;
  border-radius: 999px;
  background: #fff;
  font-size: 13px;
  font-weight: 800;
}

@media (max-width: 1100px) {
  .region-v2-hero h1 {
    font-size: clamp(40px, 6vw, 58px);
  }

  .store-v2-hero,
  .region-v2-hero {
    grid-template-columns: 1fr;
  }

  .store-v2-hero-copy,
  .region-v2-hero > div {
    order: 2;
  }

  .store-v2-hero-image,
  .region-v2-hero figure {
    min-height: 420px;
    order: 1;
  }

  .store-v2-hero-image::after,
  .region-v2-hero figure::after {
    width: 100%;
    height: 38%;
    inset: auto 0 0;
    background: linear-gradient(0deg, var(--store-cream), transparent);
  }

  .region-v2-hero figure::after {
    background: linear-gradient(0deg, var(--store-blue), transparent);
  }

  .store-v2-card-grid,
  .store-v2-trainer-grid,
  .region-v2-store-grid,
  .region-v2-guide > div:not(.store-v2-heading) {
    grid-template-columns: 1fr;
  }

  .store-v2-card-grid article,
  .region-v2-guide article {
    min-height: 0;
  }

  .store-v2-card-grid h3,
  .region-v2-guide article h3 {
    margin-top: 28px;
  }

  .store-v2-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .store-v2-steps li:nth-child(3) {
    border-left: 0;
    border-top: 1px solid #544a44;
  }

  .store-v2-steps li:nth-child(4) {
    border-top: 1px solid #544a44;
  }

  .store-v2-info-layout,
  .store-v2-faq,
  .store-v2-final {
    grid-template-columns: 1fr;
  }

  .store-v2-map {
    grid-template-columns: 1fr;
  }

  .store-v2-map-frame {
    min-height: 360px;
  }

  .store-v2-nearby-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .store-v2-hero,
  .region-v2-hero {
    width: 100%;
    min-height: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .store-v2-hero-image,
  .region-v2-hero figure {
    min-height: 320px;
  }

  .store-v2-hero-copy,
  .region-v2-hero > div {
    padding: 38px 20px 46px;
  }

  .store-v2-hero h1,
  .region-v2-hero h1 {
    margin-block: 14px 20px;
  }

  .store-v2-hero h1 {
    font-size: clamp(38px, 12vw, 50px);
  }

  .region-v2-hero h1 {
    font-size: clamp(34px, 9.5vw, 44px);
    white-space: nowrap;
  }

  .store-v2-hero-copy > p:not(.eyebrow):not(.store-v2-kicker),
  .region-v2-hero > div > p:not(.eyebrow) {
    font-size: 14px;
    line-height: 1.75;
  }

  .store-v2-facts {
    margin-block: 24px;
  }

  .store-v2-facts dd {
    font-size: 12px;
  }

  .store-v2-actions {
    grid-template-columns: 1fr;
  }

  .store-v2-local-nav {
    width: calc(100% - 24px);
    margin-top: 18px;
    padding: 6px;
    grid-template-columns: repeat(2, 1fr);
    border-radius: 18px;
  }

  .store-v2-section,
  .region-v2-list,
  .region-v2-guide {
    width: 100%;
    padding: 58px 18px;
  }

  .store-v2-heading h2 {
    font-size: clamp(34px, 10vw, 42px);
  }

  .store-v2-card-grid {
    margin-top: 34px;
  }

  .store-v2-trainer-grid {
    margin-top: 30px;
    grid-template-columns: 1fr;
  }

  .store-v2-trainer-card {
    padding: 20px;
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 18px;
    border-radius: 16px;
  }

  .store-v2-card-grid article {
    padding: 24px;
    border-radius: 16px;
  }

  .store-v2-related {
    padding: 20px;
    grid-template-columns: 1fr;
  }

  .store-v2-related a {
    grid-template-columns: 1fr auto;
  }

  .store-v2-related span {
    grid-column: 1 / -1;
  }

  .store-v2-service {
    margin-top: 48px;
  }

  .store-v2-steps {
    margin-top: 34px;
    grid-template-columns: 1fr;
  }

  .store-v2-steps li {
    min-height: 0;
    padding: 22px;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 12px;
  }

  .store-v2-steps li + li,
  .store-v2-steps li:nth-child(3) {
    border-top: 1px solid #544a44;
    border-left: 0;
  }

  .store-v2-service-action a {
    min-width: 0;
    width: 100%;
  }

  .store-v2-info-layout {
    margin-top: 34px;
  }

  .store-v2-info-table > div {
    grid-template-columns: 104px minmax(0, 1fr);
  }

  .store-v2-info-table dt,
  .store-v2-info-table dd {
    padding: 17px 10px;
  }

  .store-v2-confirm {
    padding: 24px;
  }

  .store-v2-map {
    min-height: 0;
    margin-top: 20px;
    border-radius: 18px;
  }

  .store-v2-map-copy {
    padding: 30px 24px;
  }

  .store-v2-map-copy h3 {
    font-size: 26px;
  }

  .store-v2-map-copy a {
    width: 100%;
  }

  .store-v2-map-frame {
    min-height: 300px;
  }

  .store-v2-nearby {
    padding-top: 0;
  }

  .store-v2-nearby-grid {
    grid-template-columns: 1fr;
  }

  .store-v2-nearby-grid a {
    min-height: 170px;
  }

  .store-v2-faq {
    gap: 30px;
  }

  .store-v2-final {
    width: calc(100% - 28px);
    margin-bottom: 78px;
    padding: 34px 24px;
    gap: 28px;
    border-radius: 20px;
  }

  .store-v2-final h2 {
    font-size: clamp(24px, 6.7vw, 30px);
    letter-spacing: -0.035em;
    white-space: nowrap;
  }

  .region-v2-store-grid {
    margin-top: 34px;
  }

  .region-v2-store-card {
    min-height: 330px;
    padding: 26px;
  }

  .region-v2-guide nav {
    grid-template-columns: 1fr;
  }
}

/* Mobile header shortcut: always keep the store list beside the hamburger. */
.mobile-store-link {
  display: none;
}

/* Shared header rule: the narrow store-list shortcut uses a triangle only.
   Do not add an arrow glyph or a nested icon to the link markup. */
.mobile-store-link::after {
  display: block;
  width: 0;
  height: 0;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 6px solid currentColor;
  content: "";
  flex: 0 0 auto;
}

@media (max-width: 1050px) {
  .mobile-store-link {
    min-height: 38px;
    padding: 0 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    justify-self: end;
    color: #fff;
    background: #ef5738;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.02em;
    white-space: nowrap;
  }
}

@media (max-width: 760px) {
  .site-header {
    padding-right: 160px;
  }

  .mobile-store-link {
    min-height: 36px;
    position: absolute;
    top: 17px;
    right: 70px;
    padding-inline: 11px;
    font-size: 11px;
  }

  .representative-copy {
    order: 1;
  }

  .representative-visual {
    order: 2;
    margin-top: -8px;
  }
}

/* Free-trial flow: structured icon cards */
.benchmark-home .benchmark-flow-list.flow-icon-list {
  max-width: 1120px;
  margin-inline: auto;
  gap: 0;
  border: 1px solid #e8ddd0;
  background: #fff;
}

.benchmark-home .benchmark-flow-list.flow-icon-list li {
  min-width: 0;
  min-height: 304px;
  padding: 26px 20px 24px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  border: 0;
  border-right: 1px solid #e8ddd0;
  background: #fff;
}

.benchmark-home .benchmark-flow-list.flow-icon-list li:last-child {
  border-right: 0;
}

.benchmark-home .benchmark-flow-list.flow-icon-list li::after {
  display: none !important;
}

.benchmark-home .flow-step-heading {
  min-height: 52px;
}

.benchmark-home .flow-step-heading > span {
  display: block;
  color: #e66d52;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
}

.benchmark-home .flow-step-heading h3 {
  margin: 3px 0 0;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.35;
}

.benchmark-home .flow-step-icon {
  width: 124px;
  height: 124px;
  margin: 14px auto 17px;
  display: grid;
  place-items: center;
  color: #ca9651;
  background: #f7eee2;
  border-radius: 50%;
}

.benchmark-home .flow-step-icon img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  border-radius: inherit;
}

.benchmark-home .benchmark-flow-list.flow-icon-list p {
  margin: 0;
  color: #625e58;
  font-size: 11px;
  line-height: 1.75;
}

@media (max-width: 980px) {
  .benchmark-home .benchmark-flow-list.flow-icon-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    border: 0;
    background: transparent;
  }

  .benchmark-home .benchmark-flow-list.flow-icon-list li,
  .benchmark-home .benchmark-flow-list.flow-icon-list li:last-child {
    border: 1px solid #e8ddd0;
  }
}

@media (max-width: 760px) {
  .benchmark-home .benchmark-flow-list.flow-icon-list {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .benchmark-home .benchmark-flow-list.flow-icon-list li {
    min-height: 0;
    padding: 22px 20px;
    display: grid;
    grid-template-columns: 94px minmax(0, 1fr);
    grid-template-areas:
      "icon heading"
      "icon copy";
    column-gap: 18px;
    row-gap: 8px;
    align-items: center;
  }

  .benchmark-home .flow-step-heading {
    grid-area: heading;
    min-height: 0;
    align-self: end;
  }

  .benchmark-home .flow-step-heading h3 {
    font-size: 16px;
  }

  .benchmark-home .flow-step-icon {
    grid-area: icon;
    width: 88px;
    height: 88px;
    margin: 0;
  }

  .benchmark-home .benchmark-flow-list.flow-icon-list p {
    grid-area: copy;
    align-self: start;
  }
}

/* Final reservation panel: quiet, centered and action-first */
.final-cta.final-cta-v3 {
  width: 100%;
  margin: 0;
  padding: clamp(72px, 8vw, 108px) 24px clamp(68px, 7vw, 96px);
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  gap: 0;
  color: #3b3937;
  text-align: center;
  background: #fff;
  border-top: 6px solid #ed7b70;
  box-shadow: none;
}

.final-cta.final-cta-v3 h2 {
  margin: 14px 0 0;
  color: #ef5838;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: clamp(25px, 3vw, 34px);
  font-weight: 900;
  letter-spacing: 0.07em;
}

.final-cta-logo {
  width: 68px;
  height: 68px;
  display: block;
  object-fit: contain;
}

.final-cta.final-cta-v3 .final-cta-brand {
  max-width: none;
  margin: 10px 0 0;
  color: #6d665f;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  opacity: 1;
}

.final-cta.final-cta-v3 .final-cta-lead {
  max-width: 620px;
  margin: 13px 0 0;
  color: #6f6963;
  font-size: 13px;
  line-height: 1.8;
  opacity: 1;
}

.final-cta-primary {
  width: min(320px, 100%);
  min-height: 52px;
  margin-top: 25px;
  padding: 12px 22px 12px 26px;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  color: #fff;
  background: #ef5838;
  border-radius: 999px;
  box-shadow: 0 10px 24px rgba(239, 88, 56, 0.2);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.05em;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.final-cta-primary:hover,
.final-cta-primary:focus-visible {
  box-shadow: 0 14px 30px rgba(239, 88, 56, 0.28);
  transform: translateY(-2px);
}

.final-cta-primary span {
  font-size: 22px;
  line-height: 1;
}

.final-cta.final-cta-v3 > small {
  margin-top: 18px;
  color: #7b756f;
  font-size: 10px;
}

@media (max-width: 760px) {
  .final-cta.final-cta-v3 {
    margin: 0;
    padding: 60px 20px 64px;
  }

  .final-cta-logo {
    width: 60px;
    height: 60px;
  }

  .final-cta.final-cta-v3 h2 {
    font-size: 25px;
  }

  .final-cta.final-cta-v3 .final-cta-lead {
    font-size: 12px;
  }
}

/* Editorial sections added for the local renewal benchmark build. */
.editorial-label {
  margin: 0;
  color: #ee5839;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.representative-section {
  padding: 104px 24px;
  background: #fff;
}

.representative-inner {
  width: min(1120px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
  align-items: center;
  gap: clamp(56px, 8vw, 110px);
}

.representative-copy h2,
.trainer-section-intro h2,
.information-heading h2,
.column-heading h2,
.location-heading h2 {
  margin: 12px 0 0;
  color: #3f3d3b;
  font-size: clamp(34px, 4vw, 50px);
  line-height: 1.45;
  letter-spacing: 0.08em;
}

.representative-text {
  margin-top: 34px;
  display: grid;
  gap: 22px;
}

.representative-text p {
  margin: 0;
  color: #4f4c48;
  font-size: 15px;
  line-height: 2.25;
}

.representative-text strong {
  padding-bottom: 2px;
  background: linear-gradient(transparent 68%, #f7d9d0 68%);
}

.representative-visual {
  margin: 0;
  position: relative;
}

.representative-photo {
  height: 520px;
  overflow: hidden;
  border-radius: 22px;
  background: linear-gradient(145deg, #f5f0e8, #e6d5b9);
}

.representative-photo img {
  width: 100%;
  height: 100%;
  padding: 22px 20px 0;
  object-fit: contain;
  object-position: center bottom;
  filter: drop-shadow(0 22px 26px rgba(41, 34, 26, 0.18));
}

.representative-visual figcaption {
  min-width: 286px;
  padding: 18px 24px 20px;
  position: absolute;
  right: -24px;
  bottom: -28px;
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 16px;
  align-items: baseline;
  border-radius: 16px 0 16px 16px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.representative-visual figcaption small {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: 12px;
}

.representative-visual figcaption b {
  font-size: 23px;
  letter-spacing: 0.12em;
}

.representative-visual figcaption span {
  color: #ee5839;
  font-size: 10px;
  letter-spacing: 0.18em;
}

.trainer-section {
  padding: 104px 24px 112px;
  background: #f6f3ef;
}

.trainer-team-layout {
  width: min(1180px, 100%);
  margin-inline: auto;
}

.trainer-team-layout {
  display: grid;
  grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1.28fr);
  align-items: center;
  gap: clamp(44px, 6vw, 86px);
}

.trainer-section-intro {
  padding: 0;
}

.trainer-section-intro h2 {
  font-size: clamp(36px, 3vw, 42px);
  line-height: 1.42;
  letter-spacing: 0.03em;
  word-break: keep-all;
}

.trainer-section-intro > p:last-child {
  margin: 24px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 2;
}

.trainer-section-intro .button {
  width: fit-content;
  min-width: 260px;
  margin-top: 30px;
  justify-content: space-between;
  border-color: #8f8578;
  background: #fff;
}

.trainer-team-visual {
  margin: 0;
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(45, 40, 34, 0.12);
}

.trainer-team-visual img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.trainer-team-visual figcaption {
  padding: 15px 18px;
  position: absolute;
  right: 16px;
  bottom: 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: #342f2b;
  background: rgba(255, 253, 248, 0.92);
  border-radius: 999px;
  box-shadow: 0 8px 20px rgba(43, 36, 29, 0.12);
  backdrop-filter: blur(8px);
}

.trainer-team-visual figcaption b {
  font-size: 11px;
  letter-spacing: 0.12em;
}

.trainer-team-visual figcaption small {
  color: #716a62;
  font-size: 9px;
}

.information-section {
  background: #fff;
}

.news-block,
.column-block {
  padding: 96px 24px;
}

.news-block {
  width: min(1120px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 0.75fr 1.25fr;
  gap: 80px;
}

.information-heading > span,
.column-heading > span,
.location-heading > span {
  margin-top: 22px;
  display: block;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.9;
}

.news-list {
  display: grid;
  align-content: start;
}

.news-item {
  min-height: 98px;
  padding: 20px 0;
  display: grid;
  grid-template-columns: 94px 104px 1fr 34px;
  gap: 14px;
  align-items: center;
  border-bottom: 1px solid #e3ddd5;
}

.news-item time {
  color: #ee5839;
  font-size: 12px;
  font-weight: 700;
}

.news-item > span {
  padding: 3px 12px;
  border: 1px solid #8e8881;
  border-radius: 999px;
  font-size: 10px;
  text-align: center;
}

.news-item h3 {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
}

.news-item > a {
  color: #817b75;
  font-size: 25px;
  text-align: right;
}

.column-block {
  background: #f7f4f1;
}

.column-heading,
.column-grid {
  width: min(1120px, 100%);
  margin-inline: auto;
}

.column-heading h2 {
  font-size: clamp(32px, 3.7vw, 47px);
}

.column-grid {
  margin-top: 44px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
}

.column-card {
  min-width: 0;
  background: #fff;
}

.column-card img {
  width: 100%;
  height: clamp(180px, 17vw, 220px);
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.column-card > div {
  padding: 18px 18px 24px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px 14px;
}

.column-card span {
  color: #ee5839;
  font-size: 11px;
  font-weight: 700;
}

.column-card small {
  padding: 2px 10px;
  border: 1px solid #9b958e;
  border-radius: 999px;
  font-size: 9px;
}

.column-card h3 {
  margin: 0;
  grid-column: 1 / -1;
  font-size: 17px;
  line-height: 1.75;
}

.location-section {
  padding: 104px 24px 110px;
  background: #f8f5f2;
}

.location-hero,
.location-groups {
  width: min(1120px, 100%);
  margin-inline: auto;
}

.location-hero {
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  align-items: center;
  gap: 64px;
}

.location-heading .button {
  width: fit-content;
  min-width: 280px;
  margin-top: 28px;
  justify-content: space-between;
  border-color: #8e8881;
  background: transparent;
}

.location-heading h2 {
  font-size: clamp(34px, 3.25vw, 42px);
  letter-spacing: 0.05em;
}

.location-photo {
  width: 100%;
  height: 500px;
  border-radius: 18px;
  object-fit: cover;
}

.location-groups {
  margin-top: 64px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px 56px;
}

.location-region h3 {
  margin: 0;
  padding-bottom: 12px;
  display: flex;
  align-items: baseline;
  gap: 14px;
  border-bottom: 1px solid #cfc7be;
  font-size: 18px;
}

.location-region h3 span {
  color: #ee5839;
  font-size: 11px;
  font-weight: 500;
}

.location-prefecture {
  padding-top: 20px;
}

.location-prefecture h4 {
  margin: 0 0 10px;
  font-size: 13px;
  text-decoration: underline;
  text-underline-offset: 5px;
}

.location-prefecture nav {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 34px;
}

.location-prefecture a {
  padding: 5px 0;
  color: #4e4b47;
  font-size: 13px;
}

.location-prefecture a::after {
  margin-left: 8px;
  content: "→";
  color: #ee5839;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.location-prefecture a:hover::after,
.location-prefecture a:focus-visible::after {
  opacity: 1;
}

@media (max-width: 920px) {
  .representative-inner,
  .location-hero {
    grid-template-columns: 1fr 1fr;
    gap: 36px;
  }

  .trainer-team-layout {
    grid-template-columns: minmax(250px, 0.8fr) minmax(0, 1.2fr);
    gap: 34px;
  }

  .news-block {
    gap: 46px;
  }
}

@media (max-width: 760px) {
  .editorial-label {
    font-size: 13px;
  }

  .representative-section,
  .trainer-section,
  .news-block,
  .column-block,
  .location-section {
    padding: 68px 18px 76px;
  }

  .representative-inner,
  .location-hero,
  .news-block {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .representative-copy h2,
  .trainer-section-intro h2,
  .information-heading h2,
  .column-heading h2,
  .location-heading h2 {
    font-size: 31px;
    line-height: 1.45;
  }

  .representative-text {
    margin-top: 24px;
    gap: 18px;
  }

  .representative-text p {
    font-size: 13px;
    line-height: 2;
  }

  .representative-photo {
    height: 410px;
  }

  .representative-visual figcaption {
    min-width: 0;
    width: calc(100% - 26px);
    padding: 15px 18px;
    right: -4px;
    bottom: -22px;
  }

  .representative-visual figcaption b {
    font-size: 20px;
  }

  .trainer-section-intro {
    padding: 0;
  }

  .trainer-section-intro > p:last-child {
    font-size: 12px;
  }

  .trainer-team-layout {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .trainer-section-intro .button {
    width: 100%;
    min-width: 0;
    margin-top: 22px;
  }

  .trainer-team-visual {
    border-radius: 12px;
  }

  .trainer-team-visual figcaption {
    padding: 10px 12px;
    right: 10px;
    bottom: 10px;
  }

  .trainer-team-visual figcaption b {
    font-size: 9px;
  }

  .news-item {
    min-height: 0;
    padding: 18px 0;
    grid-template-columns: 82px 1fr 26px;
    gap: 8px 12px;
  }

  .news-item > span {
    width: fit-content;
    padding-inline: 9px;
  }

  .news-item h3 {
    grid-column: 1 / span 2;
    font-size: 13px;
  }

  .news-item > a {
    grid-column: 3;
    grid-row: 1 / span 2;
  }

  .column-grid {
    margin-top: 28px;
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .column-card {
    display: grid;
    grid-template-columns: 128px 1fr;
  }

  .column-card img {
    height: 100%;
    aspect-ratio: auto;
  }

  .column-card > div {
    padding: 14px;
  }

  .column-card h3 {
    font-size: 13px;
  }

  .location-photo {
    height: 260px;
    grid-row: 1;
  }

  .location-heading {
    grid-row: 2;
  }

  .location-heading .button {
    width: 100%;
    min-width: 0;
  }

  .location-groups {
    margin-top: 42px;
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .location-prefecture nav {
    gap: 4px 22px;
  }
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", sans-serif;
  line-height: 1.8;
  text-rendering: optimizeLegibility;
}

body[data-menu-open] {
  overflow: hidden;
}

img {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
summary {
  font: inherit;
}

button,
a,
summary {
  -webkit-tap-highlight-color: transparent;
}

.sr-only {
  width: 1px;
  height: 1px;
  padding: 0;
  position: absolute;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  z-index: 1000;
  top: 12px;
  left: 12px;
  padding: 10px 16px;
  border-radius: 8px;
  color: #fff;
  background: var(--wine);
  transform: translateY(-150%);
}

.skip-link:focus {
  transform: translateY(0);
}

.preview-bar {
  min-height: 30px;
  padding: 5px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #fff;
  background: var(--wine);
  font-size: 10px;
  letter-spacing: 0.12em;
}

.preview-bar span {
  font-weight: 900;
}

.preview-bar p {
  margin: 0;
  opacity: 0.65;
  letter-spacing: 0.04em;
}

.site-header {
  min-height: 82px;
  padding: 10px max(24px, calc((100vw - 1320px) / 2));
  position: sticky;
  z-index: 100;
  top: 0;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 28px;
  background: rgba(255, 253, 251, 0.92);
  border-bottom: 1px solid transparent;
  backdrop-filter: blur(16px);
  transition: border-color 180ms ease, box-shadow 180ms ease;
}

.site-header[data-scrolled] {
  border-bottom-color: var(--line);
  box-shadow: 0 8px 34px rgba(44, 38, 31, 0.07);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  line-height: 1;
}

.brand img {
  width: 56px;
  height: 56px;
}

.brand span {
  display: grid;
  gap: 5px;
}

.brand b {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
  font-style: italic;
}

.brand small {
  color: var(--rose-dark);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.21em;
}

.global-nav {
  justify-self: center;
  display: flex;
  align-items: center;
  gap: clamp(17px, 2.2vw, 34px);
  font-size: 12px;
  font-weight: 800;
}

.global-nav a {
  padding: 8px 0;
  position: relative;
}

.global-nav a::after {
  height: 2px;
  position: absolute;
  right: 0;
  bottom: 2px;
  left: 0;
  content: "";
  background: var(--rose);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 180ms ease;
}

.global-nav a:hover::after,
.global-nav a:focus-visible::after {
  transform: scaleX(1);
}

.header-cta,
.button {
  min-height: 54px;
  padding: 13px 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.02em;
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.header-cta {
  color: #fff;
  background: #ef5738;
  box-shadow: 0 10px 24px rgba(239, 87, 56, 0.24);
}

.header-cta span {
  color: #fff;
}

.header-cta:hover,
.header-cta:focus-visible {
  background: #dc4529;
  box-shadow: 0 13px 28px rgba(220, 69, 41, 0.32);
}

.header-cta:hover,
.button:hover {
  transform: translateY(-2px);
}

.menu-button {
  display: none;
}

.hero {
  position: relative;
  overflow: hidden;
  background: #f7f2e8;
}

.hero-visual {
  display: block;
  width: 100%;
}

.hero-visual img {
  display: block;
  width: 100%;
  height: auto;
}

.eyebrow {
  margin: 0 0 14px;
  color: var(--rose);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.24em;
}

.hero h1,
.section-heading h2,
.split-heading h2,
.method-intro h2,
.studio-copy h2,
.stores-heading h2,
.journal-heading h2,
.faq-heading h2,
.final-cta h2,
.page-hero h1,
.store-hero h1,
.subpage-heading h2 {
  margin: 0;
  font-family: var(--serif);
  font-weight: 500;
  line-height: 1.34;
  letter-spacing: -0.035em;
}

.hero h1 {
  font-size: clamp(54px, 5.1vw, 78px);
  line-height: 1.1;
}

.hero h1 em {
  color: var(--rose);
  font-style: normal;
}

.hero-lead {
  margin: 27px 0 0;
  font-family: var(--serif);
  font-size: clamp(22px, 2.2vw, 31px);
  line-height: 1.55;
}

.hero-copy {
  max-width: 520px;
  margin: 18px 0 0;
  color: var(--ink-soft);
  font-size: 14px;
  line-height: 2;
}

.hero-actions {
  margin-top: 30px;
  display: flex;
  flex-wrap: wrap;
  gap: 11px;
}

.hero-actions-overlay {
  width: min(41vw, 670px);
  margin: 0;
  position: absolute;
  right: 5.6%;
  bottom: 10.5%;
  justify-content: center;
}

.hero-actions-overlay .button {
  min-width: min(18vw, 250px);
  padding: 15px 20px;
  backdrop-filter: blur(12px);
}

.button-primary {
  color: #fff;
  background: linear-gradient(135deg, var(--rose-dark), var(--rose));
  box-shadow: 0 14px 34px rgba(135, 101, 47, 0.24);
}

.button-secondary {
  color: var(--rose-dark);
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(184, 144, 79, 0.34);
}

.button-outline {
  color: var(--wine);
  background: transparent;
  border: 1px solid rgba(44, 41, 38, 0.3);
}

.hero-facts {
  margin-top: 28px;
  padding-top: 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  border-top: 1px solid rgba(44, 41, 38, 0.12);
}

.hero-facts span {
  position: relative;
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
}

.hero-facts span::before {
  margin-right: 7px;
  color: var(--gold);
  content: "●";
  font-size: 7px;
}

.hero-facts-overlay {
  width: min(44vw, 720px);
  margin: 0;
  padding-top: 0;
  position: absolute;
  right: 4.2%;
  bottom: 4.2%;
  justify-content: center;
  border-top: 0;
}

.hero-signature {
  margin: 0;
  position: absolute;
  bottom: 25px;
  left: 26px;
  color: rgba(255, 255, 255, 0.78);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 10px;
  font-style: italic;
  letter-spacing: 0.22em;
  writing-mode: vertical-rl;
}

.news-strip {
  width: var(--content);
  min-height: 88px;
  margin: -24px auto 0;
  padding: 20px 28px;
  position: relative;
  z-index: 4;
  display: grid;
  grid-template-columns: auto auto 1fr auto;
  align-items: center;
  gap: 20px;
  border: 1px solid rgba(185, 154, 98, 0.28);
  background: rgba(255, 253, 251, 0.97);
  box-shadow: var(--shadow);
}

.news-strip > span {
  color: var(--rose);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.2em;
}

.news-strip strong {
  font-family: var(--serif);
  font-size: 18px;
}

.news-strip p {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
}

.news-strip a,
.text-link {
  color: var(--rose-dark);
  font-size: 12px;
  font-weight: 900;
}

.section {
  width: var(--content);
  margin: 0 auto;
  padding: clamp(96px, 10vw, 148px) 0;
}

.section-heading {
  max-width: 760px;
  margin: 0 auto 58px;
  text-align: center;
}

.section-heading h2,
.split-heading h2,
.method-intro h2,
.stores-heading h2,
.journal-heading h2,
.faq-heading h2,
.subpage-heading h2 {
  font-size: clamp(36px, 4.5vw, 58px);
}

.section-heading > p:last-child {
  margin: 18px auto 0;
  color: var(--muted);
}

.split-heading,
.stores-heading,
.journal-heading {
  margin-bottom: 58px;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  align-items: end;
  gap: clamp(40px, 8vw, 110px);
}

.split-heading > p,
.stores-heading > p,
.journal-heading > p {
  margin: 0 0 8px;
  color: var(--muted);
}

.concern-section {
  padding-top: clamp(120px, 12vw, 180px);
}

.concern-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.concern-card {
  min-height: 290px;
  padding: 34px 28px;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
  transition: color 220ms ease, background 220ms ease;
}

.concern-card:hover {
  color: #fff;
  background: var(--wine);
}

.concern-card > span {
  color: var(--gold);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  font-style: italic;
}

.concern-card h3 {
  margin: auto 0 12px;
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 600;
}

.concern-card p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  transition: color 220ms ease;
}

.concern-card:hover p {
  color: rgba(255, 255, 255, 0.7);
}

.method-section {
  overflow: hidden;
  background: var(--rose-50);
}

.method-intro {
  padding-bottom: 64px;
  position: relative;
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 38px 84px;
}

.method-intro .eyebrow {
  grid-column: 1 / -1;
}

.method-intro h2 {
  grid-column: 1;
}

.method-intro > p:last-child {
  max-width: 540px;
  margin: 0;
  align-self: end;
  color: var(--muted);
}

.section-index {
  margin: 0;
  position: absolute;
  top: 50px;
  right: 0;
  color: rgba(184, 144, 79, 0.08);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(130px, 18vw, 245px);
  font-style: italic;
  line-height: 1;
  pointer-events: none;
}

.method-steps {
  padding-top: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.method-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: var(--shadow-soft);
}

.method-image {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.method-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 600ms ease;
}

.method-card:hover img {
  transform: scale(1.04);
}

.method-image b {
  width: 54px;
  height: 54px;
  position: absolute;
  right: 0;
  bottom: 0;
  display: grid;
  place-items: center;
  color: #fff;
  background: var(--wine);
  font-family: Georgia, "Times New Roman", serif;
  font-style: italic;
}

.method-card > div:last-child {
  padding: 30px;
}

.method-card > div:last-child > p:first-child,
.goal-card > span,
.journal-card > div:last-child > p {
  margin: 0 0 7px;
  color: var(--rose);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.18em;
}

.method-card h3 {
  margin: 0;
  font-family: var(--serif);
  font-size: 29px;
  font-weight: 600;
}

.method-card > div:last-child > p:last-child {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.goal-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.9fr 0.9fr;
  gap: 16px;
}

.goal-card {
  min-height: 310px;
  padding: 38px;
  display: flex;
  flex-direction: column;
  justify-content: end;
  border: 1px solid var(--line);
  background: var(--paper-warm);
}

.goal-card-primary {
  color: #fff;
  background: var(--wine);
  border-color: var(--wine);
}

.goal-card-primary > span {
  color: var(--gold-light);
}

.goal-card h3 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(23px, 2.3vw, 34px);
  font-weight: 600;
}

.goal-card p {
  margin: 15px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.goal-card-primary p {
  color: rgba(255, 255, 255, 0.68);
}

.studio-story {
  min-height: 700px;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  background: var(--blush);
}

.studio-photo {
  min-height: 700px;
  overflow: hidden;
}

.studio-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.studio-copy {
  padding: clamp(75px, 8vw, 126px) clamp(42px, 7vw, 104px);
  position: relative;
  align-self: center;
}

.studio-copy h2 {
  font-size: clamp(38px, 4.4vw, 60px);
}

.studio-copy > p:not(.eyebrow, .section-index) {
  max-width: 560px;
  margin: 24px 0 0;
  color: var(--muted);
}

.check-list {
  margin: 30px 0 26px;
  padding: 0;
  display: grid;
  gap: 0;
  list-style: none;
}

.check-list li {
  padding: 13px 0 13px 30px;
  position: relative;
  border-bottom: 1px solid rgba(184, 144, 79, 0.18);
  font-size: 13px;
  font-weight: 800;
}

.check-list li::before {
  position: absolute;
  left: 2px;
  color: var(--rose);
  content: "✓";
  font-weight: 900;
}

.price-section {
  color: #fff;
  background:
    radial-gradient(circle at 85% 10%, rgba(194, 161, 99, 0.2), transparent 30%),
    var(--wine-deep);
}

.price-inner {
  padding-top: clamp(100px, 10vw, 145px);
}

.section-heading-light > p:last-child {
  color: rgba(255, 255, 255, 0.62);
}

.price-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  align-items: stretch;
  gap: 16px;
}

.price-card {
  min-height: 320px;
  padding: 38px 30px;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.05);
  text-align: center;
}

.price-card-featured {
  color: var(--ink);
  background: #fff;
  transform: translateY(-13px);
  box-shadow: 0 26px 70px rgba(0, 0, 0, 0.25);
}

.recommended {
  padding: 6px 16px;
  position: absolute;
  top: -14px;
  left: 50%;
  border-radius: 999px;
  color: #fff;
  background: var(--rose);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.18em;
  transform: translateX(-50%);
}

.price-card p {
  margin: 0;
  color: var(--gold-light);
  font-size: 11px;
  font-weight: 800;
}

.price-card-featured p {
  color: var(--rose);
}

.price-card h3 {
  margin: 8px 0 18px;
  font-size: 23px;
}

.price-card strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(31px, 3.3vw, 45px);
  line-height: 1.2;
}

.price-card strong small {
  margin-left: 4px;
  font-family: inherit;
  font-size: 10px;
}

.price-card > span {
  margin-top: 12px;
  opacity: 0.66;
  font-size: 11px;
}

.price-notice {
  max-width: 780px;
  margin: 28px auto 0;
  color: rgba(255, 255, 255, 0.54);
  font-size: 10px;
  text-align: center;
}

.stores-heading h2 {
  max-width: 600px;
}

.store-finder {
  padding: 26px;
  display: grid;
  grid-template-columns: minmax(280px, 0.9fr) 1.1fr;
  align-items: end;
  gap: 22px;
  background: var(--paper-warm);
  border: 1px solid var(--line);
}

.store-search {
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
}

.store-search input {
  width: 100%;
  min-height: 54px;
  padding: 0 18px;
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 0;
  outline: none;
}

.store-search input:focus {
  border-color: var(--rose);
  box-shadow: 0 0 0 3px rgba(184, 144, 79, 0.12);
}

.store-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.store-filter {
  min-height: 42px;
  padding: 8px 16px;
  color: var(--ink-soft);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 800;
}

.store-filter[aria-pressed="true"] {
  color: #fff;
  background: var(--wine);
  border-color: var(--wine);
}

.store-result-count {
  margin: 18px 0;
  color: var(--muted);
  font-size: 11px;
}

.store-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.store-card {
  min-height: 236px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
  transition: background 180ms ease, transform 180ms ease;
}

.store-card:hover {
  background: var(--rose-50);
}

.store-card > p {
  margin: 0;
  color: var(--rose);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.14em;
}

.store-card h3 {
  margin: 10px 0 6px;
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 600;
}

.store-card > span {
  color: var(--muted);
  font-size: 12px;
}

.store-related-services {
  margin-top: 16px;
}

.store-card .store-related-service {
  display: grid;
  gap: 3px;
  padding: 10px 12px;
  border: 1px solid #e8ddca;
  border-radius: 8px;
  background: #fffaf0;
  color: var(--rose-dark);
}

.store-related-service strong {
  font-size: 11px;
}

.store-related-service span {
  color: var(--muted);
  font-size: 9px;
  font-weight: 600;
}

.store-card-footer {
  margin-top: auto;
  padding-top: 26px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.store-card small {
  color: #8d8579;
  font-size: 9px;
}

.store-card a {
  color: var(--rose-dark);
  font-size: 11px;
  font-weight: 900;
}

.loading-text,
.empty-text {
  grid-column: 1 / -1;
  padding: 60px 20px;
  color: var(--muted);
  text-align: center;
}

.section-action {
  margin-top: 34px;
  text-align: center;
}

.journal-section {
  background: var(--paper-warm);
}

.journal-inner {
  padding-top: clamp(100px, 10vw, 145px);
}

.journal-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.journal-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
}

.journal-visual {
  min-height: 250px;
  padding: 20px;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  background-position: center;
  background-size: cover;
}

.journal-visual span {
  color: rgba(255, 255, 255, 0.9);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 40px;
  font-style: italic;
  line-height: 1;
}

.journal-visual-posture {
  background-image: linear-gradient(rgba(35, 31, 27, 0.06), rgba(35, 31, 27, 0.24)), url("/assets/images/reason-method.png");
}

.journal-visual-training {
  background-image: linear-gradient(rgba(35, 31, 27, 0.06), rgba(35, 31, 27, 0.24)), url("/assets/images/reason-program.png");
}

.journal-visual-local {
  background-image: linear-gradient(rgba(35, 31, 27, 0.06), rgba(35, 31, 27, 0.24)), url("/assets/images/reason-access.png");
}

.journal-card > div:last-child {
  padding: 26px;
}

.journal-card h3 {
  margin: 0;
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.6;
}

.journal-card > div:last-child > span {
  margin-top: 18px;
  display: inline-block;
  color: var(--muted);
  font-size: 10px;
}

.journal-guide-link {
  margin: 32px 0 0;
  text-align: right;
}

.journal-guide-link a {
  display: inline-flex;
  min-height: 52px;
  padding: 0 22px;
  border-radius: 999px;
  background: var(--wine);
  color: #fff;
  font-weight: 800;
  align-items: center;
  gap: 18px;
}

.flow-list {
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
  list-style: none;
}

.flow-list li {
  min-height: 240px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.flow-list li > span {
  color: var(--rose);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 28px;
  font-style: italic;
}

.flow-list li > div {
  margin-top: auto;
}

.flow-list h3 {
  margin: 0 0 7px;
  font-family: var(--serif);
  font-size: 20px;
}

.flow-list p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.faq-section {
  background: var(--rose-50);
}

.faq-inner {
  display: grid;
  grid-template-columns: 0.72fr 1.28fr;
  gap: clamp(50px, 8vw, 110px);
}

.faq-heading > p:last-child {
  color: var(--muted);
}

.faq-list {
  border-top: 1px solid rgba(184, 144, 79, 0.2);
}

.faq-list details {
  border-bottom: 1px solid rgba(184, 144, 79, 0.2);
}

.faq-list summary {
  padding: 24px 48px 24px 40px;
  position: relative;
  cursor: pointer;
  list-style: none;
  font-weight: 800;
}

.faq-list summary::-webkit-details-marker {
  display: none;
}

.faq-list summary::before {
  position: absolute;
  left: 0;
  color: var(--rose);
  content: "Q";
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
  font-style: italic;
}

.faq-list summary::after {
  position: absolute;
  top: 26px;
  right: 5px;
  color: var(--rose);
  content: "+";
  font-size: 22px;
  line-height: 1;
}

.faq-list details[open] summary::after {
  content: "−";
}

.faq-list details p {
  margin: -4px 0 0;
  padding: 0 18px 24px 40px;
  color: var(--muted);
  font-size: 13px;
}

.final-cta {
  width: var(--content);
  margin: clamp(90px, 10vw, 140px) auto;
  padding: clamp(54px, 7vw, 86px);
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 44px;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 95% 0, rgba(255, 255, 255, 0.16), transparent 30%),
    linear-gradient(135deg, var(--rose-dark), var(--rose));
  box-shadow: 0 30px 90px rgba(67, 54, 35, 0.23);
}

.final-cta .eyebrow {
  color: rgba(255, 255, 255, 0.72);
}

.final-cta h2 {
  font-size: clamp(34px, 4.2vw, 52px);
}

.final-cta p:not(.eyebrow) {
  max-width: 650px;
  margin: 18px 0 0;
  opacity: 0.76;
}

.final-actions {
  display: grid;
  gap: 10px;
}

.button-white {
  min-width: 215px;
  color: var(--rose-dark);
  background: #fff;
  box-shadow: 0 12px 28px rgba(52, 43, 30, 0.18);
}

.button-ghost-white {
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.42);
}

.site-footer {
  padding: 66px max(24px, calc((100vw - 1180px) / 2)) 34px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 38px;
  color: rgba(255, 255, 255, 0.7);
  background: var(--wine-deep);
}

.footer-top {
  display: grid;
  gap: 24px;
}

.footer-top > p {
  margin: 0;
  font-family: var(--serif);
  font-size: 15px;
}

.footer-brand {
  display: flex;
  align-items: center;
  gap: 14px;
}

.footer-brand p {
  margin: 0;
  display: grid;
}

.footer-brand b {
  color: #fff;
}

.footer-brand span {
  font-size: 10px;
}

.site-footer nav {
  display: grid;
  grid-template-columns: repeat(2, auto);
  align-content: start;
  gap: 12px 30px;
  font-size: 11px;
}

.site-footer nav a:hover {
  color: #fff;
}

.copyright {
  grid-column: 1 / -1;
  margin: 0;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 9px;
}

.floating-cta {
  width: 94px;
  min-height: 360px;
  position: fixed;
  z-index: 80;
  right: 0;
  top: 50%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #343331;
  background: #fff;
  border: 1px solid #f05b3d;
  border-right: 0;
  border-radius: 14px 0 0 14px;
  box-shadow: -10px 18px 38px rgba(58, 48, 32, 0.2);
  line-height: 1;
  text-align: center;
  transform: translateY(-50%);
  writing-mode: horizontal-tb;
}

.floating-cta-head,
.floating-cta-body,
.floating-cta-foot {
  width: 100%;
  display: grid;
  place-items: center;
}

.floating-cta-head {
  padding: 9px 4px 8px;
  color: #fff;
  background: #343331;
}

.floating-cta-head small {
  font-size: 7px;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.floating-cta-head b {
  margin-top: 4px;
  font-size: 14px;
  font-weight: 900;
}

.floating-cta-body {
  min-height: 244px;
  padding: 13px 6px 10px;
  align-content: center;
  color: #fff;
  background: #f05b3d;
}

.floating-cta-body i {
  margin-bottom: 7px;
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
}

.floating-cta-body strong {
  font-size: 21px;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1.05;
  writing-mode: vertical-rl;
}

.floating-cta-body em {
  margin-top: 8px;
  display: flex;
  align-items: flex-end;
  color: #fff239;
  font-size: 62px;
  font-style: normal;
  font-weight: 1000;
  letter-spacing: -0.08em;
  line-height: 0.85;
}

.floating-cta-body em small {
  margin: 0 0 5px 2px;
  color: #fff;
  font-size: 15px;
  letter-spacing: 0;
}

.floating-cta-foot {
  min-height: 66px;
  padding: 9px 4px;
  color: #e84f31;
  background: #fff8ea;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.4;
}

.floating-cta-foot b {
  color: #e84f31;
  font-size: 15px;
}

.mobile-cta {
  display: none;
}

body[data-reveal-ready] .reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 600ms ease, transform 600ms ease;
}

body[data-reveal-ready] .reveal[data-visible] {
  opacity: 1;
  transform: translateY(0);
}

/* Subpages */
.breadcrumbs {
  width: var(--content);
  margin: 0 auto;
  padding: 18px 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  color: var(--muted);
  font-size: 10px;
}

.breadcrumbs a::after {
  margin-left: 8px;
  content: "/";
  opacity: 0.45;
}

.page-hero {
  padding: clamp(72px, 9vw, 126px) max(24px, calc((100vw - 1180px) / 2));
  position: relative;
  overflow: hidden;
  background: var(--paper-warm);
}

.page-hero::after {
  position: absolute;
  right: -20px;
  bottom: -70px;
  color: rgba(184, 144, 79, 0.07);
  content: attr(data-en);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(100px, 17vw, 240px);
  font-style: italic;
  line-height: 1;
}

.page-hero h1 {
  max-width: 800px;
  position: relative;
  z-index: 1;
  font-size: clamp(44px, 6vw, 76px);
}

.page-hero > p:last-of-type {
  max-width: 650px;
  margin: 24px 0 0;
  position: relative;
  z-index: 1;
  color: var(--muted);
}

.page-stores {
  padding-top: 76px;
}

.page-stores .store-grid {
  grid-template-columns: repeat(3, 1fr);
}

.store-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(420px, 0.9fr);
  background: var(--rose-50);
}

.store-hero-photo {
  min-height: 650px;
  background: url("/assets/images/studio.jpg") center / cover no-repeat;
}

.store-hero-copy {
  padding: clamp(70px, 8vw, 118px) clamp(42px, 7vw, 100px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.store-hero h1 {
  font-size: clamp(42px, 5vw, 68px);
}

.store-hero h1 small {
  margin-bottom: 10px;
  display: block;
  color: var(--rose);
  font-family: inherit;
  font-size: 16px;
}

.store-lead {
  margin: 23px 0 0;
  color: var(--muted);
}

.store-quick-facts {
  margin: 28px 0 0;
  padding: 18px 0;
  display: grid;
  gap: 10px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.store-quick-facts p {
  margin: 0;
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 16px;
  font-size: 12px;
}

.store-quick-facts strong {
  color: var(--rose-dark);
}

.store-hero-actions {
  margin-top: 28px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.store-local-nav {
  position: sticky;
  z-index: 50;
  top: 82px;
  display: flex;
  justify-content: center;
  overflow-x: auto;
  background: rgba(255, 253, 251, 0.96);
  border-bottom: 1px solid var(--line);
  white-space: nowrap;
}

.store-local-nav a {
  padding: 16px 24px;
  font-size: 11px;
  font-weight: 800;
}

.store-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.store-feature {
  min-height: 260px;
  padding: 30px;
  display: flex;
  flex-direction: column;
  justify-content: end;
  background: var(--paper-warm);
  border: 1px solid var(--line);
}

.store-feature > span {
  color: var(--rose);
  font-family: Georgia, "Times New Roman", serif;
  font-style: italic;
}

.store-feature h3 {
  margin: 16px 0 8px;
  font-family: var(--serif);
  font-size: 24px;
}

.store-feature p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.store-info-layout {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: clamp(50px, 8vw, 110px);
}

.store-info-table {
  display: grid;
  grid-template-columns: 120px 1fr;
  border-top: 1px solid var(--line);
}

.store-info-table dt,
.store-info-table dd {
  margin: 0;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
}

.store-info-table dt {
  color: var(--muted);
}

.store-info-table dd {
  padding-left: 26px;
  font-weight: 700;
}

.placeholder-note {
  padding: 16px 20px;
  color: #7c6743;
  background: #fbf5e9;
  border: 1px solid #eadcc3;
  font-size: 11px;
}

/* Photo planning placeholder
   実写真へ差し替えるまで、必要な写真名と撮影意図をページ内で共有する。 */
.pipi-photo-placeholder {
  width: min(100%, 920px);
  margin: clamp(24px, 4vw, 38px) 0;
  color: var(--ink);
  background: var(--surface-main, #fff);
  border: 1px solid var(--line);
  border-radius: var(--corner-sharp, 4px);
  overflow: hidden;
}

.pipi-photo-planning-section {
  padding: clamp(20px, 4vw, 44px) 0;
  background: var(--surface-main, #fff);
}

.pipi-photo-planning-section .pipi-photo-placeholder {
  margin: 0;
}

.pipi-photo-placeholder__canvas {
  min-height: clamp(210px, 34vw, 390px);
  padding: clamp(24px, 5vw, 54px);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  background-color: var(--surface-soft, #fffaf6);
  background-image:
    linear-gradient(135deg, transparent 49.65%, rgba(207, 117, 82, 0.18) 49.75%, rgba(207, 117, 82, 0.18) 50.25%, transparent 50.35%),
    linear-gradient(45deg, transparent 49.65%, rgba(207, 117, 82, 0.12) 49.75%, rgba(207, 117, 82, 0.12) 50.25%, transparent 50.35%);
  background-size: 42px 42px;
  border-bottom: 1px solid var(--line);
}

.pipi-photo-placeholder--article .pipi-photo-placeholder__canvas {
  min-height: clamp(190px, 28vw, 320px);
}

.pipi-photo-placeholder__canvas span {
  padding: 5px 8px;
  color: var(--brand-coral, #c9684a);
  background: #fff;
  border-left: 3px solid currentColor;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.14em;
}

.pipi-photo-placeholder__canvas b {
  max-inline-size: 28em;
  margin-top: 12px;
  padding: 9px 12px;
  background: rgba(255, 255, 255, 0.94);
  font-family: var(--serif);
  font-size: clamp(18px, 2.4vw, 28px);
  line-height: 1.45;
}

.pipi-photo-placeholder figcaption {
  padding: clamp(18px, 3vw, 28px);
  display: grid;
  grid-template-columns: minmax(180px, 0.7fr) minmax(0, 1.8fr);
  gap: 18px clamp(20px, 4vw, 42px);
  text-align: left;
}

.pipi-photo-placeholder figcaption > span {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 7px;
}

.pipi-photo-placeholder figcaption small {
  color: var(--brand-coral, #c9684a);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.pipi-photo-placeholder figcaption code {
  overflow-wrap: anywhere;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
  font-weight: 700;
}

.pipi-photo-placeholder figcaption strong {
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.85;
}

@media (max-width: 640px) {
  .pipi-photo-placeholder figcaption {
    grid-template-columns: 1fr;
  }

  .pipi-photo-placeholder__canvas {
    min-height: 210px;
  }
}

.pipi-content-photo {
  width: min(100%, 920px);
  margin: clamp(24px, 4vw, 38px) 0;
  overflow: hidden;
  background: var(--surface-main, #fff);
  border: 1px solid var(--line);
  border-radius: var(--corner-sharp, 4px);
}

.pipi-content-photo img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  display: block;
  object-fit: cover;
}

.pipi-content-photo figcaption {
  padding: 12px 16px;
  color: var(--muted);
  border-top: 1px solid var(--line);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.7;
}

.journal-category-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.journal-category {
  min-height: 260px;
  padding: 34px;
  display: flex;
  flex-direction: column;
  justify-content: end;
  color: #fff;
  background: var(--wine);
}

.journal-category:nth-child(2) {
  background: var(--rose-dark);
}

.journal-category:nth-child(3) {
  color: var(--ink);
  background: var(--gold-light);
}

.journal-category span {
  font-family: Georgia, "Times New Roman", serif;
  font-style: italic;
  opacity: 0.72;
}

.journal-category h2 {
  margin: 15px 0 5px;
  font-family: var(--serif);
  font-size: 26px;
}

.journal-category p {
  margin: 0;
  font-size: 12px;
  opacity: 0.7;
}

@media (max-width: 1050px) {
  .site-header {
    grid-template-columns: auto auto;
    justify-content: space-between;
  }

  .header-cta {
    display: none;
  }

  .menu-button {
    width: 46px;
    height: 46px;
    padding: 0 10px;
    display: grid;
    align-content: center;
    gap: 5px;
    border: 0;
    border-radius: 50%;
    position: relative;
    z-index: 2;
    background: var(--wine);
    box-shadow: 0 8px 20px rgba(44, 41, 38, 0.16);
    cursor: pointer;
  }

  .menu-button span:not(.sr-only) {
    width: 100%;
    height: 2px;
    display: block;
    background: #fff;
    font-size: 0;
    transition: transform 180ms ease, opacity 180ms ease;
  }

  .menu-button[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .menu-button[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
  }

  .menu-button[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .global-nav {
    width: 100%;
    padding: 28px 24px 38px;
    position: absolute;
    inset: 100% 0 auto;
    display: none;
    justify-self: stretch;
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    background: rgba(255, 253, 251, 0.99);
    border-bottom: 1px solid var(--line);
    box-shadow: var(--shadow);
  }

  .global-nav[data-open] {
    display: flex;
  }

  .global-nav a {
    padding: 13px 4px;
    border-bottom: 1px solid var(--line);
    font-size: 15px;
  }

  .concern-grid,
  .flow-list {
    grid-template-columns: repeat(2, 1fr);
  }

  .method-intro {
    gap: 34px 50px;
  }

  .method-steps,
  .store-grid,
  .page-stores .store-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .goal-grid {
    grid-template-columns: 1fr 1fr;
  }

  .goal-card-primary {
    grid-column: 1 / -1;
  }

  .journal-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .journal-card:last-child {
    grid-column: 1 / -1;
  }

  .store-hero {
    grid-template-columns: 1fr 1fr;
  }

  .floating-cta {
    display: none;
  }
}

@media (max-width: 760px) {
  :root {
    --content: min(100% - 28px, 580px);
    --radius: 20px;
  }

  body {
    padding-bottom: 66px;
  }

  .preview-bar {
    min-height: 26px;
    padding: 4px 12px;
  }

  .preview-bar p {
    display: none;
  }

  .site-header {
    min-height: 70px;
    padding: 8px 74px 8px 14px;
  }

  .menu-button {
    position: absolute;
    top: 12px;
    right: 14px;
  }

  .brand img {
    width: 48px;
    height: 48px;
  }

  .brand b {
    font-size: 21px;
  }

  .hero {
    min-height: auto;
    display: block;
  }

  .hero-visual img {
    width: 100%;
    aspect-ratio: 941 / 1672;
    object-fit: cover;
  }

  .hero-actions-overlay {
    width: auto;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    right: 6.5%;
    bottom: 2.2%;
    left: 6.5%;
    gap: 8px;
  }

  .hero-actions-overlay .button {
    min-width: 0;
    min-height: 46px;
    padding: 10px 8px;
    font-size: 11px;
    line-height: 1.35;
  }

  .hero-facts-overlay {
    display: none;
  }

  .news-strip {
    min-height: auto;
    margin-top: 0;
    padding: 20px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 5px 16px;
  }

  .news-strip strong,
  .news-strip p {
    grid-column: 1 / -1;
  }

  .section {
    padding: 82px 0;
  }

  .section-heading {
    margin-bottom: 38px;
    text-align: left;
  }

  .section-heading h2,
  .split-heading h2,
  .method-intro h2,
  .stores-heading h2,
  .journal-heading h2,
  .faq-heading h2,
  .subpage-heading h2 {
    font-size: clamp(34px, 10vw, 46px);
  }

  .split-heading,
  .stores-heading,
  .journal-heading {
    margin-bottom: 38px;
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .concern-section {
    padding-top: 100px;
  }

  .concern-grid,
  .method-steps,
  .goal-grid,
  .price-grid,
  .store-grid,
  .page-stores .store-grid,
  .journal-grid,
  .flow-list,
  .journal-category-grid {
    grid-template-columns: 1fr;
  }

  .concern-card {
    min-height: 210px;
  }

  .method-intro {
    padding-bottom: 42px;
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .method-intro .eyebrow,
  .method-intro h2 {
    grid-column: auto;
  }

  .method-card > div:last-child {
    padding: 24px;
  }

  .goal-card-primary,
  .journal-card:last-child {
    grid-column: auto;
  }

  .goal-card {
    min-height: 240px;
  }

  .studio-story {
    min-height: auto;
    grid-template-columns: 1fr;
  }

  .studio-photo {
    min-height: 430px;
  }

  .studio-copy {
    padding: 70px 22px 78px;
  }

  .studio-copy h2 {
    font-size: clamp(36px, 11vw, 48px);
  }

  .price-inner {
    padding-right: 14px;
    padding-left: 14px;
  }

  .price-card-featured {
    transform: none;
  }

  .store-finder {
    padding: 20px;
    grid-template-columns: 1fr;
  }

  .store-filters {
    justify-content: flex-start;
  }

  .store-card {
    min-height: 210px;
  }

  .journal-card:last-child {
    grid-column: auto;
  }

  .journal-visual {
    min-height: 220px;
  }

  .faq-inner {
    grid-template-columns: 1fr;
    gap: 38px;
  }

  .faq-list summary {
    padding-right: 38px;
  }

  .final-cta {
    margin: 76px auto;
    padding: 42px 26px;
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .final-actions {
    width: 100%;
  }

  .site-footer {
    padding: 48px 22px 30px;
    grid-template-columns: 1fr;
  }

  .site-footer nav {
    grid-template-columns: repeat(2, 1fr);
  }

  .mobile-cta {
    min-height: 52px;
    position: fixed;
    z-index: 200;
    right: 9px;
    bottom: 7px;
    left: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(135deg, var(--rose-dark), var(--rose));
    box-shadow: 0 12px 32px rgba(64, 52, 33, 0.32);
    font-size: 13px;
    font-weight: 900;
  }

  .page-hero {
    padding: 64px 18px 82px;
  }

  .page-hero h1 {
    font-size: clamp(42px, 13vw, 58px);
  }

  .store-hero {
    display: flex;
    flex-direction: column-reverse;
  }

  .store-hero-photo {
    min-height: 430px;
  }

  .store-hero-copy {
    padding: 58px 20px;
  }

  .store-local-nav {
    top: 70px;
    justify-content: flex-start;
  }

  .store-feature-grid,
  .store-info-layout {
    grid-template-columns: 1fr;
  }

  .store-info-table {
    grid-template-columns: 90px 1fr;
  }

  .store-info-table dd {
    padding-left: 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }

  body[data-reveal-ready] .reveal {
    opacity: 1;
    transform: none;
  }
}

/* Brand TOP v3: clarity-first redesign */
.brand-home .section {
  padding-top: clamp(68px, 7vw, 96px);
  padding-bottom: clamp(68px, 7vw, 96px);
}

.brand-home .global-nav {
  gap: clamp(16px, 2vw, 30px);
}

.brand-home .global-nav a {
  font-size: 12px;
}

.hero-v4 {
  min-height: 0;
  aspect-ratio: 1672 / 941;
  background: #eee9e0;
}

.hero-v4 .hero-visual {
  position: absolute;
  inset: 0;
}

.hero-v4 .hero-visual::after {
  display: none;
}

.hero-v4 .hero-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero-v4 .hero-content {
  width: min(520px, 45vw);
  position: absolute;
  z-index: 2;
  bottom: 8.5%;
  left: max(32px, calc((100vw - 1180px) / 2));
}

.hero-kicker,
.section-label {
  margin: 0 0 13px;
  color: var(--rose-dark);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.hero-v4 h1 {
  font-family: var(--serif);
  font-size: clamp(50px, 5vw, 76px);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.04em;
}

.hero-v4 .hero-copy {
  max-width: 460px;
  margin-top: 22px;
  color: #49443e;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.9;
}

.hero-v4 .hero-actions {
  margin-top: 0;
}

.hero-v4 .hero-actions .button {
  min-height: 52px;
  padding-right: 25px;
  padding-left: 25px;
}

.hero-proof {
  margin: 21px 0 0;
  padding: 15px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  border-top: 1px solid rgba(44, 41, 38, 0.16);
  list-style: none;
}

.hero-proof li {
  position: relative;
  color: var(--ink-soft);
  font-size: 11px;
  font-weight: 800;
}

.hero-proof li::before {
  margin-right: 7px;
  color: var(--rose);
  content: "●";
  font-size: 7px;
}

.direct-heading {
  max-width: 780px;
  margin: 0 auto 38px;
  text-align: center;
}

.direct-heading h2,
.brand-home .faq-heading h2 {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: clamp(31px, 3.5vw, 48px);
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: -0.035em;
}

.direct-heading > p:last-child {
  max-width: 680px;
  margin: 15px auto 0;
  color: var(--muted);
  font-size: 14px;
}

.direct-heading-light,
.direct-heading-light > p:last-child {
  color: #fff;
}

.direct-heading-light .section-label {
  color: var(--gold-light);
}

.audience-section {
  padding-top: clamp(82px, 8vw, 112px) !important;
}

.audience-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

.audience-card {
  min-height: 168px;
  padding: 24px;
  border: 1px solid var(--line);
  background: #fff;
}

.audience-card-heading {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
}

.audience-card-heading > span {
  color: var(--rose);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 31px;
  font-weight: 700;
  line-height: 1;
}

.audience-card h3 {
  margin: 0;
  font-size: 18px;
  line-height: 1.45;
}

.audience-card p {
  margin: 17px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.75;
}

.reason-section {
  color: #fff;
  background: var(--wine-deep);
}

.reason-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

.reason-card {
  min-height: 220px;
  padding: 28px 24px;
  color: var(--ink);
  background: #fff;
  border-top: 4px solid var(--gold);
}

.reason-card-heading {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  align-items: start;
  gap: 9px;
}

.reason-card-heading > span {
  color: var(--rose-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 27px;
  font-weight: 900;
  line-height: 1;
}

.reason-card h3 {
  margin: 0;
  font-size: 17px;
  line-height: 1.48;
}

.reason-card p {
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.75;
}

.method-v3 {
  background: var(--paper-warm);
}

.method-intro-v3 {
  padding-bottom: 36px !important;
  display: block;
}

.method-intro-v3 h2 {
  max-width: 820px;
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: clamp(31px, 3.6vw, 48px);
  font-weight: 800;
  line-height: 1.42;
  letter-spacing: -0.035em;
}

.method-steps-v3 {
  padding-top: 0 !important;
}

.method-steps-v3 .method-card {
  box-shadow: none;
}

.method-steps-v3 .method-card > div:last-child {
  padding: 24px;
}

.method-steps-v3 .method-card h3 {
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 21px;
  font-weight: 800;
}

.method-card-heading {
  display: flex;
  align-items: center;
  gap: 12px;
}

.method-card-heading > p {
  margin: 0;
  padding-right: 12px;
  color: var(--rose);
  border-right: 1px solid var(--line);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.13em;
}

.price-v3 {
  background: var(--wine-deep);
}

.price-inner-v3 {
  padding-top: clamp(68px, 7vw, 96px) !important;
}

.price-inner-v4 {
  padding-top: clamp(54px, 6vw, 76px) !important;
}

.trial-campaign-banner {
  display: block;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.17);
  box-shadow: 0 28px 70px rgba(0, 0, 0, 0.3);
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.trial-campaign-banner:hover,
.trial-campaign-banner:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 34px 80px rgba(0, 0, 0, 0.38);
}

.trial-campaign-banner picture,
.trial-campaign-banner img {
  display: block;
  width: 100%;
}

.trial-campaign-banner img {
  height: auto;
}

.hero-actions-below {
  width: min(1086px, calc(100% - 48px));
  margin: 18px auto 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.hero-actions-below .button {
  min-height: 56px;
}

.hero-actions-below .button-secondary {
  color: #2b2927;
  background: #fffaf2;
  border-color: #c29545;
}

.hero-campaign-banner {
  width: min(1086px, calc(100% - 48px));
  margin: 18px auto 0;
  background: #fff8ef;
  border-color: #d8b574;
  border-radius: 28px;
  box-shadow: 0 18px 42px rgba(92, 63, 34, 0.16);
}

.hero-campaign-banner:hover,
.hero-campaign-banner:focus-visible {
  box-shadow: 0 22px 48px rgba(92, 63, 34, 0.22);
}

.campaign-note {
  margin: 14px 0 0;
  color: rgba(255, 255, 255, 0.66);
  font-size: 11px;
  line-height: 1.7;
}

.trial-price-card {
  padding: 32px 42px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  color: var(--ink);
  background: #fff;
  border-top: 5px solid var(--gold);
}

.trial-price-card > div {
  min-height: 150px;
  display: grid;
  align-content: center;
  justify-items: center;
  text-align: center;
}

.trial-price-card > div + div {
  border-left: 1px solid var(--line);
}

.trial-price-card p {
  margin: 0;
  color: var(--rose-dark);
  font-size: 11px;
  font-weight: 900;
}

.trial-price-card strong {
  margin: 4px 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(48px, 6vw, 76px);
  line-height: 1;
}

.trial-price-card strong small {
  margin-left: 4px;
  font-family: inherit;
  font-size: 16px;
}

.trial-price-card span {
  color: var(--muted);
  font-size: 12px;
}

.trial-price-card .button {
  margin-top: 12px;
  color: #fff;
  background: var(--wine);
}

.continuation-price {
  margin-top: 14px;
  padding: 27px 32px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 34px;
  border: 1px solid rgba(255, 255, 255, 0.17);
}

.continuation-price p,
.continuation-price h3 {
  margin: 0;
}

.continuation-price > div > p:first-child {
  color: var(--gold-light);
  font-size: 10px;
  font-weight: 900;
}

.continuation-price h3 {
  margin-top: 8px;
  font-size: 19px;
}

.continuation-price h3 strong {
  margin-left: 8px;
  font-size: 31px;
}

.continuation-price h3 small,
.continuation-price > div > p:last-child {
  color: rgba(255, 255, 255, 0.62);
  font-size: 11px;
}

.price-details {
  border-left: 1px solid rgba(255, 255, 255, 0.17);
  padding-left: 32px;
}

.price-details summary {
  cursor: pointer;
  font-size: 13px;
  font-weight: 900;
}

.price-details dl {
  margin: 20px 0 12px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px 20px;
  font-size: 12px;
}

.price-details dd {
  margin: 0;
  font-weight: 800;
}

.price-details p {
  color: rgba(255, 255, 255, 0.56);
  font-size: 10px;
}

.store-finder-v3 {
  padding: 22px;
  align-items: start;
  background: #fff;
}

.store-finder-v3 > div {
  display: grid;
  gap: 8px;
}

.filter-label {
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
}

.store-grid-v3 {
  grid-template-columns: repeat(3, 1fr);
}

.store-grid-v3 .store-card {
  min-height: 155px;
  padding: 22px;
}

.store-grid-v3 .store-card h3 {
  margin-top: 8px;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 20px;
  font-weight: 800;
}

.store-grid-v3 .store-card-footer {
  padding-top: 14px;
}

.journal-v3 {
  background: var(--paper-warm);
}

.journal-inner-v3 {
  padding-top: clamp(68px, 7vw, 96px) !important;
}

.journal-grid-v3 .journal-visual {
  min-height: 175px;
}

.journal-grid-v3 .journal-card > div:last-child {
  padding: 21px;
}

.journal-grid-v3 .journal-card h3 {
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 17px;
  font-weight: 800;
  line-height: 1.6;
}

.flow-list-v3 {
  grid-template-columns: repeat(5, 1fr);
}

.flow-list-v3 li {
  min-height: 185px;
  padding: 22px;
}

.flow-list-v3 h3 {
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 17px;
  font-weight: 800;
}

.brand-home .faq-section {
  background: #fff;
  border-top: 1px solid var(--line);
}

.brand-home .faq-inner {
  gap: clamp(40px, 6vw, 80px);
}

.final-cta-v3 {
  margin-top: clamp(64px, 7vw, 96px);
  margin-bottom: clamp(64px, 7vw, 96px);
  padding: clamp(45px, 5vw, 66px);
  background: linear-gradient(135deg, #8a6935, #b99455);
}

.final-cta-v3 h2 {
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: clamp(31px, 3.5vw, 46px);
  font-weight: 800;
}

@media (max-width: 1050px) {
  .audience-grid,
  .reason-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .flow-list-v3 {
    grid-template-columns: repeat(3, 1fr);
  }

  .store-grid-v3 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 760px) {
  .brand-home .section {
    padding-top: 58px;
    padding-bottom: 58px;
  }

  .hero-v4 {
    min-height: 0;
    aspect-ratio: 941 / 1672;
  }

  .hero-v4 .hero-visual img {
    object-position: center;
  }

  .hero-v4 .hero-content {
    width: auto;
    top: auto;
    right: 18px;
    bottom: 18px;
    left: 18px;
    color: #fff;
  }

  .hero-kicker {
    color: var(--gold-light);
    font-size: 10px;
  }

  .hero-v4 h1 {
    font-size: clamp(40px, 12vw, 54px);
    line-height: 1.22;
  }

  .hero-v4 .hero-copy {
    margin-top: 14px;
    color: rgba(255, 255, 255, 0.85);
    font-size: 12px;
    line-height: 1.75;
  }

  .hero-v4 .hero-actions {
    margin-top: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .hero-v4 .hero-actions .button {
    min-height: 46px;
    padding: 10px 8px;
    font-size: 10px;
  }

  .hero-v4 .button-secondary {
    color: #fff;
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.45);
  }

  .hero-proof {
    margin-top: 15px;
    padding-top: 12px;
    border-color: rgba(255, 255, 255, 0.25);
    gap: 7px 14px;
  }

  .hero-proof li {
    color: rgba(255, 255, 255, 0.82);
    font-size: 9px;
  }

  .direct-heading {
    margin-bottom: 28px;
    text-align: left;
  }

  .direct-heading h2,
  .brand-home .faq-heading h2 {
    font-size: clamp(28px, 8.5vw, 38px);
  }

  .direct-heading > p:last-child {
    margin-top: 12px;
    font-size: 13px;
  }

  .audience-section {
    padding-top: 58px !important;
  }

  .audience-grid,
  .reason-grid,
  .method-intro-v3,
  .trial-price-card,
  .continuation-price,
  .store-grid-v3,
  .flow-list-v3 {
    grid-template-columns: 1fr;
  }

  .audience-grid,
  .reason-grid {
    gap: 8px;
  }

  .audience-card {
    min-height: 0;
    padding: 20px;
  }

  .audience-card-heading {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 10px;
  }

  .audience-card-heading > span {
    font-size: 27px;
  }

  .audience-card h3 {
    margin: 0;
    font-size: 17px;
  }

  .audience-card p {
    margin-top: 11px;
    font-size: 11px;
  }

  .reason-card {
    min-height: 0;
    padding: 22px;
  }

  .reason-card h3 {
    margin: 0;
    font-size: 18px;
  }

  .reason-card-heading {
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 9px;
  }

  .reason-card-heading > span {
    font-size: 26px;
  }

  .reason-card p {
    margin-top: 13px;
  }

  .method-intro-v3 {
    padding-bottom: 26px !important;
  }

  .method-intro-v3 h2 {
    font-size: clamp(28px, 8.5vw, 38px);
  }

  .method-card-heading {
    gap: 9px;
  }

  .method-card-heading > p {
    padding-right: 9px;
  }

  .price-inner-v4 {
    padding: 34px 14px 52px !important;
  }

  .campaign-note {
    margin-top: 10px;
    font-size: 10px;
  }

  .trial-price-card {
    padding: 20px;
  }

  .trial-price-card > div {
    min-height: 132px;
  }

  .trial-price-card > div + div {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .continuation-price {
    padding: 22px;
    gap: 22px;
  }

  .continuation-price h3 strong {
    display: block;
    margin: 7px 0 2px;
  }

  .price-details {
    padding-top: 20px;
    padding-left: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.17);
    border-left: 0;
  }

  .store-finder-v3 {
    padding: 18px;
  }

  .store-grid-v3 .store-card {
    min-height: 140px;
  }

  .journal-grid-v3 .journal-visual {
    min-height: 180px;
  }

  .flow-list-v3 li {
    min-height: 0;
    padding: 20px;
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 12px;
  }

  .flow-list-v3 li > div {
    margin-top: 0;
  }

  .final-cta-v3 {
    margin-top: 58px;
    margin-bottom: 58px;
  }
}

/* Benchmark-led TOP: clear problem -> solution -> proof -> price -> action */
.benchmark-home {
  background: #fffdfa;
}

.benchmark-home .mobile-only {
  display: none;
}

.benchmark-section {
  padding: clamp(72px, 8vw, 112px) max(24px, calc((100vw - 1086px) / 2));
}

.benchmark-section[id] {
  scroll-margin-top: 80px;
}

.benchmark-heading {
  max-width: 760px;
  margin: 0 auto 42px;
  text-align: center;
}

.benchmark-heading > p,
.about-lead > div:first-child > p {
  margin: 0 0 10px;
  color: var(--rose-dark);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.18em;
}

.benchmark-heading h2,
.about-lead h2 {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: clamp(34px, 4.2vw, 54px);
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: -0.05em;
}

.benchmark-heading > span {
  display: block;
  margin-top: 15px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.8;
}

.problem-section {
  padding-top: clamp(72px, 8vw, 102px);
}

.problem-grid,
.reason-picture-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.problem-card,
.reason-picture-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 12px 30px rgba(35, 28, 24, 0.07);
}

.problem-card img,
.reason-picture-card img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  display: block;
  object-fit: cover;
}

.problem-card > div,
.reason-picture-card > div {
  padding: 22px 20px 24px;
}

.problem-card p {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--rose-dark);
  font-size: 11px;
  font-weight: 900;
}

.problem-card p b {
  font-size: 22px;
  line-height: 1;
}

.problem-card h3,
.reason-picture-card h3 {
  margin: 14px 0 10px;
  font-size: 18px;
  line-height: 1.5;
}

.problem-card span,
.reason-picture-card p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.75;
}

.solution-bridge {
  width: min(820px, 100%);
  margin: 48px auto 0;
  padding: 28px 36px;
  display: grid;
  grid-template-columns: 180px 1fr;
  align-items: center;
  gap: 26px;
  color: #fff;
  background: var(--wine-deep);
  box-shadow: 14px 14px 0 var(--gold);
}

.solution-bridge span {
  padding-right: 24px;
  border-right: 1px solid rgba(255, 255, 255, 0.26);
  color: var(--gold-light);
  font-size: 13px;
  font-weight: 900;
  text-align: center;
}

.solution-bridge strong {
  font-size: clamp(22px, 2.8vw, 34px);
  line-height: 1.45;
}

.problem-solution-section {
  padding: clamp(68px, 7vw, 100px) max(24px, calc((100vw - 1180px) / 2));
  position: relative;
  overflow: hidden;
  background: #edf3f7;
}

.problem-side-label {
  position: absolute;
  z-index: 3;
  top: clamp(68px, 7vw, 100px);
  left: max(16px, calc((100vw - 1240px) / 2));
  width: 72px;
  padding: 18px 0;
  display: grid;
  justify-items: center;
  gap: 20px;
  color: #77736f;
  background: #edf3f7;
  border-radius: 0 0 8px 8px;
  writing-mode: vertical-rl;
}

.problem-side-label span {
  font-family: Arial, sans-serif;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.14em;
  white-space: nowrap;
}

.problem-side-label b {
  color: #f06d46;
  font-family: Arial, sans-serif;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: -0.3em;
}

.problem-showcase {
  width: min(950px, calc(100% - 64px));
  margin-inline: auto;
}

.problem-main-image {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 7;
  display: block;
  object-fit: cover;
  object-position: center 38%;
}

.problem-showcase-heading {
  padding: 34px 0 32px;
}

.problem-showcase-heading p,
.problem-showcase-heading h2 {
  margin: 0;
}

.problem-showcase-heading p {
  color: #4d4b49;
  font-size: 14px;
  font-weight: 800;
}

.problem-showcase-heading h2 {
  margin-top: 7px;
  color: #30302f;
  font-size: clamp(30px, 3.5vw, 44px);
  font-weight: 900;
  line-height: 1.32;
  letter-spacing: -0.04em;
}

.problem-solution-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 28px 20px;
}

.problem-solution-card {
  background: #fff;
  border: 0;
  border-radius: 8px;
  box-shadow: 0 12px 30px rgba(49, 67, 78, 0.13);
  overflow: visible;
}

.problem-summary {
  min-height: 126px;
  padding: 30px 26px 24px;
  position: relative;
  display: grid;
  align-content: center;
  text-align: center;
}

.problem-summary > span {
  min-width: 120px;
  padding: 7px 18px;
  position: absolute;
  top: 0;
  left: 50%;
  color: #fff;
  background: #787776;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  transform: translate(-50%, -50%);
}

.problem-summary > strong {
  color: #3b3a39;
  font-size: 18px;
  font-weight: 900;
  line-height: 1.65;
}

.problem-summary::before {
  width: 24px;
  height: 24px;
  position: absolute;
  z-index: 1;
  bottom: -12px;
  left: 50%;
  background: #f7f9fa;
  content: "";
  transform: translateX(-50%) rotate(45deg);
}

.problem-answer {
  padding: 30px 24px 24px;
  display: grid;
  grid-template-columns: 138px 1fr;
  align-items: center;
  gap: 22px;
  background: #f7f9fa;
  border-radius: 0 0 8px 8px;
}

.problem-answer img {
  width: 100%;
  height: 150px;
  display: block;
  object-fit: cover;
  border-radius: 4px;
}

.problem-answer p {
  margin: 0;
  color: #474543;
  font-size: 13px;
  line-height: 1.85;
}

.problem-answer p b {
  color: #2e2d2c;
  font-size: 15px;
  text-decoration: underline;
  text-decoration-color: #f06d46;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

.about-point-section {
  padding: 64px 24px 96px;
  position: relative;
  overflow: hidden;
  background: #edf3f7;
  scroll-margin-top: 80px;
}

.about-section.about-point-section {
  background: #edf3f7;
}

.about-point-section::before {
  width: min(1480px, 142vw);
  height: 500px;
  position: absolute;
  top: -276px;
  left: 50%;
  background: #fff;
  border-radius: 50%;
  content: "";
  transform: translateX(-50%);
}

.about-point-inner {
  width: min(920px, 100%);
  margin-inline: auto;
  position: relative;
  z-index: 1;
}

.about-method-intro {
  max-width: 720px;
  margin: -30px auto 58px;
  text-align: center;
}

.about-method-intro img {
  width: 58px;
  height: 58px;
  margin-inline: auto;
  display: block;
  object-fit: contain;
}

.about-method-intro h2,
.about-method-intro p {
  margin: 0;
}

.about-method-intro h2 {
  margin-top: 12px;
  color: #393837;
  font-size: clamp(24px, 3vw, 36px);
  font-weight: 900;
  line-height: 1.35;
}

.about-method-intro p {
  margin-top: 33px;
  position: relative;
  top: 12px;
  color: #4f4d4b;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.8;
}

.top-roots-entry {
  width: min(760px, 100%);
  margin: 0 auto 38px;
  padding: 18px 22px;
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 24px;
  align-items: center;
  color: #2e2d2c;
  background: #fff;
  border: 1px solid #ded3c8;
  border-left: 4px solid #f35e48;
  text-decoration: none;
  transition: border-color 180ms ease, transform 180ms ease;
}

.top-roots-entry:hover,
.top-roots-entry:focus-visible {
  border-color: #f35e48;
  transform: translateY(-2px);
}

.top-roots-entry > img {
  width: 100%;
  max-width: 132px;
  height: 132px;
  aspect-ratio: 1;
  display: block;
  object-fit: contain;
}

.top-roots-entry__copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 7px;
}

.top-roots-entry__copy small {
  color: #d34f3b;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.14em;
}

.top-roots-entry__copy strong {
  font-size: 19px;
  line-height: 1.5;
}

.top-roots-entry__copy > span {
  color: #5b5855;
  font-size: 12px;
  line-height: 1.75;
}

.top-roots-entry__copy b {
  margin-top: 3px;
  color: #d34f3b;
  font-size: 12px;
}

.about-point-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.about-point-card {
  overflow: hidden;
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 10px 24px rgba(49, 67, 78, 0.15);
}

.about-point-card > img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  display: block;
  filter: saturate(1.08) contrast(1.04);
  object-fit: cover;
}

.about-point-card > div {
  min-height: 126px;
  padding: 12px 18px 20px;
  border-top: 3px solid #f06d46;
}

.about-point-card span,
.about-point-card h3 {
  margin: 0;
}

.about-point-card span {
  color: #85817d;
  font-family: Arial, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.03em;
}

.about-point-card h3 {
  margin-top: 7px;
  color: #3b3937;
  font-size: 18px;
  font-weight: 900;
  line-height: 1.55;
}

.about-section {
  background: var(--paper-warm);
}

.about-lead {
  margin-bottom: 44px;
  display: grid;
  grid-template-columns: 0.72fr 1.28fr;
  align-items: end;
  gap: clamp(32px, 5vw, 70px);
}

.about-lead > div:last-child {
  display: grid;
  gap: 16px;
}

.about-lead > div:last-child strong {
  font-size: clamp(20px, 1.75vw, 24px);
  line-height: 1.4;
  white-space: nowrap;
}

.about-lead > div:last-child span {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.9;
}

.feature-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.feature-card {
  min-height: 170px;
  padding: 28px;
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: 20px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 10px 24px rgba(59, 50, 45, 0.05);
}

.feature-card > span {
  color: var(--rose-dark);
  font-size: 32px;
  font-weight: 900;
  line-height: 1;
}

.feature-card p,
.feature-card h3,
.feature-card small {
  margin: 0;
}

.feature-card p {
  color: var(--rose-dark);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.04em;
}

.feature-card h3 {
  margin-top: 8px;
  font-size: 20px;
  line-height: 1.45;
}

.feature-card small {
  display: block;
  margin-top: 11px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.75;
}

.benchmark-reason-section {
  background: #fff;
}

.reason-picture-card > div > b {
  color: var(--rose-dark);
  font-size: 24px;
}

.reason-picture-card h3 {
  margin-top: 10px;
}

.reason-picture-card p {
  margin: 0;
}

.reason-showcase-section {
  padding: 72px 24px 96px;
  background: #edf3f7;
  scroll-margin-top: 80px;
}

.reason-showcase-inner {
  width: min(950px, 100%);
  margin-inline: auto;
}

.reason-showcase-hero {
  position: relative;
  overflow: hidden;
  background: #fff;
  aspect-ratio: 16 / 6.5;
}

.reason-showcase-hero::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(248, 251, 252, 0.98) 0%, rgba(248, 251, 252, 0.9) 34%, rgba(248, 251, 252, 0.18) 67%, rgba(248, 251, 252, 0) 100%);
  content: "";
}

.reason-showcase-hero > img {
  width: 100%;
  height: 100%;
  display: block;
  filter: saturate(1.08) contrast(1.04);
  object-fit: cover;
  object-position: center 38%;
}

.reason-showcase-hero > div {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: clamp(24px, 5vw, 62px);
  transform: translateY(-50%);
}

.reason-showcase-hero p,
.reason-showcase-hero h2 {
  margin: 0;
}

.reason-showcase-hero p {
  color: #575654;
  font-family: Arial, sans-serif;
  font-size: clamp(38px, 5vw, 62px);
  font-weight: 300;
  letter-spacing: 0.03em;
  line-height: 1;
}

.reason-showcase-hero h2 {
  margin-top: 16px;
  color: #343331;
  font-size: clamp(18px, 2.1vw, 26px);
  font-weight: 900;
}

.reason-card-grid {
  margin-top: 18px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.reason-card {
  min-height: 0;
  padding: 0;
  overflow: hidden;
  color: #3b3937;
  background: #fff;
  border-top: 0;
  border-radius: 6px;
  box-shadow: 0 10px 24px rgba(49, 67, 78, 0.15);
}

.reason-card > img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  display: block;
  filter: saturate(1.08) contrast(1.04);
  object-fit: cover;
}

.reason-card > div {
  min-height: 126px;
  padding: 12px 16px 20px;
  border-top: 3px solid #f06d46;
}

.reason-card span,
.reason-card h3 {
  margin: 0;
}

.reason-card span {
  color: #85817d;
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-weight: 500;
}

.reason-card h3 {
  margin-top: 7px;
  color: #3b3937;
  font-size: 16px;
  font-weight: 900;
  line-height: 1.55;
}

.transformation-section {
  padding: 92px 24px 100px;
  background: #fff;
  scroll-margin-top: 80px;
}

.transformation-inner {
  width: min(960px, 100%);
  margin-inline: auto;
}

.transformation-heading {
  margin-bottom: 42px;
}

.transformation-heading p,
.transformation-heading h2 {
  margin: 0;
}

.transformation-heading p {
  color: #575654;
  font-family: Arial, sans-serif;
  font-size: clamp(42px, 5vw, 64px);
  font-weight: 300;
  letter-spacing: 0.02em;
  line-height: 1;
}

.transformation-heading h2 {
  margin-top: 16px;
  color: #3a3938;
  font-size: clamp(18px, 2.2vw, 26px);
  font-weight: 900;
}

.transformation-grid {
  width: min(900px, 100%);
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
}

.transformation-card {
  padding: 28px 20px 22px;
  background: #f8f7f5;
  border-radius: 18px;
  box-shadow: 0 5px 12px rgba(53, 46, 40, 0.14);
}

.transformation-card h3,
.transformation-card h4,
.transformation-card p {
  margin: 0;
}

.transformation-card h3 {
  color: #f05b3d;
  font-size: 20px;
  font-weight: 900;
  line-height: 1.45;
  text-align: center;
}

.transformation-profile {
  margin-top: 5px !important;
  color: #494745;
  font-size: 12px;
  font-weight: 800;
  text-align: center;
}

.transformation-evidence-card {
  padding: 26px 22px 24px;
  overflow: hidden;
  background: #fbfaf8;
}

.transformation-evidence-image {
  width: 100%;
  height: auto;
  margin-top: 20px;
  display: block;
  border: 1px solid #e6dfd8;
  border-radius: 12px;
}

.transformation-photos {
  margin-top: 30px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}

.transformation-photos > div {
  min-height: 190px;
  padding: 22px 10px 14px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 12px;
  color: #686461;
  background: linear-gradient(145deg, #ede9e3, #fff);
  border: 1px solid #e0dad3;
  border-radius: 10px;
  text-align: center;
}

.transformation-photos b {
  font-family: Arial, sans-serif;
  font-size: 12px;
  letter-spacing: 0.05em;
}

.transformation-photos span {
  font-size: 11px;
  font-weight: 800;
}

.transformation-photos i {
  color: #f05b3d;
  font-size: 22px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: -0.25em;
}

.transformation-card dl {
  margin: 10px 0 0;
  display: grid;
  grid-template-columns: 1fr auto;
  overflow: hidden;
  background: #fff;
  border: 1px solid #ded8d1;
  border-radius: 8px;
}

.transformation-card dt,
.transformation-card dd {
  margin: 0;
  padding: 8px 10px;
  border-bottom: 1px solid #e4dfd8;
  font-size: 12px;
}

.transformation-card dt {
  color: #fff;
  background: #706d69;
  font-weight: 800;
}

.transformation-card dd {
  color: #f05b3d;
  font-weight: 900;
  text-align: right;
}

.transformation-card dt:nth-last-of-type(1),
.transformation-card dd:last-child {
  border-bottom: 0;
}

.transformation-card h4 {
  margin-top: 18px;
  color: #42403e;
  font-size: 15px;
  font-weight: 900;
}

.transformation-comment {
  margin-top: 8px !important;
  color: #66615d;
  font-size: 11px;
  line-height: 1.75;
}

.transformation-note {
  margin: 22px 0 0;
  color: #746f6a;
  font-size: 10px;
  line-height: 1.8;
  text-align: center;
}

.customer-voice-section {
  padding: 96px 24px 104px;
  background: #f8f6f3;
  scroll-margin-top: 80px;
}

.customer-voice-inner {
  width: min(960px, 100%);
  margin-inline: auto;
}

.customer-voice-heading {
  margin-bottom: 34px;
}

.customer-voice-heading p,
.customer-voice-heading h2,
.customer-voice-heading span,
.customer-voice-heading small {
  display: block;
  margin: 0;
}

.customer-voice-heading p {
  color: #f05b3d;
  font-family: Arial, sans-serif;
  font-size: 18px;
  letter-spacing: 0.08em;
}

.customer-voice-heading h2 {
  margin-top: 12px;
  color: #3a3938;
  font-size: clamp(34px, 4.4vw, 52px);
  font-weight: 900;
  letter-spacing: 0.06em;
  line-height: 1.25;
}

.customer-voice-heading span {
  margin-top: 10px;
  color: #5e5a56;
  font-size: 14px;
  font-weight: 700;
}

.customer-voice-heading small {
  margin-top: 7px;
  color: #7b7671;
  font-size: 10px;
}

.customer-voice-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.customer-voice-card {
  display: grid;
  overflow: hidden;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 5px 16px rgba(62, 54, 47, 0.08);
}

.customer-voice-card-featured {
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr;
}

.customer-voice-card-secondary {
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr;
}

.customer-voice-copy {
  padding: 24px 26px 22px;
  display: grid;
  align-content: start;
  background: linear-gradient(145deg, #fff, #fff8f3);
}

.customer-voice-meta {
  display: flex;
  align-items: center;
  gap: 14px;
}

.customer-voice-meta b {
  color: #f05b3d;
  font-family: Arial, sans-serif;
  font-size: 19px;
  font-weight: 500;
}

.customer-voice-meta span {
  padding: 5px 12px;
  color: #4d4a47;
  border: 1px solid #77716c;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
}

.customer-voice-copy h3,
.customer-voice-copy p {
  margin: 0;
}

.customer-voice-copy h3 {
  margin-top: 15px;
  color: #3c3936;
  font-size: clamp(19px, 2vw, 24px);
  font-weight: 900;
  line-height: 1.55;
  text-decoration-line: underline;
  text-decoration-color: #f6d6cf;
  text-decoration-thickness: 7px;
  text-underline-offset: -3px;
  text-decoration-skip-ink: none;
}

.customer-voice-copy p {
  margin-top: 10px;
  color: #6d6863;
  font-size: 11px;
}

.customer-voice-copy dl {
  margin: 28px 0 0;
  display: grid;
  gap: 10px;
}

.customer-voice-copy dl > div {
  display: grid;
  grid-template-columns: 90px 1fr;
  align-items: baseline;
  gap: 10px;
}

.customer-voice-copy dt,
.customer-voice-copy dd {
  margin: 0;
}

.customer-voice-copy dt {
  color: #716c67;
  font-size: 11px;
  font-weight: 800;
}

.customer-voice-copy dd {
  color: #4e4a46;
  font-family: Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
}

.customer-voice-copy dd span,
.customer-voice-copy dd strong {
  font-size: 25px;
}

.customer-voice-copy dd strong,
.customer-voice-copy dd i {
  color: #f05b3d;
}

.customer-voice-copy dd i {
  margin-inline: 7px;
  font-size: 22px;
  font-style: normal;
  font-weight: 400;
}

.customer-voice-card figure {
  height: 610px;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: #f1eeea;
}

.customer-voice-card img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  object-position: center;
}

.customer-voice-card-secondary figure {
  min-height: 0;
}

.customer-voice-source-note {
  margin: 16px 0 0;
  color: #77716c;
  font-size: 10px;
  line-height: 1.7;
  text-align: right;
}

.voice-reference-section .customer-voice-inner {
  width: min(1040px, 100%);
}

.voice-reference-section .customer-voice-heading {
  margin-bottom: 30px;
}

.voice-reference-section .customer-voice-heading small {
  margin-top: 12px;
  color: #77716c;
  font-size: 10px;
  line-height: 1.7;
}

.voice-reference-featured,
.voice-reference-card {
  overflow: hidden;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 6px 18px rgba(62, 54, 47, 0.07);
}

.voice-reference-featured {
  display: grid;
  grid-template-columns: minmax(320px, 0.88fr) minmax(0, 1.12fr);
  align-items: stretch;
}

.voice-reference-copy {
  padding: 38px 34px;
  display: grid;
  align-content: center;
}

.voice-reference-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
}

.voice-reference-meta b {
  color: #ef5838;
  font-family: Arial, sans-serif;
  font-size: 19px;
  font-weight: 500;
}

.voice-reference-meta span,
.voice-reference-meta em {
  padding: 4px 11px;
  color: #4d4a47;
  border: 1px solid #77716c;
  border-radius: 999px;
  font-size: 9px;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
}

.voice-reference-meta em {
  color: #b66a29;
  background: #fff3df;
  border-color: #e2bd83;
}

.voice-reference-copy h3,
.voice-reference-card h3,
.voice-reference-copy p,
.voice-reference-card p {
  margin: 0;
}

.voice-reference-copy h3,
.voice-reference-card h3 {
  color: #3c3936;
  font-weight: 900;
  line-height: 1.65;
  text-decoration-line: underline;
  text-decoration-color: #f6d6cf;
  text-decoration-thickness: 7px;
  text-underline-offset: -3px;
  text-decoration-skip-ink: none;
}

.voice-reference-copy h3 {
  margin-top: 21px;
  font-size: clamp(20px, 2vw, 24px);
}

.voice-reference-profile {
  margin-top: 10px !important;
  color: #77716c;
  font-size: 10px;
}

.voice-reference-quote {
  margin-top: 24px !important;
  color: #504c48;
  font-size: 13px;
  line-height: 2;
}

.voice-reference-featured figure {
  min-height: 370px;
  margin: 0;
  position: relative;
  overflow: hidden;
  background: #eeeae5;
}

.voice-reference-featured figure img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}

.voice-reference-featured figcaption {
  padding: 6px 10px;
  position: absolute;
  right: 12px;
  bottom: 12px;
  color: #655f59;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 999px;
  font-size: 9px;
}

.voice-reference-grid {
  margin-top: 18px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.voice-reference-card {
  display: flex;
  flex-direction: column;
}

.voice-reference-card-copy {
  min-height: 188px;
  padding: 25px 24px 22px;
}

.voice-reference-card h3 {
  margin-top: 18px;
  font-size: 16px;
}

.voice-reference-card > img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  display: block;
  object-fit: cover;
  object-position: center;
}

.voice-reference-card > p {
  padding: 20px 24px 26px;
  color: #504c48;
  font-size: 12px;
  line-height: 1.95;
}

@media (max-width: 760px) {
  .voice-reference-featured {
    grid-template-columns: 1fr;
  }

  .voice-reference-copy {
    padding: 26px 22px 24px;
  }

  .voice-reference-copy h3 {
    font-size: 20px;
  }

  .voice-reference-quote {
    margin-top: 18px !important;
    font-size: 12px;
  }

  .voice-reference-featured figure {
    min-height: 260px;
  }

  .voice-reference-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .voice-reference-card-copy {
    min-height: 0;
    padding: 23px 20px 20px;
  }

  .voice-reference-card > img {
    aspect-ratio: 16 / 10;
  }

  .voice-reference-card > p {
    padding: 18px 20px 22px;
  }
}

.pipi-program-section {
  padding: 96px 24px 104px;
  background: #fffdfa;
  scroll-margin-top: 80px;
}

.pipi-program-grid {
  width: min(1080px, 100%);
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 48px 50px;
}

.pipi-program-heading {
  padding: 6px 0 24px;
}

.pipi-program-heading p,
.pipi-program-heading h2,
.pipi-program-heading span,
.pipi-program-heading b {
  margin: 0;
}

.pipi-program-heading p {
  color: #f05b3d;
  font-family: Arial, sans-serif;
  font-size: 14px;
  letter-spacing: 0.12em;
}

.pipi-program-heading h2 {
  margin-top: 18px;
  color: #3b3a39;
  font-size: clamp(34px, 4.2vw, 52px);
  font-weight: 900;
  line-height: 1.4;
}

.pipi-program-heading span,
.pipi-program-heading b {
  display: block;
  margin-top: 28px;
  color: #4d4946;
  font-size: 14px;
  line-height: 1.9;
}

.pipi-program-heading b {
  margin-top: 12px;
  color: #f05b3d;
}

.pipi-program-card {
  position: relative;
  overflow: visible;
  background: #fff;
  border: 2px solid #f05b3d;
  border-radius: 18px;
}

.pipi-program-card > b {
  width: 92px;
  height: 92px;
  position: absolute;
  z-index: 2;
  top: -22px;
  right: -20px;
  display: grid;
  place-items: center;
  color: #fff;
  background: #f05b3d;
  border-radius: 50%;
  font-size: 17px;
}

.pipi-program-card header {
  padding: 17px 38px 13px;
  border-bottom: 2px solid #f05b3d;
}

.pipi-program-card header span,
.pipi-program-card header h3 {
  margin: 0;
  color: #f05b3d;
}

.pipi-program-card header span {
  font-family: Arial, sans-serif;
  font-size: 18px;
  letter-spacing: 0.04em;
}

.pipi-program-card header h3 {
  margin-top: 6px;
  font-size: 23px;
  font-weight: 900;
}

.pipi-program-card > div {
  padding: 30px;
  display: grid;
  grid-template-columns: 1fr 0.9fr;
  align-items: center;
  gap: 28px;
}

.pipi-program-card img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  display: block;
  filter: saturate(1.08) contrast(1.04);
  object-fit: cover;
  border-radius: 0 22px 22px 0;
}

.pipi-program-card p {
  margin: 0;
  color: #494644;
  font-size: 13px;
  line-height: 1.9;
}

.pipi-program-card a {
  display: inline-block;
  margin-top: 14px;
  color: #f05b3d;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.benchmark-price-section {
  color: #2d2724;
  background: #f5eee3;
}

.price-section-heading h2 {
  color: #241f1c;
  font-weight: 900;
}

.price-section-heading > span {
  color: #5f5650;
}

.price-section-heading::after {
  width: 64px;
  height: 4px;
  margin: 24px auto 0;
  display: block;
  background: #c49542;
  border-radius: 999px;
  content: "";
}

.price-panel {
  max-width: 980px;
  margin-inline: auto;
  padding: clamp(34px, 5vw, 62px);
  background: #fff;
  border: 1px solid #eadfce;
  border-radius: 28px;
  box-shadow: 0 24px 60px rgba(74, 56, 38, 0.1);
}

.plan-heading {
  margin: 0 0 30px;
  text-align: center;
}

.plan-heading p,
.plan-heading h3 {
  margin: 0;
}

.plan-heading p {
  width: fit-content;
  margin-inline: auto;
  padding: 6px 18px;
  color: #78571f;
  background: #f5e8ce;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.plan-heading h3 {
  margin-top: 14px;
  color: #241f1c;
  font-size: clamp(22px, 2.6vw, 32px);
  font-weight: 900;
}

.plan-heading > span {
  margin-top: 10px;
  display: block;
  color: #71665d;
  font-size: 13px;
  line-height: 1.8;
}

.plan-benefits {
  max-width: 820px;
  margin: 0 auto 24px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  list-style: none;
  border: 1px solid #ead8c0;
  border-radius: 18px;
  background: #fffaf3;
  overflow: hidden;
}

.plan-benefits li {
  min-height: 96px;
  padding: 18px 12px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 4px;
  text-align: center;
}

.plan-benefits li + li {
  border-left: 1px solid #ead8c0;
}

.plan-benefits strong {
  color: #e95630;
  font-size: 24px;
  font-weight: 900;
  line-height: 1;
}

.plan-benefits strong small {
  margin-left: 2px;
  font-size: 12px;
}

.plan-benefits span {
  color: #6c5e54;
  font-size: 11px;
  font-weight: 800;
}

.plan-grid {
  max-width: 940px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 14px;
}

.plan-card {
  min-height: 360px;
  padding: 34px 20px 22px;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-align: center;
  color: #241f1c;
  background: #fff;
  border: 1px solid #e6d6c1;
  border-radius: 22px;
  box-shadow: 0 14px 32px rgba(74, 56, 38, 0.09);
  overflow: hidden;
}

.plan-card::before {
  height: 7px;
  position: absolute;
  inset: 0 0 auto;
  background: #e6a365;
  content: "";
}

.plan-card-standard {
  background: #fffdf9;
}

.plan-card-recommended {
  padding-top: 58px;
  background: #fff4ea;
  border: 2px solid #f06d46;
  box-shadow: 0 18px 38px rgba(224, 92, 52, 0.18);
}

.plan-card-recommended::before {
  background: #f06d46;
}

.plan-card-unlimited {
  background: #fffaf3;
  border-color: #d4ad70;
}

.plan-card-unlimited::before {
  background: #b78a45;
}

.plan-card-recommended > b {
  padding: 8px 18px;
  position: absolute;
  top: 16px;
  left: 50%;
  color: #fff;
  background: #f06d46;
  border-radius: 999px;
  box-shadow: 0 7px 16px rgba(224, 92, 52, 0.24);
  font-size: 10px;
  white-space: nowrap;
  transform: translateX(-50%);
}

.plan-card p,
.plan-card h3,
.plan-card strong,
.plan-card span {
  margin: 0;
}

.plan-card p {
  color: #806126;
  font-size: 12px;
  font-weight: 900;
}

.plan-card-recommended p {
  color: #c94927;
}

.plan-card h3 {
  margin-top: 9px;
  font-size: 22px;
  font-weight: 900;
}

.plan-first-month {
  margin-top: 22px;
  padding: 18px 10px 16px;
  position: relative;
  display: grid;
  justify-items: center;
  background: #fff;
  border: 1px solid #f3c9b8;
  border-radius: 16px;
}

.plan-first-month > span {
  margin: 0;
  color: #e95630;
  font-size: 12px;
  font-weight: 900;
}

.plan-first-month strong {
  margin-top: 8px;
  color: #e95630;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1;
  white-space: nowrap;
}

.plan-first-month strong small {
  margin-left: 3px;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 10px;
}

.plan-first-month em {
  margin-top: 10px;
  padding: 5px 12px;
  color: #fff;
  background: #f06d46;
  border-radius: 999px;
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
}

.plan-regular-price {
  margin-top: 16px;
  display: grid;
  justify-items: center;
  gap: 5px;
}

.plan-regular-price span {
  margin: 0;
  color: #786b62;
  font-size: 10px;
  font-weight: 800;
}

.plan-regular-price b {
  font-size: 15px;
}

.plan-regular-price small {
  color: #6f645c;
  font-size: 10px;
}

.plan-total-details {
  max-width: 620px;
  margin: 24px auto 0;
  color: #2d2724;
  background: #fff;
  border: 1px solid #655b55;
  border-radius: 12px;
  overflow: hidden;
}

.plan-total-details summary {
  padding: 16px 20px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
  text-align: center;
}

.plan-total-details[open] summary {
  border-bottom: 1px solid #d8cec1;
}

.plan-total-details dl {
  margin: 0;
  padding: 0 20px 18px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px 22px;
  font-size: 12px;
}

.plan-total-details dd {
  margin: 0;
  font-weight: 800;
}

.price-caution {
  max-width: 820px;
  margin: 22px auto 0;
  color: #716760;
  font-size: 10px;
  line-height: 1.8;
  text-align: center;
}

.benchmark-price-section .section-action {
  margin-top: 28px;
}

.button-soft-accent {
  color: #fff;
  background: #f06d46;
  border-color: #f06d46;
  border-radius: 999px;
  box-shadow: 0 12px 26px rgba(224, 92, 52, 0.24);
}

.button-soft-accent:hover,
.button-soft-accent:focus-visible {
  color: #fff;
  background: #db5934;
  border-color: #db5934;
  box-shadow: 0 15px 30px rgba(224, 92, 52, 0.3);
}

/* LP pricing sequence: official PiPi subscription explanation, value comparison, plans and EMS trial. */
.lp-price-section {
  color: #24201e;
  background: #fff;
  overflow: clip;
}

.lp-price-system {
  min-height: 0;
  padding: clamp(42px, 4.23vw, 65px) 24px clamp(36px, 3.58vw, 55px);
  display: grid;
  justify-items: center;
  background-color: #fff;
  background-image: url("/assets/images/lp-price/system-bg-02.png"), url("/assets/images/lp-price/system-bg-01.png");
  background-position: right bottom, left top;
  background-repeat: no-repeat;
  background-size: min(38.54vw, 592px) auto, min(38.41vw, 590px) auto;
  text-align: center;
}

.lp-price-kicker {
  width: min(18.36vw, 282px);
  min-width: 0;
  min-height: min(5.54vw, 85px);
  margin: 0;
  padding: 12px 24px;
  position: relative;
  display: grid;
  place-items: center;
  color: #26211f;
  background: #fff;
  box-shadow: 3px 5px 12px rgba(69, 54, 45, 0.22);
  font-size: clamp(18px, 1.37vw, 21px);
  font-weight: 900;
  letter-spacing: 0.04em;
}

.lp-price-kicker a {
  color: inherit;
  text-decoration: none;
}

.lp-price-kicker::before,
.lp-price-kicker::after {
  width: 0;
  height: 0;
  position: absolute;
  border-style: solid;
  content: "";
}

.lp-price-kicker::before {
  top: 7px;
  left: 7px;
  border-width: 16px 16px 0 0;
  border-color: #cf5036 transparent transparent;
}

.lp-price-kicker::after {
  right: 7px;
  bottom: 7px;
  border-width: 0 0 16px 16px;
  border-color: transparent transparent #cf5036;
}

.lp-price-system h2 {
  margin: clamp(26px, 2.6vw, 40px) 0 0;
  color: #c84931;
  font-size: clamp(30px, 2.6vw, 40px);
  font-weight: 900;
  letter-spacing: 0.04em;
  line-height: 1.35;
}

.lp-price-system-features {
  width: min(40.5vw, 622px);
  margin: clamp(27px, 2.73vw, 42px) 0 0;
}

.lp-price-system-features img {
  width: 100%;
  height: auto;
  display: block;
}

.lp-price-feature-label {
  margin: 0 0 8px;
  color: #c84931;
  font-size: clamp(18px, 2.1vw, 27px);
  font-weight: 900;
  text-align: left;
}

.lp-price-system-feature-list {
  display: grid;
  gap: 16px;
}

.lp-price-system-feature-list li {
  min-height: 66px;
  padding: 12px 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  color: #c84931;
  background: rgba(255, 255, 255, 0.96);
  border: 2px solid #d65a40;
  box-shadow: 0 4px 8px rgba(69, 54, 45, 0.14);
  font-size: clamp(17px, 2vw, 25px);
  font-weight: 900;
  line-height: 1.45;
}

.lp-price-system-feature-list li span {
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  color: #d55338;
  border: 3px solid #d55338;
  border-radius: 50%;
  font-family: Arial, sans-serif;
  font-size: 21px;
  line-height: 1;
}

.lp-price-system > p:last-child {
  width: min(52.08vw, 800px);
  max-width: 100%;
  margin: clamp(26px, 2.6vw, 40px) auto 0;
  color: #504a46;
  font-size: clamp(14px, 1.5vw, 23px);
  font-weight: 700;
  line-height: 2;
}

.lp-price-value {
  padding: clamp(36px, 3.58vw, 55px) 24px clamp(75px, 7.49vw, 115px);
  text-align: center;
  background: #fff;
}

.lp-price-value header {
  display: grid;
  justify-items: center;
}

.lp-price-value header > img {
  width: min(38.35vw, 589px);
  height: auto;
  display: block;
}

.lp-price-value h3 {
  margin: clamp(18px, 1.69vw, 26px) 0 clamp(32px, 3.26vw, 50px);
  color: #c74c32;
  font-size: clamp(32px, 3.91vw, 60px);
  font-weight: 900;
  letter-spacing: 0.04em;
  line-height: 1.28;
}

.lp-price-value h3 span {
  color: #c65235;
  background: linear-gradient(112deg, #c44931 18%, #e1a52f 92%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.lp-price-value-picture {
  width: min(58.6vw, 900px);
  margin: 0 auto;
  display: block;
}

.lp-price-value-picture + .lp-price-value-picture {
  margin-top: min(0.91vw, 14px);
}

.lp-price-value-picture img {
  width: 100%;
  height: auto;
  display: block;
}

.lp-price-value-picture-pipi {
  width: min(59.24vw, 910px);
}

.lp-price-value-foot {
  margin: clamp(26px, 2.6vw, 40px) auto 0;
  color: #46403d;
  font-size: clamp(20px, 1.95vw, 30px);
  font-weight: 800;
  line-height: 1.65;
}

.lp-price-value-foot b {
  color: #c64b32;
  background: linear-gradient(transparent 64%, rgba(239, 185, 76, 0.38) 64%);
  font-size: 1.14em;
}

.lp-price-plans,
.lp-price-ems {
  background: linear-gradient(90deg, #c44931 0%, #d76c32 48%, #e0aa34 100%);
}

.lp-price-plans {
  padding: clamp(39px, 3.91vw, 60px) 0 clamp(39px, 3.91vw, 60px);
}

.lp-price-plans-heading {
  margin: 0 auto 36px;
  color: #fff;
  text-align: center;
}

.lp-price-plans-heading p {
  margin: 0 0 10px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.2em;
}

.lp-price-plans-heading h3 {
  margin: 0;
  font-size: clamp(30px, 4vw, 48px);
  font-weight: 900;
  line-height: 1.4;
}

.lp-price-plans .pipi-current-price-grid article {
  border-color: rgba(255, 255, 255, 0.5);
  box-shadow: 0 20px 46px rgba(73, 34, 22, 0.24);
}

.lp-price-plans .pipi-current-price-note {
  background: rgba(40, 36, 33, 0.94);
}

.lp-price-slider {
  max-width: none;
  margin-inline: auto;
  display: block;
}

.lp-price-slider-viewport {
  display: flex;
  align-items: flex-start;
  gap: min(5.21vw, 80px);
  padding-inline: calc((100% - min(52.74vw, 810px)) / 2);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-behavior: smooth;
  scroll-snap-type: inline mandatory;
  scrollbar-width: none;
}

.lp-price-slider-viewport::-webkit-scrollbar {
  display: none;
}

.lp-price-slide {
  min-width: min(52.74vw, 810px);
  aspect-ratio: 1632 / 1150;
  align-self: flex-start;
  scroll-snap-align: center;
}

.lp-price-slide picture,
.lp-price-slide img {
  width: 100%;
  aspect-ratio: 1632 / 1150;
  display: block;
}

.lp-price-slide img {
  height: 100%;
  object-fit: contain;
}

.lp-price-slider-arrow {
  width: 58px;
  height: 58px;
  padding: 0 0 5px;
  display: grid;
  place-items: center;
  color: #c64b32;
  background: #fff;
  border: 0;
  border-radius: 50%;
  box-shadow: 0 8px 20px rgba(74, 34, 22, 0.25);
  cursor: pointer;
  font-family: Arial, sans-serif;
  font-size: 50px;
  line-height: 1;
  transition: transform 180ms ease, box-shadow 180ms ease;
}

@media (min-width: 761px) {
  .lp-price-slider-arrow {
    display: none;
  }
}

.lp-price-slider-arrow:hover,
.lp-price-slider-arrow:focus-visible {
  box-shadow: 0 11px 26px rgba(74, 34, 22, 0.34);
  transform: translateY(-2px);
}

.lp-price-slider-dots {
  margin-top: 26px;
  display: flex;
  justify-content: center;
  gap: 12px;
}

.lp-price-slider-dots button {
  width: 13px;
  height: 13px;
  padding: 0;
  background: rgba(255, 255, 255, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.8);
  border-radius: 50%;
  cursor: pointer;
}

.lp-price-slider-dots button.is-active {
  background: #fff;
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.22);
}

.lp-price-caution {
  max-width: 850px;
  margin: 28px auto 0;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.8;
  text-align: center;
}

.lp-price-ems {
  padding: 0 20px clamp(32px, 3.26vw, 50px);
}

.lp-price-ems-more {
  width: min(11.72vw, 180px);
  min-height: min(4.59vw, 71px);
  margin: 0 auto clamp(20px, 1.95vw, 30px);
  padding-top: 0;
  box-sizing: border-box;
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  color: #fff;
  background: url("/assets/images/lp-price/ems-ribbon.svg") center top / 100% auto no-repeat;
  font-size: clamp(20px, 1.95vw, 30px);
  font-weight: 900;
  line-height: 1;
}

.lp-price-ems-box {
  max-width: min(52.35vw, 804px);
  margin-inline: auto;
  padding: 0 min(1.3vw, 20px) min(1.3vw, 20px);
  color: #302b28;
  background: #fff;
  border: 0;
  border-radius: 0;
  box-shadow: 0 4px 0 rgba(0, 0, 0, 0.2);
}

.lp-price-ems-heading {
  width: min(691px, 100%);
  margin-inline: auto;
  display: block;
}

.lp-price-ems-heading img {
  width: 100%;
  height: auto;
  display: block;
}

.lp-price-ems-box > h3 {
  width: min(22.79vw, 350px);
  margin: clamp(18px, 1.95vw, 30px) auto clamp(18px, 2.21vw, 34px);
  padding: clamp(9px, 0.98vw, 15px) 16px;
  background: #ffe4e4;
  border-radius: 999px;
  font-size: clamp(22px, 1.95vw, 30px);
  text-align: center;
}

.lp-price-ems-box > h3 b {
  color: #d65038;
}

.lp-price-ems-main {
  display: grid;
  grid-template-columns: minmax(260px, 0.9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: 40px;
}

.lp-price-ems-main picture,
.lp-price-ems-main img {
  width: 100%;
  height: auto;
  display: block;
}

.lp-price-ems-main p {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 2;
}

.lp-price-ems-main p + p {
  margin-top: 16px;
}

.lp-price-ems-main mark {
  color: inherit;
  background: linear-gradient(transparent 64%, rgba(247, 197, 78, 0.55) 64%);
  font-weight: 900;
}

.lp-price-action {
  margin-top: 34px;
  text-align: center;
}

.lp-price-action .button {
  min-width: min(420px, 100%);
  color: #c14931;
  background: #fff;
  border: 0;
  border-radius: 999px;
  box-shadow: 0 12px 26px rgba(77, 34, 22, 0.25);
}

.lp-price-action .button:hover,
.lp-price-action .button:focus-visible {
  color: #a93b27;
  background: #fff8e8;
}

.benchmark-store-section {
  background: #fffdfa;
}

.store-primary-actions {
  max-width: 720px;
  margin: -4px auto 18px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.store-primary-actions .button {
  min-height: 58px;
  border-radius: 999px;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 900;
}

.store-location-button > span {
  margin-right: 4px;
  font-size: 18px;
  line-height: 0;
}

.store-location-button:disabled {
  cursor: wait;
  opacity: 0.55;
}

.store-location-status {
  min-height: 1.6em;
  margin: 0 auto 12px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.6;
  text-align: center;
}

.store-area-controls {
  max-width: 720px;
  margin: 0 auto 24px;
  padding: 18px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  border: 1px solid var(--line);
  background: #fff;
}

.benchmark-store-section .store-grid-v3 {
  grid-template-columns: repeat(3, 1fr);
}

.benchmark-flow-section {
  background: var(--paper-warm);
}

.benchmark-flow-list {
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  list-style: none;
}

.benchmark-flow-list li {
  min-height: 188px;
  padding: 24px;
  position: relative;
  background: #fff;
  border: 1px solid var(--line);
}

.benchmark-flow-list li + li {
  border-left: 0;
}

.benchmark-flow-list li:not(:last-child)::after {
  width: 28px;
  height: 28px;
  content: "→";
  position: absolute;
  z-index: 2;
  top: 50%;
  right: -14px;
  display: grid;
  place-items: center;
  color: #fff;
  background: var(--gold);
  border-radius: 50%;
  font-size: 12px;
  transform: translateY(-50%);
}

.benchmark-flow-list li > span {
  color: var(--rose-dark);
  font-size: 27px;
  font-weight: 900;
}

.benchmark-flow-list h3 {
  margin: 25px 0 8px;
  font-size: 17px;
}

.benchmark-flow-list p {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.75;
}

@media (max-width: 980px) {
  .problem-grid,
  .reason-picture-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .benchmark-flow-list {
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
  }

  .benchmark-flow-list li + li {
    border-left: 1px solid var(--line);
  }

  .benchmark-flow-list li::after {
    display: none !important;
  }
}

@media (max-width: 760px) {
  .benchmark-home .mobile-only {
    display: initial;
  }

  .benchmark-section {
    padding: 62px 18px;
  }

  .benchmark-heading {
    margin-bottom: 28px;
    text-align: left;
  }

  .benchmark-heading h2,
  .about-lead h2 {
    font-size: clamp(29px, 9vw, 38px);
  }

  .benchmark-heading > span {
    margin-top: 12px;
    font-size: 12px;
  }

  .hero-actions-below {
    width: calc(100% - 24px);
    margin-top: 12px;
    gap: 8px;
  }

  .hero-actions-below .button {
    min-height: 48px;
    padding: 10px 8px;
    font-size: 10px;
  }

  .hero-campaign-banner {
    width: calc(100% - 24px);
    margin-top: 12px;
    border-radius: 16px;
  }

  .problem-solution-section {
    padding: 42px 14px 64px 52px;
  }

  .problem-side-label {
    top: 42px;
    left: 14px;
    gap: 14px;
  }

  .problem-side-label span {
    font-size: 11px;
  }

  .problem-side-label b {
    font-size: 18px;
  }

  .problem-showcase {
    width: 100%;
  }

  .problem-main-image {
    aspect-ratio: 16 / 9;
    object-position: center;
  }

  .problem-showcase-heading {
    padding: 28px 4px 30px;
  }

  .problem-showcase-heading p {
    font-size: 12px;
  }

  .problem-showcase-heading h2 {
    margin-top: 6px;
    font-size: 26px;
    line-height: 1.4;
  }

  .problem-solution-list {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .problem-summary {
    min-height: 112px;
    padding: 28px 24px 22px;
  }

  .problem-summary > span {
    min-width: 118px;
  }

  .problem-summary > strong {
    font-size: 16px;
    line-height: 1.65;
  }

  .problem-answer {
    padding: 26px 18px 20px;
    grid-template-columns: 104px 1fr;
    gap: 16px;
  }

  .problem-answer img {
    height: 126px;
  }

  .problem-answer p {
    font-size: 11px;
    line-height: 1.8;
  }

  .problem-answer p b {
    font-size: 13px;
  }

  .about-point-section {
    padding: 48px 14px 68px;
  }

  .about-point-section::before {
    width: 760px;
    height: 342px;
    top: -166px;
  }

  .about-method-intro {
    margin-top: 0;
    margin-bottom: 58px;
  }

  .about-method-intro img {
    width: 48px;
    height: 48px;
  }

  .about-method-intro h2 {
    margin-top: 9px;
    font-size: 21px;
  }

  .about-method-intro p {
    margin-top: 14px;
    top: 18px;
    font-size: 11px;
    line-height: 1.7;
  }

  .about-method-intro .desktop-only {
    display: none;
  }

  .top-roots-entry {
    margin-bottom: 26px;
    padding: 14px;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 13px;
  }

  .top-roots-entry > img {
    max-width: 82px;
    height: 82px;
  }

  .top-roots-entry__copy {
    gap: 4px;
  }

  .top-roots-entry__copy small {
    font-size: 8px;
  }

  .top-roots-entry__copy strong {
    font-size: 14px;
    line-height: 1.45;
  }

  .top-roots-entry__copy > span {
    font-size: 9px;
    line-height: 1.6;
  }

  .top-roots-entry__copy b {
    font-size: 9px;
  }

  .about-point-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .about-point-card > div {
    min-height: 108px;
    padding: 8px 10px 14px;
  }

  .about-point-card span {
    font-size: 9px;
  }

  .about-point-card h3 {
    margin-top: 5px;
    font-size: 12px;
    line-height: 1.55;
  }

  .reason-showcase-section {
    padding: 48px 14px 68px;
  }

  .reason-showcase-hero {
    aspect-ratio: 16 / 8.5;
  }

  .reason-showcase-hero::after {
    background: linear-gradient(90deg, rgba(248, 251, 252, 0.98) 0%, rgba(248, 251, 252, 0.86) 42%, rgba(248, 251, 252, 0.05) 78%, rgba(248, 251, 252, 0) 100%);
  }

  .reason-showcase-hero > div {
    left: 16px;
  }

  .reason-showcase-hero p {
    font-size: 28px;
  }

  .reason-showcase-hero h2 {
    margin-top: 9px;
    font-size: 13px;
  }

  .reason-card-grid {
    margin-top: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .reason-card > div {
    min-height: 108px;
    padding: 8px 10px 14px;
  }

  .reason-card span {
    font-size: 9px;
  }

  .reason-card h3 {
    margin-top: 5px;
    font-size: 12px;
    line-height: 1.55;
  }

  .transformation-section {
    padding: 64px 14px 72px;
  }

  .transformation-heading {
    margin-bottom: 28px;
  }

  .transformation-heading p {
    font-size: 36px;
  }

  .transformation-heading h2 {
    margin-top: 10px;
    font-size: 16px;
  }

  .transformation-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .transformation-card {
    padding: 24px 18px 20px;
  }

  .transformation-evidence-card {
    padding: 22px 14px 16px;
  }

  .transformation-evidence-image {
    margin-top: 16px;
    border-radius: 10px;
  }

  .transformation-photos > div {
    min-height: 178px;
  }

  .customer-voice-section {
    padding: 68px 14px 76px;
  }

  .customer-voice-heading {
    margin-bottom: 24px;
  }

  .customer-voice-heading p {
    font-size: 15px;
  }

  .customer-voice-heading h2 {
    margin-top: 9px;
    font-size: 34px;
  }

  .customer-voice-heading span {
    font-size: 12px;
    line-height: 1.7;
  }

  .customer-voice-list {
    grid-template-columns: 1fr;
  }

  .customer-voice-card-featured,
  .customer-voice-card-secondary {
    grid-template-columns: 1fr;
  }

  .customer-voice-copy {
    padding: 24px 20px 22px;
  }

  .customer-voice-meta {
    gap: 9px;
  }

  .customer-voice-meta b {
    font-size: 17px;
  }

  .customer-voice-copy h3 {
    margin-top: 18px;
    font-size: 20px;
  }

  .customer-voice-card figure,
  .customer-voice-card-secondary figure {
    height: auto;
    min-height: 0;
  }

  .customer-voice-card img {
    height: auto;
    object-position: center;
  }

  .customer-voice-source-note {
    text-align: left;
  }

  .pipi-program-section {
    padding: 68px 14px 76px;
  }

  .pipi-program-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .pipi-program-heading {
    padding-bottom: 12px;
  }

  .pipi-program-heading h2 {
    margin-top: 12px;
    font-size: 36px;
  }

  .pipi-program-heading span,
  .pipi-program-heading b {
    margin-top: 16px;
    font-size: 12px;
  }

  .pipi-program-heading b {
    margin-top: 8px;
  }

  .pipi-program-card > b {
    width: 66px;
    height: 66px;
    top: -14px;
    right: -8px;
    font-size: 13px;
  }

  .pipi-program-card header {
    padding: 14px 24px 11px;
  }

  .pipi-program-card header span {
    font-size: 14px;
  }

  .pipi-program-card header h3 {
    margin-top: 4px;
    font-size: 18px;
  }

  .pipi-program-card > div {
    padding: 16px;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 16px;
  }

  .pipi-program-card p {
    font-size: 11px;
    line-height: 1.75;
  }

  .pipi-program-card a {
    margin-top: 9px;
  }

  .price-section-heading {
    margin-bottom: 24px;
  }

  .price-section-heading > h2 {
    font-size: 32px;
    line-height: 1;
  }

  .problem-grid,
  .reason-picture-grid,
  .feature-grid,
  .plan-grid,
  .benchmark-store-section .store-grid-v3,
  .benchmark-flow-list,
  .about-lead {
    grid-template-columns: 1fr;
  }

  .problem-grid,
  .reason-picture-grid {
    gap: 12px;
  }

  .problem-card,
  .reason-picture-card {
    display: grid;
    grid-template-columns: 118px 1fr;
  }

  .problem-card img,
  .reason-picture-card img {
    height: 100%;
    min-height: 176px;
    aspect-ratio: auto;
  }

  .problem-card > div,
  .reason-picture-card > div {
    padding: 18px 16px;
  }

  .problem-card h3,
  .reason-picture-card h3 {
    margin-top: 10px;
    font-size: 15px;
  }

  .problem-card span,
  .reason-picture-card p {
    font-size: 10px;
  }

  .solution-bridge {
    margin-top: 30px;
    padding: 24px 20px;
    grid-template-columns: 1fr;
    gap: 12px;
    box-shadow: 7px 7px 0 var(--gold);
  }

  .solution-bridge span {
    padding: 0 0 11px;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.26);
    text-align: left;
  }

  .solution-bridge strong {
    font-size: 21px;
  }

  .about-lead {
    margin-bottom: 28px;
    gap: 24px;
  }

  .about-lead > div:last-child {
    gap: 10px;
  }

  .about-lead > div:last-child strong {
    font-size: 19px;
    white-space: normal;
  }

  .about-lead > div:last-child span {
    font-size: 12px;
  }

  .feature-card {
    min-height: 0;
    padding: 20px;
    grid-template-columns: 42px 1fr;
    gap: 12px;
  }

  .feature-card > span {
    font-size: 25px;
  }

  .feature-card h3 {
    font-size: 17px;
  }

  .store-primary-actions {
    margin-top: 0;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .store-primary-actions .button {
    width: 100%;
    min-height: 54px;
  }

  .store-location-status {
    margin-bottom: 10px;
    text-align: left;
  }

  .store-area-controls {
    padding: 16px;
    display: grid;
    justify-content: stretch;
    gap: 10px;
  }

  .price-section-heading {
    text-align: left;
  }

  .price-section-heading::after {
    margin: 18px 0 0;
  }

  .price-panel {
    padding: 28px 16px;
    border-radius: 20px;
  }

  .plan-heading {
    margin: 0 0 24px;
    text-align: left;
  }

  .plan-heading p {
    margin-inline: 0;
  }

  .plan-grid {
    gap: 10px;
  }

  .plan-card {
    min-height: 210px;
    padding: 38px 18px 26px;
  }

  .plan-card-recommended {
    margin-top: 0;
    padding-top: 60px;
  }

  .benchmark-flow-list {
    gap: 24px;
  }

  .benchmark-flow-list li {
    min-height: 0;
    padding: 18px;
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 12px;
  }

  .benchmark-flow-list li:not(:last-child)::after {
    width: 30px;
    height: 30px;
    content: "↓";
    top: auto;
    right: 50%;
    bottom: -28px;
    display: grid !important;
    transform: translate(50%, 0);
  }

  .benchmark-flow-list h3 {
    margin: 0 0 6px;
  }
}

/* Header shortcut and representative order: final responsive overrides. */
@media (max-width: 1050px) {
  .site-header {
    padding-right: 214px;
  }

  .mobile-store-link {
    position: absolute;
    top: 22px;
    right: 86px;
  }

  .menu-button {
    position: absolute;
    top: 18px;
    right: 24px;
  }
}

@media (max-width: 760px) {
  .site-header {
    padding-right: 154px;
  }

  .mobile-store-link {
    top: 17px;
    right: 70px;
  }

  .menu-button {
    top: 12px;
    right: 14px;
  }

  .representative-inner {
    gap: 26px;
  }

  .representative-copy {
    order: 1;
  }

  .representative-visual {
    order: 2;
    margin-top: 0;
  }
}

@media (max-width: 980px) {
  .lp-price-slider {
    grid-template-columns: 46px minmax(0, 1fr) 46px;
    gap: 12px;
  }

  .lp-price-slider-arrow {
    width: 46px;
    height: 46px;
    font-size: 40px;
  }
}

@media (max-width: 760px) {
  .lp-price-system {
    min-height: 0;
    padding: 28px 14px 25px;
    background-position: right bottom, left top;
    background-size: 78vw auto, 51vw auto;
  }

  .lp-price-kicker {
    width: 188px;
    min-height: 51px;
    padding: 10px 22px;
    font-size: 17px;
  }

  .lp-price-system h2 {
    margin-top: 10px;
    font-size: 25px;
    line-height: 1.45;
  }

  .lp-price-system-features {
    width: min(81vw, 316px);
    margin-top: 13px;
  }

  .lp-price-feature-label {
    margin-left: 4px;
    font-size: 18px;
  }

  .lp-price-system-feature-list {
    gap: 12px;
  }

  .lp-price-system-feature-list li {
    min-height: 54px;
    padding: 10px 12px;
    justify-content: flex-start;
    gap: 12px;
    font-size: 15px;
    text-align: left;
  }

  .lp-price-system-feature-list li span {
    width: 28px;
    height: 28px;
    border-width: 2px;
    font-size: 17px;
  }

  .lp-price-system > p:last-child {
    width: min(80vw, 312px);
    margin-top: 20px;
    padding-inline: 0;
    font-size: 14px;
    line-height: 1.5;
    text-align: left;
  }

  .lp-price-value {
    padding: 28px 14px 56px;
  }

  .lp-price-value header > img {
    width: min(76.7vw, 299px);
  }

  .lp-price-value h3 {
    margin: 13px 0 25px;
    font-size: 30px;
    line-height: 1.38;
  }

  .lp-price-value-picture,
  .lp-price-value-picture-pipi {
    width: 100%;
  }

  .lp-price-value-picture + .lp-price-value-picture {
    margin-top: 7px;
  }

  .lp-price-value-foot {
    margin-top: 21px;
    font-size: 15px;
  }

  .lp-price-plans {
    padding: 30px 0;
  }

  .lp-price-plans-heading {
    margin-bottom: 26px;
    padding-inline: 18px;
  }

  .lp-price-plans-heading h3 {
    font-size: 28px;
  }

  .lp-price-slider {
    position: relative;
    display: block;
  }

  .lp-price-slider-viewport {
    padding: 0 8px;
    gap: 18px;
    scroll-padding-inline: 8px;
  }

  .lp-price-slide {
    min-width: calc(100% - 16px);
    aspect-ratio: 707 / 749;
  }

  .lp-price-slide picture,
  .lp-price-slide img {
    aspect-ratio: 707 / 749;
  }

  .lp-price-slider-arrow {
    width: 25px;
    height: 51px;
    padding: 0;
    position: absolute;
    top: 50%;
    z-index: 2;
    display: block;
    overflow: hidden;
    background: url("/stores/asagaya/images/price_plan_slide_arrow01.svg") center / 100% 100% no-repeat;
    border-radius: 0;
    box-shadow: none;
    font-size: 0;
    transform: translateY(-50%);
  }

  .lp-price-slider-arrow[data-price-slider-prev] {
    left: 0;
  }

  .lp-price-slider-arrow[data-price-slider-next] {
    right: 0;
    transform: translateY(-50%) scaleX(-1);
  }

  .lp-price-slider-dots {
    margin-top: 20px;
  }

  .lp-price-caution {
    margin: 22px 22px 0;
    font-size: 9px;
    text-align: left;
  }

  .lp-price-ems {
    padding: 0 14px 51px;
  }

  .lp-price-ems-more {
    width: 117px;
    min-height: 46px;
    margin-bottom: 18px;
    padding-top: 0;
    background-size: 117px 46px;
    font-size: 20px;
  }

  .lp-price-ems-box {
    max-width: 350px;
    padding: 0 18px 18px;
    border-width: 0;
    border-radius: 0;
  }

  .lp-price-ems-box > h3 {
    width: 178px;
    margin: 15px auto 11px;
    padding: 8px 10px;
    font-size: 15px;
  }

  .lp-price-ems-main {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .lp-price-ems-main picture {
    max-width: 308px;
    margin-inline: auto;
  }

  .lp-price-ems-main p {
    font-size: 12px;
    line-height: 1.9;
  }

  .lp-price-action {
    margin-top: 24px;
  }

  .lp-price-action .button {
    width: 100%;
    min-width: 0;
  }
}

/* Core service pages: price and first visit */
.service-detail-page {
  background: #fffdfa;
}

.service-detail-page .service-page-hero {
  min-height: 420px;
  display: grid;
  align-content: center;
}

.service-detail-page .service-page-hero h1 {
  margin: 0;
  color: #2f2a27;
  letter-spacing: -0.04em;
}

.service-detail-page .service-page-hero .eyebrow {
  margin: 0 0 14px;
  color: #e45e3d;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.18em;
}

.detail-jump-nav {
  width: min(1086px, calc(100% - 48px));
  margin: 22px auto 70px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid #e7ddd2;
  background: #fff;
  box-shadow: 0 14px 34px rgba(55, 43, 35, 0.07);
}

.detail-jump-nav a {
  min-height: 62px;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 13px;
  font-weight: 800;
}

.detail-jump-nav a + a {
  border-left: 1px solid #e7ddd2;
}

.detail-jump-nav a::after {
  content: "↓";
  color: #e45e3d;
}

.detail-summary-section,
.trial-experience-section,
.trial-preparation-section {
  padding: 0 24px clamp(78px, 8vw, 112px);
}

.detail-summary-inner,
.trial-experience-inner,
.trial-preparation-inner {
  width: min(1086px, 100%);
  margin-inline: auto;
}

.detail-summary-inner {
  padding: clamp(42px, 5vw, 66px);
  display: grid;
  grid-template-columns: minmax(250px, 0.72fr) minmax(0, 1.28fr);
  align-items: start;
  gap: clamp(38px, 6vw, 78px);
  background: #f7eee4;
  border-radius: 28px;
}

.detail-summary-inner h2,
.trial-experience-heading h2,
.trial-preparation-heading h2 {
  margin: 8px 0 0;
  font-size: clamp(31px, 4vw, 48px);
  line-height: 1.32;
  letter-spacing: -0.04em;
}

.detail-summary-list {
  margin: 0;
  padding: 0;
  display: grid;
  list-style: none;
}

.detail-summary-list li {
  padding: 20px 0;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: start;
  gap: 15px;
  border-bottom: 1px solid rgba(173, 129, 73, 0.22);
}

.detail-summary-list li:first-child {
  padding-top: 0;
}

.detail-summary-list li:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.detail-summary-list b {
  color: #bd853d;
  font-size: 29px;
  line-height: 1;
}

.detail-summary-list span {
  color: #625a54;
  font-size: 13px;
  line-height: 1.8;
}

.detail-summary-list strong {
  display: block;
  color: #2f2a27;
  font-size: 17px;
}

.price-detail-page #system,
.price-detail-page #plans,
.price-detail-page #ems,
.price-detail-page #price-faq,
.first-visit-page #experience,
.first-visit-page #flow,
.first-visit-page #preparation,
.first-visit-page #trial-faq {
  scroll-margin-top: 90px;
}

.detail-campaign-banner {
  width: min(1086px, calc(100% - 48px));
  margin: 0 auto clamp(74px, 8vw, 108px);
  background: #fff8ef;
  border-color: #e3b866;
  border-radius: 28px;
  box-shadow: 0 18px 42px rgba(92, 63, 34, 0.14);
}

.detail-campaign-banner:hover,
.detail-campaign-banner:focus-visible {
  box-shadow: 0 24px 52px rgba(92, 63, 34, 0.2);
}

.trial-experience-heading,
.trial-preparation-heading {
  max-width: 760px;
  margin-bottom: 40px;
}

.trial-experience-heading > p:last-child,
.trial-preparation-heading > p:last-child {
  max-width: 650px;
  margin: 16px 0 0;
  color: #6e665f;
  line-height: 1.85;
}

.trial-experience-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.trial-experience-grid article {
  min-height: 230px;
  padding: 30px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: #fff;
  border: 1px solid #e7ddd2;
  border-radius: 22px;
  box-shadow: 0 14px 34px rgba(55, 43, 35, 0.07);
}

.trial-experience-grid article > b {
  color: #d09646;
  font-size: 32px;
}

.trial-experience-grid h3,
.trial-preparation-grid h3 {
  margin: 0 0 10px;
  font-size: 20px;
}

.trial-experience-grid p,
.trial-preparation-grid p {
  margin: 0;
  color: #6e665f;
  font-size: 13px;
  line-height: 1.85;
}

.first-visit-flow {
  border-block: 1px solid #e7ddd2;
}

.trial-preparation-section {
  padding-top: clamp(78px, 8vw, 112px);
  background: #fff;
}

.trial-preparation-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.trial-preparation-grid article {
  padding: 30px;
  background: #fbf6f0;
  border-radius: 20px;
}

.trial-preparation-grid span {
  display: block;
  margin-bottom: 18px;
  color: #d09646;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.trial-preparation-note {
  margin-top: 18px;
  padding: 28px 32px;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 6px 28px;
  color: #483e36;
  background: #fff3d9;
  border: 1px solid #eed4a6;
  border-radius: 20px;
}

.trial-preparation-note strong {
  font-size: 18px;
}

.trial-preparation-note p {
  margin: 0;
  color: #6e665f;
  font-size: 12px;
}

.trial-preparation-note a {
  grid-column: 2;
  grid-row: 1 / 3;
  padding: 12px 18px;
  color: #fff;
  background: #e45e3d;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
}

.service-detail-page .faq-section {
  background: #f8f5f1;
}

.service-detail-page .final-cta-v3 {
  width: min(1086px, calc(100% - 48px));
}

@media (max-width: 760px) {
  .service-detail-page .service-page-hero {
    min-height: 330px;
    padding: 68px 18px;
  }

  .service-detail-page .service-page-hero h1 {
    font-size: clamp(42px, 13vw, 58px);
  }

  .detail-jump-nav {
    width: calc(100% - 28px);
    margin: 14px auto 52px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .detail-jump-nav a {
    min-height: 54px;
    padding: 11px 14px;
    font-size: 11px;
  }

  .detail-jump-nav a + a {
    border-left: 0;
  }

  .detail-jump-nav a:nth-child(even) {
    border-left: 1px solid #e7ddd2;
  }

  .detail-jump-nav a:nth-child(n + 3) {
    border-top: 1px solid #e7ddd2;
  }

  .detail-summary-section,
  .trial-experience-section,
  .trial-preparation-section {
    padding-right: 14px;
    padding-bottom: 68px;
    padding-left: 14px;
  }

  .detail-summary-inner {
    padding: 30px 22px;
    grid-template-columns: 1fr;
    gap: 28px;
    border-radius: 20px;
  }

  .detail-summary-inner h2,
  .trial-experience-heading h2,
  .trial-preparation-heading h2 {
    font-size: clamp(29px, 9vw, 39px);
  }

  .detail-summary-list strong {
    font-size: 15px;
  }

  .detail-campaign-banner {
    width: calc(100% - 24px);
    margin-bottom: 62px;
    border-radius: 16px;
  }

  .trial-experience-grid,
  .trial-preparation-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .trial-experience-grid article {
    min-height: 0;
    padding: 23px;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 14px;
  }

  .trial-experience-grid article > b {
    font-size: 25px;
  }

  .trial-preparation-section {
    padding-top: 68px;
  }

  .trial-preparation-grid article {
    padding: 24px;
  }

  .trial-preparation-note {
    padding: 24px;
    grid-template-columns: 1fr;
  }

  .trial-preparation-note a {
    grid-column: 1;
    grid-row: auto;
    margin-top: 12px;
    text-align: center;
  }

  .service-detail-page .final-cta-v3 {
    width: calc(100% - 28px);
  }
}

/* Trust and brand-information pages */
.trust-page {
  color: #312c29;
  background: #fffdf9;
}

.trust-page .service-page-hero {
  min-height: 430px;
}

.trust-page .service-page-hero > p:last-child {
  max-width: 720px;
}

.trust-shell {
  width: min(1086px, calc(100% - 48px));
  margin-inline: auto;
}

.about-definition-section,
.about-principles-section,
.about-entity-section,
.about-message-section,
.trust-link-section,
.policy-section,
.faq-hub-section,
.company-profile-section,
.company-relationship-section,
.company-contact-section {
  padding-block: clamp(76px, 8vw, 116px);
}

.about-definition-section {
  background: #f6efe7;
}

.about-definition-lead {
  display: grid;
  grid-template-columns: minmax(250px, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(34px, 6vw, 86px);
  align-items: start;
}

.about-definition-lead h2,
.trust-section-heading h2,
.policy-intro h2,
.faq-hub-heading h2 {
  margin: 8px 0 0;
  font-size: clamp(34px, 4.4vw, 54px);
  line-height: 1.28;
  letter-spacing: -0.045em;
}

.about-definition-copy > strong {
  display: block;
  font-size: clamp(24px, 2.6vw, 34px);
  line-height: 1.5;
}

.about-definition-copy > p,
.trust-section-heading > p:last-child,
.policy-intro > p:last-child,
.faq-hub-heading > p:last-child {
  margin: 20px 0 0;
  color: #716861;
  line-height: 2;
}

.about-service-grid {
  margin-top: 52px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.about-service-grid article,
.about-principle-grid article,
.trust-link-grid a {
  background: #fff;
  border: 1px solid #e7dcd1;
  border-radius: 18px;
}

.about-service-grid article {
  min-height: 224px;
  padding: 27px 24px;
}

.about-service-grid b {
  color: #df603f;
  font-size: 28px;
}

.about-service-grid h3 {
  margin: 28px 0 10px;
  font-size: 19px;
}

.about-service-grid p,
.about-principle-grid p {
  margin: 0;
  color: #716861;
  font-size: 13px;
  line-height: 1.85;
}

.trust-section-heading {
  max-width: 760px;
  margin-bottom: 42px;
}

.about-principle-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.about-principle-grid article {
  padding: 32px;
  box-shadow: 0 14px 34px rgba(55, 43, 35, 0.06);
}

.about-principle-grid span {
  color: #d7953b;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.about-principle-grid h3 {
  margin: 18px 0 12px;
  font-size: 21px;
}

.about-entity-section {
  background: var(--pipi-standard-surface-soft, #fffaf6);
}

.entity-map {
  background: transparent;
}

.entity-company-card {
  width: min(820px, 100%);
  margin-inline: auto;
  padding: 24px 28px;
  display: grid;
  grid-template-areas:
    "level level level"
    "title copy action";
  grid-template-columns: 190px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px 24px;
  background: #fff;
  border: 1px solid var(--pipi-standard-line, #e7dbd1);
  border-radius: var(--pipi-standard-corner, 4px);
}

.entity-company-card--parent {
  border-top: 4px solid #332e2a;
}

.entity-company-card--operator {
  border-top: 4px solid var(--brand-coral);
}

.entity-level {
  grid-area: level;
  color: var(--brand-coral-dark);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.14em;
}

.entity-map h3,
.entity-map p {
  margin: 0;
}

.entity-map h3 {
  font-size: 17px;
}

.entity-company-card h3 {
  grid-area: title;
}

.entity-company-card p {
  grid-area: copy;
}

.entity-company-card a {
  grid-area: action;
}

.entity-map p {
  color: #6f655e;
  font-size: 13px;
  line-height: 1.8;
}

.entity-map a {
  min-width: 120px;
  padding: 10px 16px;
  color: #d64e31;
  border: 1px solid #e8b4a8;
  border-radius: var(--pipi-standard-corner, 4px);
  font-size: 11px;
  font-weight: 800;
  text-align: center;
}

.entity-connector {
  height: 52px;
  position: relative;
  display: grid;
  place-items: center;
}

.entity-connector::before {
  width: 1px;
  height: 100%;
  content: "";
  background: #d4b6a7;
}

.entity-connector::after {
  width: 0;
  height: 0;
  position: absolute;
  bottom: 0;
  content: "";
  border-top: 7px solid #d4b6a7;
  border-right: 5px solid transparent;
  border-left: 5px solid transparent;
}

.entity-connector span {
  position: absolute;
  padding: 3px 10px;
  background: var(--pipi-standard-surface-soft, #fffaf6);
  color: #8a6450;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.entity-brand-grid {
  padding-top: 28px;
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.entity-brand-grid::before {
  position: absolute;
  top: 0;
  right: 16.666%;
  left: 16.666%;
  content: "";
  border-top: 1px solid #d4b6a7;
}

.entity-brand-grid article {
  min-height: 230px;
  padding: 24px;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: #fff;
  border: 1px solid var(--pipi-standard-line, #e7dbd1);
  border-top: 3px solid var(--brand-coral);
  border-radius: var(--pipi-standard-corner, 4px);
}

.entity-brand-grid article::before {
  width: 1px;
  height: 28px;
  position: absolute;
  bottom: 100%;
  left: 50%;
  content: "";
  background: #d4b6a7;
}

.entity-brand-grid .entity-level {
  display: block;
}

.entity-brand-grid h3 small {
  margin-top: 4px;
  display: block;
  color: #786e67;
  font-size: 0.62em;
  font-weight: 600;
}

.entity-brand-grid a {
  margin-top: auto;
  align-self: flex-start;
}

.entity-note {
  margin: 18px 0 0;
  color: #657078;
  font-size: 11px;
  line-height: 1.8;
}

.company-profile-section,
.company-contact-section {
  background: #f7f4f0;
}

.company-profile {
  margin: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid #e7ddd3;
  border-radius: 22px;
}

.company-profile > div {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  border-bottom: 1px solid #eee4dc;
}

.company-profile > div:last-child {
  border-bottom: 0;
}

.company-profile dt,
.company-profile dd {
  margin: 0;
  padding: 23px 26px;
  line-height: 1.8;
}

.company-profile dt {
  background: #fcf8f4;
  color: #6f655e;
  font-size: 13px;
  font-weight: 800;
}

.company-profile dd {
  color: #3c3632;
  font-size: 14px;
}

.company-source-note,
.company-review-note {
  margin: 18px 0 0;
  color: #6f655e;
  font-size: 12px;
  line-height: 1.9;
}

.company-source-note a,
.company-contact-grid a {
  color: #d64e31;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.company-relationship-grid,
.company-contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.company-relationship-grid article,
.company-contact-grid article {
  padding: clamp(26px, 4vw, 42px);
  background: #fff;
  border: 1px solid #e7ddd3;
  border-radius: 22px;
}

.company-relationship-grid span {
  color: #d7953b;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.company-relationship-grid h3,
.company-contact-grid h3 {
  margin: 14px 0 12px;
  font-size: clamp(20px, 2.5vw, 27px);
}

.company-relationship-grid p,
.company-contact-grid p {
  margin: 0;
  color: #6f655e;
  line-height: 1.9;
}

.company-hierarchy-grid {
  width: min(820px, 100%);
  margin-inline: auto;
  grid-template-columns: 1fr;
  gap: 42px;
}

.company-hierarchy-grid article {
  position: relative;
  border-radius: var(--pipi-standard-corner, 4px);
}

.company-hierarchy-grid article:first-child {
  border-top: 4px solid #332e2a;
}

.company-hierarchy-grid article:last-child {
  border-top: 4px solid var(--brand-coral);
}

.company-hierarchy-grid article + article::before {
  width: 1px;
  height: 42px;
  position: absolute;
  bottom: 100%;
  left: 50%;
  content: "";
  background: #d4b6a7;
}

.company-hierarchy-grid article + article::after {
  width: 0;
  height: 0;
  position: absolute;
  top: -8px;
  left: calc(50% - 5px);
  content: "";
  border-top: 7px solid #d4b6a7;
  border-right: 5px solid transparent;
  border-left: 5px solid transparent;
}

.company-contact-grid > article > a {
  margin-top: 20px;
  display: inline-block;
}

.company-review-note {
  padding: 18px 20px;
  background: #fff7e8;
  border: 1px solid #ead3a6;
  border-radius: 14px;
}

.about-message-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(280px, 0.72fr);
  align-items: center;
  gap: clamp(38px, 7vw, 90px);
}

.about-message-copy h2 {
  margin: 8px 0 24px;
  font-size: clamp(34px, 4vw, 50px);
}

.about-message-copy p {
  color: #625a54;
  line-height: 2;
}

.about-message-copy strong {
  background: linear-gradient(transparent 72%, #f5d8d0 72%);
}

.about-message-figure {
  margin: 0;
}

.about-message-figure img {
  width: 100%;
  max-height: 570px;
  object-fit: cover;
  object-position: center 22%;
  border-radius: 28px;
}

.about-message-figure figcaption {
  margin: -58px 18px 0;
  padding: 18px 22px;
  position: relative;
  display: grid;
  background: rgba(255, 255, 255, 0.94);
  border-radius: 14px;
  box-shadow: 0 12px 30px rgba(52, 43, 34, 0.13);
}

.about-message-figure small {
  color: #776d66;
}

.about-message-figure b {
  font-size: 20px;
}

.trust-link-section {
  background: #f8f4ef;
}

.trust-link-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.about-page .trust-link-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.trust-link-grid a {
  min-height: 180px;
  padding: 26px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.trust-link-grid a:hover,
.trust-link-grid a:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 16px 34px rgba(54, 43, 35, 0.09);
}

.trust-link-grid span {
  color: #df603f;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.trust-link-grid strong {
  font-size: 18px;
}

.trust-link-grid i {
  color: #df603f;
  font-style: normal;
}

.policy-section {
  background: #f7f4f0;
}

.policy-layout {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  align-items: start;
  gap: clamp(34px, 6vw, 78px);
}

.policy-nav {
  padding: 22px;
  position: sticky;
  top: 100px;
  display: grid;
  gap: 4px;
  background: #fff;
  border: 1px solid #e7ddd3;
  border-radius: 18px;
}

.policy-nav a {
  padding: 11px 8px;
  color: #615953;
  border-bottom: 1px solid #eee5dd;
  font-size: 12px;
}

.policy-nav a:last-child {
  border-bottom: 0;
}

.policy-content {
  display: grid;
  gap: 18px;
}

.policy-intro,
.policy-article {
  padding: clamp(30px, 4vw, 48px);
  background: #fff;
  border: 1px solid #e7ddd3;
  border-radius: 22px;
}

.policy-meta {
  margin-top: 22px;
  color: #80766f;
  font-size: 11px;
}

.policy-article {
  scroll-margin-top: 100px;
}

.policy-article h2 {
  margin: 0 0 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid #eadfd5;
  font-size: clamp(24px, 3vw, 32px);
}

.policy-article h3 {
  margin: 28px 0 10px;
  font-size: 18px;
}

.policy-article p,
.policy-article li {
  color: #625b55;
  font-size: 14px;
  line-height: 2;
}

.policy-article ul,
.policy-article ol {
  margin: 14px 0 0;
  padding-left: 1.5em;
}

.policy-article a {
  color: #d95336;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.faq-hub-heading {
  margin-bottom: 44px;
}

.faq-category-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.faq-category {
  padding: 30px;
  background: #fff;
  border: 1px solid #e7ddd3;
  border-radius: 22px;
}

.faq-category h2 {
  margin: 0 0 18px;
  font-size: 24px;
}

.faq-category details {
  border-top: 1px solid #eee4dc;
}

.faq-category summary {
  padding: 18px 26px 18px 0;
  position: relative;
  cursor: pointer;
  font-weight: 800;
  list-style: none;
}

.faq-category summary::after {
  position: absolute;
  right: 2px;
  content: "+";
  color: #d7953b;
}

.faq-category details[open] summary::after {
  content: "−";
}

.faq-category details p {
  margin: 0;
  padding: 0 0 20px;
  color: #625b55;
  line-height: 1.9;
}

@media (max-width: 900px) {
  .about-service-grid,
  .trust-link-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .about-page .trust-link-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .entity-company-card {
    grid-template-areas:
      "level level"
      "title action"
      "copy copy";
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .entity-company-card a {
    justify-self: start;
  }
}

@media (max-width: 760px) {
  .trust-page .service-page-hero {
    min-height: 330px;
    padding: 66px 18px;
  }

  .trust-shell {
    width: calc(100% - 28px);
  }

  .about-definition-section,
  .about-principles-section,
  .about-entity-section,
  .about-message-section,
  .trust-link-section,
  .policy-section,
  .faq-hub-section,
  .company-profile-section,
  .company-relationship-section,
  .company-contact-section {
    padding-block: 68px;
  }

  .about-definition-lead,
  .about-message-layout,
  .policy-layout {
    grid-template-columns: 1fr;
  }

  .about-definition-lead h2,
  .trust-section-heading h2,
  .policy-intro h2,
  .faq-hub-heading h2,
  .about-message-copy h2 {
    font-size: clamp(30px, 10vw, 40px);
  }

  .about-service-grid,
  .about-principle-grid,
  .trust-link-grid,
  .faq-category-grid,
  .company-relationship-grid,
  .company-contact-grid {
    grid-template-columns: 1fr;
  }

  .about-page .trust-link-grid {
    grid-template-columns: 1fr;
  }

  .company-profile > div {
    grid-template-columns: 1fr;
  }

  .company-profile dt {
    padding-bottom: 8px;
  }

  .company-profile dd {
    padding-top: 0;
  }

  .about-service-grid {
    margin-top: 36px;
  }

  .about-service-grid article {
    min-height: 0;
    padding: 24px;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 0 12px;
  }

  .about-service-grid h3 {
    margin: 2px 0 8px;
  }

  .about-service-grid p {
    grid-column: 2;
  }

  .entity-company-card {
    padding: 22px;
    grid-template-areas:
      "level"
      "title"
      "copy"
      "action";
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .entity-connector {
    height: 44px;
  }

  .entity-brand-grid {
    padding-top: 0;
    grid-template-columns: 1fr;
  }

  .entity-brand-grid::before,
  .entity-brand-grid article::before {
    display: none;
  }

  .entity-brand-grid article {
    min-height: 0;
    padding: 22px;
  }

  .about-message-layout {
    gap: 36px;
  }

  .about-message-figure img {
    max-height: 480px;
  }

  .policy-nav {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .policy-intro,
  .policy-article,
  .faq-category {
    padding: 24px 20px;
    border-radius: 16px;
  }
}

/* Store locator v3 — adapted from the local makidume salon finder structure. */
.store-index-page {
  --locator-orange: #f15a3b;
  --locator-orange-dark: #d9472b;
  --locator-cream: #fff9f2;
  --locator-blue: #edf5f8;
  --locator-blue-deep: #dfecef;
  background: #fffdf9;
}

.store-index-page main {
  overflow: clip;
}

.store-locator-shell {
  width: min(1180px, calc(100% - 48px));
  margin-inline: auto;
}

.store-locator-hero {
  padding: clamp(36px, 5vw, 72px) 0 clamp(72px, 8vw, 110px);
  background: linear-gradient(180deg, #fffdf9 0%, #fff9f2 100%);
}

.store-locator-hero-inner {
  min-height: 560px;
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(520px, 1.22fr);
  align-items: stretch;
  border: 1px solid #eadfd5;
  border-radius: 30px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 24px 80px rgba(75, 53, 37, 0.1);
}

.store-locator-hero-copy {
  padding: clamp(52px, 7vw, 88px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.store-locator-hero-copy .eyebrow,
.store-locator-heading .eyebrow {
  color: var(--locator-orange);
}

.store-locator-hero-copy h1 {
  margin: 14px 0 26px;
  font-size: clamp(50px, 5.6vw, 76px);
  line-height: 1.05;
  letter-spacing: -0.06em;
  white-space: nowrap;
}

.store-locator-hero-copy > strong {
  display: block;
  font-size: clamp(21px, 2vw, 28px);
  line-height: 1.45;
}

.store-locator-hero-copy > p:not(.eyebrow) {
  margin: 20px 0 0;
  color: #6c645d;
  font-size: 14px;
  line-height: 1.95;
}

.store-locator-hero-link {
  width: fit-content;
  min-width: 240px;
  min-height: 56px;
  margin-top: 34px;
  padding: 0 24px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  border-radius: 999px;
  color: #fff;
  background: var(--locator-orange);
  box-shadow: 0 14px 34px rgba(241, 90, 59, 0.22);
  font-size: 13px;
  font-weight: 900;
}

.store-locator-hero-visual {
  min-width: 0;
  min-height: 560px;
  margin: 0;
  position: relative;
  overflow: hidden;
  background: #eee8de;
}

.store-locator-hero-visual::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.2), transparent 34%);
  pointer-events: none;
}

.store-locator-hero-visual img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}

.store-locator-hero-visual figcaption {
  min-width: 250px;
  padding: 18px 22px;
  position: absolute;
  z-index: 1;
  right: 22px;
  bottom: 22px;
  display: grid;
  gap: 4px;
  border-radius: 16px;
  color: #302a26;
  background: rgba(255, 253, 249, 0.94);
  box-shadow: 0 12px 32px rgba(47, 37, 30, 0.14);
  backdrop-filter: blur(12px);
}

.store-locator-hero-visual figcaption strong {
  font-size: 20px;
}

.store-locator-hero-visual figcaption span {
  color: #70675f;
  font-size: 11px;
}

.store-locator-section {
  padding: clamp(80px, 9vw, 126px) 0;
  background: var(--locator-blue);
}

.store-locator-heading {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(320px, 0.55fr);
  align-items: end;
  justify-content: space-between;
  gap: 48px;
}

.store-locator-heading h2 {
  margin: 8px 0 0;
  font-size: clamp(40px, 5vw, 62px);
  line-height: 1.12;
  letter-spacing: -0.055em;
  white-space: nowrap;
}

.store-locator-heading > p {
  margin: 0 0 8px;
  color: #667078;
  font-size: 13px;
  line-height: 1.9;
}

.store-locator-panel {
  margin-top: 44px;
  padding: clamp(28px, 4vw, 48px);
  border: 1px solid #d9e4e7;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 18px 52px rgba(42, 65, 75, 0.08);
}

.store-nearby-tool {
  padding: 26px 28px;
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  align-items: center;
  gap: 12px 30px;
  border-radius: 18px;
  color: #fff;
  background: linear-gradient(120deg, var(--locator-orange-dark), var(--locator-orange));
}

.store-nearby-tool > div {
  display: flex;
  align-items: center;
  gap: 16px;
}

.store-nearby-tool > div > span {
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 50%;
  font-size: 22px;
}

.store-nearby-tool p {
  margin: 0;
}

.store-nearby-tool p small,
.store-nearby-tool p strong {
  display: block;
}

.store-nearby-tool p small {
  margin-bottom: 4px;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.14em;
  opacity: 0.75;
}

.store-nearby-tool p strong {
  font-size: 19px;
}

.store-nearby-tool button {
  min-width: 250px;
  min-height: 54px;
  padding: 0 20px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border: 0;
  border-radius: 999px;
  color: #322b27;
  background: #fff;
  font: inherit;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

.store-nearby-tool button:disabled {
  opacity: 0.72;
  cursor: wait;
}

.store-nearby-tool .store-location-status {
  min-height: 1.4em;
  margin: 0 0 0 66px;
  grid-column: 1 / -1;
  color: rgba(255, 255, 255, 0.78);
  font-size: 10px;
}

.store-prefecture-finder {
  min-width: 0;
  margin: 36px 0 0;
  padding: 0;
  border: 0;
}

.store-prefecture-finder legend {
  margin-bottom: 16px;
  font-size: 13px;
  font-weight: 900;
}

.store-index-page .store-filters {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}

.store-index-page .store-filter {
  min-width: 0;
  width: 100%;
  min-height: 48px;
  padding: 0 10px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border: 1px solid #d9e0e1;
  border-radius: 999px;
  color: #403b37;
  background: #fff;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.store-index-page .store-filter small {
  width: 23px;
  height: 23px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #6e777a;
  background: #edf2f3;
  font-size: 9px;
}

.store-index-page .store-filter[aria-pressed="true"] {
  border-color: #302b28;
  color: #fff;
  background: #302b28;
}

.store-index-page .store-filter[aria-pressed="true"] small {
  color: var(--locator-orange-dark);
  background: #fff;
}

.store-index-page .store-region-hubs {
  margin: 34px 0 0;
  padding-top: 28px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid #e5e8e8;
}

.store-region-hubs__heading {
  margin-bottom: 4px;
  grid-column: 1 / -1;
}

.store-region-hubs__heading p {
  margin: 0 0 5px;
  color: var(--locator-orange);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.store-region-hubs__heading h3 {
  margin: 0;
  font-size: 22px;
  line-height: 1.35;
}

.store-index-page .store-region-hubs a {
  min-height: 104px;
  padding: 20px;
  border-color: #dfe4e5;
  border-radius: 14px;
  background: #f8fbfb;
  box-shadow: none;
}

.store-index-page .store-region-hubs a:hover {
  border-color: var(--locator-orange);
  box-shadow: 0 12px 28px rgba(52, 68, 74, 0.08);
}

.store-index-page .store-region-hubs small,
.store-index-page .store-region-hubs span {
  color: var(--locator-orange);
}

.store-index-page .store-region-hubs strong {
  font-size: 18px;
}

.store-results-bar {
  min-height: 68px;
  margin-top: 42px;
  padding: 0 24px;
  position: sticky;
  z-index: 45;
  top: 82px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border: 1px solid #d8e2e4;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 12px 30px rgba(46, 66, 74, 0.09);
  backdrop-filter: blur(14px);
}

.store-results-bar p {
  margin: 0;
  color: #5e676b;
  font-size: 12px;
}

.store-results-bar p strong {
  margin-right: 5px;
  color: #2e2926;
  font-size: 22px;
}

.store-results-bar a {
  color: var(--locator-orange-dark);
  font-size: 11px;
  font-weight: 900;
}

.pipi-store-results {
  display: grid;
  gap: 70px;
}

.pipi-store-group {
  padding-top: 70px;
  scroll-margin-top: 170px;
}

.pipi-store-group__heading {
  margin-bottom: 24px;
  padding-bottom: 18px;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid #cfdadd;
}

.pipi-store-group__heading p {
  margin: 0 0 3px;
  color: var(--locator-orange);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.pipi-store-group__heading h3 {
  margin: 0;
  font-size: clamp(31px, 3.6vw, 44px);
  line-height: 1.15;
  white-space: nowrap;
}

.pipi-store-group__heading > span {
  color: #6e777a;
  font-size: 11px;
}

.pipi-store-group__heading > span strong {
  margin-right: 3px;
  color: #312b27;
  font-size: 24px;
}

.pipi-store-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: 18px;
}

.pipi-store-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #d8e2e4;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 16px 40px rgba(43, 63, 71, 0.08);
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.pipi-store-card:hover {
  transform: translateY(-4px);
  border-color: #f0a08f;
  box-shadow: 0 20px 48px rgba(43, 63, 71, 0.12);
}

.pipi-store-card__visual {
  aspect-ratio: 16 / 9;
  min-height: 176px;
  padding: 24px;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: end;
  overflow: hidden;
  color: #2d2926;
  background:
    radial-gradient(circle at 82% 18%, rgba(241, 90, 59, 0.2), transparent 28%),
    linear-gradient(135deg, #fff6ec 0%, #f4ebe1 58%, #e6eff1 100%);
}

.pipi-store-card__visual::before {
  position: absolute;
  top: -24px;
  right: -6px;
  content: "PiPi";
  color: rgba(255, 255, 255, 0.74);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 86px;
  font-style: italic;
  line-height: 1;
}

.pipi-store-card__visual > * {
  position: relative;
  z-index: 1;
}

.pipi-store-card__visual small {
  margin-bottom: 8px;
  color: var(--locator-orange-dark);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.14em;
}

.pipi-store-card__visual strong {
  font-size: clamp(22px, 2.2vw, 28px);
  line-break: strict;
  line-height: 1.25;
  overflow-wrap: anywhere;
  text-wrap: balance;
  word-break: normal;
}

.pipi-store-card__visual span {
  margin-top: 8px;
  color: #6d645d;
  font-size: 10px;
}

.pipi-store-card__visual--photo {
  margin: 0;
  padding: 0;
  background: #d8d4cf;
}

.pipi-store-card__visual--photo::before {
  inset: 0;
  content: "";
  background: linear-gradient(180deg, transparent 38%, rgba(20, 17, 15, 0.76) 100%);
}

.pipi-store-card__visual--photo img {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  z-index: 0;
  object-fit: cover;
  transition: transform 420ms ease;
}

.pipi-store-card:hover .pipi-store-card__visual--photo img {
  transform: scale(1.035);
}

.pipi-store-card__visual--photo figcaption {
  width: 100%;
  min-height: 100%;
  padding: 56px 20px 18px;
  display: flex;
  flex-direction: column;
  justify-content: end;
  color: #fff;
}

.pipi-store-card__visual--photo figcaption small {
  color: #ffd9ca;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.34);
}

.pipi-store-card__visual--photo figcaption strong {
  font-size: clamp(20px, 2vw, 25px);
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.48);
}

.pipi-store-card__body {
  padding: 24px;
  display: flex;
  flex: 1;
  flex-direction: column;
}

.pipi-store-card__meta {
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
}

.pipi-store-card__prefecture {
  margin: 0;
  color: var(--locator-orange-dark);
  font-size: 10px;
  font-weight: 900;
}

.pipi-store-card__status {
  padding: 4px 8px;
  border-radius: 999px;
  color: #9a4c22;
  background: #fff0df;
  font-size: 8px;
  font-weight: 900;
  line-height: 1.2;
}

.pipi-store-card__body h4 {
  margin: 0;
  font-size: clamp(19px, 2vw, 23px);
  line-break: strict;
  line-height: 1.35;
  letter-spacing: -0.035em;
  overflow-wrap: anywhere;
  text-wrap: balance;
  word-break: normal;
}

.pipi-store-card__body dl {
  margin: 22px 0 0;
  border-top: 1px solid #ebe6e0;
}

.pipi-store-card__body dl > div {
  padding: 11px 0;
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  gap: 12px;
  border-bottom: 1px solid #ebe6e0;
}

.pipi-store-card__body dt,
.pipi-store-card__body dd {
  margin: 0;
  font-size: 11px;
  line-height: 1.65;
}

.pipi-store-card__body dt {
  color: #8a817a;
}

.pipi-store-card__body dd {
  color: #48413c;
  font-weight: 700;
}

.pipi-store-card__body dd a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: rgba(241, 90, 59, 0.42);
  text-underline-offset: 3px;
}

.pipi-store-card__related-list {
  margin-top: 14px;
}

.pipi-store-card__related {
  padding: 13px 14px;
  display: grid;
  gap: 3px;
  border: 1px solid #ead9c2;
  border-radius: 12px;
  color: #4e3d2d;
  background: #fff9ef;
}

.pipi-store-card__related small {
  color: #a46b35;
  font-size: 7px;
  font-weight: 900;
  letter-spacing: 0.13em;
}

.pipi-store-card__related strong {
  font-size: 11px;
}

.pipi-store-card__related span {
  color: #786b60;
  font-size: 9px;
  line-height: 1.55;
}

.pipi-store-card__actions {
  margin-top: auto;
  padding-top: 22px;
  display: grid;
  gap: 8px;
}

.pipi-store-card__primary,
.pipi-store-card__secondary {
  min-height: 48px;
  padding: 0 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  white-space: nowrap;
}

.pipi-store-card__primary {
  color: #fff;
  background: var(--locator-orange);
}

.pipi-store-card__secondary {
  border: 1px solid rgba(241, 90, 59, 0.48);
  color: var(--locator-orange-dark);
  background: #fff;
}

.pipi-store-card__primary:hover,
.pipi-store-card__secondary:hover {
  transform: translateY(-1px);
}

.pipi-store-card__primary.is-disabled {
  cursor: default;
  color: #765d45;
  background: #efe5d8;
}

@media (min-width: 520px) {
  .pipi-store-card__actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pipi-store-card__primary.is-disabled:only-child {
    grid-column: 1 / -1;
  }
}

.pipi-store-card__map {
  margin: 20px -24px -24px;
  border-top: 1px solid #ded7d0;
}

.pipi-store-card__map summary {
  min-height: 56px;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  color: #4f4741;
  cursor: pointer;
  list-style: none;
  font-size: 11px;
  font-weight: 900;
}

.pipi-store-card__map summary::-webkit-details-marker {
  display: none;
}

.pipi-store-card__map summary::marker {
  content: "";
}

.pipi-store-card__map summary:focus-visible {
  outline: 3px solid rgba(241, 90, 59, 0.38);
  outline-offset: -3px;
}

.pipi-store-card__map summary i {
  color: var(--locator-orange);
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  transition: transform 180ms ease;
}

.pipi-store-card__map[open] summary i {
  transform: rotate(45deg);
}

.pipi-store-card__map-content {
  border-top: 1px solid #ded7d0;
  background: #f7f3ef;
}

.pipi-store-card__map-content iframe {
  width: 100%;
  height: 240px;
  display: block;
  border: 0;
  background: #e7e1db;
}

.pipi-store-card__map-content > a {
  min-height: 48px;
  padding: 10px 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: var(--locator-orange-dark);
  border-top: 1px solid #ded7d0;
  background: #fff;
  font-size: 10px;
  font-weight: 900;
}

@media (max-width: 1050px) {
  .store-locator-hero-inner {
    grid-template-columns: minmax(0, 0.9fr) minmax(430px, 1.1fr);
  }

  .store-locator-hero-copy {
    padding: 48px;
  }

  .pipi-store-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .store-index-page .store-filters {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .store-locator-hero-inner {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .store-locator-hero-visual {
    min-height: 430px;
  }

  .store-locator-heading {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .store-nearby-tool {
    grid-template-columns: 1fr;
  }

  .store-nearby-tool button {
    width: 100%;
  }

  .store-nearby-tool .store-location-status {
    margin-left: 0;
    grid-column: 1;
  }
}

@media (max-width: 760px) {
  .store-locator-shell {
    width: calc(100% - 28px);
  }

  .store-locator-hero {
    padding: 18px 0 64px;
  }

  .store-locator-hero-inner {
    border-radius: 20px;
  }

  .store-locator-hero-copy {
    padding: 36px 24px 40px;
  }

  .store-locator-hero-copy h1 {
    margin-bottom: 20px;
    font-size: clamp(44px, 14vw, 62px);
  }

  .store-locator-hero-copy > strong {
    font-size: 20px;
  }

  .store-locator-hero-link {
    width: 100%;
  }

  .store-locator-hero-visual {
    min-height: 320px;
  }

  .store-locator-hero-visual figcaption {
    min-width: 0;
    right: 14px;
    bottom: 14px;
    left: 14px;
  }

  .store-locator-section {
    padding: 68px 0 86px;
  }

  .store-locator-heading h2 {
    font-size: clamp(34px, 10vw, 44px);
    white-space: normal;
  }

  .store-locator-panel {
    margin-top: 30px;
    padding: 18px;
    border-radius: 18px;
  }

  .store-nearby-tool {
    padding: 22px 18px;
    border-radius: 14px;
  }

  .store-nearby-tool button {
    min-width: 0;
  }

  .store-index-page .store-filters {
    display: flex;
    margin-right: -18px;
    padding-right: 18px;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .store-index-page .store-filters::-webkit-scrollbar {
    display: none;
  }

  .store-index-page .store-filter {
    flex: 0 0 auto;
  }

  .store-index-page .store-region-hubs {
    grid-template-columns: 1fr;
  }

  .store-results-bar {
    min-height: 58px;
    margin-top: 30px;
    padding: 0 16px;
    top: 70px;
  }

  .store-results-bar p strong {
    font-size: 19px;
  }

  .store-results-bar a {
    font-size: 10px;
  }

  .pipi-store-results {
    gap: 54px;
  }

  .pipi-store-group {
    padding-top: 54px;
  }

  .pipi-store-card-grid {
    grid-template-columns: 1fr;
  }

  .pipi-store-card__visual {
    min-height: 152px;
  }

  .pipi-store-card__visual strong {
    font-size: 25px;
  }

  .pipi-store-card__body h4 {
    font-size: 22px;
  }

  .pipi-store-card__map-content iframe {
    height: 230px;
  }
}

@media (max-width: 420px) {
  .store-locator-hero-copy {
    padding-right: 20px;
    padding-left: 20px;
  }

  .store-locator-hero-copy h1 {
    font-size: 43px;
  }

  .store-locator-heading h2 {
    font-size: 32px;
  }

  .store-nearby-tool > div > span {
    width: 44px;
    height: 44px;
  }

  .store-nearby-tool p strong {
    font-size: 17px;
  }

  .store-results-bar {
    padding: 0 13px;
  }

  .store-results-bar a span {
    display: none;
  }
}

/* Journal index: compact first view and category navigation. */
.journal-page .page-hero {
  padding: clamp(50px, 6vw, 78px) max(24px, calc((100vw - 1180px) / 2));
}

.journal-page .page-hero h1 {
  max-width: 720px;
  font-size: clamp(42px, 5vw, 64px);
  line-height: 1.15;
}

.journal-page .page-hero h1 span {
  display: block;
}

.journal-page .page-hero > p:last-of-type {
  margin-top: 18px;
  line-height: 1.8;
}

.journal-page .journal-category-section {
  padding: clamp(54px, 6vw, 80px) 0;
}

.journal-page .journal-category-section .subpage-heading h2 {
  font-size: clamp(32px, 3.6vw, 48px);
}

.journal-page .journal-category-grid {
  margin-top: 32px;
  gap: 14px;
}

.journal-page .journal-category {
  min-height: 190px;
  padding: 26px;
}

.journal-page .journal-category h2 {
  margin: 10px 0 4px;
  font-size: 24px;
}

.journal-page .journal-category p {
  line-height: 1.65;
}

@media (max-width: 760px) {
  .journal-page .page-hero {
    padding: 34px 18px 42px;
  }

  .journal-page .page-hero h1 {
    font-size: clamp(34px, 9vw, 42px);
    line-height: 1.18;
  }

  .journal-page .page-hero > p:last-of-type {
    margin-top: 14px;
    font-size: 14px;
    line-height: 1.7;
  }

  .journal-page .journal-category-section {
    padding: 38px 0 42px;
  }

  .journal-page .journal-category-section .eyebrow {
    margin-bottom: 8px;
  }

  .journal-page .journal-category-section .subpage-heading h2 {
    font-size: clamp(28px, 7.8vw, 32px);
  }

  .journal-page .journal-category-grid {
    margin-top: 22px;
    gap: 10px;
  }

  .journal-page .journal-category {
    min-height: 0;
    padding: 18px 20px;
    justify-content: flex-start;
  }

  .journal-page .journal-category span {
    font-size: 11px;
  }

  .journal-page .journal-category h2 {
    margin: 6px 0 3px;
    font-size: 21px;
  }

  .journal-page .journal-category p {
    font-size: 11px;
    line-height: 1.6;
  }
}

/* Guide index and pillar article. */
.guide-shell {
  width: min(1086px, calc(100% - 48px));
  margin-inline: auto;
}

.guide-index-hero,
.guide-article-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(72px, 9vw, 128px) 0;
  background: #f6efe7;
}

.guide-index-hero::after,
.guide-article-hero::after {
  position: absolute;
  right: max(24px, calc((100vw - 1180px) / 2));
  bottom: -46px;
  color: rgba(184, 144, 79, .08);
  content: "GUIDE";
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(90px, 15vw, 220px);
  font-weight: 700;
  line-height: 1;
  pointer-events: none;
}

.guide-index-hero .guide-shell,
.guide-article-hero .guide-shell {
  position: relative;
  z-index: 1;
}

.guide-index-hero h1,
.guide-article-hero h1 {
  max-width: 850px;
  margin: 14px 0 24px;
  font-family: var(--serif);
  font-size: clamp(48px, 6.5vw, 84px);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: 1.16;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.guide-index-hero .guide-shell > p:last-child,
.guide-article-lead {
  max-width: 740px;
  margin: 0;
  color: #625b54;
  font-size: clamp(16px, 1.6vw, 19px);
  line-height: 2;
}

.guide-feature-section,
.guide-path-section,
.guide-policy-section {
  padding: clamp(72px, 8vw, 116px) 0;
}

.guide-feature-section {
  background: #fff;
}

.guide-path-section {
  background: #f3f0ea;
}

.guide-policy-section {
  border-top: 1px solid #e5dbd1;
  background: var(--surface-soft);
  color: var(--ink);
}

.guide-section-heading {
  margin-bottom: 38px;
}

.guide-section-heading h2,
.guide-policy-layout h2,
.guide-article-body h2 {
  margin: 8px 0 0;
  font-size: clamp(34px, 4.3vw, 54px);
  line-height: 1.3;
  letter-spacing: -.045em;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.guide-feature-card {
  position: relative;
  display: grid;
  min-width: 0;
  padding: clamp(32px, 5vw, 64px);
  overflow: hidden;
  border: 1px solid #eadbd1;
  border-top: 5px solid var(--brand-coral);
  border-radius: var(--corner-sharp);
  background: var(--surface-soft);
  color: var(--ink);
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 30px;
}

.guide-feature-card > div {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.guide-feature-card > div > span {
  color: var(--brand-coral-dark);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .16em;
}

.guide-feature-card h3 {
  max-width: 720px;
  margin: 18px 0;
  font-size: clamp(34px, 5vw, 64px);
  line-height: 1.25;
  letter-spacing: -.05em;
  text-wrap: balance;
}

.guide-feature-card p {
  max-width: 680px;
  margin: 0 0 18px;
  color: #5e554e;
  line-height: 1.9;
}

.guide-feature-card b {
  color: #766b62;
  font-size: 12px;
}

.guide-feature-card > i {
  color: rgba(184, 144, 79, .18);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(110px, 15vw, 190px);
  font-style: normal;
  line-height: .8;
}

.guide-feature-card > strong {
  display: flex;
  min-height: 56px;
  padding: 0 22px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #e4d8cf;
  color: #2a2622;
  align-items: center;
  justify-content: space-between;
  grid-column: 1 / -1;
}

.guide-path-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.guide-path-grid a {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 260px;
  padding: 28px;
  border: 1px solid #e2d8cd;
  border-radius: 20px;
  background: #fff;
  color: #27231f;
  flex-direction: column;
}

.guide-path-grid a > span {
  color: #e0553e;
  font-size: 12px;
  font-weight: 900;
}

.guide-path-grid h3 {
  margin: 30px 0 12px;
  font-size: 25px;
  line-height: 1.4;
}

.guide-path-grid p {
  margin: 0;
  color: #6a625b;
  line-height: 1.8;
}

.guide-path-grid i {
  margin-top: auto;
  padding-top: 18px;
  color: #e0553e;
  font-size: 22px;
  font-style: normal;
}

.guide-policy-layout {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: start;
  gap: clamp(34px, 7vw, 94px);
}

.guide-policy-layout p {
  margin: 0 0 22px;
  color: #5e554e;
  line-height: 2;
}

.guide-policy-layout a {
  color: var(--brand-coral-dark);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 6px;
}

.guide-article-hero {
  padding-bottom: clamp(60px, 8vw, 100px);
}

.guide-article-meta {
  display: flex;
  margin-top: 34px;
  color: #746a61;
  font-size: 12px;
  flex-wrap: wrap;
  gap: 12px 24px;
}

.guide-article-meta a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.guide-article-layout {
  display: grid;
  padding-top: clamp(58px, 7vw, 92px);
  padding-bottom: clamp(80px, 9vw, 132px);
  grid-template-columns: 240px minmax(0, 1fr);
  align-items: start;
  gap: clamp(40px, 7vw, 92px);
}

.guide-toc {
  position: sticky;
  top: 112px;
  padding: 24px;
  border: 1px solid #e4dbd1;
  border-radius: 16px;
  background: #fbf8f3;
}

.guide-toc summary {
  display: block;
  margin-bottom: 14px;
  color: #342e2a;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
  list-style: none;
}

.guide-toc summary::-webkit-details-marker {
  display: none;
}

.guide-toc ol {
  display: grid;
  margin: 0;
  padding: 0 0 0 20px;
  gap: 10px;
}

.guide-toc a {
  color: #605851;
  font-size: 12px;
  line-height: 1.6;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.guide-article-body {
  min-width: 0;
}

.guide-article-body > section {
  padding: clamp(46px, 6vw, 72px) 0;
  border-bottom: 1px solid #e1d9d0;
  scroll-margin-top: 110px;
}

.guide-article-body > section:first-child {
  padding-top: 0;
}

.guide-article-body > section > p:not(.eyebrow):not(.guide-source-inline) {
  margin: 24px 0 0;
  color: #514b46;
  font-size: 16px;
  line-height: 2.05;
}

.guide-summary {
  padding: clamp(30px, 4vw, 44px) !important;
  border: 1px solid #eadbd1 !important;
  border-left: 5px solid var(--brand-coral) !important;
  border-radius: var(--corner-sharp);
  background: var(--surface-soft);
  color: var(--ink);
}

.guide-summary-grid {
  display: grid;
  margin-top: 28px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.guide-summary-grid span {
  padding: 15px 16px;
  border: 1px solid #e6dbd1;
  border-radius: var(--corner-sharp);
  background: var(--surface-main);
  color: #4d4640;
  font-size: 13px;
}

.guide-checkpoint {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  align-items: start;
  gap: 20px;
}

.guide-checkpoint > span {
  color: #df573f;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 38px;
  line-height: 1;
}

.guide-checkpoint h2 {
  margin-top: 5px;
}

.guide-question-box,
.guide-decision-card {
  margin-top: 30px;
  padding: 26px 28px;
  border-radius: 16px;
  background: #f6f1eb;
}

.guide-question-box strong {
  font-size: 18px;
}

.guide-question-box ul,
.guide-decision-card ul {
  display: grid;
  margin: 16px 0 0;
  padding-left: 1.2em;
  color: #5d554e;
  gap: 10px;
  line-height: 1.8;
}

.guide-compare-grid {
  display: grid;
  margin-top: 30px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.guide-compare-grid article {
  min-width: 0;
  padding: 22px;
  border: 1px solid #e2d9d0;
  border-radius: 14px;
}

.guide-compare-grid span {
  color: #df573f;
  font-size: 11px;
  font-weight: 900;
}

.guide-compare-grid h3 {
  margin: 10px 0 8px;
  font-size: 19px;
}

.guide-compare-grid p {
  margin: 0;
  color: #6a625b;
  font-size: 13px;
  line-height: 1.75;
}

.guide-source-inline {
  margin: 20px 0 0;
  color: #70675f;
  font-size: 12px;
  line-height: 1.7;
}

.guide-source-inline a,
.guide-references a {
  color: #8c552e;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.guide-observation-list {
  display: grid;
  margin: 30px 0 0;
  padding: 0;
  list-style: none;
}

.guide-observation-list li {
  display: grid;
  padding: 20px 0;
  border-top: 1px solid #e2dad1;
  grid-template-columns: 86px minmax(0, 1fr);
  gap: 18px;
}

.guide-observation-list li:last-child {
  border-bottom: 1px solid #e2dad1;
}

.guide-observation-list b {
  color: #df573f;
}

.guide-observation-list span {
  color: #58514b;
  line-height: 1.8;
}

.guide-decision-card h3 {
  margin: 8px 0 0;
  font-size: 25px;
}

.guide-pipi-links > div:not(.pipi-heading) {
  display: grid;
  margin-top: 26px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.guide-pipi-links a {
  display: flex;
  min-width: 0;
  min-height: 68px;
  padding: 0 20px;
  border: 1px solid #e4d9cf;
  border-radius: var(--corner-sharp);
  background: var(--surface-accent);
  color: #302a26;
  font-weight: 800;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.guide-pipi-links i {
  color: #efb45b;
  font-style: normal;
}

.guide-references ol {
  display: grid;
  margin: 26px 0 0;
  padding-left: 1.2em;
  gap: 18px;
}

.guide-references li {
  padding-left: 8px;
  line-height: 1.8;
}

.guide-references li span {
  display: block;
  color: #786f67;
  font-size: 12px;
}

.guide-references > p:last-child {
  padding: 18px 20px;
  border-radius: 12px;
  background: #f6f1eb;
  font-size: 13px !important;
  line-height: 1.8 !important;
}

@media (max-width: 860px) {
  .guide-article-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .guide-toc {
    position: static;
  }

  .guide-toc summary {
    display: flex;
    margin: 0;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
  }

  .guide-toc summary::after {
    display: grid;
    width: 28px;
    height: 28px;
    border: 1px solid #dfd2c7;
    border-radius: 50%;
    color: #d6533a;
    content: "+";
    font-size: 18px;
    line-height: 1;
    place-items: center;
  }

  .guide-toc[open] summary {
    margin-bottom: 14px;
  }

  .guide-toc[open] summary::after {
    content: "−";
  }

  .guide-toc:not([data-guide-toc-ready]) > ol {
    display: none;
  }
}

@media (max-width: 760px) {
  .guide-shell {
    width: min(100% - 36px, 1086px);
  }

  .guide-index-hero,
  .guide-article-hero {
    padding: 52px 0 60px;
  }

  .guide-index-hero h1,
  .guide-article-hero h1 {
    margin: 10px 0 18px;
    font-size: clamp(39px, 11.5vw, 48px);
    line-height: 1.2;
  }

  .guide-index-hero .guide-shell > p:last-child,
  .guide-article-lead {
    font-size: 14px;
    line-height: 1.85;
  }

  .guide-feature-section,
  .guide-path-section,
  .guide-policy-section {
    padding: 56px 0;
  }

  .guide-section-heading h2,
  .guide-policy-layout h2,
  .guide-article-body h2 {
    font-size: clamp(28px, 8.2vw, 36px);
  }

  .guide-feature-card {
    padding: 28px 22px;
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }

  .guide-feature-card h3 {
    font-size: 34px;
  }

  .guide-feature-card > i {
    display: none;
  }

  .guide-path-grid,
  .guide-policy-layout,
  .guide-summary-grid,
  .guide-compare-grid,
  .guide-pipi-links > div:not(.pipi-heading) {
    grid-template-columns: minmax(0, 1fr);
  }

  .guide-path-grid a {
    min-height: 0;
    padding: 24px 20px;
  }

  .guide-path-grid h3 {
    margin-top: 18px;
  }

  .guide-article-meta {
    margin-top: 24px;
    gap: 8px 14px;
  }

  .guide-article-layout {
    padding-top: 42px;
    padding-bottom: 80px;
    gap: 34px;
  }

  .guide-toc {
    padding: 20px;
  }

  .guide-toc summary {
    display: flex;
    margin: 0;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
  }

  .guide-toc summary::after {
    display: grid;
    width: 28px;
    height: 28px;
    border: 1px solid #dfd2c7;
    border-radius: 50%;
    color: #d6533a;
    content: "+";
    font-size: 18px;
    line-height: 1;
    place-items: center;
  }

  .guide-toc[open] summary {
    margin-bottom: 14px;
  }

  .guide-toc[open] summary::after {
    content: "−";
  }

  .guide-toc:not([data-guide-toc-ready]) > ol {
    display: none;
  }

  .guide-article-body > section {
    padding: 46px 0;
  }

  .guide-summary {
    padding: 26px 20px !important;
  }

  .guide-checkpoint {
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 12px;
  }

  .guide-checkpoint > span {
    font-size: 30px;
  }

  .guide-question-box,
  .guide-decision-card {
    padding: 22px 20px;
  }

  .guide-observation-list li {
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 12px;
  }
}

/* Personal-gym decision guide: a narrative comparison LP for visitors who
   already know PiPi and need reassurance before choosing a studio. */
.guide-decision-page main {
  background: #fff;
}

.guide-decision-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(72px, 8vw, 118px) 0 clamp(78px, 9vw, 126px);
  background:
    radial-gradient(circle at 87% 24%, rgba(231, 171, 73, .2), transparent 31%),
    linear-gradient(135deg, #fffaf3 0%, #f7efe4 48%, #fff 100%);
}

.guide-decision-hero::before {
  position: absolute;
  top: -100px;
  right: -90px;
  width: 390px;
  height: 390px;
  border: 1px solid rgba(174, 124, 51, .18);
  border-radius: 50%;
  content: "";
}

.guide-decision-hero .guide-shell {
  position: relative;
  max-width: 1086px;
}

.guide-decision-hero h1 {
  max-inline-size: 820px;
  margin: 16px 0 24px;
  color: #26211e;
  font-size: clamp(48px, 6.3vw, 82px);
  letter-spacing: -.035em;
  line-break: strict;
  line-height: 1.22;
  text-wrap: balance;
}

.guide-decision-hero .guide-shell > p:not(.eyebrow) {
  max-inline-size: 710px;
  margin: 0;
  color: #574f48;
  font-size: clamp(16px, 1.7vw, 20px);
  line-height: 2;
}

.guide-hero-actions {
  display: flex;
  margin-top: 36px;
  flex-wrap: wrap;
  gap: 10px;
}

.guide-hero-actions a {
  display: inline-flex;
  min-height: 58px;
  padding: 0 26px;
  border: 1px solid #3a332e;
  border-radius: 999px;
  color: #342e2a;
  font-size: 14px;
  font-weight: 900;
  align-items: center;
  justify-content: center;
  gap: 18px;
}

.guide-hero-actions a:first-child {
  border-color: #ef6047;
  background: #ef6047;
  color: #fff;
}

.guide-decision-layout {
  grid-template-columns: 230px minmax(0, 1fr);
}

.guide-decision-body > section {
  padding: clamp(68px, 8vw, 100px) 0;
}

.guide-decision-body > section:first-child {
  padding-top: 0;
}

.guide-decision-body h2 {
  max-inline-size: 760px;
  margin: 12px 0 0;
  color: #2d2824;
  font-size: clamp(34px, 4.1vw, 54px);
  letter-spacing: -.025em;
  line-break: strict;
  line-height: 1.35;
  overflow-wrap: anywhere;
  text-wrap: balance;
  word-break: normal;
}

.guide-decision-lead {
  max-inline-size: 760px;
  margin: 26px 0 0 !important;
  color: #554d47 !important;
  font-size: clamp(16px, 1.6vw, 19px) !important;
  line-height: 2 !important;
}

.guide-anxiety-grid {
  display: grid;
  margin-top: 38px;
  overflow: hidden;
  border: 1px solid #e7ddd4;
  border-radius: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
}

.guide-decision-anxiety h2 > span {
  display: block;
}

.guide-anxiety-grid article {
  display: grid;
  min-width: 0;
  min-height: 108px;
  padding: 24px;
  border: 0;
  border-radius: 0;
  background: #fffdfa;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
}

.guide-anxiety-grid article:nth-child(odd) {
  border-right: 1px solid #e7ddd4;
}

.guide-anxiety-grid article:nth-child(-n + 2) {
  border-bottom: 1px solid #e7ddd4;
}

.guide-anxiety-grid span {
  color: #d7543e;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 16px;
}

.guide-anxiety-grid p {
  margin: 0;
  color: #3d3732;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.75;
}

.guide-empathy-statement {
  margin-top: 38px;
  padding: clamp(30px, 4vw, 46px);
  border: 1px solid #eadbd1;
  border-left: 5px solid #e45a43;
  background: var(--surface-accent);
  color: #302a26;
}

.guide-empathy-statement small {
  color: var(--brand-coral-dark);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
}

.guide-empathy-statement p {
  margin: 16px 0 0;
  color: #302a26;
  font-size: clamp(20px, 2.5vw, 30px);
  font-weight: 900;
  line-height: 1.7;
}

.guide-decision-answer {
  position: relative;
}

.guide-decision-answer::before {
  position: absolute;
  top: 60px;
  right: 0;
  color: #f6eee5;
  content: "PIPI";
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(72px, 12vw, 150px);
  line-height: 1;
  pointer-events: none;
  z-index: 0;
}

.guide-decision-answer > * {
  position: relative;
  z-index: 1;
}

.guide-pipi-process {
  display: grid;
  margin: 42px 0 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.guide-pipi-process li {
  display: grid;
  min-width: 0;
  padding: 26px;
  border: 1px solid #eadfd6;
  border-radius: 16px;
  background: #fffaf6;
  grid-template-columns: 78px minmax(0, 1fr);
  gap: 14px;
}

.guide-pipi-process li > span {
  color: #d6533a;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 21px;
}

.guide-pipi-process small {
  color: #a87839;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .14em;
}

.guide-pipi-process h3 {
  margin: 5px 0 10px;
  color: #332d29;
  font-size: 20px;
}

.guide-pipi-process p {
  margin: 0;
  color: #615850;
  font-size: 13px;
  line-height: 1.8;
}

.guide-text-link,
.guide-primary-inline {
  display: inline-flex;
  margin-top: 28px;
  color: #a94b37;
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 6px;
  align-items: center;
  gap: 10px;
}

.guide-primary-inline {
  min-height: 54px;
  padding: 0 22px;
  border-radius: 999px;
  background: #ef6047;
  color: #fff;
  text-decoration: none;
}

.guide-change-list {
  display: grid;
  margin-top: 40px;
  gap: 18px;
}

.guide-change-list article {
  display: grid;
  min-width: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #e4d8cf;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(76, 54, 43, .05);
  grid-template-columns: minmax(0, 1fr) 52px minmax(0, 1fr);
  align-items: stretch;
  gap: 0;
}

.guide-change-list article > div {
  display: flex;
  position: relative;
  min-width: 0;
  min-height: 170px;
  padding: 26px;
  flex-direction: column;
  justify-content: center;
}

.guide-change-before {
  background: var(--surface-soft);
}

.guide-change-after {
  border-left: 3px solid var(--brand-coral);
  background: var(--surface-accent);
}

.guide-change-label {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 7px;
}

.guide-change-label small {
  display: block;
  margin: 0;
  color: var(--brand-coral-dark);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .16em;
}

.guide-change-label strong {
  color: #786d64;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
}

.guide-change-list p {
  margin: 18px 0 0;
  color: #3f3934;
  font-size: 16px;
  font-weight: 900;
  line-height: 1.75;
}

.guide-change-list i {
  display: grid;
  position: relative;
  z-index: 2;
  width: 36px;
  height: 36px;
  margin: auto;
  border: 1px solid var(--brand-coral);
  background: #fff;
  color: var(--brand-coral-dark);
  font-style: normal;
  place-items: center;
}

.guide-visit-flow {
  display: grid;
  margin: 42px 0 0;
  padding: 0;
  list-style: none;
  gap: 0;
}

.guide-visit-flow li {
  display: grid;
  position: relative;
  padding: 0 0 34px;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 16px;
}

.guide-visit-flow li:not(:last-child)::before {
  position: absolute;
  top: 52px;
  bottom: 5px;
  left: 25px;
  width: 1px;
  background: #dfd2c6;
  content: "";
}

.guide-visit-flow li > span {
  display: grid;
  width: 52px;
  height: 52px;
  border: 1px solid var(--brand-coral);
  border-radius: var(--corner-sharp);
  background: var(--surface-main);
  color: var(--brand-coral-dark);
  font-family: Georgia, "Times New Roman", serif;
  place-items: center;
}

.guide-visit-flow h3 {
  margin: 2px 0 8px;
  color: #342e29;
  font-size: 21px;
}

.guide-visit-flow p {
  margin: 0;
  color: #60574f;
  font-size: 14px;
  line-height: 1.85;
}

.guide-no-pressure-note {
  padding: 25px 28px;
  border: 1px solid #efb9ae;
  border-radius: 14px;
  background: #fff7f4;
}

.guide-no-pressure-note strong {
  color: #be4834;
  font-size: 18px;
}

.guide-no-pressure-note p {
  margin: 7px 0 0;
  color: #5b514a;
  font-size: 13px;
  line-height: 1.8;
}

.guide-fit-grid {
  display: grid;
  margin-top: 38px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.guide-fit-grid article {
  min-width: 0;
  padding: 28px;
  border: 1px solid #e4d9cf;
  border-radius: 16px;
  background: #fbf8f3;
}

.guide-fit-grid article.is-fit {
  border-top: 5px solid #ec634a;
  background: #fff8f4;
}

.guide-fit-grid small {
  color: #a14936;
  font-size: 13px;
  font-weight: 900;
}

.guide-fit-grid ul {
  display: grid;
  margin: 18px 0 0;
  padding: 0;
  color: #514943;
  list-style: none;
  gap: 13px;
}

.guide-fit-grid li {
  position: relative;
  padding-left: 24px;
  font-size: 14px;
  line-height: 1.7;
}

.guide-fit-grid li::before {
  position: absolute;
  left: 0;
  color: #d95841;
  content: "✓";
  font-weight: 900;
}

.guide-fit-grid article:not(.is-fit) li::before {
  color: #8b8178;
  content: "・";
}

.guide-price-story {
  padding: clamp(42px, 5vw, 58px) !important;
  border: 1px solid #eadbd1 !important;
  border-top: 5px solid var(--brand-coral) !important;
  border-radius: 20px;
  background: var(--surface-soft);
  color: #302a26;
}

.guide-price-story h2,
.guide-price-story .guide-decision-lead {
  color: #302a26 !important;
}

.guide-price-story .eyebrow {
  color: var(--brand-coral-dark);
}

.guide-price-link {
  display: flex;
  min-width: 0;
  min-height: 82px;
  margin-top: 30px;
  padding: 18px 22px;
  border-radius: 14px;
  border: 1px solid #e4d8cf;
  background: var(--surface-main);
  color: #302a26;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.guide-price-link span {
  min-width: 0;
}

.guide-price-link small {
  display: block;
  color: #c54d37;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .14em;
}

.guide-price-link strong {
  display: block;
  margin-top: 5px;
  font-size: 17px;
  line-height: 1.5;
}

.guide-price-link i {
  display: grid;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #ef6047;
  color: #fff;
  font-style: normal;
  flex: 0 0 auto;
  place-items: center;
}

.guide-safety-points {
  display: grid;
  margin-top: 36px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.guide-safety-points article {
  min-width: 0;
  padding: 22px;
  border: 1px solid #e5dacf;
  border-radius: 14px;
}

.guide-safety-points span {
  color: #d8553e;
  font-size: 11px;
  font-weight: 900;
}

.guide-safety-points h3 {
  margin: 10px 0 8px;
  color: #36302b;
  font-size: 17px;
}

.guide-safety-points p {
  margin: 0;
  color: #655c54;
  font-size: 12px;
  line-height: 1.75;
}

.guide-medical-note {
  margin: 22px 0 0 !important;
  padding: 18px 20px;
  border-radius: 12px;
  background: #f6f1eb;
  color: #62584f !important;
  font-size: 12px !important;
  line-height: 1.8 !important;
}

.guide-decision-checklist > ol {
  display: grid;
  margin: 36px 0 0;
  padding: 0;
  list-style: none;
  gap: 0;
}

.guide-decision-checklist > ol li {
  display: grid;
  padding: 20px 0;
  border-top: 1px solid #e2d8cf;
  grid-template-columns: 54px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
}

.guide-decision-checklist > ol li:last-child {
  border-bottom: 1px solid #e2d8cf;
}

.guide-decision-checklist > ol span {
  color: #d6533a;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
}

.guide-decision-checklist > ol p {
  margin: 0;
  color: #3e3833;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.7;
}

.guide-check-conclusion {
  margin-top: 30px;
  padding: 26px 28px;
  border-radius: 14px;
  background: #fff6ef;
}

.guide-check-conclusion p {
  margin: 0;
  color: #755f50;
  font-size: 13px;
}

.guide-check-conclusion strong {
  display: block;
  margin-top: 9px;
  color: #ae4633;
  font-size: 18px;
  line-height: 1.75;
}

.guide-final-choice {
  padding: clamp(42px, 6vw, 62px) !important;
  border: 0 !important;
  border-radius: 20px;
  background: linear-gradient(135deg, #ef6047, #e68b3d);
  color: #fff;
  text-align: center;
}

.guide-final-choice .eyebrow,
.guide-final-choice h2,
.guide-final-choice > p,
.guide-final-choice .pipi-heading__subtitle {
  color: #fff !important;
}

.guide-final-choice h2 {
  margin-inline: auto;
}

.guide-final-choice > p {
  max-inline-size: 610px;
  margin: 22px auto 0 !important;
  font-size: 15px !important;
  line-height: 1.9 !important;
}

.guide-final-choice > div:not(.pipi-heading) {
  display: flex;
  margin-top: 28px;
  flex-wrap: wrap;
  justify-content: center;
  gap: 9px;
}

.guide-final-choice a {
  display: inline-flex;
  min-height: 54px;
  padding: 0 22px;
  border: 1px solid #fff;
  border-radius: 999px;
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.guide-final-choice a:first-child {
  background: #fff;
  color: #c74b34;
}

.guide-final-choice > small {
  display: block;
  margin-top: 18px;
  color: rgba(255, 255, 255, .86);
  font-size: 10px;
}

@media (max-width: 860px) {
  .guide-decision-layout {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 760px) {
  .guide-decision-hero {
    padding: 44px 0 54px;
  }

  .guide-decision-hero::before {
    top: -70px;
    right: -150px;
    width: 300px;
    height: 300px;
  }

  .guide-decision-hero h1 {
    margin: 11px 0 18px;
    font-size: clamp(37px, 11vw, 46px);
    line-height: 1.25;
  }

  .guide-decision-hero .guide-shell > p:not(.eyebrow) {
    font-size: 14px;
    line-height: 1.9;
  }

  .guide-hero-actions {
    display: grid;
    margin-top: 28px;
    grid-template-columns: minmax(0, 1fr);
  }

  .guide-hero-actions a {
    min-height: 52px;
    padding-inline: 18px;
  }

  .guide-decision-layout {
    padding-top: 28px;
    gap: 26px;
  }

  .guide-decision-body > section {
    padding-block: 54px;
  }

  .guide-decision-body h2 {
    font-size: clamp(29px, 8.4vw, 36px);
    line-height: 1.42;
  }

  .guide-decision-lead {
    margin-top: 20px !important;
    font-size: 14px !important;
    line-height: 1.95 !important;
  }

  .guide-anxiety-grid,
  .guide-pipi-process,
  .guide-fit-grid,
  .guide-safety-points {
    grid-template-columns: minmax(0, 1fr);
  }

  .guide-anxiety-grid {
    margin-top: 28px;
  }

  .guide-anxiety-grid article {
    min-height: 0;
    padding: 18px;
    border-right: 0;
    border-bottom: 1px solid #e7ddd4;
  }

  .guide-anxiety-grid article:nth-child(odd) {
    border-right: 0;
  }

  .guide-anxiety-grid article:last-child {
    border-bottom: 0;
  }

  .guide-anxiety-grid p {
    font-size: 14px;
  }

  .guide-empathy-statement {
    margin-top: 28px;
    padding: 26px 22px;
  }

  .guide-empathy-statement p {
    font-size: 19px;
    line-height: 1.75;
  }

  .guide-empathy-statement br {
    display: none;
  }

  .guide-decision-answer::before {
    top: 52px;
    font-size: 82px;
  }

  .guide-pipi-process {
    margin-top: 30px;
  }

  .guide-pipi-process li {
    padding: 21px 18px;
  }

  .guide-change-list article {
    padding: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }

  .guide-change-list article > div {
    min-height: 0;
    padding: 22px 20px;
  }

  .guide-change-after {
    padding-top: 30px !important;
    border-top: 3px solid var(--brand-coral);
    border-left: 0;
  }

  .guide-change-list i {
    width: 36px;
    height: 36px;
    margin: -18px auto;
    font-size: 0;
    line-height: 1;
    text-align: center;
    transform: none;
  }

  .guide-change-list i::before {
    content: "↓";
    font-size: 16px;
  }

  .guide-visit-flow li {
    padding-bottom: 28px;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 14px;
  }

  .guide-visit-flow li:not(:last-child)::before {
    top: 52px;
    left: 25px;
  }

  .guide-visit-flow li > span {
    width: 52px;
    height: 52px;
  }

  .guide-visit-flow h3 {
    font-size: 18px;
  }

  .guide-no-pressure-note,
  .guide-fit-grid article,
  .guide-check-conclusion {
    padding: 21px 19px;
  }

  .guide-price-story {
    padding: 45px 20px !important;
    border-radius: 16px;
  }

  .guide-price-link {
    min-height: 76px;
    padding: 16px 17px;
  }

  .guide-price-link strong {
    font-size: 15px;
  }

  .guide-safety-points article {
    padding: 19px;
  }

  .guide-decision-checklist > ol li {
    padding: 17px 0;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 10px;
  }

  .guide-final-choice {
    padding: 42px 20px !important;
  }

  .guide-final-choice > div:not(.pipi-heading) {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Guide page standard: /guide/personal-gym/ is the reference template.
   All guide indexes, pillars and cluster articles inherit the same restrained
   corners, surfaces, headings, numbers, arrows and CTA behavior. */
.guide-standard-page {
  --guide-corner: var(--corner-sharp);
}

.guide-standard-page .guide-toc,
.guide-standard-page .guide-hero-actions a,
.guide-standard-page .guide-anxiety-grid,
.guide-standard-page .guide-pipi-process li,
.guide-standard-page .guide-primary-inline,
.guide-standard-page .guide-change-list article,
.guide-standard-page .guide-no-pressure-note,
.guide-standard-page .guide-fit-grid article,
.guide-standard-page .guide-price-story,
.guide-standard-page .guide-price-link,
.guide-standard-page .guide-safety-points article,
.guide-standard-page .guide-inline-sources a,
.guide-standard-page .guide-medical-note,
.guide-standard-page .guide-check-conclusion,
.guide-standard-page .guide-cluster-directory a,
.guide-standard-page .guide-final-choice,
.guide-standard-page .guide-final-choice a,
.guide-standard-page .guide-references > p:last-child,
.guide-standard-page .guide-network-summary,
.guide-standard-page .guide-research-questions li,
.guide-standard-page .guide-comparison article,
.guide-standard-page .guide-research-points li,
.guide-standard-page .guide-research-roadmap li,
.guide-standard-page .guide-research-caution,
.guide-standard-page .guide-research-caution li,
.guide-standard-page .guide-compact-checks li,
.guide-standard-page .guide-step-list li,
.guide-standard-page .guide-caution-box,
.guide-standard-page .guide-sibling-network > div > a,
.guide-standard-page .guide-topic-card,
.guide-standard-page .guide-direct-links a,
.guide-standard-page .pipi-button,
.guide-standard-page .header-cta,
.guide-standard-page .mobile-cta {
  border-radius: var(--guide-corner);
}

.pipi-button {
  display: inline-flex;
  min-width: 0;
  min-height: 52px;
  padding: 0 22px;
  border: 1px solid transparent;
  border-radius: var(--corner-sharp);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.4;
  text-align: center;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.pipi-button--primary {
  border-color: var(--brand-coral);
  background: var(--brand-coral);
  color: #fff;
}

.pipi-button--secondary {
  border-color: var(--ink);
  background: var(--surface-main);
  color: var(--ink);
}

/* The shared button display must not revive the desktop header CTA after the
   responsive header has switched to the store shortcut and menu button. */
@media (max-width: 1050px) {
  .site-header .header-cta.pipi-button {
    display: none;
  }
}

.guide-standard-heading-row {
  display: grid;
  min-width: 0;
  grid-template-columns: max-content minmax(0, 1fr);
  align-items: start;
  gap: 16px;
}

.guide-standard-heading-row > .pipi-number {
  margin-top: 26px;
}

.guide-standard-heading-row > .pipi-heading {
  min-width: 0;
}

@media (max-width: 760px) {
  .guide-standard-heading-row {
    gap: 10px;
  }

  .guide-standard-heading-row > .pipi-number {
    min-width: 62px;
    padding-inline: 8px 12px;
    margin-top: 22px;
  }
}

/* PiPi heading system — selected direction D: corner accent.
   One coral top-left corner groups the kicker and title. Do not add long
   underlines, filled kicker labels, large left rails, or rounded frames. */
.pipi-heading {
  width: 100%;
  max-inline-size: 820px;
  min-width: 0;
  padding: 26px 0 0 29px;
  position: relative;
}

.pipi-heading::before {
  width: 48px;
  height: 48px;
  border-top: 2px solid var(--brand-coral);
  border-left: 2px solid var(--brand-coral);
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  pointer-events: none;
}

.pipi-heading__kicker {
  display: flex;
  width: fit-content;
  max-width: 100%;
  margin: 0 0 13px;
  color: var(--brand-coral-dark);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .2em;
  line-height: 1.5;
  align-items: center;
}

.pipi-heading__title {
  max-inline-size: 100%;
  margin: 0 !important;
  padding-bottom: 0;
  position: relative;
  color: var(--ink);
  font-size: clamp(34px, 4.1vw, 54px);
  font-weight: 900;
  letter-spacing: -.025em;
  line-break: strict;
  line-height: 1.34;
  overflow-wrap: anywhere;
  text-wrap: balance;
  word-break: normal;
}

.pipi-heading__subtitle {
  max-inline-size: 720px;
  margin: 18px 0 0 !important;
  color: var(--ink-soft) !important;
  font-size: clamp(15px, 1.45vw, 18px) !important;
  line-height: 1.9 !important;
}

.pipi-heading--page {
  max-inline-size: 900px;
  padding: clamp(30px, 3vw, 38px) 0 0 clamp(31px, 3.1vw, 40px);
}

.pipi-heading--page::before {
  width: clamp(58px, 6vw, 76px);
  height: clamp(58px, 6vw, 76px);
}

.pipi-heading--page .pipi-heading__title {
  max-inline-size: 900px;
  font-family: var(--serif);
  font-size: clamp(48px, 5.4vw, 70px);
  font-weight: 500;
  letter-spacing: -.04em;
  line-height: 1.2;
}

.pipi-heading--page .pipi-heading__subtitle {
  max-inline-size: 760px;
  margin-top: 22px !important;
}

.pipi-heading--section {
  padding-top: 26px;
}

.pipi-heading--section::before {
  width: 48px;
  height: 48px;
}

.pipi-heading--center {
  padding: 0 26px;
  margin-inline: auto;
  text-align: center;
}

.pipi-heading--center::before {
  display: none;
}

.pipi-heading--center .pipi-heading__kicker,
.pipi-heading--center .pipi-heading__title,
.pipi-heading--center .pipi-heading__subtitle {
  margin-inline: auto !important;
}

.pipi-heading--compact {
  max-inline-size: 760px;
  padding: 22px 0 17px 24px;
  border-bottom: 1px solid var(--line);
}

.pipi-heading--compact::before {
  width: 38px;
  height: 38px;
}

.pipi-heading--compact .pipi-heading__title {
  font-size: clamp(27px, 3.2vw, 42px);
}

.pipi-heading--compact .pipi-heading__subtitle {
  margin-top: 12px !important;
  font-size: clamp(14px, 1.25vw, 16px) !important;
}

@media (max-width: 760px) {
  .pipi-heading__kicker {
    margin-bottom: 10px;
    font-size: 9px;
    letter-spacing: .15em;
  }

  .pipi-heading__title {
    font-size: clamp(29px, 8.4vw, 36px);
    line-height: 1.4;
  }

  .pipi-heading--page .pipi-heading__title {
    font-size: clamp(34px, 9.6vw, 42px);
    line-height: 1.28;
    text-wrap: pretty;
  }

  .pipi-heading {
    padding: 22px 0 0 23px;
  }

  .pipi-heading::before {
    width: 42px;
    height: 42px;
  }

  .pipi-heading__subtitle {
    margin-top: 14px !important;
    font-size: 14px !important;
    line-height: 1.85 !important;
  }

  .pipi-heading--page {
    padding: 26px 0 0 26px;
  }

  .pipi-heading--page::before {
    width: 52px;
    height: 52px;
  }

  .pipi-heading--center {
    padding: 0 19px;
  }

  .pipi-heading--compact {
    padding: 19px 0 14px 20px;
  }

  .pipi-heading--compact .pipi-heading__title {
    font-size: clamp(25px, 7.4vw, 32px);
  }

  .pipi-heading--compact::before {
    width: 34px;
    height: 34px;
  }
}

/* PiPi number system
   inline: rows/checklists, step: chronological flows, label: card groups,
   display: section decoration. Do not invent one-off number badges. */
.pipi-number {
  position: relative;
  font-family: Georgia, "Times New Roman", serif;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1;
}

.pipi-number.pipi-number--inline {
  display: inline-flex;
  width: max-content;
  min-width: 28px;
  padding-bottom: 7px;
  border: 0;
  background: transparent;
  color: #302a26;
  font-size: 16px;
  align-items: center;
  align-self: start;
  justify-content: flex-start;
}

.pipi-number.pipi-number--inline::after {
  position: absolute;
  right: 5px;
  bottom: 0;
  left: 0;
  height: 2px;
  background: var(--brand-coral);
  content: "";
}

.pipi-number.pipi-number--step {
  display: inline-grid;
  width: 52px;
  height: 52px;
  padding-top: 11px;
  border: 0;
  border-radius: 0;
  background:
    linear-gradient(var(--brand-coral), var(--brand-coral)) left top / 18px 2px no-repeat,
    linear-gradient(var(--brand-coral), var(--brand-coral)) left top / 2px 18px no-repeat,
    linear-gradient(var(--brand-coral), var(--brand-coral)) right bottom / 18px 2px no-repeat,
    linear-gradient(var(--brand-coral), var(--brand-coral)) right bottom / 2px 18px no-repeat,
    var(--surface-main);
  color: var(--brand-coral-dark);
  font-size: 18px;
  place-items: center;
}

.pipi-number.pipi-number--step::before {
  position: absolute;
  top: 8px;
  left: 0;
  width: 100%;
  color: #7e6f64;
  content: "STEP";
  font-family: Arial, sans-serif;
  font-size: 7px;
  font-weight: 900;
  letter-spacing: .13em;
  text-align: center;
}

.pipi-number.pipi-number--label {
  display: inline-flex;
  width: max-content;
  min-width: 72px;
  height: 30px;
  padding: 0 14px 0 10px;
  border-radius: 0;
  background: var(--brand-coral);
  color: #fff;
  clip-path: polygon(5px 0, 100% 0, calc(100% - 7px) 50%, 100% 100%, 5px 100%, 0 50%);
  font-family: inherit;
  font-size: 13px;
  align-items: center;
  align-self: start;
  justify-content: center;
}

.pipi-number.pipi-number--label::before {
  margin-right: 5px;
  content: "POINT";
  font-family: Arial, sans-serif;
  font-size: 7px;
  font-weight: 900;
  letter-spacing: .1em;
}

.pipi-number.pipi-number--display {
  display: block;
  width: max-content;
  padding-left: 16px;
  color: rgba(184, 144, 79, .24);
  font-size: clamp(54px, 8vw, 104px);
  letter-spacing: -.05em;
  line-height: .8;
}

.pipi-number.pipi-number--display::before {
  position: absolute;
  top: 8%;
  bottom: 6%;
  left: 0;
  width: 2px;
  background: var(--brand-coral);
  content: "";
}

.pipi-number.pipi-number--display::after {
  position: absolute;
  top: -17px;
  left: 16px;
  color: var(--brand-coral-dark);
  content: "POINT";
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .14em;
}

/* PiPi arrow system
   link: inline CTA direction, action: card/page transition,
   flow: state change such as before/after. Avoid raw arrow glyphs. */
.pipi-arrow {
  display: inline-block;
  position: relative;
  flex: 0 0 auto;
  color: inherit;
  line-height: 1;
  vertical-align: middle;
}

.pipi-arrow::before,
.pipi-arrow::after {
  position: absolute;
  box-sizing: border-box;
  content: "";
}

.pipi-arrow.pipi-arrow--link {
  width: 0;
  height: 0;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 6px solid currentColor;
  flex: 0 0 auto;
}

.pipi-arrow.pipi-arrow--link::before,
.pipi-arrow.pipi-arrow--link::after {
  display: none;
}

.pipi-arrow.pipi-arrow--action,
.pipi-arrow.pipi-arrow--flow {
  width: 38px;
  height: 38px;
  border: 1px solid currentColor;
  border-radius: 0;
  background: var(--surface-main);
  color: var(--brand-coral-dark);
}

.pipi-arrow.pipi-arrow--action::before,
.pipi-arrow.pipi-arrow--flow::before {
  top: 17px;
  left: 10px;
  width: 15px;
  height: 2px;
  background: currentColor;
}

.pipi-arrow.pipi-arrow--action::after,
.pipi-arrow.pipi-arrow--flow::after {
  top: 13px;
  right: 7px;
  width: 0;
  height: 0;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 7px solid currentColor;
  transform: none;
}

.pipi-arrow.pipi-arrow--flow {
  width: 36px;
  height: 36px;
}

.pipi-arrow.pipi-arrow--flow::before {
  top: 16px;
  left: 9px;
}

.pipi-arrow.pipi-arrow--flow::after {
  top: 12px;
  right: 6px;
}

a .pipi-arrow--link,
a .pipi-arrow--action {
  transition: transform 180ms ease;
}

a:hover .pipi-arrow--link,
a:focus-visible .pipi-arrow--link,
a:hover .pipi-arrow--action,
a:focus-visible .pipi-arrow--action {
  transform: translateX(3px);
}

@media (max-width: 760px) {
  .guide-change-list .pipi-arrow--flow {
    transform: none;
  }

  .guide-change-list .pipi-arrow--flow::before {
    top: 7px;
    left: 16px;
    width: 2px;
    height: 14px;
    content: "";
  }

  .guide-change-list .pipi-arrow--flow::after {
    top: 20px;
    right: auto;
    left: 12px;
    border-top: 7px solid currentColor;
    border-right: 5px solid transparent;
    border-bottom: 0;
    border-left: 5px solid transparent;
  }
}

@media (prefers-reduced-motion: reduce) {
  a .pipi-arrow--link,
  a .pipi-arrow--action {
    transition: none;
  }
}

/* Compact guide index: one screen of choices before supporting links. */
.guide-index-page main {
  background: #f3f0ea;
}

.guide-index-page .guide-index-hero {
  padding: clamp(38px, 5vw, 66px) 0 clamp(42px, 5.5vw, 72px);
}

.guide-index-page .guide-index-hero::after {
  right: max(18px, calc((100vw - 1180px) / 2));
  bottom: -32px;
  font-size: clamp(74px, 12vw, 156px);
}

.guide-index-page .guide-index-hero h1 {
  max-inline-size: 940px;
  margin: 10px 0 14px;
  font-size: clamp(38px, 5vw, 62px);
  line-break: strict;
  line-height: 1.18;
  overflow-wrap: anywhere;
  text-wrap: balance;
  word-break: normal;
}

.guide-index-page .guide-index-hero .guide-shell > p:last-child {
  max-inline-size: 690px;
  font-size: clamp(14px, 1.4vw, 17px);
  line-height: 1.75;
}

.guide-topic-section {
  padding: clamp(42px, 5.5vw, 72px) 0;
}

.guide-topic-heading {
  margin-bottom: 24px;
}

.guide-topic-heading > div,
.guide-topic-heading > p {
  min-width: 0;
}

.guide-topic-heading h2 {
  margin: 6px 0 0;
  font-size: clamp(31px, 3.4vw, 44px);
  letter-spacing: -.045em;
  line-break: strict;
  line-height: 1.25;
  overflow-wrap: anywhere;
  text-wrap: balance;
  word-break: normal;
}

.guide-topic-heading > p {
  max-width: 520px;
  margin: 0;
  color: #686059;
  line-height: 1.75;
}

.guide-topic-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.guide-topic-card {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 172px;
  padding: 22px;
  overflow: hidden;
  border: 1px solid #e1d8cf;
  border-radius: 18px;
  background: #fff;
  color: #292521;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}

.guide-topic-card-featured {
  border-color: #ef715a;
  background: linear-gradient(135deg, #fff 0%, #fff8f4 100%);
  color: #292521;
  grid-column: span 2;
  grid-template-columns: minmax(0, 1fr) auto;
  box-shadow: 0 10px 28px rgba(181, 73, 48, .08);
}

.guide-topic-card > div {
  min-width: 0;
}

.guide-topic-title-row {
  display: flex;
  min-width: 0;
  align-items: baseline;
  flex-wrap: nowrap;
  gap: 10px;
}

.guide-topic-number {
  flex: 0 0 auto;
  color: #d54d38;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
}

.guide-topic-card h3 {
  min-width: 0;
  margin: 0;
  font-size: clamp(21px, 2.2vw, 29px);
  letter-spacing: -.035em;
  line-break: strict;
  line-height: 1.3;
  overflow-wrap: anywhere;
  text-wrap: balance;
  word-break: normal;
}

.guide-topic-card p {
  margin: 12px 0 0;
  color: #6d655e;
  font-size: 13px;
  line-height: 1.65;
}

.guide-topic-card-featured p {
  max-width: 570px;
  color: #6d655e;
}

.guide-topic-card ul {
  display: flex;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
  flex-wrap: wrap;
  gap: 6px;
}

.guide-topic-card li {
  padding: 4px 8px;
  border-radius: 999px;
  background: #f4eee8;
  color: #6e6259;
  font-size: 10px;
  font-weight: 800;
}

.guide-topic-card > i {
  display: grid;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #f2533e;
  color: #fff;
  font-size: 19px;
  font-style: normal;
  place-items: center;
  align-self: center;
}

.guide-direct-section {
  padding: 28px 0 34px;
  border-top: 1px solid #e5ddd4;
  background: #fff;
}

.guide-direct-layout {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 28px;
}

.guide-direct-layout > p {
  margin: 0;
  font-size: 15px;
  font-weight: 900;
  white-space: nowrap;
}

.guide-direct-links {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.guide-direct-links a {
  display: flex;
  min-width: 0;
  min-height: 48px;
  padding: 0 15px;
  border: 1px solid #dfd6cd;
  border-radius: 999px;
  color: #302b27;
  font-size: 13px;
  font-weight: 800;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.guide-direct-links span {
  color: #d54d38;
}

.guide-evidence-note {
  margin: 20px 0 0;
  padding-top: 18px;
  border-top: 1px solid #eee7df;
  color: #756d65;
  font-size: 12px;
  line-height: 1.7;
}

.guide-evidence-note a {
  color: #8c552e;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 4px;
}

@media (min-width: 761px) and (max-width: 860px) {
  .guide-topic-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .guide-topic-card-featured {
    grid-column: 1 / -1;
  }

  .guide-topic-card:not(.guide-topic-card-featured) {
    min-height: 112px;
    padding: 18px;
  }

  .guide-topic-card:not(.guide-topic-card-featured) p,
  .guide-topic-card:not(.guide-topic-card-featured) ul {
    display: none;
  }

  .guide-topic-card h3 {
    font-size: 24px;
  }
}

@media (max-width: 760px) {
  .guide-index-page .guide-index-hero {
    padding: 34px 0 40px;
  }

  .guide-index-page .guide-index-hero h1 {
    margin-top: 8px;
    font-size: clamp(34px, 9.7vw, 42px);
  }

  .guide-topic-section {
    padding: 38px 0 42px;
  }

  .guide-topic-heading {
    margin-bottom: 18px;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }

  .guide-topic-heading h2 {
    font-size: clamp(28px, 8vw, 34px);
  }

  .guide-topic-heading > p {
    font-size: 13px;
  }

  .guide-topic-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
  }

  .guide-topic-card,
  .guide-topic-card-featured {
    min-height: 0;
    padding: 16px 14px;
    border-radius: 14px;
    grid-template-columns: minmax(0, 1fr);
  }

  .guide-topic-card-featured {
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
  }

  .guide-topic-card h3 {
    font-size: clamp(18px, 5vw, 23px);
  }

  .guide-topic-card p {
    margin-top: 9px;
    font-size: 11px;
    line-height: 1.55;
  }

  .guide-topic-card:not(.guide-topic-card-featured) p,
  .guide-topic-card ul {
    display: none;
  }

  .guide-topic-title-row {
    gap: 7px;
  }

  .guide-topic-card-featured > i {
    width: 36px;
    height: 36px;
  }

  .guide-direct-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  .guide-direct-layout > p {
    white-space: normal;
  }

  .guide-direct-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .guide-direct-links a {
    min-height: 44px;
    padding-inline: 13px;
    font-size: 12px;
  }
}

/* Five-pillar guide network and its generated cluster articles. */
.guide-content-page main {
  background: #fff;
}

.guide-network-hero {
  position: relative;
  padding: clamp(50px, 7vw, 88px) 0;
  overflow: hidden;
  border-bottom: 1px solid #eadfd5;
  background: linear-gradient(135deg, #fffaf6 0%, #f6efe7 100%);
}

.guide-network-hero::after {
  position: absolute;
  right: max(24px, calc((100vw - 1180px) / 2));
  bottom: -34px;
  color: rgba(214, 83, 58, .055);
  content: "GUIDE";
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(82px, 13vw, 176px);
  font-weight: 700;
  line-height: 1;
  pointer-events: none;
}

.guide-network-hero .guide-shell {
  position: relative;
  z-index: 1;
}

.guide-network-hero h1 {
  max-inline-size: 900px;
  margin: 12px 0 18px;
  font-family: var(--serif);
  font-size: clamp(42px, 5.7vw, 70px);
  font-weight: 500;
  letter-spacing: -.055em;
  line-break: strict;
  line-height: 1.16;
  overflow-wrap: anywhere;
  text-wrap: balance;
  word-break: normal;
}

.guide-network-hero .guide-shell > p:not(.eyebrow) {
  max-inline-size: 760px;
  margin: 0;
  color: #625b54;
  font-size: clamp(15px, 1.5vw, 18px);
  line-height: 1.9;
}

.guide-parent-link {
  display: inline-flex;
  margin-bottom: 22px;
  color: #a84835;
  font-size: 13px;
  font-weight: 900;
  align-items: center;
  gap: 10px;
}

.guide-network-layout {
  padding-top: clamp(42px, 6vw, 72px);
}

.guide-content-page .guide-article-body > section {
  padding-block: clamp(38px, 5vw, 58px);
}

.guide-content-page .guide-article-body h2 {
  font-size: clamp(28px, 3.4vw, 42px);
  line-break: strict;
  overflow-wrap: anywhere;
  text-wrap: balance;
  word-break: normal;
}

.guide-network-summary {
  padding: clamp(26px, 4vw, 40px) !important;
  border: 1px solid #edcfc4 !important;
  border-left: 5px solid #ed654c !important;
  border-radius: 18px;
  background: #fff9f5;
}

.guide-network-summary > p:last-child {
  margin-top: 16px !important;
  color: #4f4741 !important;
  font-size: clamp(16px, 1.5vw, 18px) !important;
  font-weight: 700;
  line-height: 1.9 !important;
}

.guide-cluster-directory > p:not(.eyebrow) {
  max-inline-size: 720px;
}

.guide-cluster-directory > .guide-cluster-grid {
  display: grid;
  margin-top: 26px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.guide-cluster-directory a {
  display: grid;
  min-width: 0;
  min-height: 148px;
  padding: 20px;
  border: 1px solid #e4d9cf;
  border-radius: 14px;
  background: #fff;
  color: #2d2925;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: start;
  gap: 12px;
}

.guide-cluster-directory a > span {
  color: #d6533a;
  font-size: 12px;
  font-weight: 900;
}

.guide-cluster-directory a p {
  margin: 0 0 6px;
  color: #a04c39;
  font-size: 10px;
  font-weight: 900;
}

.guide-cluster-directory h3 {
  margin: 0;
  font-size: 18px;
  line-break: strict;
  line-height: 1.45;
  overflow-wrap: anywhere;
  word-break: normal;
}

.guide-cluster-directory small {
  display: block;
  margin-top: 8px;
  color: #70675f;
  font-size: 11px;
  line-height: 1.65;
}

.guide-cluster-directory i,
.guide-sibling-network i {
  color: #d6533a;
  font-style: normal;
}

.guide-content-page .guide-pipi-links a {
  border: 1px solid #e4d9cf;
  background: #fff9f5;
  color: #302a26;
}

.guide-content-page .guide-pipi-links i {
  color: #d6533a;
}

.guide-cluster-layout {
  width: min(790px, calc(100% - 48px));
  margin-inline: auto;
  padding-top: clamp(42px, 6vw, 72px);
  padding-bottom: clamp(76px, 9vw, 118px);
}

.guide-compact-checks {
  display: grid;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.guide-compact-checks li {
  min-width: 0;
  padding: 20px;
  border: 1px solid #e6ddd4;
  border-radius: 14px;
  background: #fbf8f3;
}

.guide-compact-checks b {
  display: block;
  margin-bottom: 10px;
  color: #d6533a;
  font-size: 11px;
}

.guide-compact-checks span {
  color: #4e4842;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.75;
}

.guide-step-list {
  display: grid;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
  gap: 10px;
}

.guide-step-list li {
  display: grid;
  padding: 18px 20px;
  border: 1px solid #e7ddd3;
  border-radius: 12px;
  grid-template-columns: 76px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
}

.guide-step-list span {
  color: #d6533a;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
}

.guide-step-list p {
  margin: 0;
  color: #4e4842;
  font-weight: 800;
  line-height: 1.7;
}

.guide-caution-box {
  margin-top: 28px;
  padding: 24px 26px;
  border-left: 4px solid #e79c44;
  border-radius: 12px;
  background: #fff8eb;
}

.guide-caution-box p {
  margin: 0;
  color: #574b3f;
  line-height: 1.9;
}

.guide-caution-box p + p {
  margin-top: 12px;
}

.guide-faq-block details {
  border-top: 1px solid #e5ddd4;
}

.guide-faq-block details:last-child {
  border-bottom: 1px solid #e5ddd4;
}

.guide-faq-block summary {
  position: relative;
  padding: 20px 42px 20px 0;
  cursor: pointer;
  font-weight: 900;
  line-height: 1.6;
  list-style: none;
}

.guide-faq-block summary::-webkit-details-marker {
  display: none;
}

.guide-faq-block summary::after {
  position: absolute;
  right: 6px;
  color: #d6533a;
  content: "+";
  font-size: 22px;
  top: 16px;
}

.guide-faq-block details[open] summary::after {
  content: "−";
}

.guide-faq-block details p {
  margin: 0;
  padding: 0 36px 20px 0;
  color: #615951;
  line-height: 1.9;
}

.guide-sibling-network > div:not(.pipi-heading) {
  display: grid;
  margin-top: 24px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.guide-sibling-network > div:not(.pipi-heading) > a {
  display: grid;
  min-width: 0;
  min-height: 94px;
  padding: 16px 18px;
  border: 1px solid #e4d9cf;
  border-radius: 12px;
  color: #302a26;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}

.guide-sibling-network > div:not(.pipi-heading) span {
  display: block;
  margin-bottom: 5px;
  color: #a04c39;
  font-size: 10px;
  font-weight: 900;
  grid-column: 1;
}

.guide-sibling-network > div:not(.pipi-heading) b {
  min-width: 0;
  font-size: 14px;
  line-break: strict;
  line-height: 1.55;
  overflow-wrap: anywhere;
  word-break: normal;
}

.guide-sibling-network > div:not(.pipi-heading) i {
  grid-column: 2;
  grid-row: 1 / span 2;
}

.guide-back-to-pillar {
  display: inline-flex;
  margin-top: 20px;
  color: #a84835;
  font-weight: 900;
  align-items: center;
  gap: 10px;
}

/* Research-led pillar pages: dense enough to answer the main query without
   turning each section into a visually heavy card. */
.guide-pillar-page .guide-toc {
  max-height: calc(100vh - 140px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.guide-research-questions > ul {
  display: grid;
  margin: 26px 0 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.guide-research-questions li {
  display: grid;
  min-width: 0;
  min-height: 66px;
  padding: 16px 18px;
  border: 1px solid #e7dbd1;
  border-radius: 12px;
  background: #fff;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
}

.guide-research-questions li span {
  color: #d6533a;
  font-size: 11px;
  font-weight: 900;
}

.guide-research-questions li p {
  margin: 0;
  color: #3f3934;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.55;
}

.guide-comparison > p:not(.eyebrow) {
  max-inline-size: 720px;
}

.guide-comparison > div:not(.pipi-heading) {
  display: grid;
  margin-top: 28px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.guide-comparison article {
  min-width: 0;
  padding: 22px;
  border: 1px solid #e7dbd1;
  border-top: 4px solid #ec6a51;
  border-radius: 14px;
  background: #fffaf7;
}

.guide-comparison h3 {
  margin: 0;
  color: #342e2a;
  font-size: 17px;
  line-break: strict;
  line-height: 1.5;
  overflow-wrap: anywhere;
  text-wrap: balance;
  word-break: normal;
}

.guide-comparison ul {
  display: grid;
  margin: 16px 0 0;
  padding: 0;
  color: #5e554e;
  font-size: 12px;
  line-height: 1.7;
  list-style: none;
  gap: 8px;
}

.guide-comparison li {
  position: relative;
  padding-left: 16px;
}

.guide-comparison li::before {
  position: absolute;
  left: 0;
  color: #d6533a;
  content: "•";
}

.guide-research-section .guide-section-lead {
  max-inline-size: 720px;
  margin: 22px 0 0 !important;
  color: #3e3732 !important;
  font-size: clamp(16px, 1.55vw, 19px) !important;
  font-weight: 900;
  line-height: 1.8 !important;
}

.guide-section-copy {
  display: grid;
  max-inline-size: 760px;
  margin-top: 20px;
  gap: 15px;
}

.guide-section-copy p {
  margin: 0;
  color: #574f48;
  font-size: 15px;
  line-height: 2;
}

.guide-research-points {
  display: grid;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.guide-research-points li {
  position: relative;
  min-width: 0;
  padding: 15px 16px 15px 38px;
  border: 1px solid #e9dfd6;
  border-radius: 10px;
  background: #fbf8f3;
  color: #4b443e;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.65;
}

.guide-research-points li::before {
  position: absolute;
  left: 15px;
  color: #df5a40;
  content: "✓";
  font-weight: 900;
}

.guide-inline-sources {
  display: flex;
  margin-top: 18px;
  flex-wrap: wrap;
  gap: 8px;
}

.guide-inline-sources a {
  display: inline-flex;
  min-height: 32px;
  padding: 6px 11px;
  border: 1px solid #e3d8ce;
  border-radius: 999px;
  background: #fff;
  color: #7a5b43;
  font-size: 10px;
  font-weight: 800;
  align-items: center;
  gap: 6px;
}

.guide-research-roadmap > ol {
  display: grid;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.guide-research-roadmap li {
  min-width: 0;
  padding: 20px;
  border: 1px solid #e8dcd1;
  border-radius: 13px;
  background: #fffaf7;
}

.guide-research-roadmap li span {
  color: #d6533a;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
}

.guide-research-roadmap li p {
  margin: 10px 0 0;
  color: #3f3934;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.7;
}

.guide-research-caution {
  padding: clamp(28px, 4vw, 40px) !important;
  border: 1px solid #ecd8b8 !important;
  border-radius: 16px;
  background: #fff9ee;
}

.guide-research-caution ul {
  display: grid;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.guide-research-caution li {
  position: relative;
  min-width: 0;
  padding: 14px 15px 14px 38px;
  border-radius: 10px;
  background: #fff;
  color: #5b4b3e;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.65;
}

.guide-research-caution li::before {
  position: absolute;
  left: 15px;
  color: #d67b2f;
  content: "!";
  font-weight: 900;
}

.guide-research-caution > p:last-child {
  margin-top: 18px !important;
  color: #69594c !important;
  font-size: 12px !important;
  line-height: 1.8 !important;
}

.guide-pillar-faq details:first-of-type {
  margin-top: 22px;
}

@media (max-width: 760px) {
  .guide-network-hero {
    padding: 40px 0 46px;
  }

  .guide-network-hero h1 {
    margin-block: 9px 14px;
    font-size: clamp(34px, 10vw, 44px);
  }

  .guide-network-hero .guide-shell > p:not(.eyebrow) {
    font-size: 13px;
    line-height: 1.8;
  }

  .guide-content-page .guide-article-body > section {
    padding-block: 38px;
  }

  .guide-content-page .guide-article-body h2 {
    font-size: clamp(25px, 7.5vw, 32px);
  }

  .guide-cluster-directory > .guide-cluster-grid,
  .guide-sibling-network > div:not(.pipi-heading) {
    grid-template-columns: minmax(0, 1fr);
  }

  .guide-cluster-directory a {
    min-height: 0;
    padding: 17px;
  }

  .guide-cluster-directory small {
    display: none;
  }

  .guide-cluster-layout {
    width: min(100% - 36px, 790px);
    padding-top: 38px;
    padding-bottom: 78px;
  }

  .guide-compact-checks {
    grid-template-columns: minmax(0, 1fr);
  }

  .guide-compact-checks li {
    padding: 17px 18px;
  }

  .guide-compact-checks b {
    display: inline;
    margin: 0 10px 0 0;
  }

  .guide-step-list li {
    padding: 16px;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 10px;
  }

  .guide-caution-box {
    padding: 20px;
  }

  .guide-pillar-page .guide-toc {
    max-height: none;
    overflow: visible;
  }

  .guide-research-questions > ul,
  .guide-comparison > div:not(.pipi-heading),
  .guide-research-roadmap > ol,
  .guide-research-caution ul {
    grid-template-columns: minmax(0, 1fr);
  }

  .guide-research-questions li {
    min-height: 0;
    padding: 13px 15px;
  }

  .guide-comparison article {
    padding: 18px;
  }

  .guide-research-points {
    grid-template-columns: minmax(0, 1fr);
  }

  .guide-research-points li {
    padding-block: 13px;
  }

  .guide-section-copy p {
    font-size: 14px;
    line-height: 1.95;
  }

  .guide-research-roadmap li {
    padding: 17px 18px;
  }

  .guide-research-caution {
    padding: 22px !important;
  }
}

.store-directory-section {
  padding: clamp(68px, 7vw, 104px) 0;
  border-top: 1px solid #dce4e5;
  background: #fff;
}

.store-directory-heading {
  max-width: 760px;
}

.store-directory-heading h2 {
  margin: 0;
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.25;
}

.store-directory-heading > p:last-child {
  margin: 18px 0 0;
  color: #687074;
  line-height: 1.9;
}

.store-directory-grid {
  margin-top: 38px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.store-directory-grid article {
  min-width: 0;
  padding: 28px;
  border: 1px solid #dfe5e6;
  border-radius: 18px;
  background: #f9fbfb;
}

.store-directory-grid h3 {
  margin: 0;
  font-size: 20px;
}

.store-directory-grid h3 > a,
.store-directory-grid h3:not(:has(a)) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.store-directory-grid h3 span {
  color: #e24f36;
  font-size: 11px;
  font-weight: 800;
}

.store-directory-grid ul {
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}

.store-directory-grid li {
  border-top: 1px solid #e1e6e7;
}

.store-directory-grid li > a {
  min-height: 58px;
  padding: 12px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.5;
}

.store-directory-grid li > a:hover,
.store-directory-grid li > a:focus-visible {
  color: #d94931;
}

.store-directory-grid i {
  flex: 0 0 auto;
  color: #e24f36;
  font-style: normal;
}

.store-directory-upcoming {
  padding: 14px 0;
  display: grid;
  gap: 5px;
  color: #6f7476;
}

.store-directory-upcoming span {
  font-size: 12px;
  font-weight: 800;
}

.store-directory-upcoming small {
  font-size: 10px;
}

@media (max-width: 1050px) {
  .guide-path-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .store-directory-grid {
    margin-top: 28px;
    grid-template-columns: 1fr;
  }

  .store-directory-grid article {
    padding: 22px 18px;
  }

  .guide-path-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* --------------------------------------------------------------------------
   STANDARD LOWER-PAGE SYSTEM
   `/guide/personal-gym/` is the visual source of truth for every public page
   except the brand TOP. Store LP bodies keep their imported campaign layout,
   while their shared navigation remains connected to the same tokens.
   -------------------------------------------------------------------------- */
.pipi-standard-page {
  --pipi-standard-corner: 4px;
  --pipi-standard-surface: #fff;
  --pipi-standard-surface-soft: #fffaf6;
  --pipi-standard-line: #e7dbd1;
}

.pipi-standard-page:not(.store-lp-page) :where(
  .service-page-hero,
  .policy-hero,
  .journal-page .page-hero,
  .store-locator-hero-copy,
  .store-v2-hero-copy,
  .region-v2-hero > div
) {
  position: relative;
}

.pipi-standard-page:not(.store-lp-page) :where(
  .service-page-hero,
  .policy-hero,
  .journal-page .page-hero
)::before {
  width: clamp(58px, 6vw, 76px);
  height: clamp(58px, 6vw, 76px);
  border-top: 2px solid var(--brand-coral);
  border-left: 2px solid var(--brand-coral);
  position: absolute;
  top: clamp(34px, 5vw, 62px);
  left: max(24px, calc((100vw - 1180px) / 2));
  z-index: 1;
  content: "";
  pointer-events: none;
}

.pipi-standard-page:not(.store-lp-page) :where(
  .service-page-hero,
  .policy-hero,
  .journal-page .page-hero
) > :where(.eyebrow, .section-kicker, h1, p:last-of-type) {
  /* Use inner spacing instead of margin. Several existing page families reset
     child margins with higher-specificity shorthand declarations, which put
     the label back on top of the vertical corner line. */
  padding-inline-start: clamp(30px, 3vw, 42px);
}

.pipi-standard-page:not(.store-lp-page) :where(
  .store-locator-hero-copy,
  .store-v2-hero-copy,
  .region-v2-hero > div
)::before {
  width: 58px;
  height: 58px;
  border-top: 2px solid var(--brand-coral);
  border-left: 2px solid var(--brand-coral);
  position: absolute;
  top: clamp(28px, 4vw, 46px);
  left: clamp(26px, 4vw, 50px);
  content: "";
  pointer-events: none;
}

/* Policy heroes already sit inside the centered `.trust-shell`. Their corner
   therefore anchors to the shell itself, unlike full-bleed service heroes. */
.pipi-standard-page:not(.store-lp-page) .policy-hero::before {
  top: 0;
  left: 0;
}

/* Store hero copy becomes narrow before the mobile breakpoint. Move the
   corner line outward early so the eyebrow never crowds it on tablets. */
@media (min-width: 761px) and (max-width: 1100px) {
  .pipi-standard-page:not(.store-lp-page) :where(
    .store-locator-hero-copy,
    .store-v2-hero-copy,
    .region-v2-hero > div
  )::before {
    left: 12px;
  }
}

.pipi-standard-page:not(.store-lp-page) :where(
  .service-page-hero,
  .policy-hero,
  .journal-page .page-hero,
  .store-locator-hero-copy,
  .store-v2-hero-copy,
  .region-v2-hero > div
) h1 {
  max-inline-size: 900px;
  font-family: var(--serif);
  font-size: clamp(48px, 5.4vw, 70px);
  font-weight: 500;
  letter-spacing: -.04em;
  line-break: strict;
  line-height: 1.2;
  overflow-wrap: anywhere;
  text-wrap: balance;
  white-space: normal;
  word-break: normal;
}

/* Long official store names use the same heading system at a smaller scale.
   Preserve the official NAP name and let the brand/branch spans create the
   two intentional lines instead of inserting page-specific <br> elements. */
.pipi-standard-page:not(.store-lp-page) .store-v2-hero h1.store-title-long {
  font-size: clamp(32px, 3.2vw, 48px);
}

.pipi-standard-page:not(.store-lp-page) .store-v2-hero h1.store-title-xlong {
  font-size: clamp(26px, 1.95vw, 32px);
}

.pipi-standard-page:not(.store-lp-page) :where(
  .trust-section-heading,
  .trial-experience-heading,
  .trial-preparation-heading,
  .faq-hub-heading,
  .pipi-payment-heading,
  .store-directory-heading,
  .store-v2-heading,
  .subpage-heading,
  .journal-heading > div:first-child,
  .detail-summary-inner > div:first-child,
  .about-definition-lead > div:first-child,
  .policy-intro,
  .faq-heading,
  .benchmark-heading,
  .store-locator-heading > div:first-child,
  .store-region-hubs__heading
) {
  max-inline-size: 820px;
  min-width: 0;
  padding: 26px 0 0 29px;
  position: relative;
  text-align: left;
}

.pipi-standard-page:not(.store-lp-page) :where(
  .trust-section-heading,
  .trial-experience-heading,
  .trial-preparation-heading,
  .faq-hub-heading,
  .pipi-payment-heading,
  .store-directory-heading,
  .store-v2-heading,
  .subpage-heading,
  .journal-heading > div:first-child,
  .detail-summary-inner > div:first-child,
  .about-definition-lead > div:first-child,
  .policy-intro,
  .faq-heading,
  .benchmark-heading,
  .store-locator-heading > div:first-child,
  .store-region-hubs__heading
)::before {
  width: 48px;
  height: 48px;
  border-top: 2px solid var(--brand-coral);
  border-left: 2px solid var(--brand-coral);
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  pointer-events: none;
}

.pipi-standard-page:not(.store-lp-page) :where(
  .trust-section-heading,
  .trial-experience-heading,
  .trial-preparation-heading,
  .faq-hub-heading,
  .pipi-payment-heading,
  .store-directory-heading,
  .store-v2-heading,
  .subpage-heading,
  .journal-heading > div:first-child,
  .detail-summary-inner > div:first-child,
  .about-definition-lead > div:first-child,
  .policy-intro,
  .faq-heading,
  .benchmark-heading,
  .store-locator-heading > div:first-child,
  .store-region-hubs__heading
) :where(h2, h3) {
  max-inline-size: 100%;
  margin-top: 0;
  font-family: var(--sans);
  font-size: clamp(32px, 4.1vw, 54px);
  font-weight: 900;
  letter-spacing: -.025em;
  line-break: strict;
  line-height: 1.34;
  overflow-wrap: anywhere;
  text-wrap: balance;
  word-break: normal;
}

.pipi-standard-page:not(.store-lp-page) :where(
  .trust-section-heading,
  .trial-experience-heading,
  .trial-preparation-heading,
  .faq-hub-heading,
  .pipi-payment-heading,
  .store-directory-heading,
  .subpage-heading,
  .detail-summary-inner > div:first-child,
  .about-definition-lead > div:first-child,
  .policy-intro,
  .faq-heading,
  .benchmark-heading
) > :last-child:not(h2):not(h3) {
  max-inline-size: 720px;
  margin-top: 18px;
  color: var(--ink-soft);
  line-height: 1.9;
}

.pipi-standard-page:not(.store-lp-page) :where(
  .about-definition-section,
  .detail-summary-inner,
  .store-locator-section,
  .region-v2-guide,
  .journal-category-section
) {
  background: var(--pipi-standard-surface-soft);
}

/* The price summary is a two-column digest, so its heading needs a wider
   measure and a quieter scale than a full-width section heading. */
@media (min-width: 761px) {
  .pipi-standard-page:not(.store-lp-page) .detail-summary-inner {
    grid-template-columns: minmax(330px, .9fr) minmax(0, 1.1fr);
  }

  .pipi-standard-page:not(.store-lp-page) .detail-summary-inner > div:first-child h2 {
    font-size: clamp(30px, 3vw, 40px);
  }
}

.pipi-standard-page:not(.store-lp-page) .store-v2-service {
  border-block: 1px solid var(--pipi-standard-line);
  background: var(--pipi-standard-surface-soft);
  color: var(--ink);
}

.pipi-standard-page:not(.store-lp-page) .store-v2-service .store-v2-heading > p:not(.eyebrow) {
  color: var(--ink-soft);
}

.pipi-standard-page:not(.store-lp-page) :where(
  .about-service-grid article,
  .about-principle-grid article,
  .entity-map article,
  .trust-link-grid a,
  .detail-summary-inner,
  .pipi-current-price-grid article,
  .pipi-payment-grid article,
  .trial-experience-grid article,
  .trial-preparation-grid article,
  .faq-category,
  .contact-route-grid article,
  .policy-article,
  .policy-articles article,
  .store-locator-hero-inner,
  .store-locator-panel,
  .store-directory-grid article,
  .store-v2-card-grid article,
  .store-v2-trainer-card,
  .store-v2-info-layout,
  .store-v2-map,
  .store-v2-nearby-grid a,
  .region-v2-hero,
  .region-v2-store-card,
  .region-v2-guide article,
  .journal-category,
  .journal-card,
  .faq-list details,
  .final-cta,
  .store-v2-final
) {
  border-radius: var(--pipi-standard-corner);
}

.pipi-standard-page:not(.store-lp-page) :where(
  .detail-summary-list b,
  .about-service-grid article > b,
  .store-v2-card-grid article > b,
  .region-v2-guide article > b,
  .policy-number
) {
  display: inline-flex;
  width: max-content;
  min-width: 28px;
  padding: 0 0 7px;
  border: 0;
  border-bottom: 2px solid var(--brand-coral);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  align-items: center;
  justify-content: flex-start;
}

.pipi-standard-page:not(.store-lp-page) :where(
  .header-cta,
  .button,
  .final-cta a,
  .store-locator-hero-link,
  .store-v2-actions a,
  .store-v2-service-action a,
  .store-v2-final a,
  .region-v2-hero > div > a,
  .journal-guide-link a,
  .guide-primary-inline
) {
  border-radius: var(--pipi-standard-corner);
}

.pipi-standard-page:not(.store-lp-page) :where(
  .header-cta,
  .final-cta a,
  .store-locator-hero-link,
  .store-v2-actions a,
  .store-v2-service-action a,
  .store-v2-final a,
  .region-v2-hero > div > a,
  .journal-guide-link a
) {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

.pipi-standard-page:not(.store-lp-page) :where(
  .header-cta,
  .final-cta a,
  .store-locator-hero-link,
  .store-v2-actions a,
  .store-v2-service-action a,
  .store-v2-final a,
  .region-v2-hero > div > a,
  .journal-guide-link a
) > :where(span, i, b)[aria-hidden="true"] {
  display: none;
}

.pipi-standard-page:not(.store-lp-page) :where(
  .header-cta,
  .final-cta a,
  .store-locator-hero-link,
  .store-v2-actions a,
  .store-v2-service-action a,
  .store-v2-final a,
  .region-v2-hero > div > a,
  .journal-guide-link a
)::after {
  width: 0;
  height: 0;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 6px solid currentColor;
  flex: 0 0 auto;
  content: "";
}

.pipi-standard-page:not(.store-lp-page) :where(.final-cta, .store-v2-final) {
  background: linear-gradient(120deg, #f45e43, #ee8f37);
  color: #fff;
}

/* Standard lower-page CTAs are full-bleed sections. The older service-page
   max-width must not leave an unexplained empty column on wide screens. */
.pipi-standard-page:not(.store-lp-page) .final-cta.final-cta-v3 {
  width: 100%;
  max-width: none;
  margin: 0;
}

/* Final CTA contrast belongs to the shared component. Page-family styles for
   the former white panel must not leak their dark/coral text onto the orange
   standard CTA. */
.pipi-standard-page:not(.store-lp-page) .final-cta.final-cta-v3 h2 {
  color: #fff;
}

.pipi-standard-page:not(.store-lp-page) .final-cta.final-cta-v3 .final-cta-brand {
  color: rgba(255, 255, 255, .82);
}

.pipi-standard-page:not(.store-lp-page) .final-cta.final-cta-v3 .final-cta-lead {
  color: rgba(255, 255, 255, .94);
}

.pipi-standard-page:not(.store-lp-page) .final-cta.final-cta-v3 > small {
  color: rgba(255, 255, 255, .78);
}

.pipi-standard-page:not(.store-lp-page) .final-cta.final-cta-v3 .final-cta-primary {
  color: #c9472e;
  background: #fff;
  box-shadow: 0 12px 28px rgba(93, 42, 25, .18);
}

@media (max-width: 760px) {
  .pipi-standard-page:not(.store-lp-page) :where(
    .service-page-hero,
    .policy-hero,
    .journal-page .page-hero
  )::before {
    width: 52px;
    height: 52px;
    top: 28px;
    left: 18px;
  }

  .pipi-standard-page:not(.store-lp-page) :where(
    .service-page-hero,
    .policy-hero,
    .journal-page .page-hero
  ) > :where(.eyebrow, .section-kicker, h1, p:last-of-type) {
    padding-inline-start: 26px;
  }

  .pipi-standard-page:not(.store-lp-page) :where(
    .store-locator-hero-copy,
    .store-v2-hero-copy,
    .region-v2-hero > div
  )::before {
    width: 46px;
    height: 46px;
    top: 20px;
    left: 2px;
  }

  .pipi-standard-page:not(.store-lp-page) :where(
    .service-page-hero,
    .policy-hero,
    .journal-page .page-hero,
    .store-locator-hero-copy,
    .store-v2-hero-copy,
    .region-v2-hero > div
  ) h1 {
    font-size: clamp(34px, 9.6vw, 42px);
    line-height: 1.28;
    text-wrap: pretty;
  }

  .pipi-standard-page:not(.store-lp-page) :where(
    .trust-section-heading,
    .trial-experience-heading,
    .trial-preparation-heading,
    .faq-hub-heading,
    .pipi-payment-heading,
    .store-directory-heading,
    .store-v2-heading,
    .subpage-heading,
    .journal-heading > div:first-child,
    .detail-summary-inner > div:first-child,
    .about-definition-lead > div:first-child,
    .policy-intro,
    .faq-heading,
    .benchmark-heading,
    .store-locator-heading > div:first-child,
    .store-region-hubs__heading
  ) {
    padding: 22px 0 0 23px;
  }

  .pipi-standard-page:not(.store-lp-page) :where(
    .trust-section-heading,
    .trial-experience-heading,
    .trial-preparation-heading,
    .faq-hub-heading,
    .pipi-payment-heading,
    .store-directory-heading,
    .store-v2-heading,
    .subpage-heading,
    .journal-heading > div:first-child,
    .detail-summary-inner > div:first-child,
    .about-definition-lead > div:first-child,
    .policy-intro,
    .faq-heading,
    .benchmark-heading,
    .store-locator-heading > div:first-child,
    .store-region-hubs__heading
  )::before {
    width: 42px;
    height: 42px;
  }

  .pipi-standard-page:not(.store-lp-page) :where(
    .trust-section-heading,
    .trial-experience-heading,
    .trial-preparation-heading,
    .faq-hub-heading,
    .pipi-payment-heading,
    .store-directory-heading,
    .store-v2-heading,
    .subpage-heading,
    .journal-heading > div:first-child,
    .detail-summary-inner > div:first-child,
    .about-definition-lead > div:first-child,
    .policy-intro,
    .faq-heading,
    .benchmark-heading,
    .store-locator-heading > div:first-child,
    .store-region-hubs__heading
  ) :where(h2, h3) {
    font-size: clamp(27px, 8vw, 36px);
    line-height: 1.4;
  }
}

/* Keep the desktop CTA out of the shared narrow header. This must remain after
   the lower-page action rule above, which intentionally gives actions an
   inline-flex layout on wide screens. */
@media (max-width: 1050px) {
  .pipi-standard-page:not(.store-lp-page) .site-header .header-cta {
    display: none;
  }
}

/* Public-readiness content pages: programs, trainers, research and case draft. */
.content-standard-page main {
  background: var(--surface-main);
}

.content-standard-layout {
  display: grid;
  gap: 0;
  padding-block: clamp(18px, 3vw, 36px) clamp(72px, 8vw, 116px);
}

.content-standard-layout > section {
  min-width: 0;
  padding-block: clamp(38px, 5vw, 58px);
  border-bottom: 1px solid var(--line);
}

.content-standard-layout > section:last-child {
  border-bottom: 0;
}

.content-standard-layout .pipi-content-photo {
  margin-top: 30px;
}

.content-topic-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 30px;
}

.content-topic-grid--two {
  margin-top: 0;
}

.content-topic-card {
  display: grid;
  min-width: 0;
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid var(--line);
  border-left: 4px solid var(--brand-coral);
  border-radius: var(--corner-sharp);
  background: #fff;
  color: var(--ink);
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: start;
  gap: 18px;
  transition: border-color .2s ease, transform .2s ease;
}

.content-topic-card:hover,
.content-topic-card:focus-visible {
  border-color: var(--brand-coral);
  transform: translateY(-2px);
}

.content-topic-card > div {
  min-width: 0;
}

.content-topic-card small {
  display: block;
  margin-bottom: 8px;
  color: var(--brand-coral-dark);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .13em;
}

.content-topic-card h2 {
  margin: 0;
  font-size: clamp(21px, 2.1vw, 29px);
  line-height: 1.42;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.content-topic-card p {
  margin: 12px 0 0;
  color: var(--ink-soft);
  line-height: 1.8;
}

.content-topic-card > i {
  align-self: center;
}

.content-topic-card--plain {
  grid-template-columns: minmax(0, 1fr) auto;
}

.content-concern-list,
.content-simple-list,
.content-principle-list,
.content-source-list,
.trainer-store-list,
.trainer-store-block ul {
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}

.content-concern-list {
  border-top: 1px solid var(--line);
}

.content-concern-list li {
  display: grid;
  min-width: 0;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
  grid-template-columns: 58px minmax(0, 1fr);
  align-items: center;
  gap: 16px;
}

.content-concern-list p,
.content-principle-list p,
.content-decision-panel p {
  margin: 0;
  color: var(--ink-soft);
  line-height: 1.9;
}

.content-decision-panel {
  padding: clamp(28px, 4vw, 44px) !important;
  border: 1px solid var(--line) !important;
  border-left: 4px solid var(--brand-coral) !important;
  border-radius: var(--corner-sharp);
  background: #fff !important;
}

.content-decision-panel ul {
  display: grid;
  gap: 10px;
  margin: 22px 0;
  padding-left: 1.4em;
  color: var(--ink-soft);
  line-height: 1.8;
}

.content-text-link {
  display: inline-flex;
  min-height: 48px;
  border-bottom: 1px solid var(--ink);
  color: var(--ink);
  font-weight: 800;
  align-items: center;
  gap: 14px;
}

.content-related-links > div:not(.pipi-heading) {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 26px;
}

.content-related-links a {
  display: flex;
  min-width: 0;
  min-height: 74px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: var(--corner-sharp);
  color: var(--ink);
  font-weight: 800;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.content-final-actions {
  text-align: center;
}

.content-final-actions > div:not(.pipi-heading) {
  display: flex;
  margin-top: 28px;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
}

.trainer-store-list {
  display: grid;
  gap: 14px;
}

.trainer-store-block {
  display: grid;
  min-width: 0;
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid var(--line);
  border-radius: var(--corner-sharp);
  grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr);
  gap: clamp(24px, 5vw, 70px);
}

.trainer-store-block > div,
.trainer-store-block li {
  min-width: 0;
}

.trainer-store-block > div > p {
  margin: 0 0 7px;
  color: var(--brand-coral-dark);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
}

.trainer-store-block h2 {
  margin: 0 0 14px;
  font-size: clamp(21px, 2.2vw, 28px);
  line-height: 1.45;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.trainer-store-block a {
  display: inline-flex;
  color: var(--ink);
  font-weight: 800;
  align-items: center;
  gap: 10px;
}

.trainer-store-block ul {
  display: grid;
  gap: 0;
  margin-top: 0;
  border-top: 1px solid var(--line);
}

.trainer-store-block li {
  display: grid;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
  grid-template-columns: minmax(110px, .45fr) minmax(0, 1fr);
  gap: 16px;
}

.trainer-store-block li span {
  color: var(--ink-soft);
  overflow-wrap: anywhere;
}

.content-principle-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.content-principle-list li {
  padding: 24px;
  border-top: 3px solid var(--brand-coral);
  background: var(--surface-soft);
}

.content-principle-list b {
  display: block;
  margin-bottom: 10px;
  font-size: 18px;
}

.content-source-list,
.content-simple-list {
  border-top: 1px solid var(--line);
}

.content-source-list li,
.content-simple-list li {
  padding: 17px 4px;
  border-bottom: 1px solid var(--line);
  color: var(--ink-soft);
  line-height: 1.75;
}

.content-source-list a {
  color: var(--ink);
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.content-source-note {
  margin-top: 22px !important;
  color: var(--muted) !important;
  font-size: 13px;
  line-height: 1.8 !important;
}

.case-evidence-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 28px;
}

.case-evidence-grid figure {
  margin: 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: var(--corner-sharp);
}

.case-evidence-grid img {
  display: block;
  width: 100%;
  height: auto;
}

.case-evidence-grid figcaption {
  padding: 14px 8px 6px;
  font-weight: 800;
}

@media (max-width: 760px) {
  .content-topic-grid,
  .content-related-links > div:not(.pipi-heading),
  .content-principle-list,
  .case-evidence-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .content-topic-card {
    padding: 20px 16px;
    grid-template-columns: 42px minmax(0, 1fr) 12px;
    gap: 10px;
  }

  .content-topic-card--plain {
    grid-template-columns: minmax(0, 1fr) 12px;
  }

  .content-topic-card p {
    font-size: 14px;
  }

  .content-concern-list li {
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 10px;
  }

  .trainer-store-block {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }

  .trainer-store-block li {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }

  .content-final-actions > div:not(.pipi-heading) {
    align-items: stretch;
    flex-direction: column;
  }
}

@media (min-width: 761px) and (max-width: 900px) {
  .trainer-store-block {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }
}
/* ROOTS METHOD — six pages generated from one shared source.
   Uses the lower-page standard: sharp corners, D headings, shared numbers,
   triangle CTAs and one responsive layout family. */
.method-page main {
  background: var(--surface-main);
}

.method-page {
  --corner-sharp: 0px;
  --pipi-standard-corner: 0px;
}

.method-page :where(
  .pipi-button,
  .method-hero--hub picture,
  .guide-toc,
  .pipi-photo-placeholder,
  .pipi-photo-placeholder__canvas,
  .method-explainer,
  .method-explainer figure,
  .method-step-nav,
  .method-step-card,
  .method-principle-list article,
  .method-point-grid article,
  .method-evidence-summary article,
  .method-answer,
  .method-sibling-links a,
  .method-faq details,
  .method-definition__panel,
  .method-route-grid
) {
  border-radius: 0 !important;
}

.method-hero--hub {
  padding: clamp(24px, 4vw, 54px) 0 clamp(40px, 5vw, 68px);
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.method-hero--hub picture,
.method-hero--hub img {
  display: block;
  width: 100%;
}

.method-hero--hub picture {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--corner-sharp);
  background: #fff;
}

.method-hero--hub img {
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.method-hero-actions {
  display: flex;
  margin-top: 26px;
  flex-wrap: wrap;
  gap: 10px;
}

.method-layout {
  display: grid;
  padding-block: clamp(48px, 6vw, 82px) clamp(88px, 9vw, 132px);
  grid-template-columns: 224px minmax(0, 1fr);
  align-items: start;
  gap: clamp(36px, 6vw, 76px);
}

.method-hub-page .method-layout {
  max-width: 1080px;
  grid-template-columns: minmax(0, 1fr);
}

.method-hub-page .method-toc {
  display: none;
}

.method-toc {
  border-radius: var(--corner-sharp);
}

.method-body {
  min-width: 0;
}

/* Method pages own a centered heading system independent from the standard
   lower-page corner heading. This keeps every ROOTS section aligned. */
.method-page main .pipi-heading {
  max-inline-size: 100%;
  padding: 0;
  margin-inline: auto;
  text-align: center;
}

.method-page main .pipi-heading::before {
  display: none;
}

.method-page main .pipi-heading__kicker,
.method-page main .pipi-heading__title,
.method-page main .pipi-heading__subtitle {
  margin-inline: auto !important;
}

.method-body > section {
  min-width: 0;
  padding-block: clamp(40px, 5vw, 60px);
  border-bottom: 1px solid var(--line);
  scroll-margin-top: 110px;
}

.method-body > section:first-child {
  padding-top: 0;
}

.method-body > section:last-child {
  border-bottom: 0;
}

.method-body > section > p:not(.pipi-heading__subtitle),
.method-answer > p {
  max-inline-size: 760px;
  margin: 24px 0 0;
  color: var(--ink-soft);
  font-size: clamp(15px, 1.4vw, 17px);
  line-height: 2;
}

.method-media-placeholder {
  width: 100%;
  max-width: none;
  margin-top: 30px;
}

.method-explainer {
  margin-top: 30px;
}

.method-explainer__title {
  margin: 0 0 16px;
  color: var(--ink);
  font-size: clamp(19px, 2.1vw, 27px);
  line-break: strict;
  line-height: 1.55;
  overflow-wrap: anywhere;
  text-wrap: balance;
  word-break: normal;
}

.method-explainer figure {
  margin: 0;
}

.method-explainer__scroll {
  overflow: hidden;
  border: 1px solid var(--line);
  background: #fff;
}

.method-explainer img {
  display: block;
  width: 100%;
  height: auto;
}

.method-explainer figcaption {
  display: block;
  padding: 12px 2px 0;
  color: var(--ink-soft);
  font-size: 12px;
  line-height: 1.75;
}

.method-explainer__swipe {
  display: none;
}

.method-principle-list,
.method-point-grid,
.method-evidence-summary {
  display: grid;
  min-width: 0;
  margin-top: 30px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

/* The three ROOTS principles are a sequence, not independent cards. */
.method-principle-list {
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.method-principle-list article,
.method-point-grid article,
.method-evidence-summary article {
  min-width: 0;
  padding: clamp(20px, 3vw, 28px);
  border: 1px solid var(--line);
  border-radius: var(--corner-sharp);
  background: #fff;
}

.method-principle-list article {
  display: grid;
  padding: clamp(22px, 3vw, 30px) 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  grid-template-columns: 70px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: clamp(16px, 3vw, 34px);
}

.method-principle-list article + article {
  border-top: 1px solid var(--line);
}

.method-principle-list article > .pipi-number {
  grid-row: 1 / 3;
  align-self: start;
}

.method-principle-list article:first-child {
  grid-column: auto;
}

.method-principle-list h3,
.method-point-grid h3 {
  margin: 14px 0 0;
  color: var(--ink);
  font-size: clamp(19px, 2vw, 24px);
  line-height: 1.45;
}

.method-principle-list h3 {
  margin-top: 0;
}

.method-principle-list p,
.method-point-grid p,
.method-evidence-summary p {
  margin: 10px 0 0;
  color: var(--ink-soft);
  line-height: 1.85;
}

.method-point-grid article {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
}

.method-point-grid h3 {
  margin-top: 0;
}

.method-evidence-summary b {
  color: var(--brand-coral-dark);
  font-size: 16px;
}

.method-text-link {
  display: inline-flex;
  margin-top: 24px;
  color: var(--brand-coral-dark);
  font-weight: 900;
  align-items: center;
  gap: 10px;
}

.method-section-close .method-text-link,
.method-cause-analysis__closing .method-text-link {
  display: flex;
  width: fit-content;
  margin: 18px auto 0;
}

.method-context-links {
  display: flex;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px 22px;
}

.method-context-links a {
  color: var(--brand-coral-dark);
  font-size: 13px;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.method-step-grid {
  display: grid;
  margin-top: 30px;
  gap: 12px;
}

.method-step-card {
  display: grid;
  min-width: 0;
  padding: clamp(20px, 3vw, 30px);
  border: 1px solid var(--line);
  border-left: 4px solid var(--brand-coral);
  border-radius: var(--corner-sharp);
  background: #fff;
  color: var(--ink);
  grid-template-columns: 76px minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
}

.method-step-letter {
  color: rgba(197, 83, 57, .35);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(50px, 7vw, 76px);
  font-weight: 700;
  line-height: 1;
  text-align: center;
}

.method-step-card > div {
  min-width: 0;
}

.method-step-card small {
  color: var(--brand-coral-dark);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .14em;
}

.method-step-card h3 {
  margin: 5px 0 0;
  font-size: clamp(23px, 2.7vw, 34px);
  line-break: strict;
  line-height: 1.35;
  overflow-wrap: anywhere;
  text-wrap: balance;
  word-break: normal;
}

.method-step-card p {
  margin: 9px 0 0;
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.75;
}

.method-limit-list {
  display: grid;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
  gap: 0;
}

.method-limit-list li {
  position: relative;
  padding: 18px 16px 18px 42px;
  border-top: 1px solid var(--line);
  color: var(--ink-soft);
  line-height: 1.8;
}

.method-limit-list li:last-child {
  border-bottom: 1px solid var(--line);
}

.method-limit-list li::before {
  position: absolute;
  top: 25px;
  left: 17px;
  width: 8px;
  height: 8px;
  border-top: 2px solid var(--brand-coral);
  border-left: 2px solid var(--brand-coral);
  content: "";
}

.method-faq details {
  border-top: 1px solid var(--line);
}

.method-faq details:last-child {
  border-bottom: 1px solid var(--line);
}

.method-faq summary {
  padding: 21px 44px 21px 4px;
  position: relative;
  color: var(--ink);
  font-weight: 900;
  line-height: 1.65;
  cursor: pointer;
  list-style: none;
}

.method-faq summary::-webkit-details-marker {
  display: none;
}

.method-faq summary::after {
  position: absolute;
  top: 50%;
  right: 10px;
  width: 9px;
  height: 9px;
  border-right: 2px solid var(--brand-coral-dark);
  border-bottom: 2px solid var(--brand-coral-dark);
  content: "";
  transform: translateY(-70%) rotate(45deg);
}

.method-faq details[open] summary::after {
  transform: translateY(-25%) rotate(225deg);
}

.method-faq details p {
  margin: 0;
  padding: 0 44px 22px 4px;
  color: var(--ink-soft);
  line-height: 1.9;
}

.method-final {
  padding: clamp(44px, 6vw, 70px) clamp(20px, 5vw, 54px) !important;
  background: var(--surface-soft);
  text-align: center;
}

.method-final > div:not(.pipi-heading) {
  display: flex;
  margin-top: 28px;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
}

.method-detail-hero {
  position: relative;
  padding: clamp(52px, 7vw, 90px) 0;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(135deg, #fffaf6 0%, #f6efe7 100%);
}

.method-detail-hero .guide-shell {
  position: relative;
}

.method-detail-hero__letter {
  position: absolute;
  right: 0;
  bottom: -70px;
  color: rgba(197, 83, 57, .06);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(180px, 30vw, 350px);
  font-weight: 700;
  line-height: 1;
  pointer-events: none;
}

.method-question {
  display: grid;
  max-inline-size: 760px;
  margin: 30px 0 0;
  padding: 18px 20px;
  border-left: 3px solid var(--brand-coral);
  background: rgba(255, 255, 255, .76);
  gap: 4px;
}

.method-question small {
  color: var(--brand-coral-dark);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .12em;
}

.method-question strong {
  color: var(--ink);
  font-size: clamp(16px, 1.8vw, 21px);
  line-height: 1.65;
}

.method-step-nav-wrap {
  padding-top: 24px;
}

.method-step-nav {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border: 1px solid var(--line);
  border-radius: var(--corner-sharp);
  background: #fff;
}

.method-step-nav a {
  display: grid;
  min-width: 0;
  min-height: 94px;
  padding: 14px;
  position: relative;
  color: var(--ink);
  grid-template-columns: 28px minmax(0, 1fr);
  align-content: center;
  gap: 2px 8px;
}

.method-step-nav a:not(:last-child) {
  border-right: 1px solid var(--line);
}

.method-step-nav a[aria-current="page"] {
  background: var(--surface-soft);
}

.method-step-nav a[aria-current="page"]::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 3px;
  background: var(--brand-coral);
  content: "";
}

.method-step-nav span {
  color: var(--brand-coral-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  font-weight: 700;
  grid-row: 1 / 3;
}

.method-step-nav small {
  color: var(--brand-coral-dark);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .08em;
}

.method-step-nav b {
  min-width: 0;
  font-size: 11px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.method-answer {
  padding: clamp(28px, 4vw, 42px) !important;
  border: 1px solid var(--line) !important;
  border-left: 4px solid var(--brand-coral) !important;
  background: var(--surface-soft);
}

.method-process-list {
  display: grid;
  margin: 30px 0 0;
  padding: 0;
  list-style: none;
  gap: 0;
}

.method-process-list li {
  display: grid;
  padding: 0 0 30px;
  position: relative;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 18px;
}

.method-process-list li:not(:last-child)::before {
  position: absolute;
  top: 52px;
  bottom: 0;
  left: 25px;
  width: 1px;
  background: var(--line);
  content: "";
}

.method-process-list h3 {
  margin: 3px 0 0;
  color: var(--ink);
  font-size: 21px;
}

.method-process-list p {
  margin: 7px 0 0;
  color: var(--ink-soft);
  line-height: 1.8;
}

.method-limits {
  background: #fff;
}

.method-sibling-links > div:not(.pipi-heading) {
  display: grid;
  margin-top: 24px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.method-sibling-links a {
  display: grid;
  min-width: 0;
  min-height: 92px;
  padding: 18px 20px;
  border: 1px solid var(--line);
  border-radius: var(--corner-sharp);
  color: var(--ink);
  grid-template-columns: minmax(0, 1fr) auto;
  align-content: center;
  gap: 3px 12px;
}

.method-sibling-links small {
  color: var(--brand-coral-dark);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .1em;
}

.method-sibling-links b {
  min-width: 0;
  font-size: 16px;
  line-height: 1.5;
}

.method-sibling-links i {
  grid-column: 2;
  grid-row: 1 / 3;
}

/* ROOTS hub information architecture: definition -> concept -> method */
.method-definition {
  padding: clamp(54px, 7vw, 88px) 0;
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.method-definition .pipi-heading {
  margin-bottom: 28px;
}

.method-definition__panel {
  padding: clamp(26px, 4vw, 46px);
  border: 1px solid var(--line);
  border-left: 4px solid var(--brand-coral);
  background: #fff;
}

.method-definition__panel > p {
  max-width: 900px;
  margin: 0;
  color: var(--ink-soft);
  font-size: clamp(14px, 1.35vw, 16px);
  line-height: 2;
}

.method-definition__panel > p + p {
  margin-top: 14px;
}

.method-definition__panel strong {
  color: var(--ink);
}

.method-definition__note {
  padding-top: 18px;
  border-top: 1px solid var(--line);
  font-size: 12px !important;
}

.method-definition__goal {
  display: grid;
  padding: 22px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  gap: 6px;
}

.method-definition__goal small,
.method-structure-summary small {
  color: var(--brand-coral-dark);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .12em;
}

.method-definition__goal strong {
  font-size: clamp(17px, 2vw, 23px);
  line-height: 1.65;
}

.method-structure-summary {
  display: grid;
  margin-top: 26px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1px solid var(--line);
}

.method-structure-summary > div {
  padding: clamp(22px, 3vw, 32px);
}

.method-structure-summary > div + div {
  border-left: 1px solid var(--line);
}

.method-structure-summary h2 {
  margin: 7px 0 16px;
  color: var(--ink);
  font-size: clamp(20px, 2.5vw, 28px);
}

.method-structure-summary p {
  margin: 8px 0 0;
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.7;
}

.method-structure-summary b {
  display: inline-block;
  min-width: 82px;
  color: var(--ink);
}

.method-definition .method-step-nav {
  margin-top: 28px;
}

.method-concept {
  text-align: left;
}

.method-concept > .pipi-heading {
  text-align: center;
}

.method-concept__layout {
  display: grid;
  margin-top: 34px;
  grid-template-columns: minmax(0, .92fr) minmax(320px, 1.08fr);
  align-items: center;
  gap: clamp(30px, 5vw, 64px);
}

.method-concept__layout > * {
  min-width: 0;
}

.method-concept__statement {
  margin: 30px 0 0;
  color: var(--brand-coral-dark);
  font-size: clamp(21px, 3vw, 32px);
  font-weight: 800;
  text-align: center;
}

.method-concept__hero-copy {
  max-inline-size: 100% !important;
  margin: 30px 0 0;
  color: var(--ink);
  font-family: var(--font-serif);
  font-size: clamp(34px, 5vw, 58px);
  font-weight: 600;
  line-height: 1.45;
  text-align: center;
}

.method-concept__hero-copy,
.method-concept__statement {
  margin-inline: auto !important;
}

.method-concept__lead {
  margin: 0 0 26px;
  color: var(--ink);
  font-family: var(--font-serif);
  font-size: clamp(30px, 3.6vw, 40px);
  font-weight: 600;
  letter-spacing: .04em;
  line-height: 1.45;
  line-break: strict;
  overflow-wrap: anywhere;
  text-wrap: balance;
  word-break: normal;
}

.method-concept__layout > div > p:not(.method-concept__lead) {
  margin: 12px 0 0;
  color: var(--ink-soft);
  line-height: 2;
}

.method-concept__layout .method-evidence-note {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  font-size: 11px;
  line-height: 1.8;
}

.method-concept-sequence {
  display: grid;
  margin-top: clamp(48px, 7vw, 88px);
  gap: clamp(64px, 9vw, 112px);
}

.method-concept-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .95fr);
  grid-template-areas: "copy media";
  align-items: center;
  gap: clamp(42px, 7vw, 88px);
}

.method-concept-row--reverse {
  grid-template-areas: "media copy";
}

.method-concept-row > * {
  min-width: 0;
}

.method-concept-row__copy {
  grid-area: copy;
  max-width: 520px;
}

.method-concept-row__copy h3 {
  margin: 0 0 24px;
  color: var(--brand-coral-dark);
  font-size: clamp(23px, 2.6vw, 32px);
  font-weight: 500;
  letter-spacing: .035em;
  line-break: strict;
  line-height: 1.55;
  overflow-wrap: anywhere;
  text-wrap: balance;
  word-break: normal;
}

.method-concept-row__copy p {
  margin: 0;
  color: var(--ink-soft);
  line-height: 2;
}

.method-concept-row__copy p + p {
  margin-top: 10px;
}

.method-concept-row__copy p:last-child {
  margin-top: 26px;
}

.method-concept-row__media {
  grid-area: media;
  margin: 0;
}

.method-concept-row__media img {
  display: block;
  width: 100%;
  height: auto;
}

.method-concept-row__placeholder .pipi-photo-placeholder__canvas {
  min-height: 270px;
  border-radius: 0;
}

.method-concept-row__logo {
  padding: clamp(18px, 3vw, 34px);
}

.method-evidence-note a {
  display: inline-flex;
  margin-left: 4px;
  align-items: center;
  color: var(--brand-coral-dark);
  font-weight: 800;
  gap: 5px;
}

.method-concept .method-media-placeholder {
  margin-top: 0;
}

.method-story-bridge {
  margin-top: 38px;
  padding: clamp(26px, 4vw, 42px);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-align: center;
}

.method-story-bridge small {
  display: block;
  color: var(--brand-coral-dark);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .12em;
}

.method-story-bridge strong {
  display: block;
  margin-top: 9px;
  color: var(--ink);
  font-size: clamp(21px, 3vw, 31px);
  line-height: 1.55;
}

.method-story-bridge p,
.method-deep-training > p {
  margin: 13px auto 0;
  max-width: 800px;
  color: var(--ink-soft);
  line-height: 2;
}

.method-roots-enables {
  display: grid;
  margin-top: 38px;
  padding: clamp(28px, 5vw, 54px);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  justify-items: center;
  text-align: center;
  gap: 12px;
}

.method-roots-enables p {
  margin: 0;
  color: var(--brand-coral-dark);
  font-size: 12px;
  font-weight: 900;
}

.method-roots-enables strong {
  color: var(--ink);
  font-size: clamp(23px, 3.4vw, 38px);
  line-height: 1.55;
}

.method-roots-enables span {
  color: var(--ink-soft);
  line-height: 1.9;
}

.method-roots-enables img {
  width: min(360px, 80%);
  height: 220px;
  object-fit: cover;
  object-position: center;
  margin-top: 10px;
}

.method-deep-training__lead {
  margin: 28px auto 0;
  color: var(--ink) !important;
  font-size: clamp(20px, 2.8vw, 29px);
  font-weight: 800;
  text-align: center;
}

.method-deep-release-row {
  display: grid;
  max-width: 900px;
  margin: clamp(54px, 7vw, 86px) auto 0;
  grid-template-columns: minmax(0, 1.15fr) minmax(260px, .9fr);
  align-items: center;
  gap: clamp(34px, 5vw, 58px);
}

.method-deep-release-row > * {
  min-width: 0;
}

.method-deep-release-row__copy p {
  margin: 0;
  color: var(--ink-soft);
  line-height: 2;
}

.method-deep-release-row__copy p + p {
  margin-top: 12px;
}

.method-deep-release-row__copy p:last-child {
  margin-top: 24px;
}

.method-deep-release-row__copy strong {
  color: var(--ink);
  font-size: clamp(20px, 2.2vw, 27px);
  line-height: 1.7;
}

.method-deep-release-row__media {
  margin: 0;
}

.method-deep-release-row__media > img {
  display: block;
  width: 100%;
  height: auto;
}

.method-deep-release-row__media .pipi-photo-placeholder__canvas {
  min-height: 230px;
  border-radius: 0;
}

.method-deep-release-misconception {
  max-width: 900px;
  margin: clamp(54px, 7vw, 86px) auto 0;
  padding: clamp(34px, 5vw, 58px) 24px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-align: center;
}

.method-deep-release-misconception p {
  margin: 0;
  color: var(--ink-soft);
  font-size: clamp(18px, 2.2vw, 25px);
  line-height: 2;
}

.method-deep-release-misconception strong {
  display: block;
  margin-top: 22px;
  color: var(--brand-coral-dark);
  font-size: clamp(21px, 2.6vw, 30px);
}

.method-deep-release-row--definition {
  margin-top: clamp(54px, 7vw, 86px);
}

.method-deep-training > .method-comparison {
  margin-top: clamp(64px, 8vw, 96px);
}

.method-deep-problem {
  margin: 28px 0;
  padding: 24px clamp(20px, 3vw, 30px);
  border-left: 4px solid var(--brand-coral);
  background: #fff;
}

.method-deep-problem p {
  margin: 0;
  color: var(--ink);
  font-weight: 700;
  line-height: 1.8;
}

.method-deep-problem p + p {
  margin-top: 8px;
}

.method-comparison {
  margin-top: 34px;
  border: 1px solid var(--line);
}

.method-comparison h3 {
  margin: 0;
  padding: 18px 22px;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-size: 18px;
}

.method-comparison > div {
  display: grid;
  padding: 18px 22px;
  grid-template-columns: 150px repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.method-comparison__head {
  background: var(--surface-soft);
}

.method-comparison > div + div {
  border-top: 1px solid var(--line);
}

.method-comparison span {
  color: var(--brand-coral-dark);
  font-size: 12px;
  font-weight: 900;
}

.method-comparison b {
  color: var(--ink);
  line-height: 1.7;
}

.method-comparison--gift {
  max-width: 1000px;
  margin-inline: auto;
  padding: clamp(42px, 6vw, 64px) clamp(22px, 4vw, 48px) 0;
  border: 0;
  background: #f2f8f9;
}

.method-comparison--gift h3 {
  margin: 0 0 36px;
  padding: 0;
  border: 0;
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 500;
  text-align: center;
}

.method-comparison--gift .method-comparison__caption {
  margin: 0 0 12px;
  color: var(--ink-soft);
  font-size: 12px;
  line-height: 1.7;
  text-align: left;
}

.method-comparison--gift > div {
  padding: 0;
  grid-template-columns: minmax(150px, .7fr) repeat(2, minmax(0, 1.25fr));
  gap: 0;
}

.method-comparison--gift .method-comparison__head {
  background: transparent;
}

.method-comparison--gift .method-comparison__head > * {
  display: grid;
  min-height: 54px;
  padding: 12px 16px;
  place-items: center;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
}

.method-comparison--gift .method-comparison__head span {
  background: #555;
}

.method-comparison--gift .method-comparison__head b {
  background: var(--brand-coral-dark);
}

.method-comparison--gift > div:not(.method-comparison__head) > * {
  display: grid;
  min-height: 58px;
  padding: 13px 16px;
  place-items: center;
  color: var(--ink-soft);
  font-size: 13px;
  font-weight: 500;
  text-align: center;
}

.method-comparison--gift > div:not(.method-comparison__head) > span {
  justify-items: start;
  background: #f2f2f2;
  color: var(--ink);
  font-weight: 700;
  text-align: left;
}

.method-comparison--gift > div:nth-of-type(odd):not(.method-comparison__head) > b {
  background: rgba(255, 255, 255, .72);
}

.method-comparison--gift > div:nth-of-type(even):not(.method-comparison__head) > b {
  background: rgba(255, 255, 255, .42);
}

.method-section-close--gift {
  max-width: 1000px !important;
  margin: 0 auto !important;
  padding: clamp(42px, 6vw, 62px) 24px !important;
  border: 0 !important;
  background: #f2f8f9;
  font-size: clamp(17px, 2vw, 21px) !important;
  font-weight: 500 !important;
  line-height: 2 !important;
}

.method-section-question {
  margin: 28px 0 0 !important;
  color: var(--brand-coral-dark) !important;
  font-size: clamp(20px, 3vw, 30px) !important;
  font-weight: 800;
  line-height: 1.6 !important;
}

.method-section-close {
  max-inline-size: 920px !important;
  margin: 34px auto 0 !important;
  padding: 22px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  color: var(--ink) !important;
  font-size: clamp(18px, 2.4vw, 25px) !important;
  font-weight: 800;
  text-align: center;
}

#method-steps > .method-section-question,
#method-steps > p:not(.method-section-close),
#approach > .method-section-question,
#approach > p:nth-of-type(2) {
  max-inline-size: 920px;
  margin-inline: auto !important;
  text-align: center;
}

.method-hub-page .guide-references {
  text-align: center;
}

.method-hub-page .guide-references > p {
  max-inline-size: 920px !important;
  margin-inline: auto !important;
  text-align: center;
}

.method-approach-stack {
  display: grid;
  margin-top: 34px;
  gap: 0;
}

.method-approach-stack article {
  display: grid;
  padding: clamp(30px, 5vw, 52px) 0;
  grid-template-columns: minmax(0, .9fr) minmax(340px, 1.1fr);
  align-items: center;
  gap: clamp(30px, 5vw, 60px);
  border-top: 1px solid var(--line);
}

.method-approach-stack article:last-child {
  border-bottom: 1px solid var(--line);
}

.method-approach-stack article:nth-child(even) > div {
  grid-column: 2;
}

.method-approach-stack article:nth-child(even) > figure {
  grid-column: 1;
  grid-row: 1;
}

.method-approach-stack article > div > span {
  color: var(--brand-coral-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 32px;
  font-weight: 700;
}

.method-approach-stack article > div > small {
  display: block;
  margin-top: 5px;
  color: var(--brand-coral-dark);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .12em;
}

.method-approach-stack h3 {
  margin: 10px 0 0;
  color: var(--ink);
  font-size: clamp(24px, 3.2vw, 35px);
}

.method-approach-stack strong {
  display: block;
  margin-top: 16px;
  color: var(--ink);
  font-size: 17px;
  line-height: 1.75;
}

.method-approach-stack p {
  margin: 12px 0 0;
  color: var(--ink-soft);
  line-height: 1.9;
}

.method-approach-stack .method-approach-note {
  padding-top: 12px;
  border-top: 1px solid var(--line);
  font-size: 11px;
  line-height: 1.8;
}

.method-approach-stack .method-media-placeholder {
  margin-top: 0;
}

.method-approach-stack .method-approach-photo {
  width: 100%;
  margin: 0;
  border: 1px solid var(--line);
  background: #fff;
}

.method-approach-stack .method-approach-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.method-approach-stack .method-approach-photo--dual img {
  aspect-ratio: 2 / 1;
}

.method-approach-stack .method-approach-photo figcaption {
  padding: 11px 14px;
  border-top: 1px solid var(--line);
  color: var(--ink-soft);
  font-size: 11px;
  line-height: 1.7;
}

.method-approach-evidence {
  display: flex;
  margin-top: 28px;
  padding: 20px 22px;
  border: 1px solid var(--line);
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 18px;
}

.method-approach-evidence p {
  width: 100%;
  margin: 0;
  color: var(--ink-soft);
  font-size: 12px;
  line-height: 1.9;
}

.method-approach-evidence strong {
  display: block;
  margin-bottom: 4px;
  color: var(--ink);
}

.method-approach-evidence a {
  display: inline-flex;
  align-items: center;
  color: var(--brand-coral-dark);
  font-size: 12px;
  font-weight: 800;
  gap: 6px;
}

.method-trust,
.method-promise {
  text-align: center;
}

.method-trust-facts {
  display: grid;
  width: min(100%, 920px);
  margin: 34px auto 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.method-trust-facts article {
  display: grid;
  min-width: 0;
  min-height: 128px;
  padding: 24px 14px;
  border: 1px solid var(--line);
  background: #fff;
  align-content: center;
  box-shadow: 0 8px 24px rgb(43 35 29 / 5%);
  gap: 8px;
}

.method-trust-facts strong {
  color: var(--brand-coral-dark);
  font-size: clamp(21px, 2.8vw, 34px);
  line-height: 1.2;
  text-wrap: balance;
}

.method-trust-facts span {
  color: var(--ink-soft);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.6;
}

.method-trust-profile {
  display: grid;
  width: min(100%, 920px);
  margin: 28px auto 0;
  padding: clamp(24px, 4vw, 42px);
  border: 1px solid var(--line);
  background: #fff;
  grid-template-columns: minmax(180px, .62fr) minmax(0, 1.38fr);
  align-items: center;
  text-align: left;
  gap: clamp(26px, 5vw, 58px);
}

.method-trust-profile .method-media-placeholder,
.method-trust-profile .method-supervisor-photo {
  width: min(100%, 270px);
  margin: 0 auto;
}

.method-trust-profile .method-supervisor-photo img {
  aspect-ratio: 3 / 4;
  object-position: center top;
}

.method-trust-profile .method-supervisor-photo figcaption {
  display: none;
}

.method-trust-profile__role {
  margin: 0 0 8px;
  color: var(--brand-coral-dark);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
}

.method-trust-profile h3 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(24px, 3.2vw, 36px);
  line-height: 1.35;
}

.method-trust-profile p:not(.method-trust-profile__role) {
  margin: 15px 0 0;
  color: var(--ink-soft);
  line-height: 1.9;
}

.method-trust-profile .method-trust-disclosure {
  padding-top: 14px;
  border-top: 1px solid var(--line);
  font-size: 12px;
}

.method-body > section > p.method-promise__statement {
  max-inline-size: 760px;
  margin: 34px auto 0;
  color: var(--ink);
  font-size: clamp(28px, 4.5vw, 48px);
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1.55;
  text-align: center;
  text-wrap: balance;
}

.method-promise__story {
  display: grid;
  width: min(100%, 920px);
  margin: 42px auto 0;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  text-align: left;
  gap: clamp(30px, 6vw, 70px);
}

.method-promise__photo {
  margin: 0;
}

.method-promise__photo img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center;
}

.method-promise__story p {
  margin: 0;
  color: var(--ink-soft);
  line-height: 2;
}

.method-promise__story p + p {
  margin-top: 18px;
}

.method-promise__story .method-promise__accent {
  color: var(--brand-coral-dark);
  font-weight: 800;
}

.method-promise__principles {
  display: grid;
  width: min(100%, 920px);
  margin: 48px auto 0;
  padding: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  gap: 18px;
}

.method-promise__principles li {
  display: grid;
  min-width: 0;
  min-height: 132px;
  padding: 24px 20px;
  border: 1px solid var(--line);
  background: #fff;
  align-content: center;
  gap: 10px;
  box-shadow: 0 8px 24px rgb(43 35 29 / 4%);
}

.method-promise__principles b {
  color: var(--brand-coral-dark);
  font-size: 17px;
}

.method-promise__principles span {
  color: var(--ink-soft);
  font-size: 12px;
  line-height: 1.75;
}

.method-route-grid {
  display: grid;
  margin-top: 30px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.method-route-grid article {
  min-width: 0;
  padding: 26px 24px;
}

.method-route-grid article + article {
  border-left: 1px solid var(--line);
}

.method-route-grid span {
  color: var(--brand-coral-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
  font-weight: 700;
}

.method-route-grid h3 {
  margin: 10px 0 0;
  color: var(--ink);
  font-size: 18px;
}

.method-route-grid p {
  margin: 8px 0 0;
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.8;
}

.method-approach-grid {
  display: grid;
  margin-top: 30px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--line);
}

.method-approach-grid article {
  min-width: 0;
  padding: clamp(22px, 3vw, 32px);
  background: #fff;
}

.method-approach-grid article + article {
  border-left: 1px solid var(--line);
}

.method-approach-grid article > span {
  display: block;
  color: var(--brand-coral-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 30px;
  font-weight: 700;
}

.method-approach-grid article > small {
  display: block;
  margin-top: 7px;
  color: var(--brand-coral-dark);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .12em;
}

.method-approach-grid h3 {
  margin: 10px 0 0;
  color: var(--ink);
  font-size: 19px;
  line-height: 1.55;
}

.method-approach-grid p {
  margin: 10px 0 0;
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.8;
}

.method-approach-grid .method-approach-note {
  padding-top: 12px;
  border-top: 1px solid var(--line);
  font-size: 11px;
}

.method-approach-card--fast {
  border-top: 3px solid var(--brand-coral);
}

.method-audience-list {
  display: grid;
  margin: 28px 0 0;
  padding: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  list-style: none;
}

.method-audience-list li {
  padding: 18px 20px 18px 42px;
  position: relative;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  line-height: 1.7;
}

.method-audience-list li::before {
  position: absolute;
  top: 24px;
  left: 18px;
  width: 8px;
  height: 8px;
  background: var(--brand-coral);
  content: "";
  transform: rotate(45deg);
}

.method-audience-list li:nth-child(even) {
  border-left: 1px solid var(--line);
}

/* ROOTS cause analysis follows the same reading order as the GIFT method:
   definition -> overview diagram -> details -> summary -> benefit. */
.method-cause-analysis {
  padding: clamp(68px, 8vw, 104px) clamp(22px, 5vw, 64px) !important;
  background:
    radial-gradient(circle at 7% 5%, rgba(246, 94, 68, .07), transparent 26%),
    radial-gradient(circle at 94% 8%, rgba(226, 171, 65, .07), transparent 27%),
    #fffdf9;
}

.method-cause-analysis > .pipi-heading {
  max-width: 960px;
}

.method-cause-analysis .pipi-heading__title {
  font-size: clamp(25px, 3.4vw, 38px);
  font-weight: 500;
  letter-spacing: .01em;
}

.method-cause-analysis__headline {
  max-width: 780px !important;
  margin: clamp(36px, 5vw, 54px) auto 0 !important;
  color: var(--ink) !important;
  text-align: center;
}

.method-cause-analysis__headline span,
.method-cause-analysis__headline strong {
  display: block;
}

.method-cause-analysis__headline span {
  font-size: clamp(19px, 2.3vw, 25px);
  font-weight: 500;
  line-height: 1.65;
}

.method-cause-analysis__headline strong {
  margin-top: 4px;
  font-size: clamp(27px, 3.6vw, 38px);
  font-weight: 500;
  line-height: 1.5;
}

.method-cause-analysis__definition {
  max-width: 820px;
  margin: 28px auto 0;
  padding: 22px clamp(20px, 4vw, 40px);
  border: 1px solid rgba(215, 199, 182, .7);
  background: rgba(247, 252, 252, .9);
  color: var(--ink-soft);
  font-size: 14px;
  line-height: 2;
  text-align: center;
}

.method-cause-analysis__figure {
  max-width: 900px;
  margin: clamp(32px, 5vw, 48px) auto 0;
  border: 1px solid var(--line);
  background: #fff;
}

.method-cause-analysis__figure img {
  display: block;
  width: 100%;
  height: auto;
}

.method-cause-analysis__details {
  max-width: 1000px;
  margin: clamp(68px, 8vw, 96px) auto 0;
}

.method-cause-analysis__details > h3 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(21px, 2.6vw, 28px);
  font-weight: 600;
  text-align: center;
}

.method-cause-analysis .method-step-grid {
  margin-top: 30px;
  gap: 18px;
}

.method-cause-analysis .method-step-card {
  --cause-color: var(--brand-coral-dark);
  padding: clamp(22px, 3.2vw, 34px);
  border-left-color: var(--cause-color);
  grid-template-columns: minmax(360px, 1.12fr) minmax(0, .88fr) 42px;
  grid-template-areas:
    "identity identity arrow"
    "image copy arrow";
  align-items: center;
  column-gap: clamp(24px, 4vw, 46px);
  row-gap: 24px;
}

.method-cause-analysis .method-step-card:nth-child(1) { --cause-color: #df604b; }
.method-cause-analysis .method-step-card:nth-child(2) { --cause-color: #eb9140; }
.method-cause-analysis .method-step-card:nth-child(3) { --cause-color: #c77d75; }
.method-cause-analysis .method-step-card:nth-child(4) { --cause-color: #9273ac; }
.method-cause-analysis .method-step-card:nth-child(5) { --cause-color: #4f7fac; }

.method-cause-analysis .method-step-card__identity {
  display: flex;
  grid-area: identity;
  align-items: center;
  gap: 18px;
}

.method-cause-analysis .method-step-letter {
  color: var(--cause-color);
  font-size: clamp(46px, 6vw, 66px);
}

.method-cause-analysis .method-step-card small {
  color: var(--cause-color);
}

.method-cause-analysis .method-step-card h3 {
  margin-top: 5px;
  font-size: clamp(22px, 2.6vw, 31px);
}

.method-step-card__term {
  display: block;
  margin-top: 7px;
  color: #665f59;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.55;
}

.method-step-card__image {
  grid-area: image;
  margin: 0;
  border: 1px solid var(--line);
  background: #fffdf9;
}

.method-step-card__image img {
  display: block;
  width: 100%;
  height: auto;
}

.method-step-card__copy {
  grid-area: copy;
  align-self: center;
}

.method-cause-analysis .method-step-card__copy p {
  margin: 0;
  font-size: clamp(14px, 1.5vw, 16px);
  line-height: 2;
}

.method-cause-analysis .method-step-card__copy p + p {
  margin-top: 10px;
  color: #665f59;
  font-size: 13px;
  line-height: 1.85;
}

.method-cause-analysis .method-step-card > .pipi-arrow {
  grid-area: arrow;
}

.method-cause-analysis__summary,
.method-cause-analysis__closing {
  max-width: 820px !important;
  margin-inline: auto !important;
  color: var(--ink) !important;
  text-align: center;
}

.method-cause-analysis__summary {
  margin-top: clamp(54px, 7vw, 76px) !important;
  font-size: clamp(20px, 2.6vw, 28px) !important;
  font-weight: 500;
  line-height: 1.9 !important;
}

.method-cause-analysis__outcome {
  max-width: 900px;
  margin: clamp(30px, 4vw, 44px) auto 0;
  border: 1px solid var(--line);
  background: #fff;
}

.method-cause-analysis__outcome img {
  display: block;
  width: 100%;
  height: auto;
}

.method-cause-analysis__closing {
  margin-top: clamp(40px, 5vw, 56px) !important;
  padding-top: clamp(34px, 4vw, 44px);
  border-top: 1px solid var(--line);
  font-size: clamp(17px, 2vw, 21px) !important;
  font-weight: 500;
  line-height: 2 !important;
}

@media (max-width: 860px) {
  .method-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .method-toc {
    position: static;
  }

  .method-step-nav-wrap {
    width: 100%;
    padding-inline: 0;
    overflow-x: auto;
    scrollbar-width: thin;
  }

  .method-step-nav {
    width: max-content;
    min-width: 760px;
    border-inline: 0;
  }

  .method-definition .method-step-nav {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    grid-template-columns: repeat(5, minmax(142px, 1fr));
    overflow-x: auto;
    overflow-y: hidden;
  }
}

@media (max-width: 760px) {
  .method-hero--hub {
    padding-top: 12px;
  }

  .method-hero--hub .guide-shell {
    width: calc(100% - 24px);
  }

  .method-hero--hub img {
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: contain;
  }

  .method-hero-actions,
  .method-final > div:not(.pipi-heading) {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .method-hero-actions .pipi-button,
  .method-final .pipi-button {
    width: 100%;
  }

  .method-final .pipi-heading__title {
    max-inline-size: 18em;
    font-size: clamp(23px, 6.2vw, 29px);
    line-height: 1.35;
    text-wrap: balance;
  }

  .method-layout {
    width: calc(100% - 36px);
    padding-top: 36px;
    gap: 34px;
  }

  .method-principle-list,
  .method-point-grid,
  .method-evidence-summary,
  .method-sibling-links > div:not(.pipi-heading),
  .method-route-grid,
  .method-audience-list {
    grid-template-columns: minmax(0, 1fr);
  }

  .method-definition {
    padding-block: 42px;
  }

  .method-definition .guide-shell {
    width: calc(100% - 36px);
  }

  .method-definition__panel {
    padding: 24px 18px;
  }

  .method-structure-summary {
    grid-template-columns: minmax(0, 1fr);
  }

  .method-structure-summary > div + div {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .method-definition .method-step-nav {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    grid-template-columns: repeat(5, minmax(142px, 1fr));
    overflow-x: auto;
    overflow-y: hidden;
  }

  .method-definition .method-step-nav a {
    min-width: 142px;
  }

  .method-concept__lead {
    font-size: clamp(31px, 9vw, 45px);
    word-break: normal;
  }

  .method-concept__layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
  }

  .method-concept-sequence {
    margin-top: 40px;
    gap: 56px;
  }

  .method-concept-row,
  .method-concept-row--reverse {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "copy"
      "media";
    gap: 26px;
  }

  .method-concept-row__copy {
    max-width: none;
  }

  .method-concept-row__copy h3 {
    margin-bottom: 18px;
    font-size: clamp(22px, 7.2vw, 30px);
  }

  .method-concept-row__placeholder .pipi-photo-placeholder__canvas {
    min-height: 220px;
  }

  .method-deep-release-row {
    margin-top: 44px;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  .method-deep-release-row__media .pipi-photo-placeholder__canvas {
    min-height: 210px;
  }

  .method-deep-release-misconception {
    margin-top: 48px;
    padding: 30px 10px;
  }

  .method-deep-release-row--definition {
    margin-top: 48px;
  }

  .method-cause-analysis {
    padding: 54px 18px !important;
  }

  .method-cause-analysis__definition {
    padding: 19px 16px;
    font-size: 13px;
    line-height: 1.9;
    text-align: left;
  }

  .method-cause-analysis__figure {
    overflow: hidden;
  }

  .method-cause-analysis__figure img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
  }

  .method-cause-analysis__details {
    margin-top: 60px;
  }

  .method-cause-analysis .method-step-card {
    padding: 20px 16px 24px;
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "identity"
      "image"
      "copy";
    gap: 18px;
  }

  .method-cause-analysis .method-step-card__identity {
    padding-right: 0;
    gap: 12px;
  }

  .method-cause-analysis .method-step-letter {
    flex: 0 0 48px;
    font-size: 46px;
  }

  .method-cause-analysis .method-step-card h3 {
    font-size: clamp(21px, 6.6vw, 27px);
  }

  .method-cause-analysis__summary br,
  .method-cause-analysis__closing br {
    display: none;
  }

  .method-comparison > div {
    grid-template-columns: minmax(0, 1fr);
  }

  .method-trust-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .method-trust-facts article {
    min-height: 112px;
    padding: 20px 10px;
  }

  .method-trust-profile,
  .method-promise__story,
  .method-promise__principles {
    grid-template-columns: minmax(0, 1fr);
  }

  .method-trust-profile {
    padding: 22px 18px;
    text-align: center;
  }

  .method-trust-profile .method-supervisor-photo {
    width: min(58vw, 220px);
  }

  .method-body > section > p.method-promise__statement {
    margin-top: 28px;
    font-size: clamp(25px, 8vw, 34px);
  }

  .method-promise__story {
    margin-top: 32px;
    gap: 24px;
  }

  .method-promise__story > div {
    text-align: left;
  }

  .method-promise__principles {
    margin-top: 32px;
    gap: 10px;
  }

  .method-promise__principles li {
    min-height: 0;
    padding: 21px 18px;
  }

  .method-comparison > div {
    gap: 7px;
  }

  .method-comparison > div b + b {
    margin-top: 4px;
    padding-top: 8px;
    border-top: 1px dashed var(--line);
  }

  /* GIFT型の比較表は、スマホでもPCと同じ3列の対応関係を保つ。 */
  .method-comparison--gift {
    padding-inline: clamp(8px, 3vw, 16px);
  }

  .method-comparison--gift > div {
    grid-template-columns: minmax(60px, .66fr) repeat(2, minmax(0, 1.25fr));
    gap: 0;
  }

  .method-comparison--gift .method-comparison__head > *,
  .method-comparison--gift > div:not(.method-comparison__head) > * {
    min-width: 0;
    padding: 10px 6px;
    font-size: clamp(9px, 2.6vw, 12px);
    line-height: 1.5;
    overflow-wrap: anywhere;
  }

  .method-comparison--gift > div b + b {
    margin-top: 0;
    padding-top: 10px;
    border-top: 0;
  }

  .method-approach-stack article {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  .method-approach-stack article:nth-child(even) > div,
  .method-approach-stack article:nth-child(even) > figure {
    grid-column: auto;
    grid-row: auto;
  }

  .method-approach-stack h3 {
    font-size: clamp(24px, 7.4vw, 32px);
    line-break: strict;
    overflow-wrap: anywhere;
    text-wrap: balance;
  }

  .method-approach-evidence {
    padding: 18px 16px;
  }

  .method-route-grid article + article,
  .method-audience-list li:nth-child(even) {
    border-left: 0;
  }

  .method-route-grid article + article {
    border-top: 1px solid var(--line);
  }

  .method-approach-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .method-approach-grid article + article {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .method-principle-list article:first-child {
    grid-column: auto;
  }

  .method-step-card {
    padding: 18px 16px;
    grid-template-columns: 50px minmax(0, 1fr);
    gap: 12px;
  }

  .method-step-card > .pipi-arrow {
    display: none;
  }

  .method-step-letter {
    font-size: 46px;
  }

  .method-step-card p {
    font-size: 12px;
  }

  .method-detail-hero {
    padding-block: 42px 48px;
  }

  .method-detail-hero__letter {
    right: -12px;
    bottom: -25px;
    font-size: 180px;
  }

  .method-question {
    margin-top: 24px;
  }

  .method-answer {
    padding: 26px 20px !important;
  }

  .method-point-grid article {
    padding: 19px 16px;
  }

  .method-process-list li {
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 14px;
  }

  .method-media-placeholder {
    margin-top: 24px;
  }

  .method-explainer__scroll {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }

  .method-explainer img {
    width: 820px;
    max-width: none;
  }

  .method-explainer--fit-mobile .method-explainer__scroll {
    overflow: hidden;
  }

  .method-explainer--fit-mobile img {
    width: 100%;
    max-width: 100%;
  }

  .method-explainer__swipe {
    display: block;
    margin-top: 4px;
    color: var(--brand-coral-dark);
    font-weight: 800;
  }
}
