@charset "UTF-8";

/*コンテンツ　トップページ*/
.main-content {
  margin: 0 auto;
}

/*表紙*/
.topimg-sp {
  bottom: 0px;
}

/*お問い合わせ*/
.contact-box {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr 1fr;
}

.contact-box2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

.phone {
  background-color: rgb(0, 96, 152);
  font-size: 2.0rem;
  color: rgb(255, 255, 255);
  font-weight: 600;
  padding: 5px 0px;
  border-radius: 8px;
  line-height: 2.6rem;
  box-shadow: 4px 4px 0 rgb(0, 0, 0);
}

.net {
  background-color: rgb(231, 35, 52);
  font-size: 2.0rem;
  color: rgb(255, 255, 255);
  font-weight: 600;
  padding: 5px 0px;
  border-radius: 8px;
  line-height: 2.6rem;
  box-shadow: 4px 4px 0 rgb(0, 0, 0);
}

.line {
  background-color: rgb(0, 185, 0);
  font-size: 2.0rem;
  color: rgb(255, 255, 255);
  font-weight: 600;
  padding: 5px 0px;
  border-radius: 8px;
  line-height: 2.6rem;
  box-shadow: 4px 4px 0 rgb(0, 0, 0);
}

.phone i,
.net i,
.line-icon-box {
  margin-right: 10px;
  vertical-align: middle;
}

.line-icon-box {
  line-height: 2.6rem;
}

.phone-text,
.net-text {
  vertical-align: middle;
  display: inline-block;
}

.line-text {
  display: inline-block;
  vertical-align: middle;
}

.phone:hover,
.line:hover,
.net:hover {
  transform: translateY(4px);
  box-shadow: none;
  transition: all .3s;
}

.form-ck {
  display: block;
  margin-bottom: 20px;
}

#confirmModal button {
  padding: 12px 40px;
  font-size: 1.7rem;
  border: none;
  border-radius: 100vh;
  cursor: pointer;
  transition: background-color 0.3s ease;
  width: 240px;
  max-width: 100%;
  box-sizing: border-box;
}

#confirmSend {
  background-color: rgb(127, 200, 200);
  color: #fff;
  margin-right: 10px;
}

#closeButton {
  background-color: #ccc;
  color: #333;
}

/*コロナ*/
.l-accordion input {
  display: none;
}

.l-accordion .l-accordion-inside {
  height: 0;
  opacity: 0;
  transition: 0.5s;
}

.l-accordion .inside2,
.l-accordion .inside1 {
  height: 0;
  opacity: 0;
  transition: 0.5s;
}

.l-accordion input:checked~.l-accordion-inside {
  height: auto;
  opacity: 1;
}

.l-accordion input:checked~.inside1 {
  padding: 30px 20px;
  border-bottom: 2px solid rgb(0, 96, 152);
}

.l-accordion .l-accordion-switch {
  position: relative;
  display: block;
  cursor: pointer;
}

.switch1 {
  text-align: center;
  background-color: rgb(0, 96, 152, 0.3);
  border-top: 2px solid rgb(0, 96, 152);
  border-bottom: 2px solid rgb(0, 96, 152);
}

.l-accordion-switch:hover .co-title {
  color: rgb(0, 96, 152);
}

.l-accordion .l-accordion-switch::before,
.l-accordion .l-accordion-switch::after {
  content: '';
  position: absolute;
  display: block;
  width: 20px;
  height: 5px;
  background: #555;
  top: 50%;
  right: 8px;
  transform: translateY(-50%);
}

.l-accordion .l-accordion-switch::after {
  transform: translateY(-50%) rotate(90deg);
  transition: 0.5s;
}

.l-accordion input:checked~.l-accordion-switch::after {
  transform: rotate(0);
  transition: 0.5s;
}

.corona-box1 {
  display: flex;
  gap: 10px;
}

.corona-boxlast {
  display: flex;
  gap: 10px;
}

.corona-box2 {
  width: 30%;
}

.corona-box3 {
  width: 70%;
}

.corona-img {
  width: 100%;
  height: auto;
  border-radius: 8px;
}

.l-accordion-switch:hover {
  color: rgb(0, 96, 152);
}

.co-title {
  font-size: 2.0rem;
  font-weight: 500;
}

/*初めての方へ*/


/*スタッフ紹介*/
.list-item {
  list-style: inside square;
}


/*リンクページ移動*/
.contact-logo2 {
  text-decoration: none;
  color: #fff;
  font-size: 2.4rem;
  height: 88px;
  line-height: 88px;
  background-color: #3584bb;
  border-radius: 5px;
  padding: 15px 30px;
  cursor: pointer;
}

.contact-logo2:hover {
  color: #fff;
  background: rgb(246, 139, 88);
  text-decoration: none;
  cursor: pointer;
}

/*料金*/
.price-table {
  table-layout: fixed;
  width: 100%;
  border-spacing: 0px;
  border: solid 1px rgb(169, 184, 195);
  border-collapse: collapse;
}

th,
td {
  border: solid 1px rgb(169, 184, 195);
}

.price-box1 {
  padding: 0 50px;
  margin-bottom: 30px;
}

.price-box2 {
  padding: 0 50px;
  margin-bottom: 20px;
}

.price-box3 {
  padding: 0 50px;
  margin-bottom: 50px;
}

thead {
  background: rgb(127, 200, 200);
}

tbody {
  background: #e6f2f5;
}

th {
  padding: 10px;
}

.price-numeral {
  padding: 10px;
  text-align: center;
}

.area-test {
  font-weight: normal;
}

.price-slash {
  position: relative;
}

.price-slash::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom right, transparent 49%, rgb(169, 184, 195) 50%, rgb(169, 184, 195) 51%, transparent 51%);
  pointer-events: none;
  /* クリックなどのイベントを邪魔しない */
}


/*お問い合わせ*/
.contact-box1 {
  margin-bottom: 30px;
}

form {
  margin: 0 auto;
}

.contact-table {
  width: 100%;
  margin-bottom: 30px;
  border-spacing: 0px;
}

.contact-item {
  padding: 20px;
  border-top: 2px solid #ccc;
  border-left: 2px solid #ccc;
}

.contact-item-last {
  padding: 20px;
  border-top: 2px solid #ccc;
  border-left: 2px solid #ccc;
  border-bottom: 2px solid #ccc;
}

.contact-body {
  padding: 20px;
  border-top: 2px solid #ccc;
  border-left: 2px solid #ccc;
  border-right: 2px solid #ccc;
}

.contact-body-last {
  padding: 20px;
  border: 2px solid #ccc;
}

.contact-item,
.contact-item-last {
  text-align: left;
  width: 30%;
  background-color: #eee;
}

.contact-body,
.contact-body-last {
  width: 70%;
  background-color: #fff;
}

.form-text {
  width: 100%;
  padding: 10px;
  border-radius: 5px;
  border: 1px solid #ccc;
  appearance: none;
  box-sizing: border-box;
}

.form-select {
  width: 100%;
  height: 40px;
  padding: 10px;
  border: 1px solid #ccc;
  border-radius: 5px;
}

.form-textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 10px;
  height: 200px;
  border-radius: 5px;
  border: 1px solid #ccc;
  appearance: none;
}

.contact-submit {
  font-size: 2.0rem;
  width: 250px;
  background-color: rgb(127, 200, 200);
  color: #fff;
  display: block;
  margin: 0 auto;
  padding: 15px;
  border-radius: 100vh;
  border: 2px solid rgb(127, 200, 200);
  appearance: none;
  margin-bottom: 50px;
}

.contact-submit:hover {
  cursor: pointer;
  background-color: #fff;
  color: rgb(127, 200, 200);
  border: 2px solid rgb(127, 200, 200);
  appearance: none;
}

input:focus::placeholder {
  color: transparent;
}

textarea:focus::placeholder {
  color: transparent;
}

.line-area {
  margin-bottom: 30px;
  text-align: center;
}

/* モーダルの背景全体 */
#confirmModal {
  display: none;
  /* 初期非表示 */
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: 10000;

  /* フレックスで中央配置 */
  display: flex;
  align-items: center;
  justify-content: center;

  padding: 20px;
  box-sizing: border-box;
  font-family: "M PLUS 1p", "游明朝体", "ヒラギノ明朝 ProN", "游ゴシック", "Meiryo", "sans-serif";
  font-size: 1.7rem;
  color: #333;
}

/* モーダルの中身（白いボックス） */
#confirmModal>div {
  background: #fff;
  padding: 30px 40px;
  max-width: 600px;
  width: 100%;
  border-radius: 8px;
  box-sizing: border-box;
  text-align: left;
  line-height: 1.6;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
}

/* 見出し */
#confirmModal h3 {
  font-size: 2.2rem;
  color: rgb(127, 200, 200);
  margin-bottom: 20px;
}

/* 確認テキスト */
#confirmContent {
  white-space: pre-wrap;
  background: #f9f9f9;
  border: 1px solid #ccc;
  padding: 20px;
  border-radius: 5px;
  margin-bottom: 30px;
  font-size: 1.6rem;
  color: #222;
}

/* 閉じるボタン */
#closeButton {
  display: block;
  margin: 0 auto;
  padding: 12px 40px;
  font-size: 1.7rem;
  background-color: rgb(127, 200, 200);
  color: #fff;
  border: none;
  border-radius: 100vh;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

#closeButton:hover {
  background-color: #fff;
  color: rgb(127, 200, 200);
  border: 2px solid rgb(127, 200, 200);
}



/*質問*/
.switch2 {
  border-bottom: 2px solid rgb(0, 96, 152, 0.3);
  padding: 10px;
}

.switch2:hover .q-box3 {
  color: rgb(127, 200, 200);
}

.l-accordion input:checked~.inside2 {
  background-color: rgb(127, 200, 200, 0.3);
  padding: 10px;
}

.q_flex {
  display: flex;
  align-items: center;
}

.q-box1 {
  margin-right: 10px;
}

.q-box {
  border-top: solid 4px rgb(0, 96, 152, 0.5);
  border-left: solid 4px rgb(0, 96, 152, 0.5);
  border-right: solid 4px rgb(0, 96, 152, 0.5);
}

.q-box2 {
  border: solid 4px rgb(0, 96, 152, 0.5);
  padding: 0px 10px 30px;
}


/*共通*/
.green-box {
  background-color: rgb(127, 200, 200, 0.3);
}

.box1 {
  padding: 30px 20px;
}

.box2 {
  padding: 10px 0px;
}

.box3 {
  padding: 10px 0px 20px;
}

.box4 {
  margin-bottom: 20px;
}

.box5 {
  text-align: center;
}

.box6 {
  padding: 20px;
}

.box7 {
  padding: 0px 0px 20px;
}

.box8 {
  margin-bottom: 10px;
}

.box9 {
  padding: 0px 0px 20px;
}

.box10 {
  text-align: center;
}

.box11 {
  margin-bottom: 0px;
}

.box12 {
  padding: 10px;
}

.box14 {
  margin-bottom: 30px;
}

.box15 {
  margin-bottom: 20px;
}

.title-box4 {
  padding: 20px 0px;
}

.ray-box2 {
  text-align: center;
  padding: 10px 10px 5px;
}

.ray-box3 {
  padding: 0px 10px 10px;
}

.ray-box4 {
  background-color: rgb(255, 255, 255);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.sub-title-box {
  border-left: solid 8px rgb(127, 200, 200);
}

.page-title-box {
  width: 100%;
  background-image: url(https://refresh-st.com/wp-content/themes/reha/images/green3.jpg);
  background-repeat: repeat;
  border-bottom: solid rgb(127, 200, 200) 5px;
}

.page-title {
  color: #ffffff;
  text-shadow: 0 0 1px #000, 0 0 4px #000, 0 0 8px #000, 0 0 12px #000;
  font-size: 4.5rem;
  line-height: 4.5rem;
  padding-top: 30px;
}

.page-title2 {
  color: #ffffff;
  text-shadow: 0 0 1px #000, 0 0 4px #000, 0 0 8px #000, 0 0 12px #000;
  font-size: 2.5rem;
  font-size: 2.5rem;
  padding-bottom: 30px;
}


/*一般画像*/
.img {
  width: 100%;
  height: auto;
  vertical-align: middle;
}

.img-a {
  width: 20%;
  height: auto;
  vertical-align: middle;
}

.img-maru {
  width: 70%;
  height: auto;
  border-radius: 50%;
  vertical-align: middle;
}

/*コメント*/
.title {
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 2.2rem;
}

.sr-text {
  position: relative;
  text-align: center;
  display: inline-block;
  font-size: 2.0rem;
}

.sr-text::before,
.sr-text::after,
.sr-text span::before,
.sr-text span::after {
  position: absolute;
  top: 0.8rem;
  height: 1.8rem;
  content: '';
}

.sr-text::before {
  border-left: solid 1px;
  left: -1.7rem;
  transform: rotate(-30deg);
}

.sr-text span::before {
  border-left: solid 1px;
  left: -2.4rem;
  transform: rotate(-40deg);
}

.sr-text::after {
  border-right: solid 1px;
  right: -1.7rem;
  transform: rotate(30deg);
}

.sr-text span::after {
  border-right: solid 1px;
  right: -2.4rem;
  transform: rotate(40deg);
}

.e-title {
  font-family: Arial;
  font-size: 4.0rem;
  /* ← お好みで 2.0rem 〜 2.8rem くらいに調整可 */
  color: #2b3e50;
  /* ← 落ち着いたネイビーブルー系。お好みで他色にも変更可 */
  font-weight: 600;
  /* ← 適度な太さ */
  margin-bottom: 1rem;
}

.e-sub-title {
  font-family: Arial;
  font-size: 2.4rem;
  line-height: 2.4rem;
}

.red {
  color: rgb(231, 35, 52);
}

.img-bottom-text {
  font-size: 1.4rem;
}

.sub-text {
  font-size: 2.0rem;
}

.h2-text {
  font-size: 2.0rem;
  font-weight: normal;
}

.q-size {
  font-size: 2.4rem;
  font-weight: 600;
}

.under-text {
  font-size: 1.8rem;
  font-weight: bold;
  text-align: center;
  margin-top: 0.5rem;
}

/*料金＆出張地域*/
.table-caption {
  text-align: right;
  font-size: 1.5rem;
  margin-bottom: 10px;
  color: #555;
}

.time-am {
  background-color: #e0f7fa;
  font-weight: bold;
  color: #00796b;
}

.time-pm {
  background-color: #f1f8e9;
  font-weight: bold;
  color: #33691e;
}

.price-table tbody:first-of-type tr th,
.price-table tbody:first-of-type tr td {
  background-color: #e0f7fa;
}

.price-table tbody:nth-of-type(2) tr th,
.price-table tbody:nth-of-type(2) tr td {
  background-color: #f1f8e9;
}

.area-test {
  font-weight: normal;
  background-color: #f9f9f9;
  padding: 15px;
  border-radius: 5px;
  text-align: left;
  line-height: 1.8;
}

/* ボタン */

.map-small-btn {
  display: inline-block;
  font-size: 1.5rem;
  padding: 1.2rem 2.8rem;
  /* ゆったり余白 */
  border-radius: 999px;
  border: 1px solid #000;
  /* 黒い枠線 */
  color: #000;
  /* 黒文字 */
  background: transparent;
  text-decoration: none;
  font-weight: 500;
  margin-left: 1rem;
  margin-top: 1.6rem;
  margin-bottom: 2rem;
  line-height: 1.6;
  vertical-align: middle;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .12s ease;
}

/* ホバー時 */
.map-small-btn:hover {
  background: rgb(127, 200, 200);
  /* ターコイズ背景 */
  border-color: rgb(127, 200, 200);
  color: #fff;
  /* 白文字 */
  transform: translateY(-1px);
  text-decoration: none;
}

/* モバイル調整 */
@media (max-width:800px) {
  .map-small-btn {
    font-size: 1.4rem;
    padding: 1rem 2.2rem;
    margin-top: 1.4rem;
    margin-bottom: 1.8rem;
  }
}

/*お客様の声*/
.testimonials_font_title {
  font-size: 22px;
  margin-bottom: 20px;
}

.testimonial-box {
  width: 100%;
  margin: 30px auto 50px;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease;
}

.testimonial-box:hover {
  transform: translateY(-5px);
}

.testimonial-last {
  margin-bottom: 0;
}

.testimonial-content {
  display: flex;
  flex-direction: column;
  text-align: center;
  background-color: rgb(127, 200, 200);
  padding: 25px;
  gap: 10px;
}

.testimonial-text p {
  font-size: 18px;
  color: #ffffff;
  ;
  line-height: 1.5;
  margin: 0;
}

.btn-link {
  display: inline-block;
  margin-top: 12px;
  font-size: 14px;
  color: #fff;
  background-color: #ff7f50;
  padding: 10px 20px;
  border-radius: 20px;
  text-decoration: none;
  transition: background-color 0.3s ease;
}

.btn-link:hover {
  background-color: #ff5a26;
}


@media (max-width: 800px) {
  .area-test {
    line-height: 2.2;
    font-size: 1.6rem;
  }
}

/*フッター*/
.footer {
  padding: 20px 0;
  width: 100%;
  background-color: rgb(127, 200, 200);
}

.footer-list {
  margin: 0 auto;
  text-align: right;
  padding-right: 50px;
}

.footer-item {
  display: inline-block;
  padding: 0 5px;
  list-style: none;
}

.footer-list a {
  text-decoration: none;
  color: #432;
}

.footer-list a:hover {
  text-decoration: none;
  color: #432;
  border-bottom: solid 1px #432;
}

.copyright {
  text-align: center;
  margin-top: 20px;
  letter-spacing: 1px;
}

/*フッター終了*/

/*メディアクエリでの条件指定*/
/*共通項目*/
@media(max-width:800px) {
  .pc_only {
    display: none !important
  }

  .site-header {
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    background-color: #ffffff;
    z-index: 20;
  }

  .page-title-box {
    border-top: solid rgb(127, 200, 200) 5px;
  }

  .q-size {
    font-size: 2.0rem;
  }


}



@media (min-width:801px) {
  .sp_only {
    display: none !important
  }

  body {
    padding-top: 0px;
  }

  .logo {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 80px;
  }

  .logo-a {
    display: block;
    width: 333px;
    height: 80px;
    position: relative;
  }

  .logo-a:before {
    position: absolute;
    content: "";
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
  }

  .logo-a:hover:before {
    background: rgb(255, 255, 255, 0.4);
  }

  .main-logo {
    width: 314px;
    height: 80px;
    margin-right: 20px;
  }


  /*ヘッダーロゴ*/
  .contact {
    display: inline-block;
  }

  .phone-logo {
    font-size: 2.0rem;
    font-weight: 500;
    margin-right: 30px;
    transform: scale(1.2, 1.7);
  }

  .fa-flip-horizontal {
    margin-right: 3px;
  }

  .contact-logo {
    text-decoration: none;
    color: #ffffff;
    font-size: 2.0rem;
    font-weight: 500;
    height: 88px;
    line-height: 88px;
    background-color: #3584bb;
    border-radius: 5px;
    padding: 15px 30px;
    cursor: pointer;
  }

  .contact-logo:hover {
    color: #ffffff;
    background: rgb(246, 139, 88);
    text-decoration: none;
    cursor: pointer;
  }

  /*ナビゲーション*/

  .main-nav {
    text-align: center;
  }

  .global-nav {
    display: flex;
    justify-content: center;
    background-color: rgb(127, 200, 200);
    height: 64px;
    align-items: center;
  }

  .global-nav-item {
    max-width: 250px;
    list-style: none;
    flex: 1;
    line-height: 64px;
    cursor: pointer;
    border-left: 2px solid #fff;
    border-right: 2px solid #fff;

  }

  .global-nav li+li {
    border-left: 0;
    border-right: 2px solid #fff;
  }

  .global-nav a {
    display: block;
    text-decoration: none;
    color: #432;
    font-size: 1.7rem;
    font-weight: 600;
  }

  .global-nav li:hover {
    background-color: rgb(255, 255, 255, 0.5);
    height: 64px;
    cursor: pointer
  }

  /*よくある質問*/
  .q-box1 {
    margin-right: 20px;
  }

  .q-box2 {
    padding: 0px 20px 50px;
  }

  .switch2 {
    padding: 20px 20px 10px;
  }

  .l-accordion input:checked~.inside2 {
    padding: 20px;
  }

  /*共通*/

  /*box*/
  .topimg-box {
    text-align: center;

  }

  .topimg-box2 {
    text-align: center;

  }

  .pc_flex {
    display: flex;
    gap: 20px;
  }

  .gap30-2 {
    gap: 30px;
  }

  .flex_center {
    align-items: center;
  }

  .pc_flex1 {
    width: 45%;
  }

  .pc_flex2,
  .pc_flex2_green {
    width: 55%;
  }

  .pc_flex2_green {
    background-color: rgb(255, 255, 255);
  }

  .pc_flex2_green {
    padding: 16px;
  }

  .pc_flex3 {
    width: 45%;
  }

  .pc_flex4 {
    width: 10%;
  }

  .pc_flex5 {
    width: 60%;
  }

  .pc_flex6 {
    width: 40%;
    writing-mode: vertical-lr;
    text-orientation: upright;
  }

  .pc_flex6 span {
    text-combine-upright: all;
  }

  .pc_flex7 {
    width: 50%;
  }

  .p_box {
    background-color: rgba(255, 255, 255);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  }

  .p_box_green {
    background-color: rgb(127, 200, 200, 0.3);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  }

  .contact-box3 {
    margin-bottom: 30px;
  }

  .contact_pc {
    display: grid;
    gap: 20px;
    grid-template-columns: 1fr 1fr 1fr;
  }

  .title-box1 .white-box1 {
    padding: 0px 0px 30px;
  }

  .ray-box2 {
    padding: 15px 15px 5px;
  }

  .ray-box3 {
    padding: 0px 15px 15px;
  }

  .box1 {
    padding: 50px 30px;
    max-width: 1200px;
    margin: 0 auto;
  }

  .box2 {
    padding: 20px 0px;
  }

  .box3 {
    padding: 20px 0px 30px;
  }

  .box4 {
    margin-bottom: 30px;
  }

  .box6 {
    padding: 30px;
  }

  .box7 {
    padding: 0px 0px 30px;
  }

  .box10 {
    text-align: start;
  }

  .box11 {
    margin-bottom: 20px;
  }

  .box12 {
    padding: 15px;
  }

  .box14 {
    margin-bottom: 50px;
  }

  .pc_center {
    text-align: center;
  }

  .pc_b10 {
    padding-bottom: 10px;
  }

  .pc_b15 {
    padding-bottom: 15px;
  }

  .pc_b30 {
    padding-bottom: 30px;
  }

  .pc_right20 {
    padding-right: 20px;
  }

  /*コロナ*/
  .l-accordion input:checked~.inside1 {
    padding: 30px;
  }

  .l-accordion-inbox {
    max-width: 1000px;
    margin: 0 auto;
  }

  .pc_grid_box {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
  }

  .pc_grid_box2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
  }

  /*コメント*/

  .title {
    font-size: 4.0rem;
    font-weight: 500;
    line-height: 4.0rem;
  }


  .pc-sub-title {
    font-size: 3.0rem;
    font-weight: 500;
  }

  .sub-text,
  .sr-text {
    font-size: 3.2rem;
    font-weight: 500;
  }

  .sr-text::before,
  .sr-text::after,
  .sr-text span::before,
  .sr-text span::after {
    top: 0rem;
    height: 4.8rem;
    content: '';
  }

  .sr-text::before {
    left: -4.0rem;
    border-left: solid 2px;
  }

  .sr-text span::before {
    border-left: solid 2px;
    left: -5.4rem;
  }

  .sr-text::after {
    border-right: solid 2px;
    right: -4.0rem;
  }

  .sr-text span::after {
    border-right: solid 2px;
    right: -5.4rem;
  }

  .phone,
  .net,
  .line {
    font-size: 2.4rem;
    font-weight: 600;
    padding: 10px 0px;
    line-height: normal;
  }

  .net:hover .fa-solid {
    letter-spacing: 0px;
  }

  .page-title {
    font-size: 6.5rem;
    line-height: 6.5rem;
    padding-top: 50px;
  }

  .page-title2 {
    font-size: 3.5rem;
    font-size: 3.5rem;
    padding-bottom: 50px;
  }

  /*画像*/
  .topimg {
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  }

  .img-a {
    width: 100%;
    transform: rotate(270deg);
  }

  .testimonial-box {
    margin-bottom: 0;
  }

}

@media (max-width:1000px) {
  .pc_big_only {
    display: none !important;
  }

}

@media (min-width:1001px) {
  .pc_small_only {
    display: none !important;
  }


  .gap30 {
    gap: 30px;
  }

  .pc_right20 {
    padding-right: 30px;
  }

  .b-text {
    font-size: 2.0rem;
    font-weight: 500;
  }

  .pc-sub-title {
    font-size: 3.2rem;
    font-weight: 500;
  }

}

/* === Refreshとは？ レイアウト調整 === */

/* 外枠のflex化 */
.concept-box {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  align-items: stretch;
  /* ← これが高さを揃える */
  justify-content: space-between;
}

/* テキストエリアと画像エリア */
.concept-area1 {
  flex: 15;
  min-width: 300px;
  background-color: rgba(255, 255, 255, 0.7);
  /* 白で半透明 */
  display: inline-block;
  /* 背景がテキストの幅だけに限定される */
  padding: 1em;
  border-radius: 10px;
  box-sizing: border-box;
  /* ← これ重要！ */
}

.concept-area2 {
  flex: 11;
  min-width: 300px;
  align-items: stretch;
}

.concept-area2 .img-maru {
  /* max-width: 300px; */
  object-fit: cover;
  width: 100%;
  height: auto;
}

/* キャッチフレーズスタイル */
.catchphrase {
  font-size: 2.4rem;
  font-weight: 600;
  margin-bottom: 20px;
  color: rgb(0, 96, 152);
}

.catchphrase-text {
  font-size: 1.8rem;
  line-height: 1.9;
  color: #333;
}

/* モバイル対応：縦並び・画像が下に */
@media (max-width: 800px) {
  .concept-box {
    flex-direction: column;
    gap: 20px;
  }

  .concept-area1,
  .concept-area2 {
    width: 100%;
  }

  .concept-area2 {
    order: 2;
  }

  /* デスクトップ・共通の画像スタイル
    .concept-area2 .img-maru {
      max-width: 500px;
      width: 100%;
      height: auto;
      border-radius: 12px;
      /* 四角で少し丸み */
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

*/
/* モバイルでは中央揃え＆やや小さめ */
@media (max-width: 800px) {
  .concept-area2 .img-maru {
    max-width: 100%;
    border-radius: 12px;
  }
}


/*初めての方へ*/
/* 装飾クラス（既存を崩さず追加） */

/* 打ち消し線 */
.strike-text {
  text-decoration: line-through;
  color: #999;
}

/* 強調文字 */
.strong-text {
  font-weight: bold;
  color: #c0392b;
}

/* 強調ハイライト */
.highlight-text {
  background-color: #fff7c2;
  padding: 0.2em 0.5em;
  border-radius: 0.4em;
  font-weight: bold;
  color: #333;
}

/* キャンペーンラベル */
.campaign-label {
  display: inline-block;
  background-color: #ffe6e6;
  color: #d32f2f;
  font-weight: bold;
  padding: 0.3em 0.8em;
  border-radius: 1em;
  margin-bottom: 0.5em;
}

/* 中央リード文 */
.lead-text-box {
  margin-top: 3rem;
}

.lead-text {
  font-size: 1.8rem;
  line-height: 1.8;
  font-weight: 500;
  color: #444;
}

/* キャンペーンラベル */
.campaign-label {
  display: inline-block;
  background-color: #fff8e1;
  /* やさしいクリーム色 */
  color: #f57f17;
  /* 落ち着いたゴールド系 */
  font-weight: bold;
  font-size: 1.6rem;
  padding: 0.4em 1em;
  border: 2px solid #fbc02d;
  border-radius: 999px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  margin-bottom: 0.5em;
}

/* 強調テキスト（0円の部分など） */
.highlight-text {
  font-size: 2rem;
  font-weight: bold;
  color: #d32f2f;
  /* 強めの赤系 */
}

/* 補足文（小さめの注釈） */
.small-text {
  font-size: 1.3rem;
  color: #666;
  margin-top: 0.5em;
}

/*middleの制御*/

@media (min-width:800px) and (max-width:1000px) {
  .middle_none {
    display: none !important;
  }

  .big_only {
    display: none !important;
  }
}

@media (max-width:800px) {
  .middle_only {
    display: none !important;
  }
}

@media (min-width:1001px) {
  .middle_only {
    display: none !important;
  }
}

/* ================== 表示制御（共通） ================== */
/* スマホ基準：pc-only は常に非表示 */
/* SPのみ */
.sp-only {
  display: block;
}

.pc-only {
  display: none;
}

nav.pc-only {
  display: none;
}

@media screen and (min-width: 769px) {
  .sp-only {
    display: none;
  }

  .pc-only {
    display: block;
  }

  nav.pc-only {
    display: flex;
  }

  .sp-only {
    display: none;
  }

  .hm-area.sp-only {
    display: none;

  }

}