/* ===== tokens ===== */
:root{
  --sub-txt:#333;
  --red-txt: #D63E2B;

  --wrap:     72rem;      /* 最大幅 */

  /* 行の高さ（デザイン値） */
  --service-row1: 1.5rem;   /* STEP 行（LH=1.5） */
  --service-gap:  0.87rem;  /* STEP 下の余白 */
  --service-row2: 4.5rem;   /* 数字 01 の行（LH=4.5） */
  --service-row3: 1.5rem;   /* タイトル行（LH=1.5） */

  --bg-white: #FFF;
  --bg-tint: #FBF2F0;
  --bg-red: #D63E2B;

  --border:#DBDBDB;

  /* リンクボタン */
  --btn-bg-default: #FFFFFF;
  --btn-bg-hover:   #D63E2B;
  --btn-txt-default: #D63E2B;
  --btn-txt-hover:   #FFFFFF;
  --btn-border: #D63E2B;
}

/* ===== section wrapper section1 ===== */

.re1{ display:flex; justify-content:center; }
.re1__wrap{
  width: 100%;
  max-width: 24.375rem;                 /* 390px */
  padding: 3.5rem 1.25rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.5rem;
}
@media (min-width:64rem){
  .re1__wrap{
    max-width: 90rem;
    padding: 5rem 0;
    gap: 3rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;          /* 指定どおり */
    align-items: center;
  }
}

/* 見出し・リード */
.re1__heading{
  margin:0;
  color: var(--sub-txt);
  font-family: "Noto Sans JP", system-ui, sans-serif;
  font-weight: 700;
  font-size: 1.75rem;                   /* SP 28 */
  line-height: 1.5;
  text-align: center;
}
.re1__lead__box {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.re1__lead{
  margin:0;
  color: var(-—sub-txt);
  font-family: "Noto Sans JP", system-ui, sans-serif;
  font-weight: 700;
  font-size: 1.125rem;                  /* SP 18 */
  line-height: 1.5;
  text-align: left;
}
@media (min-width:64rem){
  .re1__heading{ font-size: 2.125rem; } /* PC 34 */
  .re1__lead{ font-size: 1.5rem; }      /* PC 24 */
}

/* フロー */
.re1__flow{
  width: 100%;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  justify-content: center;
  flex-wrap: nowrap;
}
.re1__block{
  display:flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border-radius: .5rem;
  background: #FBF2F0;
  width: 5.875rem;
  padding: 0.5rem 0.5rem 1rem 0.5rem;
  height: 9rem;
}
.re1__img.item01 {
  width: 3.75rem;
  height: 3rem;
  flex-shrink: 0;
  aspect-ratio: 5/4;
}
.re1__img.item02 {
  width: 2.75rem;
  height: 3.125rem;
  flex-shrink: 0;
  aspect-ratio: 22/25;
}
.re1__img.item03 {
  width: 4.5rem;
  height: 4.5rem;
  flex-shrink: 0;
  aspect-ratio: 1/1;
}
.re1__caption{
  color: var(--sub-txt);
  text-align:center;
  font: 700 .875rem/1.7 "Noto Sans JP"; /* SP 14 */
}
.re1__arrow{ display:inline-flex; }
.re1__arrowSvg{
  display:block;
  width: 1.5rem; height: 1.5rem;        /* SP */
}
.re1__arrowSvg path,
.re1__arrowSvg rect{ fill: var(--red-txt); }

.re1__man{
  width: 7rem; height: 8.4375rem;       /* 112×135 */
  object-fit: contain; flex-shrink: 0;
}

@media (min-width:64rem){
  .re1__flow{ gap: 0.5rem; }
  .re1__block{
    border-radius: 1rem;
    padding: 0.5rem 1rem 1.5rem 1rem;
    width: auto;
    height: 100%;
  }
  .re1__block .re1__block__img__wrapper {
    width: 10rem;
    height: 10rem;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .re1__img.item01 {
    width: 8.75rem;
    height: 6.9375rem;
    flex-shrink: 0;
    aspect-ratio: 140/111;
  }
  .re1__img.item02 {
    width: 6.25rem;
    height: 7.0625rem;
    flex-shrink: 0;
    aspect-ratio: 100/113;
  }
  .re1__img.item03 {
    width: 10rem;
    height: 10rem;
    flex-shrink: 0;
  }
  
  .re1__caption{ font-size: 1.125rem; } /* 18px */
  .re1__arrowSvg{ width: 3rem; height: 3rem; }
  .re1__man{ width: 9.375rem; height: 11.3125rem; margin-left: 1.5rem; } /* 150×181 */
}

/* 困りごと見出し */
.re1__subhead{
  margin:0;
  color: var(--sub-txt);
  font: 700 1.5rem/1.5 "Noto Sans JP";
  text-align:center;
}

/* チップ群 */
.re1__chips{
  margin:0; padding:0;
  list-style:none;
  width: 100%;
  display:flex;
  justify-content: center;
  align-items: flex-start;
  align-content: flex-start;
  gap:.5rem;
  flex-wrap: wrap;
}
.re1__chips > li{
  display:flex;
  padding:.5rem 1.5rem;
  justify-content:center;
  align-items:center;
  gap:.5rem;
  border-radius:.5rem;
  background:#F5F5F5;
  color:var(--sub-txt);
  font: 500 1rem/1.5 "Noto Sans JP";     /* SP 16 */
  white-space: nowrap;
}
@media (min-width:64rem){
  .re1__chips{ max-width:62.5rem; }      /* 1000px */
  .re1__chips > li{ font-size:1.125rem; }/* 18px */
}

/* アンカーリンク */
.re1__nav{
  width:100%;
  display:flex;
  justify-content:center;
  align-items:center;
  align-content:center;
  gap:1rem;
  flex-wrap: wrap;
}
.re1__navItem{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  text-decoration:none;
  color:var(--sub-txt);
  font:700 1.125rem/1.9125 "Noto Sans JP";
}
.re1__navItem i{
  width:.75rem; height:.75rem; display:inline-block;
  background:
    url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="13" viewBox="0 0 12 13" fill="none"><g clip-path="url(%23c)"><mask id="m" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="12" height="13"><path d="M12 12.5L12 0.5L0 0.5L0 12.5L12 12.5Z" fill="white"/></mask><g mask="url(%23m)"><path d="M6 1.5L6 11.5" stroke="%23D63E2B" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/><path d="M11 6.42505L6 11.5L1 6.42505" stroke="%23D63E2B" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></g></g><defs><clipPath id="c"><rect width="12" height="12" fill="white" transform="translate(12 0.5) rotate(90)"/></clipPath></defs></svg>')
    no-repeat center/contain;
}
@media (min-width:64rem){
  .re1__nav{
    max-width:62.5rem;
    justify-content: space-between;
    align-items:flex-start;
    flex-wrap: nowrap;
  }
}


/* ===== section wrapper section2 ===== */
.re-about{ background:#FBF2F0; }
.re-about__wrap{
  max-width: var(--wrap);
  margin: 0 auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:3rem;                 /* SP: 3rem */
  padding:3.5rem 1.25rem;   /* SP */
}
@media (min-width:64rem){
  .re-about__wrap{ gap:5rem; padding:5rem 0; }
}

/* 見出し＆リード */
.re-about__intro{ display:flex; flex-direction:column; justify-content:center; align-items:center; gap:1.5rem; }
.re-about__heading{
  color: var(--sub-txt);
  text-align:center;
  font-family:"Noto Sans JP",system-ui,sans-serif;
  font-size:1.75rem; font-weight:700; line-height:1.5; margin:0;
}
@media (min-width:64rem){
  .re-about__heading{ font-size:2.125rem; }
}
.re-about__lead{
  color: var(--sub-txt);
  text-align:left;
  font-family:"Noto Sans JP",system-ui,sans-serif;
  font-size:1rem; font-weight:400; line-height:1.7; margin:0;
}
@media (min-width:64rem){
  .re-about__lead{ text-align:center; font-size:1.125rem; }
}

/* 2カラム比較 */
.re-about__compare{ display:flex; flex-direction:column; align-items:stretch; gap:1.5rem; width:100%; }
@media (min-width:64rem){
  .re-about__compare{ width:62.5rem; flex-direction:row; align-items:flex-start; gap:2.5rem; }
}
.re-about__panel{
  display:flex; padding:1.5rem 0; flex-direction:column; justify-content:center; align-items:center; gap:.5rem; border-radius:1rem; background:#fff;
}
@media (min-width:64rem){
  .re-about__panel{ padding:2rem 0 2.5rem; gap:1.5rem; flex:1 0 0; }
}
.re-about__panelHead{ display:flex; flex-direction:column; align-items:center; gap:.5rem; }
.re-about__panelTitle{
  margin:0; text-align:center; font-family:"Noto Sans JP"; font-weight:700; line-height:1.5;
  font-size:1.25rem; color:#D63E2B;
}
.re-about__panelTitle--gray{ color:#777; }
@media (min-width:64rem){
  .re-about__panelTitle{ font-size:1.5rem; }
}
.re-about__panelSub{
  margin:0; color:#333; text-align:center; font-family:"Noto Sans JP";
  font-size:1.125rem; font-weight:500; line-height:1.5;
}

/* プロセス（画像→矢印→画像…） */
.re-about__process{
  display:flex; justify-content:center; align-items:center; gap:.25rem; flex-wrap:wrap;
}
.re-about__procItem{ display:flex; flex-direction:column; justify-content:flex-end; align-items:center; gap:.25rem; text-align: center; }
.re-about__procItem figcaption{
  font-family:"Noto Sans JP"; font-size:.9375rem; line-height:1.5; color:var(--sub-txt);
}
.re-about__procItem.item01 img{
  width: 3.75rem;
  height: 3rem;
  flex-shrink: 0;
  aspect-ratio: 5/4;
}
.re-about__procItem.item02 img{
  width: 2.75rem;
  height: 3.125rem;
  flex-shrink: 0;
  aspect-ratio: 22/25;
}
.re-about__procItem.item03 img{
  width: 4.5rem;
  height: 4.5rem;
  flex-shrink: 0;
  aspect-ratio: 1/1;
}
.re-about__procItem.item04 img{
  width: 3.25rem;
  height: 2.625rem;
  flex-shrink: 0;
  aspect-ratio: 26/21;
}
@media (min-width:64rem){
  .re-about__procItem.item01 img{
    width: 5.9375rem;
    height: 4.75rem;
    flex-shrink: 0;
    aspect-ratio: 5 / 4;
  }
  .re-about__procItem.item02 img{
    width: 5.9375rem;
    height: 4.75rem;
    flex-shrink: 0;
    aspect-ratio: 5 / 4;
  }
  .re-about__procItem.item03 img{
    width: 6.25rem;
    height: 4.4375rem;
    flex-shrink: 0;
    aspect-ratio: 100/71;
  }
  .re-about__procItem.item04 img{
    width: 5.25rem;
    height: 4.25rem;
    flex-shrink: 0;
    aspect-ratio: 21/17;
  }
}

/* 矢印（SPは24px、PCは32px相当に） */
.re-about__arrow{ display:inline-flex; align-items:center; justify-content:center; width:1.5rem; height:1.5rem; flex-shrink:0; }
.re-about__arrow--red svg path:first-child{ fill:#D63E2B; }
.re-about__arrow--gray svg path:first-child{ fill:#777; }
@media (min-width:64rem){
  .re-about__arrow{ width:2rem; height:2rem; }
}

/* 手順 */
.re-about__stepsHeading{
  color: var(--sub-txt);
  text-align:center; margin:0;
  font-family:"Noto Sans JP"; font-weight:700; line-height:1.5; font-size:1.5rem;
}
@media (min-width:64rem){
  .re-about__stepsHeading{ font-size:2.125rem; }
}
.re-about__steps{ width:100%; height:auto; display:block; }
.re-about__steps--pc{ display:none; }
@media (min-width:64rem){
  .re-about__steps--sp{ display:none; }
  .re-about__steps--pc{ display:block; width:62.5rem; margin:0 auto; }
}

/* 対応素材ほか */
.re-about__cap{
  width:100%;
  border:1px solid var(--border);
  border-radius:.5rem;
  padding:2rem 1.5rem;
  display:flex; flex-direction:column; align-items:center; gap:1.5rem;
}
@media (min-width:64rem){
  .re-about__cap{ width:62.5rem; padding:2.5rem; }
}
.re-about__capBlock{ display:flex; flex-direction:column; align-items:flex-start; gap:.5rem; align-self:stretch; }
.re-about__capTitle{
  display:flex; align-items:center; gap:.5rem; margin:0;
  font-family:"Noto Sans JP"; font-size:1.125rem; font-weight:500; line-height:1.5; color:var(--sub-txt);
}
.re-about__capTitle > i{ width:.125rem; height:1.125rem; background:var(--bg-red
); display:inline-block; }
.re-about__capText{
  margin:0; color:var(--sub-txt); font-family:"Noto Sans JP"; font-size:1rem; font-weight:400; line-height:1.7;
}
.re-about__capText strong{ font-weight:700; }

/* ===== section wrapper section3 ===== */
.cs1,.cs2,.cs3,.cs4{ display:flex; justify-content:center; background: #FBF2F0; }
.cs1,.cs3{ background: var(--bg-white); }
.cs1__wrap,.cs2__wrap,.cs3__wrap,.cs4__wrap{
  width:100%;
  max-width:72rem;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2.5rem;                /* SP */
  padding:3.5rem 1.25rem;    /* SP */
}

.cs1__wrap h2 {
  color: var(--txt, #333);
  text-align: center;
  font-family: "Noto Sans JP";
  font-size: 1.75rem;
  font-style: normal;
  font-weight: 700;
  line-height: 150%;
}

/* case 見出し */
.cs1__case,.cs2__case,.cs3__case,.cs4__case{ display:flex; align-items:center; gap:.5rem; }
.cs1__caseLabel,.cs2__caseLabel,.cs3__caseLabel,.cs4__caseLabel{
  color:var(--red-txt);
  font-family:"DIN 2014", system-ui, sans-serif;
  font-size:2.5rem; font-weight:600; line-height:1.5;
}
.cs1__caseNum,.cs2__caseNum,.cs3__caseNum,.cs4__caseNum{ display:block; height:2.5rem; width:auto; }

/* 白カード */
.cs1__leadCard,.cs2__leadCard,.cs3__leadCard,.cs4__leadCard{
  display:flex;
  padding:1.5rem 2rem;
  flex-direction:column;
  justify-content:center; align-items:center;
  gap:1rem;
  align-self:stretch;
  border-radius:1rem;
  background:#FFF;
}
/* ピンクカード */
.cs1__leadCard,.cs3__leadCard {
  background: var(--bg-tint);
}

.cs1__leadIcon,.cs2__leadIcon,.cs3__leadIcon,.cs4__leadIcon{ width:6rem; height:6rem; object-fit:contain; }
.cs1__leadTexts,.cs2__leadTexts,.cs3__leadTexts,.cs4__leadTexts{ display:flex; flex-direction:column; align-items:center; gap:1rem; }
.cs1__leadTitle,.cs2__leadTitle,.cs3__leadTitle,.cs4__leadTitle{
  margin:0; color:var(--sub-txt); text-align:center;
  font-family:"Noto Sans JP"; font-weight:700;
  font-size:1.25rem; line-height:1.5;
}
.cs1__leadBody,.cs2__leadBody,.cs3__leadBody,.cs4__leadBody{
  margin:0; color:var(--sub-txt);
  font:400 1rem/1.7 "Noto Sans JP";
  text-align:left;
}

/* ダブルくの字 */
.cs1__chevrons,.cs2__chevrons,.cs3__chevrons,.cs4__chevrons{ width:3rem; height:3rem; display:inline-grid; place-items:center; }

/* 説明行 */
.cs1__descRow,.cs2__descRow,.cs3__descRow,.cs4__descRow{
  display:flex; flex-direction:column;
  justify-content:center; align-items:flex-start;
  gap:1.5rem; align-self:stretch;
}
.cs1__descL,.cs2__descL,.cs3__descL,.cs4__descL{ display:flex; flex-direction:column; gap:1rem; }
.cs1__descTitle,.cs2__descTitle,.cs3__descTitle,.cs4__descTitle{ margin:0; color:var(--sub-txt); font:700 1.25rem/1.5 "Noto Sans JP"; text-align:center; }
.cs1__descBody,.cs2__descBody,.cs3__descBody,.cs4__descBody{ margin:0; color:var(--sub-txt); font:400 1rem/1.7 "Noto Sans JP"; }
.cs1__descImg,.cs2__descImg,.cs3__descImg,.cs4__descImg{ width:9.25rem; height:10.75rem; object-fit:contain; align-self:center; }

/* 2カラムカード */
.cs1__cards,.cs2__cards,.cs3__cards,.cs4__cards{ display:flex; flex-direction:column; gap:1rem; align-self:stretch; }
.cs1__box,.cs2__box,.cs3__box,.cs4__box{
  display:flex; flex-direction:column; gap:1.5rem; padding:1rem 1.5rem 1.5rem;
  border-radius:1rem; background:var(--bg-white);
}
.cs1__box,.cs3__box{
  border: 1px solid var(--border);
}
.cs1__boxTitle,.cs2__boxTitle,.cs3__boxTitle,.cs4__boxTitle{
  margin:0; display:flex; align-items:center; gap:1rem;
  color:var(--sub-txt); font:700 1.5rem/1.7 "Noto Sans JP";
}
.cs1__boxTitle i,.cs2__boxTitle i,.cs3__boxTitle i,.cs4__boxTitle i{ width:.125rem; height:1.5625rem; background:var(--bg-red); display:inline-block; }

/* 納品実績中身 */
.cs1__deliver,.cs2__deliver,.cs3__deliver,.cs4__deliver{ display:flex; align-items:flex-start; gap:1.5rem; }
.cs1__deliverImg,.cs2__deliverImg,.cs3__deliverImg,.cs4__deliverImg{ width:6.5rem; height:6.5rem; object-fit:cover; border-radius:.25rem; }
.cs1__deliverList,.cs2__deliverList,.cs3__deliverList,.cs4__deliverList{ margin:0; }
.cs1__deliverList > div,.cs2__deliverList > div,.cs3__deliverList > div,.cs4__deliverList > div{ display:flex; }
.cs1__deliverList dt,.cs2__deliverList dt,.cs3__deliverList dt,.cs4__deliverList dt{ min-width:2.5em; font:700 1rem/1.7 "Noto Sans JP"; color:var(--sub-txt); }
.cs1__deliverList dd,.cs2__deliverList dd,.cs3__deliverList dd,.cs4__deliverList dd{ margin:0; font:400 1rem/1.7 "Noto Sans JP"; color:var(--sub-txt); }

/* ポイント */
.cs1__points,.cs2__points,.cs3__points,.cs4__points{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.5rem; }
.cs1__points li,.cs2__points li,.cs3__points li,.cs4__points li{ display:flex; align-items:center; gap:.5rem; }
.cs1__chk,.cs2__chk,.cs3__chk,.cs4__chk{
  width:1.5rem; height:1.5rem; flex:0 0 1.5rem;
}

/* CTA */
.cs1__ctaWrap,.cs2__ctaWrap,.cs3__ctaWrap,.cs4__ctaWrap{ display:inline-block; width:100%; }
.cs1__cta,.cs2__cta,.cs3__cta,.cs4__cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1.5rem;
  text-decoration:none;
  font:700 1.125rem/1.5 "Noto Sans JP";
  border: 2px solid var(--btn-border);
  background: var(--btn-bg-default);
  color: var(--btn-txt-default);
}
.cs1__cta:hover,
.cs2__cta:hover,
.cs3__cta:hover,
.cs4__cta:hover{
  background: var(--btn-bg-hover);
  color: var(--btn-txt-hover);
  opacity: 1 !important;
}
.cs1__cta svg,
.cs2__cta svg,
.cs3__cta svg,
.cs4__cta svg{ margin-left: .5rem; }
.cs1__cta:hover svg path,
.cs2__cta:hover svg path,
.cs3__cta:hover svg path,
.cs4__cta:hover svg path{ stroke: var(--btn-txt-hover); }
@media (min-width:64rem){
  .cs1__wrap,.cs2__wrap,.cs3__wrap,.cs4__wrap{ gap:1rem; padding:5rem 0; }

  .cs1__leadCard,.cs2__leadCard,.cs3__leadCard,.cs4__leadCard{
    width:62.5rem; padding:2rem 3rem; flex-direction:row; gap:2rem; margin: 1.5rem auto 0
  }
  .cs1__leadTexts,.cs2__leadTexts,.cs3__leadTexts,.cs4__leadTexts{ align-items:flex-start; }
  .cs1__leadTitle,.cs2__leadTitle,.cs3__leadTitle,.cs4__leadTitle{ font-size:1.5rem; text-align:left; }

  .cs1__descRow,.cs2__descRow,.cs3__descRow,.cs4__descRow{ flex-direction:row; align-items:center; gap:1.5rem; width: 62.5rem; margin: 0 auto 1.5rem; }
  .cs1__descTitle,.cs2__descTitle,.cs3__descTitle,.cs4__descTitle{ font-size:1.5rem; text-align:left; }
  .cs1__descImg,.cs2__descImg,.cs3__descImg,.cs4__descImg{ width:9.25rem; height:10.75rem; }

  .cs1__cards,.cs2__cards,.cs3__cards,.cs4__cards{
    width:62.5rem; flex-direction:row; gap:2.5rem; margin: 0 auto 3rem;
  }
  .cs1__box,.cs2__box,.cs3__box,.cs4__box{ padding:2rem; flex:1 0 0; }
  .cs1__deliverImg,.cs2__deliverImg,.cs3__deliverImg,.cs4__deliverImg{ width:7rem; height:7rem; }

  .cs1__cta,.cs2__cta,.cs3__cta,.cs4__cta{ width:28rem; padding:1.5rem 2rem; font-size:1.375rem; margin: 0 auto; }
}

/* ===== section wrapper section4 ===== */
.equip{ display:flex; justify-content:center; }
.equip__wrap{
  width: 24.375rem;              /* 390px */
  max-width: 100%;
  padding: 3.5rem 1.25rem;
  display:flex; flex-direction:column; align-items:center; gap:3rem;
}
.equip__heading{
  color:var(--sub-txt); text-align:center;
  font: 700 1.75rem/1.5 "Noto Sans JP",system-ui,sans-serif; /* 28px / 150% */
  margin:0;
}

/* ===== カード */
.equip__card{
  display:flex; flex-direction:column; align-items:flex-start; gap:1.5rem; width:100%;
}
.equip__head{ display:flex; align-items:center; gap:1rem; width:100%; }
.equip__bar{ width:2px; height:1.5rem; background:var(--bg-red); }
.equip__title{
  margin:0;
  color:var(--sub-txt);
  font:700 1.5rem/1.5 "Noto Sans JP";          /* 24px */
}
.equip__sub{
  padding:.5rem 1rem; width:100%;
  color:var(--sub-txt);
  font:400 1.125rem/1.7 "Noto Sans JP";       /* 18px / 170% */
  background: #FBF2F0;
}

/* ボックス（枠内スペック） */
.equip__box{
  width:100%;
  display:flex;
  flex-direction:column;
}
.equip__label{
  margin:0; color:var(--sub-txt);
  font:700 .875rem/1.5 "Noto Sans JP";        /* 14px */
}
.equip__rows{ margin:0; padding:0; display:flex; flex-direction:column; gap:.5rem; }
.equip__row{
  display:grid;
  grid-template-columns: 8em 1fr;
  column-gap:1rem;
  border-bottom: 1px solid #DBDBDB;
  margin-bottom: 0.5rem;
  padding-bottom: 0.5rem;
}
.equip__row dt{ margin:0; color:var(--sub-txt); font:700 .875rem/1.5 "Noto Sans JP"; }
.equip__row dd{ margin:0; color:var(--sub-txt); font:400 .875rem/1.5 "Noto Sans JP"; }

.equip__row.equip__row--blank {
  display: none;
}
.equip__note{
  margin:0; color:var(--sub-txt);
  font:400 .75rem/1.5 "Noto Sans JP";         /* 12px */
}

/* ===== 保有ソフトウエア */
.equip__soft{
  width:100%;
  border:1px solid var(--border);
  border-radius:.5rem;
  padding:1rem 1.5rem 1.5rem;
  display:flex; flex-direction:column; gap:1.5rem;
}
.equip__softTitle{
  margin:0 auto; text-align:center; color:var(--sub-txt);
  font:700 1.5rem/1.5 "Noto Sans JP";         /* 24px */
}
.equip__softGrid{ width:100%; }
.equip__softCol{ display:flex; flex-direction:column; gap:.5rem; }
.equip__softRow{
  display:flex;
  align-items:flex-start;
  gap:.75rem;
  border-bottom: 1px solid #DBDBDB;
  margin-bottom: 0.5rem;
  padding-bottom: 0.5rem;
  justify-content: space-between;
}
.equip__softKey{ color:var(--sub-txt); font:700 1rem/1.5 "Noto Sans JP"; min-width:7em; }
.equip__softVal{ color:var(--sub-txt); font:400 1rem/1.7 "Noto Sans JP"; text-align: right; }

@media (min-width:64rem){
  .equip__wrap{
    width:auto; padding:5rem 0; gap:5rem; display:inline-flex;
  }
  .equip__heading{ font-size:2.125rem; line-height:1.5; } /* 34px */
  .equip__card{ width:62.5rem; }                          /* 1000px */
  .equip__soft{ width:62.5rem; padding:2.5rem; }
  .equip__box{ gap:1.5rem; }
  .equip__label{ font-size:1rem; }                        /* 16px */
  .equip__row{ grid-template-columns: 11em 1fr; }         /* PCの行幅 */
  .equip__row dt{ font-size:1rem; }
  .equip__row dd{ font-size:1rem; }
  .equip__rows--pc2{
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(var(--left-count, 3), auto);
    grid-auto-flow: column;           /* まず左カラムを縦に埋め、次に右カラムへ */
    column-gap: 2.5rem;
  }
  .equip__row--blank dt,
  .equip__row--blank dd{
    visibility: hidden;               /* 高さと下線は維持、文字だけ隠す */
  }
  .equip__row.equip__row--blank {
    display: block;
  }
  .equip__softVal{ text-align: left; }
  .equip__softRow{ justify-content: flex-start; }
  .equip__softKey{ min-width: 9em; }
}

/* ===== section wrapper section5 ===== */
.rp{ background: var(--bg-tint); }
.rp__wrap{
  max-width: var(--wrap);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.5rem;              /* SP: 2.5rem */
  padding: 5rem 1.25rem;    /* SP: 5rem 20px */
}

/* 見出し＋リード */
.rp__intro{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  align-self: stretch;
}
.rp__heading{
  color: var(--sub-txt);
  text-align: center;
  font-family: "Noto Sans JP", system-ui, sans-serif;
  font-size: 1.75rem;       /* SP 28px */
  font-weight: 700;
  line-height: 1.5;         /* 150% */
  margin: 0;
}
.rp__lead{
  color: var(--sub-txt);
  text-align: center;
  font-family: "Noto Sans JP", system-ui, sans-serif;
  font-size: 1.25rem;       /* SP 20px */
  font-weight: 700;
  line-height: 1.5;
  margin: 0;
}

/* カード */
.rp__card{
  display: flex;
  padding: 1.5rem 0;        /* SP */
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 2rem;
  align-self: stretch;
  border-radius: .5rem;
  background: #fff;
}
.rp__row{
  display: flex;
  flex-direction: column;   /* SP: 縦積み */
  align-items: center;
  gap: 2rem;
  margin: 0;
}
.rp__label{
  color: var(--red-txt);
  text-align: center;
  font-family: "Noto Sans JP", system-ui, sans-serif;
  font-size: 1.5rem;        /* 24px */
  font-weight: 700;
  line-height: 1.7;         /* 170% */
}
.rp__price{
  color: var(--sub-txt);
  font-family: "Noto Sans JP", system-ui, sans-serif;
  font-size: 2.125rem;      /* 34px */
  font-weight: 700;
  line-height: 1.5;         /* 150% */
}
.rp__notes{
  color: var(--sub-txt);
  font-family: "Noto Sans JP", system-ui, sans-serif;
  font-size: 1rem;          /* 16px */
  font-weight: 400;
  line-height: 1.7;         /* 170% */
  margin: 0;
}

/* CTA */
.rp__ctaWrap{ display: inline-block; justify-content: center; width: 100%; }
.rp__cta{
  display: flex;
  padding: 1.5rem;          /* SP */
  justify-content: space-between;
  align-items: center;
  text-decoration: none;
  font-family: "Noto Sans JP", system-ui, sans-serif;
  font-size: 1.125rem;      /* 18px */
  font-weight: 700;
  line-height: 1.5;
  border: 2px solid var(--btn-border);
  background: var(--btn-bg-default);
  color: var(--btn-txt-default);
}
.rp__cta:hover{ background: var(--btn-bg-hover); color: var(--btn-txt-hover); opacity: 1 !important; }
.rp__cta svg{ margin-left: .5rem; }
.rp__cta:hover svg path{ stroke: var(--btn-txt-hover); }
@media (min-width:64rem){

  .rp__wrap{
    gap: 5rem;
    padding: 5rem 0;
  }

  .rp__heading{ font-size: 2.125rem; }     /* 34px */
  .rp__lead{ font-size: 1.5rem; }          /* 24px */

  .rp__card{
    width: 50rem;
    padding: 2rem 5rem;
    margin: 0 auto;
  }
  .rp__row{
    flex-direction: row;                   /* 横並び */
    justify-content: center;
    align-items: center;
  }

  .rp__cta{
    width: 28rem;
    padding: 1.5rem 2rem;
    font-size: 1.375rem;                   /* 22px */
    margin: 0 auto;
  }
}

/* ===== section wrapper section6 ===== */
.service{ background: var(--rf-bg); }
.service__wrap{
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 3.5rem 1.25rem;
}
@media (min-width:64rem) {
  .service__wrap{
    padding: 5rem 0;
  }
}

/* 見出し */
.service__heading{
  margin-bottom: 3rem;
  font-size: 1.75rem; /* 28px */
  text-align: center;
  color: var(--rf-txt);
  font-family: "Noto Sans JP", system-ui, sans-serif;
  font-weight: 700;
  line-height: 1.5;
}
@media (min-width:64rem) {
  .service__heading{
    margin: 0 0 5rem;             /* PC: 下80px */
    font-size: 2.125rem;          /* PC 34px */
  }
}

/* ===== heads（赤い帯） ===== */
.service__heads{
  display:grid;
  grid-template-columns: 1fr;
  row-gap: 0;
  column-gap: 0;
  margin-bottom: 3rem;
}
@media (min-width:64rem) {
  .service__heads{
    grid-template-columns: repeat(5, minmax(0,1fr)); /* 5カラム */
    margin-bottom: 1.5rem;
  }
}

.service__head{ position:relative; overflow:visible; z-index:0; }
.service__head:not(:last-child)::after{
  content:"";
  position:absolute;
  left:50%;
  top: calc(100% - .7rem);
  transform: translateX(-50%);
  width:22px;
  height:11px;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="22" height="11" viewBox="0 0 22 11" fill="none"><path d="M21 1.5L11 9.5L1 1.5" stroke="white" stroke-width="2" stroke-linecap="round"/></svg>') no-repeat center/contain;
  z-index:5;
}
@media (min-width:64rem) {
  .service__head{
    display: flex;
    padding: 2rem 0;
    /* flex-direction: column; */
    justify-content: center;
    align-items: center;
    gap: 0;
  }
  /* 右向き くの字（白）— 帯より前面で潜らない */
  .service__head:not(:last-child)::after{
    content:"";
    position:absolute;
    left: auto;
    top:50%;
    right:0;
    transform:translateY(-50%);
    width:11px;
    height:23px;
    background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="11" height="23" viewBox="0 0 11 23" fill="none"><path d="M1 1.10254L9 11.1025L1 21.1025" stroke="white" stroke-width="2" stroke-linecap="round"/></svg>') no-repeat center/contain;
    z-index:5;
  }
}

/* 赤いSTEP帯：3行グリッドで縦に中央揃え＆高さ統一 */
.service__step{
  text-align:center;
  box-sizing: border-box;
  background: var(--bg-red);
  color:#fff;
  border-radius: 0;
  position: relative; z-index:1;
  display: flex;
  padding: 2rem 0;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1.25rem;
  height: 11.25rem;
}

.service__labelWrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.875rem;
}
/* 左端/右端の丸み */
.service__heads > .service__head:nth-of-type(1) .service__step { border-radius: 1rem 1rem 0 0; }
.service__heads > .service__head:nth-of-type(5) .service__step { border-radius: 0 0 1rem 1rem; }
@media (min-width:64rem) {
  .service__heads > .service__head:nth-of-type(1) .service__step{ border-radius: 1rem 0 0 1rem; }
  .service__heads > .service__head:nth-of-type(5) .service__step{ border-radius: 0 1rem 1rem 0; }
}

/* 行の割当（縦に STEP / 01 / タイトル） */
.service__label {
  color: #FFF;
  font-size: 1rem;
  font-style: normal;
  font-weight: 700;
  line-height: 150%;
  letter-spacing: 0.2rem;
}
img.numberIcon {
  width: auto;
}
.service__name{
  grid-row:3;
  margin:0;
  font-family:"Noto Sans JP";
  font-weight:700;
  font-size:1rem;
  line-height:1.5;
  white-space: normal;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
}
@media (min-width:64rem) {
  .service__name{ height: 3.5rem; }
}

@media (min-width:64rem) {
  .service__label{
    font-family: "DIN Condensed", system-ui, sans-serif;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.5;
    letter-spacing: 0.2rem;
    grid-row: 1;
    margin: 0;
    letter-spacing: .2rem;
  }
}

/* ===== bodies（説明） ===== */
.service__bodies .service__body{
  color: var(--sub-txt);
  font-family: "Noto Sans JP";
  font-size: 1rem;
  font-style: normal;
  font-weight: 400;
  line-height: 170%; /* 1.7rem */
}

/* 高さの統一 */
.service__heads > .service__head:nth-of-type(1) .service__step,
.service__heads > .service__head:nth-of-type(2) .service__step,
.service__heads > .service__head:nth-of-type(3) .service__step,
.service__heads > .service__head:nth-of-type(5) .service__step{
  height: 11.25rem;
}
.service__heads > .service__head:nth-of-type(4) .service__step{
  height: 12.5rem;
}
@media (min-width: 64rem){
  .service__step{
    height: unset !important;
    width: 100%;
  }
}

/* ===== CTA ===== */
.service__ctaWrap{
  display: grid;
  justify-content: center;
}

.service__cta{
  display: flex;
  align-items: center;
  background: var(--rf-accent);
  color: #fff;
  text-decoration: none;
  padding: 1.5rem 1rem;    /* 24px 16px */
  font-weight: 700;
  font-size:1rem;          /* 16px */
  line-height: 1.4;
  white-space: nowrap;
}
.service__cta svg{ margin-left: .5rem; }
@media (min-width: 64rem){
  .service__cta{ padding: 1.5rem 2rem; font-size: 1.375rem; } /* 24px 32px / 22px */
}

/* ===== section wrapper section7 ===== */
.bggray, #qaarea .faq_box {
  background: #F5F5F5;
}
#qaarea .faq_content{background: #F5F5F5;}
@media (min-width:64rem){
  
}

/* PC専用改行 */
.xx__br--pc, .re-about__br--pc, .re1__img--pc{ display:none; }
@media (min-width:64rem){ .xx__br--pc, .re-about__br--pc, .re1__img--pc{ display:inline; } }
/* SP専用改行 */
.rp__br--sp, .cs1__br--sp, .cs2__br--sp, .cs3__br--sp, .cs4__br--sp, .re-about__br--sp, .re1__br--sp, .re1__img--sp{ display:inline; }
@media (min-width:64rem){ .rp__br--sp, .cs1__br--sp, .cs2__br--sp, .cs3__br--sp, .cs4__br--sp, .re-about__br--sp, .re1__br--sp, .re1__img--sp{ display:none; } }