/* 展示会商談化パック：公開版の表示を基準に整理（2026-09-11）
 * 同じ条件の重複指定と未使用ルールを除去。カスケードの適用順を維持。
 * 後半の共通見出し・配色・CTAは、セクション指定より優先されます。
 */


/* ===== 共通設定 ===== */
:root {
  --ink: #252525;
  --muted: #666;
  --line: #bcbcbc;
  --pale: #f3f3f1;
  --paper: #fff;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 90px;
}
@media (min-width: 851px) {
  html {
    /* ヘッダーは固定ではないため、セクション先頭に揃える。 */
    scroll-padding-top: 0;
  }
}
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: -apple-system,BlinkMacSystemFont,"Helvetica Neue","Noto Sans JP",sans-serif;
  line-height: 1.85;
}
a {
  color: inherit;
}
.wrap {
  width: min(1120px,calc(100% - 64px));
  margin: auto;
}
.section {
  padding: 80px 0;
  border-bottom: 1px solid var(--line);
}
h1 {
  font-size: clamp(29px,3.3vw,43px);
  line-height: 1.6;
  letter-spacing: .02em;
  margin: 18px 0 24px;
}
h2 {
  font-size: clamp(37.5px,3.75vw,51px);
  line-height: 1.6;
  margin: 0 0 22px;
  letter-spacing: .025em;
}
h3 {
  font-size: 20px;
  line-height: 1.65;
  margin: 0 0 14px;
}
p {
  margin: 0 0 18px;
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  background: var(--ink);
  color: #fff;
  border: 1px solid var(--ink);
  padding: 18px 25px;
  min-height: 62px;
  text-decoration: none;
  font-size: 15px;
  font-weight: 700;
  text-align: center;
  line-height: 1.6;
}
.button:after {
  content: '→';
  font-size: 20px;
  flex: none;
}
.button:hover {
  background: #494949;
}
.micro {
  font-size: 12px;
  color: var(--muted);
  margin: 9px 0 0;
}
a:focus-visible {
  outline: 3px solid #777;
  outline-offset: 5px;
}
summary:focus-visible {
  outline: 3px solid #777;
  outline-offset: 5px;
}
@media (max-width: 850px) {
  .wrap {
    width: calc(100% - 40px);
  }
}
@media (max-width: 600px) {
  .wrap {
    width: calc(100% - 36px);
  }
  .section {
    padding: 48px 0;
  }
  h1 {
    font-size: 30px;
    margin: 16px 0 20px;
  }
  h2 {
    font-size: 37.5px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
@media print {
  .section {
    padding: 30px 0;
  }
  body {
    font-size: 12px;
  }
  .button {
    background: #fff;
    color: #222;
  }
  .wrap {
    width: 100%;
  }
}
.section-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: #52755e;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  margin: 0 0 14px;
}
.section-label:before {
  content: '';
  width: 24px;
  height: 1px;
  background: #9ebaa5;
}
.section-label:after {
  content: '';
  width: 24px;
  height: 1px;
  background: #9ebaa5;
}
@media (max-width: 600px) {
  .section-label {
    font-size: 10px;
    margin-bottom: 12px;
  }
}

/* ===== ヘッダー ===== */
.header {
  background: #fff;
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.brand {
  font-size: 22px;
  font-weight: 800;
  text-decoration: none;
  line-height: 1.3;
}
.nav {
  display: flex;
  align-items: center;
  font-size: 13px;
}
.nav a {
  text-decoration: none;
}
.nav .button {
  min-height: 44px;
  font-size: 13px;
}
@media (max-width: 850px) {
  .nav>a:not(.button) {
    display: none;
  }
}
@media (max-width: 600px) {
  .header-inner {
    gap: 12px;
  }
  .brand {
    font-size: 18px;
  }
  .nav .button {
    min-height: 40px;
    gap: 10px;
  }
}
.header {
  border-bottom: 1px solid #e6ece7;
}
.header-inner {
  padding: 19px 0;
}
.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #253f35;
}
.brand img {
  object-fit: contain;
}
.nav {
  color: #405a4e;
  gap: 24px;
}
.nav .button {
  background: #197454;
  border: 0;
  border-radius: 7px;
  padding: 12px 20px;
  box-shadow: none;
}
.nav .button:hover {
  background: #115d42;
}
@media (min-width: 1400px) {
  .header .wrap {
    width: min(1200px,calc(100% - 96px));
  }
}
@media (max-width: 600px) {
  .header-inner {
    padding: 13px 0;
  }
  .brand {
    gap: 8px;
  }
  .nav .button {
    padding: 9px 12px;
    font-size: 10px;
  }
}
.brand img {
  width: 156px;
  height: auto;
  display: block;
}
@media (max-width: 600px) {
  .brand img {
    width: 132px;
    height: auto;
  }
}
.nav .button:after {
  content: none;
}

/* ===== 01 HERO ===== */
.hero-grid {
  display: grid;
}
.lead {
  font-size: 16px;
}
.service-name {
  font-size: 15px;
  font-weight: 700;
  border-bottom: 2px solid var(--ink);
  display: inline-block;
  margin: 0;
  padding-bottom: 3px;
}
.free {
  font-size: 14px;
  font-weight: 700;
  margin: 23px 0 10px;
}
@media (max-width: 600px) {
  .hero-art {
    max-width: 100%;
  }
}
.hero {
  position: relative;
  overflow: hidden;
  padding: 55px 0 0;
  border: 0;
  color: #273f34;
}
.hero:before {
  content: '';
  position: absolute;
  width: 620px;
  height: 620px;
  border-radius: 50%;
  right: -200px;
  top: -120px;
}
.hero .wrap {
  position: relative;
}
.hero-grid {
  grid-template-columns: 1.12fr 1fr;
  gap: 38px;
  align-items: center;
}
.hero .service-name {
  border: 0;
  color: #406b58;
  display: flex;
  align-items: center;
  gap: 10px;
}
.hero .service-name:before {
  content: '';
  width: 25px;
  height: 2px;
  background: #489374;
}
.hero h1 {
  font-size: clamp(33px,3.8vw,49px);
  line-height: 1.58;
  letter-spacing: .015em;
  margin: 19px 0 21px;
  font-weight: 800;
  color: #263f34;
}
.hero h1 .preline {
  font-size: .63em;
  letter-spacing: .035em;
  display: block;
  margin-bottom: 8px;
  color: #38644e;
}
.hero h1 mark {
  background: linear-gradient(transparent 69%,#f2e775 69%,#f2e775 94%,transparent 94%);
  color: inherit;
  padding: 0 2px;
}
.hero .lead {
  color: #53645c;
}
.hero .lead strong {
  color: #2d4d3d;
  display: block;
}
.hero .free {
  font-size: 14px;
  color: #315b45;
  margin: 24px 0 9px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.hero .free b {
  background: #f1e77b;
  border-radius: 4px;
  padding: 1px 8px;
  font-size: 14px;
}
.hero .button {
  background: #197454;
  border-bottom: 4px solid #11543d;
  gap: 30px;
  font-size: 14px;
}
.hero .button:hover {
  background: #115d42;
}
.hero-art {
  position: relative;
}
.booth-scene {
  position: relative;
  width: 100%;
  isolation: isolate;
}
.booth-scene img {
  position: absolute;
  display: block;
  max-width: none;
}
.hero-bottom {
  display: flex;
  gap: 0;
  background: #fff;
  border: 1px solid #dfe8dd;
  border-radius: 10px;
  margin: 36px 0 14px;
  padding: 19px 0;
  position: relative;
}
.hero-bottom>div {
  flex: 1;
  padding: 0 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  font-size: 13px;
  font-weight: 700;
  color: #365842;
}
.hero-bottom>div+div {
  border-left: 1px solid #dfe8dd;
}
.hero-bottom i {
  font-style: normal;
  border: 1px solid #bcd0bd;
  border-radius: 50%;
  height: 25px;
  width: 25px;
  text-align: center;
  line-height: 23px;
  color: #508361;
  font-size: 12px;
}
.hero .legal {
  font-size: 10px;
  color: #7a8279;
  margin: 0;
  padding: 0 0 23px;
}
@media (min-width: 1400px) {
  .hero .wrap {
    width: min(1200px,calc(100% - 96px));
  }
  .hero {
    padding-top: 65px;
  }
  .hero-grid {
    gap: 65px;
  }
}
@media (max-width: 850px) {
  .hero-grid {
    gap: 22px;
  }
  .hero h1 {
    font-size: 35px;
  }
  .hero .button {
    gap: 12px;
    font-size: 12px;
  }
  .hero-bottom>div {
    padding: 0 12px;
    font-size: 11px;
    gap: 8px;
  }
}
@media (max-width: 600px) {
  .hero {
    padding: 27px 0 0;
  }
  .hero-grid {
    display: flex;
    flex-direction: column;
    gap: 0;
    align-items: stretch;
  }
  .hero-copy {
    display: contents;
  }
  .hero .service-name {
    order: 0;
  }
  .hero h1 {
    order: 1;
    letter-spacing: 0;
  }
  .hero h1 .preline {
    letter-spacing: .015em;
  }
  .hero .lead {
    order: 2;
    margin: 0;
  }
  .hero-art {
    order: 3;
    margin: 23px auto 0;
  }
  .hero-action {
    order: 4;
  }
  .hero .free {
    margin: 20px 0 8px;
    justify-content: center;
    gap: 6px;
  }
  .hero .free b {
    font-size: 11px;
  }
  .hero-bottom {
    flex-direction: column;
    padding: 3px 16px;
    margin-bottom: 11px;
  }
  .hero-bottom>div {
    justify-content: flex-start;
    padding: 11px 0;
    font-size: 12px;
  }
  .hero-bottom>div+div {
    border-left: 0;
    border-top: 1px solid #e4ece2;
  }
  .hero-bottom i {
    width: 22px;
    height: 22px;
    line-height: 20px;
    font-size: 11px;
  }
  .hero .legal {
    padding-bottom: 18px;
  }
  .hero:before {
    right: -350px;
    top: 210px;
  }
  .hero .button:hover {
    transform: none;
  }
}
.hero-art {
  padding: 16px 0;
}
.art-panel {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  position: relative;
}
.art-panel:before {
  content: '';
  position: absolute;
}
@media (max-width: 600px) {
  .hero-art {
    padding: 0;
  }
  .art-panel {
    padding: 0;
  }
}
.booth-scene {
  aspect-ratio: auto;
  background: transparent;
  border-radius: 0;
  overflow: visible;
  filter: none;
}
.booth-scene .hero-illustration {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
}
.art-panel:before {
  inset: 5% -3% 2% 8%;
  border-radius: 48% 52% 39% 61% / 41% 45% 55% 59%;
  transform: rotate(-6deg);
}
@media (max-width: 600px) {
  .art-panel:before {
    inset: 4% -2% 1% 7%;
  }
}
.hero:before {
  background: #f1f6ed;
}
.art-panel:before {
  background: #dce9d3;
  border: 1px solid #d0dfc6;
}
@media (min-width: 851px) {
  .hero-grid {
    column-gap: 20px;
    grid-template-columns: 1.08fr 1fr;
  }
  .hero-art {
    transform: translateX(-18px);
  }
  .art-panel:before {
    inset: 4% -3% 1% 3%;
  }
}
@media (min-width: 1400px) {
  .hero-grid {
    column-gap: 30px;
  }
  .hero-art {
    transform: translateX(-22px);
  }
}
.hero .button {
  width: min(100%,480px);
  min-height: 66px;
  border: 1px solid #197454;
  border-radius: 6px;
  box-shadow: 0 5px 0 #e3ece3;
  justify-content: space-between;
  padding: 18px 24px;
}
.hero .button:after {
  border: 0;
  border-radius: 0;
  width: auto;
  height: auto;
  line-height: 1;
  font-size: 20px;
}
.hero .free b,
.hero-bottom i {
  flex: none;
}
.hero h1 .hero-word-small {
  font-size: .76em;
}
.hero-headline-first {
  white-space: nowrap;
}
.hero-headline-second {
  display: inline-block;
  font-size: 1.12em;
  white-space: nowrap;
}
.hero .lead {
  font-size: 16px;
  line-height: 1.95;
  max-width: 520px;
}
.hero .lead strong {
  font-size: 18px;
  line-height: 1.8;
  margin-bottom: 9px;
}
@media (min-width: 851px) {
  .hero h1 {
    font-size: clamp(49px,5.2vw,66px);
    line-height: 1.5;
    margin-bottom: 24px;
  }
  .hero h1 .preline {
    font-size: .5em;
  }
  .hero .lead {
    margin-bottom: 0;
    font-size: clamp(14px, 1.55vw, 16px);
  }
  .hero .lead strong {
    font-size: clamp(16px, 1.85vw, 22px);
  }
  .hero .free {
    margin-top: 25px;
  }
}
@media (min-width: 601px) and (max-width: 850px) {
  .hero .lead {
    font-size: 14px;
  }
  .hero .lead strong {
    font-size: 16px;
  }
}
@media (max-width: 600px) {
  .hero h1 {
    font-size: clamp(33px,10vw,40px);
    line-height: 1.5;
    margin: 13px 0 18px;
  }
  .hero h1 .preline {
    font-size: clamp(17px,5.1vw,20px);
    margin-bottom: 10px;
  }
  .hero-headline-second {
    font-size: 1.08em;
  }
  .hero .lead {
    font-size: 15px;
    line-height: 1.9;
  }
  .hero .lead strong {
    font-size: 16px;
    line-height: 1.8;
    margin-bottom: 9px;
  }
  .hero-art {
    width: min(82%,270px);
    margin-top: 20px;
    margin-bottom: 0;
  }
  .hero .free {
    margin-top: 18px;
    align-items: baseline;
    font-size: 11px;
    line-height: 1.8;
  }
  .hero .button {
    width: 100%;
    min-height: 60px;
    padding: 16px 15px;
    font-size: 12px;
    gap: 10px;
  }
  .hero-bottom {
    margin-top: 22px;
  }
  .hero .legal {
    font-size: 10px;
    line-height: 1.8;
  }
}

/* ===== 02 YOUR CHALLENGES ===== */
.challenges {
  border-bottom: 0;
  padding: 82px 0 65px;
  color: #293e33;
}
.challenges-heading {
  text-align: center;
  margin: 0 0 38px;
}
.challenges h2 {
  line-height: 1.7;
  letter-spacing: .035em;
  margin: 0;
}
.challenges-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 20px;
  max-width: 1030px;
  margin: auto;
}
.challenge-card {
  display: grid;
  border: 1px solid #dce7de;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 3px 10px #24432b03;
}
.challenge-icon {
  color: #547961;
  display: grid;
  place-items: center;
  background: #f2f6ef;
  border-radius: 50%;
}
.challenge-icon svg {
  display: block;
}
.challenge-card h3 {
  font-size: 19px;
  line-height: 1.65;
  margin: 0 0 9px;
  font-weight: 700;
}
.challenge-card p {
  color: #647168;
  margin: 0;
}
.challenges-bridge {
  text-align: center;
  margin: 32px 0 0;
}
.challenges-bridge strong {
  display: inline-block;
}
@media (max-width: 850px) {
  .challenge-card h3 {
    font-size: 17px;
  }
  .pc-break {
    display: none;
  }
}
@media (max-width: 600px) {
  .challenges {
    padding: 48px 0 39px;
  }
  .challenges-heading {
    margin-bottom: 25px;
  }
  .challenges h2 {
    font-size: 33px;
    line-height: 1.75;
    letter-spacing: 0;
  }
  .challenges-grid {
    grid-template-columns: 1fr;
    gap: 13px;
  }
  .challenge-card {
    border-radius: 10px;
  }
}
.challenge-card {
  grid-template-columns: 58px minmax(0,1fr);
  align-items: start;
  gap: 20px;
  padding: 28px;
}
.challenge-icon {
  width: 58px;
  height: 58px;
  margin-top: 2px;
}
.challenge-icon svg {
  width: 40px;
  height: 40px;
}
.challenge-card p {
  font-size: 14px;
  line-height: 1.9;
}
.challenge-card h3 {
  letter-spacing: 0;
}
.challenges-bridge {
  margin-top: 42px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.9;
  color: #496151;
}
.challenges-bridge strong {
  font-size: 24px;
  line-height: 1.7;
  color: #197454;
  margin-top: 12px;
}
.challenges-bridge-mark {
  background: linear-gradient(transparent 68%,#f0e6a6 68%,#f0e6a6 94%,transparent 94%);
  padding: 0 2px;
}
@media (min-width: 601px) and (max-width: 850px) {
  .challenge-card {
    grid-template-columns: 44px minmax(0,1fr);
    gap: 14px;
    padding: 23px 20px;
  }
  .challenge-icon {
    width: 44px;
    height: 44px;
  }
  .challenge-icon svg {
    width: 32px;
    height: 32px;
  }
  .challenge-card h3 {
    font-size: 17px;
  }
  .challenge-card p {
    font-size: 13px;
  }
}
@media (max-width: 760px) {
  .challenges-grid {
    grid-template-columns: 1fr;
  }
  .challenge-card h3 .pc-break {
    display: initial;
  }
}
@media (max-width: 600px) {
  .challenge-card {
    grid-template-columns: 44px minmax(0,1fr);
    gap: 14px;
    padding: 22px 18px;
  }
  .challenge-icon {
    width: 44px;
    height: 44px;
    margin-top: 2px;
  }
  .challenge-icon svg {
    width: 32px;
    height: 32px;
  }
  .challenge-card h3 {
    font-size: 16px;
    line-height: 1.7;
    margin-bottom: 9px;
  }
  .challenge-card p {
    font-size: 13px;
    line-height: 1.9;
  }
  .challenges-bridge {
    margin-top: 34px;
    font-size: 14px;
    line-height: 1.9;
    text-wrap: balance;
  }
  .challenges-bridge strong {
    font-size: 21px;
    line-height: 1.75;
    margin-top: 12px;
  }
}

/* ===== 03 ABOUT ===== */
.about-section {
  background: var(--about-background);
  color: #293e33;
  border: 0;
  padding: 80px 0 66px;
}
.about-layout {
  display: grid;
  grid-template-columns: 1fr 1.12fr;
  gap: 48px;
  align-items: center;
}
.about-copy .section-label {
  justify-content: flex-start;
  margin-bottom: 20px;
}
.about-copy .section-label:after {
  content: none;
}
.about-copy h2 {
  line-height: 1.65;
  letter-spacing: .025em;
  margin: 0 0 25px;
}
.about-copy>p:not(.section-label) {
  font-size: 14px;
  line-height: 2;
  color: #637164;
  margin: 0 0 18px;
}
.about-copy>p.about-lead {
  font-size: 16px;
  font-weight: 700;
  color: #395541;
  line-height: 1.95;
}
.about-mobile-break {
  display: none;
}
.about-visual {
  background: var(--about-background);
  isolation: isolate;
  position: relative;
  padding: 24px 0;
}
.about-visual:before {
  content: '';
  position: absolute;
  inset: -5% 3% -4% 0;
  border-radius: 48% 52% 61% 39% / 55% 43% 57% 45%;
  transform: rotate(-7deg);
}
.about-visual img {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
  mix-blend-mode: multiply;
}
@media (max-width: 850px) {
  .about-layout {
    gap: 27px;
  }
  .about-copy>p.about-lead {
    font-size: 14px;
  }
  .about-copy>p:not(.section-label) {
    font-size: 13px;
  }
}
@media (max-width: 600px) {
  .about-section {
    padding: 48px 0 39px;
  }
  .about-layout {
    grid-template-columns: 1fr;
  }
  .about-copy .section-label {
    justify-content: center;
    margin-bottom: 16px;
  }
  .about-copy .section-label:after {
    content: '';
  }
  .about-copy h2 {
    line-height: 1.65;
    text-align: center;
    letter-spacing: 0;
    margin-bottom: 22px;
  }
  .about-copy h2>br:nth-of-type(1) {
    display: initial;
  }
  .about-copy>p:not(.section-label) {
    font-size: 13px;
    margin-bottom: 14px;
  }
  .about-visual:before {
    inset: 0 2% 0 0;
  }
}
.about-copy>p:last-child {
  margin-bottom: 0;
}
.about-visual {
  max-width: 530px;
  width: 100%;
  justify-self: center;
}
.about-visual:before {
  background: #fff;
}
.about-unified-note {
  max-width: 1030px;
  margin: 38px auto 0;
  padding: 12px 28px 0;
  background: transparent;
  border: 0;
  text-align: center;
}
.about-unified-kicker {
  font-size: 16px;
  font-weight: 700;
  color: #496151;
  margin: 0 0 7px;
  line-height: 1.8;
}
.about-unified-message {
  margin: 0;
}
.about-unified-message strong {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 7px;
  font-size: 27px;
  line-height: 1.8;
  color: #197454;
  margin: 0;
}
.about-message-words>span {
  display: inline-block;
  background: linear-gradient(transparent 70%,#f0e6a6 70%,#f0e6a6 94%,transparent 94%);
}
.about-quote {
  color: #89a28e;
  font-family: Georgia,serif;
  font-size: 1.25em;
  line-height: 1;
  flex: none;
}
.about-unified-support {
  font-size: 13px;
  line-height: 1.95;
  color: #617164;
  margin: 23px auto 0;
  max-width: 660px;
}
.about-note-break {
  display: none;
}
@media (max-width: 600px) {
  .about-layout {
    gap: 24px;
  }
  .about-visual {
    width: 90%;
    margin: 0 auto;
    padding: 16px 0;
  }
  .about-copy>p.about-lead {
    font-size: 15px;
    line-height: 1.9;
  }
  .about-unified-note {
    padding: 8px 12px 0;
    margin-top: 28px;
  }
  .about-unified-kicker {
    font-size: 14px;
    margin-bottom: 9px;
  }
  .about-unified-message strong {
    font-size: 23px;
    line-height: 1.8;
    gap: 4px;
  }
  .about-message-words>span {
    display: block;
    width: fit-content;
    margin: auto;
  }
  .about-quote:last-child {
    align-self: flex-end;
    margin-bottom: .25em;
  }
  .about-unified-support {
    font-size: 12px;
    margin-top: 21px;
  }
  .about-note-break {
    display: block;
  }
}

/* ===== 04 SERVICE DETAILS ===== */
.service-section {
  border: 0;
  padding: 82px 0 65px;
  color: #293e33;
}
.service-heading {
  text-align: center;
  margin-bottom: 40px;
}
.service-heading h2 {
  line-height: 1.75;
  letter-spacing: .025em;
  margin: 0 0 20px;
}
.service-heading>p:last-child {
  font-size: 14px;
  line-height: 2;
  color: #647168;
  margin: 0;
}
.service-rows {
  border-top: 1px solid #dce6d9;
}
.service-row {
  display: grid;
  align-items: center;
  border-bottom: 1px solid #dce6d9;
}
.service-index {
  align-self: start;
  padding-top: 8px;
}
.service-index>span {
  display: block;
  font-family: Arial,sans-serif;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .025em;
}
.service-index p {
  font-size: 13px;
  color: #497354;
  font-weight: 700;
  margin: 0;
}
.service-body h3 {
  font-size: 23px;
  line-height: 1.65;
  margin: 0 0 20px;
  letter-spacing: .02em;
}
.service-body ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.service-body li {
  position: relative;
  padding-left: 21px;
  color: #627166;
}
.service-body li:before {
  content: '✓';
  position: absolute;
  left: 0;
  color: #74977e;
  font-size: 12px;
}
.service-visual {
  margin: 0;
  color: #68866b;
}
.service-visual svg {
  display: block;
  width: 100%;
  height: auto;
}
.service-visual figcaption {
  text-align: center;
  color: #718171;
  margin-top: 6px;
}
.service-note {
  font-size: 11px;
  line-height: 1.85;
  color: #758073;
  margin: 18px 0 0;
}
.service-cta {
  text-align: center;
  margin-top: 34px;
}
.service-cta>p {
  font-size: 14px;
  font-weight: 700;
  color: #45684e;
  margin: 0 0 13px;
}
.service-cta .button {
  background: #197454;
  border-bottom: 4px solid #11543d;
  font-size: 14px;
  gap: 28px;
}
.service-cta .button:hover {
  background: #115d42;
}
@media (max-width: 850px) {
  .service-body h3 {
    font-size: 20px;
  }
  .service-index p {
    font-size: 12px;
  }
}
@media (max-width: 600px) {
  .service-section {
    padding: 48px 0 39px;
  }
  .service-heading {
    margin-bottom: 27px;
  }
  .service-heading h2 {
    line-height: 1.75;
    letter-spacing: 0;
    margin-bottom: 17px;
  }
  .service-heading>p:last-child {
    font-size: 13px;
    line-height: 1.9;
    text-align: left;
  }
  .service-desktop-br {
    display: none;
  }
  .service-index {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 0;
  }
  .service-body h3 {
    letter-spacing: 0;
  }
  .service-visual figcaption {
    margin-top: 0;
  }
  .service-note {
    font-size: 11px;
    margin-top: 16px;
  }
}
.service-row {
  grid-template-columns: 120px minmax(0,1fr) 240px;
  gap: 32px;
  padding: 38px 0;
}
.service-index>span {
  font-size: 36px;
  color: #91a898;
  margin-bottom: 12px;
}
.service-body li {
  font-size: 14px;
  line-height: 1.9;
  margin: 8px 0;
}
.service-visual figcaption {
  font-size: 11px;
  line-height: 1.8;
}
.service-icon-art {
  position: relative;
  isolation: isolate;
}
.service-icon-art:before {
  content: '';
  position: absolute;
  z-index: -1;
  left: 3.2%;
  right: 3.2%;
  top: 6.67%;
  bottom: 5.56%;
  border-radius: 50%;
  background: #f0f5eb;
  border: 1px solid #dce7d5;
  pointer-events: none;
}
.service-icon-art svg {
  position: relative;
}
.service-cta .button {
  width: min(100%,480px);
  border: 1px solid #197454;
  border-radius: 6px;
  box-shadow: 0 5px 0 #e3ece3;
  min-height: 66px;
  padding: 18px 24px;
}
@media (min-width: 851px) {
  .service-rows {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
  }
  .service-row {
    grid-template-columns: 110px minmax(0,1fr) 190px;
    gap: 20px;
  }
  .service-note {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
  }
}
@media (min-width: 601px) and (max-width: 850px) {
  .service-row {
    grid-template-columns: 90px minmax(0,1fr) 170px;
    gap: 18px;
  }
  .service-body li {
    font-size: 13px;
  }
  .service-body h3 br {
    display: none;
  }
}
@media (max-width: 600px) {
  .service-row {
    grid-template-columns: 1fr;
    gap: 17px;
    padding: 28px 0;
  }
  .service-index>span {
    font-size: 28px;
    margin: 0;
  }
  .service-index p {
    font-size: 13px;
  }
  .service-body h3 {
    font-size: 20px;
    line-height: 1.7;
    margin-bottom: 15px;
  }
  .service-body li {
    font-size: 13px;
    margin: 8px 0;
  }
  .service-visual {
    width: min(58%,185px);
    margin: 0 auto;
  }
  .service-visual figcaption {
    font-size: 10px;
    line-height: 1.8;
  }
  .service-cta {
    margin-top: 30px;
  }
  .service-cta>p {
    font-size: 13px;
    margin-bottom: 15px;
  }
  .service-cta .button {
    font-size: 12px;
    min-height: 60px;
    padding: 16px 15px;
    gap: 10px;
  }
}

/* ===== 05 SCHEDULE ===== */
.schedule-section {
  padding: 80px 0 65px;
  border: 0;
  color: #293e33;
}
.schedule-heading {
  text-align: center;
  margin-bottom: 32px;
}
.schedule-heading h2 {
  line-height: 1.75;
  letter-spacing: .025em;
  margin: 0;
}
.schedule-guide {
  display: grid;
  grid-template-columns: 320px 1fr;
  align-items: center;
  gap: 32px;
  max-width: 1030px;
  margin: auto;
  padding: 25px 30px;
  background: #fff;
  border: 1px solid #dfe8db;
  border-radius: 10px;
}
.schedule-leadtime {
  border-right: 1px solid #e1e9dd;
  padding-right: 25px;
}
.schedule-leadtime>span {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
}
.schedule-leadtime p {
  font-size: 13px;
  margin: 6px 0 0;
  white-space: nowrap;
}
.schedule-leadtime strong {
  font-size: 35px;
  line-height: 1.5;
  margin: 0 7px;
  font-weight: 700;
}
.schedule-leadtime strong span {
  font-size: 17px;
  margin-left: 5px;
}
.schedule-guide-copy {
  color: #647168;
  margin: 0;
}
.schedule-flow {
  display: grid;
  grid-template-columns: repeat(6,minmax(0,1fr));
  gap: 0;
  margin: 43px 0 38px;
  padding: 0;
  list-style: none;
}
.schedule-step {
  position: relative;
  text-align: center;
  padding: 0 9px;
}
.schedule-step:not(:last-child):before {
  content: '';
  position: absolute;
  left: 50%;
  width: 100%;
  top: 23px;
  height: 1px;
}
.schedule-dot {
  position: relative;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  background: #fff;
  border: 1px solid #b7cdb7;
  border-radius: 50%;
  font-size: 13px;
  font-weight: 700;
  margin: 0 auto 19px;
  z-index: 1;
}
.schedule-step h3 {
  font-size: 15px;
  line-height: 1.75;
  margin: 0 0 9px;
}
.schedule-step-copy p {
  margin: 0;
  line-height: 1.8;
}
.schedule-subsidy {
  max-width: 1030px;
  margin: auto;
  display: flex;
  align-items: center;
  gap: 19px;
  padding: 22px 26px;
  border-top: 1px solid #d0dfcb;
  border-bottom: 1px solid #d0dfcb;
}
.schedule-subsidy svg {
  width: 42px;
  height: 42px;
  flex: none;
}
.schedule-subsidy h3 {
  font-size: 15px;
  margin: 0 0 5px;
  line-height: 1.8;
}
.schedule-subsidy p {
  color: #69796a;
  margin: 0;
}
@media (max-width: 850px) {
  .schedule-guide {
    grid-template-columns: 270px 1fr;
    gap: 22px;
    padding: 23px;
  }
  .schedule-leadtime {
    padding-right: 18px;
  }
  .schedule-leadtime strong {
    font-size: 30px;
  }
  .schedule-step {
    padding: 0 6px;
  }
  .schedule-step h3 {
    font-size: 13px;
  }
}
@media (max-width: 600px) {
  .schedule-section {
    padding: 48px 0 39px;
  }
  .schedule-heading {
    margin-bottom: 25px;
  }
  .schedule-heading h2 {
    line-height: 1.75;
    letter-spacing: 0;
  }
  .schedule-guide {
    grid-template-columns: 1fr;
    border-radius: 10px;
  }
  .schedule-leadtime {
    border-right: 0;
    border-bottom: 1px solid #e1e9dd;
    padding: 0 0 16px;
    text-align: center;
  }
  .schedule-leadtime p {
    font-size: 12px;
  }
  .schedule-guide-copy br {
    display: none;
  }
  .schedule-flow {
    display: block;
    padding: 0;
  }
  .schedule-step {
    display: flex;
    align-items: flex-start;
    text-align: left;
    padding: 0 0 24px;
  }
  .schedule-dot {
    width: 38px;
    height: 38px;
    flex: none;
    margin: 0;
    font-size: 12px;
  }
  .schedule-step:not(:last-child):before {
    left: 18px;
    top: 38px;
    width: 1px;
    height: calc(100% - 38px);
  }
  .schedule-step-copy {
    padding-top: 3px;
  }
  .schedule-step h3 {
    font-size: 16px;
    margin: 0 0 4px;
    line-height: 1.7;
  }
  .schedule-step h3 br {
    display: none;
  }
  .schedule-step-copy p {
    line-height: 1.8;
  }
  .schedule-subsidy {
    padding: 20px 0;
    gap: 13px;
    align-items: flex-start;
  }
  .schedule-subsidy svg {
    width: 31px;
    height: 31px;
    margin-top: 4px;
  }
  .schedule-subsidy h3 {
    font-size: 14px;
    line-height: 1.8;
    margin-bottom: 8px;
  }
}
.schedule-section .section-label,
.schedule-leadtime>span {
  color: #567581;
}
.schedule-section .section-label:before,
.schedule-section .section-label:after {
  background: #afc4cc;
}
.schedule-heading h2 span,
.schedule-leadtime strong {
  color: #355d6b;
}
.schedule-guide {
  border-color: #d8e4e9;
}
.schedule-leadtime {
  border-color: #dce6eb;
}
.schedule-leadtime p {
  color: #506b76;
}
.schedule-step:not(:last-child):before {
  background: #bacfd8;
}
.schedule-dot {
  border-color: #bacfd8;
  color: #52717e;
}
.schedule-event .schedule-dot {
  background: #355d6b;
  border-color: #355d6b;
  color: #fff;
  box-shadow: 0 0 0 5px #dfeaf0;
}
.schedule-event h3 {
  color: #355d6b;
}
.schedule-subsidy {
  border-color: #cfdfe5;
}
.schedule-subsidy svg {
  color: #688591;
}
.schedule-subsidy h3 {
  color: #466b79;
}
.schedule-guide-copy {
  font-size: 14px;
  line-height: 1.95;
}
.schedule-step-copy p {
  font-size: 12px;
  color: #62747a;
}
.schedule-subsidy p {
  font-size: 13px;
  line-height: 1.95;
}
@media (min-width: 601px) {
  .schedule-step h3 {
    min-height: 3.5em;
  }
}
@media (min-width: 601px) and (max-width: 850px) {
  .schedule-guide-copy {
    font-size: 13px;
  }
  .schedule-step-copy p {
    font-size: 11px;
  }
}
@media (max-width: 600px) {
  .schedule-guide {
    padding: 23px 20px;
    gap: 19px;
  }
  .schedule-leadtime strong {
    font-size: 36px;
    display: inline-block;
    white-space: nowrap;
  }
  .schedule-leadtime p {
    white-space: normal;
  }
  .schedule-guide-copy {
    font-size: 13px;
    line-height: 1.95;
  }
  .schedule-flow {
    margin: 32px 4px;
  }
  .schedule-step {
    gap: 18px;
    padding-bottom: 27px;
  }
  .schedule-step:last-child {
    padding-bottom: 0;
  }
  .schedule-subsidy p {
    font-size: 13px;
  }
}

/* ===== 06 SUBSIDY SUPPORT ===== */
.subsidy-section {
  border: 0;
  padding: 82px 0 65px;
  color: #293e33;
}
.subsidy-heading {
  text-align: center;
}
.subsidy-heading h2 {
  line-height: 1.75;
  letter-spacing: .02em;
  margin: 0 0 23px;
}
.subsidy-heading h2 span {
  color: #197454;
}
.subsidy-intro {
  font-size: 14px;
  line-height: 2;
  color: #647168;
  margin: 0 auto;
  max-width: 820px;
}
.subsidy-steps {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 40px;
  list-style: none;
  padding: 0;
  margin: 48px auto 38px;
  max-width: 1030px;
}
.subsidy-step {
  position: relative;
  min-width: 0;
}
.subsidy-marker {
  display: flex;
  align-items: center;
  gap: 12px;
  position: relative;
  min-height: 44px;
}
.subsidy-step:not(:last-child) .subsidy-marker:after {
  content: '';
  position: absolute;
  left: 154px;
  right: -26px;
  top: 22px;
  height: 1px;
  background: #becfbe;
}
.subsidy-step:not(:last-child) .subsidy-marker:before {
  content: '';
  position: absolute;
  right: -26px;
  top: 19px;
  width: 6px;
  height: 6px;
  border-top: 1px solid #9eb79f;
  border-right: 1px solid #9eb79f;
  transform: rotate(45deg);
}
.subsidy-number {
  display: grid;
  place-items: center;
  background: #eaf3e8;
  color: #2c7151;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .04em;
  flex: none;
}
.subsidy-stage {
  font-size: 13px;
  font-weight: 700;
  color: #52755e;
  letter-spacing: .04em;
}
.subsidy-content {
  padding: 24px 0 0;
}
.subsidy-icon {
  width: 53px;
  height: 53px;
  display: block;
  color: #547961;
  margin: 0 0 18px;
}
.subsidy-content h3 {
  font-size: 21px;
  line-height: 1.65;
  margin: 0 0 19px;
  letter-spacing: .015em;
}
.subsidy-content ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.subsidy-content li {
  position: relative;
  padding-left: 15px;
  color: #647168;
}
.subsidy-content li:before {
  content: '';
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #83a78a;
  left: 0;
  top: 11px;
}
.subsidy-summary {
  text-align: center;
  border-radius: 8px;
  margin: 0 auto 20px;
  max-width: 1030px;
}
.subsidy-summary strong {
  font-weight: 700;
}
.subsidy-notes {
  max-width: 1030px;
  margin: auto;
  font-size: 11px;
}
.subsidy-mobile-break {
  display: none;
}
@media (max-width: 850px) {
  .subsidy-steps {
    gap: 25px;
  }
  .subsidy-content h3 {
    font-size: 18px;
  }
  .subsidy-step:not(:last-child) .subsidy-marker:after {
    left: 130px;
    right: -14px;
  }
  .subsidy-step:not(:last-child) .subsidy-marker:before {
    right: -14px;
  }
}
@media (max-width: 600px) {
  .subsidy-section {
    padding: 48px 0 38px;
  }
  .subsidy-heading h2 {
    letter-spacing: 0;
  }
  .subsidy-heading h2 span {
    display: block;
  }
  .subsidy-intro {
    font-size: 13px;
    text-align: left;
  }
  .subsidy-desktop-break {
    display: none;
  }
  .subsidy-steps {
    display: block;
    max-width: 480px;
    margin: 30px auto 27px;
    padding: 0;
  }
  .subsidy-step {
    padding: 0 0 30px 54px;
  }
  .subsidy-step:last-child {
    padding-bottom: 0;
  }
  .subsidy-step:not(:last-child):after {
    content: '';
    position: absolute;
    left: 18px;
    top: 41px;
    bottom: 5px;
    width: 1px;
    background: #c9d9c9;
  }
  .subsidy-marker {
    position: static;
    min-height: 38px;
    gap: 0;
  }
  .subsidy-number {
    position: absolute;
    top: 0;
    left: 0;
    width: 37px;
    height: 37px;
    font-size: 13px;
  }
  .subsidy-stage {
    font-size: 12px;
  }
  .subsidy-step:not(:last-child) .subsidy-marker:before {
    content: none;
  }
  .subsidy-step:not(:last-child) .subsidy-marker:after {
    content: none;
  }
  .subsidy-content {
    padding-top: 8px;
    position: relative;
  }
  .subsidy-icon {
    position: absolute;
    right: 0;
    margin: 0;
  }
  .subsidy-content h3 {
    line-height: 1.65;
    padding-right: 5px;
  }
  .subsidy-summary {
    border-radius: 7px;
    margin-bottom: 16px;
  }
  .subsidy-mobile-break {
    display: block;
  }
  .subsidy-notes {
    font-size: 11px;
  }
}
.subsidy-heading h2 .subsidy-title-intro {
  display: block;
  font-weight: 700;
  color: #3e5146;
}
.subsidy-heading h2 .subsidy-title-main {
  display: block;
}
.subsidy-content li {
  font-size: 14px;
  line-height: 1.9;
  margin: 7px 0;
}
.subsidy-summary {
  background: #f7f0d5;
  color: #665b36;
  padding: 25px 22px;
  font-size: 13px;
  line-height: 1.9;
}
.subsidy-summary strong {
  display: block;
  font-size: 18px;
  line-height: 1.8;
  margin-top: 4px;
}
.subsidy-summary .subsidy-mobile-break {
  display: none;
}
.subsidy-notes {
  color: #69736b;
  line-height: 1.9;
}
.subsidy-notes p {
  margin: 8px 0;
}
@media (min-width: 851px) {
  .subsidy-steps {
    max-width: 900px;
    gap: 30px;
  }
  .subsidy-step {
    text-align: center;
  }
  .subsidy-marker {
    justify-content: center;
  }
  .subsidy-step:not(:last-child) .subsidy-marker:after {
    /* ラベルの文字数に依存せず、列間の30pxの余白内に矢印を収める。 */
    left: calc(100% + 4px);
    right: -26px;
  }
  .subsidy-step:not(:last-child) .subsidy-marker:before {
    right: -26px;
  }
  .subsidy-icon {
    margin: 0 auto 18px;
  }
  .subsidy-content ul {
    display: inline-block;
    text-align: left;
    max-width: 100%;
    vertical-align: top;
  }
}
@media (max-width: 850px) {
  .subsidy-content li {
    font-size: 13px;
  }
}
@media (max-width: 600px) {
  .subsidy-heading h2 {
    line-height: 1.65;
    margin-bottom: 22px;
  }
  .subsidy-heading h2 .subsidy-title-intro {
    letter-spacing: 0;
  }
  .subsidy-intro {
    line-height: 1.95;
  }
  .subsidy-steps {
    margin-top: 32px;
  }
  .subsidy-step {
    padding-bottom: 34px;
  }
  .subsidy-content h3 {
    font-size: 20px;
    margin-bottom: 13px;
  }
  .subsidy-content li {
    font-size: 13px;
    margin: 6px 0;
  }
  .subsidy-icon {
    width: 64px;
    height: 64px;
    top: -32px;
    color: #789080;
  }
  .subsidy-summary {
    padding: 21px 14px;
    font-size: 12px;
  }
  .subsidy-summary strong {
    font-size: 16px;
    margin-top: 6px;
  }
  .subsidy-notes p {
    margin: 10px 0;
  }
}
@media (max-width: 360px) {
  .subsidy-summary strong {
    font-size: 14px;
  }
}

/* ===== 07 FREE INITIAL DIAGNOSIS ===== */
.diagnosis-section {
  padding: 80px 0 65px;
  border: 0;
  color: #293e33;
}
.diagnosis-heading {
  text-align: center;
  margin-bottom: 38px;
}
.diagnosis-heading h2 {
  line-height: 1.75;
  letter-spacing: .02em;
  margin: 0;
}
.diagnosis-heading h2 span {
  display: inline-block;
}
.diagnosis-panel {
  display: grid;
  align-items: center;
  max-width: 1030px;
  margin: auto;
  border-radius: 14px;
}
.diagnosis-picture {
  position: relative;
  margin: auto;
  width: 100%;
}
.diagnosis-picture:before {
  content: '';
  position: absolute;
  inset: 8% 0 3%;
  border-radius: 50%;
}
.diagnosis-picture img {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
  mix-blend-mode: multiply;
}
.diagnosis-free {
  display: inline-block;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 700;
}
.diagnosis-copy h3 {
  font-size: 25px;
  line-height: 1.7;
  margin: 0 0 17px;
  letter-spacing: .02em;
}
.diagnosis-copy>p {
  color: #647168;
  margin: 0 0 22px;
}
.diagnosis-process {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid #dce5d6;
}
.diagnosis-process li {
  display: flex;
  align-items: baseline;
  gap: 13px;
  border-bottom: 1px solid #dce5d6;
  line-height: 1.85;
}
.diagnosis-process li span {
  font-size: 12px;
  font-weight: 700;
  flex: none;
}
.diagnosis-estimate {
  display: grid;
  grid-template-columns: 145px 1fr;
  gap: 27px;
  max-width: 1030px;
  margin: 26px auto 0;
  padding: 25px 4px 0;
  align-items: start;
}
.diagnosis-estimate-label {
  font-size: 12px;
  letter-spacing: .04em;
  color: #5d7a60;
  border-left: 3px solid #a7c1a0;
  padding-left: 14px;
  font-weight: 700;
  margin-top: 3px;
}
.diagnosis-estimate h3 {
  font-size: 17px;
  line-height: 1.8;
  margin: 0 0 9px;
}
.diagnosis-estimate p {
  font-size: 13px;
  line-height: 1.95;
  color: #647168;
  margin: 0;
}
@media (max-width: 850px) {
  .diagnosis-copy h3 {
    font-size: 22px;
  }
  .diagnosis-estimate {
    grid-template-columns: 120px 1fr;
    gap: 20px;
  }
}
@media (max-width: 600px) {
  .diagnosis-section {
    padding: 48px 0 39px;
  }
  .diagnosis-heading {
    margin-bottom: 25px;
  }
  .diagnosis-heading h2 {
    line-height: 1.7;
    letter-spacing: 0;
  }
  .diagnosis-panel {
    display: flex;
    flex-direction: column;
    border-radius: 10px;
  }
  .diagnosis-picture {
    order: 1;
  }
  .diagnosis-copy {
    order: 0;
  }
  .diagnosis-copy h3 {
    line-height: 1.7;
  }
  .diagnosis-process li span {
    font-size: 11px;
  }
  .diagnosis-estimate {
    grid-template-columns: 1fr;
  }
  .diagnosis-estimate-label {
    font-size: 11px;
  }
  .diagnosis-estimate h3 {
    font-size: 16px;
    line-height: 1.85;
    margin-bottom: 9px;
  }
  .diagnosis-estimate p {
    line-height: 1.95;
  }
  .diagnosis-estimate p br {
    display: none;
  }
}
.diagnosis-heading-break {
  display: none;
}
@media (max-width: 600px) {
  .diagnosis-heading-break {
    display: initial;
  }
}
.diagnosis-panel {
  grid-template-columns: .7fr 1.3fr;
  gap: 42px;
  padding: 36px 42px;
}
.diagnosis-picture {
  max-width: 265px;
}
.diagnosis-picture:before {
  background: #fff;
}
.diagnosis-copy>p {
  font-size: 14px;
  line-height: 1.95;
}
.diagnosis-free {
  background: #f0df8e;
  color: #62562d;
  padding: 5px 13px;
  margin-bottom: 19px;
}
.diagnosis-process,
.diagnosis-process li {
  border-color: #e5ddc5;
}
.diagnosis-process li {
  font-size: 14px;
  padding: 12px 0;
  color: #46574a;
}
.diagnosis-process li span {
  color: #8b7b49;
}
.diagnosis-estimate {
  margin-top: 28px;
  padding-top: 25px;
  border-top: 1px solid #e5e8e1;
}
.diagnosis-estimate h3 {
  color: #44534a;
}
@media (min-width: 601px) and (max-width: 850px) {
  .diagnosis-panel {
    gap: 25px;
    padding: 28px;
  }
  .diagnosis-process li {
    font-size: 13px;
  }
}
@media (max-width: 600px) {
  .diagnosis-panel {
    gap: 20px;
    padding: 25px 20px;
  }
  .diagnosis-picture {
    max-width: 155px;
  }
  .diagnosis-copy>p {
    font-size: 13px;
    line-height: 1.95;
    margin-bottom: 20px;
  }
  .diagnosis-free {
    font-size: 11px;
    padding: 5px 10px;
    margin-bottom: 17px;
  }
  .diagnosis-copy h3 {
    font-size: 22px;
    margin-bottom: 17px;
  }
  .diagnosis-process li {
    font-size: 13px;
    padding: 11px 0;
    gap: 10px;
  }
  .diagnosis-estimate {
    margin-top: 25px;
    padding-top: 23px;
    gap: 13px;
  }
  .diagnosis-estimate p {
    font-size: 13px;
  }
}

/* ===== 08 FAQ ===== */
.faq {
  border-top: 1px solid #aaa;
}
.faq details {
  border-bottom: 1px solid #aaa;
  background: white;
}
.faq summary {
  cursor: pointer;
  font-size: 16px;
  font-weight: 700;
  padding: 23px 44px 23px 37px;
  position: relative;
  list-style: none;
}
.faq summary::-webkit-details-marker {
  display: none;
}
.faq summary:before {
  content: 'Q';
  position: absolute;
  left: 4px;
  color: #777;
}
.faq summary:after {
  content: '＋';
  position: absolute;
  right: 7px;
  font-size: 20px;
  top: 20px;
}
.faq details[open] summary:after {
  content: '−';
}
.faq details p {
  padding: 0 37px 22px;
  font-size: 14px;
  margin: 0;
  color: #555;
}
@media (max-width: 600px) {
  .faq summary {
    font-size: 14px;
    padding-top: 20px;
    padding-bottom: 20px;
  }
  .faq details p {
    padding-left: 16px;
    padding-right: 16px;
  }
}
@media print {
  .faq details p {
    display: block;
  }
}
.faq-section {
  padding: 80px 0 65px;
  border: 0;
  color: #293e33;
}
.faq-heading {
  text-align: center;
  margin-bottom: 34px;
}
.faq-heading h2 {
  line-height: 1.75;
  letter-spacing: .025em;
  margin: 0;
}
.faq-section .faq {
  max-width: 1030px;
  margin: auto;
  border: 0;
  display: grid;
  gap: 12px;
}
.faq-section .faq details {
  border: 1px solid #dce6d8;
  border-radius: 9px;
  overflow: hidden;
  background: #fff;
}
.faq-section .faq summary {
  font-size: 15px;
  line-height: 1.85;
  padding: 23px 67px 23px 74px;
  font-weight: 700;
  min-height: 74px;
}
.faq-section .faq summary:before {
  left: 24px;
  top: 23px;
  width: 27px;
  height: 27px;
  line-height: 27px;
  text-align: center;
  border-radius: 50%;
  font-size: 13px;
  font-family: Arial,sans-serif;
}
.faq-section .faq summary:after {
  font-size: 19px;
  line-height: 25px;
  color: #648a6b;
}
.faq-section .faq summary:focus-visible {
  outline: 2px solid #197454;
  outline-offset: -4px;
  border-radius: 8px;
}
.faq-section .faq details p {
  position: relative;
  color: #637267;
  margin: 0 24px 0 74px;
  padding: 17px 21px 23px 0;
  border-top: 1px solid #e5ece1;
}
.faq-section .faq details p:before {
  content: 'A';
  position: absolute;
  left: -44px;
  top: 20px;
  font-family: Arial,sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: #8da388;
}
@media (max-width: 600px) {
  .faq-section {
    padding: 48px 0 39px;
  }
  .faq-heading {
    margin-bottom: 25px;
  }
  .faq-heading h2 {
    letter-spacing: 0;
  }
  .faq-section .faq {
    gap: 10px;
  }
  .faq-section .faq summary {
    font-size: 13px;
    padding: 20px 40px 20px 49px;
    min-height: 68px;
  }
  .faq-section .faq summary:before {
    left: 14px;
    top: 21px;
    width: 23px;
    height: 23px;
    line-height: 23px;
    font-size: 12px;
  }
  .faq-section .faq summary:after {
    font-size: 17px;
  }
  .faq-section .faq details p {
    margin: 0 16px 0 49px;
    padding: 15px 0 20px;
  }
  .faq-section .faq details p:before {
    left: -28px;
    top: 17px;
    font-size: 12px;
  }
}
.faq-heading h2 {
  color: #3b4847;
}
.faq-section .section-label {
  color: #6b7772;
}
.faq-section .section-label:before,
.faq-section .section-label:after {
  background: #c2cbc6;
}
.faq-section .faq details {
  border-color: #e0e4df;
}
.faq-section .faq summary {
  color: #424f48;
}
.faq-section .faq summary:before {
  background: #eef1ec;
  color: #647b69;
}
.faq-section .faq summary:hover {
  background: #fafbf9;
}
.faq-section .faq details p {
  border-color: #e5e8e3;
  font-size: 14px;
  line-height: 1.95;
  padding-bottom: 25px;
}
.faq-section .faq summary:after {
  content: '';
  position: absolute;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  background: linear-gradient(#648a6b,#648a6b) center / 14px 2px no-repeat,linear-gradient(#648a6b,#648a6b) center / 2px 14px no-repeat;
}
.faq-section .faq details[open] summary:after {
  content: '';
  background: linear-gradient(#648a6b,#648a6b) center / 14px 2px no-repeat;
}
@media (max-width: 600px) {
  .faq-section .faq summary {
    line-height: 1.9;
  }
  .faq-section .faq summary:after {
    right: 13px;
  }
  .faq-section .faq details p {
    font-size: 13px;
    line-height: 1.95;
    padding-top: 17px;
    padding-bottom: 22px;
  }
}

/* ===== 09 CONTACT ===== */
.contact {
  text-align: center;
  background: #e9e9e6;
}
.contact h2 {
  font-size: clamp(37.5px,4.2vw,54px);
}
.contact .button:disabled {
  opacity: 1;
  cursor: not-allowed;
}
@media (max-width: 600px) {
  .contact .button {
    width: 100%;
    font-size: 14px;
    padding: 17px 16px;
    gap: 15px;
  }
  .contact {
    scroll-margin-top: 15px;
  }
}
.contact-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 84px 0 64px;
  border: 0;
  color: #293e33;
}
.contact-section:before {
  content: '';
  position: absolute;
  z-index: -1;
  border-radius: 50%;
  pointer-events: none;
}
.contact-section:after {
  content: '';
  position: absolute;
  z-index: -1;
  border-radius: 50%;
  pointer-events: none;
}
.contact-section:before {
  width: 480px;
  height: 480px;
  left: -310px;
  top: 40px;
  border: 1px solid #dce7d3;
}
.contact-section:after {
  width: 350px;
  height: 350px;
  right: -230px;
  bottom: 20px;
  border: 1px solid #e5e8cf;
}
.contact-content {
  position: relative;
  max-width: 880px;
  margin: auto;
}
.contact-free {
  display: inline-block;
  background: #f4eaa6;
  border-radius: 4px;
  color: #526043;
  font-size: 13px;
  font-weight: 700;
  padding: 5px 17px;
  margin: 13px 0 21px;
}
.contact-section h2 {
  line-height: 1.8;
  color: #197454;
  letter-spacing: .025em;
  margin: 0 0 21px;
}
.contact-lead {
  line-height: 2;
  color: #637267;
  margin: 0 0 24px;
}
.contact-topics {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px 22px;
  list-style: none;
  padding: 0;
  margin: 0 0 30px;
  font-size: 12px;
  color: #58745c;
}
.contact-topics li:before {
  content: '✓';
  margin-right: 7px;
  color: #197454;
  font-weight: 700;
}
.contact-section .button {
  width: min(100%,540px);
  min-height: 76px;
  padding: 20px 25px;
  background: #197454;
  border: 1px solid #197454;
  border-radius: 6px;
  color: #fff;
  gap: 28px;
  font-size: 16px;
  box-shadow: 0 5px 0 #e3ece3;
}
.contact-section .micro {
  color: #738071;
  font-size: 11px;
  margin-top: 13px;
}
.contact-cost {
  font-size: 12px;
  color: #738071;
  margin: 23px 0 0;
  line-height: 1.9;
}
.contact-mobile-break {
  display: none;
}
@media (max-width: 600px) {
  .contact-section {
    padding: 48px 0 39px;
  }
  .contact-section h2 {
    line-height: 1.85;
    letter-spacing: 0;
  }
  .contact-mobile-break {
    display: block;
  }
  .contact-free {
    font-size: 11px;
    padding: 5px 10px;
    margin: 10px 0 20px;
  }
  .contact-topics {
    font-size: 11px;
    margin-bottom: 25px;
  }
  .contact-section .button {
    font-size: 13px;
    gap: 12px;
    min-height: 72px;
    padding: 17px 12px;
  }
  .contact-cost {
    font-size: 11px;
  }
  .contact-section:before {
    width: 260px;
    height: 260px;
    left: -220px;
    top: 90px;
  }
  .contact-section:after {
    width: 240px;
    height: 240px;
    right: -210px;
    bottom: 80px;
  }
}
.contact-section .button:hover {
  background: #125d42;
  border-color: #125d42;
}
.contact-lead {
  font-size: 15px;
}
.contact-topics li {
  white-space: nowrap;
}
@media (max-width: 600px) {
  .contact-lead {
    font-size: 13px;
  }
  .contact-section h2 {
    margin-bottom: 24px;
  }
  .contact-topics {
    display: grid;
    grid-template-columns: 1fr;
    width: fit-content;
    margin: 0 auto 27px;
    text-align: left;
    gap: 7px;
  }
  .contact-cost {
    margin-top: 25px;
  }
}

/* ===== フッター ===== */
.footer {
  font-size: 12px;
}
.footer-inner {
  display: flex;
  justify-content: space-between;
}
.footer p {
  margin: 8px 0;
}
.footer-links {
  display: flex;
  align-items: flex-start;
}
.copyright {
  font-size: 10px;
  letter-spacing: .08em;
  margin-top: 25px!important;
}
@media (max-width: 600px) {
  .footer-inner {
    display: block;
  }
}
@media print {
  .footer {
    padding-bottom: 0;
  }
}
.footer {
  background: #3b4847;
  color: #e2e7e5;
  padding: 48px 0 27px;
}
.footer-inner {
  align-items: flex-start;
  gap: 36px;
}
.footer-logo {
  display: inline-block;
  line-height: 0;
}
.footer-logo img {
  display: block;
  width: 200px;
  height: auto;
}
.footer-links {
  gap: 28px;
  font-size: 12px;
  flex-wrap: wrap;
}
.footer-links a {
  text-decoration: none;
  text-underline-offset: 5px;
}
.footer-links a:hover {
  text-decoration: underline;
  color: #fff;
}
.footer a:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 6px;
}
.footer .copyright {
  border-top: 1px solid #60706b;
  padding-top: 20px;
  margin-top: 30px!important;
  color: #b9c5bf;
  font-size: 10px;
}
@media (max-width: 600px) {
  .footer {
    padding: 35px 0 104px;
  }
  .footer-logo img {
    width: 180px;
  }
  .footer-links {
    padding: 0;
    font-size: 11px;
  }
  .footer .copyright {
    padding-top: 18px;
  }
}
.footer-links a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 8px 0;
}
.footer-links {
  padding-top: 4px;
}
@media (max-width: 600px) {
  .footer {
    padding-bottom: max(28px,env(safe-area-inset-bottom));
  }
  .footer-links {
    padding-top: 0;
    gap: 0 24px;
    margin-top: 19px;
  }
  .footer .copyright {
    margin-top: 19px!important;
  }
}

/* ===== 固定CTA ===== */
@media (max-width: 600px) {
  .mobile-cta {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: #fff;
    padding: 10px 18px max(10px,env(safe-area-inset-bottom));
    border-top: 1px solid #aaa;
    z-index: 5;
  }
  .mobile-cta .button {
    width: 100%;
    min-height: 45px;
    padding: 11px;
    font-size: 13px;
  }
}
.mobile-cta .button {
  background: #197454;
  border-color: #197454;
  border-radius: 7px;
}
.mobile-cta {
  display: none;
}
@media (max-width: 600px) {
  .mobile-cta.is-visible {
    display: block;
  }
}

/* ===== CTA共通の配置 ===== */
a.button {
  position: relative;
  justify-content: center!important;
  text-align: center;
}
.hero .button,
.service-cta .button,
.contact-section .button,
.mobile-cta .button {
  padding-left: 46px;
  padding-right: 46px;
}
.hero .button:after,
.service-cta .button:after,
.contact-section .button:after,
.mobile-cta .button:after {
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  margin: 0;
}
@media (max-width: 600px) {
  .hero .button,
  .service-cta .button,
  .contact-section .button,
  .mobile-cta .button {
    padding-left: 32px;
    padding-right: 32px;
  }
  .hero .button:after,
  .service-cta .button:after,
  .contact-section .button:after,
  .mobile-cta .button:after {
    right: 11px;
  }
}

/* ===== スクロール表示（初回のみ・控えめな移動） ===== */
.scroll-reveal {
  transition: opacity 600ms ease, translate 600ms cubic-bezier(.2,.65,.3,1);
}
.scroll-reveal.is-pending {
  opacity: 0;
  translate: 0 14px;
}
@media (prefers-reduced-motion: reduce) {
  .scroll-reveal,
   .scroll-reveal.is-pending {
    opacity: 1;
    translate: none;
    transition: none;
  }
}
@media print {
  .scroll-reveal,
   .scroll-reveal.is-pending {
    opacity: 1;
    translate: none;
    transition: none;
  }
}

/* ===== CTAホバーの色変化 ===== */
a.button {
  transition: background-color 220ms ease, border-color 220ms ease;
}
@media (prefers-reduced-motion: reduce) {
  a.button {
    transition: none;
  }
}

/* ===== 診断後の相談導線：スマートフォンでは固定CTAを使用 ===== */
.diagnosis-copy .diagnosis-cta {
  width: 100%;
  max-width: 420px;
  min-height: 60px;
  margin-top: 24px;
  padding: 16px 40px;
  border-color: #197454;
  border-radius: 7px;
  background: #197454;
  color: #fff;
  font-size: 15px;
  line-height: 1.6;
}
.diagnosis-copy .diagnosis-cta:after {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  margin: 0;
}
.diagnosis-copy .diagnosis-cta:hover {
  background: #125c42;
  border-color: #125c42;
}
a.button:focus-visible {
  outline: 3px solid #355d6b;
  outline-offset: 4px;
}
@media (max-width: 600px) {
  .diagnosis-copy .diagnosis-cta {
    display: none;
  }
}

/* ===== セクション大見出し：配置先の幅に合わせ、指定した改行を維持 ===== */
.challenges-heading,
 .about-copy,
 .service-heading,
 .schedule-heading,
 .subsidy-heading,
 .diagnosis-heading,
 .faq-heading,
 .contact-content {
  container-type: inline-size;
  min-width: 0;
}
.section h2 {
  font-size: min(51px, 6.4cqi);
  line-height: 1.45;
  overflow-wrap: normal;
  line-break: strict;
}
.about-copy h2 {
  font-size: min(44px, 8.5cqi);
}
.subsidy-heading h2 {
  font-size: min(51px, 5.6cqi);
}
.contact-section h2 {
  font-size: min(54px, 5.3cqi);
}
@media (min-width: 601px) {
  .hero-copy {
    container-type: inline-size;
    min-width: 0;
  }
  .hero h1 {
    font-size: min(66px, 10.6cqi);
  }
}
.challenges h2 span,
 .about-copy h2 span,
 .service-heading h2 span,
 .diagnosis-heading h2 span {
  color: #126747;
  background: linear-gradient(transparent 83%, #f2e29d 83%, #f2e29d 96%, transparent 96%);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.subsidy-heading h2 .subsidy-title-main {
  color: #126747;
}
.schedule-heading h2 span {
  color: #285e77;
}
@media (max-width: 600px) {
  .section h2 {
    font-size: min(30px, 6.4cqi);
    line-height: 1.5;
  }
  .about-copy h2,
   .diagnosis-heading h2,
   .faq-heading h2,
   .contact-section h2 {
    font-size: min(32px, 8.5cqi);
  }
  .service-heading h2 {
    font-size: min(30px, 7.3cqi);
  }
  .schedule-heading h2 {
    font-size: min(30px, 7.7cqi);
  }
  .subsidy-heading h2 {
    font-size: min(32px, 7.7cqi);
  }
  .diagnosis-heading h2 span {
    display: inline;
  }
}

/* ===== 見出し上のラベル：本文より控えめに、章の入口として読みやすく ===== */
.section .section-label {
  font-size: 14px;
  line-height: 1.65;
  letter-spacing: .08em;
  gap: 14px;
  margin-bottom: 20px;
}
.section .section-label:before,
 .section .section-label:after {
  width: 28px;
  flex: 0 0 28px;
}
.hero .service-name {
  font-size: 14px;
  line-height: 1.65;
  letter-spacing: .08em;
}
.subsidy-heading h2 .subsidy-title-intro {
  font-size: min(27px, 4.8cqi);
  line-height: 1.65;
  margin-bottom: 14px;
}

/* ===== 課題 → 解決策 → 準備 → 相談の流れを背景色で区切る ===== */
.hero {
  background: #fcfdfa;
}
.challenges {
  background: #faf5e8;
}
.about-section {
  --about-background: #edf4ed;
}
.service-section {
  background: #fff;
}
.schedule-section {
  background: #edf3f6;
}
.subsidy-section {
  background: #fff;
}
.diagnosis-section {
  background: #faf5e8;
}
.diagnosis-panel {
  background: #fff;
  border: 1px solid #e9dfc6;
}
.faq-section {
  background: #f4f5f3;
}
.contact-section {
  background: #e8f2e9;
}
.contact-section:before {
  background: #dcebdc;
  border-color: #d2e3d2;
}
.contact-section:after {
  background: #f2f5e4;
  border-color: #e4eacf;
}
.diagnosis-section .section-label {
  color: #79683d;
}
.diagnosis-section .section-label:before,
 .diagnosis-section .section-label:after {
  background: #c7b88e;
}
@media (max-width: 600px) {
  .section .section-label {
    font-size: 12px;
    letter-spacing: .05em;
    line-height: 1.7;
    gap: 9px;
    margin-bottom: 16px;
  }
  .section .section-label:before,
   .section .section-label:after {
    width: 18px;
    flex-basis: 18px;
  }
  .hero .service-name {
    font-size: 12px;
  }
  .subsidy-heading h2 .subsidy-title-intro {
    font-size: min(22px, 5.7cqi);
    margin-bottom: 12px;
  }
}
