.pc-page a { color: inherit; text-decoration: none; }
.pc-page {
    --color-text: #333333;
    --color-orange: #DA5E27;
    --color-navy: #222843;
    --color-white: #FFFFFF;
    --font-heading: 'Zen Old Mincho', serif;
    --font-body: 'Noto Sans JP', sans-serif;
  
 width: 1440px; margin: 0 auto; 
}
.pc-page .scale-stage { width: 100%; overflow-x: hidden; }
.pc-page .tok-h2-46 { font-family: var(--font-heading); font-weight: 900; font-size: 46px; line-height: 1.25; letter-spacing: 0; }
.pc-page .tok-h3-32 { font-family: var(--font-heading); font-weight: 700; font-size: 32px; line-height: 1.3; letter-spacing: 0; }
.pc-page .tok-heading-sub-20 { font-family: var(--font-heading); font-weight: 900; font-size: 20px; line-height: 1.45; letter-spacing: 0; }
.pc-page .tok-worry-26 { font-family: var(--font-heading); font-weight: 900; font-size: 26px; line-height: 1.4; letter-spacing: -2px; }
.pc-page .tok-body-18 { font-family: var(--font-body); font-weight: 500; font-size: 18px; line-height: 1.65; letter-spacing: 0; }
.pc-page .tok-caption-bold-12 { font-family: var(--font-body); font-weight: 700; font-size: 12px; line-height: 1.8; letter-spacing: 0; }
.pc-page .sec-mv {position:relative;width:1440px;height:764px;margin:0 auto;background:#F2F0E8;overflow:hidden;font-family:var(--font-body);}
/* ヘッダーはスクロールに追従させる(固定表示)。
   .pc-page は1440px設計を zoom で縮小しているため、固定要素から見た
   ビューポート幅は常に1440pxとして扱われる。そのため left:50% / margin-left:-720px で
   1440px未満では画面幅いっぱい、1440px以上ではページと同じ中央寄せになる */
.pc-page .mv-header {position:fixed;left:50%;margin-left:-720px;top:0;width:1440px;height:124px;box-sizing:border-box;background:var(--color-white);display:flex;align-items:center;justify-content:space-between;padding:20px 50px;box-shadow:3px 3px 20px rgba(0,0,0,0.12);z-index:900;}
.pc-page .mv-logo {display:flex;flex-direction:column;color:#252c51;}
.pc-page .mv-logo-sub {margin:0;font-family:var(--font-body);font-weight:700;font-size:24px;line-height:1.2;white-space:nowrap;}
.pc-page .mv-logo-main {margin:0;font-family:var(--font-logo);font-weight:700;font-size:47px;line-height:1;letter-spacing:0.94px;white-space:nowrap;}
.pc-page .mv-logo-main span.mv-no {letter-spacing:2.82px;}
.pc-page .mv-header-actions {display:flex;align-items:center;gap:16px;}
.pc-page .mv-btn {display:flex;align-items:center;justify-content:center;gap:10px;height:66px;width:290px;border-radius:7.302px;box-shadow:3px 3px 6px rgba(0,0,0,0.08);box-sizing:border-box;padding:10px 40px;}
.pc-page .mv-btn-line {background:#99be49;}
.pc-page .mv-btn-phone {background:#f18a5c;}
.pc-page .mv-btn img {height:48px;width:51px;display:block;}
.pc-page .mv-btn span {font-family:var(--font-body);font-weight:700;font-size:23px;line-height:1.1;letter-spacing:0.46px;color:var(--color-white);white-space:nowrap;}
/* ハンバーガーメニューボタン(ドロワー本体は common.css) */
.pc-page .mv-menu-btn {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:66px;height:66px;flex:none;border:none;border-radius:7.302px;background:#252c50;box-shadow:3px 3px 6px rgba(0,0,0,0.08);cursor:pointer;padding:0;}
.pc-page .mv-menu-btn-bars {display:flex;flex-direction:column;gap:6px;width:30px;}
.pc-page .mv-menu-btn-bars i {display:block;width:100%;height:3px;border-radius:2px;background:var(--color-white);}
.pc-page .mv-menu-btn-label {font-family:var(--font-body);font-weight:700;font-size:11px;line-height:1;letter-spacing:0.5px;color:var(--color-white);}
.pc-page .mv-photo {position:absolute;left:509px;top:124px;width:931px;height:640px;overflow:hidden;}
.pc-page .mv-photo img {width:100%;height:100%;object-fit:cover;object-position:38% 30%;display:block;}
.pc-page .mv-photo-fade {position:absolute;inset:0;background:linear-gradient(100deg,#F2F0E8 0%,#F2F0E8 14%,rgba(242,240,232,0) 42%);pointer-events:none;}
.pc-page .mv-copy {position:absolute;left:76px;top:167px;width:900px;}
.pc-page .mv-copy-title {margin:0;font-family:var(--font-heading);font-weight:900;font-size:50px;line-height:1.18;letter-spacing:-2px;color:#252c51;white-space:nowrap;}
.pc-page .mv-badges {position:absolute;left:0;top:0;width:0;height:0;}
.pc-page .mv-badge {position:absolute;display:flex;align-items:center;justify-content:center;height:107px;padding:0 32px 5px;border-radius:0 32px 0 32px;background:#252c50;}
.pc-page .mv-badge-1 {left:20px;top:76px;}
.pc-page .mv-badge-2 {left:123px;top:196px;}
.pc-page .mv-badge span {font-family:var(--font-heading);font-weight:900;font-size:80px;line-height:1.45;letter-spacing:6.4px;color:var(--color-white);white-space:nowrap;}
.pc-page .mv-ni {position:absolute;left:535px;top:216px;margin:0;font-family:var(--font-heading);font-weight:900;font-size:70px;line-height:1.45;letter-spacing:-2.8px;color:#252c51;text-shadow:7.504px 7.504px 40.02px rgba(0,0,0,0.13);white-space:nowrap;}
.pc-page .mv-emphasis {position:absolute;left:19px;top:312px;}
.pc-page .mv-emphasis-hl {position:absolute;left:0;top:70px;width:654px;height:20px;background:#efdba9;z-index:1;}
.pc-page .mv-emphasis p {position:relative;z-index:2;margin:0;font-family:var(--font-heading);font-weight:900;font-size:60px;line-height:1.45;letter-spacing:-3.6px;color:#252c51;text-shadow:0 0 31.107px rgba(255,255,255,0.3);white-space:nowrap;}
.pc-page .mv-ribbon {position:absolute;left:95px;top:586px;width:654px;border:1.6px solid #252c51;border-radius:10px;background:var(--color-white);overflow:hidden;}
.pc-page .mv-ribbon-bar {position:relative;height:47px;width:654px;background:#777a8a url(../assets/01-mv-ribbon-texture.webp) center/cover;background-blend-mode:multiply;display:flex;align-items:center;justify-content:center;}
.pc-page .mv-ribbon-bar p {margin:0;font-family:var(--font-heading);font-weight:900;font-size:27px;line-height:1;letter-spacing:-1.08px;color:var(--color-white);text-align:center;}
.pc-page .mv-ribbon-body {padding:10px 0 14px;text-align:center;}
.pc-page .mv-ribbon-body p {margin:0;font-family:var(--font-heading);font-weight:900;font-size:28px;line-height:1.25;letter-spacing:0.56px;color:#252c51;}
.pc-page .mv-stats {position:absolute;left:770px;top:600px;display:flex;gap:10px;}
.pc-page .mv-stat {position:relative;width:200px;height:111px;background:#fff8ed;border-radius:10px;box-shadow:4.849px 4.849px 32.327px rgba(0,0,0,0.12);box-sizing:border-box;display:flex;align-items:center;gap:8px;padding:0 12px;}
.pc-page .mv-stat-icon {width:44px;height:44px;border-radius:21.82px;background:#3d4468;display:flex;align-items:center;justify-content:center;flex:none;}
.pc-page .mv-stat-icon img {width:26.16px;height:24.671px;display:block;}
.pc-page .mv-stat-icon.mv-stat-icon--plain {background:none;width:43.641px;height:43.641px;border-radius:0;}
.pc-page .mv-stat-icon.mv-stat-icon--plain img {width:43.641px;height:43.641px;}
.pc-page .mv-stat-icon.mv-stat-icon--plain2 {background:none;width:44px;height:44px;border-radius:0;}
.pc-page .mv-stat-icon.mv-stat-icon--plain2 img {width:44px;height:44px;}
.pc-page .mv-stat-text {font-family:var(--font-body);font-weight:700;color:var(--color-text);}
.pc-page .mv-stat-text .mv-num {display:flex;align-items:baseline;gap:3px;white-space:nowrap;}
.pc-page .mv-stat-text .mv-num b {font-family:var(--font-heading);font-weight:900;font-size:36px;color:#dc5f00;line-height:1;white-space:nowrap;}
.pc-page .mv-stat-text .mv-num span {font-size:20px;line-height:1.1;white-space:nowrap;}
.pc-page .mv-stat-text p {margin:0;font-size:20px;line-height:1.1;}
.pc-page .mv-stat-2 .mv-num b {font-size:29.094px;letter-spacing:-1.1638px;}
.pc-page .mv-stat-3 .mv-num b {font-size:29.094px;letter-spacing:-2.3275px;}
.pc-page .mv-stat-3 .mv-num span.mv-black {color:var(--color-text);}
.pc-page .sec-cta1 {position:relative;width:1440px;height:196px;margin:0 auto;box-sizing:border-box;background:#252c50;box-shadow:0 0 40px rgba(0,0,0,0.4);display:flex;flex-direction:column;align-items:center;padding-top:12px;}
.pc-page .cta1-title {margin:0;font-family:var(--font-heading);font-weight:900;font-size:40px;line-height:1.65;color:var(--color-white);text-align:center;text-shadow:3px 3px 20px rgba(0,0,0,0.3);white-space:nowrap;}
.pc-page .cta1-actions {margin-top:8px;display:flex;align-items:center;gap:22px;}
.pc-page .cta1-btn {display:flex;align-items:center;justify-content:center;gap:8px;height:80px;width:389px;border-radius:12px;box-sizing:border-box;box-shadow:3px 3px 10px rgba(0,0,0,0.3);}
.pc-page .cta1-btn-line {background:#99be49;padding:12px 56px;}
.pc-page .cta1-btn-phone {background:#f18a5c;padding:12px 56px 12px 46px;}
.pc-page .cta1-btn img {width:67.5px;height:63px;display:block;}
.pc-page .cta1-btn span {font-family:var(--font-body);font-weight:700;font-size:26px;line-height:1.1;letter-spacing:0.52px;color:var(--color-white);white-space:nowrap;}
.pc-page .sec-worry {position:relative;width:1440px;height:797px;margin:0 auto;background:#e9e6df url(../assets/03-worry-bg-texture.webp) center/cover;overflow:hidden;}
.pc-page .worry-h2 {position:absolute;left:0;top:64px;width:100%;margin:0;text-align:center;color:var(--color-text);}
.pc-page .worry-card {position:absolute;left:calc(50% + 7px);top:154px;transform:translateX(-50%);width:960px;height:430px;box-sizing:border-box;background:var(--color-white);border-radius:16px;padding:48px 52px;}
.pc-page .worry-list {display:flex;flex-direction:column;gap:20px;}
.pc-page .worry-item {display:flex;flex-direction:column;gap:4px;}
.pc-page .worry-item-row {display:flex;align-items:center;gap:7px;}
.pc-page .worry-item-row img {width:15.75px;height:14.538px;flex:none;}
.pc-page .worry-item-row p {margin:0;color:var(--color-text);}
.pc-page .worry-item-row p b, .pc-page .worry-item-row p em {font-style:normal;color:var(--color-orange);}
.pc-page .worry-divider {width:100%;height:0;border-top:1px dashed var(--color-text);align-self:flex-start;}
.pc-page .worry-bottom {position:absolute;left:0;top:629px;width:100%;text-align:center;}
.pc-page .worry-bottom p {margin:0;line-height:1.5;}
.pc-page .worry-bottom mark {background:#fff7de;color:var(--color-navy);font-family:var(--font-heading);font-weight:900;font-size:40px;padding:2px 6px;box-decoration-break:clone;-webkit-box-decoration-break:clone;}
.pc-page .worry-people {position:absolute;left:calc(50% - 2.5px);top:462px;transform:translateX(-50%);width:1055px;height:128px;}
.pc-page .worry-figure {position:absolute;top:0;width:87px;height:127.637px;}
.pc-page .worry-figure img {position:absolute;width:100%;height:100%;display:block;}
.pc-page .worry-figure-woman {left:0;}
.pc-page .worry-figure-man {left:968px;top:0.62px;height:127.021px;}
.pc-page .worry-arrow {position:absolute;left:497px;top:85.64px;width:61px;height:42px;}
.pc-page .worry-arrow img {position:relative;top:20px;width:100%;height:100%;display:block;}
.pc-page .sec-accompany {position:relative;width:1440px;min-height:750px;margin:0 auto;box-sizing:border-box;overflow:hidden;padding:56px 0 64px;display:flex;flex-direction:column;align-items:center;gap:10px;}
.pc-page .accompany-bg {position:absolute;inset:0;z-index:0;}
.pc-page .accompany-bg img {position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;}
.pc-page .accompany-bg-fade {position:absolute;left:0;top:0;width:100%;height:712px;background:linear-gradient(180deg,#F3F2EF 17.048%,rgba(255,255,255,0) 74.613%);}
.pc-page .accompany-content {position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:32px;}
.pc-page .accompany-heading {display:flex;flex-direction:column;align-items:center;gap:8px;}
.pc-page .accompany-heading > p.tok-h2-46 {margin:0;color:var(--color-text);text-align:center;white-space:nowrap;}
.pc-page .accompany-ribbons {display:flex;flex-direction:column;align-items:center;gap:8px;}
.pc-page .accompany-ribbon {background:#bc9471;border-radius:20px 0 20px 0;height:63px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:3px 16px 3px 24px;}
.pc-page .accompany-ribbon p {margin:0;font-family:var(--font-heading);font-weight:900;font-size:48px;line-height:1.45;color:var(--color-white);text-align:center;white-space:nowrap;}
.pc-page .accompany-sub {margin:0;font-family:var(--font-heading);font-weight:900;font-size:46px;line-height:1.25;color:var(--color-text);text-align:center;}
.pc-page .accompany-card {background:var(--color-white);width:405px;box-sizing:border-box;padding:24px 20px 16px;display:flex;flex-direction:column;align-items:center;gap:30px;}
.pc-page .accompany-list {display:flex;flex-direction:column;gap:16.531px;width:318.214px;}
.pc-page .accompany-item {display:flex;flex-direction:column;width:100%;}
.pc-page .accompany-item-row {display:flex;align-items:center;gap:11.02px;width:100%;}
.pc-page .accompany-item-row img {width:9.643px;height:9.643px;flex:none;}
.pc-page .accompany-item-row p {margin:0;font-family:var(--font-heading);font-weight:900;font-size:24px;line-height:1.6;color:var(--color-text);white-space:nowrap;}
.pc-page .accompany-item-line {width:100%;height:0;border-top:1px dashed var(--color-text);margin-top:2px;}
.pc-page .accompany-note {margin:0;width:362.296px;font-family:var(--font-body);font-weight:400;font-size:18px;line-height:1.5;color:var(--color-text);}
.pc-page .sec-cta2 {
  width: 1440px;
  margin: 0 auto;
  background: #252c51;
  box-shadow: 0px 0px 40px 0px rgba(0, 0, 0, 0.4);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 12px 0 30px;
  box-sizing: border-box;
}
.pc-page .sec-cta2 .cta2-heading {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 40px;
  line-height: 1.65;
  color: var(--color-white);
  text-align: center;
  text-shadow: 3px 3px 20px rgba(0, 0, 0, 0.3);
  margin: 0 0 8px;
  width: 959px;
}
.pc-page .sec-cta2 .cta2-buttons {
  display: flex;
  align-items: center;
  gap: 22px;
}
.pc-page .sec-cta2 .cta2-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 389px;
  height: 80px;
  border-radius: 12px;
  box-sizing: border-box;
  box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.3);
  text-decoration: none;
}
.pc-page .sec-cta2 .cta2-btn--line { background: #99be49; }
.pc-page .sec-cta2 .cta2-btn--phone { background: #f18a5c; }
.pc-page .sec-cta2 .cta2-btn img { display: block; }
.pc-page .sec-cta2 .cta2-btn--line img { width: 67.5px; height: 63px; }
.pc-page .sec-cta2 .cta2-btn--phone img { width: 67.5px; height: 63px; }
.pc-page .sec-cta2 .cta2-btn span {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 26px;
  line-height: 1.1;
  letter-spacing: 0.52px;
  color: var(--color-white);
  white-space: nowrap;
}
.pc-page .sec-accompany1 {
  width: 1440px;
  margin: 0 auto;
  background: var(--color-white);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 80px 122px;
  box-sizing: border-box;
  gap: 40px;
}
.pc-page .sec-accompany1 .accompany1-heading {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 46px;
  line-height: 1.25;
  color: var(--color-navy);
  text-align: center;
  margin: 0;
}
.pc-page .sec-accompany1 .accompany1-cards {
  display: flex;
  align-items: stretch;
  gap: 32px;
}
.pc-page .sec-accompany1 .accompany1-card {
  background: #f3f2ef;
  border-radius: 12px;
  width: 420px;
  height: 332px;
  box-sizing: border-box;
  padding: 32px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.pc-page .sec-accompany1 .accompany1-icon {
  height: 64px;
  width: 68px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pc-page .sec-accompany1 .accompany1-icon img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}
.pc-page .sec-accompany1 .accompany1-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  width: 100%;
}
.pc-page .sec-accompany1 .accompany1-card-title {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 32px;
  line-height: 1.3;
  color: var(--color-navy);
  text-align: center;
  margin: 0;
}
.pc-page .sec-accompany1 .accompany1-card-title--sm {
  font-size: 30px;
  letter-spacing: -2.4px;
}
.pc-page .sec-accompany1 .accompany1-card-body {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 17px;
  line-height: 1.65;
  color: var(--color-text);
  /* 親が align-items: center のため、幅を明示しないと段落自体が中央寄せになる */
  width: 100%;
  text-align: left;
  margin: 0;
}
/* 3枚目のカード(「遺品整理士などの資格保有スタッフも在籍しており…」)の本文のみ17.7px。
   カードは3枚固定のテンプレートなので順序で指定している */
.pc-page .sec-accompany1 .accompany1-card:nth-child(3) .accompany1-card-body {
  font-size: 17.7px;
}
.pc-page .sec-values {
  width: 1440px;
  margin: 0 auto;
  position: relative;
  overflow: hidden;
  background: #f6f5f2;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 80px 225px 120px;
  box-sizing: border-box;
  gap: 64px;
}
.pc-page .sec-values .values-bg-texture {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 1440px;
  height: 1430px;
  object-fit: cover;
  opacity: 0.6;
  pointer-events: none;
  z-index: 0;
}
.pc-page .sec-values .values-heading {
  position: relative;
  z-index: 1;
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 46px;
  line-height: 1.25;
  color: var(--color-navy);
  text-align: center;
  margin: 0;
}
.pc-page .sec-values .values-rows {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 64px;
  width: 100%;
}
.pc-page .sec-values .values-row {
  display: flex;
  align-items: center;
}
.pc-page .sec-values .values-card {
  position: relative;
  background: var(--color-white);
  width: 740px;
  min-height: 229px;
  box-sizing: border-box;
  box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.12);
  /* 右の余白を狭めて本文幅を620px確保している(4行とも指定の改行位置に必要) */
  padding: 32px 80px 32px 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 16px;
}
.pc-page .sec-values .values-ribbon {
  align-self: flex-start;
  background: var(--color-navy);
  color: var(--color-white);
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 32px;
  line-height: 1.3;
  padding: 6px 20px;
  margin: -32px 0 0 -60px;
  white-space: nowrap;
}
.pc-page .sec-values .values-row:first-child .values-ribbon {
  margin-top: -4.6px;
}
.pc-page .sec-values .values-ribbon--tracked { letter-spacing: 0.64px; }
.pc-page .sec-values .values-desc {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 22px;
  line-height: 1.65;
  color: var(--color-navy);
  margin: 0;
}
/* 画像の高さは左の白背景(.values-card)に追従させる。
   01は本文が3行になりカードが min-height:229px を超えて伸びるため、
   固定値(228px)のままだと高さが揃わなかった */
.pc-page .sec-values .values-photo {
  width: 340px;
  align-self: stretch;
  height: auto;
  flex: none;
  overflow: hidden;
}
.pc-page .sec-values .values-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.pc-page .sec-voice {
  background: var(--color-white);
  padding: 80px 0;
}
.pc-page .sec-voice .voice-inner {
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 48px;
}
.pc-page .sec-voice .voice-head {
  text-align: center;
  color: var(--color-navy);
}
.pc-page .sec-voice .voice-head h2 {
  color: var(--color-navy);
  margin: 0;
}
.pc-page .sec-voice .voice-head p {
  margin: 0;
}
.pc-page .sec-voice .voice-track-wrap {
  width: 1440px;
  overflow-x: auto;
  overflow-y: hidden;
  padding-top: 4px;
  padding-bottom: 10px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  cursor: grab;
}
.pc-page .sec-voice .voice-track-wrap.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.pc-page .sec-voice .voice-track-wrap::-webkit-scrollbar { display: none; }
.pc-page .sec-voice .voice-track {
  display: flex;
  gap: 60px;
  justify-content: center;
  align-items: flex-start;
  width: max-content;
  min-width: 100%;
}
.pc-page .sec-voice .voice-card-wrap {
  position: relative;
  flex: 0 0 auto;
  width: 879px;
  scroll-snap-align: center;
}
.pc-page .sec-voice .voice-ribbon {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  max-width: calc(100% - 60px);
  box-sizing: border-box;
  background: #bc9471;
  color: var(--color-white);
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 28px;
  line-height: 1.6;
  padding: 2px 16px;
  border-top-left-radius: 20px;
  border-bottom-right-radius: 20px;
  white-space: normal;
}
.pc-page .sec-voice .voice-card {
  margin-top: 33px;
  background: var(--color-white);
  border-radius: 6px;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.16);
  padding: 40px 30px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.pc-page .sec-voice .voice-photo {
  width: 365px;
  height: 198.5px;
  /* 写真を常に365x198.5pxいっぱいで表示する(枠からはみ出す部分は切り取られる) */
  object-fit: cover;
  object-position: center;
  background: var(--color-white);
  border-radius: 10px;
  display: block;
}
.pc-page .sec-voice .voice-body {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  /* 本文の段落間にflex gapが乗ると、Enter改行(段落分割)とShift+Enter改行(行内改行)で
     行送りが変わってしまうため0にし、タグ下の余白はvoice-tagのmargin-bottomで確保する */
  gap: 0;
}
.pc-page .sec-voice .voice-tag {
  background: #f3f2ef;
  color: var(--color-text);
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 22px;
  line-height: 1.3;
  /* 上下の余白は0。左右は従来どおり */
  padding: 0 10px 0 7px;
  margin-bottom: 14px;
}
.pc-page .sec-voice .voice-text {
  margin: 0;
  width: 100%;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 22px;
  line-height: 1.8;
  color: var(--color-text);
}
.pc-page .sec-voice .voice-text + .voice-text {
  /* Shift+Enter(行内改行)と行送りを揃えるため段落間の追加余白は持たせない */
  margin-top: 0;
}
.pc-page .sec-voice .voice-slidebar {
  position: relative;
  display: block;
  width: 362px;
  height: 18px;
  border-radius: 9px;
  background: #DBDBDB;
  box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.12);
}
.pc-page .sec-voice .voice-slidebar-thumb {
  position: absolute;
  top: 3px;
  left: 0;
  height: 12px;
  border-radius: 6px;
  background: #252C51;
  transition: left 0.2s ease, width 0.2s ease;
}
.pc-page .sec-cta3 {
  background: #f3f2ef;
  height: 208px;
  box-sizing: border-box;
  padding: 12px 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pc-page .sec-cta3 .cta3-inner {
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}
.pc-page .sec-cta3 .cta3-heading {
  margin: 0;
  width: 1120px;
  max-width: 100%;
  text-align: center;
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 40px;
  line-height: 1.65;
  color: var(--color-navy);
  text-shadow: 3px 3px 20px rgba(0, 0, 0, 0.3);
}
.pc-page .sec-cta3 .cta3-buttons {
  display: flex;
  align-items: center;
  gap: 22px;
}
.pc-page .sec-cta3 .cta3-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 389px;
  height: 80px;
  border-radius: 12px;
  box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.3);
  font-family: var(--font-body);
  font-weight: 700;
  color: var(--color-white);
  text-decoration: none;
  box-sizing: border-box;
}
.pc-page .sec-cta3 .cta3-btn--line {
  background: #99be49;
  font-size: 26px;
  letter-spacing: 0.52px;
}
.pc-page .sec-cta3 .cta3-btn--phone {
  background: #f18a5c;
  font-size: 24px;
  letter-spacing: 0.48px;
}
.pc-page .sec-cta3 .cta3-btn img {
  display: block;
  flex: 0 0 auto;
}
.pc-page .sec-cta3 .cta3-btn--line img {
  width: 67.5px;
  height: 63px;
}
.pc-page .sec-cta3 .cta3-btn--phone img {
  width: 68.235px;
  height: 63.735px;
}
.pc-page .sec-cases {
  background: #363d64;
  padding: 64px 0;
}
.pc-page .sec-cases .cases-inner {
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 48px;
}
.pc-page .sec-cases .cases-head {
  text-align: center;
  color: var(--color-white);
}
.pc-page .sec-cases .cases-head h2 {
  color: var(--color-white);
  margin: 0;
}
.pc-page .sec-cases .cases-head p {
  margin: 0;
}
.pc-page .sec-cases .cases-track-wrap {
  width: 1440px;
  overflow-x: auto;
  overflow-y: hidden;
  padding-top: 12px;
  padding-bottom: 26px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  cursor: grab;
}
.pc-page .sec-cases .cases-track-wrap.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.pc-page .sec-cases .cases-track-wrap::-webkit-scrollbar { display: none; }
.pc-page .sec-cases .cases-track {
  display: flex;
  gap: 64px;
  justify-content: center;
  /* カードの高さを一番高いものに揃える(内容が短いカードは下に余白ができる) */
  align-items: stretch;
  width: max-content;
  min-width: 100%;
}
.pc-page .sec-cases .case-card {
  flex: 0 0 auto;
  scroll-snap-align: center;
  width: 658px;
  background: var(--color-white);
  border-radius: 12px;
  box-shadow: 3px 3px 20px rgba(0, 0, 0, 0.3);
  box-sizing: border-box;
  padding: 30px 38px 24px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.pc-page .sec-cases .case-photos {
  display: flex;
  align-items: center;
  gap: 8px;
}
.pc-page .sec-cases .case-photo-item {
  position: relative;
  flex: 0 0 auto;
}
.pc-page .sec-cases .case-photo-box {
  position: relative;
  width: 264px;
  height: 159px;
  border-radius: 4px;
  overflow: hidden;
  background: #eee;
}
.pc-page .sec-cases .case-photo-box img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pc-page .sec-cases .case-photo-tag {
  position: absolute;
  top: -8px;
  left: -8px;
  width: 84px;
  height: 27px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-right: 8px;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 17px;
  line-height: 1;
  color: var(--color-white);
  letter-spacing: 0.34px;
  clip-path: polygon(0% 0%, 100% 0%, 85% 50%, 100% 100%, 0% 100%);
}
.pc-page .sec-cases .case-photo-tag::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -7px;
  width: 7px;
  height: 7px;
  background: rgba(0, 0, 0, 0.35);
  clip-path: polygon(0 0, 100% 0, 0 100%);
}
.pc-page .sec-cases .case-photo-tag--before {
  background: #222843;
}
.pc-page .sec-cases .case-photo-tag--after {
  background: #f18a5c;
}
/* Before/After間の矢印。画面幅1000pxのときに 幅19px × 高さ55px で表示されるようにする。
   .pc-page は1440px設計を main.js の zoom で縮小しているため(1000/1440 = 0.6944)、
   指定値は 19 ÷ 0.6944 = 27.36px、55 ÷ 0.6944 = 79.2px となる。
   19:55 は元画像(31:64)と縦横比が異なるので、contain ではなく 100% 100% で
   ボックスいっぱいに引き伸ばしている */
.pc-page .sec-cases .case-arrow {
  flex: 0 0 auto;
  width: 27.36px;
  height: 79.2px;
  background: url("../assets/Polygon 11.png") center/100% 100% no-repeat;
}
.pc-page .sec-cases .case-title {
  margin: 0;
  font-family: var(--font-heading);
  font-weight: 900;
  color: #222843;
}
.pc-page .sec-cases .case-card--sm .case-title {
  font-size: 24px;
  line-height: 1.3;
}
.pc-page .sec-cases .case-card--lg .case-title {
  font-size: 26px;
  line-height: 1.4;
}
.pc-page .sec-cases .case-rows {
  margin: 0;
  display: flex;
  flex-direction: column;
}
.pc-page .sec-cases .case-row {
  display: flex;
  /* 見出しを右側の本文量に対して上下中央に置く(「その他」など行数の多い行向け) */
  align-items: center;
  gap: 4px;
  padding: 8px 4px;
  border-top: 1px solid #dbdbdb;
}
/* 「状況」「内容」は本文1行目のベースラインに揃える(上揃え) */
.pc-page .sec-cases .case-row--situation,
.pc-page .sec-cases .case-row--content {
  align-items: baseline;
}
.pc-page .sec-cases .case-row:first-child {
  border-top: none;
}
.pc-page .sec-cases .case-row dt {
  flex: 0 0 auto;
  font-family: var(--font-heading);
  /* 読み込んでいるウェイトは400/500/700/900のみ。700の1段階上は900 */
  font-weight: 900;
  font-size: 19px;
  color: var(--color-text);
  white-space: nowrap;
}
.pc-page .sec-cases .case-row dt::after {
  content: "：";
}
.pc-page .sec-cases .case-row dd {
  margin: 0;
  flex: 1 1 auto;
  font-family: var(--font-body);
  /* 読み込んでいるウェイトは400/500/700/900のみ。500の1段階上は700 */
  font-weight: 700;
  font-size: 18px;
  line-height: 1.65;
  color: var(--color-text);
}
/* 「その他」は本文幅を狭めて指定の改行位置にしている。
   1行に26文字入り27文字目で折り返す幅(467.5px以上485.5px未満)の中央値 */
.pc-page .sec-cases .case-row--other dd {
  max-width: 476px;
}
/* [時間/人数バッジ][値][金額バッジ][値] の4列グリッド。
   金額バッジと注意書きをどちらも3列目始まりに置くことで、
   時間や金額の文字数が変わっても注意書きの左端が金額の左端と揃う */
.pc-page .sec-cases .case-meta {
  display: grid;
  grid-template-columns: auto auto auto 1fr;
  align-items: center;
  column-gap: 8px;
  row-gap: 12px;
}
.pc-page .sec-cases .case-badge--time { grid-area: 1 / 1; }
.pc-page .sec-cases .case-val--time { grid-area: 1 / 2; }
.pc-page .sec-cases .case-badge--price { grid-area: 1 / 3; }
.pc-page .sec-cases .case-val--price { grid-area: 1 / 4; }
.pc-page .sec-cases .case-badge--people { grid-area: 2 / 1; }
.pc-page .sec-cases .case-val--people { grid-area: 2 / 2; }
.pc-page .sec-cases .case-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 20px;
  padding: 0 6px;
  background: #333333;
  color: var(--color-white);
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 16px;
  line-height: 1;
  border-radius: 4px;
  white-space: nowrap;
}
.pc-page .sec-cases .case-badge-val {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 18px;
  color: var(--color-text);
  margin-right: 12px;
}
.pc-page .sec-cases .case-note {
  /* 金額バッジと同じ3列目から始めて右端まで伸ばす。
     高さを0にして2行目の行高を人数バッジ側だけで決めさせ(人数が下がるのを防ぐ)、
     テキストは中央から上下に均等にはみ出させることで人数と上下中央が揃う */
  grid-area: 2 / 3 / auto / -1;
  height: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0;
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 14px;
  line-height: 1.4;
  color: var(--color-text);
  text-align: left;
}
.pc-page .sec-cases .case-footer {
  align-self: flex-end;
  margin: 0;
  background: #f3f2ef;
  color: #000;
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 18px;
  line-height: 1.65;
  /* Figmaの指定は左右6pxのみ(枠の高さ30px = 18px × 1.65) */
  padding: 0 6px;
  max-width: 100%;
}
.pc-page .sec-cases .cases-slidebar {
  position: relative;
  display: block;
  width: 362px;
  height: 18px;
  border-radius: 9px;
  background: var(--color-white);
  box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.12);
}
.pc-page .sec-cases .cases-slidebar-thumb {
  position: absolute;
  top: 3px;
  left: 0;
  height: 12px;
  border-radius: 6px;
  background: #F18A5C;
  transition: left 0.2s ease, width 0.2s ease;
}
.pc-page .sec-flow {
  background: #f4f2f0;
  padding: 64px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.pc-page .flow-inner {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 48px;
  align-items: center;
}
.pc-page .flow-header {
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: center;
  width: 100%;
}
.pc-page .flow-header h2 {
  color: var(--color-navy);
  text-align: center;
}
.pc-page .flow-header h2 p { margin: 0; }
.pc-page .flow-step-pill {
  background: #bc9471;
  height: 50px;
  width: 204px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-top-left-radius: 27.755px;
  border-bottom-right-radius: 27.755px;
}
.pc-page .flow-step-pill span {
  font-family: var(--font-heading);
  font-weight: 900;
  color: var(--color-white);
  letter-spacing: -1.2px;
}
.pc-page .flow-step-pill .flow-pill-num { font-size: 40px; font-weight: 700; }
.pc-page .flow-step-pill .flow-pill-label { font-size: 34px; }
.pc-page .flow-steps-wrap {
  position: relative;
  width: 100%;
}
.pc-page .flow-line {
  position: absolute;
  top: 179.55px;
  left: 50%;
  transform: translateX(-50%);
  width: 871.003px;
  height: 2px;
  background: #222843;
  z-index: 1;
}
.pc-page .flow-cards {
  position: relative;
  z-index: 2;
  width: 1280px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  gap: 32px;
}
.pc-page .flow-card {
  background: var(--color-white);
  width: 296px;
  height: 348px;
  border-radius: 8px;
  box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.1);
  position: relative;
  flex-shrink: 0;
}
.pc-page .flow-icon-box {
  position: relative;
  width: 100px;
  height: 96px;
  margin: 16px auto 0;
}
.pc-page .flow-icon-box img { position: absolute; display: block; }
.pc-page .flow-badge {
  position: absolute;
  left: 20.5px;
  top: 74px;
  width: 59px;
  height: 22px;
  border-radius: 100px;
  background: #bc9471;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pc-page .flow-badge span {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 14px;
  color: var(--color-white);
  white-space: nowrap;
}
.pc-page .flow-text {
  width: 260px;
  margin: 0 auto;
  padding-top: 8px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.pc-page .flow-text h3 {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 24px;
  line-height: 1.3;
  color: #333333;
  margin: 0;
  /* 4枚のカードで本文(.flow-desc)の上端を揃えるため、見出し領域の高さを
     最も行数の多いStep3/4の3行分(24px × 1.3 × 3 = 93.6px)に固定し、
     中身を下端に寄せる。2行のStep1/2の見出しはその分下がるが、
     イラスト(.flow-icon-box)は見出しより前にあるため位置は変わらない */
  min-height: 93.6px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
/* Step1・2は見出しが2行のため下寄せだと文字が下がりすぎる。
   本文(.flow-desc)の位置は動かさずに見出しだけ14.2px上げる
   (position:relative の top はレイアウトに影響しないため本文は229.6pxのまま) */
.pc-page .flow-card:nth-child(1) .flow-text h3,
.pc-page .flow-card:nth-child(2) .flow-text h3 {
  position: relative;
  top: -14.2px;
}
.pc-page .flow-text h3 p { margin: 0; }
.pc-page .flow-text p.flow-desc {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 18px;
  line-height: 1.65;
  color: #333333;
  margin: 0;
}
.pc-page .flow-desc .flow-orange { color: var(--color-orange); }
.pc-page .flow-s1-white { left: 30.43px; top: 20.46px; width: 38.157px;  height: 46.518px; }
.pc-page .flow-s1-vector { left: 30.12px; top: 44.43px; width: 36.287px;  height: 22.544px; }
.pc-page .flow-s1-group-a { left: 29.5px;  top: 41.52px; width: 39.949px;  height: 25.991px; }
.pc-page .flow-s1-group-b { left: 35.17px; top: 13.91px; width: 30.024px;  height: 31.008px; }
.pc-page .flow-s1-group-c { left: 38.46px; top: 0;       width: 20.132px;  height: 8.398px; }
.pc-page .flow-s2-magnifier { left: 24.13px; top: 14px; width: 48.792px; height: 52px; }
.pc-page .flow-s3-vase { left: 54.32px; top: 31.26px; width: 21.93px;  height: 30.467px; }
.pc-page .flow-s3-bag { left: 23px;    top: 32.55px; width: 26.092px; height: 29.722px; }
.pc-page .flow-s3-box { left: 28.67px; top: 5.68px;  width: 38.151px; height: 27.809px; }
.pc-page .flow-s4-handshake { left: 2px; top: 23px; width: 96.101px; height: 37px; }
.pc-page .sec-thoughts {
  position: relative;
  overflow: hidden;
  padding: 64px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: var(--color-white);
}
.pc-page .thoughts-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  max-width: 1440px;
  right: 0;
  margin: 0 auto;
  height: 532px;
  overflow: hidden;
  opacity: 0.7;
  pointer-events: none;
}
.pc-page .thoughts-bg img {
  position: absolute;
  top: -15px;
  left: 528px;
  width: 1028px;
  height: 704px;
  object-fit: cover;
  opacity: 0.4;
}
.pc-page .thoughts-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, #ffffff 47%, rgba(255, 255, 255, 0) 98%);
}
.pc-page .thoughts-inner {
  position: relative;
  z-index: 1;
  width: 758px;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: 40px;
  align-items: center;
}
.pc-page .thoughts-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  color: var(--color-navy);
}
.pc-page .thoughts-heading h2 { margin: 0 0 0 0; }
.pc-page .thoughts-heading p.thoughts-sub { margin: 0; }
.pc-page .thoughts-body-wrap {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 24px;
}
.pc-page .thoughts-quote-block {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 24px;
  align-items: flex-start;
}
.pc-page .thoughts-quote {
  background: var(--color-navy);
  color: var(--color-white);
  padding: 3px 8px;
  display: inline-block;
}
.pc-page .thoughts-body {
  color: var(--color-navy);
  margin: 0;
  width: 100%;
}
.pc-page .thoughts-sign {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 18px;
  line-height: 1.8;
  color: var(--color-navy);
}
.pc-page .sec-faq {
  background: #f4f2f0;
  padding: 64px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}
.pc-page .faq-heading {
  color: var(--color-navy);
  text-align: center;
}
.pc-page .faq-list {
  width: 960px;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.pc-page .faq-item {
  background: var(--color-white);
  border-radius: 8px;
  padding: 20px 40px;
}
.pc-page .faq-item summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.pc-page .faq-item summary::-webkit-details-marker { display: none; }
.pc-page .faq-question {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.45;
  color: var(--color-navy);
}
.pc-page .faq-chevron {
  flex-shrink: 0;
  width: 11px;
  height: 6.67px;
  transition: transform 0.2s ease;
}
.pc-page .faq-item[open] .faq-chevron { transform: rotate(180deg); }
.pc-page .faq-answer {
  margin-top: 16px;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 18px;
  line-height: 1.45;
  color: var(--color-navy);
}
.pc-page .faq-answer p { margin: 0 0 0 0; }
.pc-page .tok-h2-46 { font-family: var(--font-heading); font-weight: 900; font-size: 46px; line-height: 1.25; letter-spacing: 0; }
.pc-page .tok-h3-32 { font-family: var(--font-heading); font-weight: 700; font-size: 32px; line-height: 1.3; letter-spacing: 0; }
.pc-page .tok-heading-sub-20 { font-family: var(--font-heading); font-weight: 900; font-size: 20px; line-height: 1.45; letter-spacing: 0; }
.pc-page .tok-worry-26 { font-family: var(--font-heading); font-weight: 900; font-size: 26px; line-height: 1.4; letter-spacing: -2px; }
.pc-page .tok-body-18 { font-family: var(--font-body); font-weight: 500; font-size: 18px; line-height: 1.65; letter-spacing: 0; }
.pc-page .tok-caption-bold-12 { font-family: var(--font-body); font-weight: 700; font-size: 12px; line-height: 1.8; letter-spacing: 0; }
.pc-page .sec-cta4 {
  background: #252c51;
  box-shadow: 0px 0px 40px 0px rgba(0,0,0,0.4);
  height: 224px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pc-page .sec-cta4 .cta4-inner {
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.pc-page .sec-cta4 .cta4-heading {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 32px;
  line-height: 1.3;
  color: var(--color-white);
  text-align: center;
  text-shadow: 3px 3px 20px rgba(0,0,0,0.3);
  margin: 0 0 34px;
}
.pc-page .sec-cta4 .cta4-heading p { margin: 0; }
.pc-page .sec-cta4 .cta4-btns {
  display: flex;
  gap: 22px;
  align-items: center;
}
.pc-page .sec-cta4 .cta4-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 389px;
  height: 80px;
  border-radius: 12px;
  box-shadow: 3px 3px 10px rgba(0,0,0,0.3);
  border: none;
  cursor: pointer;
  text-decoration: none;
}
.pc-page .sec-cta4 .cta4-btn-estimate { background: #f18a5c; padding: 12px 56px 12px 46px; }
.pc-page .sec-cta4 .cta4-btn-line { background: #99be49; padding: 12px 56px; }
.pc-page .sec-cta4 .cta4-btn img { display: block; flex: none; }
.pc-page .sec-cta4 .cta4-btn-estimate img { width: 35.72px; height: 38.9px; transform: scaleX(-1); }
.pc-page .sec-cta4 .cta4-btn-line img { width: 67.5px; height: 63px; }
.pc-page .sec-cta4 .cta4-btn-label {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 26px;
  line-height: 1.1;
  letter-spacing: 0.52px;
  color: var(--color-white);
  white-space: nowrap;
}
.pc-page .sec-form {
  background: #f4f4f4;
  padding: 64px 0 96px;
}
.pc-page .sec-form .form-inner {
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.pc-page .sec-form .form-heading {
  font-family: var(--font-heading);
  font-weight: 900;
  font-style: normal;
  color: var(--color-navy);
  text-align: center;
  margin: 0 0 40px;
}
.pc-page .sec-form .form-heading .form-h1 { font-size: 46px; line-height: 1.25; margin: 0; }
.pc-page .sec-form .form-heading .form-h2 { font-size: 20px; line-height: 1.45; margin: 0; }
.pc-page .sec-form form {
  width: 840px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.pc-page .sec-form .form-field-label {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
}
.pc-page .sec-form .form-field-label span.label-text {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 18px;
  line-height: 1.8;
  color: var(--color-navy);
  white-space: nowrap;
}
.pc-page .sec-form .badge {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 20px;
  border-radius: 4px;
  box-sizing: border-box;
}
.pc-page .sec-form .badge img { display: none; }
.pc-page .sec-form .badge.badge-required { background: var(--color-navy); }
.pc-page .sec-form .badge.badge-optional { background: var(--color-white); border: 1px solid var(--color-navy); }
.pc-page .sec-form .badge span {
  position: relative;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 12px;
  line-height: 1.8;
  white-space: nowrap;
  margin: 0 auto;
}
.pc-page .sec-form .badge.badge-required span { color: var(--color-white); }
.pc-page .sec-form .badge.badge-optional span { color: var(--color-navy); }
.pc-page .sec-form .consult-group {
  display: flex;
  gap: 36px;
  align-items: center;
}
.pc-page .sec-form .consult-option {
  display: flex;
  align-items: center;
  cursor: pointer;
}
.pc-page .sec-form .consult-option input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  width: 32px;
  height: 32px;
  margin: 0;
  border-radius: 50%;
  border: 1px solid var(--color-navy);
  background: var(--color-white);
  position: relative;
  cursor: pointer;
  flex: none;
}
.pc-page .sec-form .consult-option input[type="radio"]:checked::after {
  content: "";
  position: absolute;
  top: 5px;
  left: 5px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--color-navy);
}
.pc-page .sec-form .consult-option span {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 16px;
  line-height: 1.8;
  color: var(--color-navy);
  margin-left: 6px;
}
.pc-page .sec-form .form-row { display: flex; flex-direction: column; }
.pc-page .sec-form .form-text-input {
  width: 840px;
  height: 56px;
  border: none;
  border-radius: 10px;
  background: var(--color-white);
  box-shadow: 3px 3px 20px 0px rgba(0,0,0,0.08);
  padding: 0 20px;
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 18px;
  line-height: 1.8;
  color: var(--color-text);
  box-sizing: border-box;
}
.pc-page .sec-form .form-text-input::placeholder { color: #888888; }
.pc-page .sec-form .form-textarea {
  width: 840px;
  height: 170px;
  border: none;
  border-radius: 10px;
  background: var(--color-white);
  box-shadow: 3px 3px 20px 0px rgba(0,0,0,0.08);
  padding: 20px;
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 18px;
  line-height: 1.8;
  color: var(--color-text);
  resize: none;
  box-sizing: border-box;
}
.pc-page .sec-form .form-textarea::placeholder { color: #888888; }
.pc-page .sec-form .privacy-row {
  display: flex;
  align-items: flex-start;
  justify-content: center;
}
.pc-page .sec-form .privacy-row label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}
.pc-page .sec-form .privacy-row input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 19px;
  height: 19px;
  margin: 0;
  border-radius: 4px;
  border: 0.5px solid var(--color-navy);
  background: var(--color-white);
  cursor: pointer;
  flex: none;
}
.pc-page .sec-form .privacy-row input[type="checkbox"]:checked {
  background: var(--color-navy);
}
.pc-page .sec-form .privacy-link {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 16px;
  line-height: normal;
  color: var(--color-navy);
  text-decoration: none;
  border-bottom: 1px solid var(--color-navy);
  padding-bottom: 4px;
}
.pc-page .sec-form .submit-wrap { display: flex; justify-content: flex-start; }
.pc-page .sec-form .btn-submit {
  width: 266px;
  height: 48px;
  margin-left: 286.7px;
  border: none;
  border-radius: 4px;
  background: #f18a5c;
  color: var(--color-white);
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 15px;
  line-height: 1.6;
  letter-spacing: 0.3px;
  cursor: pointer;
}
/* Contact Form 7 が出力するマークアップ用の補助スタイル */
.pc-page .sec-form .consult-group .wpcf7-form-control-wrap,
.pc-page .sec-form .consult-group .wpcf7-form-control,
.pc-page .sec-form .privacy-row .wpcf7-form-control-wrap,
.pc-page .sec-form .privacy-row .wpcf7-form-control { display: contents; }
.pc-page .sec-form .consult-group .wpcf7-list-item { margin: 0; display: flex; align-items: center; }
.pc-page .sec-form .consult-group label { display: flex; align-items: center; cursor: pointer; }
.pc-page .sec-form .consult-group input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  width: 32px;
  height: 32px;
  margin: 0;
  border-radius: 50%;
  border: 1px solid var(--color-navy);
  background: var(--color-white);
  position: relative;
  cursor: pointer;
  flex: none;
}
.pc-page .sec-form .consult-group input[type="radio"]:checked::after {
  content: "";
  position: absolute;
  top: 5px;
  left: 5px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--color-navy);
}
.pc-page .sec-form .consult-group .wpcf7-list-item-label {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 16px;
  line-height: 1.8;
  color: var(--color-navy);
  margin-left: 6px;
}
.pc-page .sec-form .privacy-row .wpcf7-list-item { margin: 0; }
.pc-page .sec-form .privacy-row label { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.pc-page .sec-form .privacy-row input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 19px;
  height: 19px;
  margin: 0;
  border-radius: 4px;
  border: 0.5px solid var(--color-navy);
  background: var(--color-white);
  cursor: pointer;
  flex: none;
}
.pc-page .sec-form .privacy-row input[type="checkbox"]:checked { background: var(--color-navy); }
.pc-page .sec-form .wpcf7-not-valid-tip { display: block; font-size: 13px; color: #e2483d; margin-top: 6px; }
.pc-page .sec-form .wpcf7-response-output { margin: 24px 0 0; border-radius: 8px; text-align: center; }
.pc-page .sec-footer {
  background: var(--color-white);
  padding: 76px 0 30px;
}
.pc-page .sec-footer .footer-inner {
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.pc-page .sec-footer .footer-logo-sub {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 15.778px;
  /* ヘッダーのロゴと同じ詰め方に揃えている */
  line-height: 1.2;
  color: var(--color-navy);
  margin: 0;
}
.pc-page .sec-footer .footer-logo-main {
  font-family: var(--font-logo);
  font-weight: 700;
  font-size: 30px;
  line-height: 1;
  color: var(--color-navy);
  letter-spacing: 0.6px;
  margin: 0 0 24px;
}
.pc-page .sec-footer .footer-address {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.07px;
  color: var(--color-navy);
  margin: 0 0 24px;
}
.pc-page .sec-footer .footer-copyright {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 10px;
  letter-spacing: 0.05px;
  color: #909090;
  margin: 0;
  white-space: pre;
}

/* 差し替えたアイコン(line_icon.png / freeicon.png)は正方形だが、枠は正方形ではないため
   そのままだと横に伸びてしまう。枠のサイズは変えずに縦横比を保って収める */
.pc-page .mv-btn-line img,
.pc-page .mv-btn-phone img,
.pc-page .cta1-btn-line img,
.pc-page .cta1-btn-phone img,
.pc-page .sec-cta2 .cta2-btn--line img,
.pc-page .sec-cta2 .cta2-btn--phone img,
.pc-page .sec-cta3 .cta3-btn--line img,
.pc-page .sec-cta3 .cta3-btn--phone img,
.pc-page .sec-cta4 .cta4-btn-line img { object-fit: contain; }
