/*
 * フィットネス集客支援LP 専用CSS
 * 正本は静的LPの styles.css（2026-11-07 12:33版）。見た目を一致させるため値は変えず、改行・セミコロンのみ社内標準に整えている。
 * 静的LP側を直したら、このファイルにも同じ値を反映する。
 */

:root {
  --color-primary: #725116;
  --color-primary-dark: #4A3410;
  --color-secondary: #6B5D4D;
  --color-accent: #009245;
  --color-accent-dark: #007A3A;
  --color-accent-deep: #005F2E;
  --color-text: #2E2416;
  --color-text-sub: #5A4A3A;
  --color-text-light: #6B5D4D;
  --color-bg: #ffffff;
  --color-bg-gray: #F7F4EE;
  --color-border: #E0D8C8;
  --color-white: #ffffff;
  --color-black: #000000;
  --font-jp: 'Noto Sans JP',sans-serif;
  --font-jp-heading: 'Noto Serif JP',serif;
  --font-en: 'DM Sans',sans-serif;
  --font-base: var(--font-jp);
  --fz-xs: .75rem;
  --fz-sm: .875rem;
  --fz-base: 1rem;
  --fz-md: 1.125rem;
  --fz-lg: 1.25rem;
  --fz-xl: 1.5rem;
  --fz-2xl: 1.875rem;
  --fz-3xl: 2.25rem;
  --fz-4xl: 3rem;
  --sp-1: .5rem;
  --sp-2: 1rem;
  --sp-3: 1.5rem;
  --sp-4: 2rem;
  --sp-6: 3rem;
  --sp-8: 4rem;
  --sp-12: 6rem;
  --sp-16: 8rem;
  --section-py-pc: var(--sp-12);
  --section-py-sp: var(--sp-8);
  --container-max: 1120px;
  --container-px: var(--sp-4);
  --container-px-sp: var(--sp-3);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-base);
  font-size: var(--fz-base);
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
}

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

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

button,
input,
textarea,
select {
  font: inherit;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1,
h2 {
  font-family: var(--font-jp-heading);
  line-height: 1.35;
}

h3 {
  line-height: 1.4;
}

p {
  line-height: 1.8;
}

::selection {
  background: var(--color-secondary);
  color: var(--color-white);
}

:focus-visible {
  outline: 3px solid var(--color-accent-dark);
  outline-offset: 3px;
}

section[id] {
  scroll-margin-top: 5rem;
}

.l-container {
  width: min(100% - (var(--container-px) * 2), var(--container-max));
  margin-inline: auto;
}

.l-section {
  padding-block: var(--section-py-pc);
}

.c-skip-link {
  position: absolute;
  top: -5rem;
  left: 1rem;
  z-index: 100;
  padding: .5rem 1rem;
  background: var(--color-primary);
  color: var(--color-white);
}

.c-skip-link:focus {
  top: 1rem;
}

.p-preview {
  padding: .36rem 1rem;
  background: var(--color-primary-dark);
  color: var(--color-white);
  font-size: .8125rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-align: center;
}

.l-header {
  background: var(--color-bg);
  border-bottom: 1px solid var(--color-border);
}

.l-header__inner {
  display: flex;
  align-items: center;
  gap: 2.5rem;
  min-height: 6.3rem;
}

.l-header__brand {
  display: flex;
  align-items: center;
  gap: 1.15rem;
  flex-shrink: 0;
}

.l-header__brand img {
  width: 153px;
  height: auto;
}

.l-header__descriptor {
  padding-left: 1.15rem;
  border-left: 1px solid var(--color-border);
  font-family: var(--font-jp);
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.4;
  color: var(--color-secondary);
  white-space: nowrap;
}

.l-header__nav {
  display: flex;
  gap: 1.5rem;
  margin-left: auto;
  font-size: .875rem;
  font-weight: 600;
  white-space: nowrap;
}

.l-header__nav a {
  transition: color .2s;
}

.l-header__nav a:hover {
  color: var(--color-accent-dark);
}

.l-header__cta {
  font-size: .875rem !important;
  padding: .72rem 1.1rem !important;
  white-space: nowrap;
}

.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  padding: var(--sp-2) var(--sp-6);
  border: 2px solid var(--color-primary);
  border-radius: 4px;
  font-size: var(--fz-md);
  font-weight: 700;
  letter-spacing: .05em;
  line-height: 1.5;
  text-align: center;
  transition: background .2s, transform .2s, border-color .2s;
  cursor: pointer;
}

.c-btn:hover {
  transform: translateY(-2px);
  background: var(--color-accent-deep);
  border-color: var(--color-accent-deep);
}

.c-btn--primary {
  background: var(--color-accent-dark);
  border-color: var(--color-accent-dark);
  color: var(--color-white);
}

.c-btn--large {
  min-height: 4rem;
}

.c-btn--light {
  background: var(--color-white);
  border-color: var(--color-white);
  color: var(--color-primary);
}

.c-btn--light:hover {
  background: var(--color-bg-gray);
  border-color: var(--color-bg-gray);
}

.c-text-link {
  display: inline-flex;
  align-items: center;
  gap: 1.2rem;
  padding: .3rem 0 .65rem;
  border-bottom: 1px solid var(--color-primary);
  color: var(--color-primary);
  font-size: 1rem;
  font-weight: 700;
  transition: gap .2s;
}

.c-text-link:hover {
  gap: 1.6rem;
}

.c-eyebrow {
  display: flex;
  align-items: center;
  gap: .75rem;
  color: var(--color-secondary);
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .15em;
}

.c-eyebrow__line {
  width: 2.2rem;
  height: 1px;
  background: var(--color-accent);
}

.c-section-head__index {
  margin-bottom: 1.65rem;
  color: var(--color-secondary);
  font-family: var(--font-jp);
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.3;
}

.c-section-head__title {
  margin-bottom: 1.3rem;
  color: var(--color-primary);
  font-size: clamp(2.1rem, 3.3vw, 3rem);
  font-weight: 600;
  letter-spacing: -.02em;
}

.c-section-head__intro {
  color: var(--color-text-sub);
}

.p-fv {
  position: relative;
  overflow: hidden;
  background: var(--color-bg-gray);
}

.p-fv__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
  padding-block: 5.4rem 4.5rem;
}

.p-fv__content {
  position: relative;
  z-index: 1;
}

.p-fv__title {
  margin: 2rem 0 1.45rem;
  color: var(--color-primary);
  font-size: clamp(3.3rem, 5.25vw, 5.5rem);
  font-weight: 600;
  letter-spacing: -.03em;
  line-height: 1.27;
}

.p-fv__title em {
  font-style: normal;
  white-space: nowrap;
}

.p-fv__title-line {
  display: inline-block;
  white-space: nowrap;
}

.p-fv__lead {
  margin-bottom: .5rem;
  color: var(--color-primary);
  font-size: 1.34rem;
  font-weight: 700;
  letter-spacing: .035em;
}

.p-fv__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .65rem;
}

.p-fv__actions .c-btn {
  font-size: 1rem;
}

.p-fv__visual {
  margin: 0;
}

.p-fv__visual img {
  width: 100%;
  max-width: 35rem;
  height: auto;
  margin-inline: auto;
}

.p-fv__bottom {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-block: 1.15rem;
  border-top: 1px solid var(--color-border);
  font-size: .8125rem;
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--color-secondary);
}

.p-fv__bottom span:first-child {
  font-family: var(--font-jp);
  letter-spacing: .08em;
}

.p-fv__stage-links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .65rem;
  max-width: 34rem;
  margin-top: 2.2rem;
}

.p-fv__stage-links a {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: .1rem .5rem;
  align-items: end;
  padding: .8rem 0;
  border-top: 1px solid var(--color-border);
  color: var(--color-primary);
  transition: border-color .2s;
}

.p-fv__stage-links a:hover {
  border-color: var(--color-primary);
}

.p-fv__stage-links a span:first-child {
  grid-column: 1/-1;
  color: var(--color-secondary);
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .1em;
}

.p-fv__stage-links a strong {
  font-size: .9375rem;
  line-height: 1.5;
}

.p-fv__stage-links a span:last-child {
  font-size: 1rem;
}

.p-stage {
  background: var(--color-bg);
}

.p-stage .c-section-head {
  max-width: 47rem;
  margin-bottom: 3rem;
}

.p-stage__lanes {
  display: grid;
  grid-template-columns: 1.07fr .93fr;
  gap: 1rem;
}

.p-stage__lane {
  display: flex;
  flex-direction: column;
  min-height: 25.5rem;
  border: 1px solid var(--color-border);
}

.p-stage__lane--preopen {
  background: var(--color-bg-gray);
}

.p-stage__lane--running {
  background: var(--color-bg);
}

.p-stage__lane-top {
  display: flex;
  justify-content: space-between;
  padding: 1.1rem 1.7rem;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-secondary);
  font-family: var(--font-jp);
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .08em;
}

.p-stage__lane-main {
  padding: 2rem 2.4rem 1.5rem;
  flex: 1;
}

.p-stage__illust {
  width: 12rem;
  height: auto;
  margin-bottom: 1.4rem;
}

.p-stage__label {
  margin-bottom: 1.1rem;
  color: var(--color-secondary);
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .12em;
}

.p-stage__lane h3 {
  margin-bottom: 1.35rem;
  color: var(--color-primary);
  font-family: var(--font-jp-heading);
  font-size: 1.7rem;
  font-weight: 600;
  letter-spacing: -.05em;
  line-height: 1.55;
}

.p-stage__lane-main > p:last-child {
  max-width: 30rem;
  margin-bottom: 0;
  color: var(--color-text-sub);
  font-size: 1rem;
  line-height: 1.9;
}

.p-stage__lane-foot {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin: 0;
  padding: 1.15rem 1.7rem;
  border-top: 1px solid var(--color-border);
  color: var(--color-secondary);
  font-size: .875rem;
  font-weight: 700;
}

.p-stage__lane-foot span {
  color: var(--color-text);
}

.p-reason {
  background: var(--color-bg-gray);
}

.p-reason__heading {
  display: grid;
  grid-template-columns: 1fr .9fr;
  gap: 4rem;
  align-items: end;
  margin-bottom: 3.5rem;
}

.p-reason__heading > p {
  max-width: 34em;
  margin-bottom: .25rem;
  color: var(--color-text-sub);
  font-size: 1.0625rem;
  line-height: 1.9;
}

.p-reason__list {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--color-border);
}

.p-reason__item {
  display: grid;
  grid-template-columns: minmax(0, 20rem) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
  padding-block: 2.6rem;
  border-bottom: 1px solid var(--color-border);
}

.p-reason__item:nth-child(even) {
  grid-template-columns: minmax(0, 1fr) minmax(0, 20rem);
}

.p-reason__item:nth-child(even) .p-reason__figure {
  order: 2;
}

.p-reason__figure {
  margin: 0;
  padding: 1rem;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
}

.p-reason__figure img {
  width: 100%;
  height: auto;
}

.p-reason__number {
  margin-bottom: .8rem;
  color: var(--color-accent-dark);
  font-family: var(--font-jp);
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .08em;
}

.p-reason__title {
  margin-bottom: 1rem;
  color: var(--color-primary);
  font-family: var(--font-jp-heading);
  font-size: 1.625rem;
  font-weight: 600;
  line-height: 1.5;
}

.p-reason__body > p:not(.p-reason__number):not(.p-reason__point) {
  max-width: 36em;
  margin-bottom: 1.2rem;
  color: var(--color-text-sub);
  font-size: 1rem;
  line-height: 1.9;
}

.p-reason__point {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem 1rem;
  max-width: 36em;
  margin: 0;
  padding-top: .9rem;
  border-top: 1px solid var(--color-border);
  color: var(--color-text);
  font-size: .9375rem;
  font-weight: 500;
}

.p-reason__point span {
  color: var(--color-secondary);
  font-weight: 700;
}

.p-reason__case {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 2rem;
  margin-top: 2.4rem;
  padding: 1.6rem 2rem;
  background: var(--color-bg);
  border-left: 3px solid var(--color-accent);
}

.p-reason__case p {
  max-width: 40em;
  margin: 0;
  color: var(--color-text);
  font-size: 1rem;
}

.p-approach {
  background: var(--color-bg);
}

.p-approach__grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(3rem, 8vw, 8rem);
}

.p-approach__intro {
  align-self: start;
}

.p-approach__intro > p:not(.c-section-head__index) {
  max-width: 25rem;
  margin: 1.8rem 0 2rem;
  color: var(--color-text-sub);
  line-height: 2;
}

.p-approach__steps {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--color-border);
}

.p-approach__step {
  display: grid;
  grid-template-columns: 4rem 1fr;
  gap: 1rem;
  padding: 1.6rem 0;
  border-bottom: 1px solid var(--color-border);
}

.p-approach__number {
  color: var(--color-secondary);
  font-family: var(--font-en);
  font-size: 1.2rem;
  font-weight: 600;
}

.p-approach__step h3 {
  margin-bottom: .5rem;
  color: var(--color-primary);
  font-size: 1.13rem;
}

.p-approach__step p {
  max-width: 31rem;
  margin: 0;
  color: var(--color-text-sub);
  font-size: 1rem;
}

.p-approach__step .p-approach__phase {
  display: inline-block;
  margin-bottom: .5rem;
  padding: .1rem .6rem;
  border: 1px solid var(--color-primary);
  color: var(--color-primary);
  font-size: .8125rem;
  font-weight: 700;
  line-height: 1.6;
}

.p-approach__step .p-approach__phase--monthly {
  border-color: var(--color-accent-dark);
  color: var(--color-accent-dark);
}

.p-approach__illust {
  width: 100%;
  max-width: 22rem;
  height: auto;
  margin-bottom: 2rem;
}

.p-scope {
  background: var(--color-bg-gray);
}

.p-scope__heading {
  display: grid;
  grid-template-columns: 1fr .74fr;
  gap: 4rem;
  align-items: end;
  margin-bottom: 3.4rem;
}

.p-scope__heading > p {
  margin-bottom: .25rem;
  color: var(--color-text-sub);
  font-size: 1rem;
  line-height: 1.9;
}

.p-scope__feature {
  position: relative;
  display: grid;
  grid-template-columns: 11rem 1fr 17rem;
  align-items: center;
  gap: 3rem;
  overflow: hidden;
  padding: 2.45rem 3rem;
  background: var(--color-primary);
  color: var(--color-white);
}

.p-scope__feature-label {
  position: relative;
  z-index: 1;
  padding-top: .3rem;
  font-family: var(--font-jp);
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .08em;
}

.p-scope__feature > div {
  position: relative;
  z-index: 1;
  max-width: 37rem;
}

.p-scope__feature h3 {
  margin-bottom: .8rem;
  font-family: var(--font-jp-heading);
  font-size: 1.52rem;
  font-weight: 600;
}

.p-scope__feature p {
  margin: 0;
  color: var(--color-border);
  font-size: 1rem;
  line-height: 1.9;
}

.p-scope__feature-illust {
  width: 100%;
  height: auto;
}

.p-scope__subhead {
  margin: 3.6rem 0 1.6rem;
  color: var(--color-primary);
  font-family: var(--font-jp-heading);
  font-size: 1.52rem;
  font-weight: 600;
}

.p-scope__areas {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}

.p-scope__area {
  padding: 1.8rem 1.65rem 2.1rem 0;
}

.p-scope__area + .p-scope__area {
  padding-left: 1.65rem;
  border-left: 1px solid var(--color-border);
}

.p-scope__area span {
  display: block;
  margin-bottom: 1.15rem;
  color: var(--color-secondary);
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .12em;
}

.p-scope__area strong {
  display: block;
  margin-bottom: .65rem;
  color: var(--color-primary);
  font-size: 1.13rem;
}

.p-scope__area p {
  max-width: 18rem;
  margin: 0;
  color: var(--color-text-sub);
  font-size: 1rem;
  line-height: 1.9;
}

.p-scope__note {
  margin: 1rem 0 0;
  color: var(--color-text-light);
  font-size: .8125rem;
}

.p-measure {
  background: var(--color-bg-gray);
}

.p-measure__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(3rem, 9vw, 9rem);
  align-items: center;
}

.p-measure__intro {
  max-width: 26rem;
  margin-top: 2rem;
  color: var(--color-text-sub);
  line-height: 2;
}

.p-measure__check {
  max-width: 30rem;
  margin-top: 2rem;
  padding-top: 1.2rem;
  border-top: 1px solid var(--color-border);
}

.p-measure__check h3 {
  margin-bottom: .55rem;
  color: var(--color-primary);
  font-size: .84rem;
}

.p-measure__check ul {
  margin: 0;
  padding-left: 1.2rem;
  color: var(--color-text-sub);
  font-size: .79rem;
  line-height: 1.9;
}

.p-measure__check li + li {
  margin-top: .22rem;
}

.p-measure__ledger {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
}

.p-measure__ledger-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem 1.55rem;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-secondary);
  font-size: .8125rem;
  font-weight: 700;
}

.p-measure__ledger-row {
  display: grid;
  grid-template-columns: 2.2rem 1fr 1.3fr;
  gap: .9rem;
  align-items: center;
  padding: 1.25rem 1.55rem;
  border-bottom: 1px solid var(--color-border);
}

.p-measure__ledger-row span {
  color: var(--color-secondary);
  font-family: var(--font-en);
  font-size: .875rem;
  font-weight: 700;
}

.p-measure__ledger-row strong {
  color: var(--color-primary);
  font-size: 1.0625rem;
}

.p-measure__ledger-row small {
  color: var(--color-text-sub);
  font-size: .9375rem;
}

.p-measure__ledger-foot {
  margin: 0;
  padding: 1.1rem 1.55rem;
  color: var(--color-text-sub);
  font-size: .9375rem;
}

.p-process {
  background: var(--color-bg);
}

.p-process__grid {
  display: grid;
  grid-template-columns: 1fr .75fr;
  gap: clamp(3rem, 9vw, 9rem);
}

.p-process__grid > div:first-child > p:last-child {
  max-width: 35rem;
  margin-top: 1.8rem;
  color: var(--color-text-sub);
  line-height: 2;
}

.p-process__detail {
  align-self: center;
  padding: 2rem 2.3rem;
  background: var(--color-bg-gray);
  border-left: 3px solid var(--color-primary);
}

.p-process__detail h3 {
  margin-bottom: .8rem;
  color: var(--color-primary);
  font-family: var(--font-jp-heading);
  font-size: 1.25rem;
}

.p-process__detail p {
  color: var(--color-text-sub);
  font-size: 1rem;
  line-height: 1.9;
}

.p-process__detail .c-text-link {
  margin-top: .5rem;
}

.p-faq {
  background: var(--color-bg-gray);
}

.p-faq__grid {
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  gap: clamp(3rem, 8vw, 8rem);
}

.p-faq__list {
  border-top: 1px solid var(--color-border);
}

.p-faq__item {
  padding: 1.55rem 0;
  border-bottom: 1px solid var(--color-border);
}

.p-faq__item h3 {
  position: relative;
  margin-bottom: .5rem;
  padding-left: 2rem;
  color: var(--color-primary);
  font-size: 1.0625rem;
}

.p-faq__item h3::before {
  content: '問';
  position: absolute;
  left: 0;
  top: 0;
  color: var(--color-secondary);
  font-family: var(--font-jp);
  font-size: 1rem;
  font-weight: 700;
}

.p-faq__item p {
  margin: 0;
  padding-left: 2rem;
  color: var(--color-text-sub);
  font-size: 1rem;
  line-height: 1.9;
}

.p-faq__illust {
  width: 100%;
  max-width: 15rem;
  height: auto;
  margin-top: 1.5rem;
}

.p-contact {
  background: var(--color-primary);
  color: var(--color-white);
}

.p-contact__grid {
  display: grid;
  grid-template-columns: 1fr .84fr;
  gap: clamp(3rem, 8vw, 8rem);
  align-items: center;
}

.p-contact .c-section-head__index {
  color: var(--color-border);
}

.p-contact__title {
  margin-bottom: 1.6rem;
  font-size: clamp(2.1rem, 3.8vw, 3.35rem);
  font-weight: 600;
  letter-spacing: -.055em;
}

.p-contact__text {
  max-width: 31rem;
  color: var(--color-border);
}

.p-contact__illust {
  width: 100%;
  max-width: 18rem;
  height: auto;
  margin-top: 1.5rem;
}

.p-contact__panel {
  padding: 2rem 2.2rem;
  border: 1px solid var(--color-secondary);
}

.p-contact__panel-label {
  margin-bottom: 1rem;
  font-size: 1.0625rem;
  font-weight: 700;
}

.p-contact__panel ul {
  margin: 0 0 1.65rem;
  padding-left: 1.2rem;
  color: var(--color-border);
  font-size: 1rem;
  line-height: 2;
}

.p-contact__panel li::marker {
  color: var(--color-border);
}

.p-contact__panel .c-btn {
  width: 100%;
  padding-inline: 1.25rem;
  font-size: 1rem;
}

.p-contact__panel-note {
  margin: 1rem 0 0;
  color: var(--color-border);
  font-size: .8125rem;
  line-height: 1.6;
}

.l-footer {
  padding: 3rem 0;
  background: var(--color-primary-dark);
  color: var(--color-white);
}

.l-footer__inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1.5rem;
}

.l-footer__brand {
  font-family: var(--font-jp);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .04em;
}

.l-footer p {
  margin: .8rem 0 0;
  color: var(--color-border);
  font-size: .875rem;
  line-height: 1.7;
}

.l-footer__links {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  font-size: .875rem;
}

.l-footer__links a:hover {
  text-decoration: underline;
}

.l-footer small {
  grid-column: 1/-1;
  padding-top: 1rem;
  border-top: 1px solid var(--color-secondary);
  color: var(--color-border);
  font-family: var(--font-en);
  font-size: .75rem;
  letter-spacing: .08em;
}

.p-case {
  background: var(--color-bg);
}

.p-case__heading {
  display: grid;
  grid-template-columns: 1fr .74fr;
  gap: 4rem;
  align-items: end;
  margin-bottom: 3rem;
}

.p-case__heading > p {
  margin-bottom: .25rem;
  color: var(--color-text-sub);
  font-size: 1rem;
  line-height: 1.9;
}

.p-case__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
}

.p-case__figure {
  margin: 0;
}

.p-case__figure img {
  width: 100%;
  height: auto;
}

.p-case__figure figcaption {
  margin-top: .7rem;
  color: var(--color-text-light);
  font-size: .8125rem;
}

.p-case__facts {
  margin: 0 0 2rem;
  border-top: 1px solid var(--color-border);
}

.p-case__fact {
  display: grid;
  grid-template-columns: 6.5rem 1fr;
  gap: 1rem;
  padding: .95rem 0;
  border-bottom: 1px solid var(--color-border);
}

.p-case__fact dt {
  color: var(--color-secondary);
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .12em;
}

.p-case__fact dd {
  margin: 0;
  color: var(--color-text);
  font-size: .92rem;
  font-weight: 500;
}

.p-case__fact--role dd {
  color: var(--color-primary);
  font-weight: 700;
}

.p-case__subhead {
  margin-bottom: .9rem;
  color: var(--color-primary);
  font-family: var(--font-jp-heading);
  font-size: 1.25rem;
  font-weight: 600;
}

.p-case__tasks {
  margin: 0 0 1.8rem;
  padding: 0;
  list-style: none;
}

.p-case__tasks li {
  display: grid;
  grid-template-columns: 1.4rem 1fr;
  gap: .6rem;
  align-items: start;
  padding: .45rem 0;
  color: var(--color-text-sub);
  font-size: 1rem;
  line-height: 1.8;
}

.p-case__check {
  margin-top: .3rem;
  color: var(--color-accent);
}

.p-case__note {
  margin: 1.8rem 0 0;
  color: var(--color-text-light);
  font-size: .8125rem;
}

.p-price {
  background: var(--color-bg);
}

.p-price__heading {
  display: grid;
  grid-template-columns: 1fr .74fr;
  gap: 4rem;
  align-items: end;
  margin-bottom: 3rem;
}

.p-price__heading > p {
  margin-bottom: .25rem;
  color: var(--color-text-sub);
  font-size: 1rem;
  line-height: 1.9;
}

.p-price__plans {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) auto minmax(0, .88fr);
  align-items: stretch;
}

.p-price__plan {
  position: relative;
  padding: 2.2rem 2.4rem 2.4rem;
}

.p-price__illust {
  position: absolute;
  top: 1.6rem;
  right: 1.8rem;
  width: 8.5rem;
  height: auto;
}

.p-price__plan--initial {
  background: var(--color-primary);
  color: var(--color-white);
}

.p-price__plan--monthly {
  border: 1px solid var(--color-border);
  background: var(--color-bg);
}

.p-price__step {
  margin-bottom: 1.2rem;
  font-family: var(--font-jp);
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .08em;
}

.p-price__plan--monthly .p-price__step {
  color: var(--color-secondary);
}

.p-price__plan-title {
  margin-bottom: .4rem;
  font-family: var(--font-jp-heading);
  font-size: 1.4rem;
  font-weight: 600;
}

.p-price__plan--monthly .p-price__plan-title {
  color: var(--color-primary);
}

.p-price__amount {
  display: flex;
  align-items: baseline;
  gap: .4rem;
  margin: 0 0 1.5rem;
  padding-bottom: 1.4rem;
  border-bottom: 1px solid var(--color-secondary);
  line-height: 1.2;
}

.p-price__plan--monthly .p-price__amount {
  border-bottom-color: var(--color-border);
  color: var(--color-primary);
}

.p-price__amount strong {
  font-family: var(--font-en);
  font-size: 4rem;
  font-weight: 700;
  letter-spacing: -.03em;
}

.p-price__amount span {
  font-size: 1.2rem;
  font-weight: 700;
}

.p-price__amount small {
  margin-left: .3rem;
  font-size: .85rem;
  font-weight: 500;
}

.p-price__items {
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-price__items li {
  padding: .7rem 0;
  border-top: 1px solid var(--color-secondary);
  font-size: .92rem;
  font-weight: 500;
}

.p-price__items li:first-child {
  border-top: 0;
  padding-top: 0;
}

.p-price__plan--monthly .p-price__items li {
  border-top-color: var(--color-border);
  color: var(--color-text);
}

.p-price__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-inline: 1.1rem;
  color: var(--color-secondary);
}

.p-price__note {
  margin: 1rem 0 1.6rem;
  color: var(--color-text-light);
  font-size: .8125rem;
}

@media (max-width: 1050px) {
  .l-header__nav {
    display: none;
  }

  .l-header__cta {
    margin-left: auto;
  }

  .l-header__inner {
    min-height: 5.5rem;
  }

  .p-fv__grid {
    gap: 2rem;
  }

  .p-fv__title {
    font-size: clamp(3rem, 5.4vw, 4.5rem);
  }

  .p-scope__feature {
    grid-template-columns: 9rem 1fr;
  }

  .p-scope__feature-illust {
    grid-column: 2;
    max-width: 18rem;
  }
}

@media (max-width: 767px) {
  :root {
    --container-px: var(--container-px-sp);
  }

  .l-section {
    padding-block: var(--section-py-sp);
  }

  .l-header__inner {
    min-height: 4.8rem;
    gap: 1rem;
  }

  .l-header__brand img {
    width: 126px;
  }

  .l-header__descriptor {
    display: none;
  }

  .l-header__cta {
    display: none;
  }

  .p-fv__grid {
    grid-template-columns: 1fr;
    gap: 2.8rem;
    padding-block: 3.35rem 2.4rem;
  }

  .p-fv__title {
    margin: 1.45rem 0 1rem;
    font-size: clamp(2rem, calc(84 * 100vw / 750), 4rem);
    line-height: 1.36;
  }

  .p-fv__lead {
    font-size: 1.125rem;
  }

  .p-fv__actions .c-btn {
    width: 100%;
    font-size: .9375rem;
    min-height: 3.65rem;
    padding: .8rem 1rem;
  }

  .p-fv__visual img {
    max-width: 22rem;
  }

  .p-fv__stage-links {
    grid-template-columns: 1fr;
    gap: 0;
    margin-top: 1.6rem;
  }

  .p-fv__bottom {
    flex-direction: column;
    gap: .2rem;
    padding-block: .95rem;
  }

  .c-section-head__index {
    margin-bottom: 1.25rem;
  }

  .c-section-head__title {
    font-size: clamp(1.8rem, calc(54 * 100vw / 750), 2.5rem);
  }

  .p-stage .c-section-head {
    margin-bottom: 2.1rem;
  }

  .p-stage__lanes {
    grid-template-columns: 1fr;
  }

  .p-stage__lane {
    min-height: 0;
  }

  .p-stage__lane-main {
    padding: 1.5rem;
  }

  .p-stage__lane h3 {
    font-size: 1.35rem;
  }

  .p-stage__lane-foot {
    display: block;
  }

  .p-stage__lane-foot span {
    display: block;
    margin-top: .2rem;
  }

  .p-stage__illust {
    width: 9.5rem;
    margin-bottom: 1rem;
  }

  .p-reason__heading {
    grid-template-columns: 1fr;
    gap: 1.2rem;
    margin-bottom: 2rem;
  }

  .p-reason__heading > p {
    font-size: 1rem;
  }

  .p-reason__item,
  .p-reason__item:nth-child(even) {
    grid-template-columns: 1fr;
    gap: 1.4rem;
    padding-block: 2rem;
  }

  .p-reason__item:nth-child(even) .p-reason__figure {
    order: 0;
  }

  .p-reason__figure {
    max-width: 20rem;
  }

  .p-reason__title {
    font-size: 1.3rem;
  }

  .p-reason__case {
    padding: 1.3rem 1.2rem;
  }

  .p-approach__illust {
    max-width: 18rem;
    margin-bottom: 1.2rem;
  }

  .p-faq__illust {
    max-width: 11rem;
  }

  .p-contact__illust {
    max-width: 14rem;
  }

  .p-price__illust {
    top: 1.2rem;
    right: 1.2rem;
    width: 6.5rem;
  }

  .p-approach__grid,
  .p-scope__heading,
  .p-measure__grid,
  .p-process__grid,
  .p-faq__grid,
  .p-contact__grid {
    grid-template-columns: 1fr;
    gap: 2.3rem;
  }

  .p-approach__intro > p:not(.c-section-head__index) {
    margin: 1.4rem 0;
  }

  .p-approach__step {
    grid-template-columns: 2.8rem 1fr;
    gap: .7rem;
    padding: 1.3rem 0;
  }

  .p-approach__step h3 {
    font-size: 1rem;
  }

  .p-scope__heading {
    margin-bottom: 2rem;
  }

  .p-scope__feature {
    grid-template-columns: 1fr;
    gap: 1rem;
    padding: 1.6rem;
  }

  .p-scope__feature h3 {
    font-size: 1.3rem;
  }

  .p-scope__feature-illust {
    grid-column: auto;
    max-width: 16rem;
  }

  .p-scope__subhead {
    margin-top: 2.5rem;
    font-size: 1.3rem;
  }

  .p-scope__areas {
    grid-template-columns: 1fr;
  }

  .p-scope__area,
  .p-scope__area + .p-scope__area {
    padding: 1.35rem 0;
    border-left: 0;
  }

  .p-scope__area + .p-scope__area {
    border-top: 1px solid var(--color-border);
  }

  .p-scope__area span {
    margin-bottom: .55rem;
  }

  .p-measure__intro {
    margin-top: 1.3rem;
  }

  .p-measure__ledger-row {
    grid-template-columns: 1.8rem 1fr;
    gap: .5rem;
  }

  .p-measure__ledger-row small {
    grid-column: 2;
  }

  .p-process__detail {
    padding: 1.5rem;
  }

  .p-faq__item {
    padding: 1.3rem 0;
  }

  .p-contact__title {
    font-size: clamp(1.9rem, calc(58 * 100vw / 750), 2.6rem);
  }

  .p-contact__panel {
    padding: 1.4rem;
  }

  .p-contact__panel .c-btn {
    gap: .6rem;
    letter-spacing: .02em;
    font-size: .875rem;
    min-height: 3.6rem;
    padding: .8rem .5rem;
  }

  .l-footer__inner {
    grid-template-columns: 1fr;
  }

  .l-footer__links {
    justify-content: space-between;
  }

  .l-footer small {
    grid-column: 1;
  }

  .p-case__heading,
  .p-price__heading {
    grid-template-columns: 1fr;
    gap: 1.4rem;
    margin-bottom: 2rem;
  }

  .p-case__body {
    grid-template-columns: 1fr;
    gap: 1.8rem;
  }

  .p-case__fact {
    grid-template-columns: 5.2rem 1fr;
    gap: .6rem;
  }

  .p-price__plans {
    grid-template-columns: 1fr;
  }

  .p-price__plan {
    padding: 1.6rem 1.5rem 1.7rem;
  }

  .p-price__amount strong {
    font-size: 3.2rem;
  }

  .p-price__arrow {
    padding: .7rem 0;
  }

  .p-price__arrow svg {
    transform: rotate(90deg);
  }
}

@media (max-width: 380px) {
  .l-header__brand img {
    width: 112px;
  }

  .l-header__cta {
    font-size: .6rem !important;
  }

  .p-fv__actions .c-btn,
  .p-contact__panel .c-btn {
    font-size: .875rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .c-btn,
  .c-text-link,
  .l-header__nav a {
    transition: none;
  }
}
